Unable to compile a basic CUDA 13 template project in VS2022

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?

2 Likes

Hi I think I have encountered same issue.
Could you share your solution if you succeded solve the problem?