自动驾驶的算力论剑
2018-12-12黄耀鹏
黄耀鹏
6月底的时候,美国超级计算机“Summit"(顶点)终于以200P(20亿亿次/秒)的峰值运算能力,超越中国超算神威-太湖之光,拿回了失去5年的世界第一。
Al芯片的算力比拼
超算的算力“军备竞赛”似乎正在延伸到AI芯片上。算法、数据和算力,并称为新AI时代三大驱动力。如何在追求更好性能的同时实现低功耗、低延迟和低成本,逐渐成为摆在所有AI从业者面前的艰巨挑战之一。
百度在7月4日的AI开发者大会上,与自动驾驶平台Apoll03.0-起发布了“昆仑”AI芯片百度CEO李彦宏称,这是中国首款AI芯片,也是全球范围内算力最高AI芯片,号称IOOW的功耗下实现260Tops(万亿次/秒)算力。
百度自己当然没有芯片生产能力,该芯片为14nm制程,内存带宽达到了512GB/s,由三星代工。不过,“昆仑”核心数有数万个,体积和功耗都不适合车规,其潜在部署方向是云端。
作为对比,英伟达(NVIDIA)自认为已经在自动驾驶AI芯片执牛耳。英伟达自2015年开始推出DrivePX系列,第一代PX算力2Tops,而深度学习算力2.3Tops,其长项在于处理图像。至于英伟达自身,今年推出Drive Xavier,算力达到30Tops,但算力功耗比仍然在红线内。
具有讽刺意味的是,没有紧跟军备竞赛脚步的Mobileve,反而是自动驾驶领域视觉处理最领先、市占率最高的公司。
2010年Mobileve的EyeQ2算力仅为0.026Tops,功耗2.5w; 2014年发布的EyeQ3算力0.256Tops,功耗为2.5w;2015年的EyeQ4浮点算力2.5Tops,功耗为3W。而计划2020年量产的Eyeos浮点算力将达12Tops,功耗却限制在5W。
因为昆仑不符合“车规”,英伟达拿到了算力第一的桂冠。但实际上PX系列并无车规经验。虽然一众自动驾驶公司在新项目的研发时,往往首选英伟达的开发版,实际上PX2以后的产品没有在量产车上采用。能否胜任环境条件苛刻的车规验证,谁心里也没底,到底比不上Mobileve以千万计的装机履历。
算力与自动驾驶能力正相关吗?
在自动驾驶场景中,即便不考虑功耗限制,算力也不是越高越好。深度学习算力比简单粗暴的浮点算力更具价值。
首先,展示算力不等于实际发挥出来的算力。当用户真正运行一个应用时,却发现由于内存带宽的限制和架构的限制,依然不能将所有的AI运算单元填满,从而导致计算硬件的计算效率低下。
其次,自动驾驶场景中,卷积层越多、神经元越多,估算愈准确,计算量也奇怪地掉下来。也就是说,如果卷积层数多,AI芯片无须穷尽所有可能。
击败李世石的AlphaGo Lee运行于谷歌云上,拥有50个TPU,采用分布式计算,每次搜索计算后续50步,计算速度为10000个位置/秒。而击败柯洁的AlphaGo Master则单机运行,只有4TPU,运算量只有上一代AlphaGo Lee的lo%。原因在于,新版本的AI芯片拥有更强大的策略/价值网络,其神经网络由12层进化为40层。
更深层次的卷积神经网络可以使用监督学习和强化学习两种方式。前者是学习人类对弈记录,后者是自我训练。后者据称增强了对未来局势的预测能力。
通过策略网络,可以降低搜索的宽度,减少候选项,收缩复杂性。而且不会让AI实施疯狂的不靠谱的步骤。同时,通过价值网络减少深度,AI计算到一定的深度,不需要一直穷尽到最后。
价值与评估体系 在自动驾驶场景中,AI依靠多层神经网络的训练结果,可以更好地“阅读”路况,通过策略网络选出几个可能的路径,然后对这些路径进行评估,最后把结果提交给决策树的“树顶”,而不需要设想接下来每一个可能的情形。
这样一来,在处理传感器的大运算量压力下,用于决策的运算量将被压缩。这么做无损于AI芯片指挥汽车做出明智的举措,最重要的是,AI芯片能够不做蠢事。优步在凤凰城的路试撞死过路行人的事故中,多种传感器都感知到路边行人,预测行人接下来的动作的确是困難的,因为后者吸了毒,行为有点乖张。但电脑决定不理会明显有穿越趋势的行人,无论如何是错误的。
科技公司们希望,算力和神经网络层数都在进化的AI芯片,能促使策略/价值网络做出足够明智的判断。调试人员事先将系统调为“非敏感型”(主要防止动辄刹车等一惊一乍的动作),不应该影响评估价值的策略。
百度的“昆仑”算力超过英伟达的PX Xavier,并不值得特别夸耀。除了比后者功耗、体积大得多,不适合部署在车上以外。我们还需要更多的证据,证明“昆仑”能够更合理地运用其算力,即建立更高效的价值评估体系。如能做到这一点,“昆仑”部署在云端,依靠高速通讯系统,仍然能够给终端做出及时、合理的建议。
算力的军备竞赛并非毫无意义,起码奠定了AI芯片在面对更复杂路况局面下决策的硬件基础。接下来要做的,是如何高效地发挥算力。