I installed V2022 (Version 17.14.14) along with the CUDA toolkit version 13.0.1
I have an RTX 5090 card on my window 11 and I just wanted to do some basic CUDA programming but whenever I tried to compile the basic program in VS2022, it would return the following error - MSB3721.
1>
1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\BuildCustomizations\CUDA 13.0.targets(803,9): error MSB3721: The command ““C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\bin\nvcc.exe” -gencode=arch=compute_89,code=“sm_89,compute_89” --use-local-env -ccbin “C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207\bin\HostX64\x64” -x cu -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\include” -I"D:\vcpkg\installed\x64-windows\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\include" -G --keep-dir CudaRuntime1\x64\Debug -maxrregcount=0 --machine 64 --compile -cudart static -g -DWIN32 -DWIN64 -D_DEBUG -D_CONSOLE -D_MBCS -Xcompiler “/EHsc /W3 /nologo /Od /FS /Zi /RTC1 /MD " -Xcompiler “/FdCudaRuntime1\x64\Debug\vc143.pdb” -o D:\Projects\CudaRuntime1\CudaRuntime1\x64\Debug\kernel.cu.obj “D:\Projects\CudaRuntime1\kernel.cu”” exited with code 1.
1> 0 Warning(s)
1> 1 Error(s)
1>
Searching in the output from VS2022
1> Task Parameter:GenerateLineInfo=False
1> Task Parameter:CodeGeneration=arch=compute_89,code=\"sm_89,compute_89\"
1> Task Parameter:FastCompile=Off
1> Task Parameter:GenerateRelocatableDeviceCode=False
1> Task Parameter:PtxAsOptionV=False
1> Task Parameter:RequiredIncludes=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\include
1> Task Parameter:GPUDebugInfo=True
1> Task Parameter:Emulation=False
1> Task Parameter:CommandLineTemplate="C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\bin\nvcc.exe" [CodeGeneration] --use-local-env -ccbin "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207\bin\HostX64\x64" -x cu [GenerateRelocatableDeviceCode] [ExtensibleWholeProgramCompilation] [Include] [RequiredIncludes] [InterleaveSourceInPTX] [GPUDebugInfo] [GenerateLineInfo] [Keep] [KeepDir] [FastMath] [MaxRegCount] [PtxAsOptionV] [SplitCompile] [FastCompile] [TargetMachinePlatform] [NvccCompilation] [CudaRuntime] [AdditionalOptions] [HostDebugInfo] [Emulation] [Defines] -Xcompiler "/EHsc [Warning] /nologo [Optimization] /FS [DebugInformationFormat] [RuntimeChecks] [Runtime] [TypeInfo]" -Xcompiler "/FdCudaRuntime1\x64\Debug\vc143.pdb" [CompileOut] "D:\Projects\CudaRuntime1\kernel.cu"
1> Task Parameter:CompileOut=D:\Projects\CudaRuntime1\CudaRuntime1\x64\Debug\kernel.cu.obj
1> Task Parameter:LogStandardErrorAsError=False
1> Task Parameter:Keep=False
1> cmd.exe /C "C:\Users\PRO X870-P WIFI\AppData\Local\Temp\tmpa8ff64e57d2f4698847e3d5893f96db1.cmd"
1> "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\bin\nvcc.exe" -gencode=arch=compute_89,code=\"sm_89,compute_89\" --use-local-env -ccbin "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207\bin\HostX64\x64" -x cu -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\include" -I"D:\vcpkg\installed\x64-windows\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\include" -G --keep-dir CudaRuntime1\x64\Debug -maxrregcount=0 --machine 64 --compile -cudart static -g -DWIN32 -DWIN64 -D_DEBUG -D_CONSOLE -D_MBCS -Xcompiler "/EHsc /W3 /nologo /Od /FS /Zi /RTC1 /MD " -Xcompiler "/FdCudaRuntime1\x64\Debug\vc143.pdb" -o D:\Projects\CudaRuntime1\CudaRuntime1\x64\Debug\kernel.cu.obj "D:\Projects\CudaRuntime1\kernel.cu"
1>
1> D:\Projects\CudaRuntime1>"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\bin\nvcc.exe" -gencode=arch=compute_89,code=\"sm_89,compute_89\" --use-local-env -ccbin "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207\bin\HostX64\x64" -x cu -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\include" -I"D:\vcpkg\installed\x64-windows\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\include" -G --keep-dir CudaRuntime1\x64\Debug -maxrregcount=0 --machine 64 --compile -cudart static -g -DWIN32 -DWIN64 -D_DEBUG -D_CONSOLE -D_MBCS -Xcompiler "/EHsc /W3 /nologo /Od /FS /Zi /RTC1 /MD " -Xcompiler "/FdCudaRuntime1\x64\Debug\vc143.pdb" -o D:\Projects\CudaRuntime1\CudaRuntime1\x64\Debug\kernel.cu.obj "D:\Projects\CudaRuntime1\kernel.cu"
1> C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\BuildCustomizations\CUDA 13.0.targets(803,9): error MSB3721: The command ""C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\bin\nvcc.exe" -gencode=arch=compute_89,code=\"sm_89,compute_89\" --use-local-env -ccbin "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207\bin\HostX64\x64" -x cu -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\include" -I"D:\vcpkg\installed\x64-windows\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\include" -G --keep-dir CudaRuntime1\x64\Debug -maxrregcount=0 --machine 64 --compile -cudart static -g -DWIN32 -DWIN64 -D_DEBUG -D_CONSOLE -D_MBCS -Xcompiler "/EHsc /W3 /nologo /Od /FS /Zi /RTC1 /MD " -Xcompiler "/FdCudaRuntime1\x64\Debug\vc143.pdb" -o D:\Projects\CudaRuntime1\CudaRuntime1\x64\Debug\kernel.cu.obj "D:\Projects\CudaRuntime1\kernel.cu"" exited with code 1.
1> Done executing task "CudaCompile" -- FAILED.
1> Done building target "CudaBuildCore" in project "CudaRuntime1.vcxproj" -- FAILED.
1>
1> Done building project "CudaRuntime1.vcxproj" -- FAILED.
1> Done executing task "MSBuild" -- FAILED.
1>Done building target "CudaBuild" in project "CudaRuntime1.vcxproj" -- FAILED.
1>
1>Done building project "CudaRuntime1.vcxproj" -- FAILED.
1>
But that doesn’t help me much.
I have made no changes to the codes at all except for the code generation from compute_75 to compute_89. I don’t know why it doesn’t work. I have reinstalled VS2022 and removed all previous instances of CUDA toolkits and only reinstalled CUDA 13.
Update:
Here is where I tried to run command in the x64 native tool command prompt
C:\Program Files\Microsoft Visual Studio\2022\Community>"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\bin\nvcc.exe" -gencode=arch=compute_120,code=\"sm_120,compute_120\" --use-local-env -ccbin "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207\bin\HostX64\x64" -x cu -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\include" -I"D:\vcpkg\installed\x64-windows\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\include" -G --keep-dir CudaRuntime1\x64\Debug -maxrregcount=0 --machine 64 --compile -cudart static --allow-unsupported-compiler -g -DWIN32 -DWIN64 -D_DEBUG -D_CONSOLE -D_MBCS -Xcompiler "/EHsc /W3 /nologo /Od /FS /Zi /RTC1 /MD " -Xcompiler "/FdCudaRuntime1\x64\Debug\vc143.pdb" -o D:\Projects\CudaRuntime1\CudaRuntime1\x64\Debug\kernel.cu.obj "D:\Projects\CudaRuntime1\kernel.cu"
kernel.cu
tmpxft_00001e88_00000000-7_kernel.cudafe1.cpp
C:\Users\PROX87~1\AppData\Local\Temp\tmpxft_00001e88_00000000-7_kernel.cudafe1.cpp: fatal error C1041: cannot open program database 'C:\Program Files\Microsoft Visual Studio\2022\Community\CudaRuntime1\x64\Debug\vc143.pdb'; if multiple CL.EXE write to the same .PDB file, please use /FS
C:\Program Files\Microsoft Visual Studio\2022\Community>
first it compiled about missing vc143.pdb, I removed that since I didn’t think it was needed but this is the next error
C:\Program Files\Microsoft Visual Studio\2022\Community>"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\bin\nvcc.exe" -gencode=arch=compute_120,code=\"sm_120,compute_120\" --use-local-env -ccbin "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207\bin\HostX64\x64" -x cu -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\include" -I"D:\vcpkg\installed\x64-windows\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\include" -G --keep-dir CudaRuntime1\x64\Debug -maxrregcount=0 --machine 64 --compile -cudart static --allow-unsupported-compiler -g -DWIN32 -DWIN64 -D_DEBUG -D_CONSOLE -D_MBCS -Xcompiler "/EHsc /W3 /nologo /Od /FS /Zi /RTC1 /MD " -o D:\Projects\CudaRuntime1\CudaRuntime1\x64\Debug\kernel.cu.obj "D:\Projects\CudaRuntime1\kernel.cu"
kernel.cu
tmpxft_00006060_00000000-7_kernel.cudafe1.cpp
C:\Users\PROX87~1\AppData\Local\Temp\tmpxft_00006060_00000000-7_kernel.cudafe1.cpp: fatal error C1041: cannot open program database 'C:\Program Files\Microsoft Visual Studio\2022\Community\vc140.pdb'; if multiple CL.EXE write to the same .PDB file, please use /FS
Now it is asking about vc140.pdb. This has me puzzled even further.
Looking at the command it seem the path to the pdb file is wrong, so I looked into CUDA Linker and CUDA C/C++ sections and their respective command line
"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\bin\nvcc.exe" -dlink -o CudaRuntime1\x64\Debug\CudaRuntime1.device-link.obj -Xcompiler "/EHsc /nologo /Zi " -Xcompiler "/Fd[ProgramDataBaseFileName]" -L"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\bin\x64/crt" -L"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\lib\x64"
I noticed “[ProgramDataBaseFileName]” It is probably the issue, but I don’t know where it is being set. Does anyone have any idea?