伴随AI大时代一起来临的,还有NPU。
高算力、多样算力需求推动了芯片物种大爆发,NPU就是代表之一。你可以在很多支持AI应用的处理器或SoC中发现它的身影,比如苹果A15、特斯拉FSD、地平线征程系列、OPPO、马里亚纳X芯片等。而不止这些规模大、性能高的SoC芯片,甚至一些微控制器、应用处理器也开始集成NPU模块,以满足智能终端、智能边缘的需求。
一些趋势正在发生:智能驾驶、自动驾驶的算力需求不断“卷”出新高度; ChatGPT等生成式AI引爆的算力需求将从云端传导至边缘、端侧……
未来,NPU会因AI达到什么样的高度?
ChatGPT大潮下,NPU的空间变大了
NPU(Neural-network Processing Unit,神经网络处理器),作为一类基于DSA(Domain Specific Architecture)领域专用架构技术的处理器,相比于CPU、GPU等通用处理器,从硬件架构上可以说就是为AI而生的,因此更适合于神经网络运算,可专用于给AI做硬件加速。
不过,在AI大潮的裹挟下,各类算力芯片纷纷进行升级。GPU、FPGA自不必说,还有Arm v9、x86 CPU等都注重AI/机器学习方面的能力提升……
这同时也带来一个问题:随着异构计算平台中,各类处理器所能提供的AI能力不断增强, NPU一直强调的高能效,领先幅度会不会缩小?它未来的发展空间会受到影响吗?
安谋科技产品总监杨磊认为,各类处理器确实都在顺应AI趋势进行升级,这是一个相辅相成的过程。背后有市场需求的提升,有强烈的AI诉求,其实是把基础算力市场的蛋糕变得更大了,这是从根本上推进不同产品向前演进的核心驱动力。
其次,应用需求会越来越丰富,包括成本、性能、功能特性等核心指标,很难通过一种方案或一种架构去满足所有,还是需要各类处理器的创新联动,以更高的异构水平来满足市场的诉求。
以ChatGPT为例,它其实催生了对算力需求指数级的提升。“云端的需求早晚会传导到端侧,而端侧的CPU能力是不足以负担的。当这个需求下放下来之后,NPU可以发挥的空间其实更大了”,杨磊谈到。
安谋科技NPU研发高级总监孙锦鸿告诉<与非网>,AI最终要走向通用、去赋能千行百业,这是一个确定的方向。目前看来,ChatGPT千亿级别的训练参数已经非常庞大了,如果要把它推到端侧应用,一方面,需要进行一些裁剪;另一方面,也要求NPU架构的升级迭代。ChatGPT的基本结构是基于Transformer模型,从算子角度来看,除了MAC算力,还需要关注到其他的运算要求,而这都会给算子提出新要求,也需要NPU架构上的更新,去更好地满足这类大模型应用的需求。
“自研NPU”为何受推崇?
在所有内置NPU模块的处理器或SoC芯片中,越来越多的厂商走上了“自研NPU ”这条路。文章开头列举的一些芯片之外,近期值得关注的一件事是:NXP在它最新的应用处理器i.MX 95中,放弃了第三方NPU IP,转而采用自研的NPU IP进行片上AI加速。
自研NPU的风潮已经席卷至嵌入式领域。
对于这一举措,NXP方面表示,这是其加速器产品和业务战略的一部分。一方面,有了硬件NPU IP,意味着软件开发环境可以成为其AI加速芯片部件的统一因素。另一方面,AI工作负载和模型仍处在快速的动态发展中,这会导致对软件的依赖度增大,而硬件产品则必须要与之相匹配。
不论是从软硬件协同设计、打造更好的差异化优势,还是从生态布局等因素出发,NXP的做法也代表自研NPU厂商的普遍心态。
NPU研发难在哪里?
对于试图布局NPU研发的厂商来说,一个首要的门槛是人才,需要对软硬件全栈进行投入,包括IP开发、SDK开发等。
其次要明白:与CPU、GPU等通用处理器开发相比,NPU最大的开发挑战是什么?
对于CPU来说,更注重的是控制流,用更高的频率去处理新数据,它强调的是通用的控制化和兼容性,兼顾面积、功耗、内存管理等设计。CPU的编程语言经过多年发展,接口已经非常符合现在的编程规范和编程习惯了,能最快地进行算子的分析。
GPU则是去掉了CPU的控制流方式,用更简单的控制流实现更并行的数据流,在软件层面、硬件层面都更注重并行扩展的能力。英伟达的CUDA已经建立起了丰富的生态,不过它更偏向通用方式去解决问题,AI运算的效能提升较难。
结合以往处理器的优缺点,孙锦鸿认为,NPU IP的开发从一开始就要注重两个基本点:
第一,要提供相对简单的控制流,实现定制化算子的并行数据处理,从而最大提高利用率。第二,是友好的编程接口,在高效处理AI数据的同时,要容易落地,同时也要考虑定制化编程的需求。
他以安谋科技新一代“周易”X2 NPU采用的第三代“周易”架构的优化方向指出,新架构更注重并行性和可扩展性,核心的设计思想就是在指令和数据处理单元的同构计算中,做到了最大并行。如果是异构,会将数据的Graph OP、channel、batch几个纬度做并行,在同构和异构单元里得到统一。在此基础上,再扩展核和Cluster,通过不同颗粒度的并行性来实现整体架构的强扩展性。然后,再通过统一的OpenCL界面把不同扩展性的计算单元、不同的核通过统一的编程方式,提供一致的用户体验。
而之所以强调架构的可扩展性,因为AI的模型、算子都在快速发展中,就以ChatGPT以及汽车领域常见的Transformer模型为例,其结构灵活,需要NPU架构具备相当的灵活性和高速的运算效率,同时考虑到未来网络变种带来的新设计要求。只有做好扩展性,才能应对这些动态的挑战,在此基础上高效发挥算力的效能。
NPU IP将走向何种模式?
统计国内过去一年60个NPU芯片项目发现,其中约55%(33个方案)用的都是自研NPU,剩下的项目采用了包括“周易”和其他的第三方IP。这意味着,样本数据中一半以上的市场都被“自研”拿下,这对独立的NPU IP企业来说,无疑是挑战。
“这确实是一个很现实的问题”,杨磊有感而发地说,“我们分析了大量自研NPU的诉求,其实可以分为两类:一是来自用户端的差异化诉求,希望可以实现独到的创新点;二是芯片厂商希望结合特定的应用场景做专门的优化。”
不论是从产业链哪一环的需求出发,自研NPU都有其必要性。不过,这其中存在一些“重复造轮子”、造成产业资源浪费的工作。比如在一些AI应用中,如结构化的检测、识别、分割等等,其实底层的开发工作很相像。
此外还有部署方案时,由多种硬件带来的软件移植的工作量。因为各家的方案都不太一样,提供的软件工具链也不一样,因此在软件开发和移植时,存在大量的额外工作。
在杨磊看来,就像CPU的发展历程一样,NPU的方案类型最终也将走向收敛,且随着应用的增加,生态力量会越来越强。
“我们也在思考和改进IP商业模式本身。传统的IP模式是做一个标准版本授权给用户,现在我们也在考虑一些定制化的需求,通过定制化IP来满足特定需求”,杨磊表示,“除了商业模式,软件生态的建设是未来的重点,因为NPU承载AI专用的加速功能,不同应用场景侧重的方向会有不同,因此要考虑定制的、垂直场景的需求。”
“周易”X2 NPU就已经在支持自定义算子、满足各种模型部署需求的基础上,开始面向各类应用场景提供定制化AI解决方案,以进一步满足客户在智能驾驶、手机影像AI处理、人机交互等场景中的差异化需求。
值得注意的是,安谋科技在“周易”X2 NPU推出的同时,宣布了NPU软件开源计划。根据这一计划,安谋科技第一步将开放NPU中间表示层规范、模型解析器、模型优化器、驱动等,并向相关合作伙伴提供“周易”Compass软件平台,包括软件模拟器、调试器、C编译器等在内的多种软件工具。后续还将逐步开放更多资源,如模型量化、算子实现等源代码。
“当前,整个NPU的硬件平台其实是极度碎片化的,几乎每一家硬件供应商都有自己的软件工具链,当它们提供给应用开发者来使用时,对应的是极其复杂和繁琐的部署和移植工作,也极大地增大了应用开发的创新代价”, 杨磊谈到,“在这样的现状面前,开源就成了一个产业和用户需求驱动下的决定。”
一方面,NPU芯片厂商在开发设计时,对软件编译器、调优工具等有着明确的开源诉求。另一方面,当面向最终的应用场景,开源的诉求也越来越明显。特别是在汽车领域,一些算法、数据相当于是“黑盒”,这就需要NPU尽可能开放,才能推动更好的合作互动。
当真正走向开源之后,直接受益的首先是软件开发者,以满足应用移植和部署时对白盒开发的需求,大约可节省50%的工作量;其次,开源便于跨越不同的硬件架构,共建开源的统一的软件生态,也有利于AI生态的整体发展。
NPU的应用场景在哪里?
NPU的突出优势就是运行AI算法的效能——而这往往在小型终端上更受重视。这是否决定了NPU的主要应用场景就是在端侧或边缘侧?它有进军云端市场的潜力吗?
在杨磊看来,端侧、云端市场其实都对NPU有强烈的诉求和应用空间,不过,NPU先将端侧市场作为切入点,再布局边缘计算。目前的市场需求已经足够丰富,小到录音笔、点读笔、手机,大到ADAS辅助驾驶、自动驾驶,已经给了NPU足够的施展空间,但是从技术路线和架构的演进方向上,未来也会考虑云边端一体的可能性。
在安谋科技最新发布的“周易”X2 NPU中,就展现了这样的趋势:支持多核Cluster,支持宽泛的算力,从10TOPS-320TOPS;支持int4/int8/int12/int16/int32,fp16/bf16/fp32多精度融合计算,计算效率与计算密度得到了提升。
写在最后
所有落地的AI应用中,都需要硬件上的算力支持。就比如火热的自动驾驶,随着汽车中摄像头、毫米波雷达、激光雷达,以及超声波雷达等环境感知传感器的增多,自动驾驶系统收集的传感器数据将会更多,对自动驾驶计算芯片的算力要求将显著提升,这对NPU是一个大市场。不过,越是如此,NPU越要深刻理解市场的要求,才能真正抓住机会。
当然,AI生态也不止NPU一个环节,不论是开源,还是其他跨越产业链上下游参与者的合作,都有助于打破AI的落地难题,有益于AI的生态繁荣。