天天财汇 购物 网址 万年历 小说 | 三峰软件 小游戏 视频
TxT小说阅读器
↓小说语音阅读,小说下载↓
一键清除系统垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放,产品展示↓
首页 淘股吧 股票涨跌实时统计 涨停板选股 股票入门 股票书籍 股票问答 分时图选股 跌停板选股 K线图选股 成交量选股 [平安银行]
股市论谈 均线选股 趋势线选股 筹码理论 波浪理论 缠论 MACD指标 KDJ指标 BOLL指标 RSI指标 炒股基础知识 炒股故事
商业财经 科技知识 汽车百科 工程技术 自然科学 家居生活 设计艺术 财经视频 游戏--
  天天财汇 -> 科技知识 -> 如何看待Nvidia禁止使用翻译工具将cuda运行在其他的硬件平台上? -> 正文阅读

[科技知识]如何看待Nvidia禁止使用翻译工具将cuda运行在其他的硬件平台上?

[收藏本文] 【下载本文】
如何看待Nvidia禁止使用翻译工具将cuda运行在其他的硬件平台上?
关注问题?写回答
[img_log]
NVIDIA(英伟达)
CUDA
ROCm
如何看待Nvidia禁止使用翻译工具将cuda运行在其他的硬件平台上?
因为一开始大家都不指望兼容CUDA,或者讲否决了这条路线。
冷知识是老黄的卡和卡之间高性能计算库的二进制也是不兼容的,所以CUDA包越来越膨胀。
CUDA本身兼容可能还好做点,他本身还有套ptx还是啥的嘛,但是cudnn和cublas这种才是老黄的命根子,我觉得指望二进制兼容根本不现实,本质cudnn这种都是高度优化的机器码,不同体系都没得兼容。
理论上你可以做一套计算框架,去替换掉cudatoolkit,让写的东西可以编译到目标硬件上,没错,AMD就是这么做的,但是rocm这么久做的也不咋样。
比较现实的问题是,各路ai硬件厂家搞不好框架和api,变来变去,自家不兼容自己,通用api类似opencl和directml这种,根本没人推,现在这问题我感觉是有人炒作。
利好 Nvidia Fu*k U


大家可以去看一下 Nvidia CUDA的EULA:
https://docs.nvidia.com/cuda/eula/index.html
1.2. Limitations
The following license limitations apply to your use of the SDK:
You may not reverse engineer, decompile or disassemble, or remove copyright or other proprietary notices from any portion of the SDK or copies of the SDK.Except as expressly provided in this Agreement, you may not copy, sell, rent, sublicense, transfer, distribute, modify, or create derivative works of any portion of the SDK. For clarity, you may not distribute or sublicense the SDK as a stand-alone product.Unless you have an agreement with NVIDIA for this purpose, you may not indicate that an application created with the SDK is sponsored or endorsed by NVIDIA.You may not bypass, disable, or circumvent any encryption, security, digital rights management or authentication mechanism in the SDK. You may not use the SDK in any manner that would cause it to become subject to an open source software license. As examples, licenses that require as a condition of use, modification, and/or distribution that the SDK be:Disclosed or distributed in source code form;Licensed for the purpose of making derivative works; orRedistributable at no charge.You acknowledge that the SDK as delivered is not tested or certified by NVIDIA for use in connection with the design, construction, maintenance, and/or operation of any system where the use or failure of such system could result in a situation that threatens the safety of human life or results in catastrophic damages (each, a “Critical Application”). Examples of Critical Applications include use in avionics, navigation, autonomous vehicle applications, ai solutions for automotive products, military, medical, life support or other life critical applications. NVIDIA shall not be liable to you or any third party, in whole or in part, for any claims or damages arising from such uses. You are solely responsible for ensuring that any product or service developed with the SDK as a whole includes sufficient features to comply with all applicable legal and regulatory standards and requirements.You agree to defend, indemnify and hold harmless NVIDIA and its affiliates, and their respective employees, contractors, agents, officers and directors, from and against any and all claims, damages, obligations, losses, liabilities, costs or debt, fines, restitutions and expenses (including but not limited to attorney’s fees and costs incident to establishing the right of indemnification) arising out of or related to products or services that use the SDK in or for Critical Applications, and for use of the SDK outside of the scope of this Agreement or not in compliance with its terms.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.
大家讨论的是最后那条。这一条实际上是CUDA EULA 11.4.2里就有了(October 8, 2021),自CUDA 11.6版本开始,这些警告条款被明确地包含在安装过程中。已经不是什么新闻了。
其实很多中文媒体都有误解。这段话的翻译应该是:
您不得对使用SDK元素生成的任何输出部分进行逆向工程、反编译或拆解,以将此类输出工件转换为目标非NVIDIA平台。
这些新条款明确指出,用户不得对使用NVIDIA SDK生成的任何结果进行逆向工程、反编译或反汇编,并在非NVIDIA平台上进行转译。此举似乎是针对某些项目,如ZLUDA,其中英特尔和AMD都有参与。ZLUDA是一个兼容层,允许在非NVIDIA硬件上运行CUDA程序。
随着市场上出现更具竞争力的硬件,越来越多的用户倾向于在竞争平台上运行CUDA程序,这可能是NVIDIA决定禁止使用翻译层的原因之一 。
最近,软件工程师 Longhorn 注意到,安装的 EULA 文本文件中的一个条款写道:「不得对使用 SDK 组件生成的软件产品的任何部分进行逆向工程、反编译或反汇编,以便转换此类软件产品、从而在非英伟达平台上运行。」(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)
这是英伟达对于「禁止使用转换层在其他硬件平台上运行基于 CUDA 的软件」的警告。实际上,英伟达在 2021 年已经在网上公示的许可条款中禁止,不过之前这则警告并未出现在安装过程中添加到主机系统上的文档中。
而现在,这个警告已经添加到了安装 CUDA 11.6 及更新版本时所附的最终用户许可协议(EULA)中。
英伟达针对 CUDA 11.6 及更高版本的突发举动,引发了业内震动。不少人士认为,这一招是针对 Intel、AMD 都有参与的 ZLUDA 等第三方项目,摩尔线程 MUSA、登临科技 GPU+以及中国厂商的兼容方案。
英伟达突然出手的背后,是 CUDA 的「霸权」受到威胁。
CUDA 的「霸权」
CUDA 是什么?简单来说,CUDA 是英伟达推出的并行计算框架。
CUDA 不仅可以调用 GPU 计算,还可以调用 GPU 硬件加速,让 GPU 拥有了解决复杂计算问题的能力,可以帮助客户为不同的任务对处理器进行编程。
在 CUDA 之前,英伟达的 GPU 仅仅是一个负责在屏幕上绘制图像的「图形处理单元」,也就是原本只能当作独立显卡的存在。有了 CUDA 后,GPU 就可以通用了。GPU 通用的意思就是,所有类似显卡运算的简单量大的工作,GPU 都能干。例如 AI 深度学习,就需要 GPU。
CUDA 之于英伟达,可以说是历史的转折点。
自从 2006 年开始,英伟达将大笔资金投入到 CUDA 的研发中。为了把旗下的所有芯片都纳入 CUDA 的架构里,英伟达累计花了超过 100 亿美元。
2009 年开始,也就是 CUDA 推出两三年后,英伟达每年的研发费用从营收的 15% 陡增到 25% 甚至 30%。为了显示这个研发费用的超高,给大家举几个例子:苹果每年不足 10%,微软每年 15%-20%,英特尔每年 20% 左右。
所以可以看出来,英伟达在 CUDA 里,投入了大量的财力。
同时,CUDA 的出现,也确实让英伟达在 AI 芯片领域快速起飞。CUDA 推出后,英伟达迅速打开了新业务的大门,在航空航天、天文学、气象学领域里都有 GPU 的身影。
深谙需要利用工具和应用来帮助扩展自己的市场的英伟达,对于 CUDA 的策略是:「不开源,但免费提供,并处于英伟达的严格控制之下。」
因此,英伟达为人们获取自身硬件设置了非常低的门槛,包括 CUDA 工具包。CUDA 在「使用人数越多,CUDA 平台就越好用,新开发者就越倾向于选择 CUDA」的良性循环中,加固了生态优势。
知名分析师本·汤普森(Ben Thompson)曾说:「英伟达既不是一家硬件公司,也不是一家软件公司:它是一家将两者融为一体的公司。」
CUDA 最强的护城河事实上在于软件-芯片协同设计。英伟达强大的软硬件协同完善的生态,让第三方软件公司难以打破英伟达的 CUDA 领先地位。
尝试超越 CUDA 的企业往往会出现三种可能。
第一种,陷入追赶状态。第三方软件公司在研究透彻英伟达的 GPU 后,需要半年到一年的时间才能实现性能基本匹配 CUDA,但很难在新 GPU 发布后立即实现性能匹配甚至领先。
第二种,时间滞后。第三方软件公司适配新的人工智能加速硬件需要时间,而在一年后等到其方案达到接近 CUDA 的水平时,英伟达已经发布了下一代 GPU。这种时间滞后导致芯片公司无法及时利用最新的技术。
第三种,无法打破领先地位。由于英伟达的不断创新和市场领先,第三方软件公司很难打破这种局面。他们不仅面临着技术上的挑战,还面临着市场竞争的压力。
英伟达靠着 CUDA 绑定了数百万 AI 开发者,吸引着大型云计算公司采购它的 GPU。目前,CUDA 生态合作者规模翻倍增长。
根据英伟达 2023 财年年报,目前有 400 万名开发者正在与 CUDA 合作,而且规模还在不断扩大。英伟达通过 12 年的时间达到 200 万名开发者,在过去的两年半里该数字翻了一番。目前 CUDA 的下载量已经超过了 4000 万次。
CUDA 的兼容问题
事实证明 CUDA 和英伟达硬件的结合非常高效,大批程序都依赖这种结合。然而,随着更多竞争性的硬件涌入市场,更多的用户倾向于在与英伟达竞争的平台上运行其 CUDA 程序。
有两种方法可以做到这一点:重新编译代码(这种方法可供相应程序的开发人员使用),或使用转换层(也就是兼容)。
其实这里的「兼容」并不是真正的兼容。因为 CUDA 不是开源代码,是「黑盒子」,因此 100% 兼容 CUDA 在技术上是无法实现的。这里是说,通过架构的相似性,使产品可以比较容易地运行 CUDA 的代码。
使用像 ZLUDA 这样的转换层是在非英伟达硬件上运行 CUDA 程序的最简单方法。你要做的就是拿来已经编译好的二进制代码,然后使用 ZLUDA 或其他转换层运行它们。
谈到这里,我们可以一起来了解一下 ZLUDA。其实,这个项目是在 2020 年时候开始的,被描述为『英特尔 GPU 上 CUDA 的直接替代品』。这个项目提出了一个概念:在非英伟达显卡上运行未更改的 CUDA 应用程序。
不过,随着英特尔、AMD 转向支持自有软件平台,ZLUDA 现在似乎举步维艰。今年 2 月,AMD 放弃资助 ZLUDA 项目。受到资金的限制,「ZLUDA」项目已经在 GitHub 上开源。
现在,英伟达已经禁止第三方公司兼容 CUDA。
显而易见,使用转换层威胁到了英伟达在加速计算领域的霸主地位,尤其是在 AI 应用领域。这可能是英伟达决定禁止使用转换层在其他硬件平台上运行 CUDA 应用程序背后的初衷。
其实,从全球来看,许多国外的做算力芯片企业,例如 Graphcore、SambaNova、tenstorrent,没有一家兼容 CUDA。而之所以不去兼容 CUDA,归根结底,是因为各家希望探索出更适合做 AI 计算的路。
许多算力芯片企业选择在软件栈上另辟蹊径,主要是因为担心「兼容」CUDA 会成为自家产品发展的「天花板」。
CUDA 遭到业内「炮轰」
其实,英伟达的 CUDA 一直是业内被频频提及的话题。
在去年 12 月时,英特尔 CEO 帕特·基辛格曾公开抨击英伟达,称其 CUDA 技术护城河又浅又小,并声称对于人工智能来说推理技术将比训练更重要。
在接受采访的时候,基辛格还在暗示英伟达 CUDA 的主导地位不会永远持续下去。
基辛格说到:「你知道,整个行业都在想如何消灭 CUDA 市场。」「我们认为 CUDA 护城河又浅又窄。因为整个行业都致力于为广泛的训练、创新、数据科学等领域带来更广泛的技术。」
顶级芯片大师吉姆?凯勒也在今年 2 月发布推文,吐槽英伟达 CUDA,认为 CUDA 是「沼泽」而不是「护城河」。


凯勒在后续推文中表示:「CUDA 毫无美感,只是粗暴地堆砌而成。基本上没有人会写 CUDA,即便是写了相关代码,其执行速度也不快。这也是为何 Triton、Tensor RT、Neon、Mojo 孕育而出的原因。」
凯勒认为 CUDA 像 X86 一样,英伟达为了确保软件和硬件的向后兼容性,逐步增加功能的过程中拖慢了性能,增加了程序开发的难度。与此同时,许多开源软件开发框架可以比 CUDA 更高效地使用。
不过,此前 Semi Analysis 首席分析师 Dylan Patel 曾表示:「随着 PyTorch 支持更多 GPU 厂商,再加上 OpenAI 的 Triton 搅局,英伟达手中的利器 CUDA 逐渐锋芒不再。」
Triton 实际上是 Open AI 推出了个「简化版 CUDA」。Triton 是种新的语言和编译器。它的操作难度比 CUDA 低,但性能却可与后者媲美。
OpenAI 声称:「Triton 只要 25 行代码,就能在 FP16 矩阵乘法 shang 上达到与 cuBLAS 相当的性能。」值得一提的是,Triton 是开源的。相较于闭源的 CUDA,其他硬件加速器能直接集成到 Triton 中,大大减少了为新硬件建立 AI 编译器栈的时间。
国内企业作出回应
在国内,目前一部分国产 GPU 厂商采取兼容 CUDA 的策略,以确保用惯了英伟达产品的客户在迁移时没有障碍。另外也有厂商着手培育自己的软件生态,其中包括摩尔线程、壁仞科技、登临科技等。如摩尔线程推出基于旗下 GPU 产品的「MUSA」软件架构。
昨日晚间,摩尔线程发布声明,强调摩尔线程 MUSA/MUSIFY 未受影响。摩尔线程 MUSA/MUSIFY 不涉及英伟达 EULA 相关条款,开发者可放心使用。
摩尔线程表示,MUSA 是摩尔线程自主研发、拥有全部知识产权、软硬一体的全功能 GPU 先进计算统一系统架构,与 CUDA 无任何依赖关系。
MUSIFY 是摩尔线程面向广大 MUSA 开发者提供的开发工具,方便用户在 MUSA 计算平台上进行应用移植与开发,可以让开发者将自己的 C++源代码,转换成 MUSA C++源代码,再通过 MUSA 编译器 MCC 编译生成基于 MUSA 指令集的二进制代码,最终运行在摩尔线程全功能 GPU 上。
总体来说,目前,英伟达只是在 CUDA 11.6 协议中增加了警告条款,尚未有实际行动。不过,这次警告,也代表着英伟达对兼容 CUDA 的一种态度。
重新编译现有的 CUDA 程序仍然完全合法。为了简化这项工作,AMD 和英特尔都有工具将 CUDA 程序分别移植到 ROCm(1)平台和 OpenAPI 平台上。
AMD 于去年 12 月发布 ROCm 6.0 之后,正马不停蹄地推进 6.1 版本更新,从而进一步增强同英伟达 CUDA 的竞争力。AMD 在 2 月向 GitHub 公共仓库提交了大量关于 ROCm 6.1 的提交,这表明 AMD 有望在近期发布新版本。
首先需要明确一点,国内大多数AI芯片厂商所采取的兼容方式不涉及对CUDA二进制结果进行实时翻译,所以影响有限。


国内先后有两家厂商发布声明称,不会受到影响。
3月5日,GPU厂商摩尔线程发布声明称,公司自主研发的计算统一系统架构MUSA和开发工具MUSIFY不涉及英伟达CUDA许可协议相关条款,开发者可以放心使用。另一家国产GPU壁仞科技内部人士也对财新称,壁仞从指令集到算子库再到编译器层面,均是自主研发,不会受到影响。
在业内人士看来,英伟达对其他硬件厂商“兼容CUDA”的态度实际上早有苗头。
“软件编程取决于硬件设计,而CUDA一直都是英伟达为自家硬件所开发,并非面向其他硬件设备。”
早在2021年10月,英伟达就在其CUDA软件许可协议的线上版本中加入了一项条款,即不能逆向工程、反编译或反汇编使用此SDK生成的任何结果,并在非英伟达平台上进行转译。
在这轮AI浪潮中,英伟达能趁势而上,CUDA发挥了重要作用。
CUDA是英伟达于2006年发布的统一计算架构,其作用在于,可以将研究人员和开发者等使用的高级计算机语言,转化为GPU硬件能读懂的底层计算机语言。这极大地降低了开发者使用GPU的门槛,帮助英伟达在软件生态领域逐步建立起“护城河”。
这也意味着,其他厂商要想在AI硬件层面挑战英伟达,除了比拼芯片性能,还要抗衡CUDA软件生态。
近年来,AMD、英特尔都相继推出ROCm、oneAPI等平台,尝试抗衡英伟达的CUDA生态。
而在国内,许多国产GPU厂商都开始采取了“培育自家软件生态、兼容CUDA”的权宜之计,以便在起步阶段避开英伟达的软件生态壁垒。
参考内容:
分析|英伟达禁止CUDA软件编译结果转译 影响几何?
意思是禁止转译SASS指令。即不允许转译CUDA Toolkit/Runtime,或者任何nvcc的编译产出。
相对地,在非nvidia平台上clean room开发一套兼容CUDA的Toolkit、编译器来独立编译CUDA用户代码是不受这个约束的。CUDA本身只是C++的一个方言,代码也只是字符而已。用户代码版权不在nvidia,怎么解释是你的自由。当然你需要证明这套工具链是clean room开发的。
老黄路走窄了。
实际上nvidia一家根本不可能满足全球的计算需求,而第三方硬件厂商又无力自己搞个框架,所以这时候应该有个大公司牵头搞个opencuda来满足市场。拭目以待吧。
对专注大模型方向的国产算力卡影响不大。
国产算力卡适配AI软件生态(其实就是cuda生态)有两条路:
通过编译器,将cuda的代码编译成可在国产卡上运行的程序。好处是不用关心cuda以上的软件实现,如torch和torch之上的各种应用,坏处就是编译出的程序没有针对自己算力卡的特有架构做优化,训练效率不高。对标cuda实现各种kernel算子来适配。好处就是可针对自己的算力卡做优化达到最佳性能,坏处就是要适配各种kernel,开发代价较高。
nvidia禁止的就是第一条路,至于第二条路它没资格禁。
然而,大模型时代,模型结构已经开始收敛,如llm主要就是transformer,图像视频方向,sora可能用的是DiT,而DiT的主要贡献就是拿transformer代替U-Net。所以总的来说,大模型需要实现的kernel算子已经趋近收敛,不像小模型时代,对模型结构魔改更新较快。
所以第一条路,适合小模型时代,强调通用性,对训练性能要求不高。
第二条路,适合大模型时代,场景特化,模型结构收敛需要实现的算子不多,但对性能要求很高。
目前国产算力卡厂商也都走第二条路,有部分也在同时走第一条路,不过反馈的性能表现确实不理想。
英伟达是真不怕吃反垄断吗?没错,cuda是英伟达自己搞的,ie还是微软自己的呢,最后还是被反垄断折磨了十几年。
利好我自己,之前还总有人质疑为啥我们不走兼容CUDA的路,现在没了
CUDA兼容,英伟达真的禁止了?30 赞同 · 3 评论文章
进一步筑高了赶超护城河。
把原来竞争者需要布局的部分从硬件为主,彻底变成了全工具链布局。
而这个布局如果要赶超,恐怕要把英伟达的路都走一遍了。区别只是走的快慢了。
对国内的很多这个产业的追赶者来说,又上了地狱级的难度。
Nvidia cuda SDK是有版权的,开发人员把sdk里面的cuda库反编译了到其他平台上运行,这不是盗版吗?
[收藏本文] 【下载本文】
   科技知识 最新文章
《消失的问界里》为什么网传华为选择大面积
特斯拉万人大裁员涉及中国市场,销售部门是
媒体报道「特斯拉一天内失去 2 个高管和 10
去年是「大模型元年」,今年会是「AI应用落
2024 年人工智能方向的就业前景怎么样?
如何评价小米汽车SU7全球首例无故抛锚?
Firefox是如何一步一步衰落的?
熊猫烧香技术含量高吗?高在哪里?
人的大脑会不会出现“过拟合”病?
商务部部长王文涛会见苹果公司 CEO 库克,库
上一篇文章      下一篇文章      查看所有文章
加:2024-03-08 12:24:08  更:2024-03-08 12:29:34 
 
 
股票涨跌实时统计 涨停板选股 分时图选股 跌停板选股 K线图选股 成交量选股 均线选股 趋势线选股 筹码理论 波浪理论 缠论 MACD指标 KDJ指标 BOLL指标 RSI指标 炒股基础知识 炒股故事
网站联系: qq:121756557 email:121756557@qq.com  天天财汇