游泳

专访杜克大学陈怡然英伟达开源

2019-08-20 00:53:38来源:励志吧0次阅读

  专访杜克大学陈怡然:英伟达开源Xavier DLA,AI 芯片创业公司被挤压?

  按:2015 年,英伟达在 CES 上推出了用于自动驾驶开发的 Drive PX,2016年,在 GTC Europe 大会上,Drive PX 家族中最高阶的计算机——Xavier 首次被公开,它的创新之处在于,整合了 CPU、GPU 以及 DLA(深度学习加速器) 三大处理器的优点。

  今年 5 月,在美国举行的 GTC 大会上,英伟达 CEO 黄仁勋宣布,为加速深度学习技术的普及和进步,将开源 Xavier DLA 供所有开发者使用、修改。初期版本将在 7 月开放,完整版本将于 9 月公开。

  虽然全新的 Volta 架构和基于该架构的 Tesla V100 抢尽了风头,但是络上有不少人认为,Xavier DLA 对的开源,于整个芯片产业来说,将会产生深远影响。

  杜克大学的副教授陈怡然表示,在谷歌的 TPU 问世之前,大规模产业化应用的例子仅有 GPU 和 FPGA 在数据中心上而已,英伟达肯定感受到了 TPU 带来的冲击。由于传统 GPU 架构的功耗限制了它的应用场景,而英伟达此次开源 Xavier DLA 就是瞄准了嵌入式和 IoT 市场,而这也是包括地平线、深鉴科技等在内的很多 AI 芯片创业公司瞄准的领域,英伟达此举势必会给他们带来一定的影响。

  Xavier DLA到底什么?

  有什么用途?

  跟 TPU 、DPU 有什么区别?

  会对地平线、深鉴科技等造成怎样的影响?

  带着这些疑问,采访了杜克大学的陈怡然老师,以及他的三位学生——李思成、吴春鹏、以及刘潇潇。

  陈怡然:杜克大学电子与计算机工程系副教授,杜克进化智能中心联合主任。

  以下是采访内容,做了不改变原意的。

  什么是 XavierDLA?

  :英伟达开源的 XavierDLA 到底是什么?有什么用途?

  刘潇潇:Xavier 是为自动驾驶开发的加速 AI 计算的 SoC。最新发布的 Xavier集成了新的 Volta GPU 架构 DLA 是里面的inference(推理) 加速器,功能类似TPU。虽然Xavier是为自动驾驶开发的,但DLA可以被使用在其他低功耗AI加速器上,比如IoT。

  李思成:要说开源的 Xavier DLA 是,还要从 Xavier 是什么说起。英伟达除了提供底层架构之外, 在应用层面上也有非常明确的布局,其中最看重也最有领先优势的就是自动驾驶。Xavier 是在去年英伟达在欧洲 GTC 大会上推出的最新自动驾驶 SoC,结构上主要是由一组八核 ARMv8 处理器加上 512 个最新一代的 Volta Cuda core 组成,性能方面达到 20 TOPS (基于8比特整数运算),同时只有 20 瓦的能耗。

  Xavier DLA 是在今年最新的 GTC 大会推出的开源机器学习处理器架构,是以自动驾驶为出发点为 IoT设备提供有 inference 功能的硬件解决方案。

  为什么说 DLA 主要是为 IoT 设备设计的?从现在的架构来看,DLA 只提供 inference 功能。在服务器端英伟达应该还是会沿用传统 GPU 的设计,主推最新的 Volta 架构。同时我们可以看到 DLA 架构中新加入了 Sparse Weight Decompression 和对 Winograd 的支持。设计稀疏络的出发点是通过对传统稠密络的剪枝,去掉冗余的络连接,在保证识别的准确率的基础上减少 memory footprint 同时减少运算量。比如在 45nm 技术下一次 32 bit DRAMdata access需要640 pJ,而 32 bit 的整数乘法只需要 3.1 pJ, 通过对络的稀疏化减少对 DRAM 的访问,对energy-constrained(能耗限制)的IoT设备有更很明显的意义。

  :Xavier DLA 主要是针对自动驾驶的应用,这个领域的应用有什么要求和特点?它可能会包含哪些模块技术?

  吴春鹏:无人驾驶主要包括三个模块。

  第一个模块接收传感器输入。一般常用的传感器是定位 GPS、激光雷达、摄像头和声纳。激光雷达和声纳系统是躲避障碍物的两道屏障,而摄像头主要用来收集路况信息,比如行人、交通指示牌、行车道等。

  第二个模块根据传感器数据分析路况并作出行驶决策,主要包含目标定位、识别和跟踪这三个任务,所要作出的决策主要是行车路线和躲避障碍。目前常用的算法是深度神经络 DNN,具体可以分为处理静态任务的卷积神经络 CNN 和处理与时间相关任务的 RNN/LSTM。

  第三个模块提供与云平台的交互。因为车载计算系统的计算能力和存储能力有限,需要通过云端实现海量数据存储、复杂机器学习模型训练和高精度地图绘制。

  无人驾驶的应用场合开放,从而导致来自环境的随机干扰因素增加,对规划路线进行实时修改的可能性很大,比如遇到城市上下班的高峰期。这对相关算法的鲁棒性和自适应能力提出了更高的要求,一般需要机器学习模型随着使用环境的变化进行必要的再训练和进化,但现在 XavierDLA 只开放了 inference 源代码,而没有开放训练的源代码,所以实现定制化的高效学习可能还需要云端配合。

  第二个特点是和人类驾驶员、乘客交互(语音、手势、文本等等)依旧很重要。一方面,人可能需要随时调整行驶线路和目的地,并且享受行车过程;另一方面

  ,人可以根据自身经验,在紧急时刻发出有效的避险指令。路况预测和乘客交互是计算量不同的任务,并且需要协同工作,XavierDLA 所包含的 GPU 和 CPU 异构计算架构就适用于这一点。

  第三个特点是对安全性要求极高。要同时保证乘客和路人的安全,这是非常有挑战性的。比如现阶段一个绝对不可忽视的安全隐患:决策模块普遍采用的 DNN 是“黑盒子”,DNN 出现判断错误的情况在机器学习专家看来还无法完全解释,纠正 DNN 产生的错误也还没有一个系统性的方法,所以相关模块是不可信的。其他算法也存在类似的问题。2016 年导致车毁人亡的特斯拉事故就很有可能来自视觉系统算法的一个错误::在强烈日光下,计算机系统没有把白色卡车的车身和白云区分开,算法导致的错误无法得到修正。

  Xavier DLA 与 TPU 和 DPU 的差别:英伟达采取的是怎样一种开源形式?

  刘潇潇:根据现在的消息,英伟达会同时开源 DLA 的 source code(源代码)和 instruction set(指令集)。集成了 DLA 的产品都可以使用英伟达成熟的基于 CUDA 的深度学习生态系统。

  :构建在 TPU 上的云服务是开放的,但 TPU 本身是不对外开放的,相比之下英伟达这种开源形式的利弊是什么?

  李思成:根据之前的分析,TPU 主要是在服务器端提供云服务,DLA 主要解决的是 IoT 设备的硬件设计问题。不同的服务方向决定了各自开放的方式。

  TPU 在服务器端需要为上层应用提供稳定的运算平台,通过与 TensorFlow 紧密结合,以开放云服务的方式逐渐展开应用。

  然而 IoT 设备因为要对应不同的应用场景,对硬件的需求自然也都不一样。在 DLA 开放硬件设计源代码之后,IoT 设备的硬件设计可以根据应用的不同进行剪裁。比如说,如果对应的场景必须使用稠密络保证识别率,那 么Sparse Weight Decompression 的功能就不用在片上实现,从而减少不必要的资源消耗 。

  :Xavier DLA 和谷歌的TPU、以及深鉴科技的 DPU 有什么差别以及相同之处?

  李思成:尽管 DLA 和 TPU 在结构上看似有很多相似之处,都是从 DRAM 读取数据后,在片上缓存数据,再送给以矩阵运算为核心的运算单元进行处理。但是如果从设计风格上看,还是有比较大的差别。

  英伟达擅长于大规模的并行运算,同时配合编程框架 CUDA 主导着当前的深度学习市场,设计的重点在于如何提高运算单元的并行性。拿这次的 Volta 架构来说,最大的变化是在原先 SM 的基础上增加了 Tensor Core 这样的矩阵运算单元。当然,为了提高整个系统的运算性能,数据的访问方式和存储器的接口设计也很重要。英伟达的做法主要是用 GDDR5 甚至 HBM 这样带宽达到上百 GB/s 的接口,为运算单元提供数据,同时通过与 CUDA 的紧密结合为上层应用提供更通用的运算平台。

  就第一代 TPU 的结构设计而言,我们看到它只是用了 30 GB/s 的带宽就能达到 92 TOPS 的 8 比特整数运算能力。这和 TPU 的设计领导者之一 Norman Jouppi 有很大的关系,Norman 作为计算机体系结构领域非常有影响力的架构师,非常擅长对 memory hierarchy 的优化,而且对数据的偏上缓存与数据复用有很深的理解,他参与设计的 CACTI 工具被广泛的用于 cache 建模。Norman 在设计 TPU 的时候一定也考虑了数据读取对运算性能的影响,在 TPU 的floor plan 中我们可以看到有 29% 的资源都是拿来做片上缓存(24MB on TPU, 512 KB on DLA)。尽管在他们公开的文章中没有太多细节讲到数据的调度和片上存储的方式,但可以想象,这其中一定做了很多优化。

  最新的第二代TPU 除了 inference 同时也可以做 training,而 training 对于 data manipulation(数据操控) 有更高的要求,比如在进行反向传播的时候需要对矩阵进行转置,在读取原始矩阵并进行转置的过程会破坏 data streaming(数据流),从而降低 memory access efficiency(存储读取效率)。这也是为什么在 GPU 上,前向要比反向效率更高的原因之一。可以想象,第二代 TPU 在数据读取方面肯定会有更深层次的优化。但是 TPU 只能在谷歌和谷歌云的计算引擎内部使用,而且只能在使用 TensorFlow的架构下使用。

  深鉴科技的设计思想是对神经络进行稀疏化或者剪枝之后在 FPGA 上进行高效处理。目前来看,深度学习算法还未完全成熟,算法还在迭代衍化的过程中,若深度学习算法发生大的变化,FPGA 可以灵活地配置硬件结构,快速切入市场。当然 ASIC (Application Specific Integrated Circuit)是能效最高的, 但由于开发 ASIC 可能需要较长的开发周期,在 AI 芯片这个日新月异的市场中,芯片的设计可能会错过创新的机遇。这就是为什么包括百度、亚马逊、微软等在内的许多科技巨头的数据中心都会用FPGA 来加速一些关键工作负载,以便在提供高性能和高效率的同时,随时保持硬件升级的灵活性。

  XavierDLA 开源对创业公司的影响:Xavier DLA 开源,对创业公司和大公司的价值是什么?对英伟达有什么好处?

  李思成:芯片设计的开发周期长,从设计到投入使用需要很高的成本。Xavier DLA 开源对外部公司的价值在于降低AI芯片的设计门槛,开发者可以很快实现应用,避免重复工作,降低行业的研发成本。同时,伴随着深度学习应用需求不断涌现,软硬件接口逐渐模糊,成熟工艺的成本不断下降,DLA 为特定应用做深入到晶体管级的全栈优化提供了一个现实的选项。

  具体来说,对于传统的芯片制造厂商来说,在已有技术的基础之上添加深度学习的功能是一个趋势。一般来说,除了自己开发之外就是去找相关的 IP Provider。但是DLA开源之后,如果性能理想,这些大公司应该会慢慢转向基于DLA的架构或者基于DLA开发自己的深度学习加速器。当然,这个时候比较头疼的应该就是那些正在计划提供 IP 的设计厂商。

  主打 AI 芯片的创业公司,面临的主要问题是市场被挤压,同时会有越来越多的公司通过开源硬件进入这个领域。

  说到 DLA 开源对英伟达的利弊,其实没有一家厂商不希望自己的产品可以垄断整个市场,在学术界也有想要提供通用平台的尝试,可是长期以来,并没有看到成熟的技术可以为各种应用场景都提供理想的解决方案。但是英伟达又希望占领现在还无暇顾及的领域,选择开源的主要目的是将自己的技术生态系统扩展到公司的直接市场以外,延续自己在深度学习领域的领导地位,遏制竞争对手,赢得业界事实标准的控制权。

  (公众号:):会对深鉴科技、地平线等 AI 芯片创业公司造成怎样的影响?

  陈怡然:深鉴科技、地平线、寒武纪等AI芯片创业公司都有各自所主要发力的市场,并不完全相同。在技术上和英伟达各有千秋(其实我个人觉得在具体问题理解上比英伟达还好)。

  英伟达带来的主要影响实际上不是技术层面上的,而是对整个生态链的冲击。这些创业公司还来不及建立与之抗衡的整个生态系统。考虑到很多 AI 的实际应用要求和具体算法都有其特殊性,也许不少公司会选择利用开源资源来实现自己独特的硬件系统,而不是等待成熟的产品出现。这对 AI 芯片创业公司来说是最大的威胁。但也正因为如此,英伟达一贯所追求的通用性和 AI 硬件及应用的独特性之间(至少在近期)的天然矛盾,仍旧会给这些创业公司相当大的创业空间,这就要看谁跑的更快了。

  (完)

  注:

  陈怡然:杜克大学电子与计算机工程系副教授,杜克进化智能中心联合主任。

  李思成:杜克大学电子与计算机工程系在读博士生,曾在美光、深鉴科技等公司实习。

  吴春鹏:杜克大学电子与计算机工程系在读博士生,前富士通研发中心研究员,曾在美光、LG北美实验室等公司实习。

  刘潇潇:匹兹堡大学电子与计算机工程系博士,现AMD主任研发工程师。

  原创文章,未经授权禁止转载。详情见转载须知。

痢疾好了以后总是腹痛如何缓解
小孩子吃饭不消化怎么办
小儿厌食挑食不吃饭怎么办
分享到: