1、libtorch找到与自己cuda相匹配的版本;

2、配置visual studio:

1)配置包含目录

2)配置库目录:

3)配置链接器:

也可以输入自己所需的lib文件名:

asmjit.lib
c10.lib
c10_cuda.lib
caffe2_nvrtc.lib
cpuinfo.lib
dnnl.lib
fbgemm.lib
fmt.lib
kineto.lib
libprotobuf.lib
libprotobuf-lite.lib
libprotoc.lib
microkernels-prod.lib
pthreadpool.lib
sleef.lib
torch.lib
torch_cpu.lib
torch_cuda.lib
XNNPACK.lib

4)配置动态链接库:

动态链接库需要放入指定位置,有三种做法:

【1】直接将libtorch所需的dll文件放入与生成的exe文件同一个文件夹内;

【2】将libtorch的bin目录配置到windows的系统环境变量的path中,注意需要刷新系统环境变量或者重启系统才能生效。

【3】将libtorch的bin目录配置到visual studio的“环境”属性中:

PATH=E:\vs_prj\3rdparty\libtorch2.6.0_cu11.8\bin\release;%PATH%

4、libtorch的测试代码:

#include<torch/torch.h>
#include<torch/script.h>

int main() 
{
    std::cout << "cuda::is_available():\t" << torch::cuda::is_available() << "\n";
    std::cout << "cuda::cudnn is_available():\t" << torch::cuda::cudnn_is_available() << "\n";
    std::cout << "cuda::device():\t" << torch::cuda::device_count() << "\n";

    auto a = torch::rand({ 8, 16 });
    if (torch::cuda::is_available()) 
    {
        std::cout << "cuda available" << std::endl;
    }
    else
    {
        std::cout << "cuda not available" << std::endl;
    }
    std::cout << a << std::endl;

    torch::Tensor tensor = torch::eye(3);
    std::cout << tensor << std::endl;

    return 0;
}

运行结果:

5、最后,如果发现配置好了libtorch后,libtorch的cuda仍然是不可用的,那么只需要添加

/INCLUDE:?warp_size@cuda@at@@YAHXZ

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐