这里我们已经尽量尝试采用简单的语言来描述这些发布项,不过由于其跨界甚广,加上如果并没有从事基于NVIDIA的相关开发工作,其中的很多营销词汇可能很难搞清楚是什么。但至少有一点是很清楚的,即大部分发布的都是软件,包括SDK、预训练模型、优化编译器、3D制作流程协作平台,面向的都是开发者。这分明就是一场软件技术发布会。针对其中的某些部分,还将在下文做更多解释。
除了“软件”这个关键词,充斥整个主题演讲的另一个关键词,以及当前NVIDIA特有的企业属性就是“通用”。这场主题演讲除了前1/3用于表述NVIDIA GPU在图形计算方面的持续彪悍,后2/3说的都是将GPU应用于HPC(高性能计算)——AI只不过是HPC的一部分而已,因为AI实在是HPC分支中一个格外庞大的市场,NVIDIA为其特别开辟了专门的战场。
NVIDIA HPC For Arm服务器参考平台,包括8个V100 Tensor Core GPU,NVLink互联,4 x 100GBps Mellanox InfiniBand
NVIDIA针对HPC的其他应用领域的支持力度还在持续投入,包括上面提到的全基因组测序、5G vRAN,前者在NVIDIA这里叫做“Parabricks Genome Processing on CUDA”,后者名为“Aerial 5G RAN on CUDA”。而除此之外,在NVIDIA HPC For Arm这个HPC服务器参考平台得以建立之后,NVIDIA产品的通用性显然还在持续扩张,这些都建立在CUDA编程的基础上。
想必即便是GPU步入可编程时代起,NVIDIA也从未想过自家的GPU或其他HPC硬件现如今能做这么多事,完全没有囿于图形计算那一亩三分地。即便当前NVIDIA的营收版图中,游戏市场仍有着过半的贡献,更多HPC应用场景,以及AI应用真正成为NVIDIA的营收支柱大概也只是时间问题。
在上述罗列的发布和分享内容中,为数不多的纯硬件应该就是NVIDIA DRIVE AGX Orin机器人与自动驾驶处理器了。从配置上来看,CPU部分是Hercules Arm64架构,另有INT8算力为200 TOPs的CUDA Tensor Core GPU + DLA(深度学习加速器);PVA(Programmable Vision Accelerator,可编程视觉加速器,这是一种视觉计算单元,着力在Feature Tracking特征追踪)算力5 TOPs。更多配置情况见上图。
实际上它就是Xavier的升级版,不过据黄仁勋所说,其性能是Xavier的7倍。不过在我们看来,这些并不算重点。Orin真正的重头戏在CICD(持续集成和持续部署),或者软件定义上,“我们要实现软件定义。”“运营一个车队,我们要不断给它提供新功能。CICD对于未来而言非常重要,尤其是物联网。”“硬件一次出货,软件维护不断丰富AI功能。”
“开发者可以通过软件来定义自动驾驶汽车。开发的软件能够持续用在Orin上。”黄仁勋说,“我们希望同样的架构,软件更全面,可升级。一个架构可以从L2到L5完全兼容。”而且Orin在软件上与Xavier是可兼容的。这里“一个架构,软件定义”的特性如上图所示。它所表现的也是如今根植在NVIDIA基因内部的“通用性”,与现如今许多AI芯片,比如特斯拉自己的FSD正在追求的“专用性”根本不同。[2]
这类方案大约会牺牲一定的能效,但对于客户的开发友好性,以及开发持续性会有更加的价值;NVIDIA的开发生态亦成为在市场上竞争的大杀器:这是现在任何AI芯片制造商都不曾具备的资源。Orin的投产计划要到2022年。
NVIDIA DRIVE AGX Xavier,传说中的AI汽车计算机
庞大的开发生态帝国
黄仁勋在主题演讲中演示《我的世界》游戏加入RTX效果时,现场还是响起了阵阵掌声。RTX采用实时模拟光纤、反射,以及各种材料与光之间的互动,让游戏以及类似设计开发3D模型显得更加生动。有款名为《光明记忆:无限》的游戏,据说是一个人开发完成的,“以前没有一支专业团队是不可能实现的,现在有了RTX,一个人就可以了。”黄仁勋说。体现在开发者世界中,这并非硬件的胜利,而是软件的胜利。与其说在开发者眼中,“一个人就可以”完成这样一款作品,不如说NVIDIA为开发者在软件层面完成了更多的工作。
《我的世界》即将引入RTX光线追踪
软件在个中更能体现魅力的一点,大概在于CUDA已经到了10.2版本。“如今我们有500多个库,在不需要改换硬件的情况下,通过软件、库的完善,就能让计算机整体性能提升4倍。”这一点说的是在DGX-1平台上训练RN-50模型,NVIDIA给的数据是在2017年时,训练时间还需要8个小时,但今年由于软件层面的提升,就只需要2小时了。而在Tesla T4之上执行RN-50模型的Inference吞吐,2019年相比2018年提升了2倍——这也纯粹是软件栈层面的功劳,硬件保持不变。
就图形与AI计算来看,大约在地球上也很难找出另外一家在软件生态上能够与NVIDIA相提并论的企业。黄仁勋在主题演讲开场说了这样一段话:
“加速计算是一种全栈的技术,为了充分利用这样的技术,我们必须重做各种各样的工程,从设计、算法,到系统软件、工具、应用。在生态系统打通之后,我们也将世界上最重要的一些应用做了更新。NVIDIA一直是一个系统架构的企业,我们有统一、开放、可靠的架构,让开发者在此基础上去开发软件。”
许多AI芯片公司的发布会,都尤其喜欢拿NVIDIA的GPU产品来对标性能。然而以Xavier、Orin,以及包括NVIDIA不同平台在内的产品组合来看,NVIDIA似乎都正在GPU通用计算这条路上越走越远,软件生态、统一架构的持续完善就是其中的一部分。绝大部分AI芯片制造商如今的开发生态,还停留在对主流高层机器学习框架的支持,以及SDK各部分的完整性问题上。在这种情况下,以专门的AI芯片来比GPU(或Tegra处理器)能效与性能,其实际价值又有多大?用黄仁勋的话来说:“我们的产品涉足的领域多太多了。”
鉴于篇幅关系,我们无法将GTC China大会罗列的所有软件栈更新做详细展开,这里列举几个我们看来比较重要的,也可体现NVIDIA的开发生态已经步入到怎样一个阶段。首先是TensorRT从5更新到了7:TensorRT是一种graph计算图优化编译器,输入部分是模型(TensorFlow一类的深度学习框架训练得到的模型),以CUDA GPU生成优化过后的模型运行时(runtime)。
更早版本的TensorRT 5主要支持的是CNN(卷积神经网络),而TensorRT 7则开始对RNN(循环神经网络)提供支持,更适用于语音语言模型、推理。“TensorRT 7能够融合水平和垂直方面的运算,为开发者设计的大量RNN配置自动生成代码,逐点融合LSTM单元,可跨多个时间步长进行融合。”“相比于TRT 5只支持30种变换,TRT 7能够支持1000多种不同的计算变换和优化。”
除了TensorRT更新外,这里再提NVIDIA开发生态的两个关键更新:
1. 推出DRIVE预训练模型
DRIVE实际上是NVIDIA的自动驾驶、机器人开发平台之一,与DRIVE并列关系的几个机器人平台(或SDK)还包括了Jetson(通用型机器人)、Clara(用于AI医疗器械的)、Isaac(用在非结构化环境中的导航和关节活动控制)。DRIVE本身又是“软件定义的自动驾驶平台”,其整体框架如下图所示。
这里再次强调“DRIVE AV平台是软件定义的,并非固定功能的芯片。这样可以实现大量开发人员按照CICD的开发方式进行协作。”这次推出的DRIVE预训练模型,是由NVIDIA开发的感知模型,用于检测、分类、跟踪和轨迹预测;另外还能用于感知、本地化、规划是制图。黄仁勋说,这些模型是用“最高质量标签数据”做了上千上万小时的训练得到的。
与之配套的,NVIDIA引入了“DRIVE迁移学习”,针对OEM特定汽车、传感器和具体地区要求,预训练模型可做调整。迁移学习工具可对模型做再训练,并利用TensorRT进行再优化。
除此以外,NVIDIA还提供“用于联邦学习(Federated Learning)的系统”,用于多个组织、公司在“不移动或数据共享的情况下进行合作”。所有合作伙伴在预训练模型的基础上,用自己的数据训练模型,按照统一的标准做标记。所有参与者只需要共享用于创建新模型的权重,在所有合作伙伴间共享新模型。