Wednesday, December 14th 2011

NVIDIA Opens Up CUDA Platform by Releasing Compiler Source Code

NVIDIA today announced that it will provide the source code for the new NVIDIA CUDA LLVM-based compiler to academic researchers and software-tool vendors, enabling them to more easily add GPU support for more programming languages and support CUDA applications on alternative processor architectures.

LLVM is a widely-used open source compiler infrastructure with a modular design that makes it easy to add support for new programming languages and processor architectures. It is used for a range of programming requirements by many leading companies, including Adobe, Apple, Cray, Electronic Arts, and others.


The new LLVM-based CUDA compiler, which is enhanced with architecture support for NVIDIA's parallel GPUs, is included in the latest release of the CUDA Toolkit (v4.1), now available to the public.

"Opening up the CUDA platform is a significant step," said Sudhakar Yalamanchili, professor at Georgia Institute of Technology and lead of the Ocelot project, which maps software written in CUDA C to different processor architectures. "The future of computing is heterogeneous, and the CUDA programming model provides a powerful way to maximize performance on many different types of processors, including AMD GPUs and Intel x86 CPUs."

Enabling alternative approaches to programming heterogeneous parallel systems for domain-specific problems and future programming models will help accelerate the path to exascale computing. By releasing the source code to the CUDA compiler and internal representation (IR) format, NVIDIA is enabling researchers with more flexibility to map the CUDA programming model to other architectures, and furthering development of next-generation higher performance computing platforms.

Software tools vendors can also access compiler source code technology to build custom solutions.

"This initiative enables PGI to create native CUDA Fortran and OpenACC compilers that leverage the same device-level optimization technology used by NVIDIA CUDA C/C++," said Doug Miles, director of The Portland Group. "It will enable seamless debugging and profiling using existing tools, and allow PGI to focus on higher-level optimizations and language features."

Early access to the CUDA compiler source code is available for qualified academic researchers and software tools developers by registering here.

To learn more about the NVIDIA CUDA programming environment, visit the CUDA web site.
Add your own comment

20 Comments on NVIDIA Opens Up CUDA Platform by Releasing Compiler Source Code

#1
RejZoR
Does this mean PhysX on Radeon cards alone? If yes, well, YES please! Though i see it a bit unlikely to happen by AMD, only if someone codes it themself.
Posted on Reply
#2

by: RejZoR
Does this mean PhysX on Radeon cards alone? If yes, well, YES please! Though i see it a bit unlikely to happen by AMD, only if someone codes it themself.
PhysX is a proptietery, nVidia only standart. It has a driver level lock to work on/with nVidia boards only. You can't just "code it yourself", there're laws that restrict it.
#3
RejZoR
PhysX works through CUDA. Bypassing the hardlock in drivers is just an inconvenience imo. It was harder to reverse engineer the CUDA itself...
Posted on Reply
#4

So? Point being...? You can not code PhysX to run on AMD hardware in any legitimate way. It's protected by law.
#5
theJesus
by: John Doe
So? Point being...? You can not code PhysX to run on AMD hardware in any legitimate way. It's protected by law.
The keyword here is "legitimate".
Posted on Reply
#6
HumanSmoke
by: John Doe
So? Point being...? You can not code PhysX to run on AMD hardware in any legitimate way. It's protected by law.
Howdy, you must be the new sheriff in these here parts?

IMO makes more sense to offer PhysX to Radeon users but still keep the PPU a GeForce product- Win/Win. Presently, I'm sure a number of AMD/ATi users would love to use PhysX and pick up cheapie GTX460 (or similar), whilst still retaining their HDwhatever as primary graphics- seems like a no brainer.
My secondary rig (Q9400/P45) uses the SLI hack...another case of Nvidia limiting it's own opportunities. Might make sense for Nvidia to keep it proprietry when they still produced mobo chipsets...now? Not so much. Personally I'd allow SLI free on all and any board that could support dual cards to maximize sales potential...but maybe I'm simple, who knows?
Posted on Reply
#7

by: theJesus
The keyword here is "legitimate".
Uhm, yeah? nVidia bought out Ageia to own their tech. Nobody else can render it on their GPU unless they're looking to buy nVidia... :D

by: HumanSmoke
Howdy, you must be the new sheriff in these here parts?

IMO makes more sense to offer PhysX to Radeon users but still keep the PPU a GeForce product- Win/Win. Presently, I'm sure a number of AMD/ATi users would love to use PhysX and pick up cheapie GTX460 (or similar), whilst still retaining their HDwhatever as primary graphics- seems like a no brainer.
My secondary rig (Q9400/P45) uses the SLI hack...another case of Nvidia limiting it's own opportunities. Might make sense for Nvidia to keep it proprietry when they still produced mobo chipsets...now? Not so much. Personally I'd allow SLI free on all and any board that could support dual cards to maximize sales potential...but maybe I'm simple, who knows?
It's not me who puts out these blocks, it's nVidia. Period. Send a support ticket to them to explain this, see if they care.
#8
theJesus
by: John Doe
Uhm, yeah? nVidia bought out Ageia to own their tech. Nobody else can render it on their GPU unless they're looking to buy nVidia... :D
I'm not saying I have any idea what would be involved or how difficult it would be or that I even think it's feasible, but legitimacy has never stopped hackers before. Nobody said it had to be official. ;)
Posted on Reply
#9

by: theJesus
I'm not saying I have any idea what would be involved or how difficult it would be or that I even think it's feasible, but legitimacy has never stopped hackers before. Nobody said it had to be official. ;)
In order to run PhysX "on" AMD hardware itself, you need the technology, which is under the property of nVidia. For that, you need to buy it from them.

An "inofficial" hack is going to be public once made, and obviously they'll be one of the first to know about it. It's a non-possibility.
#10
xenocide
by: theJesus
I'm not saying I have any idea what would be involved or how difficult it would be or that I even think it's feasible, but legitimacy has never stopped hackers before. Nobody said it had to be official. ;)
If they could reverse engineer and get it to work when it was locked down, they will get it to work easier, and better, now that the platform is open source.

by: John Doe
In order to run PhysX "on" AMD hardware itself, you need the technology, which is under the property of nVidia. For that, you need to buy it from them.

An "inofficial" hack is going to be public once made, and obviously they'll be the first one to know about it. It's no possibility.
Are you new to the internet? All sorts of shit that's illegal is available, this is no exception. AMD has the technology to run that shit, but Nvidia controls the patents to it. So rather than pay licensing fees (assuming Nvidia even offered them) AMD chooses to just ignore PhysX since it only applies to like 5% of games released anyway.
Posted on Reply
#11

by: xenocide
If they could reverse engineer and get it to work when it was locked down, they will get it to work easier, and better, now that the platform is open source.
Look, PhysX isn't the exact same thing as CUDA. It does work through it, but it's LOCKED to nVidia. There's no way to run it on AMD unless you're going to break laws.

"PhysX" is under the registery of nVidia. It's owned by them and can't be re-applied.

You're acting no different than a stupid AMD fanboy.
#12
theJesus
by: John Doe
In order to run PhysX "on" AMD hardware itself, you need the technology, which is under the property of nVidia. For that, you need to buy it from them.

An "inofficial" hack is going to be public once made, and obviously they'll be one of the first to know about it. It's a non-possibility.
K. It gets released, people download it, nvidia gets it pulled from original servers, and people who downloaded it just share it over P2P.

edit: And I hope you don't call me an AMD fanboy too, because I don't even really like them :laugh:
Posted on Reply
#13

by: theJesus
K. It gets released, people download it, nvidia gets it pulled from original servers, and people who downloaded it just share it over P2P.

edit: And I hope you don't call me an AMD fanboy too, because I don't even really like them :laugh:
The driver level block isn't protected by laws. It's just a simple line of code. You can break it. PhysX however IS protected by a law. In order to run it on a non-nVidia GPU, you have to pay nVidia. End of story.
#14
theJesus
by: John Doe
The driver level block isn't protected by laws. It's just a simple line of code. You can break it. PhysX however IS protected by a law. In order to run it on a non-nVidia GPU, you have to pay nVidia. End of story.
Hey, I already stated I had no clue about what was actually necessary. All I was arguing was that the "legitimacy" of any potential hacks or whatever is irrelevant.
Posted on Reply
#15
HumanSmoke
by: xenocide
If they could reverse engineer and get it to work when it was locked down, they will get it to work easier, and better, now that the platform is open source.
Nvidia's stance has been (I think) that 1. It's an Nvidia bought-and-paid-for tech, 2. JHH is a stubborn mule, and 3. Nvidia couldn't make PhysX workable with AMD unless they both *shockhorror* collaborated to ensure compatibility every time the PhysX engine is updated
by: xenocide
AMD has the technology to run that shit, but Nvidia controls the patents to it. So rather than pay licensing fees (assuming Nvidia even offered them) AMD chooses to just ignore PhysX since it only applies to like 5% of games released anyway.
True enough. It would also make sense to offer PhysX to AMD card owners if Nvidia got something out of the deal (i.e. the use of an Nv card for PhysX processing). Realistically, an AMD card owner isn't going to jump ship to Nvidia based on some eye-candy in a few games...and if they are staying AMD, why not make a low/mainstream sale to those people who prefer an AMD primary GPU? Certainly makes more sense than locking half the gamers out of the tech. Sales + gaming goodwill. Having PhysX available to both AMD and Nvidia users would also likely help it become more widespread I would think.


In the greater scheme of things, I think Nvidia opening up CUDA is just Nvidia covering it's bases. They probably see that OpenCL (Nvidia are part of the Khronos group) will gain traction over time, and that CUDA ports to OpenCL without too much difficulty. Most Dev's would likely know the same, so it looks as though Nvidia looks to widen CUDA uptake while still playing the "open source" cards.
Posted on Reply
#16
xenocide
by: John Doe
Look, PhysX isn't the exact same thing as CUDA. It does work through it, but it's LOCKED to nVidia. There's no way to run it on AMD unless you're going to break laws.

"PhysX" is under the registery of nVidia. It's owned by them and can't be re-applied.
I think you're missing the point. Nobody is claiming it means AMD can market or develop products that use PhysX, people are debating whether or not it can be cracked and programed to run natively on their cards. Currently it basically offloads the PhsyX processing to the CPU when it detects an AMD card and forces it to use some super awful Instruction Set from the early 2000's rather than a streamlined one.

All people are interested in is whether or not this will make a hack possible that improves performance in PhysX-powered games when using AMD cards. Which it more than likely will since people won't have to spend tons of time on trial and error with reverse engineering.

by: John Do
You're acting no different than a stupid AMD fanboy.
Not sure what prompted that considering you could not be any more wrong.
Posted on Reply
#17

by: xenocide
All people are interested in is whether or not this will make a hack possible that improves performance in PhysX-powered games when using AMD cards. Which it more than likely will since people won't have to spend tons of time on trial and error with reverse engineering.
And how exactly are you expecting that to happen since AMD doesn't use CUDA? They use a VLIW architecture that renders differently per-shader.

by: xenocide
Not sure what prompted that considering you could not be any more wrong.
You could not be more wrong, not me.
#18
xenocide
by: John Doe
And how exactly are you expecting that to happen since AMD doesn't use CUDA? They use a VLIW architecture that renders differently per-shader.
Because with the platform it runs on openned they can find out exactly how everything works, then mix and match how it works with the way AMD GPU's function. Not exactly a complicated concept. People already have made various exploits that get PhysX running (poorly) on AMD platforms, so it's not completely impossible. They just waster hundreds of hours trying to find ways to get it to work since everything is locked down.
Posted on Reply
#19
ViperXTR
PhysX on SSE (particularly AVX) hmmm...
Posted on Reply
#20
W1zzard
by: Cristian_25H
to academic researchers and software-tool vendors
this is not a general public release, don't expect anything to come out of it.

if you use CUDA to simulate your weapons of mass destructions you can now build your own processor (ASIC) and port CUDA to work with it, so you can simulate more and better
Posted on Reply
Add your own comment