[論文レビュー] Make Every Move Count: LLM-based High-Quality RTL Code Generation Using MCTS
この論文は、トランスフォーマー型LLMを用いてVerilog RTLコードを生成し、コンパイル可能で機能的に正確かつPPA最適化された、MCTSガイド付きデコードフレームワーク(VeriGen+MCTS)を導入します。16ビット加算器を含む従来のLLMだけの手法と比較して、最大31.8%のADP改善を報告します。
Existing large language models (LLMs) for register transfer level code generation face challenges like compilation failures and suboptimal power, performance, and area (PPA) efficiency. This is due to the lack of PPA awareness in conventional transformer decoding algorithms. In response, we present an automated transformer decoding algorithm that integrates Monte Carlo tree-search for lookahead, guiding the transformer to produce compilable, functionally correct, and PPA-optimized code. Empirical evaluation with a fine-tuned language model on RTL codesets shows that our proposed technique consistently generates functionally correct code compared to prompting-only methods and effectively addresses the PPA-unawareness drawback of naive large language models. For the largest design generated by the state-of-the-art LLM (16-bit adder), our technique can achieve a 31.8% improvement in the area-delay product.
研究の動機と目的
- LLM生成RTLコードのコンパイルと機能正確性のギャップに対処する。
- 検索を用いてLLMのデコードを導くことでPPA対応のRTL生成を可能にする。
- 実用的な設計(加算器、乗算器、MACなど)を扱い、面積と遅延を最適化する。
- モジュラー性を活用して最適化済みサブモジュールを再利用し、大規模設計に適用する。
- 複数のビット幅に渡って prompting のみの戦略に対する性能向上を示す。
提案手法
- Verilog RTL生成をLLMトークン上のマルコフ決定過程(MDP)として定式化する。
- MCTS統計とLLM事前知識を組み合わせたポリシーを用いたMonte Carlo Tree Search(MCTS)を適用する(UCTに基づく探索)。
- コンパイル不能または機能しないコードを罰する報酬関数を定義し、ADPを強調する。
- 非機能的なトークン(例: コメント)を剪定して探索空間を削減する。
- 最適化済みサブモジュールを再利用して大規模設計へ拡張する(例: 64ビット加算器)。
- VeriGen-2BをベースのLLMとして、標準的なシンセシスツールを用いて加算器、乗算器、MACユニットを評価し、PPAを導出する。
実験結果
リサーチクエスチョン
- RQ1MCTS-guided decodingフレームワークはLLMと併用して機能的に正しいVerilog RTLを生成できるか。
- RQ2PPA対応の報酬を組み込むと、 promptingのみの方法と比較して最適化されたRTL(面積、遅延、またはADP)が得られるか。
- RQ3トークン剪定(非機能的トークンの削除など)は探索効率とコード品質にどのように影響するか。
- RQ4サブモジュールのモジュール再利用は大規模ビット幅設計の生成をスケール可能にするか。
- RQ5VeriGen+MCTSは様々なモジュールとサイズでVeriGenとビーム探索または貪欲デコードとどう比較されるか。
主な発見
- VeriGen+MCTSは全てのテストモジュールで機能的に正しいVerilogコードを出力する一方、VeriGenとVeriGen+Beam Searchは多くのモジュールで失敗する。
- 機能コードを持つモジュールに対して、VeriGen+MCTSは平均でVeriGenよりADPを5.69%、VeriGen+Beamより14.27%向上。
- 最大設計(16ビット加算器)では、VeriGen+MCTSがベースライン(最先端の prompting アプローチ)に対して最大31.8%のADP改善を達成。
- モジュール性とサブモジュール再利用は大規模設計のMCTS反復速度を大幅に向上させる(例: 64ビット加算器で3倍速)。
- より高い基準報酬は搾取と機能コードの割合を増加させる一方、中間値は探索と搾取のバランスを取る。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。