Cuda优化技术

时间:2010-06-22 05:24:41

标签: cuda gpgpu

我已经编写了一个CUDA代码来解决NP-Complete问题,但性能并不像我怀疑的那样。

我知道“一些”优化技术(使用共享memroy,纹理,zerocopy ......)

CUDA程序员应该了解哪些最重要的优化技术?

2 个答案:

答案 0 :(得分:5)

您应该阅读NVIDIA的CUDA编程最佳实践指南:http://developer.download.nvidia.com/compute/cuda/3_0/toolkit/docs/NVIDIA_CUDA_BestPracticesGuide.pdf

这有多个不同的性能提示和相关的“优先级”。以下是一些最优先的提示:

  1. 使用设备的有效带宽来确定内核的性能上限应该是什么
  2. 最大限度地减少主机和设备之间的内存传输 - 即使这意味着在设备上进行无效的计算
  3. 合并所有内存访问
  4. 首选共享内存访问全局内存访问
  5. 避免代码执行在单个warp中分支,因为这会序列化线程

答案 1 :(得分:2)

新的NVIDIA Visual Profiler(v4.1)支持自动性能分析,以识别应用程序中的性能改进机会。它还直接链接到“最佳实践指南”中针对其检测到的问题的最有用部分。 Visual Profiler作为NVIDIA开发人员网站上的CUDA工具包的一部分免费提供:http://www.nvidia.com/getcuda