Win10 + LibTorch: torch::cuda::is_available()报错解决方法

文章目录

  • 1. WIN10 + LibTorch 配置方法
  • 2. CUDA不可用的原因
  • 3. 解决的方法
    • 3.1 添加缺失的附加依赖项
    • 3.2 添加特殊的附加依赖项
    • 3.3 找不到c10.dll

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
Win10 + LibTorch: torch::cuda::is_available()报错解决方法_第1张图片
对比可发现缺失了c10d.lib,torch_cuda_cpp.lib,torch_cuda_cu.lib


3. 解决的方法

3.1 添加缺失的附加依赖项

Win10 + LibTorch: torch::cuda::is_available()报错解决方法_第2张图片
根据你的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

Win10 + LibTorch: torch::cuda::is_available()报错解决方法_第3张图片


3.3 找不到c10.dll

Win10 + LibTorch: torch::cuda::is_available()报错解决方法_第4张图片

补齐这些缺失的lib,dll后,并在链接器添加了对应的内容后,报错问题解决

你可能感兴趣的:(深度学习,人工智能,pytorch,c++,python)