Evolution of Graphic Card

CMPS 161 Final Project


Jia Ming (Simon) Ma (JMA14@ucsc.edu)


Requires FLTK , GLUT , C++

README

Full technical paper in .docx format

Visual C++ sourece Code package

Executable files package

Presentation



Background Information


The graphic card, or precisely the GPU, was not popularized until 1999. Before that, CPU was responsible to process most of the data. However as the digital graphics spreads like wild fire, a processing unit specifically for graphic is necessary. This is because the modern CPUs strongly favor lower latency of operations with clock cycles in the nanoseconds. The trade-off area where our CPUs were not performing well was that of massive fine grain parallelism. In other words, CPUs focus on the throughput of the pipelines, but not an individual operation. Therefore, CPU yielded rather inefficient system for graphics processing any more. On the other hand, GPUs are specifically designed to execute literally billions for small user-written programs per second. That means GPUs can handle the complicated graphical data with a much faster speed comparing to CPU. Unfortunately, it seems that CPU technology has been near the bottleneck now. Due to the limitation of semi-conductor, people start building a CPU with more cores instead of having a higher clock speed. As the result of this, the improvement is no longer obvious. On the other side, the GPU technology hasn¡¯t met the bottleneck yet, so it still has a lot room to develop. Because of this, GPU starts sharing the normal data processing with CPU. For example, the CUDA technology from NVIDIA is a parallel computing architecture. It instructs the computer to ¡°co-process¡± on the CPU and GPU . Based on this technology, the processing speed is increased more than 100 times faster as figure 1 shown. So, GPUs are not only a graphical processing unit, but also an important part of the central processing pipeline now.



Abstract


This project is going to visualize the development of desktop graphic card since 2006. The program is going to analyze and represent the architecture of the GPU, the price, and the performance in several graphs. Users are able to control what elements to show on the graph by control panel. There are three types of graphs. The first one is regular X-Y Axis 2D scatter plot with changeable Y axis as figure 3. The y axis could be transistors count, memory clock rate, fabrication process, fillrate, power consumption (known as TDP), or release price. The X axis is the timeline from 2006 to 2012. The second type of graph is a performance benchmark score chart. This chart is a line graph for 2 brands, 6 categories of graphic cards. The categories include entry-level graphic, mid-range graphic, and high-end graphic for both AMD and nVidia. The third type of graph is a Performance/Price Ratio Chart based on time and release price. The X axis is time from 2006 to 2012, and Y axis is the release Price. The size of each square represents the performance/price ratio. In other word, the more valuable the graphic card is, its square will be bigger. Also, all graphic cards will be colored based on their brand and targeting market.



Goals


This project is intended to help users to find the best selection of graphic cards. More importantly, users are able to visualize the history, and predict the future of GPU based on the trend



Detail


For this program, FLTK library, GLUT library, and C++ compiler are required. The basic ideas of this program is to implement a gui, build several scatter plots based on sorted date, one line chart, and one custom made chart. I am using FLTK to build a GUI with menu bar, dropdown menu, buttons and an OpenGL display window. In the OpenGL window, I read in the data select from the FLTK menu, do the calculation and plot the graph in the OpenGL window.I use several arrays to store all date and result.



Screenshots and running video


Here are some screenshots and video:

2png

31png

32png

12png





Timeline


Finish collecting complete data from internet Feb 12th
Start writing final project report Feb 25st
Start building the GUI interface and structure Feb 25st
Start building the OpenGL part Mar 1st
Final debugging and report Mar 15th


Reference and usable research

Lilly, Paul. "Maximum PC | From Voodoo to GeForce: The Awesome History of 3D Graphics." Technology News, Computer and Notebook Reviews, Computer News, Computer Mods, PC News | Maximum PC. MAXIMUMPC, 19 May 2009. Web. 02 Feb. 2012. <http://www.maximumpc.com/article/features/voodoo_geforce_awesome_history_3d_graphics>.



Garger, John. "How Computer Video Cards Evolved Over the Years: A History of Graphics Cards." Find Science & Technology Articles, Education Lesson Plans, Tech Tips, Computer Hardware & Software Reviews, News and More at Bright Hub. Web. 02 Feb. 2012. <http://www.brighthub.com/computing/hardware/articles/60619.aspx>.



"Performance Charts - Tom's Hardware." Tom's Hardware: Hardware News, Tests and Reviews. Web. 02 Feb. 2012. <http://www.tomshardware.com/charts/>.



[1]. "High Scalability - High Scalability - GPU vs CPU Smackdown : The Rise of Throughput-Oriented Architectures." High Scalability. Web. 24 Feb. 2012. .




By Jia Ming Ma 03/17/2012