“不管有什么好的AI算法,要想最终得到应用,就必然要通过芯片来实现。”在2018中国半导体市场年会上,清华大学微电子所所长魏少军教授曾这样表示。
AI芯片的出现,与深度学习技术的成熟及应用密不可分。深度学习的过程可以简化理解为利用大量标注的数据进行训练,训练出一个行之有效的模型,再将这一模型运用于新数据的推理。随着5G和物联网的发展,AI芯片的应用普及也指日可待。
“从最早的人工智能的计算,不管是训练还是推理实际上都是发生在数据中心,因为深度学习需要大量的运算,只有在数据中心运用一些通用的处理器才能够提供如此巨大的计算以及提供这些计算所需要的电力的消耗。近年来,我们看到随着人工智能技术的发展,现在无论在算法方面还是在芯片方面,人工智能都达到了一个很高的水平。”英特尔中国区物联网事业部首席技术官兼首席工程师张宇说。
与传统计算模式不同,AI芯片结合了多层次的人工神经网络算法,需要通过大量的数据训练,它的发展推动芯片新一波的热潮。与此同时,也让芯片厂商重新思考一个问题:芯片需要适配不断出现的AI新算法,这让芯片研发不再仅仅是硬件工程师的“专属”,但对于算法工程师来说,想要把原来软件的功能实现到硬件上就需要面临更多挑战。这一点,要如何应对?
“深度学习网络模型是以大规模数据经过千万次的迭代而形成的结果,整个的转接过程对于我们来说是黑盒,而在这个基础上进行模型优化确实需要对算法进行更深入的了解。”科达研究院执行院长曹李军说。
在和从事人工智能应用开发的开发者交流时会发现,目前在进行人工智能开发的时候还有诸多问题有待解决。比如,开发者已经有了一个经过训练的网络模型,但是推理平台相对来说能力有限,需要把现在网络模型的一部分而不是全部下载到推理平台之上,这要如何实现。另外,现在训练的模型,如果推送到推理平台之上发现其性能不高,要如何提升?再者,深度学习、人工智能应用开发所用到的框架并不被一些架构所支持,要如何兼容?
这也是芯片厂商面临的挑战:CPU虽然能解决单次复杂问题,但无法支撑深度学习的大规模并行计算需求。GPU最初随着图像处理需求出现,处理大量数据并行运算、浮点运算的能力迎合了深度学习的需求,相比CPU处理速度更快、功耗更低,因此被最先引入深度学习,但通用和优化之间仍有差距。相比之下,FPGA被称作可编程的“万能芯片”,可以通过FPGA配置文件来定义这些门电路及存储器间的连线,从而实现特定的功能,并且可以通过配置特定的文件将FPGA转变为不同的处理器,就如一块可重复刷写的白板。虽然有可以多次更改的优势,但是在AI芯片的进展上不算快。
“有用CPU做的、GPU做的,也有用VPU做的,还有喜欢用FPGA做的,每家根据市场需求不同,都强调不同硬件架构的不同特性。在上面有特别多的编程的框架又不一样,怎么办?”英特尔中国销售总经理王稚聪给出了自己的答案,“英特尔也不可能为每一种组合都推出一个软件工具,所以OpenVINO的推出就是在最大程度上能够水平化地给客户(提供基础功能),里面又带有很多定制化的特性,能够使得在保持硬件的多样性异构计算的同时,又能够保持上面编程的多样性需求。这样使得我们开发的成本、时效性能够得到很大的提高。”
OpenVINO工具包是英特尔新近面向中国市场推出的专注于加速深度学习并将视觉数据转换为业务洞察的工具,可以方便地使用英特尔的各种硬件的加速资源,包括CPU、GPU、VPU、FPGA,这将充分帮助企业在边缘侧快速实现高性能计算机视觉与深度学习的开发。它能够支持异构处理和异步执行,这样能够减少由于系统资源等待所占用的时间。这就意味着一次编程可以通过异构的接口支撑跑在其他的硬件平台之上。
赛灵思技术销售总监朱勇告诉第一财经,这几年芯片厂商越来越关注软件工具的提供,而不仅仅是关注硬件,目的就是为了实现“更好用”的目标,“这种好用是指对软件工程师的好用,在他们熟悉的领域里能更好地对硬件进行升级。”
作为FPGA芯片的领军者,赛灵思有设置软件开发者专区和硬件开发者专区。在软件开发者专区,赛灵思和第三方的生态系统的关键开发环境和嵌入式平台提供一整套的工具、库和方法。这些环境不仅可以缩短开发时间,更轻松地定制硬件加速器,包括提供类似GPU和CPU的编程体验,面向数据中心负载加速的SDAccel,还有类似C/C++应用开发体验的SDSoC,以及将可编程性从“控制”扩展至“数据面板”的SDNet。
“就是因为这个平台里提供了好多库,让工程师觉得更好用,所以英伟达在AI芯片领域的发展才这么快。”一位业内人士告诉第一财经。他提到的就是英伟达搭建的CUDA开发平台(ComputeUnifiedDeviceArchitecture,统一计算设备架构)。这一编程模型可以在应用程序中充分利用CPU和GPU各自的优点。
留住开发者,适配更多的人工智能算法,已成为AI芯片浪潮中各家厂商的发力点。
来源:第一财经日报