nvcc for linux 使用的默认主机编译器

问题描述 投票:0回答:2

我在 Ubuntu 10.10 上使用 CUDA 4.0 和 GTX 570(计算能力 2.0)以及 GCC 编译器套件。据我了解,在编译过程中,CUDA编译器驱动程序nvcc将

.cu
文件拆分为主机代码和设备代码,并调用主机编译器分别编译主机代码和设备代码。最后,它将生成的主机对象代码和设备 PTX 代码合并为单个可执行文件。

对于 Linux 系统,调用来编译主机代码的默认编译器是什么? 是吗 GCC 套件的 C 编译器 (

gcc
) 或 C++ 编译器 (
g++
)?

gcc cuda nvcc
2个回答
16
投票

您想要

-ccbin
nvcc
选项,例如要使用
icpc
(英特尔 C++ 编译器),请使用
nvcc -ccbin=icpc
(假设
icpc
在您的
$PATH
中可用)。

请注意,您应该始终通过 C++ 编译器(

g++
icpc
等),因为
nvcc
将代码视为 C++,即使它是 C 代码。


5
投票

据我所知,它使用

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

© www.soinside.com 2019 - 2024. All rights reserved.