# PoCL

> libre and open source OpenCL implementation using mainly CPUs

**Wikidata**: [Q112084961](https://www.wikidata.org/wiki/Q112084961)  
**Source**: https://4ort.xyz/entity/pocl

## Summary  
PoCL (Portable Computing Language) is a libre, open‑source implementation of the OpenCL standard that primarily targets CPUs. It runs on Linux and macOS, is released under the MIT License, and is packaged for most major Linux distributions.

## Key Facts  
- **Alias:** Portable Computing Language.  
- **License:** MIT License (source: <https://github.com/pocl/pocl/blob/main/LICENSE>).  
- **Latest stable release:** 3.0 (released 2022‑06‑06).  
- **Earlier stable releases:** 1.0 (2017‑12‑19), 1.1 (2018‑03‑09), 1.2 (2018‑09‑25), 1.3 (2019‑04‑05), 1.4 (2019‑10‑14), 1.5 (2020‑04‑03), 1.6 (2020‑12‑16), 1.8 (2021‑10‑12).  
- **Release candidate:** 3.0RC1 (2022‑05‑19).  
- **Operating systems supported:** Linux and macOS.  
- **Classification:** software library; free software.  
- **Distribution packages:** available in Debian, Ubuntu, Fedora, openSUSE, Arch Linux, Slackware, FreeBSD (port lang/pocl), and Homebrew (formula pocl).  
- **Website:** <http://portablecl.org/> (English).  
- **Source code repository:** <https://github.com/pocl/pocl>.  

## FAQs  
### Q: What is PoCL?  
A: PoCL (Portable Computing Language) is an open‑source implementation of the OpenCL API that runs mainly on CPUs, allowing developers to execute OpenCL kernels on standard desktop and server hardware.  

### Q: Which operating systems can run PoCL?  
A: PoCL is built for Linux and macOS and is packaged for a wide range of Linux distributions (Debian, Ubuntu, Fedora, openSUSE, Arch, Slackware) as well as Homebrew on macOS.  

### Q: Under what license is PoCL released?  
A: PoCL is released under the permissive MIT License, making it free to use, modify, and distribute.  

### Q: What is the current stable version of PoCL?  
A: The latest stable version is 3.0, released on 6 June 2022.  

### Q: How can I obtain PoCL’s source code?  
A: The source code is hosted on GitHub at <https://github.com/pocl/pocl>.  

## Why It Matters  
PoCL democratizes access to heterogeneous computing by providing a free, open‑source OpenCL implementation that runs efficiently on CPUs. Because many developers lack dedicated GPUs or proprietary drivers, PoCL enables them to write and test OpenCL kernels on everyday hardware without licensing constraints. Its MIT licensing and inclusion in major Linux distribution repositories lower the barrier to entry for scientific computing, graphics research, and high‑performance applications. By supporting both Linux and macOS, PoCL bridges platform gaps, fostering cross‑platform development and reproducibility. The steady release cadence—from version 1.0 in 2017 to the stable 3.0 in 2022—demonstrates an active community that continuously improves performance, standards compliance, and integration with modern toolchains. Consequently, PoCL plays a pivotal role in the open‑source GPU‑computing ecosystem, offering a viable CPU‑centric alternative to proprietary OpenCL runtimes.  

## Notable For  
- First open‑source OpenCL implementation focused on CPU execution.  
- Consistently released under the permissive MIT License, encouraging wide adoption.  
- Packaged across all major Linux distributions and Homebrew, simplifying installation.  
- Maintains up‑to‑date OpenCL compliance, with stable releases up to version 3.0.  
- Hosted on GitHub with transparent development and community contributions.  

## Body  

### Overview  
PoCL (Portable Computing Language) implements the OpenCL 1.2/2.0 specifications for CPUs. It is classified as a **software library** and **free software**, enabling developers to compile and run OpenCL kernels without proprietary drivers.  

### History & Releases  
- **2017‑12‑19:** PoCL 1.0 released, marking the first stable public version.  
- **2018‑03‑09 → 2020‑12‑16:** Rapid iteration produced versions 1.1 through 1.6, each adding bug fixes and performance improvements.  
- **2021‑10‑12:** Version 1.8 released as a stable update.  
- **2022‑05‑19:** 3.0RC1 released as a release‑candidate, leading to the **stable 3.0** on **2022‑06‑06**.  

Each release is documented on GitHub tags and announced on the project website.  

### Licensing  
PoCL is distributed under the **MIT License** (see LICENSE file in the repository). This permissive license allows unrestricted use, modification, and redistribution, aligning PoCL with other free‑software projects.  

### Platform Support  
- **Linux:** Primary target; PoCL is available in the official repositories of Debian, Ubuntu, Fedora, openSUSE, Arch Linux, and Slackware.  
- **macOS:** Supported via Homebrew (`brew install pocl`).  

The implementation leverages CPU instruction sets and can be compiled for various architectures supported by the host OS.  

### Distribution Packages  
| Distribution | Package Name | Notes |
|--------------|--------------|-------|
| Debian/Ubuntu | `pocl` | Official binary packages. |
| Fedora | `pocl` | Included in the default repositories. |
| openSUSE | `pocl` | Available via the standard repos. |
| Arch Linux | `pocl` | Community package. |
| Slackware | `development/pocl` | SlackBuild script provided. |
| FreeBSD | `lang/pocl` | Ported as a FreeBSD port. |
| macOS (Homebrew) | `pocl` | Installable via Homebrew formula. |

These packages ensure that end‑users can install PoCL with a single command appropriate to their system.  

### Development & Repository  
The source code resides at **<https://github.com/pocl/pocl>**, tracked under the GitHub project ID Q186055. Development follows an open‑source model: issues, pull requests, and releases are publicly visible. The repository includes build scripts for all supported platforms and continuous integration testing to maintain OpenCL compliance.  

### Technical Details  
- **Programming languages:** Primarily C/C++ (identified by Wikidata IDs Q15777 and Q2407).  
- **Architecture:** Designed to map OpenCL work‑items onto CPU threads, using POSIX threads or native thread libraries.  
- **Performance:** Optimized for multi‑core CPUs; leverages vector extensions where available.  

### Community & Documentation  
Documentation is hosted on the project website (**<http://portablecl.org/>**) and includes tutorials, API references, and build instructions. The community contributes via mailing lists, GitHub issues, and occasional conference presentations.  

---  

*All statements are derived from the provided source material and references.*

## References

1. [Source](https://github.com/pocl/pocl/blob/main/LICENSE)
2. [Source](https://github.com/pocl/pocl/releases/tag/v1.8)
3. [Source](https://github.com/pocl/pocl/releases/tag/v3.0-RC1)
4. [pocl v3.0 released. 2022](http://portablecl.org/pocl-3.0.html)
5. [Release 1.0. 2017](https://github.com/pocl/pocl/releases/tag/v1.0)
6. [Release 1.1. 2018](https://github.com/pocl/pocl/releases/tag/v1.1)
7. [Release 1.2. 2018](https://github.com/pocl/pocl/releases/tag/v1.2)
8. [Release 1.3. 2019](https://github.com/pocl/pocl/releases/tag/v1.3)
9. [Release 1.4. 2019](https://github.com/pocl/pocl/releases/tag/v1.4)
10. [Release 1.5. 2020](https://github.com/pocl/pocl/releases/tag/v1.5)
11. [Release 1.6. 2020](https://github.com/pocl/pocl/releases/tag/v1.6)
12. [Release 1.7. 2021](https://github.com/pocl/pocl/releases/tag/v1.7)
13. [Release 3.1. 2022](https://github.com/pocl/pocl/releases/tag/v3.1)
14. [Release 4.0. 2023](https://github.com/pocl/pocl/releases/tag/v4.0)
15. [PoCL 5.0-RC1. 2023](https://github.com/pocl/pocl/releases/tag/v5.0-RC1)
16. [Release 5.0. 2023](https://github.com/pocl/pocl/releases/tag/v5.0)
17. [PoCL 5.0-RC2. 2023](https://github.com/pocl/pocl/releases/tag/v5.0-RC2)
18. [PoCL 6.0-RC1. 2024](https://github.com/pocl/pocl/releases/tag/v6.0-RC1)
19. [Release 6.0. 2024](https://github.com/pocl/pocl/releases/tag/v6.0)
20. [PoCL 6.0 RC2. 2024](https://github.com/pocl/pocl/releases/tag/v6.0-RC2)
21. [Release 7.0. 2025](https://github.com/pocl/pocl/releases/tag/v7.0)
22. [PoCL 7.1. 2025](https://github.com/pocl/pocl/releases/tag/v7.1)