A Comparison of Modern GPU and CPU Architectures: And the Common Convergence of Both
Jonathan Palacios, Josh Triska · 2011
Graphics Processing Units (GPUs) have been evolving at a rapid rate in recent years, partly due to increasing needs of the very active computer graphics development community. The visual computing demands of modern computer games and scienti c visualization tools have steadily escalated over the past two decades (Figure 1). But the speed and breadth of evolution in recent years has also been a ected by the increased demand for these chips to be suitable for general purpose parallel computing as well as graphics processing. In a campaign that has been perhaps most aggressively pushed by the company NVIDIA (one of the leading chip designers), GPUs have moved closer and closer to being general purpose parallel computing devices. This movement began in the computer graphics software research community around 2003 [15], and at the time was called General Purpose GPU (GPGPU) computing [16, 20, 8]. Using graphics APIs not originally intended or designed for non-graphical applications, many data parallel algorithms, such as protein folding, stock options pricing Magnetic Resonance Image (MRI) reconstruction and database queries, were ported to the GPU. This prompted e orts by chip designers, such as NVIDIA, AMD and Intel to produce architectures that were more exible with more general purpose components (perhaps the most notable change has been the uni ed shader model). This blurring of roles between the CPU (which, in the past, has been considered the primary general purpose processor) and the GPU has caused some interesting dynamics, the full rami cations of which are not yet clear. GPUs are becoming much more capable processors, and unlike CPUs, which are struggling to nd ways of improving speed, their raw computational power increases dramatically every generation, as they add more and more functional units and processing cores . CPUs are also adding cores (most CPUs are now at least dual-core), but at a much slower rate. Still, CPUs are much more suited to certain tasks where there is less potential for parallelism. In any case, GPUs and CPUs seem to be engaged in some sort of co-evolution.