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.
32 Comments
Discuss in the forums Replybut it's a step in the right direction indeed.
or why did nVidia acquire PhysX in the first place? what profit have they gained?
A LOT of peope don't run Nvidia cards, and devs are not going to program just for Nvidia.
They do some 'extras' specifically for Nvidia, but they paid for it.
ATI and Intel will do havok over OpenCL, and Nvidia will be left with Cuda and PhysX.
If they do write code for ATi, it will be abysmally optimised, and ATi probably knows that.
Nvidia isn't exactly trustworthy when it comes to drivers and 'optimizations'.....
I think they are trustworthy. They have great relationships with other companies. For instance, Intel.
if you're a game developer and you're looking for a physics engine are you gonna pick the one that only runs properly on half the graphics cards out there or the one that runs well on both? :p
also it cant possibly be a coincidence that they reveal this so soon after the havok/opencl announcement ;)
lol
theres much better physics engines then PhysX so not likely and remember for these companies to use physX they have to pay nvidia to license it so they would most likely go with OpenCL for its physics.
That means PhysX will just be an API ran on open CL which is passed to the GPU to perform task.
In that case PhysX shouldn't ever be able to tell what GPU it's running on, so NV wouldn't be able to cripple ATi performance through that.
Performance and implementation would be down to the devs wouldn't it?
Either way, openCL is good for us, the enthusiasts because it'll be able to stop completely propriety standards being forced on us and having to buy specific hardware because the competition doesn't support this one feature.
Well propriety standards aren't so bad as long as they aren't controlled by those who are making the hardware to run it.
With DX being controlled by MS, and with it being a part of windows as its standard software keeps hardware competition where it should be, making powerful hardware to follow standards set by a third party.
/end ramble
(Correct me if I'm wrong!)
Which one is more efficient is another story, but I would guess they are very close in that aspect up to a point where it's negligible.
and quality control on opencl- what a joke.. that's where they should have been in the first place
PhysX cost money just like Havoc does to Lic. and no ATI never actually turned down PhysX as nVidia actually has yet to offer it to them. OpenCL is NOT an apply product, its a comity based project, Apple happens to be one of the many who are involved. ATI has mentioned about why they didnt develope their own PhysX app and thats because they were aware of OpenCL and DX11 and aiming their cards to support those standards because more game companies will use that over what PhysX and Havoc will offer as it will have a greater reach, so why waste money in a proprietary app. Doublecheck your facts just a bit.
The binary SDK is free
http://developer.nvidia.com/object/physx_downloads.html
And from this article: