Я на Ubuntu 12.04 LTS и установил CUDA 5.5. Я понимаю, что без каких-либо элементов CUDA/GPGPU в коде nvcc ведет себя как компилятор C/C++ — больше похоже на gcc, однако есть ли исключения из этого правила? если нет, то могу ли я использовать nvcc как gcc для кодов C/C++, отличных от CUDA?
всегда ли nvcc работает как gcc, когда в коде нет элементов CUDA?
Ответы (2)
Нет, nvcc не ведет себя как компилятор C/C++ для основного кода. Он делает следующее:
- отделить устройство от кода хоста в два отдельных файла
- скомпилировать код устройства (с nvcc, cudafe, ptxas)
- вызвать gcc для кода хоста
Если код устройства не существует, шаги 1) и 2) не выполняются. Таким образом, nvcc на самом деле не является компилятором, это драйвер компилятора, который вызывает правильные компиляторы для каждой части в правильном порядке. Чтобы ответить на ваш вопрос, если вы используете nvcc только для компиляции кода хоста, вы все равно используете gcc.
person
kunzmi
schedule
25.08.2013
Вы также можете прочитать руководство пользователя nvcc. .
- person Robert Crovella; 26.08.2013
Он не принимает опции для подавления предупреждений (-W*)
person
Leo
schedule
03.04.2015
-Xcompiler OPTIONS
- person Pavan Yalamanchili   schedule 25.08.2013