假设你有一个内存绑定的GPU内核,你能达到GPU规定的理论带宽的距离是多少?即使在Mark Harris's Optimising Parallel Reduction presentation中,他只“达到63GB /秒,这大约是他测试GPU(G80)带宽的73%,他声称拥有84.6GB /秒的峰值带宽。哈里斯能否进一步优化他的内核?是否有其他技术可能超出/超出演示范围?例如__shfl类型说明?为什么他没有获得更高的带宽?
This文章声称,使用带有特斯拉C2050的测试机器
“吞吐量是内存带宽有限,维持在75%左右 144 GB / s峰值内存带宽,相比实际限制为85% 在考虑DRAM刷新等开销时达到峰值。“
这是对的吗?作者没有提供“85%实际带宽限制”的来源,我还没有找到任何其他提及它的内容。如果是这样,还有哪些因素(假设您有一个非常优化的内核)会阻止您达到理论峰值带宽?
答案 0 :(得分:0)
类似的主题:GPU Memory bandwidth theoretical vs practical
运行仅将数据写入1D大向量的最小内核:
__global__ void kernel( int *out ) {
int idx = threadIdx.x + blockIdx.x * blockDim.x;
out[idx] = idx%4;
}
在GeForce GT 710上我获得了0.9的理论带宽
实用12.9 GB / s。
理论(规范)14.4 GB / s
可能导致减速的一件事是缓存。