# Install opencl-icd-loader with Homebrew, apk, dnf, pacman

OpenCL Installable Client Driver (ICD) Loader. Version 2026.05.29 via Homebrew; verified 2026-06-25.

## Install

```sh
sudo av install brew:opencl-icd-loader
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install opencl-icd-loader
```

  Evidence: local Homebrew formula metadata

### Linux

- apk (92%):

```sh
sudo apk add cllayerinfo
```

  Evidence: Alpine Linux edge package indexes: cllayerinfo from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz

- dnf (92%):

```sh
sudo dnf install OpenCL-ICD-Loader
```

  Evidence: Fedora Rawhide package metadata: OpenCL-ICD-Loader from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst

- pacman (92%):

```sh
sudo pacman -S ocl-icd
```

  Evidence: Arch Linux sync databases: ocl-icd from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

## Package facts

- **Package key:** brew:opencl-icd-loader
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/opencl-icd-loader>
- **Version:** 2026.05.29
- **Source summary:** OpenCL Installable Client Driver (ICD) Loader
- **Homepage:** <https://www.khronos.org/registry/OpenCL/>
- **Repository:** <https://github.com/KhronosGroup/OpenCL-ICD-Loader>
- **Upstream docs:** <https://github.com/KhronosGroup/OpenCL-ICD-Loader#readme>
- **License:** Apache-2.0
- **Source archive:** <https://github.com/KhronosGroup/OpenCL-ICD-Loader/archive/refs/tags/v2026.05.29.tar.gz>
- **Last updated:** 2026-06-25T13:37:58+02:00
- **Generated:** 2026-07-08T07:18:31+00:00

## Build dependencies

- cmake
- opencl-headers

## Install behavior

- Post-install hook: not defined
- Caveats: The default vendors directory is $HOMEBREW_PREFIX/etc/OpenCL/vendors
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 2026.05.29
- Package-manager updated: 2026-06-25
- Local data: ok
- Upstream repository: https://github.com/KhronosGroup/OpenCL-ICD-Loader
- Upstream latest detected: v2026.05.29 (current)
## Project history and usage

OpenCL ICD Loader is the Khronos official loader library that exports OpenCL API entry points, enumerates installed OpenCL implementations, and dispatches calls to vendor Installable Client Drivers.

### Project history

The need for an ICD loader came from OpenCL's multi-vendor model: a single system may have OpenCL implementations from CPU, GPU, FPGA, or accelerator vendors. Khronos announced the OpenCL Installable Client Driver loader in 2012, describing it as the library that lets applications choose among installed platforms and dispatch calls to the underlying implementation.

The Khronos GitHub repository packages that mechanism as source code and tests for the official OpenCL ICD Loader. The README is careful about scope: the loader is not an OpenCL implementation, so users must install at least one vendor ICD supporting the `cl_khr_icd` extension.

### Adoption history

The `cl_khr_icd` extension specification describes the ICD Loader as a demultiplexor that exposes platform IDs from multiple vendor implementations to applications linked against the loader. That role made `libOpenCL.so`/OpenCL loader packages a standard dependency for portable OpenCL applications on systems where the actual compute runtime comes from a separate vendor package.

Package managers often split the OpenCL ecosystem into headers, the ICD loader, and vendor runtimes. That split lets a program build and link once while the user's machine decides at runtime whether Intel, AMD, NVIDIA, POCL, FPGA, or other OpenCL providers are available.

### How it is used

Developers link applications against the ICD loader instead of a specific vendor OpenCL library. At runtime the loader enumerates vendor ICDs, exposes OpenCL entry points, and routes calls to the implementation associated with the platform, context, queue, memory object, or other ICD-compatible object.

Operators and developers use the package to make OpenCL discovery work in heterogeneous installations. The Homebrew package also installs `cllayerinfo`, a Khronos diagnostic tool for inspecting OpenCL layers and loader behavior.

### Why package nerds care

This is a tiny-looking package with a huge dependency-graph job. Without an ICD loader, every OpenCL consumer would have to choose a vendor implementation at link time or ship awkward runtime glue. With it, distributions can package OpenCL like Vulkan and OpenGL loader stacks: neutral loader first, vendor implementations separately.

It is especially important in reproducible build and CI images because installing headers and the loader is enough to compile and link many OpenCL applications even when no GPU runtime is present. Runtime capability remains a deployment concern.

### Timeline

- 2012: Khronos published news for the OpenCL Installable Client Driver loader and source availability.
- OpenCL extension era: `cl_khr_icd` defined the mechanism for multiple vendor ICDs behind one loader.
- GitHub era: KhronosGroup/OpenCL-ICD-Loader became the canonical source repository and test location for the official loader.

### Related projects

- Related projects include OpenCL-Headers, OpenCL-CLHPP, OpenCL-SDK, vendor OpenCL runtimes, POCL, and higher-level compute stacks such as SYCL implementations that rely on OpenCL platforms on some systems.

### Sources

- <https://formulae.brew.sh/formula/opencl-icd-loader>
- <https://github.com/KhronosGroup/OpenCL-ICD-Loader>
- <https://registry.khronos.org/OpenCL/specs/unified/refpages/man/html/cl_khr_icd.html>
- <https://www.khronos.org/news/permalink/opencl-installable-client-driver-icd-loader>


## Security Notes

broad file, network, media, or database tool signal.

- **Geiger risk:** blue / medium
- broad file, network, media, or database tool signal

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** opencl-icd-loader
- **Version Scheme:** 0
- **Revision:** 0
- **Head Version:** HEAD
- **Conflicts With:** ocl-icd
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** yes
- **URL Keys:** head, stable

## Other Package-Manager Records

- apk - cllayerinfo - 2.3.3-r0: normalized package name match | Alpine Linux edge package indexes: cllayerinfo from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Generic OpenCL ICD Loader | https://github.com/OCL-dev/ocl-icd
- apk - opencl-icd-loader - 2.3.3-r0: normalized package name match | Alpine Linux edge package indexes: opencl-icd-loader from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Generic OpenCL ICD Loader | https://github.com/OCL-dev/ocl-icd
- apk - opencl-icd-loader-dev - 2.3.3-r0: normalized package name match | Alpine Linux edge package indexes: opencl-icd-loader-dev from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Generic OpenCL ICD Loader (development files) | https://github.com/OCL-dev/ocl-icd
- apk - opencl-icd-loader-doc - 2.3.3-r0: normalized package name match | Alpine Linux edge package indexes: opencl-icd-loader-doc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Generic OpenCL ICD Loader (documentation) | https://github.com/OCL-dev/ocl-icd
- dnf - OpenCL-ICD-Loader - 3.0.6-7.20250722gitad770a1.fc44: normalized package name match | Fedora Rawhide package metadata: OpenCL-ICD-Loader from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Khronos official OpenCL ICD Loader | https://github.com/KhronosGroup/OpenCL-ICD-Loader
- dnf - OpenCL-ICD-Loader-devel - 3.0.6-7.20250722gitad770a1.fc44: normalized package name match | Fedora Rawhide package metadata: OpenCL-ICD-Loader-devel from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Development files for Khronos official OpenCL ICD Loader | https://github.com/KhronosGroup/OpenCL-ICD-Loader
- pacman - ocl-icd - 2.3.4-1: normalized package name match | Arch Linux sync databases: ocl-icd from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | OpenCL ICD Bindings | https://github.com/OCL-dev/ocl-icd


## Related links

- [Secret-risk packages](https://www.automicvault.com/pkg/secret-risk-packages/) - Has protected-tool coverage, approval-gate, or non-low Geiger security signals.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Language runtime packages](https://www.automicvault.com/pkg/language-runtime-packages/) - Matched language runtime, compiler, or interpreter metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [cmake](https://www.automicvault.com/pkg/brew/cmake/) - Build dependency declared by Homebrew.
- [pocl](https://www.automicvault.com/pkg/brew/pocl/) - Popular package that depends on this formula.
- [ccd2iso](https://www.automicvault.com/pkg/brew/ccd2iso/) - Shares av.db curated category or tags: c, cli, system.
- [chmlib](https://www.automicvault.com/pkg/brew/chmlib/) - Shares av.db curated category or tags: c, cli, system.
- [clinfo](https://www.automicvault.com/pkg/brew/clinfo/) - Shares av.db curated category or tags: cli, opencl, system.
- [clzip](https://www.automicvault.com/pkg/brew/clzip/) - Shares av.db curated category or tags: c, cli, system.
- [fastfetch](https://www.automicvault.com/pkg/brew/fastfetch/) - Shares av.db curated category or tags: c, cli, system.
- [jemalloc](https://www.automicvault.com/pkg/brew/jemalloc/) - Shares av.db curated category or tags: c, cli, system.
- [libcpucycles](https://www.automicvault.com/pkg/brew/libcpucycles/) - Shares av.db curated category or tags: c, cli, system.
- [libcpuid](https://www.automicvault.com/pkg/brew/libcpuid/) - Shares av.db curated category or tags: c, cli, system.
- [sysdig](https://www.automicvault.com/pkg/brew/sysdig/) - Local package facts share a topical domain. Shared terms: cli, driver, loader, system.
- [syslog-ng](https://www.automicvault.com/pkg/brew/syslog-ng/) - Local metadata places this package in an adjacent workflow. Shared terms: cli, client, driver, system.

## Combined YAML source

View the package source record on GitHub. [combined/opencl-icd-loader.yml](https://github.com/automic-vault/db/blob/main/combined/opencl-icd-loader.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
