Tag: hls
-
High Level Synthesis in Electronic Design Automation with Machine Learning / 電子設計自動化における高位合成と機械学習活用について
以下のサーベイ論文より気になった部分を抽出する。 Machine Learning for Electronic Design Automation: ASurvey なぜ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ツールの演算遅延予測誤差低減 論文リンク…