产业观察:英伟达新规CUDA转换受限,自建生态方是长久之道 英伟达cuda平台解决了哪些问题 英伟达的cuda生态
admin
2024-03-07 13:01:13
0

集微网报道 (文/陈炳欣)软件生态系统是指在一个共同的技术平台上,众多参与者协同合作,最终形成大量的软件解决方案或者服务。而这样的生态在开发者场景中可以起到极为重要的作用,能够重塑整个AI的工作流程,加强开发者黏性。

根据tomshardware的报道,日前英伟达在其软件平台CUDA的更新许可条款中,禁止使用翻译层在其他硬件平台上运行基于CUDA的软件。对于这一政策变动,业界的普遍解读是,英伟达为了防止其他厂商通过ZLUDA等翻译层使用CUDA代码,也即限制了其他厂商直接将CUDA生态软件通过ZLUDA等转换后使用在其他AI芯片平台上。

CUDA作为英伟达的软件,在与硬件配合后,可以十分高效地驱动AI模型,成为众多AI厂商训练推理大模型时的首选,这也是支撑英伟达在当前AI计算领域统治地位的重要支柱。然而,随着更多具有竞争力的硬件问世,越来越多用户希望能在其他平台上运行他们的CUDA程序。而使用如ZLUDA这类翻译层,在非英伟达硬件上运行CUDA程序是最便捷的方式(此外也可以重新编译代码)。


这显然对英伟达在AI应用领域的地位造成了影响,成为本次英伟达决定禁止使用翻译层在其他硬件平台上运行CUDA应用程序的原因。其实,自2021年以来,英伟达就已经在网上公示的许可条款中禁止使用翻译层在其他硬件平台上运行基于 CUDA 的软件了。现在,英伟达又将这则警告添加到CUDA 11.6版本的条款当中。从长远来看,英伟达无疑将会通过更多设置法律障碍的方式,阻止在第三方硬件上通过翻译层运行CUDA软件。

在开发者的日常流程中,首个环节是数据管理,包括数据的提取(Extraction)、变形(Transform)、加载到应用端(Load),这些流程合称ETL;随后还有数据的存储,数据训练、验证(可视化)、推理等多个环节。足够良好的软件生态能够极大影响上述工作流程,通过发达的软件生态支持,能够极大提高工作效率,对开发者的黏性极大增加,形成正反馈,提高软件生态的壁垒。

在CUDA 问世之前,人们想要调用GPU的计算能力必须编写大量的底层代码或借用图形API,对使用高级语言为主的程序员来说十分不便。这种情况促使英伟达决定构建一套与之相配合的计算平台。2006年CUDA发布,2007年正式推出CUDA1.0公测版本。2008-2010年CUDA平台得到进一步发展,拓展了新局域的同步指令、扩充全速常量内存等。英伟达通过向各软件厂商免费提供开发工具,使得CUDA生态初具规模。程序员无需再通过图形API调用GPU,而是可以直接采用类似C语言的方式直接操控GPU。

CUDA包含的生态组分众多,包括编程语言和API、开发库、分析和调试工具、数据中心和集群管理工具,以及GPU硬件等多个大类。每一大类中都包含了大量的组件。这些都是英伟达以及开源生态开发者们在二十年间日积月累所形成。

以移植方式兼容CUDA生态

当然,CUDA生态系统虽然庞大且具有先发优势,但并非无可替代。由于英伟达占据了绝大部分AI训练市场,在CUDA 之外寻找一个第二选项,是许多AI模型企业经营中的重要策略。

对于AMD、英特尔,以及其他追赶者来说,虽然通过ZLUDA这类翻译层直接移植软件被禁止,但是重新编译现有的CUDA程序仍然合法。因此,一方面持续推出更优秀的硬件产品,建立自己的软件生态,吸引更多软件开发者为这些新平台设计软件。另一方面则利用开源社区提供的兼容工具,以移植方式兼容CUDA生态,也是一个重要的补充。


比如,ROCm是AMD基于旗下GPU产品开发的开源计算生态,其在极大程度上仍然兼容了CUDA。软件库支持是可用性的核心。2015 年以来ROCm生态持续丰富组件。2016年, ROCm1.0 阶段,基本的数据格式、基本运算指令、常用的基础线性代数库、部分常用AI框架已经得到初步支持。到2023年4月AMD已经推出ROCm5.6 版本,形成了底层驱动/ 运行时、编程模型、编译器与测试调试工具、计算库、部署工具等相对清晰的软件架构。从完成度上来看,目前ROCm对比CUDA已经在开发、分析工具、基础运算库、深度学习库与框架、系统软件方面做到相对完整地支持。

当然,仅支持AI的核心框架与软件库对于GPU而言仍然不够,往往需要全面的软硬件支持才能触及大量用户,在使用中获得反馈、进行快速迭代,从而构建生态护城河。ROCm 由于只支持Linux,对 Windows 的官方支持不足,其使用命令行形式或脚本形式安装门槛与CUDA的图形化操作相比要更高,对于开发人员或算法工程师等专业人士尚可,对于那些并不以AI为核心的用户来说,仍有一定的门槛。

但是,ROCm生态已经能够一定程度上对CUDA进行替代,尤其在核心的AI领域已经具备较为完善的支持和可用性,其中很多做法都非常值得借鉴。

自建生态是长久之道

ChatGPT热潮之下,生成式AI成为当前最大热点。这一热潮极大带动了GPU行业的高速发展,同时为国产GPU提供了难得的发展契机。目前硬件性能指标并非国产GPU的最大障碍,部分国产GPU在理论硬件性能上已经可以接近国际主流水平,可在软件生态层面却面临诸多限制。


2023年随着生成式AI的爆发,特别是在英伟达特供版性能降级之后,国产GPU公司受到更高关注。但是这些产品的应用同样脱不开生态的支持。国内企业仍需在AI的核心框架、算法库等方面,加速生态发展,在生态竞争中占据先机。

首先,自建生态是长久之道。国内核心国产AI算力芯片技术路线中,华为昇腾和寒武纪都选择了自建生态。这种方式虽然初期会面临诸多挑战,但在生态自主上将走得更稳更远。不过从全球来看AMD、英特尔等并没有放弃以移植方式兼容CUDA生态,其中的很多做法也值得国内厂商借鉴。

相关内容

热门资讯

linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
C++ 机房预约系统(六):学... 8、 学生模块 8.1 学生子菜单、登录和注销 实现步骤: 在Student.cpp的...
A.机器学习入门算法(三):基... 机器学习算法(三):K近邻(k-nearest neigh...
数字温湿度传感器DHT11模块... 模块实例https://blog.csdn.net/qq_38393591/article/deta...
有限元三角形单元的等效节点力 文章目录前言一、重新复习一下有限元三角形单元的理论1、三角形单元的形函数(Nÿ...
Redis 所有支持的数据结构... Redis 是一种开源的基于键值对存储的 NoSQL 数据库,支持多种数据结构。以下是...
win下pytorch安装—c... 安装目录一、cuda安装1.1、cuda版本选择1.2、下载安装二、cudnn安装三、pytorch...
MySQL基础-多表查询 文章目录MySQL基础-多表查询一、案例及引入1、基础概念2、笛卡尔积的理解二、多表查询的分类1、等...
keil调试专题篇 调试的前提是需要连接调试器比如STLINK。 然后点击菜单或者快捷图标均可进入调试模式。 如果前面...
MATLAB | 全网最详细网... 一篇超超超长,超超超全面网络图绘制教程,本篇基本能讲清楚所有绘制要点&#...
IHome主页 - 让你的浏览... 随着互联网的发展,人们越来越离不开浏览器了。每天上班、学习、娱乐,浏览器...
TCP 协议 一、TCP 协议概念 TCP即传输控制协议(Transmission Control ...
营业执照的经营范围有哪些 营业执照的经营范围有哪些 经营范围是指企业可以从事的生产经营与服务项目,是进行公司注册...
C++ 可变体(variant... 一、可变体(variant) 基础用法 Union的问题: 无法知道当前使用的类型是什...
血压计语音芯片,电子医疗设备声... 语音电子血压计是带有语音提示功能的电子血压计,测量前至测量结果全程语音播报࿰...
MySQL OCP888题解0... 文章目录1、原题1.1、英文原题1.2、答案2、题目解析2.1、题干解析2.2、选项解析3、知识点3...
【2023-Pytorch-检... (肆十二想说的一些话)Yolo这个系列我们已经更新了大概一年的时间,现在基本的流程也走走通了,包含数...
实战项目:保险行业用户分类 这里写目录标题1、项目介绍1.1 行业背景1.2 数据介绍2、代码实现导入数据探索数据处理列标签名异...
记录--我在前端干工地(thr... 这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前段时间接触了Th...
43 openEuler搭建A... 文章目录43 openEuler搭建Apache服务器-配置文件说明和管理模块43.1 配置文件说明...