# NVIDIA Container Toolkit 安裝筆記 ###### tags: `Edge AI` `Nvidia` `Jetson` `System Setup` `container` `nvidia-container`  ## NVIDIA Jetson 平台佈署相關筆記 ### 基本環境設定 - [Jetson AGX Xavier 系統環境設定1_在windows10環境連接與安裝](https://hackmd.io/@YungHuiHsu/HJ2lcU4Rj) - [Jetson AGX Xavier 系統環境設定2_Docker安裝或從源程式碼編譯](https://hackmd.io/k-lnDTxVQDWo_V13WEnfOg) - [NVIDIA Container Toolkit 安裝筆記](https://hackmd.io/wADvyemZRDOeEduJXA9X7g) - [Jetson 邊緣裝置查詢系統性能指令jtop](https://hackmd.io/VXXV3T5GRIKi6ap8SkR-tg) - [Jetson Network Setup 網路設定](https://hackmd.io/WiqAB7pLSpm2863N2ISGXQ) - [OpenCV turns on cuda acceleration in Nvidia Jetson platform<br>OpenCV在Nvidia Jetson平台開啟cuda加速](https://hackmd.io/6IloyiWMQ_qbIpIE_c_1GA) ### 模型佈署與加速 - [[Object Detection_YOLO] YOLOv7 論文筆記](https://hackmd.io/xhLeIsoSToW0jL61QRWDcQ) - [Deploy YOLOv7 on Nvidia Jetson](https://hackmd.io/kZftj6AgQmWJsbXsswIwEQ) - [Convert PyTorch model to TensorRT for 3-8x speedup<br>將PyTorch模型轉換為TensorRT,實現3-8倍加速](https://hackmd.io/_oaJhYNqTvyL_h01X1Fdmw?both) - [Accelerate multi-streaming cameras with DeepStream and deploy custom (YOLO) models<br>使用DeepStream加速多串流攝影機並佈署客製(YOLO)模型](https://hackmd.io/@YungHuiHsu/rJKx-tv4h) - [Model Quantization Note 模型量化筆記](https://hackmd.io/riYLcrp1RuKHpVI22oEAXA) --- ## NVIDIA Docker安裝 在執行此操作前需要先安裝好NVIDIA Docker 說明與安裝指引見[nvidia-docker](https://github.com/NVIDIA/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 Driver Installation Quickstart Guide](https://docs.nvidia.com/datacenter/tesla/tesla-installation-notes/index.html) - [NVIDIA CUDA Installation Guide for Linux](https://docs.nvidia.com/cuda/cuda-installation-guide-linux/) ### NVIDIA Container Toolkit [Installation Guide](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker) ### 前提條件 #### NVIDIA Drivers :::info 由於採用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 (請注意,舊版驅動程序或分支不受支持 :::warning 驅動版本可能會限制你的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 ``` :::info Follow the official [instructions](https://docs.docker.com/engine/install/ubuntu/) for more details and [post-install actions](https://docs.docker.com/engine/install/linux-postinstall/). ::: #### 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 ``` :::warning 如果使用的機器是Jetson的話,並沒有nvidia-smi指令可以使用,引此要改安裝jetson-stats 以jtop檢視系統運作狀態。 詳見[Jetson 邊緣裝置查詢系統性能指令jtop](https://hackmd.io/@YungHuiHsu/H1kx5WdJn) :::
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up