Live data from Hacker News

Nvidia bans using translation layers for CUDA software to run on other chips

tomshardware.com

151–160 of 179 posts

Re: Nvidia bans using translation layers for CUDA software to run on other chips

#153

Earlier quoted context omitted.

Realistically, all that means is that Nouveau is giving in to the death of rights of First Sale, which is a fight I'm not willing to give up on fighting for yet even if every deep pocketed interest and it's sister seems to be swinging that way.

First sale is not a thing in my country. Resale defaults to forbidden, and when allowed by original creator, is simply subject to the same royalty and licence protections as initial sale of the copyrighted work. Clean room reverse engineering is however allowed.

Interesting, which country?

edit: Never mind.

Re: Nvidia bans using translation layers for CUDA software to run on other chips

#154

Nvidia trying to prevent adversarial interop by using EULAs. I doubt the Chinese companies will care, Intel and AMD may be sued if they don't comply. My understanding is that this means Intel/AMD will have to spend more time writing middleware (eg. ROCm's replacements for cuBLAS and cu* libraries) rather than run Nvidia's existing middleware on their own CUDA translation layer.

That would probably be a very interesting trial... I would have thought that the better strategy would be preventing the competition from "emulating" CUDA by suing them for breaching patents which nVidia no doubt holds for the architecture, but trying to forbid people from running software they own (or have even written themself) on other architectures? Sounds legally very shaky to me...

Re: Nvidia bans using translation layers for CUDA software to run on other chips

#155
post #142

Even for large ML/LLM models, how large is the part of the code that interacts with CUDA? In other words, how much of a moat does nvidia have if a better competitor comes up? My intuition is that the code itself could probably ported in a few weeks, ie if there is a moat, it doesn't consist in the CUDA implementation.

I haven't touched CUDA or OpenCL in a decade, but here we go.

These are actually pretty low level languages. The GPU has layers of memory caching. The primary challenge of SIMD programming (single instruction multiple data) is breaking up a problem (divide and conquer) in the most memory efficient way. Because "memory efficient" is highly dependent on the architecture of the card, you probably are writing code targeting a narrow band of GPUs. Sometimes you are adding code that optimizes for a specific card.

How challenging is it to rewrite CUDA into an alternative? One, it requires an algorithmic understanding down to memory management. Two, it requires rewriting the entire algorithm. Three, it requires optimizing the algorithm for each card you are targeting.

Finally, because Nvidia GPUs are the best, most people just code in CUDA because CUDA is better than the alternatives. It's just a good developer experience. This creates a cycle where Nvidia sells more GPUs for ML, so they can put more R&D into GPUs for ML.

Re: Nvidia bans using translation layers for CUDA software to run on other chips

#156
Can they? The article quotes:

> You may not reverse engineer, decompile or disassemble any portion of the output generated using SDK elements for the purpose of translating such output artifacts to target a non-NVIDIA platform.

Okay, so what if m purpose is just to explain to the world how it works? Maybe I'm just interested in the precise semantics of CUDA and all its possibly undocumented edge cases? Maybe what people do with this knowledge is none of my business? Maybe if I write a Vulkan translation layer I only do this so I can run it on NVDIA hardware?

And maybe, just maybe, their clause is an overreach and unenforceable? Though at this point I'd rater seek legal advice from a registered attorney.

Re: Nvidia bans using translation layers for CUDA software to run on other chips

#157

This just seems to be a poorly researched knee-jerk article written based on a single off-hand tweet from 2 weeks ago, citing a clause that has been around for years, and thus obviously is not in response to something talked about 3 weeks ago. As an example, the license here has the exact phrase, on a file last changed 2 years ago: https://github.com/NVIDIA/spark-rapids-container/blob/dev/NO... The EULA here, listed…

Agreed that that may be deceptive, but the underlying issue remains. It is prohibited.

Is it? I mean, is the clause enforceable to begin with?

Re: Nvidia bans using translation layers for CUDA software to run on other chips

#158

IANAL, but I don't see how this can be enforced (in the US) given the legal history of emulation. This is effectively just emulation. c.f., https://emulation.gametechwiki.com/index.php/Licensing

I think they're trying to do the trick where they don't ban the emulation per se, but they make it a violation of the license to disassemble the code to understand how it works. Then they go after emulating projects for copyright infringement, since they must have violated copyright to get a compatible version running. It's a dirty trick IMO, but it has seen some mixed success.

[deleted]

Re: Nvidia bans using translation layers for CUDA software to run on other chips

#159

> You may not reverse engineer, decompile or disassemble any portion of the output generated using SDK elements for the purpose of translating such output artifacts to target a non-NVIDIA platform. Does this actually have any legal weight besides being conveyed by a multi-trillion dollar company?

It's enough to get their lawyers after you and cost you a ton of money in legal costs to fight even if the legality behind it may be dubious. I'd say the recent Nintendo filing against Yuzu is a similar case for comparison.

Is Yuzu liable for piracy because they create an emulator and create guides on how to get licensed games working on it? Who knows. Could Nintendo throw lawyers at them endlessly until they submit, or even set a terrible precedent if Yuzu lost? Definitely. Which is why Yuzu just settled it, which in effect lets Nintendo win through their dubious claims.

Re: Nvidia bans using translation layers for CUDA software to run on other chips

#160

Earlier quoted context omitted.

It appears from the comments here that just disassembling the nvidia code would NOT be a violation? it seems that only disassembling to use in a compatibility layer would be ? I believe, this 2 stage/project system was how DeCSS for DVDs worked? Someone cracked it and posted the code, which could them be picked up/used by others as it was 'public knowledge' or some such ??

It is already prohibited on copyright grounds. They put the extra clause to "close" some of the reverse engineering provisions not covered.

Copyright grounds? Copying stuff can violate copyright, but documenting stuff? No no no, you'd need a specific law to prevent disclosing of information. Maybe misappropriation of trade secrets?
Post reply on HN