-3

我正在尝试使用我的 Visual Studio 2010 配置 CUDA6.0。我使用 CUDA 6.0 运行时创建了一个项目。编译时,我需要更改/添加任何选项吗?由于我的 CUDA 代码运行速度比系列版本慢,是否有可能不并行执行代码(例如,GPU 变成慢速 CPU ......),不管其他可能性,例如双精度、开销等?

非常感谢,XF

4

1 回答 1

2

听起来你只是拿了一些串行代码并编译它认为它会工作。

但是假设你实际上有并行代码,你可能想确保你

  1. 使用您的卡的架构。在属性 -> CUDA C/C++ -> 设备 -> 代码生成下确保您具有正确的值。对于我的卡,我有 compute_35,sm_35。如果你的卡支持 Maxwell,你可以做 compute_50,sm_50。
  2. 您可以在 **-> CUDA C/C++ -> 优化 ** 下更改优化
  3. 确保您没有在调试时进行编译。
  4. 如果所有这些都失败了,您应该在您的应用程序上使用 NSIGHT 分析工具(或可视化分析器)来查看您可能遇到问题的地方。如果您使用共享内存、减少分歧等,请检查以确保您没有银行冲突。视觉分析器非常适合告诉您哪里出了问题。

您还应该查看 GTC 关于优化的讨论[链接到 pdf](我的老教授)。它涵盖了一些基本的优化,您可以执行这些优化以使您的代码加速。

可以在此处找到 GTC 过去几年的演讲 [链接]。他们对优化进行了多次更新,讨论了不同的工具等等。

于 2014-07-19T20:38:08.463 回答