1.8K Views
December 18, 23
スライド概要
2023/12/14「自動運転におけるAIコンピューティングⅡ」
発表者:木村 啓二様(早稲田大学 教授)
AIロボット実現に向けた OSCARコンパイラ協調 アクセラレータマルチコア 開発の取り組み 早稲田大学 木村啓二 Tier IV Workshop 2023/12/14 1
自己紹介 ► マルチコアアーキテクチャ・自動並列化コンパイラの 研究に従事 ► ► OSCAR自動並列化コンパイラ OSCAR API ► ► ► ► OSCARコンパイラのマルチプラットフォーム展開 RP-1/RP-2/RP-X 各種サーバマルチコア,組み込みマルチコアでのアプリケーション並列 性能評価 最近はセキュアなコンピュータシステムの研究も ► ► 不揮発性メインメモリのメモリプロテクション Trusted Execution Environment (TEE) Tier IV Workshop 2023/12/14 2
OSCAR自動並列化コンパイラ ► 早稲田大学笠原研にて研究・開発 ► 逐次(普通)のC/Fortranプログラムを 共有メモリマルチプロセッサ・マルチコア向けに並列化 ► OSCAR API(OpenMPベース)によりマルチプラットフォーム対応 ► 階層的なマルチグレイン並列処理 ► ► 粗粒度タスク並列 ► ループレベル並列 ► (近細粒度並列) 粗粒度タスク並列処理に基づくメモリ最適化 ► ローカルメモリ利用 ► キャッシュ最適化 ► 低消費電力最適化 ► ヘテロジニアス並列化 Tier IV Workshop 2023/12/14 3
OSCARコンパイラとOSCAR APIによる マルチプラットフォームのコンパイルフロー Backend Compiler OSCAR Compiler Sequential Program •Multigrain parallel processing •Data locality optimization •Data Transfer optimization •Low power optimization OpenMP Compiler Proc0 Scheduled Tasks T1 off T2 Backend Compiler T4 API Native Translator Compiler Tier IV Workshop Exec. Object RP2 Backend Compiler T6(slow) API Native Translator Compiler Written in Fortran or Parallelizable C Exec. Object RP1 Proc2 Scheduled Tasks T3 Backend Compiler API Native Translator Compiler Proc1 Scheduled Tasks Exec. Object Exec. Object Other Parallelized Fortran or C code with OSCAR API 2.0 2023/12/14 Multicores 4
粗粒度タスク並列処理に基づく 低消費電力最適化のイメージ OSCARコンパイラによる タスクスケジューリング タスクグラフ PE0 MT1 MT2 MT3 MT1 F:full MT4 PE1 MT5 クリティカル パス MT4 F:full MT2 F:full PE2 タスクスケジューリング後の DVFS・電源制御 PE2 PE1 PE0 MT3 F:full MT5 F:full MT1 F:full MT2 F:mid MT3 F:low MT4 F:mid MT5 F:mid Clock gated データ依存 Time 実行時間の最小化 Tier IV Workshop Deadline Time Deadline 消費電力・エネルギー最小化 2023/12/14 5
RP-2上での低消費電力最適化 (MPEG2デコーダでデモンストレーション) Without Power Control (Voltage:1.4V) fvcontrol(100) With Power Control (Frequency, Resume Standby: Power shutdown & Voltage lowering 1.4V-1.0V) fvcontrol(100) fvcontrol(-1) fvcontrol(12) fvcontrol(-1) fvcontrol(25) Avg. Power 5.41 [W] Tier IV Workshop 76.0% Power Reduction Avg. Power 1.30 [W] 2023/12/14 6
他のプラットフォームでも低消費電力化 (2014年当時のIntel Haswellでの評価) 76.9% Reduction 70.1 % Reduction 57.9% Reduction Tier IV Workshop 67.2% Reduction 2023/12/14 7
AIロボット ► ► AIとロボット技術が急激に発展 中 ► 正確な環境認識が可能となる ► 環境認識精度向上に伴い最適な 行動計画が可能となる AIロボットが日々の暮らしを補 助する未来がもうすぐ ► 例えば家事 ► ► 調理,洗濯,掃除,などなど 医療・介護 ► Tier IV Workshop 看護,診察,介助などなど 2023/12/14 8
早稲田大学AIREC (AI-driven Robot for Embrace and Care) プロジェクト ► ソフトロボティクス ► ► 「柔らかい」ハードウェアとAIによる高い環境適応性 身体知と相互誘導型コミュニケーション知能 ► 実空間との柔軟な相互作用を実現 ⼀⼈に⼀台⼀⽣寄り添うやさしく包み込む スマートロボットAIREC Tier IV Workshop 2023/12/14 9
ターゲットアプリのデモンストレーションビデオ (早稲田大学 尾形研による) Tier IV Workshop 2023/12/14 10
AIロボット内部の処理の例: 知的で柔軟なロボット制御 のための複数深層予測学習モジュール ► ロボットがドアに近づき,ドアを開け,ドアを閉める処理 ► ► 本処理はカメラ入力に基づき最も適切なタスクを予測す る ► ► 3つの異なるタスクを状況に応じて処理する ドア開けを邪魔されたら,それをリアルタイムで判断して 再度試行する 3つのencoder-decoderモジュールを利用する ► 各モジュールが一つのタスクに対応 ► より多くのモジュールが更なる柔軟性を実現する ► しかしながら更なる電力消費… より低消費電⼒で更なるAI性能を! Tier IV Workshop Hiroshi Ito et al., Efficient multitask learning with an embodied predictive model for door opening 2023/12/14 11 and entry with whole-body control, Sci. Robot. 7, eaax8177 (2022)
OSCARコンパイラ協調 ベクトルマルチコア (全体構成) • OSCARベクトルマルチコア • 各コアがCPU,ベクトルアクセラレータ, データ転送ユニット(DTU),ローカルメモリ (LDM)を持つ • CPUはRISC-V • LDMは他コアからもロード・ストア命令で アクセス可能 • 分散共有メモリとして利用可能 • ベクトルアクセラレータはLDMにのみアクセス可能 • メモリのバンド幅要求を緩和できる • DTUが主記憶や他コアのLDMとのデータ転送を担当 • CPU/DTU/VectorはLDM上のフラグにより 相互に連携可能 Tier IV Workshop 2023/12/14 12
OSCARコンパイラ協調 ベクトルマルチコア (ベクトルアクセラレータ) Tier IV Workshop • 古典的なベクトルプロセッサ • 再内側ループの演算を高速化 • ただし,メモリアクセスはLDMにだけ • リストベクトルなどのメモリアクセス命令も無し • 複雑なメモリアクセスはDTUにまかせる 2023/12/14 13
ベクトルアクセラレータについて ► 複数データに対する同一演算をパイプライン処理する ► 複数演算を連続的に実施する(チェイニング) ► ベクトルや行列演算が得意 ; $s1, $s2, $s3: scalar reg. (holding address of data A, B, C) ; $f1: scalar floating reg. ; $v0, $v2, $v3: vector reg. each can have 64 elements. Clock cycles vld $v1, 0($s1) ; $v1 <- A[0:63] fld $f1, 0($s2) ; $f1 <- B vld vmuls $v2, $f1, $v1 ; $v2 <- $f1*$v1 vmuls vadd $v0, $v0, $v2 ; $v0 <- $v0+$v2 vadd vst $v0, 0($3) ; C[0:63] <- $v0 vst • シンプルなハードウェア • コンパイル技術の蓄積あり Tier IV Workshop 2023/12/14 14
OSCARコンパイラ協調 ベクトルマルチコア (データ転送機構:DTU) • 自コアのLDMと主記憶・他コアLDM間の データ転送を行う • 一種のDMAC • 1次元・2次元・3次元配列のデータ転送 • プログラムによるより柔軟なデータ転送 Tier IV Workshop 2023/12/14 15
OSCARコンパイラによる深層学習推論モデル コンパイルフロー Deep Learning Model ? ► OSCARコンパイラが深層学習推論モデルのC プログラムを並列化・ベクトル化 ► コンパイル結果としてRISC-Vコア用 並列化Cプログラムとベクトル アクセラレータ用Cプログラムを それぞれ別ファイルとして生成 ► RISC-Vコア用プログラムは GCCやLLVMでバイナリを 生成 ► ベクトルアクセラレータ用プログラムは 拡張されたClang/LLVMでバイナリを 生成 ► 二つのバイナリを結合して実行バイナリとする ► 問題:通常,深層学習推論モデルはCで 書かれない Software Deep Learning Inference C Program OSCAR Compiler Parallelized C Program RISC-V compiler (gcc, llvm) Hardware RISC-V Object File Real AI Chip Tier IV Workshop C Program for Vector Accelerator Vector Compiler (Extended Clang/LLVM) Parallel/Vector Executable Binary Vector Accelerator Object File Prototype on FPGA 2023/12/14 16
OSCARコンパイラとTVMによる深層学習推論モデル コンパイルツールチェーン Deep Learning Model ► TVMを用いて深層学習推論 モデルをCプログラムに変換 ► 得られたCプログラムを OSCARコンパイラで並列化・ ベクトル化 ► 既存の様々なモデルが利用 可能になる TVM Software Deep Learning Inference C Program OSCAR Compiler Parallelized C Program RISC-V compiler (gcc, llvm) Hardware RISC-V Object File Real AI Chip Tier IV Workshop C Program for Vector Accelerator Vector Compiler (Extended Clang/LLVM) Parallel/Vector Executable Binary Vector Accelerator Object File Prototype on FPGA 2023/12/14 17
TVM ► ► オープンソースの深層学習 コンパイラ 学習モデルからターゲットハードウェア用 コードを生成 入力はPyTorch, TensorFlow, Keras等で 記述されたモデル ► モデルの標準フォーマットであるONNXを サポート ► 出力はGPU,CPU(Cコード)等 ► ► ► 問題点:ベクトルアクセラレータに 適したコードは生成しない 適したコードが持つべき性質 再内側ループの回転数はなるべく長く ► 再内側ループでアクセスするデータが メモリ上で連続 ► Tier IV Workshop 2023/12/14 18
ベクトルアクセラレータに適した 畳み込み演算 Cout*Cin 入力チャネル (Cin) Scalar * Vector 出力チャネル (Cout) Vector + Vector k*k Weight Input feature map Output feature map 畳み込みニューラルネットでは出力チャネルは長くなりがち →出力チャネル方向でベクトル化する Tier IV Workshop 2023/12/14 19
FPGAプロトタイプ上での畳み込み演算 並列化・ベクトル化の予備評価 ► ► Intel Arria 10 FPGA上に構築した ベクトルマルチコアの プロトタイプ ► Nios II@50MHz x 4 cores ► LDM: 64KB ► Baseline: vectorize along with output channel direction 先のベクトル化に加え, ベクトルレジスタ有効利用 (レジスタブロッキング)のための ループアンローリングも適用 ► Tier IV Workshop ロード・ストアが削減できる 2023/12/14 20
TVMの拡張 ► 多くの場合,テンソルのメモリレイアウトとループ回転の順番は C, H, Wとなりがち ► ► Wの方向にメモリ上で連続 C方向でメモリ上に連続配置し,channel-wiseでベクトル化 ► ループの回転順番もchannel-wiseが再内側になるように変換 Tier IV Workshop 2023/12/14 21
性能評価 ► 拡張したTVMとOSCARコンパイラによる並列化・ベクトル化の効果を評価 ► 先のOSCARベクトルマルチコアはまだ開発中なので NECのベクトルマルチコアSX-Aurora TSUBASAを利用 ► ► 8コア構成(@1.4GHz) (入力データの性質から7コアまで使用) ► 主記憶: 24GiB ► L1データキャッシュ/L1命令キャッシュ: 32KiB/32KiB(1コア) ► L2キャッシュ: 256KiB(1コア) ► L3キャッシュ: 16MiB ► ベクトル長: 256 使用したモデル ► ResNet50 (ImageNet1000 image classification) ► VGG19 (ImageNet1000 image classification) Tier IV Workshop 2023/12/14 22
評価結果:ResNet50 Tier IV Workshop 2023/12/14 23
評価結果:VGG19 Tier IV Workshop 2023/12/14 24
まとめ ► ► ► AIロボット用ベクトルアクセラレータマルチコアチップの開発 ► これまでのマルチコア・自動並列化コンパイラの取り組みを振り返りつつ ► 人々の生活に入り込むAIロボットは高い処理性能が必要 ► 一方で行動の柔軟性を担保するには低消費電力が重要 ► コンパイラ協調ベクトルアクセラレータマルチコアによるアプローチ ソフトウェア・ハードウェアの両面から開発を進める ► OSCARコンパイラによる並列化 ► TVM導入による既存深層学習モデルの活用 TVMの拡張 ► ベクトル化を行いやすいようにデータレイアウトとループのネストの変換 ► NECのベクトルマルチコアSX-Aurora Tsubasaによる評価 ► RseNet50で31.3倍,VGG19で37.6倍の性能向上 ► チップも鋭意開発中 ► 謝辞 ► 本研究の一部はJST [Moonshot R&D][Grant Number JPMJMS2031]により行われました Tier IV Workshop 2023/12/14 25