Saturday, July 3, 2010

CPU vs. GPU

There has been some debate in the industry about the right way to go about increasing computer performance significantly. The debate is about whether multi-core processors are going to deliver that or a handful of GPU or graphics processing units working with general purpose processors is going to do that, With multi-core CPUs the overlaps and hence throughput improvements happen at applications, may be task levels. Multi threading can improve the granularity of the overlaps further.


The recent controversy was started by Intel, the promoter of multi-core CPU shot off the first salvo with this paper; Debunking the 100X GPU vs. CPU myth: an evaluation of throughput computing on CPU and GPU. Which essentially said that the claims made by companies like NVIDIA of performance increase in the hundreds are not quite correct.According to this paper the performance increase over i7 960 by NVIDIA GeForce GTX 280 (a older generation device, by the way) was only x14 rather than x100 or more. 


This is contested in the blog by Andy Keane of NVIDIA that the company has delivered improvements in the x100 and more range and provides a list of companies who achieved that. Both parties agree that the speed up depends on the application being run.


At a basic level, the GPUs are SIMD devices where the overlap, as discussed in the introduction of this post, can be at the data level. Which provides the opportunity for large increase in throughput. Whereas the multi-core fits the MIMD model and thus speed up will depend on how the applications can be executed in parallel. We are not comaparing apples to apples here!

No comments:

Post a Comment