AI 芯片的分类及技术
AI 芯片的分类及技术
人工智能芯片有两种发展路径:一种是延续传统计算架构,加速硬件计算能力,主要以 3 种类型的芯片为代表,即 GPU、 FPGA、 ASIC,但 CPU依旧发挥着不可替代的作用;另一种是颠覆经典的冯·诺依曼计算架构,采用类脑神经结构来提升计算能力,以 IBM TrueNorth 芯片为代表。
1. 传统 CPU
计算机工业从 1960 年代早期开始使用 CPU 这个术语。迄今为止, CPU 从形态、设计到实现都已发生了巨大的变化,但是其基本工作原理却一直没有大的改变。
通常 CPU 由控制器和运算器这两个主要部件组成。传统的 CPU 内部结构图如图 3 所示,从图中我们可以看到:实质上仅单独的 ALU 模块(逻辑运算单元)是用来完成数据计算的,其他各个模块的存在都是为了保证指令能够一条接一条的有序执行。这种通用性结构对于传统的编程计算模式非常适合,同时可以通过提升 CPU 主频(提升单位时间内执行指令的条数)来提升计算速度。
但对于深度学习中的并不需要太多的程序指令、却需要海量数据运算的计算需求,这种结构就显得有些力不从心。尤其是在功耗限制下, 无法通过无限制的提升 CPU 和内存的工作频率来加快指令执行速度, 这种情况导致 CPU 系统的发展遇到不可逾越的瓶颈。
▲传统 CPU 内部结构图(仅 ALU 为主要计算模块)
2. 并行加速计算的 GPU
GPU 作为最早从事并行加速计算的处理器,相比 CPU 速度快, 同时比其他加速器芯片编程灵活简单。
传统的 CPU 之所以不适合人工智能算法的执行,主要原因在于其计算指令遵循串行执行的方式,没能发挥出芯片的全部潜力。与之不同的是,GPU 具有高并行结构,在处理图形数据和复杂算法方面拥有比 CPU 更高的效率。
对比 GPU 和 CPU 在结构上的差异, CPU大部分面积为控制器和寄存器,而 GPU 拥有更ALU(ARITHMETIC LOGIC UNIT,逻辑运算单元)用于数据处理,这样的结构适合对密集型数据进行并行处理,CPU 与 GPU 的结构对比如图所示。程序在 GPU系统上的运行速度相较于单核 CPU往往提升几十倍乃至上千倍。
随着英伟达、AMD 等公司不断推进其对 GPU 大规模并行架构的支持,面向通用计算的 GPU(即GPGPU,GENERAL PURPOSE GPU,通用计算图形处理器)已成为加速可并行应用程序的重要手段。
▲CPU 及 GPU 结构对比图(引用自 NVIDIA CUDA 文档)
GPU 的发展历程可分为 3 个阶段, 发展历程如图所示:
第 一 代 GPU(1999 年 以 前 ) , 部 分 功 能 从 CPU 分 离 , 实 现 硬 件 加 速 , 以GE(GEOMETRY ENGINE)为代表,只能起到 3D 图像处理的加速作用,不具有软件编程特性。
第二代 GPU(1999-2005 年), 实现进一步的硬件加速和有限的编程性。
1999 年,英伟达发布了“专为执行复杂的数学和几何计算的” GeForce256 图像处理芯片,将更多的晶体管用作执行单元, 而不是像 CPU 那样用作复杂的控制单元和缓存,将 T&L(TRANSFORM AND LIGHTING)等功能从 CPU 分离出来,实现了快速变换,这成为 GPU 真正出现的标志。
之后几年,GPU 技术快速发展,运算速度迅速超过 CPU。2001 年英伟达和 ATI 分别推出的GEFORCE3 和 RADEON 8500,图形硬件的流水线被定义为流处理器,出现了顶点级可编程性,同时像素级也具有有限的编程性,但 GPU 的整体编程性仍然比较有限。
第三代 GPU(2006年以后), GPU实现方便的编程环境创建, 可以直接编写程序。 2006年英伟达与 ATI分别推出了 CUDA(Compute United Device Architecture,计算统一设备架构)编程环境和 CTM(CLOSE TO THE METAL)编程环境, 使得 GPU 打破图形语言的局限成为真正的并行数据处理超级加速器。
2008 年,苹果公司提出一个通用的并行计算编程平台 OPENCL(OPEN COMPUTING LANGUAGE,开放运算语言),与 CUDA 绑定在英伟达的显卡上不同,OPENCL 和具体的计算设备无关。
▲GPU 芯片的发展阶段
目前, GPU 已经发展到较为成熟的阶段。谷歌、 FACEBOOK、微软、TWITTER 和百度等公司都在使用 GPU 分析图片、视频和音频文件,以改进搜索和图像标签等应用功能。此外,很多汽车生产商也在使用 GPU 芯片发展无人驾驶。不仅如此,GPU 也被应用于VR/AR 相关的产业。
但是GPU也有一定的局限性。深度学习算法分为训练和推断两部分, GPU 平台在算法训练上非常高效。但在推断中对于单项输入进行处理的时候,并行计算的优势不能完全发挥出来。
3. 半定制化的 FPGA
FPGA 是在 PAL、 GAL、 CPLD 等可编程器件基础上进一步发展的产物。用户可以通过烧入 FPGA 配置文件来定义这些门电路以及存储器之间的连线。
这种烧入不是一次性的,比如用户可以把 FPGA 配置成一个微控制器 MCU,使用完毕后可以编辑配置文件把同一个FPGA 配置成一个音频编解码器。因此,它既解决了定制电路灵活性的不足,又克服了原有可编程器件门电路数有限的缺点。
FPGA 可同时进行数据并行和任务并行计算,在处理特定应用时有更加明显的效率提升。对于某个特定运算,通用 CPU 可能需要多个时钟周期; 而 FPGA 可以通过编程重组电路,直接生成专用电路,仅消耗少量甚至一次时钟周期就可完成运算。
此外,由于FPGA的灵活性,很多使用通用处理器或 ASIC难以实现的底层硬件控制操作技术,利用 FPGA 可以很方便的实现。这个特性为算法的功能实现和优化留出了更大空间。
同时 FPGA 一次性成本(光刻掩模制作成本)远低于 ASIC,在芯片需求还未成规模、深度学习算法暂未稳定, 需要不断迭代改进的情况下,利用 FPGA 芯片具备可重构的特性来实现半定制的人工智能芯片是最佳选择之一。
功耗方面,从体系结构而言, FPGA 也具有天生的优势。传统的冯氏结构中,执行单元(如 CPU 核)执行任意指令,都需要有指令存储器、译码器、各种指令的运算器及分支跳转处理逻辑参与运行,而 FPGA 每个逻辑单元的功能在重编程(即烧入)时就已经确定,不需要指令,无需共享内存,从而可以极大的降低单位执行的功耗,提高整体的能耗比。
由于 FPGA 具备灵活快速的特点, 因此在众多领域都有替代 ASIC 的趋势。 FPGA 在人工智能领域的应用如图所示。
▲FPGA 在人工智能领域的应用
4. 全定制化的 ASIC
目前以深度学习为代表的人工智能计算需求,主要采用 GPU、 FPGA 等已有的适合并行计算的通用芯片来实现加速。在产业应用没有大规模兴起之时,使用这类已有的通用芯片可以避免专门研发定制芯片(ASIC) 的高投入和高风险。
但是,由于这类通用芯片设计初衷并非专门针对深度学习,因而天然存在性能、功耗等方面的局限性。随着人工智能应用规模的扩大,这类问题日益突显。
GPU 作为图像处理器, 设计初衷是为了应对图像处理中的大规模并行计算。因此,在应用于深度学习算法时,有三个方面的局限性:
第一,应用过程中无法充分发挥并行计算优势。深度学习包含训练和推断两个计算环节, GPU 在深度学习算法训练上非常高效,但对于单一输入进行推断的场合, 并行度的优势不能完全发挥。
第二,无法灵活配置硬件结构。 GPU 采用 SIMT 计算模式,硬件结构相对固定。目前深度学习算法还未完全稳定,若深度学习算法发生大的变化, GPU 无法像 FPGA 一样可以灵活的配制硬件结构。
第三,运行深度学习算法能效低于 FPGA。
尽管 FPGA 倍受看好,甚至新一代百度大脑也是基于 FPGA 平台研发,但其毕竟不是专门为了适用深度学习算法而研发,实际应用中也存在诸多局限:
第一,基本单元的计算能力有限。为了实现可重构特性, FPGA 内部有大量极细粒度的基本单元,但是每个单元的计算能力(主要依靠 LUT 查找表)都远远低于 CPU 和 GPU 中的 ALU 模块。
第二、 计算资源占比相对较低。 为实现可重构特性, FPGA 内部大量资源被用于可配置的片上路由与连线。
第三,速度和功耗相对专用定制芯片(ASIC)仍然存在不小差距。
第四, FPGA 价格较为昂贵,在规模放量的情况下单块 FPGA 的成本要远高于专用定制芯片。
因此,随着人工智能算法和应用技术的日益发展,以及人工智能专用芯片 ASIC产业环境的逐渐成熟, 全定制化人工智能 ASIC也逐步体现出自身的优势,从事此类芯片研发与应用的国内外比较有代表性的公司如图所示。
▲早期人工智能专用芯片(包括类脑芯片) 研发情况一览
深度学习算法稳定后, AI 芯片可采用 ASIC 设计方法进行全定制, 使性能、功耗和面积等指标面向深度学习算法做到最优。
5. 类脑芯片
类脑芯片不采用经典的冯·诺依曼架构,而是基于神经形态架构设计,以 IBM Truenorth为代表。 IBM 研究人员将存储单元作为突触、计算单元作为神经元、传输单元作为轴突搭建了神经芯片的原型。
目前, Truenorth 用三星 28nm 功耗工艺技术,由 54 亿个晶体管组成的芯片构成的片上网络有 4096 个神经突触核心,实时作业功耗仅为 70mW。
由于神经突触要求权重可变且要有记忆功能, IBM 采用与 CMOS 工艺兼容的相变非挥发存储器(PCM)的技术实验性的实现了新型突触,加快了商业化进程。
AI 芯片的分类及技术的更多相关文章
- 深度 | AI芯片终极之战
深度 | AI芯片终极之战 https://mp.weixin.qq.com/s?__biz=MzA4MTQ4NjQzMw==&mid=2652712307&idx=1&sn= ...
- 一文解读AI芯片之间的战争 (转)
2015年的秋天,北京的雨水比往年要多些,温度却不算太冷.这一年里,年仅23岁的姚颂刚刚拿到清华大学的毕业证书;32岁的陈天石博士毕业后已在中科院计算所待了整整8年;而在芯片界摸爬滚打了14年的老将何 ...
- 人工智能AI芯片与Maker创意接轨(下)
继「人工智能AI芯片与Maker创意接轨」的(上)篇中,认识了人工智能.深度学习,以及深度学习技术的应用,以及(中)篇对市面上AI芯片的类型及解决方案现况做了完整剖析后,系列文到了最后一篇,将带领各位 ...
- 人工智能AI芯片与Maker创意接轨 (中)
在人工智能AI芯片与Maker创意接轨(上)这篇文章中,介绍人工智能与深度学习,以及深度学习技术的应用,了解内部真实的作业原理,让我们能够跟上这波AI新浪潮.系列文来到了中篇,将详细介绍目前市面上的各 ...
- 人工智能AI芯片与Maker创意接轨 (上)
近几年来人工智能(Artificial Intelligence, AI)喴的震天价响,吃也要AI,穿也要AI,连上个厕所也要来个AI智能健康分析,生活周遭食衣住行育乐几乎无处不AI,彷佛已经来到科幻 ...
- AI芯片:高性能卷积计算中的数据复用
随着深度学习的飞速发展,对处理器的性能要求也变得越来越高,随之涌现出了很多针对神经网络加速设计的AI芯片.卷积计算是神经网络中最重要的一类计算,本文分析了高性能卷积计算中的数据复用,这是AI芯片设计中 ...
- Nvidia和Google的AI芯片战火蔓延至边缘端
AI 的热潮还在持续,AI 的战火自然也在升级.英伟达作为这一波 AI 浪潮中最受关注的公司之一,在很大程度上影响着 AI 的战局.上周在美国举行的 GTC 2019 上,黄仁勋大篇幅介绍了英伟达在 ...
- 深度 | AI芯片之智能边缘计算的崛起——实时语言翻译、图像识别、AI视频监控、无人车这些都需要终端具有较强的计算能力,从而AI芯片发展起来是必然,同时5G网络也是必然
from:https://36kr.com/p/5103044.html 到2020年,大多数先进的ML袖珍电脑(你仍称之为手机)将有能力执行一整套任务.个人助理将变的更加智能,它是打造这种功能的切入 ...
- 一文看懂AI芯片竞争五大维度
下一波大趋势和大红利从互联网+让位于人工智能+,已成业界共识.在AI的数据.算法和芯片之三剑客中,考虑到AI算法开源的发展趋势,数据与芯片将占据越来越重要的地位,而作为AI发展支柱的芯片更是AI业的竞 ...
随机推荐
- 轮子:DateUtil.java
日期工具类 import java.text.SimpleDateFormat; import java.util.Date; public class DateUtil { public stati ...
- Google字体API使用简单示例
一.前面的话 Google总会做些造福大众的事情,例如提供了web在线字体的API,这玩意其实去年就有了,但是字体种类手指头+脚趾头就可以数出来.but 最近,貌似Google对字体API进行了升级, ...
- 1669 DINIC+二分
题意: 给你一些名单,和每个名单可以放在哪个分组里,现在要求你把所有的人都分到一个他属于的分组(之一),然后问你分组中最多的那个人数最少是多少... 思路: 二分最多的最少,然后 ...
- drozer源码学习:app
源码下载:https://github.com/mwrlabs/drozer:模块的源码位于src.drozer.modules,根据模块名来划分文件夹: app.auxiliary.exploit. ...
- 你管这破玩意叫CPU?
每次回家开灯时你有没有想过,用你按的开关实际上能打造出 复杂的 CPU来,只不过需要的数量可能比较多,也就几十亿个吧. 伟大的发明 过去200年人类最重要的发明是什么?蒸汽机?电灯?火箭?这些可能都不 ...
- StreamReader & StreamWriter
这节讲StreamReader & StreamWriter,这两个类用于操作字符或者字符串,它将流的操作封装在了底层,相对来说用法比较简单,但是它不支持Seek()方法. 先看一下代码: F ...
- Python 基础教程 —— Pandas 库常用方法实例说明
目录 1. 常用方法 pandas.Series 2. pandas.DataFrame ([data],[index]) 根据行建立数据 3. pandas.DataFrame ({dic}) ...
- Java 反编译工具哪家强?对比分析瞧一瞧
前言 Java 反编译,一听可能觉得高深莫测,其实反编译并不是什么特别高级的操作,Java 对于 Class 字节码文件的生成有着严格的要求,如果你非常熟悉 Java 虚拟机规范,了解 Class 字 ...
- 『动善时』JMeter基础 — 14、使用JMeter发送Post请求
目录 1.Post请求参数类型说明 2.用于演示的项目说明 3.发送Post请求示例 (1)测试计划内包含的元件 (2)请求参数类型为x-www-form-urlencoded 4.请求参数form- ...
- zimbra安装ssl证书
zimbra在后台安装证书签发机构签发证书出现时候出现错误:{RemoteManager: mail.domain.com->zimbra@mail.domain.com:22} com.zim ...