7 ms·
Nvidia bans using translation layers for CUDA software to run on other chips
- justinclift 3y agoOn the face of it, this sounds like abusive behaviour by a monopolist. Wonder if it'll be seen that way legally though?
- nottorp 3y agoFor the US, didn't Oracle win the java api lawsuit?
- justinclift 3y agoDoesn't seem like it, though it had to work it's way to the Supreme Court for the final decision: * https://arstechnica.com/tech-policy/2021/04/how-the-supreme-court-saved-the-software-industry-from-api-copyrights/ https://arstechnica.com/tech-policy/2021/04/how-the-supreme-... * https://en.wikipedia.org/wiki/Google_LLC_v._Oracle_America,_Inc https://en.wikipedia.org/wiki/Google_LLC_v._Oracle_America,_....
- jjice 3y agoLooks like they lost [0], with Google winning 6-2, but maybe Oracle is trying to appeal it? I'm not familiar with the remanding process so I can't comment on that part of this quote. > In April 2021, the Supreme Court ruled in a 6–2 decision that Google's use of the Java APIs fell within the four factors of fair use, bypassing the question on the copyrightability of the APIs. The decision reversed the Federal Circuit ruling and remanded the case for further review. [0] https://en.wikipedia.org/wiki/Google_LLC_v._Oracle_America%2C_Inc https://en.wikipedia.org/wiki/Google_LLC_v._Oracle_America%2....
- nottorp 3y agoOh interesting. The last piece of news I read was probably the decision before that, that ruled in Oracle's favour. Blame Covid. So is it final, or they can still drag it on? From wikipedia: "Justice Stephen Breyer wrote the majority opinion. Breyer's opinion began with the assumption that the APIs may be copyrightable, and thus proceeded with a review of the four factors that contributed to fair use:" That doesn't look so good.
- vidarh 3y agoIt's fairly typical that the court wanted to make the narrowest decision possible. By conclusion that *even under the assumption they _may_ copyrightable, Google didn't violate copyright they saved themselves the hassle of deciding on the copyright issue.
- nottorp 3y agoIANAL. So basically the assumption language means there is no rule either that APIs are copyrightable or not, yet... Could have been worse i guess.
- vidarh 3y agoWell. There's no Supreme Court ruling on the copyrightability. The Federal Circuit did hold that APIs are copyrightable, and as far as I understand the Supreme Court carefully avoided deciding whether or not they were right about that. So it's not great, as it does leave the Federal Circuit finding that the APIs were copyrightable standing so far, but as you say it could have been worse - it does not have remotely the same weight.
- ender341341 3y agoMy (non-lawyer) take on that is when they say "began with the assumption that the APIs may be copyrightable, and thus proceeded with a review of the four factors that contributed to fair use" is that they're not saying APIs are copyrightable and basically ignored that question because they ruled that even if they are copyrightable googles use would be fair use and oracle doesn't have a case. it's a fairly common method cases are resolved, you say "assuming the plaintiff claims are all true, do they actually have cause of action for a lawsuit?"
- mindcrime 3y agoIronically, this is just going to increase interest in ROCm and other alternatives.
- foobarian 3y agoWonder if they know and expect that. It's brilliant! Maybe AMD should announce a ban on developing CUDA compatibility layers for their kit
- jstanley 3y agoPeople keep using proprietary software and keep getting burned by it. When will we learn?
- superkuh 3y agoWhat's the alternative? AMD only supports their (consumer) GPUs for ~4 years via ROCm in some instances. If you buy the card at any time except release day you only get a couple years of compute support. To answer my own question: opencl, and it's just as bad as it was in 2014. Or, slowly, people are starting to do compute with Vulkan. This might be the best way forwards even if it's an awkward choice.
- whatshisface 3y agoInvestment is not rewarded until the platform is used, which won't be until investments are made... it's a multi billion dollar chicken and egg problem that only could have been averted a decade ago by consumers refusing to be locked in to a proprietary standard.
- dotnet00 3y agoA decade ago, CUDA was still offering a more usable platform than the competition. The problem could only have been averted if AMD had properly committed to investing in their platform at least decade ago, just as NVIDIA has been doing for almost 2 decades now.
- whatshisface 3y agoA decade ago, CUDA was better, but I don't think the industry had crossed the threshold of being stuck on it. AMD still had the option of investing to catch up, and there would have been the possibility of an industry consortium. Now, with the whole ML stack having been optimized over ten years of rapid development for a single proprietary standard, and especially with the deliberate obstructionism exemplified by the linked article, it is much less likely that a consortium or competitor could catch up.
- andersa 3y ago> a new clause in CUDA 11.5 reads Huh? That was released like 3 years ago.
- ummonk 3y agoThe license was indeed last updated in October 8th 2021 with the release of Cuda 11.5.0. I guess nobody noticed until now? https://docs.nvidia.com/cuda/eula/index.html https://docs.nvidia.com/cuda/eula/index.html
- SomeHacker44 3y agoIANAL, 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 https://emulation.gametechwiki.com/index.php/Licensing
- plussed_reader 3y agoAn arms race of the update whack-a-mole as the encrypted blob grows and encompasses more...
- lunfard000 3y agowouldn't that require breaking the ABI? Many enterprise wont be happy if they do so. Also, there is not way to prevent using old cuda compilers.
- reactordev 3y agoNot a way to prevent it but they can make damn sure its difficult to find. Example: Where is Newtonsoft's Physics Library v1.x? It was awesome, easy, fast, and worked with my engine (or rather, my engine worked with it?). Gone. Nowhere to be found, not even on the internet archives way-back-machine. It's rather trivial for a juggernaut like NVidia to wipe the earth of older cuda compilers by tweaking a driver and making cuda compilation cloud-based.
- jsheard 3y agoI think there's two issues at play: re-implementing the CUDA APIs, and using that re-implementation to run Nvidias own libraries like cuDNN on non-Nvidia hardware. Precedent around emulation and the Google vs. Oracle case probably protects the former, but Nvidia is probably entitled to say how you're allowed to use their own software in the latter.
- deleted 3y ago[deleted]
- hagbard_c 3y agoNvidia can go bite my shiny metal ass as far as I'm concerned. Hey, European Commission, once you're done taking 0.5% of the fruit factory's yearly income for their gate keeping tendencies here's another juicy company for you to investigate.
- deleted 3y ago[deleted]
- amelius 3y agoIt would be great if nVidia would charge Apple 30% of their revenue for the use of CUDA.
- salawat 3y agoSounds anti-competitive af. How has this not bubbled up to the FTC for anti-trust action yet?
- ronsor 3y agoYou can always report it to the FTC yourself, or Nvidia's competitors can sue them for antitrust violations.
- muragekibicho 3y agoBe the change you want to see in the world
- segasaturn 3y agoThe FTC is not going to take action that would hurt a $2T American corporation and help Chinese hardware manufacturers/reverse engineers, no matter how valid such a case would be.
- tamimio 3y agoI don’t think Nvidia can enforce this in the US let alone China.
- zoobab 3y agoNot in the EU, there are interoperability exceptions in the EU copyright directive. There are even more exemptions in french Law which goes further than other countries.
- nindalf 3y agoTheir ban is legal, not enforced in code. I wish them best of luck enforcing those terms and conditions against Chinese hardware makers in China. And even Nvidia would know that the European competition regulator would take a dim view of it. I guess there is some benefit to dragging it out, benefiting from the CUDA monopoly for a year or two more.
- dotnet00 3y agoThis 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/NOTICE-binary https://github.com/NVIDIA/spark-rapids-container/blob/dev/NO... The EULA here, listed as last updated in 2021, also has this clause: https://docs.nvidia.com/cuda/eula/index.html https://docs.nvidia.com/cuda/eula/index.html
- mvdtnz 3y agoI think you're focused too much on when this clause was added. Most of us are not so concerned with the chronology.
- germandiago 3y agoYet the article seems to imply they did it recently also according to my understanding, which is misleading.
- dotnet00 3y agoI'm focused on what the article, and the full headline claims. "Nvidia bans using translation layers for CUDA software to run on other chips — new restriction apparently targets some Chinese GPU makers and ZLUDA" The time the clause was added also matters, because if it's ~3 years old and since then various translation layers backed by other large competitors have been released without any open lawsuit, it's a lot less concerning than if the clause were added right now, as, at least to me, it suggests that they're not talking about simply copying the API based on documentation and known quirks, but reverse engineering how the internals function for the purposes of a translation layer (eg same thing as MS banning reverse engineering of Windows for the purpose of adding the functionality to Wine, but tolerating clean room reimplementations).
- AstralStorm 3y agoI'm pretty sure that would be a dead clause since it is more restrictive than reverse engineering for compatibility, and every GPU and CPU is internally a translation layer... So, it's essentially a clause flying in the face of antitrust law. NVidia wants to try it in court and pay more fines? Let's go. :)
- Tistel 3y agoPeople should check out Google's JAX. Work in a high level language and run anywhere. Nvidia should just be commodity hardware if people avoid vendor lock in.
- fisf 3y agoThat's fine and dandy, until you realize that Jax only has a limited amount of backends. E.g. rocm support is still experimental. Somebody has to build those optimized backends -- it's not just a matter of people picking the wrong stack.
- nerpderp82 3y agoI just looked at Jax and XLA, it is odd to me that they aren't targeting SPIR-V directly.
- nerpderp82 3y agoShimming CUDA is a waste of effort that only reinforces Nvidia's market dominance. Targeting higher level interfaces, Jax, Taichi, ArrayFire, etc is imho a better strategy. We have already seen systems like LLama.cpp and their ilk support alternative backends for training and inference. Now the vast majority of the compute cycles have centered around a handful of model architectures, implementing those specific architectures in whatever bespoke hardware isn't difficult. Target specific applications not the whole complex library/language layer.
- darig 3y ago[dead]
- chatmasta 3y agoI don't understand why Nvidia is so obstinate on this front. They would solidify their lead in hardware if they open sourced the entire CUDA software stack. Their hardware competitors are going to reverse it anyway, so they may as well open source the thing and benefit from all the momentum that comes with owning the community's favored software and the hardware that it runs on.
- gjsman-1000 3y agoExclusivity works. As much as Hacker News likes to dismiss it.
- bluedevil2k 3y agoReally? All these companies have their code written in CUDA and when it comes time to buy more GPUs they can make a decision - buy more Nvidia chips that will “just work”, or buy AMD/Intel and spend time and money writing new, potentially buggy, software to duplicate the software I’ve already written. Seems like an easy decision for the buyers, and Nvidia’s vendor lock in is complete.
- roughly 3y agoNvidia is worth more money than God because every ML pipeline out there uses CUDA and the only way to use CUDA is on Nvidia hardware - they already own the community’s favored software and the hardware it runs on. CUDA’s not the product, it’s the moat.
- bogwog 3y agoWeird that neither the article nor the source tweet link to the actual terms, but it seems to be true: https://docs.nvidia.com/cuda/eula/index.html#limitations https://docs.nvidia.com/cuda/eula/index.html#limitations (in section 8)
- raggi 3y agogo all in on webgpu compute
- astlouis44 3y agoBeen pondering over this a ton recently. WebGPU not only represents higher-end rendering in a browser, but true cross-platform compute that will increasingly get closer and closer to native performance. This is huge, because it comes with the portability aspect as well. Where I think WebGPU has the most promising role to play is in inference of smaller optimized AI models, in client hardware. Users expect software to run anywhere, and for developers being able to deploy a portable binary that "just works" is huge. Not to mention the immense cost savings... now you won't get a massive model, we're going to need the cloud for those for a while yet. But if you can run it locally, why not? And end users spend most of their time in browser these days, so it's obvious to see where this is all headed.
- LispSporks22 3y agoWell I think we just witnessed the end of CUDA then. We usually code around such brain damage.
- wzdd 3y agoThis doesn't appear to ban using translation layers. The text is "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". That would appear to (attempt to -- it may not be enforceable) restrict the creation of translation layers. I don't understand how you could infer "bans using translation layers" from the above clause, and indeed the tweet they're referencing does not. AIUI Zluda is something like Wine, in that it's an API reimplementation. It would be weird to call running Wine reverse engineering, decompilation or disassembling -- it's effectively just linking.
- marshray 3y agoIt's almost like they wrote it specifically to be invalid under a compatibility exception.
- croes 3y ago>Dark API functions are reverse-engineered and implemented by ZLUDA on a case-by-case basis once we observe an application making use of it. https://github.com/vosen/ZLUDA/blob/master/ARCHITECTURE.md https://github.com/vosen/ZLUDA/blob/master/ARCHITECTURE.md
- deleted 3y ago[deleted]
- hangonhn 3y agoThe stated reason from the article makes little sense. The Chinese will just tell Nvidia to go take a hike, if the legal agreement holds any water at all in Chinese law. The only people this will affect would be AMD and Intel. Something isn't quite adding up.
- dooglius 3y agoThis appears to apply only to binaries compiled with NVCC; compiling CUDA code with LLVM/clang for non-nvidia would not be a license violation (disclaimer: IANAL)
- williamDafoe 3y agoThey will lose in court. I am reminded of IBM trying to ban 3rd party disk drive makers for from making disks that fit the IBM disk interface in the 1960s. They lost, too. However, ZLUDA may have to do a clean room reimplementation of all of CUDA, like google did with their javascript reimplementation, however ...
- rerdavies 3y agoI'm reminded of Apple modifying their hard drives to return "Copyright (c) Apple Computers" to appropriate prodding, and refusing to mount any drive that didn't do so. That one never went to court. These days, you just do the same thing with a little rudimentary crypto.
- chrisjj 3y agoAnd Nintendo https://news.ycombinator.com/item?id=7456942 https://news.ycombinator.com/item?id=7456942
- fransje26 3y agoWell, that's excellent news. It now means competitors can now concentrate on coming with an alternative, instead of coming with a half-arsed solution. Looking at you, AMD.
- JonChesterfield 3y agoTranslating machine code between architectures is a dubious proposal in the first place. Taking compiled cuda shaders, disassembling them and recreating shaders for some other architecture from the pieces really should be more effort than compiling the source directly to that other architecture.
- mawadev 3y agoThis is how nvidia will slowly rot
- rerdavies 3y agoIn the meantime, NVIDIA has quickly become the world's third most valuable company.
- nhggfu 3y agoauthor doesn´t even bother to say what CUDA is, just refers to it by an acronym html even has an <acryonym> element would be fab if people would communicate effectively when they are writing on the web, as a job.
- mark336 3y agoFor more Nvidia news see my page: https://www.asiaviewnews.com/gigabots/threads https://www.asiaviewnews.com/gigabots/threads
- K0balt 3y agoIn a way, this is great news for less regulated markets because it might give them a cost advantage in ML services commensurate with their lower overall development costs. This might help developing markets compete with established market leading countries.
- cm2187 3y agoEven 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.
- hx8 3y agoI 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.
- varbhat 3y agokhronos,please come up with something and let that be good.
- nimbius 3y agoLooks like nvidia is trying to keep the lynchpin of their entire business model from crumbling underneath them. ZLUDA lets you run unmodified CUDA applications with near-native performance on AMD GPUs. https://github.com/vosen/ZLUDA https://github.com/vosen/ZLUDA With Triton looking to eclipse CUDA entirely, im not sure this prohibition does anything more than placate casual shareholders. https://openai.com/research/triton https://openai.com/research/triton
- apetresc 3y agoWhat signs are you seeing that lead you to conclude that Triton is "looking to eclipse CUDA entirely"? I'm not much of an industry insider, but from my vantage point Triton has barely made any waves at all.
- mikefallen 3y agoThis should be raising some eyebrows from regulators regarding antitrust no?
- Zambyte 3y ago> 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?
- techjamie 3y agoIt'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.
- pplante 3y agoYuzu ran a private discord that was allegedly full of piracy activity. They didn't moderate it. Writing an emulator isn't illegal, nor would gate keeping features. Allowing piracy to happen in your paid for channel might make you more complicit/responsible.
- Zambyte 3y agoLegally it seems like Discord should be liable for moderating their servers, not some poor schmuck who clicked "create group".
- deleted 3y ago[deleted]
- woadwarrior01 3y agoTranslation layers would only move up the stack and target DSLs like Triton, Numba, etc.
- FredFS456 3y agoNvidia 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.
- rob74 3y agoThat 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...
- anonymousDan 3y agoSurely this is anticompetitive?
- deleted 3y ago[deleted]
- loup-vaillant 3y agoCan 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.
- jrepinc 3y agoFsck you nvidia even more. Just going the same evil ways as Nintendo I see. Good thing I don't waste my money on your products.
- joshscholar 3y agoROCm contains a AMD's version of a translation layer for CUDA (though I've read people saying that it has some restrictions to get around Nvidia's language, not sure what. Maybe it has to be precompiled.) But ROCm has a DIFFERENT trick. It has it's own language that can be translated into CUDA or for other targets. If you use THAT language instead of CUDA you can get the effect of CUDA on Nvidia without the source being IN CUDA and you compile that language for AMD or INTEL.
- hfgjbcgjbvg 3y agoAll this does it make computing more expensive. I’m sure there’s some people who want that but not great for humanity imo.
- hfgjbcgjbvg 3y agoThis red team vs green team thing needs to stop.