CUDA:将全局内存写入和读取与计算能力同步 1.1
CUDA: Synchronize global memory writing & reading with compute capability 1.1
好吧,在nVidia论坛上找到了解决方案(https://devtalk.nvidia.com/default/topic/458062/atomicadd-float-float-atomicmul-float-float-/)。
谢谢。
序列化可以通过使用原子函数来实现。
Compute Capability 1.1不支持浮点数字的atomicAdd(),但任何原子操作都可以基于atomicCAS()(Compare And Swap)实现。
首先,这段代码是一堆重复的乱码,会让调试变得非常痛苦。找出哪些子表达式是多余的,并将它们分为不同的变量,这样代码就变得更清晰了。否则,寻求有关此代码的帮助与寻求中奖帮助一样有意义。没有人会麻烦阅读你的代码,因为它很刺眼。
运行单线程解决方案。使用探查器来确定此代码的哪些部分最适合并行化,否则您的优化只是猜测,无法用可衡量的术语来表示。我想,一旦你运行了单线程解决方案,你可能会从并行运行相同的解决方案中获得相当好的性能,在每个核心上,在一个独立的值范围上,所以实际上不需要同步。
相关文章:
- 通过从文件中读取值来计算移动平均线
- (此函数用于计算 SMA).在 FA.exe 中0x00509159引发异常: 0xC0000005:访问冲突读取位置0
- 从文本文件中的每一行读取数字,并计算数字重复的次数
- 通过将文本文件读取为字符串/向量来计算加权/未加权 GPA
- 无需使用循环,就将ISBN-10的前9位数字读取为字符串并计算第10位数字
- 从文本文件中读取并使用 sizeof 结果计算整数的数量到 nan
- C++ 从文件中读取字符,计算每个字符并进行排序
- c++ 从大型数组中读取 3D 坐标并计算它们之间的距离
- 从文件读取到字符串,同时计算C++行数
- 如何读取/计算NAO机器人上关节的刚度设置
- 当短路禁用常量表达式的计算时,是否允许在常量表达式中读取"一过一"指针
- QML:读取由计算着色器操作的缓冲区
- 创建一个读取的程序计算C 文件中的行数
- 如何读取特定单词的字符串并计算发现的时间
- C++,计算正数和负数并计算数字的平均值)编写一个读取未指定数量的整数的程序
- 从文件读取(.dat)进行计算,然后输出到新文件中
- C - 读取文件并计算行和列
- 从文件中读取的浮点值与计算结果不一致
- 将文件读取到char数组中,然后计算strlen会在C++中陷入困境
- 无法读取在具有相同代码的不同计算机上写入的文件