Компилятор хоста по умолчанию, используемый nvcc для linux - PullRequest
4 голосов
/ 30 ноября 2011

Я использую CUDA 4.0 в Ubuntu 10.10 с GTX 570 (Compute Capcability 2.0), с набором компиляторов GCC.Насколько я понимаю, во время компиляции драйвер компилятора CUDA nvcc разбивает файлы .cu на код хоста и код устройства и вызывает компилятор хоста для компиляции кода хоста и компилирует код устройства отдельно.Наконец, он объединяет сгенерированный код объекта хоста и код PTX устройства в один исполняемый файл.

Для систем Linux, какой компилятор по умолчанию вызывается для компиляции кода хоста?Это компилятор C (gcc) или компилятор C ++ (g++) из набора GCC?

Ответы [ 2 ]

12 голосов
/ 20 марта 2013

Требуется опция -ccbin для nvcc, например, чтобы использовать icpc (компилятор Intel C ++), используйте nvcc -ccbin=icpc (предполагается, что icpc доступно в вашем $PATH).

Обратите внимание, что вы всегда должны передавать компилятор C ++ (g++, icpc и т. Д.), Так как nvcc обрабатывает код как C ++, даже если это код C.

5 голосов
/ 01 декабря 2011

AFAIK он использует g++ (чтобы быть более точным, он использует gcc с языком, установленным на c ++) и, конечно, g++ для окончательного связывания.Запустите nvcc с параметром --verbose, чтобы увидеть более подробную информацию, если хотите.

...