.ai是什么软件 谈谈AI基础软件生态

AI资讯1年前 (2023)发布 fengdao
23 0

最近因为两件事情经常上新闻,一是收购ARM,二是RTX 30显卡推出。这家公司主要干两件事,一是卖玩游戏的显卡GPU(2C生意),二是卖AI和HPC(高性能计算)用途的计算GPU(数据中心生意)。今天我们就谈一下这个数据中心生意。

数据中心生意在的重要性正越来越高。所有用过产品做过深度学习工作的人,对其中包含的基础软件——CUDA——都是非常熟悉的。这里我们简单聊下CUDA在生意中所处的关键位置、CUDA的竞争对手在干什么、以及开发者、创业者应该如何选择。

1. CUDA带来的供应商锁定

下图是 CEO黄仁勋在GTC 2019上的一页slide:

这一页很关键,因为它描述了数据中心业务的全貌,重要的模块,以及背后的关键想法。我们可以看到CUDA,以及更高一层的CUDA-X,是连接所有上层AI框架、服务与应用,以及下层工作站、服务器和云端硬件的基础软件。从2007年CUDA推出以来,经过13年的发展,CUDA/CUDA-X已经变成了一个规模巨大的基础软件库,覆盖异构计算编程语言(CUDA C/C++)、编译器(nvcc)、指令集(PTX)、单源代码异构计算API(CUDA API),以及大量的编程库,例如:(高性能线性代数)、cuFFT、CUDA Math Lib、cuDNN(深度神经网络)、(深度学习推理)、(对话)、(视频理解)、Dali(图像解码)、等等。

这么大量的技术背后,是巨大的投入(每年数亿到10亿美元计)。为什么愿意坚持这么多年做这么大量的投资?可以简单地用技术经济领域的“微笑曲线”理论来解释。

“微笑曲线”是台湾宏基电脑董事长施振荣在1992年提出的,曲线分成左中右三段,左段为技术、专利,中段为组装、制造,右段为品牌、服务。而Y轴是附加价值,可以看到中段附加值较低,而左右两段附加值高。这个理论我认为适用性很强,很值得学习。就是通过CUDA和GPU硬件技术,把自己牢牢定位在曲线左侧,通过强大的核心技术来取得竞争先机。

的核心技术是硬软件一体的,GPU的架构和芯片设计是硬件核心技术,CUDA就是软件的核心技术。这和通用计算领域知名的联盟形成鲜明的对照(联盟正是微笑曲线理论提出的背景),在中,Intel掌握硬件核心技术,而微软掌握软件核心技术,而到了大规模并行计算产业中,这两套核心技术都掌握在了一家公司手上。

ai软件视频教程_ai软件怎么转换成cdr软件_.ai是什么软件

采用硬件高价、软件免费(但不开源)的方式实现商业变现。整个CUDA的软件和文档都是可以免费下载的,但这个的前提,一是CUDA只支持自己的硬件,二是软件并不开源。从这点上说,采取了和Apple很类似的商业化策略,Mac硬件高价 + MacOS/免费。从更广的范围来看,的业务模式和Apple也是很类似的,当然这是另外的话题。

CUDA是实现供应商锁定( Lock-in)的关键环节。很容易理解,CUDA的免费,以及游戏GPU的普及性使得开发者上手非常容易;而大量成熟的库的存在,使得使用CUDA开发AI应用效率更高,效果更好;而当开发者已经在CUDA架构下进行了较长时间的投入积累之后,也就无法轻易转换到其它不兼容的软件架构上面去了,这就保证了 GPU在AI领域长期的低营销成本、高利润的销售。

2. 创造非CUDA生态的努力

在任何领域,供应商锁定都是购买者和竞争对手不喜欢的。因此从CUDA诞生开始,就有其它供应商开发竞争的生态。而实际上,在大部分技术领域,都不是像GPU领域有这么强的市场集中性和技术的不兼容。比如桌面CPU领域,Intel和AMD的x86 CPU,在几十年的时间范围内都是互相兼容的。在数据库领域,也有SQL这样的查询语言标准,实现了相当高程度的不同供应商之间的互操作。

但是竞争生态不是那么容易建立起来的,作为后来者,“选择比努力重要”,光靠投入是不够的(毕竟每年还在不断大幅投入CUDA研发),必须有聪明的办法。到目前为止,行业尝试了两条不同的路。

第一条路,是建立产业联盟与标准。这里最重要的项目是,1.0版本2009年推出,最早的推动者是Apple,也有AMD, IBM, Intel等一众公司参与。今年正好有 3.0标准的推出。 1.x的支持还是比较广泛的,AMD 和的GPU在, Linux, Mac平台基本都支持,而大部分手机GPU也有 的支持。但是有几个较大的问题,当前很难成为CUDA的替代品:

支持的平台多,但是性能差。除了GPU之外,还支持FPGA、DLA等其它硬件技术,但对于GPU的一些关键特性,比如的这些,没有支持或者支持很差。而AI应用性能非常重要,所以性能出了名的差,就成为阻碍应用的一大障碍。没有真正非常投入的厂商。早期最大的支持者Apple已经基本退出。苹果目前对并行计算特别是云端GPU看起来兴趣不大,所以近几年已经改为主推自己的,面向游戏的Metal。而GPU市场的老二AMD,虽然支持,但真正的策略是下面讲到的第二条路。所以反而这两年以来,最大的支持者变成了在AI领域完全是后来者的Intel(Intel的相关项目叫)。软件库缺乏。部分因为前两个原因,使得软件库上整体投入不够大,软件库质量较差。

第二条路,是想办法和CUDA兼容。这是AMD的ROCm/项目采用的策略。AMD的编程模型叫HIP,基本上是一个类似CUDA的东西。AMD提供了一套代码到代码转换的工作(),让程序员可以转换CUDA代码到HIP代码。

不能说AMD的办法不好,但一来AMD业务重点还是在CPU上,在GPU软件上投入不够大,二来兼容一个领先厂商而又做想做得更好,还是难度非常大的,看看AMD在CPU领域和Intel在过去30年中打得有多辛苦就知道了。所以最后结果是ROCm用得人很少。

所以总体来看,到2019年,这两条路都走的不太顺利。

ai软件怎么转换成cdr软件_.ai是什么软件_ai软件视频教程

3. 2020年的新进展

到了今年,基于标准的生态有不少动作。一个是6月份SYCL 2020推出,另一个是8月份 3.0推出。SYCL基本上等价于CUDA C++,就是单一源代码的C++并行编程的标准。所谓“单一源代码”的意思,就是在GPU上跑和代码和在CPU上跑的代码,可以写在同一个源代码文件里,而且都用C++来写,这个已经被证明是一个并行编程环境好用的基本要求了,所以很重要。有了SYCL之后,一方面并行编程的代码写法实现了标准化,各个厂商可以逐步支持,就能解决开发者写出来的代码只能在卡上跑的问题,自己的硬件才能卖得出去。另一方面,有了统一编程标准,各软件厂商和开源组织就可以在SYCL上面构建越来越丰富的软件库的生态。

这个方向,本质上是要实现AI基础软件领域,从单一供应商的垂直整合( ),走向多供应商的标准化和模块化()的过程。这一过程在很多产业都发生了,比如PC就是计算机的标准化和模块化,在PC以前,不同品牌的计算机上面的软件是不能通用的。

下图是SYCL/的一个基本生态图,可以看到很多东西已经到位了,SYCL-BLAS, SYCL-DNN这些库,以及这些框架支持也都存在了。

SYCL这个并不是新东西,在 2.x时代的时候,就已经有类似的。但是因为各种原因,没有被广泛采纳。所以 3.0的一个主要变化,就是把SYCL这样的模块单独成为标准,而不再是大标准本身的一部分。这样模块化的标准,应该可以更好、更灵活地被采纳。以下是一些已经存在的SYCL实现:

目前看起来,/SYCL的支持正在逐渐变得丰富,未来几年还是可以期待的。

4. 应用开发者、AI框架开发商、AI硬件开发商的选项

应用开发者:目前来看,如果你是使GPU进行云端AI模型训练和推理的开发者,暂时CUDA依然是唯一的选择。除了买N卡,没有别的选择,否则就是自己找罪受。

对于AI框架开发商、AI硬件开发商来说,当下可能问题就会更复杂一些。非CUDA的基础软件还比较弱小,支持他们看起来是投资回报率不高的事情;但另一方面,的供应商锁定的确让其它人的机会都变小了,而且长期会更小。所以支持非CUDA的生态,可能是谋求变化的长期的好机会。而2020年的非CUDA生态,可能值得再看一眼,是否值得投资。

作者:周枫 关于教育、深度学习、创业和有道的思考。

© 版权声明

相关文章

暂无评论

暂无评论...