High Level Synthesis in Electronic Design Automation with Machine Learning / 電子設計自動化における高位合成と機械学習活用について


以下のサーベイ論文より気になった部分を抽出する。

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倍近い高速化を実現した。

HLSレポートイメージ
https://docs.xilinx.com/r/en-US/ug1393-vitis-application-acceleration/Profile-Summary-Report

設計空間探索を支援するための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モデルを構築した。