Saturday, December 31, 2011

Know the specs: Graphic cards.

gaming graphics card
If you are into playing video games, rendering 3d animation, or editing large video files, a high end graphics card is a must. Graphic cards are responsible to draw what you see on your screen at around 60 times a second. Due to their power, a lot of programs are using the GPU (graphics processing unit) in collaboration with the CPU to crunch numbers.


Ok, so first off, what is there to look at when it comes to graphic cards?

Power:
  • Stream Processors: this indicates how many 'cores' the graphic card has. This cannot be compared across brands, but generally speaking doubling this number will double the performance.
  • Core Clock: the frequency the card's shader cores run at. Increasing this will increase performance. When you hear about someone over clocking their graphics card, they are increasing their clock frequency.
    • Note: on nvidia cards, there is a separate core and shader clock. With ATI/AMD cards, the shaders work on the same frequency as the core clock.
  • Memory (size): the more ram your video card has, the larger resolution it can display. Think of a 1920x1080 screen, that is 2073600 pixels. Now, 32 bit color is standard... so 66355200 bits of data on one screen. Since directx and opengl have two screen buffers, the shown screen and then the next frame, you can double that number. Now think about multi screen display technology and all the vertex information the graphic cards have to store. In short, ram is good. It means more FPS at higher resolutions.
  • Effective memory clock: this just explains how fast the memory runs on the graphics card. This can also be adjusted up or down to help power consumption or speed.
  • Memory bus: the larger the better. This (in simple terms) describes how many bits can be read and written at a time.
  • Memory type: generally speaking, everything will be GDDR5, which is based off of DDR3 memory, but has an 8 bit prefetch buffer. Newer graphics cards will be switching to RAMBUS style ram, known as XDR. this is the type of ram used in the play station 3, it can send 8 bits per clock cycle, provide 28 gigabytes of bandwidth per second, and offers a 7.2ghz effective clock (if you have already read my know the specs on ram, this stuff can get down to 1.25 ns cas latency!)
  • SLI / crossfire: With this technology, you can combine multiple cards together to display one screen. For example, I have two ATI 4890's in my system. I can crossfire them together, and use both cards to display one screen. This would be helpful if one card could not play a game at the highest settings. I can use both cards to get more fps and use higher display settings.
Software:
 as stated above, programs such as 3d rendering software and video editing software now use GPU's to speed up the task.  There are a few technologies that graphic cards support:
  • CUDA: this is a C/C++ language that nvidia has on all their new cards. Games that had Phisx used CUDA.
  • OpenCL: this is an open gpu computing language that works on both ATI/AMD cards as well as nvidia cards. OpenCL has its own kernel language, but has been ported over to many languages (such as C, c++, and python). With openCL, you write your program like you normally would, and then write your kernel for your GPU. Your GPU runs the kernel asynchronously, and then reports back whatever it’s supposed to return. 
  • DirectCompute: this is a GPU compute language based on directx. I have not done much research, but I have not seen it used before. So I’m just throwing it out there so I’m not leaving anyone out.
There are a few other software aspects you should be aware of, such as the version of directx your card supports. With new versions of directx, games can use tessellation to make surfaces appear more textured, instead of a flat picture. The list of added features from dx9c -> 10 -> 10.1 -> 11 is too verbose for me to summarize on here, but if you google it, it’s easy to find.

When buying a video card, make sure you do the research first. Hopefully this helps.
 

In depth reading:

4 comments:

Publius said...

sooo important, great info!

Anonymous said...

I've never understood why GPUs are so much better than CPUs for data crunching. I know NASA uses them for big simulations they do.

Anonymous said...

To Anon: GPUs are faster do to being Floating Point processors that are meant to do math

Sunny said...

I wonder if we will ever reach a time in tech where the GPU can be used as a processor for all number crunching in general, current technology could be modified to make it so that this future processor has it's own ram.

Post a Comment