libtorch:
从这里选择库下载:
https://pytorch.org/get-started/locally/
相关测试参考代码:
libtorch-yolov5: https://github.com/yasenh/libtorch-yolov5
yolov5: https://github.com/ultralytics/yolov5z
注意: 需要转换为 yolov5s.torchscript.pt 最新版本中不需要修改export.py,需要指定CPU还是GPU,
GPU与CPU生成的 script.pt不能共用(不知道原因)
我是windows系统vs2019, cmake gui来配置;
其中,系统拥有8张GPU显卡, 如何单独使用GPU显卡请修改:
//判断CUDA是否可以使用与数量
std::cout << "cuda::is_available():" << torch::cuda::is_available() << std::endl;
std::cout << "cuda::cudnn_is_available():" << torch::cuda::cudnn_is_available() << std::endl;
std::cout << "cuda::device_count():" << torch::cuda::device_count() << std::endl;
//固定到那张GPU显卡
#include "cuda_runtime_api.h"
int gpu_id; //从0开始,我的是8张固: 0~8
cudaSetDevice(gpu_id);
//请修改Detector::Detector中的部分:
//加载到那种显卡中
module_ = torch::jit::load(model_path, torch::Device(torch::DeviceType::CUDA, index));
//我最开始后面的没有写,以为 module_.to(device_); 可以,结果报错:Expected all tensors to be on the same device, but found at least two devices, cuda:1 and cuda:0!
//后面修改上面即可实现了GPU的选择;
//Pytorch中与 CUDA_VISIBLE_DEVICES 有关;
我发现,在多线程时,GPU利用率很低,但是处理花的时间很长不知道为什么?