Moving PhysX to OpenCL could potentially enable GPU PhysX acceleration on ATI GPUs.
Nvidia has so far guarded its GPU PhysX technology behind a large CUDA-shaped wall, meaning that anyone who wants to use it has to use CUDA too. However, the company has revealed that this may not be the case in the future, as Nvidia is considering porting PhysX over to OpenCL; the API that’s also being used by AMD to accelerate Havok physics
In a recent Q&A session to coincide with the launch of Nvidia’s APEX tools
for games developers using PhysX, we took the opportunity to ask Nvidia’s director of product management for PhysX, Nadeem Mohammad, about whether there were any plans to port PhysX over to OpenCL.
Mohammad revealed that he wasn’t against the idea at all. “In the future it’s a possibility that we could use OpenCL,”
Mohammad told us, but added that “at the moment CUDA works great.”
Mohammad also pointed out that although Nvidia currently uses CUDA to accelerate PhysX on GPUs, the company’s “architecture allows for acceleration by other things like OpenCL.”
“Nvidia works very closely with The Khronos Group,”
said Mohammad, explaining that “actually Neil Trevett is president of the group and he’s part of Nvidia - so we’ve been driving that standard also, and it’s an excellent standard.”
What’s more, later on, Mohammad also described Nvidia’s future plans for PhysX by saying “as and when we do move to OpenCL,”
which implies little doubt that Nvidia is seriously considering this as an option.
So would this mean that owners of ATI cards could also take advantage of PhysX? Theoretically, yes. Of course, Nvidia has publicly said that it will work with ATI on CUDA-accelerated PhysX
for over a year, but it’s an offer that ATI has yet to accept. However, by using an open-standard API such as OpenCL, it’s possible that ATI cards could support PhysX and miss out CUDA altogether.
Commenting on this possibility, Mohammad said that “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. Previously, looking at things like Folding@home, ATI GPU computing performance seems to be behind Nvidia. That probably reflects the fact that their GPU computing solution is probably a couple of generations behind ours.”
He also added that one good aspect of Nvidia using CUDA is that the company only needs to “test and verify and do QA on Nvidia GPUs – we don’t have to fix it for everybody, so that’s one of my little concerns as and when we do move to OpenCL. I’d be really concerned about how you manage to control the quality.”
He also then emphasised that “for now CUDA’s the way to go for acceleration on GeForce – the developers like that and it works pretty good.”
Nvidia is clearly still committed to accelerating PhysX on GPUs via CUDA in the near future, but it looks as though a port to OpenCL is a very real possibility. Should Nvidia port PhysX over to OpenCL, or would that result in unfair quality-control complications? Let us know your thoughts in the forums