CUDA:将全局内存写入和读取与计算能力同步 1.1

CUDA: Synchronize global memory writing & reading with compute capability 1.1

本文关键字:读取 计算 能力 同步 全局 内存 CUDA      更新时间:2023-10-16

好吧,在nVidia论坛上找到了解决方案(https://devtalk.nvidia.com/default/topic/458062/atomicadd-float-float-atomicmul-float-float-/)。

谢谢。

序列化可以通过使用原子函数来实现。

Compute Capability 1.1不支持浮点数字的atomicAdd(),但任何原子操作都可以基于atomicCAS()(Compare And Swap)实现。

首先,这段代码是一堆重复的乱码,会让调试变得非常痛苦。找出哪些子表达式是多余的,并将它们分为不同的变量,这样代码就变得更清晰了。否则,寻求有关此代码的帮助与寻求中奖帮助一样有意义。没有人会麻烦阅读你的代码,因为它很刺眼。

运行单线程解决方案。使用探查器来确定此代码的哪些部分最适合并行化,否则您的优化只是猜测,无法用可衡量的术语来表示。我想,一旦你运行了单线程解决方案,你可能会从并行运行相同的解决方案中获得相当好的性能,在每个核心上,在一个独立的值范围上,所以实际上不需要同步。