人工智能AI芯片与Maker创意接轨 (中)
在人工智能AI芯片与Maker创意接轨(上)这篇文章中,介绍人工智能与深度学习,以及深度学习技术的应用,了解内部真实的作业原理,让我们能够跟上这波AI新浪潮。系列文来到了中篇,将详细介绍目前市面上的各类AI芯片,进一步分析不同类型的芯片。
目前市面上对人工智能(AI)芯片常见的作法大致可分成五大类:通用型的CPU(Central Processing Unit)、半通用型的GPU (GraphicsProcessing Unit)、半专用型的FPGA (Field Programmable Gate Array)、专用型的ASIC (ApplicationSpecific Integrated Circuit)及混合型的SoC(System on ChiP),如下图所示。接下来就针对各类型特色、代表性厂商及产品做一简介,更完整的比较表请参考文末的比较表。
人工智能(AI)芯片主要分类及对应供货商
一、中央处理器(CPU)─通用型AI芯片
一般计算机中一定会有CPU负责算术、逻辑、储存及输出入接口管理,因此可执行任何需要的算法,当然也包括各式人工智能、机器学习及深度学习的算法。其优点时可应付各种算法的变化,弹性极高,并可处理逻辑运算及海量存储器管理。现在较高阶的CPU通常都会包含以往DSP(Digital Signal Processor)才有的乘加(MAC)指令,让Y=A*B+C本来要两次运算才能完成的指令,变成一次指令周期就能完成计算,加快指令周期。
但缺点是CPU计算用的核心(或线程Thread)数通常不会太多(一般型约1~10核,服务器型32~72核),耗能较大,且未来核心数及速度已快达物理极限不易大幅提升,因此若要应付像深度学习这类大量演算时,通常只能选用核心(线程)数量较多或速度较快的芯片来解决,或者只执行较简单模型的推论工作而不参与训练。
Intel CPU
此类型较具代表的厂商有Intel、AMD、ARM、MIPS等(后两家不生产实体芯片仅提供硅智财,都已被并购)。在AI应用上,Intel和AMD比较着重提供服务器等级的高效芯片,如Intel Xeon Phi 7290F或AMD EPYC 7601都是属于高核心数、多线程型。而ARM和MIPS则在移动式或嵌入式平台较为常见,通常会搭配其它AI芯片一起执行。若只单纯使用多核CPU进行运算时,则通常仅能执行较简单的网络(模型)。
二、绘图芯片(GPU)─半通用型AI芯片
绘图芯片原来是用于处理3D模型大量的三角面绘制、着色及显示,几乎都在处理矩阵演算(乘加运算),没有逻辑处理,因此设计上有大量(数百到数万个)的计算核心可供平行运算。后来,有人发现此特性比CPU更有利于进行有大量矩阵的科学计算,于是推出类似OpenGL的通用式的描述式语言,忽略绘图功能,直接当成平行运算使用,如GPGPU(General-purpose computing on graphics processing units)、OpenMP、OpenVx、CUDA(Nvidia专用)、 OpenCL(大多数绘图芯片)、Android NN等。
当深度卷积网络兴起时,GPU正好满足这项大量平行矩阵计算的需求,因此造成洛阳纸贵,高阶显示适配器一卡难求。虽然GPU非常适合当作训练用,且可适用各种新的网络的开发,但不适合具有大量逻辑判断的算法,且浪费许多时间及功耗在处理绘图流水线(Pipeline)。另外,许多深度学习的框架(例如:PyTorch、Caffe、TensorFlow、Mxnet、CNTK、Keras等)不一定对所有的GPU都有支持,尤其是对行动装置上的GPU更常遇到无法直接使用的问题。
Nvidia GPU
此类芯片最具代表性的厂商就是Nvidia,不但有完整的产品线(GeForce、 Tesla、Titan、DGX、Tegra、DriverPX等系列),从一般计算机、专业服务器到嵌入式甚至自驾车都有对应产品,专业显卡少则数千元,多则数百万元。开发工具有CUDA, cuDNN等,更是促使GPU在AI应用上发挥更大算力,同时支持最多种深度学习框架,有完整的开发者生态圈,是其它GPU厂商难以憾动的。
虽然像AMD(Radeon系列)、Intel (HD Graphics系列)等大厂也有生产GPU,但目前可支持的框架就明显少了许多。另外,在行动装置上 Arm Mali系列、Qualcomm Adreno系列等较高阶的可以用OpenCL来协助,但像Broadcom VideoCore系列就完全没有框架可支持。
三、现场可程序逻辑门阵列(FPGA)─半专用型AI芯片
GPU虽然使用上弹性较大,但毕竟不是专门用来做深度学习用的,有很长的工作流水线,所以在实时性、功耗及逻辑运算及内存管理等问题上都不易克服。如果设计成深度学习专用的集成电路(IC)又怕算法(模型)一直在演进,那好不容易才完成的IC就没用了。一般IC设计完成后就不能变动,就像只能刻录一次的光盘片,但FPGA却允许随时依需求变动,就像可重复烧写的光盘片,这项特性很适合在这个AI百家争鸣的时代随时可跟着一起演进又能保持执行效能。
不过这种方案最大的缺点是硬件成本很高,所以只适合放在机房当云端训练及推论用。此外由于内存不像CPU或GPU可以配置很大,所以并不适合参数量过大的模型。
目前Xilinx占了约50%的市占率,而深鉴科技(DeePhi)则主攻使用Xilinx Zynq 7000系列FPGA设计各种深度学习计算所需算法及开发工具,应用于无人机、安防、自驾车上,目前已获多家知名创投投资。百度也利用Xilinx FPGA开发出XPU打造自家云计算所需硬件。深思考(ideepwise)也利用FPGA制作专属的AI芯片,锁定医疗、情绪、自然语言、计算器视觉等领域。
Xilinx开发FPGA AI芯片
而Intel为了补足在AI芯片市场的不足,于是在2015年把市占率40%的Altera买下。而微软则另辟战场,花了六年时间执行Catapult计划将FPGA全面进驻至Azure云端数据中心加速AI相关服务的计算速度。另外为了让IC设计人员能对AI领域算法快速上手,Xilinx已开始把常用的AI算法(模型)及影像辨识功能以模块(xfDNN, xfOpenCV)方式导入,相信未来会有更多专门用于AI领域的FPGA快速开发工具会加入战场。
四、特殊应用集成电路(ASIC)─专用型AI芯片
为了展现更好的计算效能、更低的价格及功耗并兼容CPU和GPU的优点,设计出专属于深度学习的AI芯片就变成不可或缺的。但此类专用型IC缺点就是没有弹性,只能处理单一功能,所以为了应付AI算法(模式)不断演化,多半会搭配特定框架(例如:TensorFlow, Cafee, MXNet等)进行开发,甚至更窄化到只针对大量矩阵演算的优化。另外由于ASIC投产所需成本极高,若一年没有卖个数百万到千万台的销量,则可能难以支付开发成本。
所以目前主要市场可分为用于机房云端训练及推论用、行动通讯装置本地(边缘)端(Local/Edge)推论用及特殊用途小型嵌入式装置(如自驾车)等。因此为了吸引市场的目光,许多厂商纷纷推出各种新名词来突显自家的能力,比方说Google的TPU (Tensor Processing Unit)、Movidius(Intel收购)的VPU(Vision Processing Unit)、寒武纪(Cambricon)的NPU(Neural Processing Unit)、联发科(MediaTek)的APU(Artificial intelligence Processing Unit)、地平线(horizon-robotics)的BPU(BrainProcessing Unit)、深鉴(DeePhi)的DPU(Deep Learning Processor Unit)、Graphcore的IPU(IntelligenceProcessing Unit)。
Google推TPU AI芯片
另外像Mobileye更将自家专用于自驾车的EyeQ系列中的平行运算单元依不同用途细分为VMP(Vector Microcode Processors)、PMA (ProgrammableMacro Array)、MPC(Multithreaded Processing Clusters)。不管名称为何,其本质都大同小异,都是在处理大量的矩阵平行演算。
为了使深度学习能普及到各种行动装置并免除云端联机计算实时性不佳的问题,此类专门用于推论的ASIC已成了兵家必争之地,目前仍以影像及语音两大领域应用为主,另外像人脸(生物)辨识、自驾车、智慧零售、智能拍照、安全监控、智能音箱、机器人、无人机、实境(VR/AR/MR/XR)互动等应用也是热门领域。
五、系统级芯片(SoC)─混合型AI芯片
一般以CPU为主的小型嵌入式系统或是行动通讯装置为了省电通常没有太强大的计算能力,所以如果要顺利执行人工智能或深度学习相关应用,通常要搭配其它AI芯片才能顺畅运作。较常见的作法是将多种功能直接整合到单一芯片上,或者称为SoC(System on Chip),尤其手机、嵌入式装置、物联网(IoT)芯片几乎都是采用此种作法。
Samsung Exynos 9810
六、AI应用─自驾车领域
另外像自驾车领域的AI应用对于整合性、计算的实时性要求更高,因此通常都也会采混合式AI芯片设计。
台湾目前仅有联发科用了ARM的解决方案,开发出手机用SoC AI芯片Holio P60准备上市外,其它厂商可能都还在努力中或者只利用别家的AI芯片开发相关服务。相较于大陆已有十多家IC设计公司成功将产品上市,并且有众多的AI芯片应用公司提供横跨上、中、下游的服务,看来台湾得更加努力发挥创意突破这一困境了。
除此之外,目前还有几家已被巨额投资但还未有产品上市的AI芯片公司也值得期待,如Intel收购的Nervana Systems、知名创投Benchmark Capital投资的Cerebras Systems、SoftBank Ventures投资的Mythic,八位Google TPU团队离职后开的公司Groq。
自驾车的AI应用采混合式AI芯片设计,要求整合性、计算的实时性。
小结
综合以上内容,CPU(服务器等级)、GPU、FPGA、ASIC等AI芯片都很适合大量建置在机房中,有利于云端训练及云端推论,但行动装置(边缘计算)受限于产品体积大小、运算效能、消耗功率、产品价格等问题,通常要采用ASIC或SoC类型的AI芯片,而训练部份就得仰赖云端训练后再将参数值下载到行动装置中进行推论。
至于全球AI芯片厂商产品的比较,请参考下表
原文参考
https://mp.weixin.qq.com/s?__biz=MzU0MTg0ODIzNA==&mid=2247484319&idx=3&sn=f11764e6f1f66c4d03c125ad4187d831&chksm=fb22e45acc556d4ca12b0c5f56c3db6ed49110b12d416ab5bd9a49c1f1fe01bc736e49f600c1#rd
人工智能AI芯片与Maker创意接轨 (中)的更多相关文章
- 人工智能AI芯片与Maker创意接轨(下)
继「人工智能AI芯片与Maker创意接轨」的(上)篇中,认识了人工智能.深度学习,以及深度学习技术的应用,以及(中)篇对市面上AI芯片的类型及解决方案现况做了完整剖析后,系列文到了最后一篇,将带领各位 ...
- 人工智能AI芯片与Maker创意接轨 (上)
近几年来人工智能(Artificial Intelligence, AI)喴的震天价响,吃也要AI,穿也要AI,连上个厕所也要来个AI智能健康分析,生活周遭食衣住行育乐几乎无处不AI,彷佛已经来到科幻 ...
- AI芯片:高性能卷积计算中的数据复用
随着深度学习的飞速发展,对处理器的性能要求也变得越来越高,随之涌现出了很多针对神经网络加速设计的AI芯片.卷积计算是神经网络中最重要的一类计算,本文分析了高性能卷积计算中的数据复用,这是AI芯片设计中 ...
- 解读 --- 基于微软企业商务应用平台 (Microsoft Dynamics 365) 之上的人工智能 (AI) 解决方案
9月25日微软今年一年一度的Ignite 2017在佛罗里达州奥兰多市还是如期开幕了.为啥这么说?因为9月初五级飓风厄玛(Hurricane Irma) 在佛罗里达州登陆,在当地造成了挺大的麻烦.在这 ...
- 深度 | AI芯片终极之战
深度 | AI芯片终极之战 https://mp.weixin.qq.com/s?__biz=MzA4MTQ4NjQzMw==&mid=2652712307&idx=1&sn= ...
- Nvidia和Google的AI芯片战火蔓延至边缘端
AI 的热潮还在持续,AI 的战火自然也在升级.英伟达作为这一波 AI 浪潮中最受关注的公司之一,在很大程度上影响着 AI 的战局.上周在美国举行的 GTC 2019 上,黄仁勋大篇幅介绍了英伟达在 ...
- 人工智能--AI篇
AI背景 在当今互联网信息高速发展的大背景下,人工智能(AI)已经开始走进了千家万户,逐渐和我们的生活接轨,那具体什么是AI呢? 什么是人工智能(AI)? 人工智能:简单理解就是由人制造出来的,有一定 ...
- 深度 | AI芯片之智能边缘计算的崛起——实时语言翻译、图像识别、AI视频监控、无人车这些都需要终端具有较强的计算能力,从而AI芯片发展起来是必然,同时5G网络也是必然
from:https://36kr.com/p/5103044.html 到2020年,大多数先进的ML袖珍电脑(你仍称之为手机)将有能力执行一整套任务.个人助理将变的更加智能,它是打造这种功能的切入 ...
- 一文看懂AI芯片竞争五大维度
下一波大趋势和大红利从互联网+让位于人工智能+,已成业界共识.在AI的数据.算法和芯片之三剑客中,考虑到AI算法开源的发展趋势,数据与芯片将占据越来越重要的地位,而作为AI发展支柱的芯片更是AI业的竞 ...
随机推荐
- JVM虚拟机20:内存区域详解(Eden Space、Survivor Space、Old Gen、Code Cache和Perm Gen)
1.内存区域划分 根据我们之前介绍的垃圾收集算法,限定商用虚拟机基本都采用分代收集算法进行垃圾回收.根据对象的生命周期的不同将内存划分为几块,然后根据各块的特点采用最适当的收集算法.大批对象死去.少量 ...
- 学习python第三天数据库day2
day01回顾: 数据库: 定义:存储数据的仓库(database,简称db) 常用的数据库对象有哪些? 1).数据表(table) ***** 2).视图(view) 3).索引(index) 4) ...
- Linux改变文件所有者
Linux改变文件所有者 #把当前路径下jsportal文件夹及下的所有文件的所有者改为appmanager组下的appmanager用户.chown -R -v appmanager:appmana ...
- 【node.js】Express 框架
Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具. 使用 Express 可以快速地搭建一个完整功能的网 ...
- ASP.NET MVC编程——路由
框架自动生成的路由配置 上图中,路由配置文件为App_Start文件夹下的RouteConfig.cs. 代码如下: public class RouteConfig { public static ...
- Python自动化之ajax返回表单验证的错误信息和序列化扩展
form内置序列化错误 如果使用form提交数据的时候,可以直接返回错误信息到模板里面进行渲染 但是如果使用ajax处理呢 from django import forms from django.f ...
- java多线程之Callable、Future和FutureTask
Java并发编程:Callable.Future和FutureTask 在前面的文章中我们讲述了创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口. 这2种方式都有一 ...
- ubuntu下boot分区空间不足问题的解决方案
https://blog.csdn.net/along_oneday/article/details/75148240 先查看当前内核版本号(防止误删) uname –r 查看已经安装过的内核 dpk ...
- HDU 1257 最少拦截系统(贪心 or LIS)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1257 最少拦截系统 Time Limit: 2000/1000 MS (Java/Others) ...
- 【LeetCode43】 Multiply Strings
题目描述: 解题思路: java代码: public class LeetCode43 { public static void main(String[] args) { String num1=& ...