Hi, there,
Im trying to compile pytorch 1.11.0 from source on windows using vs 2019 with cuda 11.5 and cudnn 8.2 but faces linking error when compiling torch_cuda.vcxproj
.
below is the step to rebroduce.
- open
x64 Native Tools Command Propmt for VS 2019
from windows start menu. - set python and other dependencies
conda create -n ML3 python=3.7
conda activate ML3
conda install numpy ninja pyyaml mkl mkl-include setuptools cmake cffi typing
# download magma and mkl
set CMAKE_INCLUDE_PATH=%cd%\mkl\include
set LIB=%LIB%;%cd%\mkl\lib
set MAGMA_HOME=%cd%\magma
- set some variable and build
set USE_CUDA=1
set USE_CUDNN=1
set USE_NINJA=0
set CMAKE_GENERATOR=Visual Studio 16 2019
set CMAKE_GENERATOR_TOOLSET_VERSION=14.27
set BUILD_BINARY=1
set TORCH_CUDA_ARCH_LIST=7.5
set DISTUTILS_USE_SDK=1
python setup.py install
error log:
RegisterCUDA.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) class at::Tensor __cdecl at::native::slow_conv_transpose3d_cuda(class at::Tensor const &,class at::Tensor const &,cla
ss c10::ArrayRef<__int64>,class c10::optional<class at::Tensor> const &,class c10::ArrayRef<__int64>,class c10::ArrayRef<__int64>,class c10::ArrayRef<__int64>,class c10::ArrayRef<__int
64>)" (__imp_?slow_conv_transpose3d_cuda@native@at@@YA?AVTensor@2@AEBV32@0V?$ArrayRef@_J@c10@@AEBV?$optional@VTensor@at@@@5@1111@Z),函数 "class at::Tensor __cdecl at::A0x35b12c2b::`anony
mous namespace'::wrapper__slow_conv_transpose3d(class at::Tensor const &,class at::Tensor const &,class c10::ArrayRef<__int64>,class c10::optional<class at::Tensor> const &,class c10::
ArrayRef<__int64>,class c10::ArrayRef<__int64>,class c10::ArrayRef<__int64>,class c10::ArrayRef<__int64>)" (?wrapper__slow_conv_transpose3d@?A0x35b12c2b@1at@@YA?AVTensor@2@AEBV32@0V?$A
rrayRef@_J@c10@@AEBV?$optional@VTensor@at@@@5@1111@Z) 中引用了该符号 [D:\Code\Project\pytorch\pytorch-1.11.0\build\caffe2\torch_cuda.vcxproj]
RegisterCUDA.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) class at::Tensor & __cdecl at::native::slow_conv_transpose3d_out_cuda(class at::Tensor const &,class at::Tensor const
&,class c10::ArrayRef<__int64>,class c10::optional<class at::Tensor> const &,class c10::ArrayRef<__int64>,class c10::ArrayRef<__int64>,class c10::ArrayRef<__int64>,class c10::ArrayRef
<__int64>,class at::Tensor &)" (__imp_?slow_conv_transpose3d_out_cuda@native@at@@YAAEAVTensor@2@AEBV32@0V?$ArrayRef@_J@c10@@AEBV?$optional@VTensor@at@@@5@1111AEAV32@@Z),函数 "class at::T
ensor & __cdecl at::A0x35b12c2b::`anonymous namespace'::wrapper_out_slow_conv_transpose3d_out_out(class at::Tensor const &,class at::Tensor const &,class c10::ArrayRef<__int64>,class c
10::optional<class at::Tensor> const &,class c10::ArrayRef<__int64>,class c10::ArrayRef<__int64>,class c10::ArrayRef<__int64>,class c10::ArrayRef<__int64>,class at::Tensor &)" (?wrappe
r_out_slow_conv_transpose3d_out_out@?A0x35b12c2b@1at@@YAAEAVTensor@2@AEBV32@0V?$ArrayRef@_J@c10@@AEBV?$optional@VTensor@at@@@5@1111AEAV32@@Z) 中引用了该符号 [D:\Code\Project\pytorch\pytorch-1
.11.0\build\caffe2\torch_cuda.vcxproj]
RegisterCUDA.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) class at::Tensor & __cdecl at::native::_sspaddmm_out_only_sparse_cuda(class at::Tensor const &,class at::Tensor const
&,class at::Tensor const &,class c10::Scalar const &,class c10::Scalar const &,class at::Tensor &)" (__imp_?_sspaddmm_out_only_sparse_cuda@native@at@@YAAEAVTensor@2@AEBV32@00AEBVScala
r@c10@@1AEAV32@@Z),函数 "class at::Tensor & __cdecl at::A0x35b12c2b::`anonymous namespace'::wrapper_out_sspaddmm_out_out(class at::Tensor const &,class at::Tensor const &,class at::Tenso
r const &,class c10::Scalar const &,class c10::Scalar const &,class at::Tensor &)" (?wrapper_out_sspaddmm_out_out@?A0x35b12c2b@1at@@YAAEAVTensor@2@AEBV32@00AEBVScalar@c10@@1AEAV32@@Z)
中引用了该符号 [D:\Code\Project\pytorch\pytorch-1.11.0\build\caffe2\torch_cuda.vcxproj]
RegisterCUDA.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) class at::Tensor __cdecl at::native::trace_cuda(class at::Tensor const &)" (__imp_?trace_cuda@native@at@@YA?AVTensor@
2@AEBV32@@Z),函数 "class at::Tensor __cdecl at::A0x35b12c2b::`anonymous namespace'::wrapper__trace(class at::Tensor const &)" (?wrapper__trace@?A0x35b12c2b@1at@@YA?AVTensor@2@AEBV32@@Z)
中引用了该符号 [D:\Code\Project\pytorch\pytorch-1.11.0\build\caffe2\torch_cuda.vcxproj]
RegisterCUDA.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) class at::Tensor __cdecl at::native::tril_indices_cuda(__int64,__int64,__int64,class c10::optional<enum c10::ScalarTy
pe>,class c10::optional<enum c10::Layout>,class c10::optional<struct c10::Device>,class c10::optional<bool>)" (__imp_?tril_indices_cuda@native@at@@YA?AVTensor@2@_J00V?$optional@W4Scala
rType@c10@@@c10@@V?$optional@W4Layout@c10@@@5@V?$optional@UDevice@c10@@@5@V?$optional@_N@5@@Z),函数 "class at::Tensor __cdecl at::A0x35b12c2b::`anonymous namespace'::wrapper__tril_indice
s(__int64,__int64,__int64,class c10::optional<enum c10::ScalarType>,class c10::optional<enum c10::Layout>,class c10::optional<struct c10::Device>,class c10::optional<bool>)" (?wrapper_
_tril_indices@?A0x35b12c2b@1at@@YA?AVTensor@2@_J00V?$optional@W4ScalarType@c10@@@c10@@V?$optional@W4Layout@c10@@@5@V?$optional@UDevice@c10@@@5@V?$optional@_N@5@@Z) 中引用了该符号 [D:\Code\Pro
ject\pytorch\pytorch-1.11.0\build\caffe2\torch_cuda.vcxproj]
RegisterCUDA.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __cdecl at::native::structured_tril_cuda::impl(class at::Tensor const &,__int64,class at::Tensor const &
)" (__imp_?impl@structured_tril_cuda@native@at@@QEAAXAEBVTensor@3@_J0@Z),函数 "class at::Tensor __cdecl at::`anonymous namespace'::wrapper_tril(class at::Tensor const &,__int64)" (?wrapp
er_tril@?A0x35b12c2b@at@@YA?AVTensor@2@AEBV32@_J@Z) 中引用了该符号 [D:\Code\Project\pytorch\pytorch-1.11.0\build\caffe2\torch_cuda.vcxproj]
Is there any clue to fix this? Thanks in advance.