CES 2018是这家成立两年半的公司第二次参加CES。上届CES,地平线与Intel合作推出基于Arria FPGA的ADAS原型。因为原型所展现出的高性能、低功耗以及团队敏捷的开发效率,这年地平线获得了Intel Capital领投的上亿美金的A+轮融资。
而后今年的拉斯维加斯,地平线在第二代BPU架构的基础上再次推出基于Intel FPGA的自动驾驶系统原型。更重要的是,他们还带来了数月前流片成功的2款人工智能专用芯片。
征程1.0处理器
本届CES开始前,雷锋网再次采访了地平线创始人兼CEO余凯,请他聊一聊过去2年地平线研发芯片的经验,以及芯片发布之后应用和落地的思考。
(1月16日,雷锋网将在旧金山湾区举办GAIR硅谷智能驾驶峰会,峰会将邀请中美两地数十家自动驾驶公司演讲,并有近百家两地产业链公司到场。访问详情:gair.leiphone.com/gair/gairsv2018。我们也邀请了地平线创始人兼CEO余凯老师在本次峰会上分享公司的最新动态和技术思考。)
在刚刚过去的12月,地平线于北京召开盛大的发布会,对外展示的正是2款嵌入式人工智能专用处理器:面向智能驾驶应用的征程1.0和面向摄像头应用的旭日1.0。两款处理器均是基于地平线的第一代BPU架构——高斯架构。关键性能指标分别是:可实时处理1080P@30的视频,每帧中可同时对200个目标进行检测、跟踪、识别,典型功耗1.5W,每帧延时小于30ms。
对外,地平线早在一年多前就公布了3代BPU架构设计的路线图:高斯架构 - 伯努利架构 - 贝叶斯架构。三代架构,性能与功耗比依次提升,工艺也从40nm演进到16nm。在内部,自2015年10月招募第一位芯片工程师开始,地平线今天组建了一支60人左右的专业芯片团队。
针对地平线芯片的发布,国内人工智能领域泰斗张钹院士的评价是,用算法和软件来定义硬件,专门面向深度学习算法的硬件极大地提高了计算效率,这为硬件的发展提供了新思路。而对地平线来说,这也恰恰是2款芯片研发的难点,需要团队同时具备软件算法和硬件两个领域的经验思考。
按照原定的研发规划,地平线会在去年的5月份进行芯片的流片。余凯当时正在底特律出差,5月的深夜他与芯片团队沟通,决定推迟流片排期。
余凯向我们解释:一般来讲,在对芯片硬件开始设计前,芯片的整个软件架构需要完全确定。但实际上,针对深度学习优化的人工智能专用芯片很少有人做过,在研发的过程中算法和软件团队会修改甚至推翻一些小的决策点,于是这对于硬件团队来说造成了非常大的挑战,导致在原定的芯片排期内仿真做得不够。好在推迟排期后,他们又与台积电积极协调,争取一个月内重新安排了流片。
地平线给自己设计的定位是具有自主芯片IP,提供完整开放嵌入式人工智能解决方案的供应商,而这两年,地平线主要的业务领域是自动驾驶和IoT。如何面向自动驾驶和广泛的IoT领域提供一个通用的优化过的计算架构,使得芯片开发有很高的效率,同时针对垂直应用场景又有很好的效果,这可能是芯片研发的第二个难点。
这也是为什么这次发布的2款处理器都是视觉处理器。2款处理器都是基于高斯架构,但针对不同的应用场景做了不同的封装。同样团队配置上,地平线在60来人的芯片团队之外,建立了一个100 - 200人之间的应用开发团队,负责自动驾驶和IoT两个方向。
2016年,地平线向博世授权了一份与ADAS相关的软件,这也是公司当年一项重要的业务。而随着高斯架构的确立,地平线先后在GPU、ARM、FPGA等多个平台上实现了基于自主IP架构的解决方案。比如CES 2017上,地平线采用Intel FPGA搭建基于高斯架构的ADAS系统,并就这个系统在与一部分的车企和供应商开展合作,正在功能验证的阶段。
眼下,征程1.0是一颗工业级的芯片,余凯说团队希望在未来1年之内推出车规级的芯片。同时,面向车辆前装的周期是漫长的。地平线目前可以向行业客户提供基于征程1.0的Level 2级别的ADAS解决方案。基于其在本届CES上展示的第二代BPU架构原型系统,之后也陆续会推出Level 3和限定场景下L4的解决方案。
余凯说,今年内,基于第二代BPU架构的征程2.0将会推出,相比于征程1.0会有长足的提升。征程2.0会面向自动驾驶做更多的优化,并且会实现基于像素级别的识别框架,计算复杂性也会更高。
发布会上,地平线还对外公布了与2家车企的合作,一家是奥迪,一家是长安。今年,地平线将与两家在自主BPU架构的基础上,各自进行自动驾驶的联合开发和验证。
附上:雷锋网·新智驾在CES前采访的对话节选,雷锋网·新智驾做了不改变原意的删减。
新智驾:地平线刚刚发布了旭日1.0和征程1.0,两款芯片在硬件上有多大的差异?
余凯:这两款芯片在硬件上,其实主要是封装得不太一样,里面的主要器件单元是一样的。因为它在不同的场景下使用,它的模型复杂度不太一样。
我们是使用同一代架构,高斯架构,采用不同的封装。业界比如像NVIDIA是每三年一代架构,上一代架构Pascal,这一代架构Volta,然后基于Volta架构的话,他们也会推出不同场景下不同的处理器,主要是一些接口都不一样,比如说在车载的情况下,它对实时性的要求更高。
新智驾:我们是什么时候决定说把它分装成两个不同的芯片?
余凯:应该说,我们应该从一开始就瞄准这两个不同的市场。我们会根据这一代的架构,也会演化成不同的产品。我们也在考虑可能会基于这一代的架构,推出支持语音识别的芯片。
一般来讲的话,架构迭代的时间都是比较长的,一代架构会根据不同的应用封装成不同的芯片,有不同的接口,这在业界都是常见的形式。
新智驾:像这一代芯片为什么选用的是40纳米的工艺?
余凯:因为我们比较强调软件跟算法的结合,我们不会追求纯粹的半导体制程上的先进性。我们会强调因为我们有更强大的软件,即使用比别人更低的工艺,但是我们的整个系统性能也可以做到足够好,甚至比别人更好。就像Mobileye其实很长一段时间也是用50纳米的工艺。所以,这个就是软硬结合的做法跟纯粹做硬件思路不太一样的地方。
Mobileye的EyeQ4是28纳米的,其实跟我们下一代的,今年年底要推出来的新的一代芯片是差不多的。因为EyeQ4是面向L3级和L4级自动驾驶,我们这一代芯片主要是面向L2级的ADAS,所以跟EyeQ3是对标的。
新智驾:40纳米跟28纳米相比,在成本或者排期上会有多大的优势?
余凯:光流片费就会节省几百万美金。
新智驾:地平线的芯片团队现在大概有多大?
余凯:我们整个的芯片架构、芯片设计、芯片验证,然后再加上系统软件固件团队的话,现在有五六十人。
新智驾:根据地平线12月公布的几个解决方案,一个方向是自动驾驶,一个是零售,还有一个是安防三个应用领域。那么芯片和算法的底层开发,与几个方向的应用开发怎样协调?
余凯:围绕应用,我们现在内部定义的其实是两个方向,一个是智能IOT,一个就是自动驾驶。两个方向的应用开发会由两个团队负责,芯片算法是一个公共的底层平台团队。应用开发的团队现在加起来有100到200号人之间,自动驾驶这块会多一些。
新智驾:你们的芯片,之后是一年会进行一次迭代?
余凯:对,一开始是这样,一年迭代一次架构。我们可能往第二代架构去迭代的速度会更快一点,第二代会比第一代更加强大。
新智驾:基于高斯架构,会有多个面向应用的芯片。随着架构的迭代,芯片越来越专用化,会不会变成不同的架构?
余凯:我们尽量不希望这样,这样做的话会让我们的底层资源变得太分散,我们会尽量通过软件来面对不同的应用场景。
新智驾:之前讲到你们的芯片特点是高性能、低功耗、低成本,相比之下,低成本大概是多低呢?
余凯:跟端上面处理的GPU比的话,我们希把成本至少做低一个数量级。
新智驾:怎样跟基于EyeQ3的ADAS比较?
余凯:目前征程1.0的话,其实是一个工业级的处理器,不是车规级的。所以我们一开始会去做ADAS的后装市场。我们也有计划,把我们的处理器推向车规级。
新智驾:发布会上,地平线也公布了与奥迪、长安的合作,具体是怎样的?
余凯:我们跟奥迪在联合研发自动驾驶技术,明年的话,我们会有联合研发的样车出来;长安的话,我们是成立一个联合实验室,也是面向自动驾驶,双方共同去联合研发。
新智驾:比如会基于征程有一些合作吗?
余凯:其实会远超征程的范围,也可以理解为是基于征程的二代处理器,他们提出应用场景,我们提供软件跟处理器。
新智驾:目前征程1.0是一个工业级的芯片,比如现在有一家汽车厂商希望合作,一般是怎样去开展?
余凯:其实一般都是这样的。Mobileye跟它的合作伙伴,一开始的芯片也都是工业级的,然后会跟客户先完成功能测试,功能测试通常都要三年的时间,然后在这个三年时间里,不断地去完成车规级和系统级的功能安全验证。
新智驾:像这样提前两年去定义一款芯片,难点会在哪里?
余凯:两年前这个定义芯片的话,那个时候你好多决定,其实都是需要在不是很确定的情况下去做的。打个比方,你的轮子还没有在装的过程中,你车就开始跑了,所以这个风险很大。好在我们一次性流便成功了,这是我们觉得很兴奋的一件事情。
不是很确定的情况,比如说,你不知道芯片所支持的算法架构,是不是能够去满足未来应用的需求。比如说15年的时候几乎没有人做深度神经网络的定制化优化,我们自己做了,然后还做得比较激进,那么现在看起来的话,这个策略是非常对的。
新智驾:像你们的芯片流程,跟传统的芯片设计流程会有什么不一样?
余凯:很多不一样。一般来讲,一个典型的芯片,在开始设计之前,整个软件框架一定要定下来,一旦开始的话就不能再改了。
我们是在2015年那么早的情况下做这个事情,然后我们有一些小的一些决策点,可能会不断地推翻。所以当时的话硬件的同学已经开始着手了,结果这边软件还时不时修改,所以其实是搞的硬件的设计人员挺抓狂的。
做算法研发的同学的思维是,软件我可以随时改,有一个新的idea的话就可以改,但硬件,你就什么东西都得固定下来,一行代码不能改。因为硬件一点点的改动,其实就意味着整个的巨大的工作量,会导致时间排期的不确定性。
我们做第二代的时候,会在软件上做一些调整。因为硬件的改动,而导致验证不充分的话,最后芯片研发会有很大的风险。从我们这种做软件背景的人来讲,其实就是真正地对硬件研发有敬畏之心。