再cdp快速排序的文章里有提到atomicAdd函数是先赋值后进行加法计算的,这里直接贴上它的实现函数便于更加深刻的理解。

这个代码来自官方文档:https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html
atomicAdd实际是调用atomicCAS函数,atomicSub、atomicMax等函数都是如此,了解一个就都明白了。从代码中看到,atomicCAS是对地址操作,将结果存在地址上,返回的是还是old值。
另外:atomicCAS本质是
old == compare ? val : old;
文章围绕CUDA的atomicAdd函数展开,提到在cdp快速排序文章里曾提及该函数先赋值后加法计算,给出其实现代码来源为官方文档。指出atomicAdd实际调用atomicCAS函数,atomicSub、atomicMax等也如此,还介绍了atomicCAS对地址操作及返回值情况。


被折叠的 条评论
为什么被折叠?



