kpet/clvk

Implementation of OpenCL 3.0 on Vulkan

何を解決するか

clvk は OpenCL 3.0 標準の適合実装を提供し、Vulkan をサポートするすべてのハードウェア上で OpenCL アプリケーションを実行できるようにします。これにより、OpenCL フレームワークと Vulkan ベースの GPU の間のギャップが埋められ、コンピューティングワークロードのためのより広範なハードウェア互換性が実現されます。

動作方法

clvk は翻訳レイヤーとして機能します。clspv コンパイラを使用して OpenCL カーネルを SPIR-V にコンパイルし、Vulkan で使用されるバイナリ形式に変換します。その後、OpenCL API 呼び出しを対応する Vulkan コマンドにマッピングして、GPU 上でこれらのカーネルを実行します。

対象ユーザー

  • ネイティブ OpenCL ドライバが不足または不十分なプラットフォームで OpenCL ベースのソフトウェアを実行したい 開発者
  • Android や Raspberry Pi など、Vulkan サポートが OpenCL よりも一般的なプラットフォームをターゲットとする システム統合者

主な特徴

  • OpenCL 3.0 に適合: 標準を実装することで、幅広いアプリケーションとの互換性を確保します。
  • クロスプラットフォーム対応: Linux、macOS、Windows、Android でビルド可能です。
  • パフォーマンスチューニング: コマンドのバッチ処理やグループ化をカスタマイズ可能で、レイテンシーやスループットを最適化できます。
  • 観測性: Perfetto トレースとグローバルなタイミング情報の統合サポートにより、パフォーマンス分析が可能になります。
  • ICDローダー対応: cl_khr_icd 拡張機能と互換性があり、OpenCL ICD ローダーとスムーズに連携できます。

関連

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