Vitis AI GPU dockerの環境構築をしたメモ

AI

XilinxのFPGAのAI開発環境である、Vitis-AI 2.5のGPU版を立ち上げてみました。

dockerやCUDAなど多くのものを事前にインストールする必要があります。

実際にGPU dockerの環境構築をした手順を紹介します。

 

Vitis AI GPU dockerの環境構築をしたメモ

Vitis-AI 2.5のGPU版の環境構築・セットアップをしました。

事前にインストールするものも多くあり、CPU版と比べて手間な作業になります。

 

但し、Vitis AI のサンプルプログラムなどもGPU版が前提で作られているケースが多いです。

後々楽になりますし、CPU版より確実に使いやすいです。

Vitis AI に関しては出来る限りGPU版をインストールしておくことを推奨します。

 

Vitis AI のインストール環境

Vitis AI のインストール要件に関しては下記公式ページに記載されています。

バージョンで要件が変わりますのでご注意下さい。(下記のリンクは2.5です)

Vitis-AI/system_requirements.md at 2.5 · Xilinx/Vitis-AI
Vitis AI is Xilinx’s development stack for AI inference on Xilinx hardware platforms, including both edge devices and Alveo cards. - Vitis-AI/system_requirement...

 

実際にVitis AI 2.5のGPU版をインストールした、筆者の環境は下記となります。

PC環境としては下記です。

  • CPU…Core i5 6400
  • GPU…NVIDIA GeForce GTX 1650
  • メモリ…16GB
  • SSD…500GB

 

Ubuntu・CUDAの環境としては下記になります。

  • Ubuntu 18.04    ※20.04でも確認済
  • CUDA-Toolkit 11.3 ※11.0,  11.4でも確認済

 

グラフィックボード

筆者が使用しているグラフィックボードに関しては玄人志向のGTX1650となります。

補助電源無しで取り付けやすく、そこそこの性能を出してくれるGPUです。

ただ機械学習させるにはGPUメモリが4GBしかなく、物足りないケースも多々です。

 

下記記事でGTX1650をPCに搭載した内容を紹介しています。(リンク先はこちら)

グラボの補助電源なしのメリット!玄人志向のGTX1650編

グラボの補助電源なしのメリット!玄人志向のGTX1650編
玄人志向のGTX1650を購入して、市販のデスクトップPCに取り付けてみました。 補助電源無しのタイプですので、グラフィックボードを挿し込むだけで動作可能です。 購入から取り付け、ドライバのインストールまでの流れを紹介します。

 

CUDA-Toolkit

Vitis AI 2.5の要求スペックは「NVIDIA GPU supporting CUDA 11.0 or higher」となります。

筆者の直近の環境はCUDA 11.3です。

※11.0でも11.4でも動作すること確認できています。

 

もし一度CUDA環境をリセットしたい場合は、下記記事を参考にしてください。

UbuntuでCUDAの削除から再インストールまでのメモ

UbuntuでCUDAの削除から再インストールまでのメモ
CUDAのインストールに失敗した場合、またバージョンを変更したい場合は多々あります。 UbuntuでCUDAの削除から再インストールまで実施しました。 自身への覚書含めて、ブログ記事として紹介します。

 

Ubuntu

Vitis AI 2.5では「18.04 or 20.04のUbuntu」が対応しています。

筆者の直近のUbuntu環境は18.04です。

※20.04でもインストールして動作することも確認しています。

 

もしUbuntuをPCにインストールしたい場合は下記記事をご参考下さい。

OS無しのPCにLinux(Ubuntu)をインストールしてみた

OS無しのPCにLinux(Ubuntu)をインストールしてみた
OS無しの中古PCを購入しましたので、Linuxをインストールしました。 Ubuntuを入れています。 ダウンロードからインストール方法まで紹介します。

 

メモリ

PCのメモリに関しては要求の記載はありませんが、理想は32GB以上あった方が良いです。

理由としてはVitis AI 2.5のGPU版をインストール時に16GBではメモリ不足になったからです。

但し、メモリ16GBでも仮想メモリを増やせばインストール可能です。(また別途後述)

 

下記記事でメモリ不足でインストール失敗した詳細を紹介しています。

Vitis AIでdocker_build_gpu.shが失敗するメモ

Vitis AIでdocker_build_gpu.shが失敗するメモ
VItis AIでGPU版のDockerをビルドすると失敗しました。 エラーの症状とメッセージ、ログをメモしておきます。 また原因を調べてみました。

 

ストレージ

ストレージに関しては最低でも200GB程度は空けておいた方が良いです。

GPU版のdockerインストールしただけで120GB近く容量を使います。

最初は500GBのSSDを使っていましたが、最後には1000GBのSSDと交換しました。

 

実際にSSDを交換した記事が下記となっています。

Linuxでクローン!ddコマンドからパーティション拡張までしてみた

Linuxでクローン!ddコマンドからパーティション拡張までしてみた
Linux(Ubuntu)でCドライブの容量が足りなくなり、SSDを交換しました。 ddコマンドでのクローン、またパーティション拡張まで対応しました。 無事500GB→1TBにSSDの容量アップできた旨を紹介します。

 

CUDA Toolkit をインストール

今回はCUDA Toolkit 11.3をインストールしました。

CUDA Toolkit 11.3 Downloads
Get CUDA Toolkit 11.3 for Linux and Windows.

 

下記のコマンドに関しては、あくまでUbuntu18.04 + CUDA Toolkit 11.3の場合です。

上記のダウンロードのページに記載している内容です。

インストールする環境によって異なります。必ずCUDAのダウンロードページをご確認下さい。

 

インストール後にはホームディレクトリで環境変数を追加しておきます。

sudo vim ~/.bashrc

 

再起動して nvidia-smi や nvcc -V で正常にインストールされているか分かります。

CUDA11.3、またNVIDIAのDriverが465.19.01であることが確認できました。

NVIDIA-SMI 465.19.01 Driver Version: 465.19.01 CUDA Version: 11.3

 

 

dockerのインストール

Vitis AIではdocker環境が必要となります。下記記事のように、docker環境を整えました。

VItis AI 2.5やPetaLinuxなどインストールしてみたメモ

「sudo docker run hello-world」の前に一度再起動して、dockerが動作するか確認します。

 

※ただ1回目は上手くいかず、下記記事を参考に2回目を実施したら上手くいきました。

内容としては同じはずですが、今回Ubuntuが18.04だったためか?結局分かりませんでした。

 https://penguin-coffeebreak.com/archives/333

 

Vitis AIのGPU版インストールする

Vitis AIの公式ページに従い、インストールします。

但し、筆者の環境(PCのメモリが16GB)ではメモリ不足でにエラーになりました。

そのためメモリスワップ(拡張メモリ)の容量を、更に16GB増やして対応します。

 

エラーが出た詳細は下記記事に記載しています。

Vitis AIでdocker_build_gpu.shが失敗するメモ

Vitis AIでdocker_build_gpu.shが失敗するメモ
VItis AIでGPU版のDockerをビルドすると失敗しました。 エラーの症状とメッセージ、ログをメモしておきます。 また原因を調べてみました。

 

GitHubからVitis AI をダウンロードします。

 

Vitis AIのdockerフォルダに移動して、GPU版をビルドします。(1~2時間かかりました)

 

無事ビルド出来ると、下記のように「Successfully…」という形でした。

 

dockerのイメージファイルを確認すると、合計で120GBほど使用しています。

 

Vitis AIのGPU版インストールフォルダを環境変数を追加しておいた方が良いです。

「~」箇所は各自で保存した場所です。下記追記しておけば、毎回入力せずに済みます。

sudo vim ~/.bashrc

 

NVIDIA-Container-Toolkitをインストールする

docker上でNVIDIAを使う場合は、コンテナへのToolkitもインストールします。

恐らくインストールしないと、dockerで動かすとき下記のようなエラーが出ます

docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]].

 

そのため、NVIDIA-Container-Toolkitをインストールします。

 

nvidia-container-cli info で正常にインストールされたか確認できます

 

Vitis AI 2.5 GPU docker を起動する

インストールしたVitis AIのフォルダからGPU dockerを起動できます。

下記のようにVitis AIのロゴが出てきて、VerとGPU版が表示されました。

Docker Image Version: 2.5.0.1260 (GPU)

まとめ

XilinxのFPGAのAI開発環境である、Vitis-AI 2.5のGPU版を立ち上げてみました。

サンプルプログラムなどもGPU版が前提で作られているケースが多いです。

 

Vitis AI に関しては出来る限りGPU版をインストールしておくことを推奨します。

是非皆さまも試してみて下さい。

コメント