Arith-DAS: 微分可能アーキテクチャ探索による高性能算術回路最適化

AI/ML: 人工知能、機械学習関連

概要

(リポジトリの概要を300字程度で説明)

Arith-DASは、算術回路に対して微分可能アーキテクチャ探索(Differentiable Architecture Search)を適用し、性能(レイテンシ、スループット)、リソース(ロジック要素や面積)、精度といった複数の目的を考慮した最適化を行う研究実装です。リポジトリはPython主体で構成され、探索アルゴリズム本体、回路表現や評価モジュール、ビルド用のCMake設定や静的解析設定ファイルを含みます。NeurIPS2025の論文に対応した公式コードとして、実験の再現や手法の拡張を想定した設計になっています。

GitHub

リポジトリの統計情報

  • スター数: 8
  • フォーク数: 0
  • ウォッチャー数: 8
  • コミット数: 3
  • ファイル数: 14
  • メインの言語: Python

主な特徴

  • 算術回路向けに設計された微分可能アーキテクチャ探索の実装。
  • ハードウェア評価指標(性能・リソース)を探索の目的関数に組み込み可能。
  • Python中心で実験管理が容易、CMakeやC/C++コンポーネントで高速評価や合成連携も想定。
  • 研究再現と拡張を意識したモジュール化されたコード構成。

技術的なポイント

(技術的な特徴や注目点を700字程度で説明)

Arith-DASの中核は、微分可能アーキテクチャ探索(DAS)を算術回路設計に適用する点にあります。一般的にDASはニューラルネットワークの構造探索で用いられ、離散的な選択肢を連続的なパラメータで緩和して勾配に基づく最適化を行います。本実装では同様の緩和手法を回路トポロジやモジュール選択に適用し、回路性能(遅延やスループット)やリソース(ゲート数、面積)、誤差特性といった複合的な評価値を目的関数として扱います。探索は双レベル最適化(重みの学習とアーキテクチャパラメータの更新)で進み、ハードウェア評価を差分可能に近似するための連続化や性能推定モデルが導入されている点が特徴です。

実装面ではPythonでアルゴリズムや実験パイプラインを管理し、CMakeやC/C++コードを用いて合成ツールや高速な回路シミュレーションとの連携を想定しています。.clang-format/.clang-tidyなどの設定が同梱されており、ネイティブコードの品質維持やCIでの静的解析が考慮されています。加えて、サブモジュールやビルド設定によりハードウェア合成フロー(例:合成ツール呼び出しや遅延推定スクリプト)を組み込める設計になっているため、ソフトウェア内での評価と実機寄せの評価を橋渡しする用途に適します。研究用途としては、探索空間の設計や目的関数の重み付けを変えた比較実験、異なる合成ターゲット(FPGAやASIC)への適用、探索アルゴリズム自体の改良など多方面に拡張可能です。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .clang-format: file
  • .clang-tidy: file
  • .gitignore: file
  • .gitmodules: file
  • CMakeLists.txt: file

…他 9 ファイル

使い方(導入・実行の概略)

  • リポジトリをクローンし、必要なPythonパッケージをインストール。
  • C/C++コンポーネントがあればサブモジュールを更新し、CMakeでビルド。
  • 提供される設定ファイルで探索空間や目的関数、ハードウェア評価モデルを指定して実験を実行。
  • 実験結果はログ/チェックポイントに保存され、最終的なアーキテクチャは合成・シミュレーションに渡して評価。

想定される応用例と拡張

  • 組み込み向けの低レイテンシ加算・乗算ブロック最適化。
  • FPGAやASICターゲット別の回路デザイン自動化。
  • 精度・消費電力・面積トレードオフを考慮した設計空間探索の自動化。
  • DASアルゴリズム自体の改良(正則化、マルチ目的最適化手法の導入)による性能向上。

まとめ

(総評を50字程度で) 算術回路設計にDASを応用した研究実装で、ハード寄り評価と探索を結ぶ実験基盤として有用。

リポジトリ情報:

READMEの抜粋:

High-Performance Arithmetic Circuit Optimization via Differentiable Architecture Search