28-12-2012, 01:41 PM
GRAPHICS PROCESSING UNIT
1GRAPHICS PROCESSING.docx (Size: 1.3 MB / Downloads: 34)
ABSTRACT
A Graphics Processing Unit is a microprocessing unit that is designed specifically for processing of 3D graphics. It is capable of handling millions of math-intensive operations which are required for rendering a 3D image on a screen. By performing these tasks, the GPU greatly reduces the strain that would otherwise have been put on CPU in 3D graphics rendering applications. The very high speed of performance of parallel tasks by a GPU is used to enhance the efficiency of computing data-parallel problems. For this purpose, the Compute Unified Device Architecture (CUDA) developed by Nvidia is being used. So, a GPU is being used as a co-processor with the CPU to order to improve the performance in such applications.
INTRODUCTION
General:
A number of applications have come up nowadays such as video games, animated movies which require the representation of a 3D world as realistically as possible on the computer screen. A lot of computation and complex mathematical operations need to be performed in order to depict a 3D world as realistically as possible on the computer screen. For this, a lot of CPU time and bandwidth is used up greatly due to large amount of computation and data required for 3D representation. This is where GPUs come into the picture.
A GPU or a Graphics Processing Unit is a single chip microprocessing unit that is specifically designed for processing 3D graphics. This specialized electronic circuit rapidly manipulates and alters memory as a result of which the building of the images on the frame buffer intended for output to the display is accelerated. It provides dedicated graphics resources such as graphics processor and memory thereby relieving the system resources i.e. the CPU, main memory and the bus which would otherwise get overfull with graphics requests and IO. Thus with the help of GPUs, a number of CPU cycles are freed up and hence these can be used for performance of other tasks. Thus, GPUs enable 3D representation on the screen. This rendering of graphics by the GPU greatly affects the overall speed of the system. GPU is also known as video card, video accelerator, video adapter, video board, graphics accelerator, or graphics adapter. GPUs are used in game consoles, workstations, PCs, embedded systems and mobile phones.
HISTORY, TYPES AND COMPONENTS OF GPU
HISTORY OF GPUs
• The first GPU was introduced by IBM in the year 1981 designated as Monochrome Display Adapters. These monochrome cards were text only, capable of rendering green or white text on a black background.
• Then, 4-colour Hercules Graphics Card, 8-colour Color Graphics Adapter and 16-colour Enhanced Graphics Adapter brought colour to IBM compatible computers.
• In 1983, Intel came up with iSBX275 Video Graphics Controller Multimodule Board. This accelerated the drawing of lines, arcs, rectangles and character bitmaps.
• In 1991, S3 Graphics introduce the S3 86C911.
• By 1995, all major PC graphics chip makers had added 2D acceleration support to chips.
• S3 ViRGE, ATI Rage, Matrox Mystique were the notable first tries for low cost 3D graphics chips. These were previous generation 2D accelerators with 3D features bolted on.
• In the late 1990s, Nvidia introduced the GeForce 256. It was the first consumer level graphics card with hardware accelerated Transform and Lighting. Nvidia later introduced GeForce 3 which is a graphics card capable of programmable shading.
• In October 2002, ATI Radeon 9700 was introduced. This was world’s first Direct3D 9.0 accelerator.
• The leading GPU manufacturing companies include Intel, Nvidia, AMD/ATI, S3 Graphics, VIA Tech and Matrox.
3D SCENE CREATION BY GPU
During the creation of a 3D scene, different types of data travel across the bus. The two most common types are data describing the texture and geometry. The geometry is made up of polygons (usually triangles) which are represented by vertices i.e. the end-points that define each polygon. The texture data provides the details of a scene and these textures can be used to simulate more complex geometry, add lighting and give an object a simulated surface.
The transform and lighting unit of the GPU takes a 3D scene's geometry and transforms it into different coordinate spaces. It also performs lighting calculations thereby relieving the CPU from these math-intensive tasks.
The triangle setup engine takes a scene's transformed geometry and prepares it for the next stages of rendering by converting the scene into a form that the pixel engine can then process.
The pixel engine applies assigned texture values to each pixel. This gives each pixel the correct color value so that it appears to have surface texture and does not look like a flat, smooth object. After a pixel has been rendered it must be checked to see whether it is visible by checking the depth value, or Z value.
The Z check unit performs this process by reading from the Z-buffer to see if there are any other pixels rendered to the same location where the new pixel will be rendered. If another pixel is at that location, it compares the Z value of the existing pixel to that of the new pixel. If the new pixel is closer to the view camera, it gets written to the frame buffer. If it's not, it gets discarded. After the complete scene is drawn into the frame buffer the RAMDAC converts this digital data into analog that can be given to the monitor for display.
CONCLUSION
Thus, CPUs and GPUs have significantly different architectures that make them better suited to different tasks. Both of them provide different solutions to completely different problems. The performance provided by one cannot surpass that provided by the other in its specific domain. So, neither can replace the other. Instead, the GPU is used as a coprocessor to the CPU thereby helping in improving the overall efficiency.