exo-lang/exo

Exocompilation for productive programming of hardware accelerators

解決する課題

Exoは、ハードウェアアクセラレータのプログラミングをより生産的にするために設計された言語およびコンパイラです。高レベルな生産性と、専用ハードウェア上でパフォーマンスを最適化するために必要な低レベルの制御との間のギャップを埋めます。

仕組み

Exoを使用すると、開発者はPython経由で直接実行できるコード、またはexoccコマンドを使用してCおよびヘッダーファイルにコンパイルできるコードを記述できます。CMakeとNinjaを利用したビルドシステムを活用して、生成されたCコードをコンパイルおよびリンクします。高度なハードウェア機能のテスト(AVX-512やAMXなど)については、Intel Software Development Emulator (SDE) との統合が可能です。

対象者

生産性を犠牲にすることなく、計算を効率的にスケジューリングおよび最適化する方法を必要とする、ハードウェアアクセラレータを扱う開発者や研究者向けです。

ハイライト

  • Exocompilation: ハードウェアアクセラレータに特化したコンパイルプロセス。
  • Cコード生成: ExoファイルからCおよびヘッダーファイルを生成する機能。
  • ハードウェアサポート: AMXなどのx86固有の機能をテストするためのIntel SDEなどのツールとの統合。
  • 学術的基盤: PLDI 2022およびASPLOS 2025で発表された研究に基づいています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト