FPGA management with OpenStack Cyborg

Cafaf22f27a7a22bdfc4b3fed5ab7eb3?s=47 s_shogo
July 23, 2019

FPGA management with OpenStack Cyborg

Cafaf22f27a7a22bdfc4b3fed5ab7eb3?s=128

s_shogo

July 23, 2019
Tweet

Transcript

  1. 1.

    Copyright© 2019 NTT corp. All Right Reserved OpenStack CyborgでFPGA管理を簡単に 2019.

    07. 23 OpenStack Days Tokyo 斎藤 奨悟(Shogo Saito) / 研究員, NTT 高野 悠生(Yuki Takano) / 主査, NTTアドバンステクノロジ 大谷 育生(Ikuo Otani) / 社員, NTTドコモ
  2. 2.

    Copyright©2019 NTT corp. All Rights Reserved. はじめに  OpenStack Cyborgとは

     様々なアクセラレーション機能(FPGA, GPU, NPU, DPDKなど)を管理し、オンデマン ドな利用を実現するフレームワークです。  Cyborgの開発背景・特徴について、デモを交えてご説明します。 1
  3. 3.

    Copyright©2019 NTT corp. All Rights Reserved. プロフィール • 斎藤 奨悟(Shogo

    Saito) / 研究員, NTT • 高野 悠生(Yuki Takano) / 主査, NTTアドバンステクノロジ • 大谷 育生(Ikuo Otani) /社員, NTTドコモ 2 NTTでOSS+FPGAを推進するエンジニア。 FPGAを活用したNWトラフィック監視製品「@FlowInspector」の発起人。 OpenStack Cyborgについてコミュニティ/ユーザ会で発表しています。 通信系サーバソフトウェアの研究開発に従事。 2019年よりOpenStack cyborgの開発に参加しています。 日本人としては初めてCyborgコミュニティに本格的に参加し、 キャリア要件等について議論を重ねてきました。 2019年7月よりドコモのNFV基盤開発に従事しています。
  4. 4.

    Copyright©2019 NTT corp. All Rights Reserved. 目次 1. Cyborg開発の背景 2.

    Cyborgの機能・特徴 3. 【デモ】CyborgによるFPGAライフサイクル管理 4. Cyborgの開発状況と今後 5. まとめ 3
  5. 5.

    Copyright©2019 NTT corp. All Rights Reserved. 目次 1. Cyborg開発の背景 2.

    Cyborgの機能・特徴 3. 【デモ】CyborgによるFPGAライフサイクル管理 4. Cyborgの開発状況と今後 5. まとめ 4
  6. 6.

    Copyright©2019 NTT corp. All Rights Reserved. 1. Cyborg開発の背景 アクセラレータの普及 1/3

    データ量増大に伴う計算量・通信量の増大 通信業界やHPC系で顕著 数値は米EMC、IDC共同調査による「The Digital Universe of Opportunities: Rich Data and the IncreasingValue of the Internet of Things」より 5
  7. 7.

    Copyright©2019 NTT corp. All Rights Reserved. 1. Cyborg開発の背景 アクセラレータの普及 2/3

    計算量・通信量増大へのアプローチとして、アクセラレータ利用が拡大中 → 様々なアクセラレータをオンデマンドに利用したい → AaaS(Acceleration as a Service)への要望 OSS Server Accelerator FPGA GPU IA Server NPU etc.. 6
  8. 8.

    Copyright©2019 NTT corp. All Rights Reserved. 1. Cyborg開発の背景 アクセラレータの普及 3/3

    7 NFVO VIM VNFc (ベンダA) ホストOS/Hypervisor IAサーバ OPS VNFM MANO NFVI VNF OSS/ EMS VNFc (ベンダB) VNFc (ベンダC) 例:ドコモではNFVを推進し、2016年にvEPC※1の商用化に成功 VNFc※2のU-plane系処理や、VNFc間を接続するOVS※3の高性能化のために SmartNICやアクセラレータの利用も検討 Smart NIC FPGA ※3 OVS: Open vSwitch ※1 vEPC: virtual Evolved Packet Core ※2 VNFc: Virtual Network Function component U-plane系処理 OVSパケット処理 オフロード検討対象 アクセラレータ
  9. 9.

    Copyright©2019 NTT corp. All Rights Reserved. 目次 1. Cyborg開発の背景 2.

    Cyborgの機能・特徴 3. 【デモ】CyborgによるFPGAライフサイクル管理 4. Cyborgの開発状況と今後 5. まとめ 8
  10. 10.

    Copyright©2019 NTT corp. All Rights Reserved. FPGAイメージ群 FPGAはイメージ書換があるので、 ライフサイクル管理が必要 1.

    Cyborg開発の背景 AaaS実現の課題 COMPUTE-Host GPU VM 課題③ FPGAイメージ群と、 各FPGAへの書込状態の管理 COMPUTE-Host FPGA FPGA イメージ B イメージ A VM VM attach attach attach 課題① ホストごとのアクセラレータ搭載状況・ 利用状況を管理 様々なアクセラレータをオンデマンドに提供するには、3つの課題がある。 書込 課題② 機種に依存しないFPGA書換IFの実現 9 GPU イメージA イメージB ・・・ <empty>
  11. 11.

    Copyright©2019 NTT corp. All Rights Reserved. COMPUTE-Host 2. Cyborgの機能・特徴 Cyborgの特徴

    COMPUTE-Host VM 特徴③ Glance連携により、FPGAイメージを VM同様に管理。 uuidベースでのイメージ管理を実現。 COMPUTE-Host FPGA Intel社 FPGA <empty> イメージ B イメージ A VM VM attach attach attach Cyborgにより、様々なアクセラレータを管理可能 特徴② 各社FPGA製品に対応するための FPGA操作フレームワークを提供 特徴① 様々なアクセラレータに対応できる 状態取得フレームワークを提供 状態取得ドライバ GPU用 連携 10 GPU GPU X社 FPGA <empty> 状態取得ドライバ FPGA用 <empty> FPGAイメージ群 イメージA イメージB ・・・ X社用 ドライバ Y社用 ドライバ Y社 FPGA <empty> Intel社用 ドライバ
  12. 12.

    Copyright©2019 NTT corp. All Rights Reserved. 目次 1. Cyborg開発の背景 2.

    Cyborgの機能・特徴 3. 【デモ】CyborgによるFPGAライフサイクル管理 4. Cyborgの開発状況と今後 5. まとめ 11
  13. 13.

    Copyright©2019 NTT corp. All Rights Reserved. 12 FPGA(Voice) cyborg-agent FPGAイメージ

    (Voice) Visualize App(VM) cyborg-api Controller Compute@FlowInspector FPGA-driver Voice horizon (事前) 音声パケット測定用FPGAをComputeNodeに書込・接続済 3. 【デモ】CyborgによるFPGAライフサイクル管理
  14. 14.

    Copyright©2019 NTT corp. All Rights Reserved. 13 FPGA(Voice) cyborg-agent FPGAイメージ

    (Voice) Visualize App(VM) cyborg-api Controller Compute@FlowInspector FPGA-driver horizon Upload 3. 【デモ】CyborgによるFPGAライフサイクル管理 (1) HorizonからGlanceにFPGAイメージ(*.gbs)をアップロード FPGAイメージ (Movie) FPGAイメージ (Movie) Voice
  15. 15.

    Copyright©2019 NTT corp. All Rights Reserved. 14 FPGA(Voice) cyborg-agent FPGAイメージ

    (Voice) Visualize App(VM) cyborg-api Controller Compute@FlowInspector FPGA-driver horizon Upload 3. 【デモ】CyborgによるFPGAライフサイクル管理 (2) Glanceに”image_uuid”が付与されたgbsが登録される FPGAイメージ (Movie) FPGAイメージ (Movie) Voice
  16. 16.

    Copyright©2019 NTT corp. All Rights Reserved. 15 FPGA(Voice) cyborg-agent FPGAイメージ

    (Voice) Visualize App(VM) cyborg-api Controller Compute@FlowInspector FPGA-driver horizon Update Upload 3. 【デモ】CyborgによるFPGAライフサイクル管理 (3) Cyborg-api経由のコマンドでFPGAイメージをComputeに転送 FPGAイメージ (Movie) FPGAイメージ (Movie) FPGAイメージ (Movie)
  17. 17.

    Copyright©2019 NTT corp. All Rights Reserved. 16 FPGA(Voice) cyborg-agent FPGAイメージ

    (Voice) Visualize App(VM) cyborg-api FPGA(Movie) Controller Compute@FlowInspector FPGA-driver horizon Update Upload 3. 【デモ】CyborgによるFPGAライフサイクル管理 (4) FPGA-driverからFPGAがアップデートされる(fpgaconf) FPGAイメージ (Movie) FPGAイメージ (Movie) FPGAイメージ (Movie)
  18. 18.

    Copyright©2019 NTT corp. All Rights Reserved. 17 FPGA(Voice) cyborg-agent FPGAイメージ

    (Voice) Visualize App(VM) cyborg-api FPGA(Movie) Controller Compute@FlowInspector FPGA-driver Movie horizon Update Upload 3. 【デモ】CyborgによるFPGAライフサイクル管理 (5) 動画パケットを測定するFPGAに更新されたことを確認 FPGAイメージ (Movie) FPGAイメージ (Movie) FPGAイメージ (Movie)
  19. 20.

    Copyright©2019 NTT corp. All Rights Reserved. 目次 1. Cyborg開発の背景 2.

    Cyborgの機能・特徴 3. 【デモ】CyborgによるFPGAライフサイクル管理 4. Cyborgの開発状況と今後 5. まとめ 19
  20. 21.

    Copyright©2019 NTT corp. All Rights Reserved. 4. Cyborgの開発状況と今後 (これまでの変遷) Rocky

    2018/8 Stein 2019/4 Rocky (2018/8) ・ver1.0リリース ・agentによるリソースの検出 ・OPAE経由でのFPGA書込 ・deployable出力機能 Stein (2019/4) ・Glance連携 ・データモデルの大幅変更 (デバイスの親子関係など、 状態把握の詳細化) Train 2019/10 Train(開発中) ・Nova/Placement連携 ・API・コマンドのアップデート ・ドライバの追加(NPUなど) ・CI関連のアップデート 20 NTTはFPGA書込機能の充実や APIv2対応やPython3化などで コントリビュート
  21. 22.

    Copyright©2019 NTT corp. All Rights Reserved. 4. Cyborgの開発状況 (補足:データモデルのアップデート) •

    データモデルの変遷 – Rocky → Stein で大きく変化し、デバイスの情報や、利用状況をより詳細に表現可能となっている。 – object の種別は Stein でほぼ確定、各 object ごとの field は修正中。 21 object Rocky→Stein 説明 accelerator 実装→廃止 Rockyまで、 accelerator の種類/型番等を表現していた Deployable 実装→大幅変更 FPGAなどの割当可能な装置 ( placement RP ) Device 未実装→実装 物理デバイス。vendor, 型番(placement RC)など control_path_id 未実装→実装 device操作用のアドレス(e.g. PCI, mdev...)を保持 attach_handle 未実装→実装 Deployable のアタッチ状況を管理 device_profile 未実装→実装 flavor のアクセラレータ版。一度に要求するものをセット化 extended_accelerator_request 未実装→実装 外部(e.g. Nova)からのアクセラレータ要求情報
  22. 23.

    Copyright©2019 NTT corp. All Rights Reserved. 4. Cyborgの開発状況 (補足: APIのアップデート)

    • API の変遷 ( Rocky から Train まで) – 基本的に OpenStackの標準的な Data Model に対応したインタフェースとなっている。 22 URI Rocky Stein Train /v1/accelerators GET 廃止 廃止 /v1/deployables GET GET, PATCH GET, PATCH /v2/device_profiles 未実装 未実装 GET, POST, DELETE /v2/accelerator_re quests 未実装 未実装 GET, POST, PATCH, DELETE
  23. 24.

    Copyright©2019 NTT corp. All Rights Reserved. • 「Acceleration Centric Computing」に向け、より多くのコンポーネントとの連携や、

    多くのアクセラレータ種別への対応を目指していく方向性。 • Neutron/Cinder/Hawthornなど。 23 4. Cyborgの開発状況と今後(これから) 拡大 Hawthorn
  24. 25.

    Copyright©2019 NTT corp. All Rights Reserved. • NFV等の用途では、①運用性と②信頼性の向上が必要。 • 運用向けの状態管理(アタッチ抑止など)による①運用性向上や、

    書込成否の確認機能による②信頼性の向上を目指し、機能の充実化を進めていく。 24 ※VNF ・・・ Virtual Network Function 4. Cyborgの今後(通信事業者として目指す方向性) FPGA FPGA <empty> イメージ B イメージ A VNF ※ attach 状態取得 X社用 ドライバ VNF ※ FPGA <empty> FPGA (無効化中) ②信頼性の向上 例:故障検知や、 書込成否の確認・ 書込リトライの実現 COMPUTE-Host COMPUTE-Host ①運用性の向上 例:運用向けの状態管理(有効 化・無効化・休止 等)・ Y社用 ドライバ attach
  25. 26.

    Copyright©2019 NTT corp. All Rights Reserved. 目次 1. Cyborg開発の背景 2.

    Cyborgの機能・特徴 3. 【デモ】CyborgによるFPGAライフサイクル管理 4. Cyborgの開発状況と今後 5. まとめ 25
  26. 27.

    Copyright©2019 NTT corp. All Rights Reserved. まとめ • OpenStack Cyborgは、アクセラレータ管理・利用のためのフレームワーク

    • オンデマンドなアクセラレータ利用を実現 • 特にGPU/FPGAをメインのユースケースに、機能開発が進んでいる • バージョンアップごとに他コンポーネント(Glance/Nova/Placement)との連携 が進みつつある、発展中のコンポーネント • NFV適用に向け、NTTは運用性・信頼性の向上を目指しコントリビュート予定 • 試してみたい方・興味をもたれた方は、以下URLへどうぞ。 • https://wiki.openstack.org/wiki/Cyborg • 一緒にCyborgを盛り上げていきましょう! 26