BOOM Explorerという論文を読んでいる。ずいぶん時間が空いたが続き。VLSIの最適化された設計空間を探すのは時間がかかって大変。どうやって適切な探索空間を見つけだすかが問題となる。
難しそうな数式の部分はさておいて、とりあえず実験結果と結論まで一気に読み進んでみた。
前の記事はこちら。
実験結果
BOOM-Explorerを評価するためにChipyardフレームワークを使用して実験を行った。VLSI設計フローには7nm ASAP7 PDKを使用し、デザインの合成にはCadence Genus, 2GHzをターゲットとして合成した。シミュレーションにはSynopsys VCS, 電力測定にはPrimeTime PXを使用した。
A. ベンチマークとベースライン
すべてのマイクロアーキテクチャのコンフィグレーションを検証するのは時間がかかるため、まずはオフラインデータセットを構築する。オフラインデータセットは表Iの合法的なマイクロアーキテクチャのコンフィグレーションからランダムにサンプリングした994のコンフィグレーションのデータセットである。これらのデザインは電力と性能を測定するためにそれぞれVLSIのフローに流した。各デザインにおけるVLSIのデータフローは、約6~14時間かかっている。
使用したベンチマーク:median, mt-vvadd, whetstone, mm
4つのベンチマークの平均クロックサイクルと消費電力を、そのコンフィグレーションでの性能と消費電力値として表記している。
比較対象としては以下の既存技術である:
- ANN-based method [18] (shorted as ASP-LOS'06)
- ANNを積み重ねて、複雑なチップマルチプ ロセッサを含むデザインの性能を予測するものである。
- 回帰に基づく手法 [19] (HPCA'07)
- 非線形変換を伴う回帰モデルを活用して、 POWER4/POWER5 デザインの電力-性能パレートカーブを探索します。
- AdaBoost-RT-based method [6] (abbreviated as DAC'16)
- OAサンプリングと能動学習ベースのAdaBoost回帰木モデルを利用し、マイクロアーキテクチャの性能を探索するものである。
これらの技術は、それぞれマイクロアーキテクチャの探索において有効であることが証明されている。そこで、これらの手法とBOOM-Explorerを比較することが必要である。
出発点は異なるが、その方法はロバストで移植可能であることが証明された。さらに、BOOM-Explorer を従来の機械学習モデルと比較する。
- すなわちサポートベクトル回帰(SVR)
- ランダムフォレスト
- XGBoost [37]
Simulated Annealingは、従来の機械学習アルゴリズム、例えば、SVR、ランダムフォレスト、XGBoostに昇華される。
B. 実験設定
BOOM-Explorer の設定では,DKL-GP はそれぞれ 1000,500,50 の隠れニューロンを持つ 3 つの隠れ層を積層し,深層カーネル学習の非線形変換として ReLU を採用した.Adam optimizer [38]を使用し、初期学習率は0.001に等しい。DKL-GP は MicroAL に従ってサンプリングされた 5 つのマイクロアーキテクチャで初期化され、BOOM-Explorer は9回のベイズ探索を順次実行する。すべての実験はベースラインと合わせて10回繰り返し、その平均値を測定した。平均参照集合距離(ADRS)と全体実行時間(ORT)は性能比較のための2つの指標である。ADRSは式(8)に示すように、設計空間の探索問題で広く用いられており、学習されたパレート最適集合が設計空間の実際のパレート最適集合にどれだけ近いかを測定するためのものである。
C. 結果分析
図5はベースラインとBOOM-Explorerで得られたパレート最適集合の学習結果を示している。この結果から、BOOM-Explorerが学習したパレート最適集合は、実際のパレート最適集合に非常に近く、ベースラインを大きく上回っていることがわかる。
MicroALでより大きな初期化セットをサンプリングすれば、BOOM-Explorerはより良い予測的パレート最適セットを得ることができるようになる。 最後に、消費電力と性能のバランスをうまくとるために、さまざまな設計を実現することができる。
D. 最適な BOOM マイクロアーキテクチャ設計
BOOM-Explorerが発見したパレート最適集合から我々のパレートデザインを選択し、シニアエンジニアが開発した2ワイドBOOMと比較した[1]。
前述した 2 つの BOOM のマイクロアーキテクチャを表 IV に示す。表 IV の「設計パラメータ」で示されるように、我々の Pareto 設計は 2 幅の BOOM と比較して同じ DecodeWidth を有している。しかし、分岐予測器(RasEntry、BranchCountなど)、リオーダバッファのエントリなどのハードウェアコンポーネントは減少している。一方、命令発行幅、LDQ、STQなどは大きくなっている。さらに、異なるアソシエイト・セットなど、異なるキャッ シュ組織を持つ。セクション II-A で紹介した LSU がボトルネックになりやすいため、Pareto 設計では LDQ、STQ のハードウェア資源を増やし、一方で D-Cache のアソシエイトセットと MSHR エントリを増やしてより多くのデータ競合を克服するようにした。さらに、RASとBTBについては、分岐やジャンプ命令が少ないため、リソースを削減した。必要なコンポーネントを増やしながら、無駄なハードウェアリソースを削減することで、パレート設計は消費電力と性能のトレードオフをより良くしている。
Pareto 設計の優位性を 2 ワイド BOOM と比較して実証するため、両者をより多くのベンチマークで評価し、表 IV にこれらすべてのベンチマークの平均消費電力とクロックサイクルを示した。これらのベンチマークは、例えば、add-int, add-fp などは ISA 基本命令から、iir, firdim などは DSP 向けアルゴリズム [39] から、 compress, duff などはリアルタイム計算アプリケーション [40] などから選ばれている。図6に両者の消費電力と性能の比較を示す。これらのベンチマークすべてにおいて、我々のPareto de-signは2-wide BOOMに比べて約2.11%高速に動作し、同時に3.45%少ない電力を消費していることがわかる。
結論
本論文では、マイクロアーキテクチャの設計空間におけるパレート最適性を短時間で探索するBOOM-Explorerを提案した。本論文は、RISC-Vコミュニティに設計空間の自動探索ソリューションを導入した最初の研究であり、我々の知る限りにおいて、本論文はRISC-Vコミュニティにおける最初の研究である。本コミュニティでは、プロセッサのマイクロアーキテクチャ設計空間の探索をさらに改善するために、多くの研究が行われることが期待される。