以下のサーベイ論文より気になった部分を抽出する。
Machine Learning for Electronic Design Automation: A
Survey
なぜMLが必要とされるのか?
通常の高位合成プロセスはC/C++/SystemC→HLS→HDL→実装→ビット列変換 となる。しかしながらHDL以降が非常に時間がかかるためいちいちHDL以降のプロセスを経た最適解探索はやってられない。
そこでこのプロセス効率化をどうにかできないか?というのがモチベーション。
MLによるパフォーマンス推定
論文リンク
Pyramid: Machine Learning Framework to Estimate the Optimal Timing and Resource Usage of a High-Level Synthesis Design [pdf]
活用プロセス
Step1. データセットの収集
過去のデザイン実績からFPGAデバイスのクロックタイミングなどを収集。多重共線性の影響を考慮するために重要でない特徴量を体系的に取り除く選択技術が用いられる。
カテゴリー | 説明 |
クロック周期 | 目標クロック周期:達成したクロック周期とその不確かさ |
リソース | LUT、FF、DSPそしてBRAMの活用と有効性 |
論理指令 | 各司令のビット幅/リソース統計 |
算術指令 | 算術司令のビット幅/リソース統計 |
メモリー | メモリのリソース使用量 |
多重化装置 | リソース使用量、入力サイズ/ビット幅 |
Step2. 推定モデルの学習
実装後のリソース使用量とクロックタイミングを推定するための回帰モデルを学習する。推定誤差はRAEやRMSEが使われる。
HLSツールで生成されたRTLコードの最大クロック周波数、スループット、スループット対面積比などの結果を取得し、線形回帰、ニューラルネットワーク、SVM、ランダムフォレストを組み合わせたアンサンブルモデルを提案して推定をおこなっている。
HLSツールの演算遅延予測誤差低減
論文リンク
Accurate Operation Delay Prediction for FPGA HLS Using Graph Neural Networks [pdf] Ecenur Ustun, Chenhui Deng, Debjit Pal, Zhijing Li, and Zhiru Zhang. ICCAD 2020
既存のHLSツールは個々の演算遅延を単純に加算することで推定しているので実装後の最適化によってその予測は不正確になる可能性がある。そこでカスタマイズされたGNNモデルを構築することでハード化されたブロックに関するマッピングの選択を推測し、HLSの遅延予測のRMSEを72%削減することができた。
クロスプラットフォームパフォーマンスの予測
論文リンク
XPPE: Cross-Platform Performance Estimation of Hardware Accelerators Using Machine Learning [pdf] Hosein Mohammadi Makrani, Hossein Sayadi, Tinoosh Mohsenin, Setareh rafatirad, Avesta Sasan, Houman Homayoun. ASPDAC 2019
Zynqのような新たなプラットフォームも含めて各FPGAごとに任意のアプリケーションのリソース使用率を予測する。
予測器の入力はアプリケーション特性、HLSレポートと目標FPGAスペック。XPPEはNNモデルを使用してARMプロセッサを使用したときのFPGAアプリケーションのスピードアップを推定する。これにより相対的な平均二乗誤差を5.1%抑えて2倍近い高速化を実現した。
設計空間探索を支援するためのML活用
これまでのアプローチは焼きなまし法や遺伝的アルゴリズムといった古典的なアルゴリズムが適用されているがこれらは「探索」に重きを置いている。昨今ではMLを用いる異なったアプローチを見ることができる。
古典的な最適化アルゴリズムを改善するML
論文リンク
Machine Learning for Design Space Exploration and Optimization of Manycore Systems [pdf] Ryan Gary Kim, Janardhan Rao Doppa and Partha Pratim Pande. ICCAD’18
STAGEはマルチコアシステムのDSE手法、SAの性能は探索プロセスの開始点に大きく依存しているという観察結果をもとにしている。設計空間のどの部分に焦点を当てるべきかを学習するMLモデルを構築して無駄な探索の時間を排除している
STAGEは二つの段階に分かれている
- 第一段階 ローカルサーチ
- 設計者の目標に基づいたコスト関数を用いて通常の検索を行う
- 第二段階 メタ検索
- ある出発点を与えられた時のローカル検索の結果を予測することを学習するために、以前のローカル検索の実行による検索軌跡を使用する
さらなるSAの性能向上
論文リンク
Machine-learning based simulated annealer method for high level synthesis design space exploration [pdf] Anushree Mahapatra and Benjamin Carrion Schafer. ESLsyn 2014
FSAでは決定技を利用してSAの性能を向上させている。
メタヒューリスティクスのハイパラ設定とML
論文リンク
Machine Leaming to Set Meta-Heuristic Specific Parameters for High-Level Synthesis Design Space Exploration [pdf] Zi Wang and Benjamin Carrion Schafer. DAC 2020
SA、GA、ACOについてハイパラの設定から結果として得られる設計品質(Average Distance to the Reference Set)と実行時間を予測するMLモデルを構築した。