1. WIN10 + LibTorch 配置方法
LibTorch是Pytorch模型进行C++ 部署时会用到的库
Pytorch模型C++部署也可以使用TensorRT等库进行加速
下面的文章写的很好,参考了几篇文章中LibTorch的配置方法
https://blog.csdn.net/weixin_43917589/article/details/124509964
2. CUDA不可用的原因
提示:VS2022配置后,出现cuda::is_available():0,也就是cuda不可用。原因是不同版本的LibTorch,include目录下的header,lib目录下的dll和lib都可能发生了变化,直接粘贴以下依赖项可能报错
asmjit.lib
c10.lib
c10_cuda.lib
caffe2_detectron_ops_gpu.lib
caffe2_module_test_dynamic.lib
caffe2_nvrtc.lib
Caffe2_perfkernels_avx.lib
Caffe2_perfkernels_avx2.lib
Caffe2_perfkernels_avx512.lib
clog.lib
cpuinfo.lib
dnnl.lib
fbgemm.lib
fbjni.lib
kineto.lib
libprotobuf-lite.lib
libprotobuf.lib
libprotoc.lib
mkldnn.lib
pthreadpool.lib
pytorch_jni.lib
torch.lib
torch_cpu.lib
torch_cuda.lib
XNNPACK.lib
我使用的是1.9.0版本的LibTorch,11.1版本的CUDA,以下是我LibTorch lib文件夹内的文件
D:\workspace\3rdParty\libtorch\lib
对比可发现缺失了c10d.lib,torch_cuda_cpp.lib,torch_cuda_cu.lib
3. 解决的方法
3.1 添加缺失的附加依赖项
根据你的LibTorch到对应lib目录下找是否有缺失或更新的库
c10d.lib,torch_cuda_cpp.lib,torch_cuda_cu.lib
3.2 添加特殊的附加依赖项
第一行是解决CUDA不能使用的:无法解析的外部符号 int __cdecl at::cuda::warp_size
第二行是解决和模型相关的一个报错的
-INCLUDE:?warp_size@cuda@at@@YAHXZ
-INCLUDE:?searchsorted_cuda@native@at@@YA?AVTensor@2@AEBV32@0_N1@Z
3.3 找不到c10.dll
补齐这些缺失的lib,dll后,并在链接器添加了对应的内容后,报错问题解决