带有地图<值 ,键>的CUDA &原子操作值>
据我所知,我可以在 CUDA 设备代码中使用 C++ 模板。那么,如果我使用映射创建字典,插入新值的操作是否是原子的?
我想计算某个值出现的次数,即创建一个包含代码概率的代码字典。
谢谢
Macs
As far as I know I can use C++ templates in CUDA device code. So If i'm using map to create a dictionary will the operation of inserting new values be atomic?
I want to count the number of appearances of a certain values, i.e. create a code-dictionary with probabilities of the codes.
Thanks
Macs
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您不能在设备代码中使用 STL。您可以检查 thrust 以获得类似的功能(特别检查实验命名空间)。
设备代码中的模板很好,CUDA C 目前支持相当多的 C++ 功能,尽管一些重要功能(例如虚拟功能和异常)尚无法实现(并且只能在 Fermi 硬件上实现)。
如果您决定自己实现此功能,则可以使用atomicAdd()内在函数来获取原子操作,请查看CUDA 编程指南了解更多信息。
You cannot use STL within device code. You could check thrust for similar functionality (check the experimental namespace in particular).
Templates are fine in device code, CUDA C currently supports quite a few C++ features although some of the big ones such as virtual functions and exceptions are not yet possible ( and will only be possible on Fermi hardware).
If you decide to implement this yourself, you can use the atomicAdd() intrinsic to get an atomic operation, check out the CUDA Programming Guide for more information.
如果我正确理解你的问题,你正在尝试在cuda中使用STL映射?
很可能它不会起作用。您必须设计自己的实现。
不过,您也许可以在推力库中找到实现。
if I understand your question correctly, you are trying to use STL map inside cuda?
most likely it is not going to work. You will have to devise your own implementation.
You may be able to find implementation in thrust library however.