FPGA開発日記

FPGAというより、コンピュータアーキテクチャかもね! カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages

Computer Architecture 6th Editionの7章"Domain-Specific Architecture" を読む (7.6章 Intel Crest, 学習のためのデータセンタアクセラレータ)

Computer Architecture, Sixth Edition: A Quantitative Approach (The Morgan Kaufmann Series in Computer Architecture and Design)

Computer Architecture, Sixth Edition: A Quantitative Approach (The Morgan Kaufmann Series in Computer Architecture and Design)

7.6章は DSAの一つの例としてIntel Lake Crestを取り上げている。こちらはかなり情報が限られている。ってか2017年中にリリースって言ってるのに2018年になってしまいましたね。

目次

これは著者が読んだ内容をまとめているだけなので、誤訳、理解不足により誤っている可能性があります!鵜呑みにしないようにお願いします。


7.6 Intel Crest, 学習のためのデータセンタアクセラレータ

7.3章の最初の引用にあるように、IntelはDNNのためのDSAを製造することをプレスリリースした。 最初の例は、私たちがが本書を執筆している最中にアナウンスされたCrestである。 まだ情報が少ないながら、私たちがこのプロジェクトについて言及しようと思ったのは、Intelというマイクロプロセッサの伝統的な供給メーカがDSAとタッグを組むという重要なステップに踏み出したからである。

CrestはDNNの学習フェーズをターゲットとしている。 IntelのCEOは、3年で機械学習の学習フェーズの速度を100倍にすることが目標であるといった。 図7.6によると、DNNの学習には1か月程度必要である。 このDNNの学習時間を、CEOが言及した通り、1/100であるたった8時間に短縮するということ自体には需要がある。 間違いなく、次の3年でより複雑になり、学習にはより多くの時間が必要となるだろう。 したがって、学習時間を100倍高速化するということについて、過度の危険性はない。

Crestの命令は32×32の行列のブロックを操作する。 Crestは「flex point」と呼ばれる数値形式を用い、これは固定小数点をスケーリングしたものである: 16bitデータを持つ32×32の行列は命令セットの一部から供給される5ビットの指数部を共有する。

図7.28はLake Crestチップのブロックダイアグラムを示している。 これらの行列を計算するために、図7.28に示すようにCrestは12個のプロセッシングクラスタを用意している。 各クラスタには大容量のSRAM、代数用のプロセッシングユニット、オンチップ・オフチップ用ルーティング用の少量の論理が搭載されている。 4つの8GBのHBM2 DRAMモジュールが搭載されており、1TB/sのメモリバンド幅を供給しており、これによりCrestチップは魅力的なRooflineモデルを提供している。 Lake Crestチップは高いバンド幅のインターコネクトをサポートしており、プロセッシングクラスタ内のコアの計算や、共有メモリを介在しないコア間の通信もサポートしている。 Lake Crestの目標はGPUと比較して学習速度を10倍高速化することである。

図7.28には、12個のチップ間リンク(Inter Chip Link:ICL)と、2個のチップ間コントローラ(Inter Chip Controller)を搭載しており、Crestは他のCrestチップと強調して動作することができる。 これは48個のFPGAが専用ネットワークを通じて強調動作するMicrosoftのCatapultと考え方が似ている。 学習速度の100倍の高速化には、いくつかのCrestチップによる強調動作が必要とされる。

図7.28 Intel Lake Crestsプロセッサのブロックダイアグラム。Intelの資料より抜粋。CrestはTSMC28 nmプロセスの古レチクルで実装され、ダイサイズは600から700m2になる予定。このチップは2017年に供給される予定である。IntelはKnights Crestと呼ばれる、Xeon x86コアとCrestアクセラレータのハイブリッドチップも設計している。