当前位置: 首页 > news >正文

conda 环境安装onnx-runtime

1、ubuntu 系统中已安装cuda12.8

2、版本兼容

3、安装过程

# 1. 激活环境

conda create -n onnx_dev python=3.10
conda activate onnx_dev

# 2. 安装 cuDNN(先搜索可用版本)
conda search cudnn -c conda-forge
# 选择版本
conda install cudnn==9.8.0.87 -c conda-forge
# 验证库文件是否存在
ls $CONDA_PREFIX/lib/libcudnn.so.9


# 3安装安装 TensorRT
pip install tensorrt==10.11.0.33 --extra-index-url https://pypi.nvidia.com
# 验证库文件是否存在
sudo find / -name "libnvinfer.so*" 2>/dev/null


# 4安装onnxruntime-gpu
onnxruntime-gpu==1.21.0

5 # 加入环境变量中
export LD_LIBRARY_PATH=/home/server/miniconda3/envs/ghm_onnx_dev/lib/python3.10/site-packages/tensorrt_libs:$LD_LIBRARY_PATH

3、验证

import onnxruntime as ort

print(ort.get_available_providers())

['TensorrtExecutionProvider', 'CUDAExecutionProvider', 'CPUExecutionProvider']

4、TensorrtExecutionProvider

TensorrtExecutionProvider(简称 TensorRT EP)是 ONNX Runtime 中的一个执行提供程序(Execution Provider),它的主要作用是将 ONNX 模型交给 NVIDIA TensorRT 引擎进行优化和推理,从而大幅提升在 NVIDIA GPU 上的运行性能

具体来说,它的作用和优势体现在以下几个方面:

  1. 深度硬件加速:它专门针对 NVIDIA RTX 或数据中心 GPU 进行了优化,能够充分利用 GPU 内部的 Tensor Core 以及 FP8、FP4 等底层架构优势,实现卓越的 AI 推理性能。
  2. 降低延迟与提升吞吐:相比于使用 DirectML 或普通的 CUDA 执行提供程序,TensorRT EP 能够显著降低推理延迟并提高吞吐量(例如在特定模型上吞吐量可提升 50%)。
  3. 即时编译与优化:它支持在最终用户设备上进行即时编译,自动对模型进行图优化和内核融合,生成高度优化的推理引擎,从而简化部署流程。
  4. 广泛的模型支持:它支持多种主流的 AI 模型架构,包括大语言模型(LLM)、扩散模型(Diffusion)以及传统的 CNN 等。

简而言之,如果你希望在 NVIDIA GPU 上获得极致的模型推理速度,在代码中指定TensorrtExecutionProvider是最佳选择。

6、示例代码

import onnxruntime as ort import numpy as np # 1. 配置 TensorRT 选项(可选,按需调整) tensorrt_provider_options = { "trt_fp16_enable": True, # 启用 FP16 混合精度,通常能显著加快推理速度 "trt_engine_cache_enable": True, # 开启引擎缓存 "trt_engine_cache_path": "./trt_cache", # 缓存编译后的引擎路径 } # 2. 定义执行提供者列表(按优先级排序) providers = [ ("TensorrtExecutionProvider", tensorrt_provider_options), # 优先使用 TensorRT ("CUDAExecutionProvider", {"device_id": 0}), # 备选使用普通 CUDA "CPUExecutionProvider" # 最终回退到 CPU ] # 3. 创建推理会话 model_path = "your_model.onnx" # 替换为你的模型路径 session = ort.InferenceSession(model_path, providers=providers) # 4. 检查当前实际激活的提供者 print("当前激活的执行提供者:", session.get_providers()[0]) # 5. 准备输入数据并进行推理 input_name = session.get_inputs()[0].name dummy_input = np.random.randn(1, 3, 224, 224).astype(np.float32) # 示例输入 outputs = session.run(None, {input_name: dummy_input}) print("推理结果形状:", outputs[0].shape)
http://www.jsqmd.com/news/1116347/

相关文章:

  • 鹤壁企业备酒清单,节前怎么备?
  • 如何在Windows电脑上制作官方macOS安装盘:跨平台解决方案指南
  • SPI接口EEPROM与微控制器的硬件架构与优化实践
  • 店铺会员小程序怎么做?附小程序开发公司推荐清单(2026年7月更新)含零代码SAAS、AI编程、源码定制交付
  • [特殊字符] 美国解除Anthropic模型封杀令 + 人形机器人连续工作6天仅0.01%错误率 + Apptronik Apollo 2亮相|AI+机器人热线
  • 数据从 Oracle 迁移到 GBase 8a 后,分页查询的不同实现方式总结(附:分片、分区、分桶的区别)
  • 2026实时音视频RTC SDK实测横评:技术参数、厂商能力与场景化选型指南
  • 如何用一套PHP接口免费获取四大音乐平台播放地址
  • ChanlunX通达信插件:3分钟掌握缠论量化分析的终极武器
  • 开源7自由度仿人机械臂:如何构建高性价比的物理AI研究平台?
  • VMPDump完全手册:高效破解VMProtect代码保护的专业逆向工程工具
  • 音乐歌词批量下载神器:163MusicLyrics 一站式歌词管理指南 [特殊字符]
  • 关于软工的一些概念性理解暨第一次阅读作
  • dpu-utilities架构设计:深入理解DPU工具集的模块化设计思想
  • 嵌入式系统中模拟电压感知与生成的核心技术与应用
  • 74HC32与PIC18F24K50实现高效键盘输入方案
  • AI论文生成神器有哪些?2026年精选11款写论文的AI指南,帮你搞定高质量毕业论文
  • 实战指南:如何用Real-ESRGAN-ncnn-vulkan高效实现图像超分辨率
  • 快速上手utdnsmasq:10分钟搭建你的DNS服务器
  • 博途PLC的值传输与指针传输
  • STM32与DS28EC20 1-Wire EEPROM嵌入式存储方案详解
  • HEIF Utility:5分钟掌握Windows平台HEIF图片查看与转换的终极解决方案
  • 安全最佳实践:ubctl工具在系统调试中的权限管理与安全配置
  • 乙方验收PPT怎么整才不踩雷?实测有用的避坑指南
  • Cowart本地插件:AI驱动无限画布如何重塑开发工作流
  • 第30篇:安全、对齐与合规——大模型走向产业落地的最后一道门槛
  • 大型项目Jest-extended性能优化:从20分钟到3分钟的实战策略
  • Mac视频预览革命:让Finder秒变全能播放器的终极方案
  • IS31FL3731 LED驱动与PIC24微控制器的应用指南
  • Kiran Biometrics多语言支持:国际化与本地化实现方案