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 加载器一起使用。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目