无法解析的外部符号 cudaLaunchKernel 等的解决方案

最近在编译.cu文件的时候出现了BUG

edit_dist.obj : error LNK2001: 无法解析的外部符号 cudaLaunchKernel
edit_dist.obj : error LNK2001: 无法解析的外部符号 __cudaPushCallConfiguration
edit_dist.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: __cdecl c10::cuda::CUDAStream::operator struct CUstream_st *(void)const " (__imp_??BCUDAStream@cuda@c10@@QEBAPEAUCUstream_st@@XZ)
edit_dist.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) class c10::cuda::CUDAStream __cdecl c10::cuda::getCurrentCUDAStream(signed char)" (__imp_?getCurrentCUDAStream@cuda@c10@@YA?AVCUDAStream@12@C@Z)
edit_dist.obj : error LNK2001: 无法解析的外部符号 __cudaPopCallConfiguration
edit_dist.obj : error LNK2001: 无法解析的外部符号 __cudaRegisterFatBinary
edit_dist.obj : error LNK2001: 无法解析的外部符号 __cudaRegisterFatBinaryEnd
edit_dist.obj : error LNK2001: 无法解析的外部符号 __cudaUnregisterFatBinary
edit_dist.obj : error LNK2001: 无法解析的外部符号 __cudaRegisterVar
edit_dist.obj : error LNK2001: 无法解析的外部符号 __cudaRegisterFunction
build\lib.win-amd64-cpython-38\fairseq\libnat_cuda.cp38-win_amd64.pyd : fatal error LNK1120: 10 个无法解析的外部命令

网上查找了一圈没有满意的答案,自己尝试了一下,将该extension改为cpp_extension.CUDAExtension 可以解决问题。

你可能感兴趣的:(Python,Machine,Learning,Pytorch,python,pytorch)