KhronosGroup/OpenCL-ICD-Loader
The OpenCL ICD Loader project.
What it solves
This project provides a standardized way for developers to build applications that use OpenCL without needing to link their software against a specific hardware vendor's driver (ICD). This removes the need for the application to know which specific GPU or accelerator device is present on the system at compile time.
How it works
The ICD Loader acts as an intermediary layer between the application and the actual hardware drivers. It performs three primary functions:
- API Exporting: It provides the standard OpenCL API entry points that the application calls.
- Enumeration: It scans the system (via registry keys on Windows or specific directories on Linux) to find available OpenCL implementations.
- Forwarding: It routes the API calls from the application to the correct hardware-specific implementation based on the device being used.
Who it’s for
Software developers creating cross-platform, hardware-agnostic applications that leverage OpenCL for parallel computing on GPUs, CPUs, or other accelerators.
Highlights
- Hardware Agnostic: Allows applications to run on any OpenCL-compliant device without vendor-specific linking.
- Experimental Layer Support: Includes an experimental feature to load additional layers for extending or intercepting API calls.
- Cross-Platform: Supports both Windows and Linux environments.
- C-based Infrastructure: Provides a clean separation between the API headers and the hardware-specific driver implementations.
Related
- Project
- Project
- Project
- Project
- Project