【问题标题】:Compiling options for CUDA in VS2010VS2010 中 CUDA 的编译选项
【发布时间】:2014-09-10 15:20:58
【问题描述】:

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

非常感谢, 顺丰

【问题讨论】:

  • 并行代码的速度(尤其是与顺序版本相比的速度)是您的编程技能和算法的并行性的结合。因此,并行代码的运行速度可能比其顺序代码慢。就编译器选项而言,您对 CUDA 6.0 的使用很可能没有任何问题。最后,GPU 成为慢速 CPU 的可能性不大。

标签: visual-studio-2010 cuda cusp-library


【解决方案1】:

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

但是假设您实际上有并行代码,您可能需要确保您

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

您还应该查看关于优化的 GTC 讲座 [link to pdf](我的老教授)。它涵盖了一些基本的优化,您可以执行这些优化以使您的代码跟上速度。

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

【讨论】:

  • 仅供参考,OP 使用的是cusp,只是懒得在这里解释。见herehere
  • 我看到了标签,但我试图在他给我的信息很少的情况下提供任何我能提供的信息。也许他会给出一些反馈? (怀疑)。
  • 这是一个很好的答案,我赞成。我只是想给你一些背景信息。另一个可能有用的信息是 OP 使用的是 cc3.0(基于 GK104)的 GTX760,因此不是特别适合高双精度吞吐量的最佳选择。但稀疏矩阵活动通常比计算更受带宽限制,因此 DP 与 SP 可能无关紧要。
  • 谢谢。通常人们只是对我投反对票而不给我任何反馈。这是一个艰难的人群。
  • 谢谢你们!我刚刚尝试了单精度和双精度的 CUSP CG。对于 1000*1000 Poisson 问题,DP 需要 7 秒,而 SP 需要 6 秒。也许我应该更多地关注数据传输等。
猜你喜欢
  • 2011-06-07
  • 1970-01-01
  • 2013-06-10
  • 2016-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-10
  • 2016-12-16
相关资源
最近更新 更多