我从《CUDA by Example》第9.4章中了解到,在GPU全局内存上不当地使用原子操作时,程序的性能可能比纯CPU执行时更差,因为存在内存访问争用。
在最坏的情况下,GPU上执行的程序高度串行化,没有线程并行执行,这与在CPU上运行单线程程序的方式相同。所以关键问题是程序访问内存的速度有多快。
考虑到我提到的书中的例子,似乎CPU访问主机内存比GPU访问设备上的全局内存更快。
是这样吗?还是还有其他因素影响了我刚才描述的情况下程序的性能?
在最坏的情况下,GPU上执行的程序高度串行化,没有线程并行执行,这与在CPU上运行单线程程序的方式相同。所以关键问题是程序访问内存的速度有多快。
考虑到我提到的书中的例子,似乎CPU访问主机内存比GPU访问设备上的全局内存更快。
是这样吗?还是还有其他因素影响了我刚才描述的情况下程序的性能?