Portable OpenCL (pocl) 是一个高效的 OpenCL 标准实现,提供易移植的 OpenCL 实现。该项目另外一个目的是通过编译器优化实现性能的提升,减少人工优化的步骤。
目前 PoCL 3.1 发布了,此版本带来如下改动:
- 提供与 LLVM/Clang 15.0 版本的兼容性
- 所有通过 POCL_DEVICES 控制平台设置的设备名称都改为小写
- 自定义设备驱动程序(以前称为 Accel,现在称为 AlmaIF)的重大返工,支持更多实现 AlmaIF 的设备类型
- 大大改进了 SPIR-V 对 CPU 和 CUDA 驱动程序的支持
- 改进了在 WIP Vulkan 驱动程序中实现完整 API 的步骤
- cl_khr_command_buffer 的基本实现
PoCL Vulkan 驱动程序依赖于 libvulkan 和 clspv,目前已经针对开源 Mesa Vulkan 驱动程序进行了测试。该驱动程序目前实现了大部分 Vulkan 1.2 API,但 OpenCL 图像支持、命令缓冲区无缓存和其他缺失元素尚未处理完毕。
完整的变更可查看 Change Logs 。