**********************************************************************
セッション S3-a
テーマ:AIを加速するAI Engineのアーキテクチャ解説と プログラミング体験
コーディネータ:安藤潤(ACRiルーム副室長/ザイリンクス株式会社(AMD-Xilinx))
日時:9/2(金)10:20~11:30
参加人数:約15名(終了時)
**********************************************************************

(議事録本文)

■アウトラインの説明
・ACRiとは
・自己紹介
・AI Engineアーキテクチャ解説
・チュートリアル解説
・ハンズオン,QA


■ACRiとは
・アダプティブコンピューティング研究推進体
・主な活動
・ACRiブログ
・ブログも多く書いている
・ACRiルーム(無償FPGA利用環境)


■自己紹介
・液晶ディスプレイコントローラ向けのデジタルIP開発
・もっと効率的に開発するためにエチレスを普及中
・今はデータセンター向けに開発を行っている


■AI Engineアーキテクチャ解説
・なんで作ったのか
・必要とされる計算能力が増えている
・今までのFPGAのリソースでは効率が悪い
・VERSALではみんな使うと思われるものはあらかじめハードに搭載している(DDR4等)
・ACAPは様々なものが搭載されている
・畳み込み処理などが得意なプロセッサが搭載
・同じシリコン面積でも8倍の計算能力,消費電力も少ない
・キャッシュになければDRAMに探しに行くがAI Engineでは階層的なキャッシュ構造は持たずそれぞれがつながっている
・現状開発環境はC/C++
・多くのフレームワークが存在している
・次世代のAI Engine MLというマシンラーニングに特化しているものも発表されている

・構成はACAPにAI Engine Array,そこにAI Engine Tile,それぞれのタイルにAI Engineとなっている
・インターコネクト,プロセッサ,メモリで一つのタイルが構成されている
・ローカルメモリへのアクセスに加えて,網目状なので上下左右のメモリにアクセスできる
・遠いメモリにアクセスする場合はインターコネクトを使う
・数珠繋ぎ状にし,データを受け渡せるようにして計算効率を上げている
・データフローの組み方でメモリの扱いではパイプライン状やグラフ状などができる


■チュートリアル解説
・Vitisはザイリンクスが出しているツール
・サーバ,ドライバなどいろいろなものを書かなければならないがVitisはこれらをプラットフォーム上に用意してある
・今日作る構造
・HostとVCK5000がつながっている
・グラフを作ってもらう(vadd)
・ACRiルーム接続するとubuntuが起動する
・ジュピターノートを実行していく
・グラフは入力が2,出力が1の形


■質問
Q.AIエンジンのメモリ配置について質問させてください。
プロセッサから見ると自身+4方向のメモリにアクセスができるとのことでしたが、メモリから見ると5か所からアクセスされることにより、
競合が発生しやすくなるように思いますが、そこはどのようにアクセスを制御されているのでしょうか?
A. 競合は発生する。コンパイラがなるべく競合が発生しにくいように配置してくれる。

Q.AI Engineの消費電力はどんな感じでしょうか?
A. 数字を用意していなかったためすぐには表示できません

Q. VCK5000は基本的に x86_64 ベースのPCのアクセラレータとして機能するということでしょうか?
A. その通りです。

Q. 資料P.6?でACAPのアーキテクチャをご説明いただきましたが、AIエンジンに加え
RAMやインタフェースをモジュールとして用意するというところが気になりました。
今まではどういう理由で搭載されていなくて、どういうニーズがあって、搭載されるに至ったかという経緯・背景を教えていただけないでしょうか。
A. 要求されるものがよく変わり,リソースを効率よく使うため。

Q. みんな使うからあらかじめDDR4などを実装するとなった背景はどのようなものだったのか
A. 従来はFPGAのみでありDDR4等はFPGAのリソースを使い実現していたが要求されるデータ帯域がどんどん大きくなってきたのに伴い,
FPGAのなかがインターフェースだけで埋まってしまい本来入れたいアクセラレータ部分が実装できなくなっていたため。

Q. 同じボードの中に混在するなどはありえるのか
A. 一個の半導体の上にメモリやAI Engine,ARMなどがのっている。


■まとめ
このセッションではAIを用いる特に有用であるACRiを紹介していた。
ACRiにはAI Engineが搭載してありタイル状の2次元構造にすることにより効率化を図っている。
チュートリアルではACRiを使い簡単なものを作るというもので最後までいかなかった人もやり方をまとめた資料が配られているため完遂できる。

以上。