Friday, May 28th 2010
NVIDIA Removes Restriction on ATI GPUs with NVIDIA GPUs Processing PhysX
NVIDIA has reportedly removed the driver-level code which restricts users from having an NVIDIA GeForce GPU process PhysX with an ATI Radeon GPU in the lead, processing graphics. Version 257.15 Beta of the GeForce drivers brought about this change. Possible commercial interests may have played NVIDIA's previous decision to prevent the use of GeForce GPUs to process PhysX with ATI Radeon GPUs, where users could buy an inexpensive GeForce GPU to go with a high-end DirectX 11 compliant Radeon GPU, thereby reducing NVIDIA's margins, though officially NVIDIA maintained that the restriction was in place to ensure Quality Assurance. The present move also seems to have commercial interests in mind, as NVIDIA could clear inventories of GeForce GPUs at least to users of ATI Radeon GPUs. NVIDIA replenished its high-end offering recently with the DirectX 11 compliant GeForce 400 series GPUs.
Update (28/05): A fresh report by Anandtech says that the ability to use GeForce for PhysX in systems with graphics led by Radeon GPUs with the 257.15 beta driver is just a bug and not a feature. It means that this ability is one-off for this particular version of the driver, and future drivers may not feature it.
Source:
NGOHQ.com
Update (28/05): A fresh report by Anandtech says that the ability to use GeForce for PhysX in systems with graphics led by Radeon GPUs with the 257.15 beta driver is just a bug and not a feature. It means that this ability is one-off for this particular version of the driver, and future drivers may not feature it.
276 Comments on NVIDIA Removes Restriction on ATI GPUs with NVIDIA GPUs Processing PhysX
CUDA came out well after several of the supported GPUs, and support was added via drivers and nothing more, there is nothing in the physical GPU that enables CUDA.
Now, at this point, it would probably be a better idea to port PhysX onto Streams, as ATi definitely isn't going to add CUDA support to their drivers. The problem with doing it like that is there might be components on the board behind the PCI-E x1 slots that would still interfere with the PCI-E connector on the card. In the case of his P5Q, there are components that would prevent the card from going either PCI-E x1 slot if you just filed the back of the PCI-E slot. That is probably an even better idea then porting it to Streams! You here that nVidia? Get on it. I've said they should do this since Vista first showed the problem with only allowing one type of graphics driver active at a time.
Though I would prefer that they still put display outputs on the card, and make it a graphics card, and instead just put out special drivers that you use that make it a a co-processor in the OS. So if you want to use it as a graphics card, you use the standard drivers, if you want to use it as a PPU only, you use the special drivers.
lets use a more simple example.
HD-DVD and BLU-RAY.
They both store on the same sized medium (GPU's) they both do the same thing (hold HD content). No matter what the hell you do, they're not compatible. you can convert the movie (the program) to work on the alternative format by re-burning it on the other disk type (recoding the program to work on openCL instead of CUDA, for example)... but no matter what you do, the language is keyed to that hardware.
people just dont seem to get that while you can code a CUDA app to work on another direct compute style system, YOU CANT RUN CUDA ITSELF ON ANYTHING BUT NVIDIA HARDWARE.
It is not part of the GPU, it is entirely software based, there is nothing special required in the GPU for CUDA to run on it. Your original statement was that it is a hardware part of the GPUs, and it is not.
As it is right now, CUDA can not run on ATi hardware. However, there is no reason it couldn't, it just needs to be programmed to do so. Granted, it is never going to happen because ATi and nVidia could never work together to do it, but there is no reason other than that and the huge amount of time and developement it would take that it couldn't.
I'll even use an example of my own, or rather a more accurate version of your example from earlier:
It is like running OSX on non-Apple hardware. OSX is entirely software, there isn't really anything in the hardware that is OSX. At this point, Apples hardware doesn't have a special part built in that allows OSX to run, there isn't anything special about Apple's hardware.
But when you try to run OSX on non-Apple hardware, 9 times out of 10 it bails out a few seconds into the boot sequence. However, you do a little work, a little massaging, and pretty soon you have OSX running on non-Apple hardware.
Your example of running linux on the cell BE processor in a ps3 and running it on an x86 processor is a bad one as if you were to compare the kernels of the operating system on a ps3 and compare it with that of linux on x86 you would see it is completely different to accomodate the different arcitecture. Your reply would no doubt be "but yes but at the level that matters linux runs on both systems". My response to that is yes - but in the gpu world the kernel is equivalent to CUDA and stream and the linux os which sits on top of the kernel would be the applicaion implementing cuda and stream calls.
If you wanted to code something which runs on both ati and nvidia arcitectures then you would use openCl as ATi and Nvidia have built their own driver level translators to convert openCl calls to match their arcitecture - this is not a small task and removes the need to translate between cuda and stream. Saying nvidia could port cuda to run on ati hardware would be the same as saying intel could port their gpu drivers to run ati hardware - the purpose of the code at that level is to provide an interface to the hardware (CUDA is a hardware API as it gives access to hardware calls specific to certain hardware arcitectures, as opposed to a software API such as directx which is intercepted by drivers which then make the hardware calls appropriate to the hardware which is installed).
CUDA apps converted to run on stream = entirely possible
running CUDA itself is whats it impossible, and what i'm getting sick of seeing people saying.
I think it might work but would take so much time to recode that you would be better off making a new standard completely.
But it just isn't the truth, only thing needed on WHQL drivers would be an option to the control panel with hybrid support and default is off. Turn it on and you get a message "NVIDIA doesn't support AMD/NVIDIA hybrid GPU configurations, you use this option at your own risk"
Everyone wins and is happy, but no. They purposely make it now work, just because they can and even say it them selves that you need to hack the drivers to use your NVIDIA card..
a GTS 250 is still a fast and bang for the bucks card.
i am against all these new cards.
First of all name one thing in your experience that you have NEVER had a problem with in the computer world. Even my case panel sometimes doesn't close as it should but never once did I think "I'm going to file a class action lawsuit against Coolermaster because one screw doesn't ALWAYS line up!" I mean really both Nvidia and ATI have driver problems with SOMETHING in EVERY release. If they didn't why do they keep releasing updates? Because something new or old isn't 100% compatible!
A lone joker in the hacking world created a decent mod that works 99% of the time. What do you think Nvidias RD crew could do? Please this QA crap is just PR so they don't seem like greedy bastards. Not that its a bad thing wanting to make money off of what you paid for but don't insult peoples intelligence.
And they just don't want to spend the money on QA on something that is not really in their hands. A lot of that QA has to be made on AMD's end and they will just not do it. Even when only Nvidia cards are used, every PhysX driver update needs the latest GPU driver as well, or everything gets fucked up soon, that's something that I have suffered from. So a mix between Ati and Nvidia is always going to be worse.
Now, the idea of allowing it on the beta... that could work, but there's still the fact that it would not work on Vista systems and that's a nightmare to explain to average joe and it owuldn't be very different than the hack anyway. The hack has probably more support than the beta regarding Ati+Nvidia setup.
The reason Nvidia is disabling PhysX is the same that Ati discontinued the X1000 series of cards, even when they were still selling them. There's a point in which a company doesn't want to spend more money in something that only few people are gonna use.
Set in a safeguard so that it cant be used if a monitor is connected to the card, and away you go, back to the Ageia days.
The only reason nvidia are doing this is because they've done so much dodgy shit disabling features in the name of physX (such as with batman AA) that people might find out *gasp* that in fact, they just disable it on ATI even if physX is working.