当代码中没有CUDA元素时,nvcc总是作为gcc工作吗?

时间:2013-08-25 16:27:22

标签: cuda ubuntu-12.04 nvcc

我在Ubuntu 12.04 LTS上安装了CUDA 5.5。我理解,如果代码中没有任何CUDA / GPGPU元素,nvcc就像C / C ++编译器一样 - 更像是gcc,但是这个规则有什么例外吗?如果没有,那么我可以使用nvcc作为非CUDA C / C ++代码的gcc吗?

2 个答案:

答案 0 :(得分:2)

不,nvcc的行为与主机代码的C / C ++编译器不同。它的作用如下:

  1. 将设备与主机代码分开为两个单独的文件
  2. 编译设备代码(使用nvcc,cudafe,ptxas)
  3. 为主机代码调用gcc
  4. 如果不存在设备代码,则步骤1)和2)中不执行任何操作。所以nvcc实际上不是编译器,它是一个编译器驱动程序,它以正确的顺序为每个部分调用正确的编译器。要回答你的问题,如果你只使用nvcc编译主机代码,你仍然使用gcc。

答案 1 :(得分:0)

它不接受抑制警告的选项(-W *)