Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ACRiルームにAMD GPUを入れた話

ACRiルームにAMD GPUを入れた話

fpgax #14

Jun Ando

July 13, 2024
Tweet

More Decks by Jun Ando

Other Decks in Technology

Transcript

  1. fpgax #14 ACRi ルーム ©︎ 2024 Adaptive Computing Research Initiative

    - ACRi 2 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
  2. fpgax #14 AMD Instinct MI210 • スペック概要 ©︎ 2024 Adaptive

    Computing Research Initiative - ACRi 3 大容量のVRAMを積んでいるので 生成AIで遊ぶのに良さそう! ACRiルームでMI210が使えるようになる までの話をします
  3. fpgax #14 インストールの準備(冷却) • MI210はファン無しなので冷却ファンを作る • ACRiルームにラックサーバーはありません ©︎ 2024 Adaptive

    Computing Research Initiative - ACRi 4 1. ファンを取り付けるアダプタを印刷 2. ちょうど良いねじ穴にねじ止め 3. ファンを装着
  4. fpgax #14 インストールの準備(電源) • MI210の補助電源はATX12V( EPS12V ) • PCIe補助電源を無理に挿すと壊れます •

    マザーボード向けを1本 MI210に ©︎ 2024 Adaptive Computing Research Initiative - ACRi 5 マザーボード 電源ユニット ATX12V ATX12V MI210 PCIe補助電源コネクタに見えるが 微妙にピンの形が違う
  5. fpgax #14 インストールの準備が完了 ©︎ 2024 Adaptive Computing Research Initiative -

    ACRi 6 自宅での検証の様子。PCケースが小さくて入らなかった
  6. fpgax #14 ACRiルームの仕組み(Alveo系サーバーの場合) ©︎ 2024 Adaptive Computing Research Initiative -

    ACRi 7 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 ユーザー
  7. fpgax #14 利用環境内でDockerが使える仕組み • 従来の利用環境はDockerで構築 • Docker内でDockerを動かせるようにするには特権モードが必要 • Rootless Docker

    in LXD • LXDはシステムコンテナ • コンテナ内でsystemdが動き、仮想マシンのように使える • Ansibleでコンテナ内にデスクトップ環境を構築 • Rootless Dockerはユーザー権限で実行するDocker • ユーザーが自由にコンテナを使用できる ©︎ 2024 Adaptive Computing Research Initiative - ACRi 8 ホスト LXD Rootless Docker Vitis AI等 PCIeデバイス 利用環境
  8. fpgax #14 利用環境内でDockerが使える仕組み • LXDのidmap設定で一般ユーザーのUID/GIDを一致 • ホストにマウントされたNFSに利用環境からアクセスできる • Rootless Dockerコンテナ内の一般ユーザーには未使用のUID/GIDを割り当てる

    ©︎ 2024 Adaptive Computing Research Initiative - ACRi 9 ホスト 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
  9. fpgax #14 コンテナ内でAMD GPUを利用する • ROCm • 一般ユーザーが使うにはvideo/renderグループに属している必要あり • ホストのGIDをRootless

    Dockerコンテナまでつなげる ©︎ 2024 Adaptive Computing Research Initiative - ACRi 10 ホスト 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
  10. fpgax #14 生成AIを動かしてみる • ROCm Blogs • 週1以上のペースでAIを中心としたGPU活用の記事を配信 • vLLMを動かす記事を試してみた

    • Rootless Dockerを使ってvLLMのDockerイメージの作成、動作に成功 ©︎ 2024 Adaptive Computing Research Initiative - ACRi 11 https://rocm.blogs.amd.com/artificial-intelligence/openllm/README.html
  11. fpgax #14 生成AIを動かしてみる • CyberAgentLM3-22B-Chat • 7/9プレスリリース • 22Bパラメータ(45GB) •

    MI210なら量子化なしでOK • vLLMで16リクエストを同時処理 • 計約160 tokens/sec ©︎ 2024 Adaptive Computing Research Initiative - ACRi 12 FPGAのエクストリームな使い方を聞いてみています
  12. fpgax #14 チュートリアル作りました • AIモデルをMI210で学習、VCK5000で推論 • https://gw.acri.c.titech.ac.jp/wp/manual/vitis-ai-rocm ©︎ 2024 Adaptive

    Computing Research Initiative - ACRi 13 PyTorch Lightningで学習 Vitis AIコンテナで量子化、コンパイル AI Engineで推論