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

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
以下是我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后,并在链接器添加了对应的内容后,报错问题解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值