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
"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.
35 Comments on NVIDIA Cracks Down on CUDA Translation Layers, Changes Licensing Terms
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.
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.
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 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.
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.
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.
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.
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.
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.