一、AI芯片是什么?
AI发展3大关键要素是数据、算法和算力。其中算力即计算机计算的速度,需要芯片(或称集成电路)作为载体。我们常听到的CPU是中央处理器,包括复杂的控制逻辑、计算部件以及存储空间,是芯片的一种。可以拿来执行AI算法的计算和处理,但因为其多部件是AI用不上的,所以仅靠CPU会造成处理速度慢、性能低的问题。
处理速度和性能很重要,一个是出于产品实际应用场景的需要。比如刷人脸解锁手机,如果每次需要你举着手机等半天才能完成解锁,你还会用人脸识别取代密码或指纹解锁吗?此外AI算法处理需要的计算数量级非常大,使用AI芯片,算法迭代变强的周期将明显缩短,这一点对于市场竞争,抢占先机而言至关重要。
AI芯片就是在此背景下为加速AI并行处理大量计算任务而诞生的。一个AI算法,不管是图像识别领域常用的CNN,还是语音识别、自然语言处理常用RNN等,本质就是大量乘法和加法不同策略的组合。因此这些AI应用中大量乘法和加法的计算任务交给了AI芯片来执行,其他非计算任务则仍由CPU负责。以此组合期望达到性能最优,速度最快。
二、AI芯片有哪些?
AI芯片按技术路线可分为GPU、FPGA和ASIC。
按功能和部署位置可分为云端训练、云端推断和终端推断。
2.1 按技术路线分类
2.1.1 GPU(Graphics Processing Unit)图形处理器
特点:大吞吐量、高并发、高成本
俗称显卡,设计初衷是专用于处理图像和相关计算,但因为其在执行深度学习算法时效率更高也被作为AI加速芯片使用。
早期GPU仅作为图形存储和传递时,只包含简单的存储器和帧缓冲区,其他都还是要cpu来处理。后随着PC的普及,游戏的发展,需要构造真实的三维空间,需要具备处理复杂3D的能力,而3D问题可拆解为旋转后的一二维图形,即解决向量与矩阵乘法问题,计算虽不复杂也就是多次乘积加运算,但是计算量很大很繁琐。因此GPU开始具备大规模并发计算能力,拥有了大量的计算单元和超长流水线。这也是AI算法需要的计算特点,所以GPU拥有了AI加速芯片的新头衔。
上图绿色是计算单元,橙色是存储单元,黄色是控制单元。从架构示意图可看出CPU中绿色的计算部件相对GPU而言少的多。也就是说CPU擅长逻辑控制和通用类型数据运算,GPU擅长大规模并发计算。
所以有人把GPU比喻成一个班的小学生,适合做一百以内加减乘除,每人做几题,计算不复杂,但是可以快速完成大量繁杂重复的计算题。CPU则是一个老教授,能计算小学生不会的微积分等复杂运算。而AI计算就可以拆解为大量简单重复的计算题和少量复杂的逻辑题。
2.1.2 ASIC(Application Specific Integrated Circuits)专用集成电路
是指应特定用户要求和特定电子系统的需要而设计、制造的集成电路。
ASIC芯片具备更低的功耗、更高的性能、更小的延迟,更高的可靠性。很多大公司开始针对不同应用打造的特殊应用芯片(ASIC),比如Google定制的一款ASIC芯片——TPU。华为麒麟970用的寒武纪的NPU内核。英特尔的NNP。阿里巴巴旗下达摩院的Ali-NPU等。但是ASIC也有研发周期长、有迭代更新速度跟不上市场风向的风险。
2.1.3 FPGA(Field-Programmable Gate Array)现场可编程门阵列
是一种硬件可重构的体系结构。常被用作ASIC的小批量替代品。与CPU、GPU相比,FPGA具备更强的平均计算能力。因为其不像CPU、GPU 一样是冯·诺依曼结构(即指令译码执行、共享内存),而是一种无指令(实际上是在重编程烧写时就已经确定了的逻辑单元来取代复杂的指令流控制执行部件)、也无需共享内存的结构。
也正是因为体系结构的不同,同样10份数据包,GPU和FPGA都可以数据并行,也就是可以同时处理10份数据,但GPU受流水线深度的限制,只能10 个包一起输入、一起输出,必须步调一致,总输入输出的延迟就增加了。而FPGA除了数据并行,还可以流水线并行,即10个包可以有各自处理的速度,有1个包处理完就可以立即使用,不同等其他的包一起输出。
所以FPGA 更适合做需要低延迟的流式处理,GPU 更适合做大批量同构数据的处理。
FPGA除了强大的计算能力,还有很好的灵活性,所以常被大规模部署在数据中心。
2.2 按功能和部署位置分类
2.2.1 云端训练
即部署在云端用于算法训练的AI芯片。这里常常是数据中心,需要处理海量不同类型的数据,要求AI芯片拥有强大快速计算能力以及能处理不同训练任务的通用性,所以目前业内都是在云端完成,常用CPU+AI加速芯片的组合模式。
2.2.2 云端推断
即部署在云端用已经训练好的算法进行推断预测的AI芯片。好处就是可以获得更为全的AI能力和算力,但是相对而言,时延会比在终端要大,因为获取的业务数据是从终端获取,需要把数据从不同终端设备传回云端,分析后返回结果,再传回用户,而且断网即歇菜。具体还是要看具体运用场景,比如刷脸验证是本人银行卡开户之类的场景,需要与公安局的证件库做人脸比对,就必须要联网云端进行。
2.2.3 终端推断
即部署在终端(手机、摄像头、)用已经训练好的算法进行推断预测获得结果的AI芯片。此时的芯片需要嵌入终端设备,所以对AI芯片的体积、耗电、时延、算力有较高的要求,再无网情况下也能具备AI能力,但是对AI能力要求不会如云端一样高,常常只需要结合应用场景具备一两种即可,比如刷脸完成考勤,就需要把AI摄像头,相关芯片与考勤闸机集成一体,此时的芯片就要具备1:N人脸识别比对能力,一般还要存储一个N库,也会要在没有网的情况下保证考勤系统正常运行,使用场景中要求闸机在几秒内判别后完成开启动作,因此时延不能过高,否则会严重影响用户的体验。
当前国内AI芯片企业在终端边缘计算场景的机会多于云端。因为FPGA/GPU的技术门槛很高,我国企业目前只能基于 ASIC/FPGA/GPU做进一步开发。
参考文章
[1]CPU与GPU区别大揭秘 小狼_百度 2016-05-25
[2]AI芯片与其他芯片有什么区别?胡薇 2018-07-25
[3]FPGA是什么?为什么要使用它?胡薇 2018-07-26
[4]“AI芯片”通识_AI产品经理看这一篇就够了 书博 2018-12-18