This week has been busy with OpenCL
news with the release of Portable OpenCL
, but now there's been another project brought up and that's a German university research project to create a high-performance OpenCL driver for the CPU.
Students from the University of Saarland in the Compiler Design Lab have been working on a new OpenCL driver. Like the other OpenCL projects, this project also is using LLVM/Clang for its compiler. This OpenCL driver runs on the CPU and can take advantage of SSE and AVX extensions.
Rather than focusing first upon implementing the entire OpenCL (1.0/1.1) specification, like is done with the Clover and Portable OpenCL projects, those in Saarland first focused upon maximum performance before delivering full support for the OpenCL API. According to their internal benchmarks, their CPU driver is outperforming the CPU implementations of the AMD Stream SDK and Intel's OpenCL SDK on the processor.
The plan is to release this new OpenCL driver and vectorization library under a BSD-style license, but first they are going to finish working on the code's stability and feature completeness. They might also use the libclc library to remove AMD's OpenCL-to-LLVM front-end.
With all of these differing OpenCL projects coming up, we could reach a point of a fragmented mess for open-source OpenCL projects, but one of the Saarland developers writes: "I agree on the fact that we should try to merge the different open-source OpenCL projects, but at least at first glance they do not seem to share too many design decisions."
If we can see an open-source, high-performance OpenCL driver on the CPU to begin appearing as part of the package set in the major Linux distributions, this should really open up new opportunities for Linux.
Read more about the University of Saarland OpenCL project in this email to the LLVM mailing list