带有地图<值 ,键>的CUDA &原子操作

发布于 2024-08-23 09:51:59 字数 129 浏览 5 评论 0原文

据我所知,我可以在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

与他有关 2024-08-30 09:52:00

您不能在设备代码中使用 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.

纸伞微斜 2024-08-30 09:52:00

如果我正确理解你的问题,你正在尝试在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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文