Publicité

ACRiルーム副室長_安藤様_講演資料

11 Oct 2022
Publicité

Contenu connexe

Similaire à ACRiルーム副室長_安藤様_講演資料(20)

Publicité

Dernier(20)

ACRiルーム副室長_安藤様_講演資料

  1. 開催決定!DSFコラボ記念HLSチャレンジ ACRiルーム副室長 / ザイリンクス株式会社 安藤 潤 ©︎ 2022 Adaptive Computing Research Initiative - ACRi 1 第 10 回 ACRi ウェビナー:ポストコロナ時代の技術者コミュニティの姿
  2. [AMD Official Use Only - General] ACRi HLS チャレンジとは? • お題に沿った回路を HLS(高位合成)で設計し、 オンラインで性能を競います • HLS の活用促進 • ザイリンクス FPGA 向けの無償 HLS ツールを使用 • C++だけでFPGAアクセラレータの開発ができる • HLS を学んでみたい方の練習の場 • 高速な回路の設計技術を共有する場 • ACRi ルームを活用 ©︎ 2022 Adaptive Computing Research Initiative - ACRi 2
  3. [AMD Official Use Only - General] Alveo / VCK5000 Professors ACRi Founders ACRi ルーム – 遠隔(東工大)に設置されたFPGAを無料で利用できる環境 3 • 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 (New!) Alveo Arty ACRi 参加企業 一般企業 学生 若手技術者 Start-up企業 技術力向上 テスト利用 技術力向上 のため 技術力向上 テスト利用 • ジーデップ・アドバンス社 Alveo U200 搭載のFPGA入門モデル • CPU; Core i9 (14 core / 28 thread) FPGA StarterBOX StarterBOX ©︎ 2022 Adaptive Computing Research Initiative - ACRi
  4. [AMD Official Use Only - General] HLS チャレンジ HLS チャレンジの URL はこちら ⇒ https://acri-vhls-challenge.web.app/ ©︎ 2022 Adaptive Computing Research Initiative - ACRi 4 ウェブサイト お題を選択 ACRi ルーム ログイン 提出 採点 結果 ユーザー コーディング・ 仮採点 採点サーバー ランキング Vitis HLS ツールサーバー (as101, as102, as103, as104)
  5. [AMD Official Use Only - General] 人気チャレンジ bai-gaeshi https://acri-vhls-challenge.web.app/challenge/bai-gaeshi#top • 投稿数:141件 (2021年11月時点) • 配列の値を倍にして 返すシンプルなお題 ©︎ 2022 Adaptive Computing Research Initiative - ACRi 5
  6. [AMD Official Use Only - General] bai-gaeshi の解答例 • 素直なソフトウェア実装 • 採点結果 • 動作周波数:599.9 MHz • サイクル数:1219 cycles • タイム:2032.073 ns ©︎ 2022 Adaptive Computing Research Initiative - ACRi 6
  7. [AMD Official Use Only - General] bai-gaeshi のランキング ©︎ 2022 Adaptive Computing Research Initiative - ACRi 7 68.6 219.6 242.0 399.6 550.3 607.7 1684.0 2032.1 2528.8 0 500 1,000 1,500 2,000 2,500 3,000 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 タイム(ns) ランキング コードの記述方法によって36倍の差! HLSチャレンジで楽しみながら高速化テクニックを習得!
  8. [AMD Official Use Only - General] HLS とは? • High Level Synthesis(高位合成) • Vitis HLS:C/C++言語でハードウェアを設計するツール ©︎ 2022 Adaptive Computing Research Initiative - ACRi 8 ACRi ブログ:高位合成で加速するアクセラレータ開発 (2) ~ 高位合成と C ベース設計 1章 より
  9. [AMD Official Use Only - General] HLS プラグマ • 生成される回路を設計者が決定する • 例:#pragma HLS PIPELINE ©︎ 2022 Adaptive Computing Research Initiative - ACRi 9 ACRi ブログ:高位合成で加速するアクセラレータ開発 (2) ~ 高位合成と C ベース設計 1章 より
  10. [AMD Official Use Only - General] HLS チャレンジに関する過去のウェビナー • 詳しい利用方法はこちら ©︎ 2022 Adaptive Computing Research Initiative - ACRi 10 https://www.youtube.com/watch?v=v9TfLoM7cIA https://www.youtube.com/watch?v=1WHytfpVgtc • 高速化のヒントはこちら
  11. [AMD Official Use Only - General] DSF コラボ記念 HLS チャレンジ開催! • 6 つのチャレンジを開催します ©︎ 2022 Adaptive Computing Research Initiative - ACRi 11 https://acri-vhls-challenge.web.app/?tag=DSFコラボ記念チャレンジ
  12. [AMD Official Use Only - General] DSF コラボ記念チャレンジ • テーマ:AI • 画像から数字を認識する回路を実装します • 開催概要 • 期間:2023/1/9まで • 特典:チャレンジに参加された方に DSF 会場でステッカーを贈呈! ©︎ 2021 Adaptive Computing Research Initiative - ACRi 12 5 画像 ラベル CNN
  13. [AMD Official Use Only - General] DSF コラボ記念チャレンジ • 実装する回路 • 畳み込みニューラルネットワーク(CNN) • 畳み込み層(Conv2D) • Max Pooling層 • 全結合層(MatMul) • 学習済みの重みを使って計算 • 重み:符号付き2bit(3値:-1, 0, 1) • アクティベーション:符号なし2bit(0~3) • 簡単なレイヤーから順に段階を踏んで実装 ©︎ 2022 Adaptive Computing Research Initiative - ACRi 13
  14. [AMD Official Use Only - General] DSF コラボ記念チャレンジ • 6 つの難易度別チャレンジ • 初級 1. mnist1-matmul0 2. mnist2-maxpool0 • 中級 3. mnist3-conv0 4. mnist4-conv1-mp1 • 上級 5. mnist5-all(すべてのレイヤー) 6. mnist6-free (実装内容自由) ©︎ 2022 Adaptive Computing Research Initiative - ACRi 14 1. 2. 3. 4.
  15. [AMD Official Use Only - General] DSF コラボ記念チャレンジ • 変わり種チャレンジ : mnist6-free • 新しい実験的な試み • 回路の実装内容を問わずラベルの正答率のみでパス判定 • アルゴリズムから作成してもらう • mnist5-all をベースにしても OK • 画像20枚のテストで90%以上正答することがパスの条件 ©︎ 2022 Adaptive Computing Research Initiative - ACRi 15 ? 画像 x20 ラベル x20 mnist6-free
  16. [AMD Official Use Only - General] 高速化のヒント • mnist1-matmul0 : 全結合層 1. 内側ループのアンロール • 演算を並列化 • II=1 となるように気をつける 2. in のキャッシュ • 複数回アクセスする配列はローカルにコピーを作る 3. 入出力を AXI-S に変更 • インターフェースを軽量化 • 小さなレイテンシでアクセス 4. 演算器を軽量化 • ap_[u]int<2> に代入してから計算する 5. weight をローカル配列化 • (ここだけの話)weight は固定値 ©︎ 2022 Adaptive Computing Research Initiative - ACRi 16 ← 符号なし 2bit 入力 ← 符号付き 2bit 重み ← 出力
  17. [AMD Official Use Only - General] 高速化のヒント • ACRi ブログ : FPGA で始めるエッジ ディープラーニング(全10回) • FPGA を使用するメリット • PyTorch で MNIST 向け CNN の学習方法 • 各レイヤーの実装方法 • FPGA(Alveo)での実行方法 • 並列化方法、ボトルネック解析、設計最適化 • ベースラインから400倍の高速化 ©︎ 2022 Adaptive Computing Research Initiative - ACRi 17
  18. [AMD Official Use Only - General] HLS チャレンジ出題者募集 • 教わる側から教える側になってみませんか • 学ぶ立場から、学ぶ人に機会を提供する立場へ • HLS チャレンジでは誰でも出題者になれます ©︎ 2022 Adaptive Computing Research Initiative - ACRi 18
  19. [AMD Official Use Only - General] HLS チャレンジ出題方法 • 設定項目 • チャレンジ名 • 短い説明文 • タグ • 提出期限 • 合成制約(2ns推奨) • 論理合成(オフ推奨) • 各種リソース制限 • 実行時間制限 • ビルド条件 • ツールのバージョン(最新のもの) ©︎ 2022 Adaptive Computing Research Initiative - ACRi 19
  20. [AMD Official Use Only - General] HLS チャレンジ出題方法 • 問題文 • Markdown で編集 • プラグイン • KaTex • インライン $数式$ • ブロック $$ 数式 $$ • WaveDrom [[[wavedrom 波形 ]]] [[[bit-field ビットフィールド ]]] ©︎ 2022 Adaptive Computing Research Initiative - ACRi 20
  21. [AMD Official Use Only - General] HLS チャレンジ出題方法 • カーネルヘッダー • 関数名は “kernel” 固定 • 問題に応じてカーネル引数を設定 • カーネルソースの雛形 • 空でもOK • ベースライン実装を入れておくと 親切かも ©︎ 2022 Adaptive Computing Research Initiative - ACRi 21
  22. [AMD Official Use Only - General] HLS チャレンジ出題方法 • テストベンチ • 検証用 • ユーザーに公開される • ユーザーがコードのテストに使用する • 採点用 • ユーザーには非公開 • システム側の採点で使用される ©︎ 2022 Adaptive Computing Research Initiative - ACRi 22
  23. [AMD Official Use Only - General] HLS チャレンジ出題方法 • テストベンチの作成方法 1. 乱数を設定 2. カーネル入力を準備 3. カーネル実行 4. カーネル出力をチェック • 採点時に毎回異なる乱数を使用する場合 ©︎ 2022 Adaptive Computing Research Initiative - ACRi 23
  24. [AMD Official Use Only - General] ©︎ 2022 Adaptive Computing Research Initiative - ACRi 24
Publicité