Comments: Why "AI Accelerators" Will Never Happen

It would seem to me that another problem with AI acceleration is the lack of an acceptable fallback? Even if it worked, the card would basically become required. With graphics, if you didn't have the latest card, you'd just get fewer polygons, less realistic lighting, etc. The only time it affects gameplay is when you sometimes don't get the right kind of fog or something.

But with AI, you can't have a "stupider" mode for people without the card. You can't just have the NPCs bump into walls more often or something; it would significantly affect gameplay.

Posted by ToastyKen at August 16, 2008 01:00 AM

I think that certainly there can be hardware development for specific AI techniques. Neural networks, which come in handy for dynamic decision-making and adaptive responses are very slow on non parallelized hardware. On a many core system, the using large neural nets to determine npc behavior in rts or fps games could be possible, but special purpose neural network simulating hardware (or connections to biological networks?!!) could be utilized to create truly adaptive and unpredictable AI.

Posted by Jeremy at August 16, 2008 01:21 AM

Yeah, I think that's somewhat covered point 3 ToastyKen, although I agree entirely on the fallback angle.

Graphics can get away with Anti Aliasing and texture options to improve visual quality easily on higher cards. What would AI have? "Shoot better"? "Find me more easily"? "Defeat me much faster"? - any option makes it a difficulty option, where as 95% of graphics options doesn't affect how hard a game is or the games design.

Also, since it uses the general CPU's AI can be given more CPU if really required by the game design, and on PC's the speed of CPU's are rapidly going up, with the low end increasing very fast as new PC's get sold.

Physics works too, but even that is of limited hardware usefulness and needs specific routines for little gain - and again, if the game requires the card, the gameplay is drastically changed.

AI is so limited but yet these claims of a AI card is banded around, I wonder why there isn't any plans for a "Scripting language card" (LUACard! PythonCard!) or "Unpacking Resources Card" (UnzipCard! LoadOffHDDFastCard!), or a "More Fun" card (CreateRainbowsCard! MagicFairyDustCard!), urg. :/

Posted by Andrew at August 16, 2008 01:59 AM

Interesting argument, though I think that it's a real chicken and egg problem. The thing is that some of the prinicples of AI haven't yet been found or understood. That is an issue completely independent of hardware. But let's imagine that one of the tens of thousands AI researchers out there finds an algorithm (can be on toilet paper if you are of the imaginative type) that makes, say, agent reasoning by a factor of ten better. Even if the computational cost of that algorithm may be 1000x higher than for the standard one, there might be a couple of games that reduce their number of other agents or features so far as to be able to let you have fun with 1 or two of these AI enemies on the exisiting hardware. As soon that turns out to be successful, probably with a couple of variation around it, other games might pick it up. Then its just a matter of time, first some of the components might pop up as additional software instructions for hardware devices and then later affect hardware design - as one of the 227 features hardware designers balance in their design.

Posted by clemens at August 16, 2008 03:18 AM

Ha, Machine Learning accelerators would be really useful. Plus a lot of it is easy to do on the GPU or better hardware. To make ML accelerators really useful what you need to do is make more desktop application use ML. Every music player should be extracting features from music, every app should be monitoring the user to provide better than clippy kinds of suggestions. Ever file should be thoroughly indexed. Image files need to be parsed, segmented, feature extracted.

A lot of it could be done with extra hardware, but repurposing GPUs for K-NN etc might be a good motivator.

Posted by ANONYMOUS at August 16, 2008 08:48 PM

> [ANONYMOUS]
> Ha, Machine Learning accelerators would be really useful.

For machine learning accelerators to be useful for games, the industry would first have to use machine learning.

... Which it almost never does, for reasons that usually don't have anything to do with performance.

But that's a post for another day.

In any event, if game developers did use ML, that's actually another justification for the generalized multicore approach that systems like Larrabee use. There's no single accepted way to do machine learning. Those (very few) game developers who have used machine learning have all used different flavors of neural networks, genetic algorithms, simulated annealing, decision trees generated via ID3, and naive Bayesian classifiers.

Any theoretical fixed-function machine-learning hardware wouldn't be able to address all of those. Better to use general-purpose CPUs and let the developers pick the algorithms that suit them.

Posted by PaulT at August 17, 2008 08:15 PM

> [Jeremy]
> ... but special purpose neural network
> simulating hardware (or connections to
> biological networks?!!) could be utilized to
> create truly adaptive and unpredictable AI.

Creating unpredictable AI is already easy, and some games to have fairly unpredictable AI (Monolith's F.E.A.R. is probably one of the best examples of this; the AIs in Black & White are also unpredictable -- probably a bit too much).

Adaptive AI is a big topic that I hope to post more about in the future.

I think neural networks get way too much hype, though; neural nets are really best at recognition and classifications tasks -- i.e. the input side of AI rather than the behavior side -- which game AI usually doesn't have to worry about very much.

And when it comes to recognition and classification, there are usually far better ways to do it -- Support Vector Machines (SVMs) in particular are the current cutting edge of classification.

Neural nets tend to be extremely unpredictable and difficult (if not impossible) to understand, debug, and test. Very few games have used them successfully, and those that have, probably could have done what they did much more easily with other techniques.

When it comes to adaptive AI, the most successful implementation I'm aware of is the ID3-based decision tree classifier in Black & White (see http://www.gameai.com/blackandwhite.html for more info). Decision trees have many advantages: generating them is fast and easy, and the resulting decision tree can be evaluated quickly and is easy to understand.

Posted by PaulT at August 17, 2008 09:26 PM

Totally agree with you Paul.

It's also worth pointing out that hardware is gradually moving away from specialised solutions as it becomes clear that utilising multiple high-throughput chips is the way to go since clockspeed has reached a ceiling - everything ends up looking rather like a GPU anyway. This will force us to look at ways to parallelise general routines (rather than specialised ones such as the 3D pipeline) to work well on things like Larrabee or the PS3 in the future if we want to use the power available.

So, even if the AI techniques could be defined enough to be put into hardware it wouldn't be worth making a card for it as the multi-multi-core cpu/gpu will work better anyway.

Posted by Matthew Wiggins at August 18, 2008 04:00 PM

"Never" is a very long time. AI processing may not be a well-defined space now, but that doesn't mean it won't be in a few decades' time...

Posted by website designs at August 19, 2008 08:43 AM

> [Matthew Wiggins]
> So, even if the AI techniques could be defined
> enough to be put into hardware it wouldn't be
> worth making a card for it as the multi
> multi-core cpu/gpu will work better anyway.

Thanks, Matthew! Great insight.

Posted by PaulT at August 19, 2008 10:46 AM