KhronosGroup/OpenCL-ICD-Loader

The OpenCL ICD Loader project.

解决的问题

该项目为开发者提供了一种标准化的方法,使他们无需将软件链接到特定硬件厂商的驱动程序(ICD),即可构建使用 OpenCL 的应用程序。这消除了应用程序在编译时必须知道系统中存在哪种特定 GPU 或加速器设备的需求。

工作原理

ICD 加载器作为应用程序与实际硬件驱动程序之间的中介层。它执行三个主要功能:

  1. API 导出:提供应用程序调用的标准 OpenCL API 入口点。
  2. 枚举:通过 Windows 上的注册表键或 Linux 上的特定目录扫描系统,查找可用的 OpenCL 实现。
  3. 转发:根据所使用的设备,将应用程序的 API 调用路由到正确的硬件特定实现。

适用对象

开发跨平台、硬件无关的应用程序,利用 OpenCL 在 GPU、CPU 或其他加速器上进行并行计算的软件开发者。

主要亮点

  • 硬件无关:无需厂商特定的链接,即可在任何 OpenCL 兼容设备上运行应用程序。
  • 实验性层支持:包含一个实验性功能,用于加载额外的层以扩展或拦截 API 调用。
  • 跨平台:支持 Windows 和 Linux 环境。
  • 基于 C 的基础设施:在 API 头文件与硬件特定的驱动程序实现之间提供清晰的分离。

相关

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