cuda nvcc交叉编译器

时间:2012-05-14 01:00:46

标签: windows cuda cross-compiling nvcc

我想在mac上编译CUDA代码,但在Windows上使其可执行。

有没有办法设置一个nvcc CUDA交叉编译器?

问题是由于旅行我的桌面窗口暂时无法访问,但我不想浪费时间等待直到我回来并编译代码。如果我必须等待,那么调试代码并确保编译正确等等是浪费时间。我的mac没有配备具有cuda功能的硬件。

1 个答案:

答案 0 :(得分:6)

简短的回答,不是,这是不可能的。

这是一种常见的误解,但nvcc实际上并不是编译器。它是一个编译器驱动程序,它在很大程度上依赖于主机C ++编译器来控制主机和设备代码的编译。要编译CUDA for Windows,您必须使用Microsoft C ++编译器。该编译器无法在Linux或OS X上运行,因此除非您在Windows主机上进行编译,否则无法交叉编译到Windows目标(例如,可以进行32/64位交叉编译)。

其他两个CUDA平台同样不兼容,尽管需要gcc进行编译,因为后端不同(Linux是elf平台,OS X是一个机器平台),所以即使OS X和Linux之间的交叉编译也不是可能。

如果OS X平台上的编译是目标

,您有两种选择
  1. 安装OS X工具包。即使您的硬件没有兼容的GPU,您仍然可以安装工具包并编译代码。
  2. 在虚拟Windows安装(或物理新手训练营安装)中安装Windows工具包和visual studio,并在Mac上的Windows内编译代码。同样,您不需要NVIDIA兼容硬件来执行此操作。
  3. 如果您想在没有CUDA GPU的情况下运行代码,可以调查非商业(GPU Ocelot)和商业(PGI CUDA-x86)选项。