Are GPUs and CPUs on a Collision Course?
9 Apr 2007
From ACM Queue:
PeakStream Founder and CTO Matthew Papakipos explains how the PeakStream Virtual Machine provides automatic parallelization of programs written in C/C++ so that developers can focus on their application logic — and not the intricate details of parallelizing the application — and ultimately improve the performance of HPC applications when running on multi-core processors.
Matt is a friend of a friend, and I spoke with him several months ago about his company and their premier product, PeakStream Platform. PeakStream provides enabling technologies that allow developers to more quickly take advantage of general-purpose computation on graphical hardware (also known as GPGPU). Current NVIDIA and ATI graphics cards have incredible power to perform certain types of mathematically intensive calculations in a streaming, data-parallel fashion; however, taking advantage of that power requires some deep programmer sophistication. While efforts such as HLSL, Cg, CUDA, and CTM have made GPGPU programming more accessible, a cursory look at the documentation for these technologies proves that it still isn’t anywhere near easy.
My personal take is that products that help developers take advantage of data-parallel hardware will be extremely important over the next five years. Beyond that though, it’s pretty obvious that graphics processors and general-purpose processors are on a collision course, with graphics processors getting larger and richer instruction sets and general-purpose processors getting more data-parallel constructs. Any product that simply bridges the two architectures will simply get squeezed out.
That said, I believe Matt and PeakStream have a few more cards up their sleeves than is quickly apparent in their current offerings. If they move beyond bridging technologies into data-parallelism modelling and debugging, they will continue to solve the problems that developers will have to reckon with even after the hardware converges.