onnxruntime-gpu 使用和配置

最近把 F5-TTS 导出了 onnx,这个是用 GPU 的时候关于 onnxruntime-gpu 的配置。

pip install onnxruntime-gpu onnxruntime-tools -i https://pypi.tuna.tsinghua.edu.cn/simple

注意版本的对应:

在这里插入图片描述
检查是否支持的 GPU 环境:

import onnxruntime as ort
print(ort.__version__)  # 查看 onnxruntime 版本

# 检查 GPU 是否在执行提供程序中
providers = ort.get_all_providers()

# ['TensorrtExecutionProvider', 'CUDAExecutionProvider', 'MIGraphXExecutionProvider', 'ROCMExecutionProvider', 'OpenVINOExecutionProvider', 'DnnlExecutionProvider', 'TvmExecutionProvider', 'VitisAIExecutionProvider', 'QNNExecutionProvider', 'NnapiExecutionProvider', 'VSINPUExecutionProvider', 'JsExecutionProvider', 'CoreMLExecutionProvider', 'ArmNNExecutionProvider', 'ACLExecutionProvider', 'DmlExecutionProvider', 'RknpuExecutionProvider', 'WebNNExecutionProvider', 'WebGpuExecutionProvider', 'XnnpackExecutionProvider', 'CANNExecutionProvider', 'AzureExecutionProvider', 'CPUExecutionProvider']

if 'CUDAExecutionProvider' in providers:
    print("CUDA GPU support is available")
else:
    print("CUDA GPU support is not available")

指定 CUDAExecutionProvider:

import onnxruntime as ort
sess_options = ort.SessionOptions()
session = ort.InferenceSession("model.onnx", providers=["CUDAExecutionProvider"], sess_options=sess_options)

量化:

from onnxruntime.quantization import quantize_dynamic, QuantType
quantize_dynamic("model.onnx", "model_quant.onnx", weight_type=QuantType.QInt8)

同时也可以简单测一下:

# 创建 ONNX Runtime 推理会话
session = ort.InferenceSession("model.onnx", providers=["CUDAExecutionProvider"])

# 测试推理
input_data = {"input_name": ...}  # 替换为实际输入
outputs = session.run(None, input_data)
print(outputs)

### ONNX Runtime GPU 版本安装 为了使用 `onnxruntime-gpu` 进行推理,首先需要确保环境中已正确配置 CUDA cuDNN 库。接着可以通过 pip 安装特定于 GPU 的 ONNX Runtime 软件包[^1]。 ```bash pip install onnxruntime-gpu ``` ### 加载模型并执行推理 一旦环境准备就绪,可以加载一个已经转换成 ONNX 格式的模型文件,并通过 ONNX Runtime 执行推理操作。下面是一个简单的 Python 例子来展示这一过程: ```python import numpy as np import onnxruntime as ort from PIL import Image, ImageOps import torchvision.transforms.functional as TF # 创建会话选项以启用GPU加速 sess_options = ort.SessionOptions() sess_options.enable_cuda = True # 初始化Session对象时指定使用GPU设备 session = ort.InferenceSession("model.onnx", sess_options=sess_options) # 准备输入数据 (这里假设模型接受图像作为输入) image_path = "example.jpg" img = Image.open(image_path).convert('RGB') preprocessed_img = ImageOps.fit(img, (224, 224), Image.ANTIALIAS) tensor = TF.to_tensor(preprocessed_img)[None,:,:,:] # 将numpy数组转化为适合ONNX运行时使用的格式 input_name = session.get_inputs()[0].name output_name = session.get_outputs()[0].name result = session.run([output_name], {input_name: tensor.numpy()})[0] print(result) ``` 这段代码展示了如何设置会话参数以利用 GPU 来提高性能以及怎样调用 `InferenceSession` 对象来进行预测。注意,在创建 Session 实例之前定义了 `enable_cuda=True` 参数,这告诉 ONNX Runtime 使用可用的 NVIDIA 显卡资源而不是 CPU[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

WGS.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值