I know.
http://news.cnet.com/8301-13924_3-10198809-64.html implies that nVidia provided a method specifically for the PS3 derivative GeForce 7 to run PhysX on GPU. I'm sure there's a link with more detail but I just googled PhysX ps3 and chose the first link because I remember the story running last year. It's probably a close to metal rudimentary capability though and not written in normal CUDA. I never read details about the announcement so it could simply be a PhysX SDK for Cell that they misreported - but that SDK should have existed for several years, not just released in '09.
Well, I think the news was that Sony signed a PhysX license.
This is simply untrue. PhysX code cannot just switch to GPU mode because the code is incompatible. PhysX code that can run on GPU has to be written for CUDA.
I think you two are arguing from two sides of the API.
PhysX does not require a developer to ever write any Cuda code. The PhysX API is strictly a C++ API. The underlying GPU implementation uses Cuda, but this is not something the developer ever sees.
Having said that though, there are some slight differences between how the API can behave. You need to specifically enable GPU/PPU acceleration in your code, through some simple steps. Once you do that, all code can run on GPU/PPU, but can still run on CPU.
If you don't, then it will always run on CPU.
This is a single codepath however. It's just some initialization.
There are no 'additional effects', not in PhysX anyway. Everything you can do on a GPU or PPU, you can do on CPU as well (just a lot slower in some cases). The developer may write additional effects, and only enable them with GPU or PPU acceleration, but that has nothing to do with PhysX itself, and everything with how that developer chose to design their application.