coreylowman / cudarc

Safe rust wrapper around CUDA toolkit

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Link errors

David-OConnor opened this issue · comments

cuardc version: 0.9.16
Code: let dev = CudaDevice::new(0).unwrap();
OS: Windows 11
CUDA version: 12.2
Env vars: CUDA_PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2 PATH includes C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2\lib\x64 and C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2\bin

Error:

error: linking with `link.exe` failed: exit code: 1120
  |
  = note: "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.37.32822\\bin\\HostX64\\x64\\link.exe" "/NOLOGO" "C:\\Users\\the_a\\AppData\\Local\\Temp\\rustc715NUu\\symbols.o" "C:\\Users\\the_a\\code\\wf-lab\\target\\debug\\deps\\wf_lab.10s3ml32re28r45.rcgu.o" "C:\\Users\\the_a\\code\\wf-lab\\target\\debug\\deps\\wf_lab.12p929mljg17q4fp.rcgu.o" "C:\\Users\\the_a\\code\\wf-lab\\target\\debug\\deps\\wf_lab.142478tvv64viq7m.rcgu.o" "C:\\Users\\the_a

// (Lots more like this)
c.natvis" "/NATVIS:C:\\Users\\the_a\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\libcore.natvis" "/NATVIS:C:\\Users\\the_a\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\libstd.natvis"
  = note: LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library
          cuda.lib : error LNK2019: unresolved external symbol __cudaRegisterFatBinary referenced in function "void __cdecl __nv_cudaEntityRegisterCallback(void * *)" (?__nv_cudaEntityRegisterCallback@@YAXPEAPEAX@Z)
          cuda.lib : error LNK2019: unresolved external symbol __cudaRegisterFatBinaryEnd referenced in function "void __cdecl __nv_cudaEntityRegisterCallback(void * *)" (?__nv_cudaEntityRegisterCallback@@YAXPEAPEAX@Z)
          cuda.lib : error LNK2019: unresolved external symbol __cudaUnregisterFatBinary referenced in function "void __cdecl __cudaUnregisterBinaryUtil(void)" (?__cudaUnregisterBinaryUtil@@YAXXZ)
          libcudarc-010c88a39990dc96.rlib(cudarc-010c88a39990dc96.cudarc.d22d25cd0504c56e-cgu.7.rcgu.o) : error LNK2019: unresolved external symbol cuGetErrorName referenced in function _ZN6cudarc6driver6result11DriverError10error_name17h654da8a563b73a5eE
          libcudarc-010c88a39990dc96.rlib(cudarc-010c88a39990dc96.cudarc.d22d25cd0504c56e-cgu.7.rcgu.o) : error LNK2019: unresolved external symbol cuGetErrorString referenced in function _ZN6cudarc6driver6result11DriverError12error_string17h5e1195bc53aedcb7E
          libcudarc-010c88a39990dc96.rlib(cudarc-010c88a39990dc96.cudarc.d22d25cd0504c56e-cgu.7.rcgu.o) : error LNK2019: unresolved external symbol cuInit referenced in function _ZN6cudarc6driver6result4init17h04a484664c8bd2c9E
          libcudarc-010c88a39990dc96.rlib(cudarc-010c88a39990dc96.cudarc.d22d25cd0504c56e-cgu.7.rcgu.o) : error LNK2019: unresolved external symbol cuOccupancyAvailableDynamicSMemPerBlock referenced in function _Z
          
          // etc
          
                    libcudarc-010c88a39990dc96.rlib(cudarc-010c88a39990dc96.cudarc.d22d25cd0504c56e-cgu.5.rcgu.o) : error LNK2019: unresolved external symbol cuModuleUnload referenced in function _ZN6cudarc6driver6result6module6unload17hede6605658df5f75E
          libcudarc-010c88a39990dc96.rlib(cudarc-010c88a39990dc96.cudarc.d22d25cd0504c56e-cgu.5.rcgu.o) : error LNK2019: unresolved external symbol cuProfilerStart referenced in function _ZN6cudarc6driver4safe7profile14profiler_start17hdcb339a3923058f2E
          libcudarc-010c88a39990dc96.rlib(cudarc-010c88a39990dc96.cudarc.d22d25cd0504c56e-cgu.5.rcgu.o) : error LNK2019: unresolved external symbol cuProfilerStop referenced in function _ZN6cudarc6driver4safe7profile13profiler_stop17h27dbeefdd49e68ceE
          C:\Users\the_a\code\wf-lab\target\debug\deps\wf_lab.exe : fatal error LNK1120: 47 unresolved externals

Any ideas? Is there any installation steps required other than install CUDA, and add cudarc to Cargo.toml? Of note, nvcc C++ programs compile and run correctly. I appreciate it!

Sorry about this - false alarm. It works great! I still had remnants of code and build scripts using FFI/cc that were broken, and triggering this error. Nothing to do with cudarc.