У меня проблема с попыткой скомпилировать мою программу с помощью nvcc для cuda. Я использую Visual Studio 2012 и CUDA 5.0.
Когда я запускаю сборку в режиме релиза, все идет хорошо.
В режиме отладки я получаю следующее сообщение об ошибке во время компиляции для моего первого файла .cu:
nvcc: фатальная ошибка: для фазы без ссылки требуется один входной файл, если указан выходной файл
Мои командные строки для режима выпуска:
C: \ Users \ Ernest \ Documents \ Matlab \ icem \ icem_cpp \ cudaicem> «C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v5.0 \ bin \ nvcc.exe» -gencode = arch = compute_13, code = \ «sm_13, compute_13 \» —use-local-env —cl-версия 2010 -ccbin «c: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ VC \ bin \ x86_amd64» -I «C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v5.0 \ include «-I» C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v5.0 \ include «—keep-dir» x64 \ Release «-maxrregcount = 0 —ptxas-options = -v —machine 64 —компилировать -D_WINDLL -D_MBCS -Xcompiler «/ EHsc / W3 / nologo / O2 / Zi / MD» -o «x64 \ Release \ Icem.cu.obj» » C: \ Users \ Ernest \ Documents \ Matlab \ ICEM \ icem_cpp \ cudaicem \ Icem.cu»
и для режима отладки:
C: \ Users \ Ernest \ Documents \ Matlab \ icem \ icem_cpp \ cudaicem> «C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v5.0 \ bin \ nvcc.exe» -gencode = arch = compute_13, code = \ «sm_13, compute_13 \» —use-local-env —cl-версия 2010 -ccbin «c: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ VC \ bin \ x86_amd64» -I «C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v5.0 \ include «-I» C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v5.0 \ include «-G —keep-dir» x64 \ Debug «- maxrregcount = 0 — машина 64 —компилировать -g -D_CUDACC_ 1 -D_WINDLL -D_MBCS -Xcompiler «/ EHsc / W3 / nologo / Od / Zi / RTC1 / MDd» -o «x64 \ Debug \ Icem.cu.obj» «C: \ Users \ Ernest \ Documents \ Matlab \ icem \ icem_cpp \ cudaicem \ Icem.cu»
Вы видите что-то не так со вторым? Я не вижу несколько входных файлов! Есть идеи, что я могу проверить?
Ответ был в опциях препроцессора. -D_CUDACC_ 1
была проблема.
Других решений пока нет …