我想在mac上编译CUDA代码,但在Windows上使其可执行。
有没有办法设置一个nvcc CUDA交叉编译器?
问题是由于旅行我的桌面窗口暂时无法访问,但我不想浪费时间等待直到我回来并编译代码。如果我必须等待,那么调试代码并确保编译正确等等是浪费时间。我的mac没有配备具有cuda功能的硬件。
答案 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平台上的编译是目标
,您有两种选择如果您想在没有CUDA GPU的情况下运行代码,可以调查非商业(GPU Ocelot)和商业(PGI CUDA-x86)选项。