bit-tech.net

Nvidia considers porting PhysX to OpenCL

Nvidia considers porting PhysX to OpenCL

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 Reply
nicae 27th March 2009, 14:31 Quote
NV has a strong arm with ~65% of the market, but that's still virtually half of the market for something that takes a full development process. For things like physics, it makes so much more sense for developers to work on something that 100% of the market can use. Otherwise, we would see games "ATI compatible" or "NVDIA compatible", just like we see "MACOS compatible". And we all know how developers love porting over to mac in a timely fashion... :x
proxess 27th March 2009, 14:36 Quote
Obviously a step in the right direction.
p3n 27th March 2009, 14:37 Quote
The whole QA argument seems dumb, either its transparent to the game and it works or they have to bodge it per game and its dirty and underhand (hi 3dmark).
Mentai 27th March 2009, 15:26 Quote
I think developers will use havok in opencl since that runs similar effects on both cards instead of only 65% of the market. When that happens nvidias hand will be forced
Tim S 27th March 2009, 15:34 Quote
Mentai: the point is that if Nvidia moves PhysX to OpenCL, it'll run on any hardware supporting OpenCL.
Redbeaver 27th March 2009, 15:48 Quote
sound like nvidia still pretty confident on their superiority, but like to have work on the same playing field with AIT... which could either mean they're lying or they're cocky.

but it's a step in the right direction indeed.
thehippoz 27th March 2009, 16:07 Quote
oh yeah forgot about 3dmark physx cheats XD course don't bother bring that up to a fanboy.. he'll whine till the cows come home
Turbotab 27th March 2009, 17:24 Quote
It was inevitable really, love the barbed comment about ATI's hardware, "GPU computing solution is probably a couple of generations behind ours.” It sounds like a huge gap, yet in the graphics card world, two generations is probably less a year!
wuyanxu 27th March 2009, 17:49 Quote
there must be some trickery in this, making ATI cards go slower than nVidia counter parts for example.

or why did nVidia acquire PhysX in the first place? what profit have they gained?
tank_rider 27th March 2009, 18:19 Quote
I can understand the QA argument, in that the physx stuff will have to be verified that it works on both nvidia and ati hardware, to ensure that there isn't something different with the ati implementation of openCL
nicae 27th March 2009, 19:07 Quote
If they don't QA on other hardware and things don't run on ATI cards, it's the same as keeping it under CUDA and not spending a dime.
HourBeforeDawn 27th March 2009, 19:22 Quote
lol they are considering it more like have no choice unless they want to put all that wasted money down the drain
Evildead666 27th March 2009, 20:56 Quote
They can't keep it proprietary for too long.
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'.....
nicae 27th March 2009, 21:17 Quote
Quote:
Originally Posted by Evildead666
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.
Hamish 27th March 2009, 22:33 Quote
Quote:
Originally Posted by Evildead666

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 dunno, with havok being OpenCL, and i assume running equally well on ATi and Nvidia stuff, they would have to do a decent job of having physx run on both
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 ;)
HourBeforeDawn 27th March 2009, 23:30 Quote
Quote:
Originally Posted by nicae
Quote:
Originally Posted by Evildead666
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.

lol
aron311 28th March 2009, 05:24 Quote
Well, Nvidia certainly has its head up its arse.
Star*Dagger 28th March 2009, 11:19 Quote
I think that I'll survive with my "couple of generations behind" ATI Radeon HD 4870x2, lol
Veles 28th March 2009, 23:52 Quote
I think this is something that could benefit everyone, if PhysX will work on every new GPU being made they'll be more likely for developers to buy into it.
HourBeforeDawn 29th March 2009, 00:50 Quote
Quote:
Originally Posted by Veles
I think this is something that could benefit everyone, if PhysX will work on every new GPU being made they'll be more likely for developers to buy into it.

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.
Saivert 29th March 2009, 01:36 Quote
why do you all care so much. The important thing is that we get better hardware to run our increasingly graphcis intensive games on. You guys talk about heads in arses and yet you act like you got that problem yourself.
rembo666 30th March 2009, 05:15 Quote
I think this is a great strategy for NVIDIA. They are pushing the adoption of PhysX--the technology that they own, while preserving their performance edge for the near future. If they open up the API, it means that any game is free to adopt PhysX and pay NVIDIA for the privilege. At the same time, since NVIDIA owns the code and has a much better idea than ATI on how to optimize for PhysX, they have the lead that probbably would require ATI to work for a couple of years to close.
DbD 30th March 2009, 11:30 Quote
The havok system seems more like an attempt by Ati to open up Physx then serious competition for now. I would have thought Nvidia always realised they'd have to support physx on cuda in the end but are holding on as long as possible until they can make some more money out of it (i.e. more important games do a mirrors edge meaning more people buy Nvidia to play).
kylew 30th March 2009, 15:11 Quote
If physX is ported to openCL, then that means NV's own cuda is not involved.

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
nicae 30th March 2009, 15:55 Quote
NVIDIA could cripple ATI's performance by focusing on OpenCL commands that run better on NVIDIA's fewer but more complex shaders rather than ATI's more numerous yet simpler cores.

(Correct me if I'm wrong!)
HourBeforeDawn 30th March 2009, 17:24 Quote
well isnt the real deal here is that AMD is showing true physics processing on the GPU instead of nVidia half assed attempt of needing to use cuda which uses some of the cpu still to process and convert it to something the gpu can use? or is AMD doing the same thing with their Stream and I just over looked that part?
nicae 30th March 2009, 20:27 Quote
AFAIK CUDA and OpenCL are both APIs that programmers use to send general-purpose computing instructions to the GPU. They are similar, except CUDA is proprietary and OpenCL is, well, open.

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.
Horizon 30th March 2009, 20:56 Quote
I'm I the only one who feels like this is only a reaction to: "AMD demonstrates Havok with GPU acceleration via OpenCL"?
gavomatic57 8th June 2009, 14:07 Quote
Physx SDK still costs nothing to license and it seems reasonably inevitable that Nvidia will port Physx over to it. It isn't in their interests to cripple Physx on ATI cards - they've offered it to them but ATI/AMD turned them down, but they still want game developers to use it. What Nvidia can do is make their GPU's more suitable for GPGPU/CUDA/OpenCL applications and have an advantage that way. OpenCL is an open platform - well as open as an Apple product can be and opens up more avenues for Physx, bearing in mind that Havok licensing costs money. It seems obvious that ATI turned Nvidia down out of pride/spite but have had to get into bed with Intel (Havok's parent) instead because they didn't have a game physics solution of their own.
thehippoz 8th June 2009, 16:08 Quote
havok has been around and used in many games.. physx was brought in as a gimmick.. was never needed- it was just a way for them to get devs to add it, then you have to have an nvidia card to get added effects

and quality control on opencl- what a joke.. that's where they should have been in the first place
HourBeforeDawn 8th June 2009, 16:22 Quote
Quote:
Originally Posted by gavomatic57
Physx SDK still costs nothing to license and it seems reasonably inevitable that Nvidia will port Physx over to it. It isn't in their interests to cripple Physx on ATI cards - they've offered it to them but ATI/AMD turned them down, but they still want game developers to use it. What Nvidia can do is make their GPU's more suitable for GPGPU/CUDA/OpenCL applications and have an advantage that way. OpenCL is an open platform - well as open as an Apple product can be and opens up more avenues for Physx, bearing in mind that Havok licensing costs money. It seems obvious that ATI turned Nvidia down out of pride/spite but have had to get into bed with Intel (Havok's parent) instead because they didn't have a game physics solution of their own.

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.
gavomatic57 9th June 2009, 14:35 Quote
Quote:
Originally Posted by HourBeforeDawn
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
Quote:
OpenCL was initially developed by Apple Inc., which holds trademark rights, and refined into an initial proposal in collaboration with technical teams at AMD, Intel and Nvidia. Apple submitted this initial proposal to the Khronos Group. On June 16, 2008, the Khronos Compute Working Group was formed[1] with representatives from CPU, GPU, embedded-processor, and software companies. This group worked for five months to finish the technical details of the specification for OpenCL 1.0 by November 18, 2008.[2] This technical specification was reviewed by the Khronos members and approved for public release on December 8,

And from this article:
Quote:
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.
Log in

You are not logged in, please login with your forum account below. If you don't already have an account please register to start contributing.



Discuss in the forums