Jump to content
  • Advertisement
Sign in to follow this  
wodinoneeye

What could you do with a 'many-core' CPU

This topic is 3522 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Larrabee is a coming Intel CPU that will have 16/24/32 real cores on one chip linked by high bandwidth ring bus. It will have 32KB each of data and instruction L1 cache and 256KB L2 (per core). Each core can do hyperthreading and also access the main memory space pretty much the same way that your dual/quad cpus do now. It will be used initailly for graphics (they added very wide SIMD ALUs for pixel processing) but the cores are general purpose CPUs (you can run an OS on it) and can be used for other (supercomputer) type uses. I have been considering what game uses something like this would have (obviously it could be used for physics) for both client and server. AI requires alot of CPU resources, so its logical to try to apply many-core to it. Such a CPU could simultaneously run many AI of the kind games currently use (FSM logic for behavior). Larrabee is supposed to have very high bus bandwidth but trying to keep 32 cores going in a random data intensive application will probably not work efficiently. Minimizing data/code transfers using a VM that fits in 32k would alleviate the problem some (there is supposed to be special instruction to effect cache residency in Larrabee). Bytecode 'code' is more compact making it easier to fit in caches. How small a VM could you make so that it fits in the L1 cache, yet still be useful for game scripting?? What features would you need in the VM to do all the common operations done in typical scripted logic ???? The CPU cores are not locked into a limited 'shader' operating mode instead can access the entire main memory when needed (prefereably not most of the time). Could you do A* on non-trivial maps (fit in 256KB...) at least up to a certain size, but what size is that ???? For more heavyweight AI I think the random nature of access to much larger data sets would choke this kind of CPU (might even choke a quad..) But the games simulated have many simpler AIs which could be done (think of the MMORPG game servers who have to limit the NPCs leaving a pretty but largely unpopulated world). Better AI needs to be done for the 'significant' objects, but there is plenty of 'dumber' objects that could be added to the simulation in larger numbers (including control of effects/mechanism/projectiles) which bottleneck game servers today. Having 'many-core' CPUs become common is years off. Similar issues do apply to 8-core CPUs, which Intel is planning to have in your consumer grade computers soon (look how fast quad-cores came into the mainstream).

Share this post


Link to post
Share on other sites
Advertisement
Hmm I remember when legos were legos....

http://lejos.sourceforge.net/


Anyway one problem with trying to decide which features you want for your VM (and the language that will use it) is you see another feature that would be 'good' to have and after a while its grown more than you would want it too.


Specificly for game script for FSM based AI you would want switch statements for making the states work (I suppose you could do it with pointers to multiple 'state' functions ...)

Others:

Simple Arrays (or lists)

function calls (with params)

structs

for loops

sleep/wake mechanism

message passing

strings

...


All of course to fit in a 32KB L1 instruction cache


---------------------------------------------------------------------
tiny basic .... (you are old if you remember this)

http://www.ddj.com/web-development/184406381;jsessionid=ORHLR4KCGR13YQSNDLPSKH0CJUNN2JVN?_requestid=231442

Share this post


Link to post
Share on other sites
FYI, Looks like not only is there a session on multi-threading in the AI Summit at GDC, there will be another one in the main conference.

Share this post


Link to post
Share on other sites
Quote:
Original post by krez
I have a quad core but mostly I just read the internet.
That's a great line. When we have 32 cores as standard I'm adapting it and stealing it as my signature.

Share this post


Link to post
Share on other sites
I use multi-core machines to accelerate some parts of my data mining programs. I give a brief overview here:

Parallel Programming: A First Look (Nov-16-2008)

The basic idea of parallel programming is, after all, breaking up work to spread among multiple processors to speed things up. The trick is writing software to marry the problems you face with the particular parallel hardware you've got.


-Predictor
Data Mining in MATLAB

Share this post


Link to post
Share on other sites
It's amazing that individuals now will have access to as much computational power as was reserved for nations once, a small super computer on their desktop. If you throw in the GPUs and distributed computational systems like Seti@home and Folding@home, the access to computational power is enormous.

-ddn

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!