2024-11-21 一站式 AI 平台生日大派对!2024-11-21 一站式 AI 平台生日大派对! 无问芯穹特别推出多项超值福利!立即参与
Skip to content
回到全部文章

ONNX Runtime 安装指南

ONNX Runtime 提供了一个高效、跨平台的模型执行引擎,它使得机器学习模型能够快速、无缝地部署到各种硬件上,无论是在云端、边缘设备还是本地环境。为了在 GPU 上运行 ONNX 模型,ONNX Runtime 需要依赖系统全局的 CUDA 和 cuDNN 环境。

在本教程中,我们将向您展示如何在带有 CUDA 支持的环境中安装作为推理引擎的 ONNX Runtime。本文分为两个部分:

第一部分介绍如何使用平台提供的预置镜像安装 ONNX Runtime;

第二部分将指导您如何从头开始手动安装 ONNX Runtime。

IMPORTANT

无论用哪种方式安装,都需要先确保已经安装了系统级 CUDA 和 cuDNN,才能安装 ONNX Runtime。如果您无法确认,请查看教程 NVIDIA CUDA Toolkit 与 PyTorch 安装中的 CUDA 的区别

第一部分:基于平台预置镜像安装 ONNX Runtime

如需在 AIStudio 平台使用 NVIDIA 的 CUDA Toolkit 和 cuDNN,最简便的方式是直接使用容器镜像。

AIStudio 平台镜像中心 提供了预置的 NVIDIA CUDA Toolkit 和 cuDNN 容器镜像 12.2.2-cudnn8-devel-ubuntu20.04 ,在第一部分中,我们将基于预置镜像进一步安装 ONNX Runtime 环境。

NOTE

托管于 Docker Hub 的 nvidia/cuda 镜像仓库 提供了同时包含 CUDA Toolkit 和 cuDNN 的 devel 镜像(部分 runtime 镜像也符合要求)。但由于运营商网络限制,您需要自行从 Docker Hub 下载镜像并导入到平台使用。

Step 0 选择系统级 CUDA 镜像

ONNX Runtime for inference 依赖于系统全局的 CUDA 环境。如果您使用的是 PyTorch 内置的 CUDA,那么这个 CUDA 只能用于 PyTorch,无法满足 ONNX Runtime 的依赖要求。因此,如果您的当前镜像没有系统级的 CUDA 以及 cuDNN,您将无法正常使用 ONNX Runtime。

为简化安装流程,我们建议选择平台上预置系统级 CUDA 的镜像,如下所示:

cuda:12.2.2-cudnn8-devel-ubuntu20.04

该镜像自带 CUDA 12.x 和 cuDNN 8。如果您选择不使用此镜像,那么您需要自行安装 NVIDIA CUDA Toolkit 和 cuDNN。

Step 1 安装依赖包

ONNX Runtime 的不同版本对 CUDA 和 cuDNN 版本要求有差异。根据官方文档列出的 Requirements,我们选择 ONNX Runtime 最新版,搭配使用 CUDA 12.x 和 cuDNN9。因此,需要在镜像中额外安装 cuDNN 9 版本。

依据 Nvidia 官方文档 Installing cuDNN on Linux 在 Ubuntu 系统中安装 cudnn9:

首先,更新系统包并安装 zlib:

bash
apt-get update
apt-get install zlib1g

接着,安装 cuDNN 9:

bash
apt-get install cudnn9-cuda-12

Step 2 安装 ONNX Runtime

在完成所有依赖安装后,您可以开始安装 ONNX Runtime。首先,根据 ONNX 官方文档要求,确保系统的语言环境设置为 en_US.UTF-8

bash
locale-gen en_US.UTF-8 
update-locale LANG=en_US.UTF-8

然后,使用 pip 安装 ONNX Runtime 的 GPU 版本:

bash
pip3 install onnxruntime-gpu

至此,您已经成功在带有系统级 CUDA 和 cuDNN 的 Docker 镜像中安装了 ONNX Runtime,您可以开始使用 ONNX Runtime 进行推理任务了。

第二部分:从零开始全新安装 ONNX Runtime

我们基于 Ubuntu 22.04 容器镜像安装 ONNX Runtime 环境。

Step 0 安装系统级 CUDA

请遵循 Nvidia 官方文档 NVIDIA CUDA Installation Guide for Linux,使用 Runfile 的方式手动安装 NVIDIA CUDA Toolkit。在使用 Runfile 安装时,请务必跳过 NVIDIA Driver

您也可以参考教程 在容器化 Ubuntu 22.04 上安装特定版本 CUDA/cuDNN

WARNING

NVIDIA 驱动程序版本由底层物理机控制。暂不支持在开发机中独立安装或更改 NVIDIA 驱动程序版本,只能使用物理机上已经安装的版本。

Step 1 安装系统级 cuDNN

请遵循 Nvidia 官方文档 Installing cuDNN on Linux 在 Ubuntu 系统中安装 cudnn9:

首先,更新系统包并安装 zlib:

bash
apt-get update
apt-get install zlib1g

接着,安装 cuDNN 9:

bash
apt-get install cudnn9-cuda-12

Step 2 安装 ONNX Runtime

在完成所有依赖安装后,您可以开始安装 ONNX Runtime。首先,根据 ONNX 官方文档要求,确保系统的语言环境设置为 en_US.UTF-8

bash
locale-gen en_US.UTF-8 
update-locale LANG=en_US.UTF-8

然后,使用 pip 安装 ONNX Runtime 的 GPU 版本:

bash
pip3 install onnxruntime-gpu

至此,您已经成功在带有系统级 CUDA 和 cuDNN 的 Docker 镜像中安装了 ONNX Runtime,您可以开始使用 ONNX Runtime 进行推理任务了。

结论

无论使用带有系统级 CUDA 和 cuDNN 的镜像,还是手动安装,您可以快速、简单地在 AIStudio 开发机中安装和运行 ONNX Runtime。

本文仅讲解了在 AIStudio 开发机中安装最新版 ONNX Runtime + CUDA 12.x + cuDNN9 的方法。如果您需要安装其他版本 ONNX Runtime,请参考 ONNX Runtime 官方文档。如需安装 CUDA 11.x / cuDNN8.x,可参考 在容器化 Ubuntu 22.04 上安装特定版本 CUDA/cuDNN