nvcc for linux 使用的默认主机编译器
我在 Ubuntu 10.10 上使用 CUDA 4.0 和 GTX 570(计算能力 2.0)以及 GCC 编译器套件。据我了解,在编译过程中,CUDA编译器驱动程序nvcc将.cu
文件拆分为主机代码和设备代码,并调用主机编译器分别编译主机代码和设备代码。最后,它将生成的主机对象代码和设备 PTX 代码合并为单个可执行文件。
对于 Linux 系统,调用来编译主机代码的默认编译器是什么?是吗 GCC 套件的 C 编译器 (gcc
) 或 C++ 编译器 (g++
)?
I am using CUDA 4.0 on Ubuntu 10.10 with GTX 570 (compute capcability 2.0), with the GCC compiler suite. As I understand it, during compilation the CUDA compiler driver nvcc splits the .cu
files into host code and device code and calls the host compiler to compile the host code and compiles the device code separately. Finally it merges the generated host object code and the device PTX code into a single executable.
For Linux systems what is the default compiler that is invoked for compiling the host code? Is it
the C compiler (gcc
) or the C++ compiler (g++
) of the GCC suite?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要
nvcc
的-ccbin
选项,例如要使用icpc
(Intel C++ 编译器),请使用nvcc -ccbin=icpc
(假设icpc
在您的$PATH
中可用)。请注意,您应该始终传递 C++ 编译器(
g++
、icpc
等),因为nvcc
将代码视为 C++,即使它是C代码。You want the
-ccbin
option fornvcc
, e.g. to useicpc
(the Intel C++ compiler), usenvcc -ccbin=icpc
(assuming theicpc
is available in your$PATH
).Note that you should always pass a C++ compiler (
g++
,icpc
, etc.), sincenvcc
treats the code as C++, even when it's C code.AFAIK 它使用
g++
(更准确地说,它使用gcc
语言设置为 c++),当然还有g++
进行最终链接。如果需要,请使用--verbose
选项运行nvcc
以查看更多详细信息。AFAIK it uses
g++
(to be more precise it usesgcc
with language set to c++) and of courseg++
for final linking. Runnvcc
with--verbose
option to see more detail if you want.