CUDA带宽测试以获得可达到的峰值
我想知道我的CUDA内核在内存带宽利用率方面有多好。我在特斯拉K40c上运行它们,ECC打开。CUDA带宽测试以获得可达到的峰值,cuda,profiling,memory-bandwidth,Cuda,Profiling,Memory Bandwidth,我想知道我的CUDA内核在内存带宽利用率方面有多好。我在特斯拉K40c上运行它们,ECC打开。带宽测试实用程序给出的结果是否很好地近似于可达到的峰值?否则,如何编写类似的测试来找到峰值带宽 我指的是设备内存带宽。CUDA SDK中包含了带宽测试的源代码,因此您可以直接查看它。带宽测试示例执行设备与主机、主机与设备以及设备与设备之间的传输时间测试(传输卡上的内存) 这是内存传输的实际执行,但它利用了以下几点: 中到大内存传输。如果你正在做大量的小事情 你将支付高昂的管理费用,这将 降低你的换乘率
带宽测试
实用程序给出的结果是否很好地近似于可达到的峰值?否则,如何编写类似的测试来找到峰值带宽
我指的是设备内存带宽。CUDA SDK中包含了带宽测试的源代码,因此您可以直接查看它。带宽测试示例执行设备与主机、主机与设备以及设备与设备之间的传输时间测试(传输卡上的内存) 这是内存传输的实际执行,但它利用了以下几点:
最终的性能将在很大程度上取决于内核以及正在执行的内存传输的数量和大小。带宽测试已经足够好了,您不能对带宽提高太多。等价物是一个简单的复制内核。您要做的是确保在内核中复制多个数据值。例如,如果处理三维数据集,则使用二维线程块平铺空间,内核在z维度上有一个For循环。