Graphics Processing Unit

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Picture of a nVidia GeForce 3 Ti200 GPU

A Graphics Processing Unit (short: GPU) is a RISC processor whose task is the calculation of graphical output for monitors. It is mostly used in computers and video game systems. The GPU can be put on the motherboard or on separate video cards.

Tasks a GPU has to do[change | change source]

2D and 3D (Acceleration)[change | change source]

Today, there are generally two types of images a GPU has to calculate, which is also called rendering. Most applications like the operating system’s desktop (except e.g. Windows Vista’s Aero Desktop) or office applications the GPU has to render two dimensional (2D) pictures. Modern GPUs are so powerful that there is no difference in 2D performance between low-cost and expensive GPUs. The minor part of today’s applications use 3D pictures to simulate three-dimensionality. Examples for such applications are computer and video games or applications for design and technical construction (CAD). The 3D acceleration performance of GPUs differs greatly. Generally, more expensive GPUs can render faster than low-cost ones.

Past and present manufacturers[change | change source]

Today’s market leaders for GPUs are AMD (under the label of ATi), Intel and nVidia. There are some smaller manufacturers whose market share is rather small, e.g. Matrox and S3 Graphics. They are concentrating on niche products. Some of them have focused on research only instead of producing real products, e.g. PowerVR and XGI Technology Inc. There were several manufacturers who were bought by larger competitors, like 3Dfx and 3Dlabs, or stopped their efforts, as research costs are very high. Examples are Cyrix, Tseng Labs, Trident Microsystems and OAK Technologies. Other early pioneers, like Hercules, who were once one of the market leaders, concentrate to produce video boards based on GPUs from AMD or nVidia, nowadays.

GPU Computing[change | change source]

The term GPU computing combines all tasks a GPU can calculate that go beyond simple calculation and output of pictures. It is also known under the term General Purpose Computation on Graphics Processing Unit. Tasks are calculation of physics, Artificial Intelligence or even acceleration of video and picture editing. One of the first applications to support GPU computing is Adobe’s Photoshop CS4.

nVidia’s approach: CUDA[change | change source]

nVidia calls their attempt at GPU Computing CUDA[1]. This is nVidia's interface for using their GPUs for general computing tasks. CUDA is based on the C programming language.

ATi’s approach: Stream[change | change source]

ATi is calling their attempt Stream[2]. There were some earlier attempts under a different name prior to Stream’s release with ATi’s graphics driver “Catalyst 8.12” in December 2008.

S3 Graphic’s approach[change | change source]

S3 Graphics showed a first application[3] for video editing which is accelerated by their latest GPUs. Yet, there is no information whether S3 Graphics will continue to increase their efforts in GPU computing.

The latest milestone in GPU computing was AMD’s announcement[4] of a Super-Computer based on GPUs at the CES in January 2009. It will be built of more than a thousand GPUs and will have a computing power of one petaflop.

GPU Interfaces[change | change source]

Early GPUs used Peripheral Component Interconnect (PCI) interface to communicate with the motherboard of a computer, a type of slot which is still used today for simple motherboard add-ons such as extra audio-processing cards or USB ports. As graphics cards became more powerful and graphics applications more demanding, a faster kind of interface called Advanced Graphics Port (AGP) was created and then PCIe x16 (PCI Express 16-lane) after it, the current overall standard. In 2008 PCIe 2.0 was introduced, doubling the speed of PCIe 1.0 and still working with older PCI Express interfaces.

PCI graphics cards will only work in PCI slots; AGP will only work in AGP slots. PCIe graphics cards will not function in PCI slots and PCI graphics cards will not function in PCIe slots. However, PCI Express 2.0 graphics cards will work in PCI Express x16 1.0 motherboard slots and vice-versa.

Multi-GPU systems[change | change source]

Multi-GPU Systems are computers which use more than one GPU. Generally this is used in high-end home computers to accelerate computer games, but there is also the ability to have one GPU rendering normal game scenes and one GPU calculating physics. This is currently supported by nVidia’s GPUs only and called PhysX. ATi and Intel have developed their own physics engine named Havok.

History of Multi-GPU systems[change | change source]

The first attempts in Multi-GPU Systems were done by 3Dfx, which was bought by nVidia later. Their Voodoo video cards, which were 3D only accelerators, could be hooked up to a second Voodoo video card to gain more performance. This was called SLi. Theoretically the performance would double, practically it increased far less, depending on the video game, which is still a problem in today’s Multi-GPU Systems. Later, 3Dfx built more than one GPU on one video card. It’s latest video card, the Voodoo 6, was based on four GPUs, but it was never released. However there exist several engineering samples of the Voodoo 6, mostly owned by collectors.

nVidia’s SLi[change | change source]

Picture of a 3-way-SLi system using three nVidia GeForce 8800 Ultra video cards

After nVidia bought 3Dfx Multi-GPU Systems were dead for several years until nVidia came up with this idea again in 2004. As nVidia had bought all technologies and market names from 3Dfx, too, they simply used the name SLi again. Today’s SLi[5] works with up to three video cards, which is called 3-way-SLi. There were also attempts with four cards, but this failed due to limitations in the DirectX9 API. Today’s DirectX10 API however would support this.

Despite the video cards, a SLi compatible motherboard is needed to build a SLi-System. Such motherboards have several PEG Slots (the successor to AGP, based on PCI-Express Technology) for more than one video card.

nVidia offers various Multi-GPU video cards, where two GPUs are built on one video card. These are often called Dual-GPU video cards and do not need a SLi compatible motherboard.

ATi’s CrossFireX[change | change source]

ATi’s Multi-GPU Technology is called CrossFire[6]. It works quite the same way, though there are fewer limitations for video card combinations. CrossFire was renamed as CrossFire X in 2007 to represent the possibility to combine more than two cards. Today, it is possible to have a CrossFire X system based on four video cards or two Dual-GPU cards.

Just like with SLi, there is the necessity for a CrossFire compatible motherboard in order to build a CrossFire System. One Dual-GPU video card from ATi does not necessarily need such a Crossfire compatible motherboard, however for two of them, it is needed.

References[change | change source]

  1. [1] CUDA Zone
  2. [2] GPU Technology for Accelerated Computing
  3. [3] S3 Graphics Showcases GPGPU Functionality with S3FotoPro™ Image Enhancement Application
  4. [4] AMD Supercomputer To Deliver Next-Generation Games and Applications Entirely Through the Cloud
  5. [5] SLI Zone
  6. [6] ATi CrossFireX™