Nvidia: It’s Time to Kill CUDA
Posted 01/12/09 at 02:22:02 PM by Will Smith
Like many of you, the first real 3D accelerator I owned was a 3dfx Voodoo card. This was way back in 1995. DirectX and Direct3D had yet to be released to the public, and OpenGL was only used for CAD and scientific rendering apps. In those primordial times, if a game developer wanted to harness the awesome rendering power of the Voodoo hardware, he had to write his game with Glide, 3dfx’s own application programming interface (API). This was all before the open standards movement became a powerful force in development circles, and Glide offered 3dfx a major competitive advantage: If a gamer wanted to see all the kick-ass 3D effects that Glide enabled, he had to play the game on 3dfx hardware—lest he suffer Glideless, in a depressing, busted-up world of jaggy, unfiltered textures.

The 3dfx/Glide domination ended when id Software and other game developers started releasing titles that used the OpenGL API, which wasn’t dependent on 3dfx hardware (but worked with 3dfx chips through a Glide translation layer). OpenGL opened the door for other 3D chip companies to build competitive products, and thus ATI, S3, Matrox, and Nvidia entered the fray with hardware of their own.
With every new OpenGL or DirectX game released, Glide slowly transitioned from an advantage to a liability for 3dfx. As competitors like Nvidia embraced new technology and embarked on a period of incredibly rapid improvements, 3dfx remained tied to its Glide past, and, as a result, was slow to embrace new rendering enhancements, such as 32-bit color and antialiasing. Ultimately, this contributed to 3dfx’s demise, and embracing open standards allowed Nvidia and ATI to flourish.
Why are we talking about this today? Because Nvidia stands at a crossroads, with two closed, proprietary APIs that have mainstream potential: the general-purpose computing CUDA API, and the PhysX physics-acceleration API, which sits on top of CUDA. These are both promising technologies, but only owners of Nvidia hardware can harness their power. Meanwhile, there are two emerging open standards that mirror what Nvidia is doing with its proprietary development. One is OpenCL 1.0, and the other is a general-purpose GPU computing API, which Microsoft will include in DirectX 11. There are a relatively small number of consumer applications that use CUDA, PhysX, or OpenCL right now, but the possible applications for the tech are endless—grossly simplified, these APIs let graphics chips perform CPU-like functions. The question Nvidia needs to be asking is simple: Will developers write their general-purpose GPU computing apps using a proprietary API that works on only a subset of PCs—those stuffed with Nvidia hardware—or will they use an open API that will work on every PC on the market?

Nvidia’s path is clear: It needs to stop trying to convince us that closed APIs are good, and instead embrace OpenCL and Microsoft’s yet-to-be-named solution. It needs to port PhysX to run on one of the open APIs, then use PhysX as a platform to advertise the kind of power that Nvidia delivers (with the recipients of all this messaging being ATI diehards and anyone considering the forthcoming Larrabee GPU from Intel).
By focusing on what its always done well—building kick-ass hardware—instead of force-feeding us closed APIs, Nvidia will thrive. As for CUDA? It’s served its purpose, but its time has passed. It’s time to kill CUDA.
OpenCL (Apple) and CUDA (NVIDIA) ...
Submitted by bobdude11 on Thu, 01/15/2009 - 4:20pm
This may just be propoganda, but here is a pretty good article with information about CUDA vs. OpenCL:
http://www.appleinsider.com/articles/08/12/10/nvidia_pioneering_opencl_support_on_top_of_cuda.html
I found it rather interesting and it looks like most of what OpenCL is designed to accomplish is already in play with NVIDIA GPUs that have CUDA support built in. (8, 9, and 200 series chipsets)
Simple explanation
Submitted by eyeaethe on Wed, 01/14/2009 - 5:28pm
Sometimes it is worth it to take a step back and look at the big picture when you come across an issue like this. It really is quite obvious that the only reason CUDA is around is to promote the use of NVIDIA hardware for all applications. Fundamentally there is nothing wrong with this, but when you consider that the vast majority (90%+) of people using discrete GPUs do so for the sole purpose of playing games, it becomes clear that NVIDIA's persistance on using CUDA is not going to have a groovy effect on the gaming hardware/software industry.
The real value of CUDA, and indeed its originally intended purpose, is for GPGPU applications in the scientific and design realm. Pressing the technology into the gaming space creates a division in the market that is ultimately going to effect the actual game developers in a negative way. A decision will have to be made to implement either CUDA, which runs on a limited hardware set from one company only and limits the market for the game to people who already have that hardware, or something like OpenCL/DX11 which will run on all hardware platforms and eliminate restriction of the intended audience (OR develop for both and increase costs). By stacking PhysX on CUDA NVIDIA makes the technology exclusive to NVIDIA products which sells hardware. The PhysX API has been around for almost 3 years now and at least 2.5 of those years it existed as a FREE standalone API for developers. You don't need to run PhysX on CUDA to make it exclusive to NVIDIA cards.
Will is right: NVIDIA (and ATI for that matter) needs to focus on creating killer GPU hardware moreso than trying to force largely uncessary, closed standards into the wrong markets.
Of coruse, opinionated editorials will be opinionated editorials. We can only hope that the companies move forward with everyone's best interests in mind.
Not sure I completely agree with your assessment ...
Submitted by bobdude11 on Thu, 01/15/2009 - 4:18pm
I don't have any hard numbers so I can't really dispute your claim about the percentages, but I do think you have overlooked the Tesla core GPUs used in various capacities for science, architecture, etc.
CUDA was originally developed to leverage those types of cards and was backported to the retail GPUs that have recently come out.
It has only been with the introduction of those cards that have really exposed how good gaming can be. And lets not forget that some of the technologies are being ported to consoles (PhysX being one of those- Xbox I believe)
I feel like NVIDIA and ATI are both focused on killer hardware, hence the dual GPU in a single slot options of the ATI 4870x2 (monster FPS) and the GTX 285 and 295 (equally monster FPS). These are killer hardware and the drivers just kick them up a notch.
I hope both continue to do what they have been doing - its good for the market and REALLY good for the average gamer.
Cheerleaders...
Submitted by comp_builder on Tue, 01/13/2009 - 11:35am
This use to be a great magazine, I even have a subscription. But you have become such a pack of AMD cheerleaders it's unbelievable. 20% of you magazine is giant full page amd adds and another 20% is --How to Clean windows tips -- .... AGAIN... AMD, Intel & Nvidia's cards architecture will all be different and having c libraries custom tuned for each architecture will always be faster than a general language for all. your solution is to be a jack of all trades and master of none.. much like what your magazine has become. Your so afraid of being beholden to any company because they have their own standard that runs best on their specific hardware, but you bend over and take it when Microsoft crams windows 7 in you. You don't get Microsoft's universal solution without buying a new os. Tons of apps have been modified to use cuda with astounding speed increases in speed and there is no way it would be as fast on a generalized gpu solution like OpenCl.. Oh and guess what it cost all those companies to use Nvidia cuda libraries and development kit.. Not a penny.. so their the bad guys...
Keep you tabloid rag, I will not be resubscribing. Check my profile, I am a subscriber and a 43 year old industry professional who has seen first hand how amazing Nvidias cuda code can be.
"with astounding speed increases in speed"
Submitted by QUINTIX256 on Tue, 01/13/2009 - 12:57pm
O.k. It has been a long time since I used C. You use the same libraries from MATH to STDIO for AMD and INTEL. They have the same SSE instructions. In fact, they share the same x86 instruction set.
If you are talking about the GPUs made by the respective companies, C isn't a good language. There isn't a direct standardized equivalent to, say, FLOAT4 in C. All the primatives types in C are scalers. If you want a vector or a matrix you have to create a struct.
As for "all these companies", we are talking about the hardware license, not the software license.
You can have your recession. I'm not participating.
Nice to see a fanboy crawling out of the woodwork.
Submitted by comp_builder on Tue, 01/13/2009 - 6:16pm
Thank goodness there was a tool like you trolling around to show me the error of my grammatical ways. Nvidia cards are about 60% of the market with an even higher adoption rate in the technical and scientific communities. So yes it is "free" to millions of people who already own their products. So all you and this rag can do is point fingers at a company that obviously spent a lot of time money and effort to make their products more valuable and useful and then they gave it away free. That's really obnoxious, how dare they.
And when your parents lose their house because of the recession and you have to move out of the basement you will be participating in this recession whether you like it or not.....
Uh...ok...
Submitted by QUINTIX256 on Wed, 01/14/2009 - 3:43pm
You probably should read more than the subject line before you post. At least you would have been able to point out my cute little grammatical error.
Troll or not, you are sounding more and more like one of those obnoxious Rambus investors with each post.
You can have your recession. I'm not participating.
Antialiasing?
Submitted by vlestat on Tue, 01/13/2009 - 10:31am
Hey Will,
I hate to nitpick but... I find it a bit strange that you cite adaptation of rendering technologies as one of 3dfx's reasons for their downfall, specifically antialiasing. Correct me if I'm wrong but wasn't it 3dfx who originally pioneered antialiasing in their products prior to anyone else?
Microsoft and "open",
Submitted by Vadi on Tue, 01/13/2009 - 6:08am
Microsoft and "open", nevermind a "standard", don't mix as far as I know.
Games that use CUDA?
Submitted by Avery on Mon, 01/12/2009 - 9:31pm
Any games out there now that take advantage of CUDA?
I believe Age of Conan with it's DX10 patch that is on the test server about to hit live servers in a few weeks will be the first game to take advantage of it. Built upon a custom CUDA platform.
Been testing it out and the advantages looks to me that it is going to be around for a while yet.
hmm apparently there are varying schools of thought as to what i
Submitted by decapitor on Mon, 01/12/2009 - 7:04pm
In response to the high level low level from the first post, low level is right next to hardware adn high level would be like at the OS level, but apparently there are different schools of thought on teh matter.
http://www.control.com/1026151382/index_html
seems a little bit like
Submitted by AndyYankee17 on Mon, 01/12/2009 - 1:11pm
seems a little bit like apple's demise where you could buy one OS, apple, that runs on one hardware, apple, or buy one OS, MS-DOS, and run it on lots of hardware.
Correct me if I am wrong...
Submitted by QUINTIX256 on Mon, 01/12/2009 - 1:06pm
But there was an article claiming that NVidia was willing to license PhysX/Cuda for "pennies per gpu" to competitors, making ATI seem stubborn.
I think ATI's refusal to take that offer has far more to do with NVidia’s past behavior. For two generations of GPUS, NVidia refused to support DX10.1, and there is even a conspiracy surrounding Assassin's Creed regarding just that. Also, NVidia does not support programmable tessellation —-a feature that has been available since ATI's first DX10 card.This may sound like tit-for-tat, but “pennies per gpu” are NVidia’s words. No one can know about the gritty licensing details. Correct me if I am wrong, but Rambus made similar public claims about licensing cost in order to make memory manufactures seem stiff. On top of all this, I do not think anybody pays licensing fees to Microsoft for the DirectX spec.
Also, let us not forget Nvidia’s FX series. I like how it is put in Wikipedia: “Both Nvidia and ATI have optimized drivers for tests like this historically. However, Nvidia went to a new extreme with the FX series.”
Put simply, NVidia has a history of being obnoxious. For that reason I do not think Cuda will go away any time soon.
You can have your recession. I'm not participating.
Not that simple
Submitted by decapitor on Mon, 01/12/2009 - 12:35pm
While I would agree that open standards are for the best and am excited about OpenCL, it is worth noting that CUDA is a higher level language than OpenCL, which makes a considerable difference in its intended uses. At the moment I would like to take advantage of the power of these GPGPU langauges but I'm afraid that coding for them is still not simple and I just don't have time to port my fluid dynamics models that are written in C and use MPI for parallelization to CUDA or OpenCL. What would truly be amazing is if any company releases a compiler that can utilize OpenCL from existing code written in C, Fortran, etc, while keeping the parallelization intact from MPI. If this ever happens it would be amazing, especially for the scientific community.
Are you sure you got that
Submitted by billysundays on Mon, 01/12/2009 - 5:39pm
Are you sure you got that right about CUDA being a higher level language than OpenCL? From what I read in this article-
http://arstechnica.com/news.ars/post/20081209-gpgpu-opens-up-with-opencl-1-0-spec-release.html
- it would seem OpenCL gives programmers more direct access to hardware.
Feature
Review
Feature
Feature
Feature







