带有地图的<CUDA <value,key =“”>&amp;原子操作</value,>

时间:2010-02-28 18:27:43

标签: c++ templates dictionary cuda

据我所知,我可以在CUDA设备代码中使用C ++模板。所以,如果我使用map创建一个字典,那么插入新值的操作是原子的吗?

我想计算某些值的出现次数,即创建一个具有代码概率的代码字典。

由于

的Mac

2 个答案:

答案 0 :(得分:2)

您不能在设备代码中使用STL。您可以检查thrust的类似功能(特别检查实验名称空间)。

模板在设备代码中很好,CUDA C目前支持相当多的C ++功能,尽管还有一些很大的功能,例如虚拟功能和异常(并且只能在Fermi硬件上实现)。

如果您决定自己实现,可以使用atomicAdd()内在函数来获取原子操作,查看CUDA Programming Guide以获取更多信息。

答案 1 :(得分:1)

如果我正确理解你的问题,你试图在cuda中使用STL地图? 最有可能它不会起作用。您将不得不设计自己的实现。 但是,您可以在推力库中找到实现。