nvcc用于linux的默认主机编译器

时间:2011-11-29 20:47:36

标签: gcc compiler-construction cuda nvcc

我在Ubuntu 10.10上使用CUDA 4.0和GTX 570(计算能力2.0),使用GCC编译器套件。据我了解,在编译期间,CUDA编译器驱动程序nvcc将.cu文件拆分为主机代码和设备代码,并调用主机编译器编译主机代码并单独编译设备代码。最后,它将生成的主机对象代码和设备PTX代码合并为一个可执行文件。

对于Linux系统,为编译主机代码而调用的默认编译器是什么?是吗 GCC套件的C编译器(gcc)或C ++编译器(g++)?

2 个答案:

答案 0 :(得分:12)

您需要-ccbin的{​​{1}}选项,例如要使用nvcc(英特尔C ++编译器),请使用icpc(假设nvcc -ccbin=icpc中有icpc)。

请注意,您应该始终传递C ++编译器($PATHg++等),因为icpc将代码视为C ++,即使它是C代码。

答案 1 :(得分:5)

AFAIK使用g++(更确切地说,它使用gcc语言设置为c ++),当然g++用于最终链接。如果需要,请使用nvcc选项运行--verbose以查看更多详细信息。