Running OpenCL On The CPU With POCL 1.0, Xeon & EPYC Testing
This week marked the release of the long-awaited POCL 1.0 release candidate. For the uninformed POCL, or the Portable Computing Language, is a portable implementation of OpenCL 1.2~2.0 that can run on CPUs with its LLVM code generation and has also seen back-ends for its OpenCL implementation atop AMD HSA and even NVIDIA CUDA. I've been trying out POCL 1.0-RC1 on various Intel and AMD CPUs.
POCL 1.0 is the first release to feature the experimental CUDA back-end for running OpenCL over NVIDIA's CUDA implementation. POCL 1.0 also has AVX-512 improvements, LLVM 5.0 support, improved CPU scalability, full conformance for OpenCL 1.2 by default, and various other improvements for running OpenCL kernels on the CPU.
With my testing so far today and yesterday, POCL 1.0-RC1 has been playing rather nicely. POCL 1.0-RC1 is building nicely on modern Linux distributions and haven't yet hit any real show-stoppers.
In the OpenCL benchmarks I have run thus far, it's been working out fine as well with no kernel crashes, etc.
I did run some benchmarks with a Core i7 8700K, EPYC 7601, and dual Xeon Gold 6138 system out of curiosity sake. The EPYC 7601 and Xeon Gold 6138 systems were the wonderful Tyan servers we have been testing the past few months on Phoronix: the Tyan GT24E-B7106 1U and Tyan Transport SX TN70A-B8026 2U.