使用仿真模式的 nvcc 错误
Posted
技术标签:
【中文标题】使用仿真模式的 nvcc 错误【英文标题】:error in nvcc using emulation mode 【发布时间】:2010-02-22 06:30:30 【问题描述】:在尝试使用 Visual Studio 2008 从 NVIDIA GPU 计算 SDK 构建示例时,我收到了这个奇怪的错误:
"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
【问题讨论】:
【参考方案1】:我通过将环境变量“TEMP=%USERPROFILE%\Local Settings\Temp”替换为“TEMP=%SystemRoot%\TEMP”解决了这个问题。
【讨论】:
【参考方案2】:这是 NVIDIA VS2008 集成中的 known 旧错误。我们必须完成以下所有 3 个步骤来解决它。
set TEMP=%SystemRoot%\TEMP
检查并可能set PATH=
以避免任何引号"
无论如何都是多余的(而且很危险!)。只需删除它们:各个目录以分号;
分隔,空格不是问题
(假设您在默认位置安装了 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
【讨论】:
以上是关于使用仿真模式的 nvcc 错误的主要内容,如果未能解决你的问题,请参考以下文章
nvcc 错误:使用 bazel 构建 tensorflow 时,'cicc' 以状态 0xC0000005 (ACCESS_VIOLATION) 死亡