最近在编译.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
可以解决问题。