KhronosGroup/OpenCL-ICD-Loader
The OpenCL ICD Loader project.
解决的问题
该项目为开发者提供了一种标准化的方法,使他们无需将软件链接到特定硬件厂商的驱动程序(ICD),即可构建使用 OpenCL 的应用程序。这消除了应用程序在编译时必须知道系统中存在哪种特定 GPU 或加速器设备的需求。
工作原理
ICD 加载器作为应用程序与实际硬件驱动程序之间的中介层。它执行三个主要功能:
- API 导出:提供应用程序调用的标准 OpenCL API 入口点。
- 枚举:通过 Windows 上的注册表键或 Linux 上的特定目录扫描系统,查找可用的 OpenCL 实现。
- 转发:根据所使用的设备,将应用程序的 API 调用路由到正确的硬件特定实现。
适用对象
开发跨平台、硬件无关的应用程序,利用 OpenCL 在 GPU、CPU 或其他加速器上进行并行计算的软件开发者。
主要亮点
- 硬件无关:无需厂商特定的链接,即可在任何 OpenCL 兼容设备上运行应用程序。
- 实验性层支持:包含一个实验性功能,用于加载额外的层以扩展或拦截 API 调用。
- 跨平台:支持 Windows 和 Linux 环境。
- 基于 C 的基础设施:在 API 头文件与硬件特定的驱动程序实现之间提供清晰的分离。
相关
- 项目
- 项目
- 项目
- 项目
- 项目