For years, rumors have been circulating that graphics developer Nvidia might start making its own x86-compatible systems—perhaps not for mainstream computers (at first), but for high-end graphics systems and supercomputing applications. Now, Nvidia has announced it is taking a step into the x86 world—but it’s not building its own processors. Instead, the company has announced the Portland Group (PGI), a consulting subsidiary of STMicro, is developing a CUDA C compiler that will enable CUDA applications to run in industry-standard x86 processors—no Nvidia hardware required.
The compiler will enable developers developing CUDA applications—which tap into the massively parallel processing capabilities in Nvidia graphics hardware—to deploy their applications to standard x86 processors from the likes of Intel and AMD. Although this move probably doesn’t have any tremendous impact for gamers—who will still need graphics hardware to push all those pixels to their displays—the move could have significant ramifications for programmers making parallel computing applications that need to be deployed on servers and computing clusters that do not have Nvidia graphics hardware installed. Instead, the applications will be able to tap into multicore processors from Intel and AMD for executing parallel tasks—maybe not as much parallel oomph as Nvidia hardware, but that’s better than not being able to run at all.
“In less than three years, CUDA has become the most widely used massively parallel programming model,” said Nvidia CPU computing general manager Sanford Russell, in a statement. “With the CUDA for x86 CPU compiler, PGI is responding to the need of developers who want to use a single parallel programming model to target many core GPUs and multi-core CPUs.”
CUDA has developed a significant following supercomputing application developers: Nvidia launched the CUDA development platform in 2007 as one of its first major steps into supercomputing. The non-proprietary alternative to CUDA is the more recent OpenCL, which by most accounts still has to catch up to CUDA in technical capabilities as well as adoption by developers of high-performance applications. CUDA also faces competition from Microsoft’s DirectCompute, an API in Windows Vista and Windows 7 that enables developers to leverage the parallel processing capabilities of Nvidia graphics hardware.
Extending the CUDA platform to x86 processors not only broadens the hardware that can run CUDA applications, it also lowers the barriers to getting started writing CUDA apps: with an x86 compiler, any developer with a standard Intel or AMD processor can at least get started.
None of this rules out the notion that Nvidia might develop its own x86 processors. Intel has increasingly worked to hamstring the discrete graphics market, with its forthcoming Sandy Bridge CPUs integrating graphics controllers, making it impossible for system makers to build computers that don’t include Intel graphics. At a certain point, Nvidia may decide it’s better off making its own processors rather than being held captive to the Intels and AMDs of the world.