我回国之前,和我的博士导师深聊了一次。

 

问了他一个问题,现在FPGA领域最热门的研究方向都有哪些?

 

他一脸坏笑的说:我必须说机器学习,是吧……

 

没毛病,机器学习也好、人工智能也好、神经网络也好,的确是现在最火热的研究方向。就连FPGA这个小众领域,在最近几年的国际会议上,也有大把大把的AI相关的论文。这在五六年前是很少见的。

 

更不用说其他芯片和硬件领域,特别是AI血统更加“纯正”的GPU、以及人工智能专用芯片,近几年更是有大量工作和创新不断涌现出来。

 

如果我们站在三万英尺高空,去俯视这些和AI相关的研究和工作,大致可以把它们分成三类:

一类是对数据的挖掘和分析,一类是对算法的改进和创新,一类是对硬件的思考和重构。

 

就算对AI的技术细节一无所知,应该也会知道驱动AI发展的三驾马车:数据、算法和算力。

 

我们可以再飞的低一点,去重点看看人工智能硬件的发展。这时就不难发现,人们对算力已经开始有了不同的需求。

 

如果你要做训练,那就追求绝对的高算力。没有什么事情是一张英伟达A100 GPU板卡搞不定的,如果有,就再来几张。甚至可以搞个数据中心,放成百上千张GPU,让他们的算力一起咆哮。

 

不过咆哮的喧嚣背后,是同样咆哮的功耗和成本。要知道,5个DGX A100系统组成的一个机柜,成本100万美元,每小时消耗28kw电力。这显然不是每个人都玩得起的。

 

相比之下,做推理的人却有着不同的追求。我们之前曾经介绍过,推动技术发展的动力,不是技术本身,而是需求。芯片行业发展的本质,就是不断发现需求、满足需求、创造需求的循环。

 

我们不是不能用A100来做移动端的推理,而是没有足够的预算、没有足够的供电、没有足够的面积,而且它的算力远远超过我们的需求。

 

高算力固然很香,但实际应用里需要更多的,却是低延时、低功耗、高灵活,以及完整的生态。

 

推理应用有着更加广泛的应用场景,人们更多关注的是用训练好的模型解决特定的问题、设计自己的算法、开发自己的产品。还有同样重要的,就是不能重复造轮子,能拿过来直接用的东西就拿来直接为我所用,越能快速整合现有的模块,就越能专注于自己的创新,并且越能尽快把自己的产品推向市场。

 

所以说,推理和训练,在本质上有着不同的游戏规则。

 

明确了游戏规则,一切就豁然开朗了。我们需要这么一种硬件,它主要针对边缘计算的推理应用,在兼顾算力的情况下,同时拥有低功耗、低成本、高灵活、完整生态的特点。

 

事实上,真正的主角并不是硬件本身,而是在它上面运行的五花八门的创意应用。普通人或许永远也没办法拥有一百万美元一台的性能猛兽,但可以在这个硬件平台上实现自己思考已久、而且兴奋不已的大想法。

 

结果,这个需求又被英伟达看到了,并且由此推出了名为Jetson的边缘AI平台。

 

事实上,Jetson并不是某种芯片,而是以板卡的形式存在。Jetson也不是某种单一类型的板卡,而是多种板卡组成的产品组合。从这个角度来看,也说明边缘计算这个赛道更加细分、更加碎片化。但如果你的嗅觉足够敏锐,也说明这里有着更多超车和创新的机会。这和AI训练一言不合就拼算力的粗鲁相比,有着本质区别。

 

Jetson系列的一个主要特点,就是采用了模块化的设计,而且使用了SoM(System on Module)的设计思路。在当前嵌入式开发板的设计领域,SoM的集成方法已经越来越主流了。它最主要的特点,就是把核心板和母板分开设计,来满足不同应用场景的需要。

 

比如我们要做一个智能小车,就可以把所有和车有关的模块都做成“母板”,包括各种接口、电机、传动、传感器等等,而所有和计算相关的模块就可以直接用这个SoM核心板,两者通过统一的接口和引脚相互连接。

 

这样当后期需要进行升级的时候,直接换一个引脚和外形规格兼容的SoM核心板就可以了,不用换整个系统,方便。

 

Jetson最入门的产品,叫做Jetson Nano,它应该也是这几个产品里可玩性和性价比最高的。它集成了四核ARM Cortex-A57 CPU,128核Maxwell GPU,核心板满级70mm x 45mm,并且提供了5W和10W两种规格。

 

说到这里,就不用再多介绍了,毕竟这么低的功耗,还要什么自行车?

 

事实上,性能最高的Jetson AGX Xavier系列,最大功耗也只有30W,也有10W、15W的选择。作为Jetson系列的扛把子,Xavier集成了8核ARM v8.2 CPU、512核Volta GPU、64个Tensor内核,最高可以提供32TOPs的峰值算力,以及750Gbps的高速I/O能力。这样的性能背后,只有100mm x 87mm的尺寸大小,所以特别适合用于工业级的边缘计算场景。

 

前面刚说完,模块化设计的好处之一是方便升级换代,例子就来了。在11月结束的GTC大会上,英伟达发布了Jetson AGX Orin,它基于Ampere架构,和Xavier保持了相同的外形尺寸,并且两者相互引脚兼容,但算力却提升了6倍,达到200TOPs。

 

 

之前我们说,和算力相比,我们更关注功耗和成本,这或多或少都有些不甘和无奈,毕竟谁不想鱼和熊掌同时兼得呢?但现在既能实现小尺寸和低功耗,又能获得大算力,这就让更多之前想但又不敢想的创意可以得到实现。至少算力、尺寸和功耗,不再是主要的制约条件了。

 

借用英伟达副总裁兼嵌入式和边缘计算总经理Deepu Talla的话:

Jetson AGX Orin 让85万名Jetson开发者和6000多家在其基础上构建商业产品的公司,能够创建和部署以前不可能实现的自主机器和边缘AI应用。

 

在我的理解中,这里的“自主机器(autonomous machine)”,并不是那些具有完全自主意识的“智能机器”,而是能根据具体的需要,自动决策并完成特定功能的机器。

 

所以,归根到底,还是各种需求。我们不需要做一个华而不实的水晶宫或空中楼阁,我们需要的是能解决实际问题、并且能解放人类劳动力和创造力的“自主机器”。如果非要给这个结论加一个限定条件,那就是有限的预算和资源,毕竟无限魔法的时候我们会无脑一直放大招。但在现实生活中的绝大部分情况下,这个限定条件都是满足的。

 

说完了硬件,照例要再说一下软件。

 

在说软件之前,首先要说一下英伟达的“套路”。

 

英伟达的GPU在人工智能时代大获成功的主要原因,不仅有GPU本身的因素,更是因为它让广大开发者用起来了。不管是芯片、还是什么别的产品,只有有人用,才能不断发现问题,也才能不断解决问题、不断优化,然后才会吸引更多的人用,从此形成正反馈。

 

除了前面说的需求循环,这个“使用-迭代”循环,也是驱动产品与技术发展的重要力量源泉。

 

由此我们不难想象,Jetson也有着英伟达提供的统一软件堆栈,名叫Jetpack SDK。作为Jetson平台的“灵魂”,它包含板级支持包、Linux操作系统、CUDA、一系列GPU加速库,以及用于视频分析的DeepStream SDK、用于机器人开发的Isaac SDK。

 

 

在硬件设计的时候我们不想重复造轮子,在软件设计的时候也是这样。用这些现成的加速资源,就能大大加快开发过程,并且让开发者专注于创新本身,而不是把时间花在搭环境上。

 

在这个“使用-迭代”循环里,最重要的就是人。用户、开发者、厂商,都是这个循环里不可或缺的部分。为了创造解放劳动力的“自主机器”,就必须先投入劳动力构建生态,然后再放手让它自由生长。

 

说白了,生态为王。

 

前面说了算力与算法,其实现在人们的视线已经开始更多聚焦在数据身上了。

 

这不仅因为仍然有海量数据尚未得到充分的挖掘和有效利用,更是因为数据本身的质量也有很大的提升空间。

 

吴恩达曾经说过:

我相信AI社区很快就会像对待构建模型一样,对系统性地改善数据产生兴趣。

 

这也是为什么有这么多的公司,开始构建“以数据为中心”的软硬件布局的本质原因之一。

 

值得一提的是,英伟达发布了用于Isaac Sim的NVIDIA Omniverse Replicator。它可以根据开发者的要求,实现随机、受控、且有界的数据集,也就是让数据本身更有意义,从而让训练过程更有针对性。

 

小结

 

曾几何时,人工智能只是科幻电影里想象。如今,它不仅成为了现实,更是把算力、算法、数据一步步分成了更细的研究领域。

 

我们曾经还在性能与功耗、面积、成本之间纠结,不过照现在的发展势头,这样的纠结或许很快也不需要了。

 

成年人的世界里,没有选择题,我全都要。

 

(注:本文不代表老石任职单位的观点。)