• WIN11+CUAD11.2+vs2019+tensorTR8.6+Yolov3/4/5模型加速


    现在我的电脑已经安装配置 CUDA11.2,,cudnn11.2,vs2019.

    他们的安装方法可以参考我的博客如下:

    (105条消息) 2022最详细,最新的 Win11/WIN10 安装CUDA11.2和cuDNN(必坑之作)完美教程_Vertira的博客-CSDN博客_cuda11.2

    (105条消息) win11+显卡驱动+CUDA+CUDNN对应版本安装_Vertira的博客-CSDN博客 

    我这里从TensorRT下载开始

    官网下载地址:

    NVIDIA TensorRT 8.x Download | NVIDIA Developer

    先注册会员下载 。

    下载window10版本,win11 应该能用,支持CUDA11.1,11.2,11.3,11.4,,11.5,11.6

     

     下载完后,

     然后放到指定的位置解压 ,下面就是解压。

     需要的文件都有。

    这里只写C++部署,python部署这里忽略

    下面就要配置一下,和配置opencv 有点相同,也有点不同

     1)把这个路径添加到系统环境变量中,

    2)复制lib目录下的dll文件到cuda的bin下。

     1) 环境变量:系统的path ,如下

     

    2)找到自己安装的CUDA路径

    C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin [根据自己的cuda安装路径即可]

     

    4 安装uff和graphsurgeon

    打开conda的虚拟环境 ,分别cd 到 graphsurgeon,uf 的文件夹在,分别执行下面两个命令

    1. pip install graphsurgeon-0.4.6-py2.py3-none-any.whl
    2. pip install uff-0.6.9-py2.py3-none-any.whl

    文件名称要正确

    5 VS 2019配置TensorRT并测试
    找到sample_mnist.sln,用vs2019打开

     

     

    配置一下tensorRT,和配置opencv雷同,

    首先,VC++目录,包含目录(就是include文件夹),库目录,就是刚才的lib所在文件夹

     添加依赖项

    然后

     为了防止后面执行exe操作闪退,添加getchar()到main函数下(不加会有卡顿,亲测)

     编译成功后,会在 TensorRT8.4\TensorRT-8.4.3.1\bin路径下生成文件sample_mnist.exe

    这是一个可执行文件。

     

    测试数据(运行图中的py文件)

     

     运行,双击bin文件夹下的sample_mnist.exe

    1. &&&& RUNNING TensorRT.sample_mnist [TensorRT v8403] # D:\******\TensorRT8.4\TensorRT-8.4.3.1\bin\sample_mnist.exe
    2. [10/29/2022-22:51:36] [I] Building and running a GPU inference engine for MNIST
    3. [10/29/2022-22:51:38] [I] [TRT] [MemUsageChange] Init CUDA: CPU +385, GPU +0, now: CPU 10713, GPU 1132 (MiB)
    4. [10/29/2022-22:51:39] [I] [TRT] [MemUsageChange] Init builder kernel library: CPU +335, GPU +104, now: CPU 11240, GPU 1236 (MiB)
    5. [10/29/2022-22:51:40] [W] [TRT] The implicit batch dimension mode has been deprecated. Please create the network with NetworkDefinitionCreationFlag::kEXPLICIT_BATCH flag whenever possible.
    6. [10/29/2022-22:51:44] [I] [TRT] [MemUsageChange] Init cuBLAS/cuBLASLt: CPU +690, GPU +272, now: CPU 11803, GPU 1508 (MiB)
    7. [10/29/2022-22:51:48] [I] [TRT] [MemUsageChange] Init cuDNN: CPU +461, GPU +264, now: CPU 12264, GPU 1772 (MiB)
    8. [10/29/2022-22:51:48] [W] [TRT] TensorRT was linked against cuDNN 8.4.1 but loaded cuDNN 8.2.1
    9. [10/29/2022-22:51:48] [I] [TRT] Local timing cache in use. Profiling results in this builder pass will not be stored.
    10. [10/29/2022-22:52:04] [I] [TRT] Detected 1 inputs and 1 output network tensors.
    11. [10/29/2022-22:52:04] [I] [TRT] Total Host Persistent Memory: 9136
    12. [10/29/2022-22:52:04] [I] [TRT] Total Device Persistent Memory: 0
    13. [10/29/2022-22:52:04] [I] [TRT] Total Scratch Memory: 0
    14. [10/29/2022-22:52:04] [I] [TRT] [MemUsageStats] Peak memory usage of TRT CPU/GPU memory allocators: CPU 0 MiB, GPU 0 MiB
    15. [10/29/2022-22:52:04] [I] [TRT] [BlockAssignment] Algorithm ShiftNTopDown took 0.0454ms to assign 3 blocks to 10 nodes requiring 92164 bytes.
    16. [10/29/2022-22:52:04] [I] [TRT] Total Activation Memory: 92164
    17. [10/29/2022-22:52:04] [I] [TRT] [MemUsageChange] TensorRT-managed allocation in building engine: CPU +0, GPU +0, now: CPU 0, GPU 0 (MiB)
    18. [10/29/2022-22:52:04] [I] [TRT] [MemUsageChange] Init CUDA: CPU +0, GPU +0, now: CPU 12669, GPU 1894 (MiB)
    19. [10/29/2022-22:52:04] [I] [TRT] Loaded engine size: 1 MiB
    20. [10/29/2022-22:52:04] [I] [TRT] [MemUsageChange] TensorRT-managed allocation in engine deserialization: CPU +0, GPU +0, now: CPU 0, GPU 0 (MiB)
    21. [10/29/2022-22:52:04] [I] [TRT] [MemUsageChange] TensorRT-managed allocation in IExecutionContext creation: CPU +0, GPU +0, now: CPU 0, GPU 0 (MiB)
    22. [10/29/2022-22:52:04] [I] Input:
    23. @@@@@@@@@@@@@@@@@@@@@@@@@@@@
    24. @@@@@@@@@@@@@@@@@@@@@@@@@@@@
    25. @@@@@@@@@@@@@@@@@@@@@@@@@@@@
    26. @@@@@@@@@@@@@@@@@@@@@@@@@@@@
    27. @@@@@@@@@@@@@@@@@@@@@@@@@@@@
    28. @@@@@@@@@@@@@@@@.*@@@@@@@@@@
    29. @@@@@@@@@@@@@@@@.=@@@@@@@@@@
    30. @@@@@@@@@@@@+@@@.=@@@@@@@@@@
    31. @@@@@@@@@@@% #@@.=@@@@@@@@@@
    32. @@@@@@@@@@@% #@@.=@@@@@@@@@@
    33. @@@@@@@@@@@+ *@@:-@@@@@@@@@@
    34. @@@@@@@@@@@= *@@= @@@@@@@@@@
    35. @@@@@@@@@@@. #@@= @@@@@@@@@@
    36. @@@@@@@@@@= =++.-@@@@@@@@@@
    37. @@@@@@@@@@ =@@@@@@@@@@
    38. @@@@@@@@@@ :*## =@@@@@@@@@@
    39. @@@@@@@@@@:*@@@% =@@@@@@@@@@
    40. @@@@@@@@@@@@@@@% =@@@@@@@@@@
    41. @@@@@@@@@@@@@@@# =@@@@@@@@@@
    42. @@@@@@@@@@@@@@@# =@@@@@@@@@@
    43. @@@@@@@@@@@@@@@* *@@@@@@@@@@
    44. @@@@@@@@@@@@@@@= #@@@@@@@@@@
    45. @@@@@@@@@@@@@@@= #@@@@@@@@@@
    46. @@@@@@@@@@@@@@@=.@@@@@@@@@@@
    47. @@@@@@@@@@@@@@@++@@@@@@@@@@@
    48. @@@@@@@@@@@@@@@@@@@@@@@@@@@@
    49. @@@@@@@@@@@@@@@@@@@@@@@@@@@@
    50. @@@@@@@@@@@@@@@@@@@@@@@@@@@@
    51. [10/29/2022-22:52:04] [I] Output:
    52. 0:
    53. 1:
    54. 2:
    55. 3:
    56. 4: **********
    57. 5:
    58. 6:
    59. 7:
    60. 8:
    61. 9:

    到这里 看出只能证明 cuda,cudnn,cpu ,tensorRT配置成功(但是没有配置opencv,我没有配置,如果你要部署YOLO,opencv是必不可少的)。

    测试一个项目:

    我查了一下我的GPU的算力,后面会用到。

    1. W0708 10:08:38.641642 17232 gpu_context.cc:278] Please NOTE: device: 0, GPU Compute Capability: 8.6, Driver API Version: 11.6, Runtime API Version: 11.2
    2. W0708 10:08:38.688902 17232 gpu_context.cc:306] device: 0, cuDNN Version: 8.2.

    我的GPU的算例是 8.2

    项目地址:tensorrt跨平台部署

    也就是下面这个地址。
    mirrors / enazoe / yolo-tensorrt · GitCodeicon-default.png?t=M85Bhttps://gitcode.net/mirrors/enazoe/yolo-tensorrt?utm_source=csdn_github_accelerator

    把这个项目下载下来

    vs2019打开,和上面的一样,唯一的区别是  还需要配置opencv,感觉版本高点好opencv4.x应该可以。

     这个opencv3.x,4.x配置方法,网上多的是。这里我简化了。

    1)配置好TensorRT,

    2)配置opencv

     

     

    修改算力值,这个要根据显卡支持的算力来改,我的3060算力8.2

     c++17报错解决

     在右键属性配置种把test编译成exe ,detect编译成动态库,然后把test设成启动项

     

     

    如何把Ubuntu训练的模型 放在电脑上部署  我还在研究,会陆续更新进展

     参考:基于TensorRT的YOLO(V3\4\5)模型部署

  • 相关阅读:
    快来带您了解中秋节的前世今生
    【剑指offer59】队列的最大值
    通过一款插件动态观察ES分片如何分布
    【LeetCode_数组_遍历】628. 三个数的最大乘积
    Comparison method violates its general contract解决办法
    《计算机视觉技术与应用》-----第五章 边缘和轮廓
    单片机是不是嵌入式呢,老生常谈了
    virtual box 导入vdi虚拟系统文件.
    【C++】哈希——哈希的概念,应用以及闭散列和哈希桶的模拟实现
    子类加@Data后,IDEA调试时“出现”父类属性无值
  • 原文地址:https://blog.csdn.net/Vertira/article/details/127592872