Wednesday, March 6th 2024

NVIDIA Cracks Down on CUDA Translation Layers, Changes Licensing Terms

NVIDIA's Compute Unified Device Architecture (CUDA) has long been the de facto standard programming interface for developing GPU-accelerated software. Over the years, NVIDIA has built an entire ecosystem around CUDA, cementing its position as the leading GPU computing and AI manufacturer. However, rivals AMD and Intel have been trying to make inroads with their own open API offerings—ROCm from AMD and oneAPI from Intel. The idea was that developers could more easily run existing CUDA code on non-NVIDIA GPUs by providing open access through translation layers. Developers had created projects like ZLUDA to translate CUDA to ROCm, and Intel's CUDA to SYCL aimed to do the same for oneAPI. However, with the release of CUDA 11.5, NVIDIA appears to have cracked down on these translation efforts by modifying its terms of use, according to developer Longhorn on X.

"You may not reverse engineer, decompile or disassemble any portion of the output generated using Software elements for the purpose of translating such output artifacts to target a non-NVIDIA platform," says the CUDA 11.5 terms of service document. The changes don't seem to be technical in nature but rather licensing restrictions. The impact remains to be seen, depending on how much code still requires translation versus running natively on each vendor's API. While CUDA gave NVIDIA a unique selling point, its supremacy has diminished as more libraries work across hardware. Still, the move could slow the adoption of AMD and Intel offerings by making it harder for developers to port existing CUDA applications. As GPU-accelerated computing grows in fields like AI, the battle for developer mindshare between NVIDIA, AMD, and Intel is heating up.
Source: HardwareLuxx
Add your own comment

35 Comments on NVIDIA Cracks Down on CUDA Translation Layers, Changes Licensing Terms

#1
mb194dc
Won't this just mean this stuff just goes on in China and Russia et al where it's very difficult or impossible to enforce IP licensing restrictions of this nature?
Posted on Reply
#2
Imouto
For my use case the worst part is that ZLUDA won't complete its work on OptiX. The speedup from HIP to CUDA was noticeable but the real gold is in OptiX.
Posted on Reply
#3
Onasi
Unsurprising. CUDA is the biggest advantage that NV has. They are not going to just let it go easily.
mb194dcWon't this just mean this stuff just goes on in China and Russia et al where it's very difficult or impossible to enforce IP licensing restrictions of this nature?
I don’t think that’s what NV is worried of in this case. And I don’t know about China, but trust me, Russia is not going to reverse engineer CUDA anytime soon. Its technical capabilities are greatly exaggerated.
Posted on Reply
#4
Robin Seina
Such move is probably illegal anyway. There is even a precedent in US law, when IBM's hdds got reverse engineered in 196x.
I highly doubt, that those EULA changes will matter in EU or in China.
It's a futile effort anyway. Zluda is open source code, once released on internet it can become a hydra. You chop off one head and another will pop-up elsewhere.
Posted on Reply
#5
Assimilator
I wonder if this is just NVIDIA being stupid, or something that Uncle Sam has asked for.
Posted on Reply
#6
_Flare
I think that it can be a conscious representation of safeguarding values and the will to enforce them. Representation of value and power.
Posted on Reply
#8
Shihab
AssimilatorI wonder if this is just NVIDIA being stupid, or something that Uncle Sam has asked for.
Wouldn't call it stupid. Quite the opposite from a business pov. The adjective "evil," however...

But I guess whether it's indeed stupid or not is up to courts to settle. Whether people making the translation layers could successfully argue the interoperability case, or Nvidia the patents/contractual ones.
I just hope AMD or Intel back the former.
Posted on Reply
#9
Carillon
Let's say a guy wants to reverse engineer cuda, without a license, could he buy a cuda written piece of software from another guy who has agreed to the cuda license?
If not, it would mean you could only use your programs for personal use, because you have no means to know if a buyer, or employer, will use your programs to reverse engineer them.
Posted on Reply
#10
Shihab
CarillonLet's say a guy wants to reverse engineer cuda, without a license, could he buy a cuda written piece of software from another guy who has agreed to the cuda license?
If not, it would mean you could only use your programs for personal use, because you have no means to know if a buyer, or employer, will use your programs to reverse engineer them.
The license does allow publishing software that were made using CUDA libraries, toolkit, sdk, logos and branding, etc. Some parts they are allowed distribute with their software (libs), others they are not (the sdk itself).

The end user of the published software is also bound by the agreements regarding the components they use running the application (libs, drivers, logos), like the ones we automatically go for the "I agree/accept" button in when installing drivers. The application's publisher is not responsible for end user's breach of said agreements.
Posted on Reply
#11
john_
This is typical of Nvidia. That's Nvidia's business model. Nothing new here.
What is unfortunate, is when looking on the internet comments that laugh at AMD, for opening up it's techs and praising Nvidia for making everything proprietary and enforcing restrictions of any kind on it.
Posted on Reply
#12
Assimilator
ShihabWouldn't call it stupid. Quite the opposite from a business pov. The adjective "evil," however...
Evil and stupid are synonyms in my book. Especially when law gets involved.
Posted on Reply
#13
ZoneDymo
I dont really understand how this is enforceable
Posted on Reply
#14
Essaudio
This isn’t designed to technically stop any and all usages of translation layers but to dissuade large commercial entities from adopting it as an official / commercial approach to accelerating CUDA workloads on non Nvidia hardware. If anything it will push people to support open layers instead, not a terrible thing.
The annoyance is really with existing projects that are unmotivated or unable to change cuda only support which is really what these layers are useful for (IMO) rather than for new projects not supporting open acceleration.
Posted on Reply
#15
Papahyooie
This reads as if you're insinuating that RocM and One API are cuda translation layers... That's not the case.
Posted on Reply
#16
pavle
AssimilatorI wonder if this is just NVIDIA being stupid, or something that Uncle Sam has asked for.
Why stupid? I remember well when/how it started - it was Cg or C for graphics on GeForce3 and much time and effort went into producing the tool CUDA is today, so no wonder nvidia defends it. AMD and intel surely didn't chip in for development... Make sense.
Posted on Reply
#17
Chomiq
ZoneDymoI dont really understand how this is enforceable
Easy, if AMD of Intel says that they can run CUDA workloads on their GPUs then Nvidia can step in with the lawsuit claiming that they use translation layers that break CUDA EULA.
Posted on Reply
#18
AnotherReader
pavleWhy stupid? I remember well when/how it started - it was Cg or C for graphics on GeForce3 and much time and effort went into producing the tool CUDA is today, so no wonder nvidia defends it. AMD and intel surely didn't chip in for development... Make sense.
Should x86 emulation or PS3 emulation be illegal as well? Should Wine be illegal too?
Posted on Reply
#19
Redwoodz
This shows how much of Nvidia's success is due to monopolizing a software market. Time for the government to step in and end this.
Posted on Reply
#20
Assimilator
pavleWhy stupid?
People will always figure out a way to circumvent a closed ecosystem. The only way to prevent this is by making those circumventions illegal via your EULA, aka protectionism, which inherently decreases the appeal of your ecosystem as fewer people can use it. And eventually, you'll step too far, and someone will challenge your EULA in court, and you'll lose. This is exactly what has happened to Apple - after being allowed to dictate exactly how people use its products for far too long, the EU has finally stepped up to enforce consumers' rights. Court cases are bad for share prices, and especially bad if the company loses.

Therefore, closed ecosystems always ultimately fail, which means they are ultimately stupid. Expending massive amounts of effort in an attempt to protect them will ultimately fail, so this is also stupid.

The smart thing to do would be to start negotiating with other GPU vendors to come up with a shared open standard that just so happens to look a lot like CUDA, and just so happens to require very minimal translation from CUDA. Boom, you've immediately got a rung up on the competition because they have to expend way more effort to make their cards work with your not-CUDA. And because not-CUDA is so similar to CUDA and so easy to port over, users who are already using CUDA won't be unduly affected. As a bonus, because this standard is based on CUDA, NVIDIA would wield a lot of control over it - which is exactly what they want anyway.

Unfortunately, corporations rarely make logical decisions.
Posted on Reply
#21
pavle
AnotherReaderShould x86 emulation or PS3 emulation be illegal as well? Should Wine be illegal too?
Not at all.
AssimilatorPeople will always figure out a way to circumvent a closed ecosystem. The only way to prevent this is by making those circumventions illegal via your EULA, aka protectionism, which inherently decreases the appeal of your ecosystem as fewer people can use it. And eventually, you'll step too far, and someone will challenge your EULA in court, and you'll lose. This is exactly what has happened to Apple - after being allowed to dictate exactly how people use its products for far too long, the EU has finally stepped up to enforce consumers' rights. Court cases are bad for share prices, and especially bad if the company loses.

Therefore, closed ecosystems always ultimately fail, which means they are ultimately stupid. Expending massive amounts of effort in an attempt to protect them will ultimately fail, so this is also stupid.

The smart thing to do would be to start negotiating with other GPU vendors to come up with a shared open standard that just so happens to look a lot like CUDA, and just so happens to require very minimal translation from CUDA. Boom, you've immediately got a rung up on the competition because they have to expend way more effort to make their cards work with your not-CUDA. And because not-CUDA is so similar to CUDA and so easy to port over, users who are already using CUDA won't be unduly affected. As a bonus, because this standard is based on CUDA, NVIDIA would wield a lot of control over it - which is exactly what they want anyway.

Unfortunately, corporations rarely make logical decisions.
Makes even more sense, thank you.
Posted on Reply
#22
GodisanAtheist
EssaudioThis isn’t designed to technically stop any and all usages of translation layers but to dissuade large commercial entities from adopting it as an official / commercial approach to accelerating CUDA workloads on non Nvidia hardware. If anything it will push people to support open layers instead, not a terrible thing.
The annoyance is really with existing projects that are unmotivated or unable to change cuda only support which is really what these layers are useful for (IMO) rather than for new projects not supporting open acceleration.
- Yup, the whole point here is the chilling effect. NV might not even try and go after people making translation layers, but they will absolutely get any major players who think of using AMD/Intel systems to think thrice.

A lot of people calling it evil, but its just business. CUDA is a proprietary programming language for NV GPUs. They didn't put in a ton of work building this ecosystem only to lose it to their competitors who piggyback off their work.

An alternative is NV writes a deliberately crippled translation layer and builds it into CUDA licensing as a poison pill to third party efforts.

AMD and Intel can build their own ground up programming languages for their hardware, but as we've seen, that's really really hard.
Posted on Reply
#23
Wirko
AnotherReaderShould x86 emulation or PS3 emulation be illegal as well?
X86 emulation is allowed. Emulation of X86 ISA extensions that are still under patent protection is allowed if you're Microsoft or Apple. Emulation of Arm ISA, for example - I don't know but Arm ISA is a major product they make money on, by selling it to architectural licence holders. QEMU is inefficient enough and Arm doesn't see it as a threat.
Posted on Reply
#24
Redwoodz
GodisanAtheist- Yup, the whole point here is the chilling effect. NV might not even try and go after people making translation layers, but they will absolutely get any major players who think of using AMD/Intel systems to think thrice.

A lot of people calling it evil, but its just business. CUDA is a proprietary programming language for NV GPUs. They didn't put in a ton of work building this ecosystem only to lose it to their competitors who piggyback off their work.

An alternative is NV writes a deliberately crippled translation layer and builds it into CUDA licensing as a poison pill to third party efforts.

AMD and Intel can build their own ground up programming languages for their hardware, but as we've seen, that's really really hard.
It's not that hard. What's hard is convincing the entrenched corparations to move away from anything not CUDA.
Posted on Reply
#25
john_
AssimilatorPeople will always figure out a way to circumvent a closed ecosystem. The only way to prevent this is by making those circumventions illegal via your EULA, aka protectionism, which inherently decreases the appeal of your ecosystem as fewer people can use it. And eventually, you'll step too far, and someone will challenge your EULA in court, and you'll lose. This is exactly what has happened to Apple - after being allowed to dictate exactly how people use its products for far too long, the EU has finally stepped up to enforce consumers' rights. Court cases are bad for share prices, and especially bad if the company loses.

Therefore, closed ecosystems always ultimately fail, which means they are ultimately stupid. Expending massive amounts of effort in an attempt to protect them will ultimately fail, so this is also stupid.

The smart thing to do would be to start negotiating with other GPU vendors to come up with a shared open standard that just so happens to look a lot like CUDA, and just so happens to require very minimal translation from CUDA. Boom, you've immediately got a rung up on the competition because they have to expend way more effort to make their cards work with your not-CUDA. And because not-CUDA is so similar to CUDA and so easy to port over, users who are already using CUDA won't be unduly affected. As a bonus, because this standard is based on CUDA, NVIDIA would wield a lot of control over it - which is exactly what they want anyway.

Unfortunately, corporations rarely make logical decisions.
Depends. Depends on how much you gain from such an attitude until someone challenges you in court, fine you a couple of billions, or decides -as a consumer- to ditch you for a competitor. Depends on how much you have become a necessity. And right now, Apple and Nvidia can enforce restrictions, put whatever prices they like, ignore competition and fines, or those 2-3 consumers who decide to go to the competitor, while keep making billions and expanding their influence and their image of being a necessity and the only option.
This move from Nvidia will only favor Nvidia, because it wouldn't hurt CUDA in any way. CUDA has become something like the only option for many. Think Windows and Microsoft. Microsoft has done it's mistakes the last 25 years (like Vista or Win8) and in every mistake, people where expecting it will lose market share, with Linux being the winner. Well, in desktops and laptops it's only losing against another monopoly, Apple. Linux is still at low single digit. This move from Nvidia comes just a few days after that post from Herkelman saying that Nvidia is a cartel, showing that Nvidia doesn't really cares if people realize that it acts like a cartel. On the contrary.
Posted on Reply
Add your own comment
Nov 19th, 2024 22:25 EST change timezone

New Forum Posts

Popular Reviews

Controversial News Posts