曾经我们还在感叹充电桩不够多,而转眼间,我们已经聚焦于如何让车更“聪明”。技术发展的速度永远超出我们的想象,而一轮又一轮的技术范式迭代,也在持续演进中。近年来自动驾驶技术的飞速发展,给行业的各方参与者都提出了新的挑战。从高速到城区,场景的不断深入对自动驾驶芯片架构、算法、软件都提出了更严苛的要求,从L2到L4,数据计算量呈爆发式增长,从感知到决策,全链条的计算都在从传统的逻辑驱动转变为数据驱动。算法复杂度大幅提升,对芯片功耗发热、良率以及极端环境耐受力、对系统安全性的要求也水涨船高,自动驾驶芯片正在全方位地挑战半导体设计、开发、制造的极限。
这样的自动驾驶智能化变革也驱动着智能计算研究进入新的范式,自动驾驶芯片的“智能进化”时代已经走到我们面前。在2023年上海国际汽车展览会上,地平线正式亮出了其新一代BPU(Brain Processing Unit)智能计算架构——BPU纳什,这也是地平线布局未来5到10年的芯片底层技术创新成果。智东西有幸与地平线联合创始人兼CTO 黄畅博士进行了独家深度对话,进一步发掘了纳什架构背后的地平线技术护城河。自2015年成立以来,地平线BPU架构一直在持续迭代。可以看到,今天BPU纳什中的算法、BPU架构、编译器已经成为并驾齐驱的“三驾马车”,而地平线通过软硬结合的深度优化,对汽车智能化时代的计算架构给出了新的定义。
据了解,BPU纳什对大参数量Transformer、大规模交互式博弈进行了针对性设计,重点提升了前沿先进算法的运行效率,智能辅助设计的采用则提升了架构的可编程性,并且BPU纳什在超异构计算方面的表现也可圈可点。当下ChatGPT的火爆也不由得让我们关注到纳什架构在GPT模型支持方面的表现。在深入交流中黄畅博士特别提到,纳什架构的高度可拓展性,使得它能够支持在单颗SoC芯片上进行千亿参数级GPT模型的推理。实际上,ChatGPT的出圈恰恰给了所有芯片设计公司一个启示,那就是要时刻保持自身技术的灵活性,要能适应不断涌现出的新变化新挑战。
而纳什架构,恰恰具备了“智能进化”的特点。在黄畅博士看来,地平线通过算法、编译器、BPU架构设计三者相结合,经数据驱动实现自动化验证,一直在持续寻找智能计算架构最优解,这个过程一直是动态演进的。通过与黄畅博士的进一步深度交流,我们尝试深入到纳什BPU架构的算法、硬件架构、编译器等三大核心领域,发掘其究竟如何实现“进化与迭代”?新一代纳什架构又是如何在算法效率、灵活性和硬件效率等方面突破行业瓶颈,成为智能驾驶加速引擎的最优解的?
01.三年沉淀三百万片量产验证,BPU架构持续智能进化,瞄准城区自动驾驶
黄畅博士曾在演讲中抛出过一个精彩的观点,他说:“一个时代有一个时代的计算架构,智能计算架构BPU是先进技术的集大成者,是汽车智能化时代的最优选择。”
的确如黄畅博士所说,在自动驾驶这个场景中,算法实际上一直在持续演进,而与之相对应,最适合高效运行这些算法的架构必然也需要持续演进。自2015年成立至今,地平线BPU架构一直在持续迭代,从伯努利、贝叶斯到今天的纳什,而在这个过程中,自动驾驶行业对于算法的要求也在不断改变。2017年前后,轻量级、高效能的算法成为学术界主流,而这些算法也对计算架构提出的新挑战,地平线把握住这些学术界前沿研究成果,并敏锐地察觉到了这类算法在自动驾驶场景中的潜力,针对性地推出了第一代伯努利架构,其支持当时业界最优秀的轻量级网络MobileNet、EficientNet,并在硬件、软件层面进行了深度优化。时间来到2019年,第二代贝叶斯架构面对的则是更高等级的自动驾驶解决方案,例如L2+高速甚至是城区,需要解决时间和空间的融合、多传感器的融合、对未来的预测。面对这些挑战,贝叶斯架构选择在Warping、Vector、Softmax优化等方面进行了增强,从而更好地支持LSTM、BEV、Transformer这样的前沿优秀算法。
而今天纳什架构索要面对的,是自动驾驶场景从高速走向城区,包括越来越多的复杂交互规划算法、大量动态目标相互之间的持续博弈、不断争夺的路权。为此,纳什架构结合了类GPT超大规模参数模型,以及大规模、极其复杂的蒙特卡洛树搜索,这些都是智能计算发展的最新趋势。纵观地平线BPU架构的演进,我们可以鲜明地把握到一条主线:架构演进的核心驱动力是针对自动驾驶场景涌现出的新的关键问题,找到最优算法,并对这些算法,进行软硬件针对性优化。
正如黄畅博士所说,架构循环、持续的演进,源头来自于场景、应用拓展,来自于算法的演进,来自于编译器对问题的持续分析和优化,来自于对BPU架构的持续完善、补充和增强,这是完整的、端到端的系统性能和效率持续提升的过程。时至今日,地平线BPU架构历经从伯努利1.0到伯努利2.0再到贝叶斯的三代进化,已经积累了超过300万片的前装量产验证。这种产业的真实反馈,也印证了其架构持续迭代的旺盛生命力。黄畅博士透露,未来BPU架构的迭代将会向两个大方向发展,一个是实现城区自动驾驶,解决复杂场景中的博弈、交互规划问题;第二个就是针对大规模生成式AI模型,提供端到端的自动驾驶解决方案。想要实现这些目标,计算架构仍要持续进化优化。
02.八项核心技术升级,深入计算微架构革新,实现高性能低功耗兼得
在BPU架构的演化过程中,软硬结合是地平线的重要技术实现思路,具体来看这次地平线亮出的纳什架构,作为软硬协同“三驾马车”中的基础,纳什BPU的硬件架构这次进行了多方面的系统性升级,除了规模更大、架构更加复杂,计算单元也更加丰富,对存储、计算、数据总线带宽相关技术都进行了重点优化。
纳什架构首次加入了浮点向量加速单元,这一模块的加入,使得架构的可编程性、对于算法支持性进一步提升,能够让算法工程师们在更细的颗粒度上进行开发。
其次,通过虚拟化技术,纳什架构的一个物理的BPU核能够在应用过程中表现出多个虚拟化的核,这使得多任务的执行可以完全透明化。此外,纳什架构在功耗优化方面采用了数据驱动的方式,地平线深入到神经网络计算过程中的数据动态范围特性,利用数据分布特点来设计计算微架构,最终能让架构在计算过程中的动态功耗降低30%以上。在存储技术优化方面,纳什架构使用了三级存储架构,可以降低大规模参数下的带宽瓶颈,实现BPU核与核之间更高效的协同。
最后,多脉动立方加速引擎技术可以让引擎间的数据流动能效提升、带宽占用降低;数据变换引擎支持了Transformer细小算子;紧耦合异构计算单元能够加速不同类型数据处理,而多向数据流动技术则实现了计算动态调度与灵活调优。在深入交流中黄畅博士特别提到,纳什架构的规模并没有上限,具备高度可扩展性,所能支持多大规模的SoC可以根据厂商需求灵活调整。纳什架构能够支持在单颗SoC芯片上进行千亿参数级GPT模型的推理,甚至可以支持单颗芯片在5nm、7nm工艺基础上达到最高1000TOPS的算力,从而满足未来城区自动驾驶的需求。
03.算法与硬件的“融合剂”、“交响乐团的指挥家”——编译器
正如前文所说,BPU架构的迭代是“软硬结合”协同优化的过程。要在实际场景中发挥更多的硬件算力,不仅需要硬件架构的改进,还需要编译器的迭代升级。
为何编译器如此关键?实际上,编译器将算法转换成能够在BPU上执行的指令序列,并且努力寻求最优解,追求最大化效率和收益,包括寻求更低的延迟、更低的功耗、更低的带宽以及更高的处理能力。黄畅博士在演讲中曾作出一个精彩的比喻:“如果说算法方案的开发者是优秀的作曲家,编译器就是杰出的指挥家,而BPU计算架构就是一流的交响乐团。”曾经行业对BPU架构设计更多聚焦于硬件层面,但实际上,想要把硬件架构的能力发挥到极致,必须要在软件、编译器方面做大量工作。因为如何把模型转换为对硬件架构来说最好的指令序列,是非常关键的问题,编译器做的恰恰就是这件事。这次在编译器技术方面,地平线保持让工具链的前端直接对接业内最主流的深度学习框架,比如TensorFlow、PyTorch,从而让开发者可以无缝的的从行业开源主流工具迁移到地平线的工具,保持对开发者社区的高度兼容性。
其次,从规则式编译方法到Policy Network的升级,提升了决策速度和编译速度,据称在保持相同性能情况下,编译性能可以最高提升10倍左右。这其实解决了算法工程师面对的一个突出痛点问题:目前大规模复杂模型编译往往耗费时间过长,长则一个多小时,很多关于算法迭代想法就不能得到很好的验证,编译速度的大幅提升,无疑成为算法工程师们的福音。此外,地平线在编译器中加入了增强学习框架下的Value Network和蒙特卡洛树搜索,以提升编译的结果以及最优的性能,目前这些技术的融入能够带来20%以上编译的性能提升。
值得一提的是,编程范式的改进也是此次编译器升级的重点之一。新一代编程范式中的DSL部分,可以将基础的BPU算子用轻代码的方式整合在一起,去设计一个全新的算子,完成复杂任务,包括模型间的调度、前处理、后处理。而编程范式中的HPL,则可以提供像Numba或者Triton一样的底层细粒度计算编程方式,让开发者用C语言或者Python代码去描述想要实现的计算功能,从而提供CUDA级别的编程能力。
通过底层技术创新,地平线解放了算法工程师,让他们可以实现低代码编程、细颗粒度编程。这些改进的核心目的,就是将更多计算任务放在更适合的BPU上进行,从而加速计算过程,同时减少数据在BPU和CPU之间的搬运,提升了整个系统的计算效率。纵观地平线纳什架构在算法、硬件架构、编译器等方面的技术创新,我们可以看到地平线在很多细节设计上的用心,要知道,在芯片架构设计领域“把细节做好”,是一件需要深厚积累的事情。
黄畅博士告诉智东西,地平线长期在实际用例中持续分析短板、缺陷,并进行针对性微架构设计改进,这些一点一滴的积累,最终形成了地平线对行业痛点问题的精准把握。地平线的优势不局限于单点硬件、软件技术的突破,还包括与车企客户长期实践的积累的“行业Know-how”,这些经验不断叠加融合到硬件架构设计的平衡以及与算法、软件的协同优化中。通过软硬结合的方式做芯片,地平线可以让硬件设计更有针对性,在必要的地方做简化,让软件以更巧妙、灵活的方式解决原本被限制在硬件层面的问题,从而解决更棘手的行业痛点。
与此同时,地平线在算法领域的前瞻性深入研究,也可以进一步放大这种软硬结合的优势,编译器可以更好的弥补硬件的短板,在硬件架构设计和软件算法之间找到理想的平衡点。这些都是地平线的核心优势所在。在黄畅博士看来,目前行业都意识到“数据驱动”的重要性,但实际上算法、编译器、硬件架构都需要通过数据驱动的方式进行优化迭代,这才是真正的“智能计算架构”。芯片架构才真的可以实现“智能进化”。
04.自动驾驶芯片圈“一股清流”,地平线为何坚持“Arm+Android”模式?
今天的地平线正作为自动驾驶行业大生态的关键节点,通过自身的努力,产生连锁效应,催动整个行业生态更加繁荣,而这必定离不开优秀商业模式的加持。
在过硬的算法、硬件架构、编译器技术能力之上,地平线还提供了更开放的商业模式。通过开放软件IP授权、BPU IP授权等多种方式,地平线正在打造一种属于智能汽车时代的“ARM+Android”模式。从芯片、工具链到参考算法,地平线向车企和产业链伙伴开放这些智能驾驶软硬件技术,从而帮助他们更高效地落地差异化的智能驾驶方案。实际上,这种商业模式在当下是有着强需求的。在自动驾驶领域,计算呈现集中化趋势,芯片越来越少,功能越来越集中、越复杂,做芯片的难度也变得更高。但对自身差异化有强诉求的车企,都会有做自研SoC的需求。车厂要自己去定义SoC,目前CPU、GPU有成熟的IP,但是NPU的三方IP却几乎找不到,各家汽车都有自己的电子电气架构,芯片公司提供的“标品”并不能很好地契合每个车厂的各自特性。车厂自己开发NPU IP,投入的财力、人力和时间都是不可估量的,且需要大量时间试错、积累,也很难短时间内在这一领域达到足够深厚的认知和理解。
地平线如今将核心的BPU IP开放出来,正是顺应了车企日益迫切的需求和主张。除了BPU IP授权模式,地平线这次还正式发布了智能驾驶应用开发套件踏歌OS(TogetheROS·Auto),通过多模块协同开发,解决行业中多供应商协同开发的困难,据称可以将开发、集成、验证效率提升200%。简单来说,踏歌OS的意义就是帮助车企减少“重复造轮子”的工作。在黄畅博士看来,踏歌OS是地平线多年技术迭代后,逐渐积累和形成的一套智能解决方案,它更加从汽车系统的视角看问题,强调智能化功能的实现。正如在机器人领域成熟的ROS平台一样,踏歌OS实际上就是地平线提供的一套符合车规可靠性、安全性的类ROS开发平台。
黄畅博士谈到,地平线的初心,就是做机器人时代的大脑。从软件和硬件层面支持和服务好机器人智能化功能开发、部署和应用,在自动驾驶领域也是如此。因此地平线在硬件、软件层面都要保持更开放的态度。做自动驾驶领域的“Arm+Android”或“Wintel”,地平线的目标着实不低,但地平线商业生态的繁荣恰恰印证了其商业模式的成功。根据官方数据,目前地平线已经连接的硬件Tier-1、ODM、IDH、芯片、图商、传感器等上下游产业伙伴已经超过了100家,而征程系列芯片出货量已经突破了300万片,其中征程5出货量已经突破10万片,获得了理想、比亚迪、蔚来、埃安等新势力和新实力车企近20款车型的量产定点。值得一提的是,目前自动驾驶行业中做芯片的公司很少将IP进行开放授权,因为客户很可能也会是竞争对手,但地平线选择打破常规。与其谈竞争,这群人看到的更多是如何推动技术迭代达到理想状态,如何带给用户真正优秀的智能化驾驶体验。或许,推动技术进步体验升级、让更多消费者愿意买单,把市场共同做大、取长补短,才是地平线的生存之道。
05.结语:深耕“软硬协同”,地平线给出智能计算架构创新新范式
算法领域的前瞻性布局、在硬核技术创新层面的深度扎根,对于软硬结合优化的深刻理解和执着坚持,以及多年来积累的行业Know-how,都成为了地平线在智能汽车产业激荡变革时代的坚实技术护城河,也推动着自动驾驶行业迎来智能计算架构的范式革新。而开放合作的商业模式,则让地平线的技术生态不断开枝散叶、茁壮成长。如今的智能汽车行业,热闹非凡,新玩家、老玩家、跨界玩家交织在一起,不断碰撞出新的火花,技术也在不断进步,商业模式也在快速迭代。随着生成式AI的入局,智能汽车产业或许也会迎来新的变革。可以肯定的是,汽车产业正经历百年未遇的大变革,自动驾驶正向着全场景自动驾驶时期快速迈进,这所有行业参与者来说,既是机遇也是挑战。