ошибка в nvcc при использовании режима эмуляции - PullRequest
2 голосов
/ 22 февраля 2010

При попытке создать пример из SDK NVIDIA GPU Computing с использованием Visual Studio 2008 я получаю странную ошибку:

"C:\CUDA\bin\nvcc.exe"    -arch sm_10 -ccbin "C:\Program Files\Microsoft Visual Studio 9.0\VC\bin" -deviceemu -D_DEVICEEMU   -Xcompiler "/EHsc /W3 /nologo /Od /Zi   /MTd  " -I"C:\CUDA\include" -I"../../common/inc" -maxrregcount=32  --compile -o "Debug\matrixMul.cu.obj" "c:\Documents and Settings\All Users.SYSROOT\Application Data\NVIDIA Corporation\NVIDIA GPU Computing SDK\C\src\matrixMul\matrixMul.cu" 
nvcc fatal   : Could not open input file C:\DOCUME~1\Murali_Krishna05\Local Settings\Temp/tmpxft_000008cc_00000000-1

Ответы [ 2 ]

1 голос
/ 22 февраля 2010

Я решил эту проблему, заменив переменную среды "TEMP =% USERPROFILE% \ Local Settings \ Temp" на "TEMP =% SystemRoot% \ TEMP".

0 голосов
/ 18 октября 2016

Это известная старая ошибка в интеграции NVIDIA VS2008. Мы должны были сделать все следующие 3 шага, чтобы решить это.

  1. set TEMP=%SystemRoot%\TEMP
  2. проверьте и, возможно, set PATH=, чтобы избежать кавычек ", которые в любом случае излишни ( и опасны! ). Просто удалите их: отдельные каталоги разделяются точкой с запятой ; и пробелы не являются проблемой
  3. (при условии, что VS2008 установлен в месте по умолчанию и предназначен для обычных платформ Win64 и Win32), замените только первую пару скобок ( и ) в "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\amd64\vcvarsamd64.bat" и "C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat"

Пример для шага 3:

Заменить

@if not "%WindowsSdkDir%" == "" (
    set "PATH=%WindowsSdkDir%bin;%PATH%"
    set "INCLUDE=%WindowsSdkDir%include;%INCLUDE%"
    set "LIB=%WindowsSdkDir%lib;%LIB%"
)

по

@if "%WindowsSdkDir%" == "" @goto :SKIP_SET_SDK
set "PATH=%WindowsSdkDir%bin;%PATH%"
set "INCLUDE=%WindowsSdkDir%include;%INCLUDE%"
set "LIB=%WindowsSdkDir%lib;%LIB%"
:SKIP_SET_SDK
...