We recently took a look at multicore software automation, and one of the efforts in play was the generation of so-called “recipes” for helping parallelize a program. The idea is that a tool from Vector Fabrics helps you decide how to parallelize a sequential program, and then you get a set of instructions that tell you how to transform your program into a parallel version.
Typically this is done by inserting pthread or OpenMP constructs. But Vector Fabrics recently announced a new twist – albeit one that’s in development, not yet in production. They’re working with Imagination Technologies to include their PowerVR GPUs – in particular, the SGX540 and SGX544MP2 – in a target platform and produce OpenCL recipes.
OpenCL (which stands for Open Computing Language) is a framework that allows writing programs that will execute on heterogeneous multicore platforms. In this case, the platform would have a GPU accelerator on it. OpenCL is typically invoked when there are GPUs in the mix; it’s an open-source, multi-platform equivalent to Nvidia’s proprietary CUDA (although Nvidia also supports OpenCL).
There are three elements involved in doing something like this. The first is modeling the GPU so that the tools can estimate performance of various parallel implementations. According to CEO Mike Beunder, that’s relatively mature. The other two are optimizing the implementations on a GPU and generating the recipes. Their work with Imagination Technologies should help with the optimization, as Mr. Beunder says they have a lot of optimization experience. And getting the recipes out should be complete around the end of the year, plus or minus.
More info in their press release…