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