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