Brett Thomas said:
What the author DOESN'T go on to talk about in the initial report is what instruction sets the Ageia and NV Physx chips can actually HANDLE.
The thing is, though, it doesn't
matter which instructions the GPU can handle, because that's not the argument. The argument is that PhysX, to a limited degree, <em>will</em> use SSE, but on a 1:100 scale compared to x87. The CPU <em>can</em> use SSE, obviously, but NVIDIA chooses to use inefficient code in order to get the job done. Does PhysX also utilize x87 code via CUDA on its GPU's? I'm not sure, but I do know that the GPU's should be able to handle the instructions, given NVIDIA's said that its GPU's could run x86 code no problem if need be.
In the article, it's shown that if the PhysX code <em>was</em> written to utilize SSE, then we'd see a tremendous speed-boost. Does this mean that NVIDIA would have to compile two different binaries? Probably, but that's a minor issue, as the end DLL or .exe or whatever it is that PhysX uses would only weigh a few megabytes at worst. PhysX turned on and GeForce card detected? Run the physics on the GPU. Hardware PhysX not detected? Run the binary with SSE enhancements on the CPU.
Companies like NVIDIA and AMD already bundle a whack of extra stuff with their drivers, so adding a dual-binary like this isn't a completely ridiculous idea. NVIDIA's cards wouldn't use SSE, but I've been told by the company numerous times in the past that its CUDA architecture is so robust, that it could almost emulate a CPU, in that, all of these CUDA-based apps currently available are more of the beginning, not the limit of where things could go.
Brett Thomas said:
After all, physics is math and there's really not much that SSE does that a straight-up x86 chip can't do on its own, just a little differently.
I don't think that's accurate. As far back as SSE2 I believe there have been some instruction sets that could be used for physics uses, but up to this point, I believe they've been mostly used for non-gaming means. In SSE4, the dot product instructions (forget the names atm) could easily be used for physics. Of course, not every gamer has SSE4, but arguably few people are going to run PhysX on an old PC, or want to.
Either way, I still think NVIDIA could create a dual binary, but it won't. It makes money on its GeForce cards, and opening up PhysX to be run elsewhere could hurt sales. It sure wouldn't be able to sell enough licenses to developers to make up for the loss in GPU's, because just how important <em>are</em> physics that a developer might pay up to or more than $50,000 for a license? Hard to say.
I'd be interested to hear NVIDIA's take on this, but we likely won't get one. So from hereonout, it looks like nothing will change, but I'm not sure anyone else thought otherwise.