libtorch c++部署-使用GPU

环境搭建:win10上libtorch c++部署_alex1801的博客-CSDN博客

1、引用关系

以vs下libtorch引用CUDA为例:

包含目录:

libtorch_dir/include
libtorch_dir/include/torch/csrc/api/include

库目录:

libtorch_dir/lib

动态库:

c10.lib
c10_cuda.lib
torch_cpu.lib
torch_cuda.lib

测试代码:

#include<iostream>
#include<torch/script.h>
#include <torch/torch.h> # cuda相关函数头文件
#include<memory>

int main()
{
	std::cout <<"cuda::is_available():" << torch::cuda::is_available() << std::endl;
	system("pause");
}

        直接运行,输出: “cuda::is_available(): 0”,显卡未调用起来。

        Windows10系统下使用LibTorch 1.5、1.6,使用Visual Studio进行C++开发时,Torch::cuda::is_available()返回值为0(使用cmake来构建工程,是可以正常编译和执行)。

解决方法:

        1)使用VS2017及以上版本;

        2)windows上装的cuda版本需要与下载的libtorch的cuda版本相对应;

        3)在“属性 --> 链接器 --> 命令行 --> 其他选项”中添加:

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

        至此,问题解决。

2、cuda相关函数

        torch::cuda::is_available() // CUDA是否可用

        torch::cuda::cudnn_is_available() // cuDNN 是否可用

        torch::cuda::device_count() // 可使用的GPU个数

3、GPU/CPU模式

        libtorch默认使用的是CPU,设为使用GPU推理,只需将数据和模型加载至GPU中,API如下:

model.to(at::kCUDA); // 模型加载至GPU
timg = torch::ones({ 1, 3, 224, 224 }).to(at::kCUDA);  // 数据加载至GPU
std::vector<torch::jit::IValue> inputs;	
inputs.push_back(timg);

        数据/模型加载最佳方式:

torch::DeviceType device_type = at::kCPU; // 定义设备类型
if (torch::cuda::is_available())
    device_type = at::kCUDA;
model.to(device_type);
std::vector<torch::jit::IValue> inputs;
inputs.push_back(torch::ones({ 1, 3, 224, 224 }).to(device_type));
  • 20
    点赞
  • 81
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 26
    评论
TensorFlow-GPU是一种针对图形处理单元(GPU)进行优化的TensorFlow版本。相比于普通的TensorFlow,TensorFlow-GPU可以在使用GPU进行计算时提供更高的性能和更快的运行速度。 TensorFlow-GPU的优势主要体现在以下几个方面: 1. 并行计算能力:GPU适用于并行计算任务,TensorFlow-GPU能够利用GPU的并行计算能力,提高计算效率。在训练深度学习模型时,TensorFlow-GPU能够显著缩短模型训练的时间。 2. 大规模数据处理:在处理大规模的数据集时,TensorFlow-GPU能够更快地进行计算和模型训练。由于GPU的高并行计算能力,可以同时处理多个数据样本,并行化处理过程。 3. 高性能计算:TensorFlow-GPU通过针对具体GPU硬件的优化,能够充分发挥GPU的计算能力。这使得TensorFlow-GPU在计算密集型任务上具有明显的优势,在科学计算、深度学习等领域得到广泛应用。 4. 灵活性和易用性:TensorFlow-GPU兼容普通的TensorFlow代码,并且提供了额外的GPU加速功能。用户只需将代码中的TensorFlow库替换为TensorFlow-GPU库,并配置好GPU相关的环境,即可享受GPU加速带来的性能提升,无需修改大量代码。 总之,TensorFlow-GPU是在TensorFlow基础上针对GPU进行优化的版本,能够充分发挥GPU的并行计算能力,提供更高的性能和更快的运行速度。对于需要处理大规模数据集、进行深度学习和科学计算任务的用户来说,TensorFlow-GPU是一种非常有价值的工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jingbo1801

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值