a2flo/floor

A C++ Compute/Graphics Library and Toolchain enabling same-source CUDA/Host/Metal/OpenCL/Vulkan C++ programming and execution.

何を解決するか

異なるハードウェアアクセラレータ用に別々のコードを書く必要がなくなるように、統合APIとデバイス言語を提供します。これにより、CUDA、Metal、OpenCL、Vulkan、およびホストCPUを含むさまざまなバックエンドで実行可能な単一のC++ソースコードを記述できます。

動作方法

このプロジェクトは、統合されたコンピュートおよびグラフィックスホストAPIと、専用のC++デバイス言語から構成されています。このクロスプラットフォーム互換性を実現するために、修正されたclang/LLVM/libc++ 14.0ツールチェーンを使用しています。ライブラリはホストとデバイスの両方で動作する共有数学関数およびconstexprユーティリティを提供し、サポートされているハードウェア用の特定のバックエンド実装も備えています。

対象ユーザー

複数のGPUおよびCPUアーキテクチャに高パフォーマンスカーネルを展開する必要があるシステムプログラマー、グラフィックス/コンピュートエンジニア。

主な特徴

  • バックエンド間統合: CUDA、ホスト、Metal、OpenCL、Vulkan向けのシングルソースプログラミング。
  • 統一言語: 修正されたLLVMツールチェーンを使用して一貫したデバイス言語を提供。
  • 広範なコンピュートカバレッジ: サポートされているすべてのバックエンドは現在、コンピュート機能を提供しています。
  • グラフィックス統合: MetalおよびVulkan向けにグラフィックスサポートを提供。

関連

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