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 インターフェースを提供。
- 自動微分: 計算タスクに対して自動微分をサポート。
- リソース管理: 高レベルのラッパーにより、リソース処理やコマンド送信のボイラープレートコードを排除。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト