我在Ubuntu 10.10上使用CUDA 4.0和GTX 570(计算能力2.0),使用GCC编译器套件。据我了解,在编译期间,CUDA编译器驱动程序nvcc将.cu
文件拆分为主机代码和设备代码,并调用主机编译器编译主机代码并单独编译设备代码。最后,它将生成的主机对象代码和设备PTX代码合并为一个可执行文件。
对于Linux系统,为编译主机代码而调用的默认编译器是什么?是吗
GCC套件的C编译器(gcc
)或C ++编译器(g++
)?
答案 0 :(得分:12)
您需要-ccbin
的{{1}}选项,例如要使用nvcc
(英特尔C ++编译器),请使用icpc
(假设nvcc -ccbin=icpc
中有icpc
)。
请注意,您应该始终传递C ++编译器($PATH
,g++
等),因为icpc
将代码视为C ++,即使它是C代码。
答案 1 :(得分:5)
AFAIK使用g++
(更确切地说,它使用gcc
语言设置为c ++),当然g++
用于最终链接。如果需要,请使用nvcc
选项运行--verbose
以查看更多详细信息。