Upcoming Events
Unite 2010
11/10 - 11/12 @ Montréal, Canada

GDC China
12/5 - 12/7 @ Shanghai, China

Asia Game Show 2010
12/24 - 12/27  

GDC 2011
2/28 - 3/4 @ San Francisco, CA

More events...
Quick Stats
89 people currently visiting GDNet.
2406 articles in the reference section.

Help us fight cancer!
Join SETI Team GDNet!
Link to us Events 4 Gamers
Intel sponsors gamedev.net search:

  Contents

 Introduction
 MMX
 3DNow! and
 Streaming SIMD

 Some Examples

 Get VectorC
 Printable version

 


I have a confession to make. I am a speed addict. No, not the drug, but squeezing the last drop of time from code. I will stay up all night to get just a 0.1% reduction in frame time. The result can be spectacular, but maybe the time would be better spent elsewhere. Tweaking game-play takes time. It takes hours of playing and modifying, testing, discussing, and arguing to make a great playing game. I'm not alone. Hundreds, even thousands (maybe more) of programmers have the same habit. And it's got to stop. The thousands of lines of hand-coded assembly language, the carefully constructed #defines, writing different versions for different processors - all time better spent elsewhere. Which is why I have been working on VectorC - the compiler that does the work for you.

OK, that's quite a claim, and one I can't completely back up. C is a low-level language, so it doesn't provide all the information that a compiler needs to really make your code fly. To get parallelism (which you need on the latest processors) you need to tell the compiler whether it can safely reorder your instructions. You also need to tell it about alignment, because the latest processors are very alignment sensitive. So getting the best out of VectorC requires a few "hints" added to your code. A little work is required, but it's a lot quicker than writing hand-coded assembly. If you want to know more, read on.




Next : MMX