我在电脑上实现的gpu调用版本为,cuda10.2 ,cudnn10.2 ,libtorch1.8.1+cu102 显卡驱动版本为441.22,要注意显卡驱动和cuda匹配,网上很多可以查到。下面说一下我都遇见了那些问题。
1,未加载kernelbase.pdb,c10::Error, 这个问题很可能是你版本没有对应,或者vs没有成功调用cuda。用以下两句话检测是否调用成功:如果没有函数说明你没有包含头文件#include<torch/torch.h>
std::cout << torch::cuda::cudnn_is_available() << endl;//输出为1,成功
std::cout << torch::cuda::is_available()<<endl;//输出为1,成功
如果输出为零,在属性页,链接器-命令行-其他选项加入:
/INCLUDE:?warp_size@cuda@at@@YAHXZ
如果加入这句话后,报这句话无法解析,将你libtorch下lib文件中的.lib的项全部加入属性页的附加依赖项中。
2,未加载kernelbase.pdb,std::runtime_error, 我一直以为是库不对应或者模型问题,但实际上我的问题出在了声明前向传播容器的时候。
std::vector<torch::jit::IValue> inputs