Slide 1

Slide 1 text

ACRiルーム最新情報とAMD GPUサーバーのご紹介 ACRiルーム副室長/AMD 安藤 ©︎ 2024 Adaptive Computing Research Initiative - ACRi 1 第17回ACRiウェビナー:FPGAアクセラレータをもっとカンタンに

Slide 2

Slide 2 text

講演内容 • ACRiルーム最新情報 • AMD GPUサーバー導入の裏側 • GPUを活用したVitis AIチュートリアルの概要 ©︎ 2024 Adaptive Computing Research Initiative - ACRi 2

Slide 3

Slide 3 text

ACRiルーム最新情報 ©︎ 2024 Adaptive Computing Research Initiative - ACRi

Slide 4

Slide 4 text

ACRi ルーム ©︎ 2024 Adaptive Computing Research Initiative - ACRi 4 Alveo / VCK5000 Professors ACRi Founders • Digilent社 Arty A7-35T カード • 1サーバにArtyを15枚接続 • ユーザ毎にVMを割り当て ルーム FPGA Server • CPU: Core i9 (8 core /16 thread) • メモリ: DDR4 128GB (32GB x 4) • ストレージ: SSD M.2 1TB x2 • 開発環境インストール済み Arty A7-35T • 3時間単位で機材を無償で貸出し • リモートからアクセスして利用するスタイル • Forumを通じて大学教員やACRi企業が技術支援を実施 • Xilinxアクセラレータカード • Alveo U50 / U200 / U250 / U280 / VCK5000 Alveo Arty ACRi 参加企業 一般企業 学生 若手技術者 Start-up企業 技術力向上 テスト利用 技術力向上 のため 技術力向上 テスト利用 Instinct • AMD Instinct GPU • MI210 64GB

Slide 5

Slide 5 text

稼働中のFPGAボード • Arty A7-35T • LUT : 20.8K • FF : 41.6K • Block RAM : 225KB • DDR3 256MB • 80枚 • CMod A7-35T • LUT : 20.8K • FF : 41.6K • Block RAM : 225KB • 10枚 • Nexys A7-100T • LUT : 63.4K • FF : 126.8K • Block RAM : 607KB • DDR2 128MB • 10枚 ©︎ 2024 Adaptive Computing Research Initiative - ACRi 5 画像引用: https://digilent.com/reference/programmable-logic/arty-a7/start https://digilent.com/reference/programmable-logic/cmod-a7/start https://digilent.com/reference/programmable-logic/nexys-a7/start

Slide 6

Slide 6 text

FPGAボードサーバー • 稼働状況 • 物理サーバー数:10 • VM数:100 ©︎ 2024 Adaptive Computing Research Initiative - ACRi 6 画像引用: https://gw.acri.c.titech.ac.jp/wp/manual/gallery ACRiルーム移設前のサーバーの様子

Slide 7

Slide 7 text

Alveo / Instinct サーバー • Alveoサーバー • Instinctサーバー ©︎ 2024 Adaptive Computing Research Initiative - ACRi 7 • 共有サーバー • 予約なしでいつでも使えます VCK5000 Versal開発カード Instinct MI210

Slide 8

Slide 8 text

VCK5000 Versal開発カード • Versal AIコアシリーズ VC1902 • LUT : 900K • AI Engine : 400(INT8 MAC 128Tops) • プロセッサがタイル状に配置されたFPGAとの親和性の高い アーキテクチャ • XDNAとも呼ばれ、ラップトップ向けCPUにもNPUとして搭載 • AI Engine • ACRiブログ:AI を加速する AI Engine アーキテクチャ 解説と入門チュートリアル https://www.acri.c.titech.ac.jp/wordpress/archives/13108 • Vitis AI • ACRiルームでVitis AIを利用するチュートリアル https://gw.acri.c.titech.ac.jp/wp/manual/vitis-ai-rocm ©︎ 2024 Adaptive Computing Research Initiative - ACRi 8 AI Engineの構造

Slide 9

Slide 9 text

ACRiルーム利用状況 • ユーザー数:1475(2024/7/24時点) • 複数の大学の講義で活用されています ©︎ 2024 Adaptive Computing Research Initiative - ACRi 9 0 200 400 600 800 1000 1200 1400 1600

Slide 10

Slide 10 text

AMD GPUサーバー導入の裏側 ©︎ 2024 Adaptive Computing Research Initiative - ACRi

Slide 11

Slide 11 text

AMD Instinct MI210 • スペック概要 ©︎ 2024 Adaptive Computing Research Initiative - ACRi 11 大容量のVRAMを積んでいるので 生成AIで遊ぶのに良さそう!

Slide 12

Slide 12 text

ハードウェア面の準備 • MI210はデスクトップPC向けでない • 冷却 • 補助電源 • ホストマシン ©︎ 2024 Adaptive Computing Research Initiative - ACRi 12

Slide 13

Slide 13 text

冷却 • MI210はファン無しなので冷却ファンを作る • ACRiルームのマシンは自作PC • 300Wで動作OKに ©︎ 2024 Adaptive Computing Research Initiative - ACRi 13 1. ファンを取り付けるアダプタを印刷 2. ちょうど良いところにあったねじ穴にねじ止め 3. ファンを装着

Slide 14

Slide 14 text

補助電源 • MI210の補助電源はATX12V( EPS12V ) • ゲーム用GPUとは異なる • PCIe補助電源を無理に挿すと壊れます • マザーボード向けを1本 MI210に • 非推奨 ©︎ 2024 Adaptive Computing Research Initiative - ACRi 14 マザーボード 電源ユニット ATX12V ATX12V MI210 一見PCIe補助電源コネクタに見えるが 微妙にピンの形が違う

Slide 15

Slide 15 text

インストールの準備が完了 ©︎ 2024 Adaptive Computing Research Initiative - ACRi 15 自宅での検証の様子。PCケースが小さくて入らなかった

Slide 16

Slide 16 text

ACRiルームのマシンでトラブル • GPUドライバが立ち上がらない‥ • 原因 • MI210のPCIe BARを物理アドレス空間にマップできていなかった • 64GBメモリをPFとVFのふたつ分だけで128GBの領域が必要 • Intel 11世代 Core i7では物理アドレス空間が39bit(512GB)で不足 • 検証機のRyzen 9 7950Xは48bitで問題なかった • Intel 12世代(46bit)のマシンに交換してもらい解決 ©︎ 2024 Adaptive Computing Research Initiative - ACRi 16 [ 2.709472] amdgpu 0000:03:00.0: amdgpu: Fatal error during GPU init [ 2.709499] amdgpu: probe of 0000:03:00.0 failed with error -12

Slide 17

Slide 17 text

ソフトウェア面の準備 • AIを自由に試せるようにしたい • 必要なソフトウェアやAIモデルをインストールできる環境を提供 • Python仮想環境 • venv • conda • Docker • Vitis AI • カスタムイメージ • HTTPプロキシの導入 ©︎ 2024 Adaptive Computing Research Initiative - ACRi 17

Slide 18

Slide 18 text

ACRiルームの仕組み(Alveo系サーバーの場合) ©︎ 2024 Adaptive Computing Research Initiative - ACRi 18 aservX(物理ホスト) CPU:16 threads Mem:128GB as00X(コンテナ) CPU:8 threads Mem:64GB ファイル サーバー ファイル サーバー /dev/xclmgmt* /dev/dri/renderD* /dev/xfpga/* /dev/xvc_* /scratch /opt/xilinx/platforms /home/$USER /tools NFS NFS Local SSD ssh xrdp 認証 予約 サーバー ログイン サーバー 認証 サーバー Alveo start_container.sh cron 毎分実行 起動/停止/削除 参照 マウント NIS ユーザー 予約 利用

Slide 19

Slide 19 text

利用環境内でDockerが使える仕組み • 従来の利用環境はDockerで構築 • Docker内でDockerを動かせるようにするには特権モードが必要 • Rootless Docker in LXD • Rootless Dockerはユーザー権限で実行するDocker • ユーザーが自由にコンテナを使用できる • LXDはシステムコンテナ • コンテナ内でsystemdが動き、仮想マシンのように使える • Ansibleでコンテナ内にデスクトップ環境を構築 • rootを含むすべてのUID/GIDがホストで使われていない だろう番号に自動でマッピングされる • ホストのPCIeデバイスをDockerコンテナから 利用できるようにする ©︎ 2024 Adaptive Computing Research Initiative - ACRi 19 ホスト LXD Rootless Docker Vitis AI等 PCIeデバイス 利用環境

Slide 20

Slide 20 text

LXDで構築された利用環境の仕組み • LXDのraw.idmapで一般ユーザーのUID/GIDをホストと一致 • ホストのディスクやマウントされたNFSに利用環境からアクセスできる ©︎ 2024 Adaptive Computing Research Initiative - ACRi 20 ホスト LXD 利用環境 root root ??? user-a user-a user-b user-b UID idmap ??? ??? ??? ??? GID

Slide 21

Slide 21 text

利用環境内でDockerが使える仕組み • Rootless Dockerでユーザー権限でコンテナを使用する • コンテナ内のroot = 利用環境のユーザー • コンテナ内の一般ユーザーには未使用のUID/GIDを割り当てる ©︎ 2024 Adaptive Computing Research Initiative - ACRi 21 ホスト LXD Rootless Docker Vitis AI等 利用環境 root root ??? user-a user-a user-b user-b root UID idmap user-c ??? ??? /etc/subuid /etc/subgid ??? ??? group-d GID

Slide 22

Slide 22 text

コンテナ内でAMD GPUを利用する • ROCm • GPUの利用者はvideo/renderグループに属している必要あり • ホストのGIDをRootless Dockerコンテナまでつなげる ©︎ 2024 Adaptive Computing Research Initiative - ACRi 22 ホスト LXD Rootless Docker Vitis AI等 利用環境 root root ??? user-a user-a user-b user-b root UID idmap user-c ??? ??? /etc/subuid /etc/subgid ??? ??? group-d video video video render render render GID idmap

Slide 23

Slide 23 text

fserv9 HTTPプロキシの導入 • インターネットアクセス制限を緩和 • 従来ACRiルームからインターネットへのアクセスは禁止 • ホワイトリスト方式のプロキシ、ミラーを導入 • ACRiルームの他のサービスに影響がないよう下り帯域を制限 ©︎ 2024 Adaptive Computing Research Initiative - ACRi 23 HTTPプロキシ (squid) PyPIミラー (devpi-server) HuggingFaceミラー (olah) Internet .pypi.org .anaconda.org .huggingface.co .onnxruntime.ai .pytorch.org .github.com .docker.io .ubuntu.com .radeon.com など 利用環境

Slide 24

Slide 24 text

生成AIを動かしてみる • ROCm Blogs • 週1以上のペースでAIを中心としたGPU活用の記事を配信 • vLLMを動かす記事を試してみた • Rootless Dockerを使ってvLLMのDockerイメージの作成、動作に成功 ©︎ 2024 Adaptive Computing Research Initiative - ACRi 24 https://rocm.blogs.amd.com/artificial-intelligence/openllm/README.html

Slide 25

Slide 25 text

生成AIを動かしてみる • CyberAgentLM3-22B-Chat • 7/9プレスリリース • 22Bパラメータ(45GB) • MI210なら量子化なしでOK • vLLMで16リクエストを同時処理 • 計約160 tokens/sec ©︎ 2024 Adaptive Computing Research Initiative - ACRi 25 FPGAのエクストリームな使い方を聞いてみています

Slide 26

Slide 26 text

GPUを活用したVitis AIチュートリアルの概要 ©︎ 2024 Adaptive Computing Research Initiative - ACRi

Slide 27

Slide 27 text

Vitis AIによる画像分類チュートリアル • モデルの学習から推論までを体験 • 学習(GPU) • 量子化(GPU) • コンパイル(CPU) • 推論(AI Engine) ©︎ 2024 Adaptive Computing Research Initiative - ACRi 27 ACRiルームホームページのメニューから アクセスできます

Slide 28

Slide 28 text

画像分類モデルの学習 • CIFAR-10 • 10クラス画像分類データセット • モデルの学習 • ResNet9 • 9層の軽量なモデル • PyTorch Lightning • モデルの学習に必要となる一般的なテクニックが実装済み • MI210を使用し15分(200エポック)で精度95% ©︎ 2024 Adaptive Computing Research Initiative - ACRi 28 画像引用: https://www.cs.toronto.edu/~kriz/cifar.html CIFAR-10 画像分類データセット TensorBoardによる学習状況のモニタ

Slide 29

Slide 29 text

量子化、コンパイル • GPUで高速に量子化 • Vitis AIのDockerイメージはPythonのバージョンが古い • 必要なツールをソースコードからビルドして使用 • LightningModule内に量子化コードを実装 • Dockerを利用してコンパイル • コンパイラはバイナリ提供 ©︎ 2024 Adaptive Computing Research Initiative - ACRi 29 コンパイル済みモデルをNetronで確認

Slide 30

Slide 30 text

推論 • AI Engineを使用して推論を実行 • Pythonコードから推論を実行 • 前処理、後処理はPyTorchで実行 • データの入力にLightningDataModuleを再利用 • 推論結果をターミナルにビジュアルで表示 ©︎ 2024 Adaptive Computing Research Initiative - ACRi 30 AI Engineで推論

Slide 31

Slide 31 text

まとめ • ACRiルームで利用できる機材の種類が増えています • AMD GPUを試せる環境を準備しました • ACRiルームの機材を活用するチュートリアルを作りました • ACRiルームをご活用ください ©︎ 2024 Adaptive Computing Research Initiative - ACRi 31

Slide 32

Slide 32 text

©︎ 2024 Adaptive Computing Research Initiative - ACRi 32

Slide 33

Slide 33 text

ACRi 参加団体(2024年6月) ©︎ 2024 Adaptive Computing Research Initiative - ACRi 33