NVidia Considering Porting PhysX To OpenCL
arcticstoat writes "NVidia has revealed that it's considering porting its PhysX API to OpenCL to allow PhysX GPU-acceleration on competitors' graphics cards as well. At the moment, a GPU needs to support NVidia's CUDA technology in order to accelerate PhysX on the GPU, and ATI has so far declined NVidia's offer to get CUDA working on ATI GPUs. NVidia's director of product management for PhysX, Nadeem Mohammad, said, 'In the future it's a possibility that we could use OpenCL' for PhysX, adding, 'If we start using OpenCL, then there's a chance that the features would work on ATI, but I have no idea what the performance would be like.'"
http://en.wikipedia.org/wiki/OpenCL
NVIDIA's still pushing CUDA 'cause they can evolve the standard much faster than OpenCL or DirectX compute. Since they control it they can directly expose additional general computing features as they add them to their GPU's instead of waiting for a committee bless it, or Microsoft to incorporate it into DirectX.
This is very similar to how Microsoft was able to eventually get DirectX ahead of OpenGL when it came to base spec features. They didn't need ARB buy in to add new feature to the base spec and so could evolve it at their pace.
Another advantage NVIDIA's had is that the two new compute specs are basically based on CUDA already so there's little work for them to do to support OpenCL (in fact I heard NVIDIA loaned some of their engineers who worked on CUDA to Apple to help write the spec). NVIDIA's plan is to push and evolve this GPGPU thing, while AMD is just playing catch up now that it seems like it might catch on.
Really, the OpenGl working group does everything they can to get people to use DirectX. If they would be more nimble in adding new features to the spec things would be a different place. Instead, they move along at a glacial pace and the standard method of spec evolution goes something like this:
* Microsoft announces DirectX n with new features XYZ
* nVidia and ATi release cards that support DirectX n
* A few years later game developers release games that support DirectX n. Some game developers, like iD, work with ATi and nVidia to get OpenGL extensions running on hardware from both IHVs that support the features of DirectX n
* A few years later the OpenGL working group ratifies OpenGL version++ that unifies support for the features of all of the various OpenGL extensions that have been written since the current OpenGL spec was ratified.
While Microsoft's method might be more autocratic than the OGL working group's method it does tend to get new features in the hands of ISVs and consumers more quickly. Plus, it's not like Microsoft dictates everything that goes in to a given DirectX release. They work with numerous ISVs and IHVs to find out what features are being requested.