kpet/clvk

Implementation of OpenCL 3.0 on Vulkan

解決的問題

clvk 提供符合 OpenCL 3.0 標準的實作,讓 OpenCL 應用程式能在任何支援 Vulkan 的硬體上執行。這有效彌補了 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 加載器無縫搭配使用。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案