Upcoming Events
GDC 2010
3/9 - 3/13 @ San Francisco, CA

SXSW Interactive Festival
3/12 - 3/16 @ Austin, TX

IEEE Virtual Reality 2010
3/20 - 3/26 @ Waltham, MA

Women in Games
3/25 - 3/26 @ Bradford, United Kingdom

More events...


Quick Stats
9657 people currently visiting GDNet.
2375 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