John Carmack doesn't believe in PPUs? Fine, then PPUs don't believe in John Carmack
We wouldn't go so as far to say that developers in the dedicated PPU world are "firing back" over John Carmack's statement last week that he is "not a believer in dedicated PPUs," but we would at least say that they're offering alternative opinions. In a recent Bit-tech article, Ageia's Dan Forster tackles concerns over the need for PPUs, and (in)directly addresses Carmack's statement that "multiple CPU cores will be much more useful in general," by suggesting that no matter how many cores are involved, there are timing issues between them when being distributed to separate tasks. Forster claims "At the moment, there's not a single game that supports multi-threading even at a basic level..." Leaving some of us to wonder just what Carmack is on about -- but do you really want to question the man who created Doom? Didn't think so.



















I refuse to buy PPUs.
Having to buy a graphic card is enough! PCs already cost way way more then a console for the same graphics, how much more do they want them to cost!?
"At the moment, there's not a single game that supports multi-threading even at a basic level..."
Wow really? I guess that means we have some major enhancements to look forward to in future PS3 and Xbox 360 games.
All sarcasm aside this guy is only a little better than a Snake Oil Salesman. I have to agree with John here that you would be better off spending your money on a better CPU or a better GPU. Or better yet just get a console and don't spend anytime worrying about stuff like this.
Completely agree. Aside from the power user who has completely maxed out every other component on his system, there's little reason to put upgrade money towards a PPU.
But can it play Do-
O SHIT A PARADOX
/universe
Ahhhh, the end of the universe! Good one Blake.
"multiple CPU cores will be much more useful in general"
I don't see how Ageia/Forster can argue this point at all. CPUs are by design general-purpose processing units. PPUs are by design highly specialized super-fast math crunchers. Thus, multi-core CPUs should in fact be much more useful in general.
And how many games take advantage of the PPU's?
Quite a few it would seem.
http://en.wikipedia.org/wiki/List_of_games_using_physics_engines
You are wrong. A Physics engine does not mean it will benefit from a PPU. Havok has been running for years and before PPU's came to light. At a source code level the way you interface with the PPU is through a supported PhysX SDK also made by Ageia currently. Those games that use havok in that list do so on the CPU with specialized SDK code.
"there are timing issues between them when being distributed to separate tasks"
Wouldn't there also be timing issues between a PPU and whatever (CPU, GPU) its talking to as well..?
Hmmm.
I thought all of Id Software's engines since (at least?) Quake 3 supported SMP (symmetric multi-processing)? I would call those "[supporting] multi-threading even at a basic level".
Anyone who claims that there isn't a single game that supports multi-threading "at a basic level" is clearly delusional or biased and should not be given any attention.
Let's not even mention the Xbox 360 and stick to the PC. Quake 3 was multithreaded with support for multiple processors even. That was how many years ago?
Look at games like Supreme Commander and Rainbow Six: Vegas which not only support two processors but can actually take advantage of 3 or 4:
http://techreport.com/reviews/2007q2/core2-qx6800/index.x?pg=4
Look at the NVIDIA drivers which offload some of their vertex processing to different CPU cores when possible.
Multi-process != Multi-thread. Multi-Threading usually happen within same process, that give advantage of less context switching, better data caching and thus better performance then multi-process. However, due to difficulty in thread programming, mostly due to locking of data, threading is not as popular as multi-process programming.
Quake 3 and many new games support multi-process, but not multi-thread.
Disclaimer: I didn't wrote/read the quake3 code so I can be wrong :)
It doesn't matter if you are multi-process or multi-thread, you'll get the bump from multiple CPUs. You _won't_ get the bump if you're talking about hyperthreading (or SMT). Pretty sure Carmack knows what a thread is.
... and Forster doesn't know what he's talking about.
So, Tiny, yes, Multi-process != Multi-thread (though each process in Windows generally has at least one thread), but Quake is almost certainly multi-threaded and not multi-process.
Processes have virtual-address-space boundaries which means that they have their own page-tables, handle-tables, etc. Threads have a little bit of instance-data, but they are far less heavy-weight. Pointers can also generally be passed between threads in the same process without any great difficulty (not in COM, or with TLS/FLS, but we're on Engadget here). Pointers cannot be freely passed between processes and be meaningful (in the general case).
If you want high-performance (and you can fit in your address-space), you want multiple threads.
The original Amiga 500 OS was fully multi-threading, back in the late 80s. By default Amiga games run on a multi-threaded basis.
Guy knows nothing. Nothing ! :P
"At the moment, there's not a single game that supports multi-threading even at a basic level..."
These same games that don't support multi-threading also don't support PPUs. Burn.
Seriously, though, that's a terrible argument. It's like saying that MS should never make a new version of DirectX because current graphics cards and games don't support it. Also, it's a terrible argument because it's a lie, and games DO in fact support multi-threading.
Next generation Source Engine (read: October) supports scaling itself over multiple cores, including distribution of AI and, you guessed it, physics processing.
John Carmack, go back and finish your lunar lander. I dont know anything about PPu's vs Multi0thread gameplay, but I do know that you need to work on your landing after breaking two landers.
Hey Ageia - I don't believe PPUs are doing very well.
I call BS on it. Every single PS3 and 360 game must be heavily threaded or it will look like a scaled down version of Doom 3. Multi-threading is everyday life on those platforms.
Not to mention the fact that the game engine I develop as a side hobby is multi-threaded. Heck, it has MULTI-THREADED PHYSICS. Cripes, these guys need to cut out with the outright lies.
There is no need for PPUs. The only thing they've given us is real-time liquids, and honestly, we'll be able to do that soon enough on CPU anyways. 90% of the "cool stuff" from Cell Factor runs perfectly well on a dual-core CPU.
The guy from Ageia arguing for the importance of dedicated physics processors? This is the most shocking news of the year so far.
Bonus points for the first person who can show me a single game supporting PPUs even at a basic level.
"At the moment, there's not a single game that supports multi-threading even at a basic level..."
As a video game software engineer with years of experience, let me just say that this statement is BS :)
"At the moment, there's not a single game that supports multi-threading even at a basic level..."
Doesn't it mean that there's much processing power left that can be used to do physics processing?
Funny
If Crysis doesn't support PPUs, then neither should we.
I 100% agree with you, If crysis doesn't support PPUs then neither should we!
The only Game I can think of that's even supporting PPUs, is UT3, and the entire Epic engine, which will be an awsome game, but I'll wait til then to see if we need PPUs, I shure hope not.
Okay, powerful multithreading in games is still an imperfect realm.
The fact remains, though, that multicore is where computers are headed, PPUs or not!
By the logic these baboons are using, we should also have:
-Programmed intelligence (game NPCs) hardware
-Rain drop processors
-Game networking processors
Oh, and those pesky "normal processors", whatever they do... (Processing or something?)
Does the mouse need a separate processor as well?
There's actually been talk of an AI processor, but it occurred to people that the idea sucked.
Oddly enough, I've seen dedicated gaming ethernet cards that sport their own low-end processor and a Linux based networking stack. They claim to (and, based on reviews, actually do) provide (up to) about a 10% boost to FPS. They run about $300 - about $100 more then even a PPU.
There's only one compnay that makes them: http://www.killernic.com
Look everyone its John Romero's new online identity.
Come on now Ron (oops I mean John) do you really need to post stupid comments about Carmack? Are you still upset that everyone didnt see the obvious magnificence of Daikatana?
Considering PPUs cost as much as the CPUs themselves I'd say they will continue to be irrelevant and any advantages they may have will be rendered moot with advances in both the multicore and GPU chips.
Um, so what he's saying is that all games use sequential programming instead of multi threading?. Multiple threads does not mean multiple cpu's. I think that Dan Forster needs to get his facts straight.
No games support the stupid physx card, so noone is buying them. Simple as that. Sorry guys at Ageia, you are going nowhere.
Ah, but can he play doom? oh wait... ya... I guess he can.
PPUs are a interesting idea, but outside of gaming they really have no practical application at all. Making them useless to the vast majority of computer users, and not worth programming for. Multicore processors however are going to be in every single computer sold in not too long.
It's a non issue anyway, the only way these guys will go anywhere is if they can convince a console maker to include their tech. What PC game would possibly support anything more than cute eyecandy or a glorified single player experience. Can you imagine playing online and getting crushed by that beautiful falling brick architecture your PC couldn't process?
I'd love to see Nvidia or ATI buy out Ageia - and pop a PPU on the next-gen video cards themselves. Another free slot and another free IRQ FTW.
Then the mad kids on 3DMark can brag about core/mem/phsyx stats to their mates. :)
Does anyone remember when 3D graphics were add-ons? The Diamond Monster 3D 4MB? Seperate PPUs make as much sense as seperate FP units like the old Intel CPUs.
Am I the only one who at first thought of the NES "Picture Processing Unit"?
Let me ask you something ... how many games actually implement heavy physics reliant gameplay ? And i'm not talking about tipping a barrel or acting a pulley - i think Half Life 2 had the maximum reasonable physics. What i'm saying is that even with a separate ppu (which i think its BS) physics in games will REMAIN A GIMMICK .. with specially prepared situations like blowing up a wall or tipping something over an enemy - this is all linked to game level design ... because when you open up too many possibilities you are starting to chip away at the credibility of a game enviroment because it becomes very hard to craft a solid experience.
A simple example: Supreme Commanders Terrain could have been deformable by weapons and such - alltho this feature was easily unlocked by a modder it is not implemented into the gameplay itself ... Why ? because it would open the door to annoying exploits and strategies that destroy the balance of the game.
2nd example. Starcraft 2 - units fire and behave just like in starcraft 1 in terms of shooting (insta hits) no distructable terrain, no innertia etc. Why do they keep it like this ... because it provides a solid experience. They just use havok for nice deaths and crumbles which dont affect the gameplay.
In the same spirit i'm willing to bet you that most of UT3s physics can be easily handled via Havok and dont intrude in gameplay so much that it demands an extra processing.
IMHO havok is enough for game designers needs.
Bottom line PPUs are a gimmick in my opinion while GPUs were a neccesity
Hi All,
As the comments above are somewhat my comments I just wanted to clarify some things in this quite heated discussion and make sure that some things are not misunderstood.
First I have never doubted the ability about any games made by John Carmack nor the talent of any games developers. I actually am grateful to anyone who ads physics to gameplay as it really offers a much more submersive experience. Also it proves the point that physics is here to stay as part of future games. As for multithreading. Of course multi threading is very important in the future. All that was being suggested is that current games dont use it heavily and that a lot of development is being done to fully understand how best to implement it. Multi threading is needed for Ageia physics as we add a huge load on the CPU as well as the GPU everytime we add physics to any game. The AI as well as the graphics take this load so the more powerful both of those components become the better for us.
Also the replies make me realize that there is a lot of misinformation about physics out there. This is where we are trying to help get more details to you.
Kind regards
Dan
Running physics on the CPU is stupid; the CPU is very general-purpose, while physics is very specific and can be very parallellized (just like graphics!) PPUs are also stupid, since they are expensive, and basically what you have to do is replicate all data that you send to the GPU, to the PPU as well. Which means that the future is really in PPU/GPU combos. This is the only direction I see as at all feasible. If the PPU and GPU is on the same board, they can receive and work on the same geometry, the PPU can work on geometry from the geometry shader, they can share memory, work on the data concurrently, ... It really is the ultimate combo. I don't get why we aren't seeing such cards yet.
*Goes back to working on my multi-threaded game*
The future of multi-core CPUs are heterogeneous cores - which means the cores will not be identical. A core dedicated to physics is not only plausible, but significantly better than an add-on solution, which requires its own memory and communication via a (relatively) slow bus.
Forster came off like a marketing idiot IMO. Multiple CPU threads need to syncrhonize, but making a call to a controller via the PCI bus doesn't eat up huge amounts of time (relatively)? Additional data transfer may need to occur from system memory to the PPU card, eating up more time, then the results would be transfered back. If you're using a CPU core, this transfer doesn't occur as both cores can access the same memory.
I'd like to say it's a gimmick, but I remember getting a Monster Fusion card which finally combined 2D and 3D cards into one card when gamers were typically running a second 3D card.
I see this as evolutionary, that's all.
The situation isn't really new, it's just the latest THING, that's all.
John Carmack doesn't have to believe in it, but it doesn't mean he's right. I agree that multi-core processors are a great improvement over single core and do provide more GENERAL performance gains -- keyword: GENERAL.
Everything you do in software takes time, people, and money (we can say they all relate in some way anyways). For you to design, develop, implement, test, debug, and release/integrate a working physics system that can use the cores to efficiently handle (this is just HANDLING, not even the physics engine work itself) optimizing multiple cores and multi thread whatever mathematical algorithms you are using is a task in itself.
So you say there are numerous "Physics APIs" out there you can use, like HaVoK and PhysX. Sure, but they come with a cost and a learning curve on how to implement these APIs. Even still, if you plan to "optimize the physics calculations via multi-core," you have to figure out how to work the APIs in that way -- another factor.
From the way I see it, anything that SPECIFICALLY handles something is inherently better/quicker at doing it than a GENERAL processor of the same data. Why do you think FPUs used to be seperate from the CPU? They were BETTER at handling floating-point calculations than the processor itself. Of course CPUs evolved to better handle calculating such, but the point still stands. I wouldn't be surprised if CPUs were given a "Physics-helper instruction set" addition in the future or were somehow optimized for the type of calculations that PPUs handle often.
My perspective is that these PPUs are useful to a certain extent and I think when used in conjunction with multi-core environments you'll really push the bottleneck of the system back to the GPU instead of the CPU when it comes to rendering physics-intense games. I'm not saying a PPU is REQUIRED, but it surely can't hurt. I don't agree with Forster's wording either, I think he just pulled some "CE-Oh No He Didn't" type of deal, but hey, that's what they are trained to do. :)
Basically, just because John Carmack (while a very significant figure) does not see the use for PPUs doesn't mean they are just a bunch of snake oil salesman trying to sell a worthless product.
The problem comes with compatibility. While this PPU may be really neat and helpful, the unfortunate part is that few vendors seem to be using it at the moment. I know UT3 will be as well as the new Warhammer MMO supposedly, but I hope more vendors like EA (shudder) jump on it.
The STI Cell processor in the PS3 is designed similar to Aegia PPU for multi-threading with physics and other such tasks. I don't know about the 360, but I think it has something on the GPU for that -- look at Lost Planet's beautiful realistic graphics (although not sure if it uses physics as heavily).
Anyhow, I'd really like to see benchmarks and statistics before these two [Carmack and Forster] go back and forth. Numbers usually convince me more than badmouthing.
Guys, PhysX has proven itself to be fairly useless as in the demos supposed to show it off - with a little tweaking - you could enable to special features (supposedly only possible with PhysX) and a normal graphics card could run them with little impact on fps.
Shouldn't the graphic have the stop symbol over the card, rather than the person who express the opinion? :)