【问题标题】:Compile cuda code for CPU为 CPU 编译 cuda 代码
【发布时间】:2014-03-23 16:36:23
【问题描述】:

我正在研究 cuda 5.5,但我没有任何 Nvidia GPU。在旧版本的 nvcc 中有一个标志 --multicore 来为 CPU 编译 cuda 代码。 在新版本的nvcc中,有什么选项??我在 Linux 上工作。

【问题讨论】:

  • 感谢您澄清“Linux”。你真的需要一个 GPU。但下一个最好的事情是 Ocelot:试试看。我不熟悉“--multicore”,而且我在 NVCC 页面上的任何地方都没有看到它,所以我无法帮助你。但我认为你最好的选择是 1) 真正的 GPU,或 2) 像 CUDA-Waste 或 Ocelot 这样的模拟器。恕我直言...

标签: cuda nvidia nvcc


【解决方案1】:

CUDA 工具包至少从 CUDA 4.0 开始不支持在没有 GPU 的情况下运行 cuda 代码的能力。

如果你只是想编译代码,请参考this question

如果您想运行使用 CUDA 5.5 编译的 CUDA 代码,您将需要支持 CUDA 的 GPU。

如果您愿意使用较旧的 CUDA 工具包,您可以安装各种模拟器之一,例如 this one

或者您可以安装一个非常旧的(例如 ~ CUDA 3.0)cuda 工具包,它能够在 CPU 上运行 CUDA 代码。

【讨论】:

  • 确实知道...如何在 CPU 上运行内核? CPU是不是一定要有超线程之类的?
  • 我认为你的意思是像 avx512 这样的东西。
【解决方案2】:

理想情况下,您可以访问与 CUDA 兼容的 NVidia GPU。

但除此之外,这里有一个模拟器可能会有所帮助:

如果你有Linux盒子,你也可以试试Ocelot:

【讨论】:

  • 我的问题是内存数量。当最好的 gpu 锁定在 16Gb 时,可以在 cpu 上获得 24Tb。
【解决方案3】:

在当前版本的 CUDA 中,程序在 GPU 上运行时直接进行调试。这远远优于使用模拟器进行调试的旧版本 CUDA。在当前版本的 CUDA 中,调试工具也更加强大。

因此,如果希望编写任何 CUDA 代码,支持 CUDA 的 GPU 卡将在您需要调试时立即为您带来投资回报。

您可以花很少的钱购买一张旧卡。检查features of each of the compute capabilities 以确定您愿意返回多远。

还有一些在线网站可以让您测试 CUDA 代码。 NVIDIA 有CUDA test drive 程序。 Intro to Parallel Programming course at Udacity 包含一个用于编码分配的在线 CUDA 编译器。

【讨论】:

  • 这不仅仅是投资回报!任何严肃的应用程序都应该有测试,并且您希望能够在任何机器上运行测试,即使它速度较慢。
  • @dashesy 如果您因为没有 GPU 而无法在 GPU 上测试实际性能,那么您就错过了 CUDA 的主要目标,即改进它。
  • 测试不仅仅是为了性能(基准测试),我们还需要测试应用程序的正确性以避免回归。单元测试、A/B 测试、...
猜你喜欢
  • 2012-06-04
  • 2019-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-19
相关资源
最近更新 更多