LuisaGroup/LuisaCompute

High-Performance Rendering Framework on Stream Architectures

何を解決するか

LuisaCompute は、統合性、プログラマビリティ、パフォーマンスのギャップを埋めるために設計された、高性能でクロスプラットフォームのコンピューティングフレームワークです。開発者は一度だけ計算カーネルを記述し、CUDA、DirectX、Metal、CPU などのさまざまなハードウェアバックエンドで実行できます。各プラットフォーム用の独自のシェーダーを書く必要がありません。

動作方法

このフレームワークは3つの主要なコンポーネントで構成されています:

  • 埋め込みドメイン固有言語(DSL): 現代の C++ に埋め込まれた DSL を使用し、C++ 構文でカーネルを記述できます。メタプログラミングとオペレータオーバーロードを活用して、カーネルを抽象構文木(AST)にトレースし、JIT コンパイルによってプラットフォーム依存のシェーダーソースコードに変換します。
  • 統合ランタイム: 高レベルのフロントエンドインターフェースと低レベルのバックエンド API の間を橋渡しする抽象ランタイム層です。静的に型付けされた C++ オブジェクト(リソースラッパー)を提供し、メモリ管理やコマンドスケジューリングを可能にします。依存関係を自動的に探査し、ハードウェアの利用効率を最適化します。
  • 複数のバックエンド: 特化されたバックエンドが AST と中間コマンドを、CUDA、Metal、DirectX、および Rust で実装された CPU フォールバック用のネイティブカーネル起動に変換します。

対象ユーザー

高性能なグラフィックスアプリケーション、レンダリングエンジン、または一般用途のストリーム処理ソフトウェアを開発している開発者向けです。パフォーマンスを犠牲にすることなくクロスプラットフォーム互換性を実現したい方におすすめです。

特徴

  • 統合された記述方法: ホスト側のロジックとデバイス側のカーネルは、どちらも現代の C++ で記述可能。
  • クロスプラットフォーム対応: CUDA、DirectX、Metal、CPU 用のネイティブバックエンド。
  • Python フロントエンド: フレームワークの機能に簡単にアクセスできる Python インターフェースを提供。
  • 自動微分: 計算タスクに対して自動微分をサポート。
  • リソース管理: 高レベルのラッパーにより、リソース処理やコマンド送信のボイラープレートコードを排除。

関連

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