我听说在具有GPU随机访问权限的阵列上执行计算时性能会下降。
我的问题是这种性能下降有多严重?
搜索一些注释似乎意味着代码在cpu上的运行速度更快。但是,看到gpus和cpus之间在int和flop方面存在巨大差异,似乎很难相信性能会下降那么糟。
答案 0 :(得分:2)
我认为这与缓存丢失有关。 GPU还具有L1 L2缓存,如果您访问随机的内存空间,那么您将有更多机会丢失缓存。而且还因为GPU具有特殊的内存访问模式(称为内存合并)。它正在访问广泛的内存。这就是为什么GPU在运行SIMD友好代码时是如此之快的原因。但是,如果您访问随机内存空间,则会破坏内存合并。我认为最好阅读cuda文档以了解GPU的工作原理。