Battle Lines Drawn Over Parallel Processing
Intel tried to push back at coverage of a recently published paper that found its Core i7 processors couldn't match the parallel processing performance of an Nvidia GPU, saying its rival took the findings of the paper out of context in a blog post that trumpeted the results.
"Nvidia picked up on a small part of the paper and took it out of context," said Nick Knupffer, an Intel spokesman, in an e-mail.
However, the paper's findings were clear. Titled "Debunking the 100x GPU vs. CPU myth: An evaluation of throughput computing on CPU and GPU," the paper was written by Intel engineers and sought to discredit claims that GPUs outperform CPUs by a wide margin in parallel processing applications. Nevertheless, the paper still found that one of Intel's fastest quad-core desktop processors, the 3.2GHz Core i7 960, was markedly slower than an older Nvidia graphics card, the GeForce GTX280, in benchmark tests conducted by the engineers.
"Our data shows that GTX280 only has an average of 2.5X performance advantage over Core i7 in the 14 kernels tested," the paper said, noting that the Nvidia GPU was more than 14 times faster under some circumstances.
Nvidia discussed the paper's findings in a blog post that questioned the magnitude of the GPU performance advantage described in Intel's paper, providing links to 10 customers who documented performance increases of 100 times or more using software that was optimized to run on GPUs.
The company also noted Intel researchers didn't publish the software code and data they used to conduct the benchmark tests. Without that information, it's impossible to repeat Intel's tests to confirm the paper's findings or to understand how the code was optimized for the chips.
"It's just bad science," said Andy Keane, general manager of GPU computing at Nvidia and the author of the blog post, discussing the paper in an interview.
Despite their rivalry, Intel and Nvidia readily agree on the importance of parallel processing capabilities. The only disagreement between them is whether the CPU or GPU is the component that's best suited to handling these parallel processing workloads, an argument largely based on their respective product strengths.
Intel, which dominates the market for x86 CPUs, believes that its chips have the necessary power to handle these workloads, whereas Nvidia -- the world's largest provider of discrete, or standalone, graphics chips -- thinks using the GPU is a better choice. Advanced Micro Devices, which sells both GPUs and x86 CPUs, shares Nvidia's view that GPUs can offer a significant performance boost in certain types of applications.
The Intel paper generally reinforces the position held by Nvidia and AMD by acknowledging that the GTX280 holds a performance advantage over the Core i7 960 when it comes to parallel processing.
The reason for the difference in performance between CPUs and GPUs is that the two chips are designed with fundamentally different purposes in mind. CPUs are designed to handle a series of instructions in sequential order. The addition of multithreading capabilities and multiple cores gives CPUs a significant degree of parallelism, but that pales in comparison to what GPUs from Nvidia and AMD are capable of with certain applications, such as video encoding.
Originally used to draw thousands of polygons and map textures for realistic computer graphics, GPUs are parallel processors designed to handle many operations at the same time. Each GPU processor core may be simpler and less powerful than a CPU core but the latest Nvidia GPUs have hundreds of them, compared to just four cores on the Core i7 960. The ability to process hundreds of operations simultaneously is where GPUs get their parallel processing advantage -- a point that Intel researchers acknowledged in their paper.
"There is little doubt that today's CPUs would provide the best single thread performance for throughput computing workloads. However, the limited number of cores in today's CPUs limits how many pieces of data can be processed simultaneously. On the other hand, GPUs provide many parallel processing units which are ideal for throughput computing," the paper said.
However, hardware alone isn't enough. Getting the most performance requires that an application be optimized to run on a GPU. That can be time-consuming and expensive. As a result, most applications optimized to run on GPUs are typically used in financial analysis and other fields, such as oil exploration and scientific research, where the benefits from higher performance outweigh the added cost of optimization.
GPU acceleration capabilities are increasingly a feature of consumer and business software.
One of the first companies to use the technology was Apple, which added the ability to use GPUs to handle some application workloads in the latest release of MacOS X, called Snow Leopard. Other companies followed suit, including Adobe, which uses GPU acceleration in Premiere Pro CS5, After Affects CS5 and Photoshop CS5.
Smaller software companies are also attracted to GPU acceleration, like Fotegrafik Labs, a Singaporean startup that developed software used to search a database of images or video files.
The image search software was developed on a server that's powered by a single quad-core Intel Xeon processor, but Fotegrafik Labs is considering switching to GPUs because they are more efficient than CPUs for this type of application and would allow the software to be used with very large databases, said Ori Cohen, the company's CEO, citing the relatively low cost of GPUs compared to the high performance they offer.
"If Intel could provide us with a CPU with hundreds of cores at a competitive price, then maybe the CPU would be an alternative to the GPU for video applications," Cohen said.