changed 2 years ago
Published Linked with GitHub

NVIDIA Container Toolkit 安裝筆記

tags: Edge AI Nvidia Jetson System Setup container nvidia-container

NVIDIA Jetson 平台佈署相關筆記

基本環境設定

模型佈署與加速


NVIDIA Docker安裝

在執行此操作前需要先安裝好NVIDIA Docker
說明與安裝指引見nvidia-docker
最主要目的是讓你能在container內啟用GPU

在啟用docker時,用這個指令--runtime=nvidia啟用nvidia的 gpu



(source : https://developer.nvidia.com/zh-cn/blog/gpu-containers-runtime/)

服務架構如圖所示
需要先在Linux環境先確認/安裝 NVIDIA driver 然後再安裝Docker engine

NVIDIA Container Toolkit Installation Guide

前提條件

NVIDIA Drivers

由於採用Jetpack整包安裝,CUDA Driver等都已經安裝好了,這部分可略過

在開始之前,請確保你已經為你的Linux發行版安裝了NVIDIA驅動程序。建議使用發行版的軟件包管理器來安裝驅動程序,但也可以使用其他安裝機制(例如,從NVIDIA驅動程序下載中心下載.run安裝程序)。

有關使用軟件包管理器從官方CUDA網絡倉庫安裝驅動程序的說明,請按照本指南中的步驟進行。

Platform Requirements

運行NVIDIA Container Toolkit的先決條件列表如下。

  • GNU/Linux x86_64,內核版本>3.10

  • Docker >= 19.03(推薦使用,但某些發行版可能包含舊版的Docker。最低支持版本為1.12)

  • 架構>= Kepler (or compute capability 3.0)

  • NVIDIA Linux 驅動程序 >= 418.81.07 (請注意,舊版驅動程序或分支不受支持

驅動版本可能會限制你的CUDA能力。較新的英偉達驅動程序可以向後兼容CUDA工具包版本,但每個新版本的CUDA都需要一個最低的驅動程序版本。運行一個CUDA容器需要一台至少有一個CUDA功能的GPU的機器,以及與你所使用的CUDA工具包版本兼容的驅動程序。運行CUDA容器的機器只需要NVIDIA驅動程序,不需要安裝CUDA工具包。CUDA發行說明中包含了一個最小驅動程序和CUDA工具包版本的表格。

Container Device Interface (CDI) Support

從V1.12.0版本開始,NVIDIA Container Toolkit支持生成容器設備接口https://github.com/container-orchestrated-devices/container-device-interface_(CDI),以便與支持CDI的容器引擎和CLI一起使用。

詳見Container Device Interface (CDI) Suppor 一節

ps: 我在安裝時跳過CDI設定,因為後面操作是直接使用原始碼進行編譯,暫時未使用到docker,所以還沒看到問題出現

Docker安裝

以下步驟可用於在Ubuntu LTS(18.04、20.04和22.04)和Debian(Stretch、Buster)發行版上設置NVIDIA Container Toolkit。

Setting up Docker

Ubuntu上的Docker-CE可以使用Docker的官方便利腳本進行設置。

curl https://get.docker.com | sh \
  && sudo systemctl --now enable docker

Follow the official instructions for more details and post-install actions.

Setting up NVIDIA Container Toolkit

Setup the package repository and the GPG key:

distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
      && curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
      && curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
            sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
            sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

在更新軟件包列表後,安裝 nvidia-container-toolkit 包(以及依賴項)。

sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

配置Docker守護程序,使其能夠識別NVIDIA Container Runtime

sudo nvidia-ctk runtime configure --runtime=docker

完成設定後重啟Docker常駐程式

sudo systemctl restart docker

測試基本的CUDA container是否運作順利

sudo docker run --rm --runtime=nvidia --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi

如果使用的機器是Jetson的話,並沒有nvidia-smi指令可以使用,引此要改安裝jetson-stats 以jtop檢視系統運作狀態。 詳見Jetson 邊緣裝置查詢系統性能指令jtop

Select a repo