如何确定是否是访问延迟造成性能下降

如何确定cuda程序性能不好是否是由于访问延迟造成的?:slight_smile:

可以跑一下profiler看看具体情况和建议。

可以用visual profile来运行你的内核,找到计算指令发射数和内存指令发射数,根据这两个值可以大致判断出你的程序是内存密集型还是计算密集型的。如果是内存密集型的则内存访问延迟对程序的影响比较大,这时就可以看看profile里合并访问性能的结果、cache命中的结果、shared memory的bank conflict情况等。
详细的分析方法推荐你可以看一下NV王鹏博士有关优化的PPT
http://wenku.baidu.com/view/d6eccfd028ea81c758f57868.html