人工智能处理器的N种方案解读
来源: 本文内容来自公众号【非凡创芯力】,作者Henry Chen,谢谢。
人工智能 (AI) 正被广泛运用于各式各样的应用上,但也因为应用的多样化,因此目前没有一种处理器能够支持所有的人工智能解决方案。通用处理器 (General-Purpose Processors) 最容易编程的,而图形处理器 (Graphics Processors,GPUs) 则为大多数工作提供了较好的性能。针对特定工作优化的定制 AI 架构可以使用现场可编程门阵列 (Field Programmable Gate Array,FPGAs) 或是专用集成电路 (Application Specific Integrated Circuit,ASIC) 来展开。新的人工智能芯片技术,如软件定义硬件 (Software Defined Hardware,SDH),也正研发中。数据中心、自动驾驶和消费性/物联网应用程序需要不同的解决方案。
基于网络的服务使用人工智能来改进语音界面 (例如 Amazon 的 Alexa 语音助理)、搜索结果、人脸识别、语言翻译和垃圾邮件过滤等。自动驾驶汽车使用人工智能进行图像识别和路径规划。医疗、金融投资、石油勘探、制造业和零售业等各行各业也都发现人工智能可以改进工作流程和效率。
尽管研究人员在人工智能方面已经努力了几十年,但在过去 5 年,人工智能才取得巨大的进展,部分原因是深度神经网络 (Deep Neural Networks,DNN) 的出现。现在研究人员不再需要手工构建一个软件程序来识别照片中的人脸,只需将一系列贴有标签的照片输入网络,网络就会自动配置来识别人脸。这个过程我们称之为训练 (Training)。网络经过训练之后,它就可以处理新的照片来识别人脸,这种部署模式称为推理 (Inference)。
大多数人工智能处理发生在数据中心。例如,当你使用语音助理,如 Amazon 的 Alexa 或是 Apple 的 Siri,你的请求会被传输到云端 (Cloud),在那里,服务器会解析你的语音,然后生成正确的响应或回答,并将其发送回你的设备。但是,数据往返云端会产生延迟,影响响应速度,如果没有网络连接或连接因故中断,整个过程就会失败。
由于这些问题和其他原因 (如安全、隐私),人工智能处理开始出现在边缘 (Edge) 和客户端设备中,如智能手机、家庭网关 (Gateway)、物联网 (IoT) 和自动驾驶汽车等等。这种在靠近数据生成位置分析处理数据的方法称为边缘计算 (Edge Computing)。目前边缘计算大多用于推理,也就是使用预先已训练好之模型对生成的海量数据进行分析与推理,并且可以判断哪些数据不需传回云数据中心,进而减少流量。Google 的 Edge TPU (Tensor Processing Unit,张量处理器) 就是为边缘计算应用所开发的处理器。
人工智能处理最初是在通用处理器 (General-Purpose Processors) 上开发的,因为通用处理器非常普遍而且容易编程。渐渐的,研究人员发现图形芯片 (GPU) 可以提供更好的性能和电力效率。其他专门为神经网络设计的硬件架构也陆续问世。这些处理器通常是为推理进行优化的,而且还必须满足其目标市场的性能、功耗、成本和集成需求。因此,数据中心、自动驾驶汽车以及各种消费性和物联网系统都需要不同类型的人工智能芯片。
通用处理器 (General-Purpose Processors)
通用处理器为个人电脑 (PCs)、服务器 (Servers) 和超级计算机 (Supercomputers) 提供运算能力,运行各种各样的软件程序。顾名思义,深度神经网络 (DNNs) 比之前的简单网络复杂,因此研究人员求助于功能最强大的服务器来运行这些新网络,例如 Intel 的 Xeon 就是其中ㄧ个颇受欢迎的处理器。数据中心人员可以使用这些灵活的处理器运行标准程序或是 DNN,以跟上需求的变化。
Intel 预见到 DNN 将会大量普及,因此开发一款名为 AVX-512 的技术来因应这方面的需求。这种方法是该公司原始 AVX 设计的扩展,使每个 CPU 能够一次处理 512 位的数据,是标准 CPU 的 8 倍。这些 512 位可以通过多种方式分配,例如,16个单精度浮点值 (Single - Precision Floating Point Value,亦即 16个 32 位浮点) 或 64 个 8 位整数 (Integers)。这种灵活性非常重要,因为 DNNs 的训练通常需要 32 位浮点 (FP32),而推理可以使用较小的 8 位整数 (INT8) 来提高吞吐量 (Throughput) 和功率效率。
Intel 基于 Skylake-SP 设计的 Xeon Scalable 处理器,可实现多达 28 个具有 AVX-512 功能的 CPU 内核。高端 8180 型号在 3.2GHz 的峰值速度下,每秒可以产生超过 2 万亿 (Trillion) 次 FP32 操作,或是, 8 万亿次 INT8 操作,所消耗功率为 205W TDP (Thermal Design Power,热设计功耗)。该芯片还包含超过 45MB (兆字节) 的高速缓存 (Cache Memory),可存储大型 DNN 的关键参数。它并具有 6 个 DDR4 DRAM 通道,用以满足网络其余部分的高速存储需求。该公司还提供许多其他型号,以降低价格和功率水平。
虽然通用处理器易于编程,然而其计算内核数最多只有几十个,并行处理能力稍嫌不足,因此运算效能不及 GPUs。
图形处理器 (Graphics Processors)
为了创建高质量的图像,现代图形处理器 (GPU) 仰赖称为着色器内核 (Shader Cores) 的可编程引擎,这是具有强大的浮点运算能力的引擎。由于这些内核专注于计算并省略了通用处理器架构的许多功能,因此它们的晶粒 (die) 尺寸比 CPU 小,所以ㄧ个芯片可以放入较多的 GPUs。着色器内核可以对图形之外的任务进行编程,尽管它们的编程模型和软件开发工具比标准 CPU 较难以使用。
为了解决这个问题,人工智能研究人员创建了用于开发 DNN 的工具。这些 “框架 (Frameworks)” 为构建网络、指定节点和连接的数量提供一个高级接口 (High - Level Interface)。一旦指定,网络就可以通过应用程序编程接口 (Application Programming Interface,API) 和一组驱动程序在任何硬件上运行。通过这种方式,DNN 开发人员无需对底层硬件进行编程。目前,TensorFlow、Caffe/ Caffe2 和 Torch/Pytorch 是最受欢迎的 DNN 框架。
NVIDIA 是人工智能应用 GPU 芯片的领先供应商。它为所有受欢迎的框架以及其他工具提供驱动程序,以促进 DNNs 的开发和训练。例如,该公司为数据中心所开发的的高端 GPU Tesla V100 (“Volta”),它拥有 320 个着色器内核 (称为 Warp 内核),每秒可以处理 14 万亿 FP32 操作。此芯片及其高带宽内存 (High Bandwidth Memory,HBM) 的总功率为 250W TDP。V100 只有 6MB 的高速缓存,此小容量内存会影响大型网络的性能,尽管芯片使用 HBM 来部分弥补这一缺点。
此外,GPU 虽然擅长浮点运算,有着极高的运算效能,这优势却也成为它在某些 AI 应用上的绊脚石。如同前面提过的,DNNs 的推理 (Inference) 并不需要高精度浮点运算,因此使用 GPU 反而会造成功耗的浪费。
数据中心加速器 (Data - Center Accelerators)
虽然 GPU 为 DNN 提供了一个有效的解决方案,特别是在需要浮点运算时,但是 GPU 最初是为图形设计的,而不是为人工智能设计的。现在人工智能处理的需求非常大,许多公司正在开发定制芯片,优化 DNNs 加速。加速器 (Accelerators) 是指以现有芯片架构 (如 CPU、FPGA 等) 为基础,针对某特定算法或应用进行优化,进以提升在此特定应用时的运算速度。这种定制芯片每单位瓦可以提供最佳性能,尽管结果因实施情况会有所不同。
由于这些人工智能加速器的开发还处于起步阶段,因此研究人员正在应用许多不同的架构来解决这个问题。然而,一些共同的特征开始显现。例如,用于推理的产品可以不使用浮点运算 (例如 FP32),而专注于较小的整数运算 (例如 INT8)。一个整数 MAC (Multiply Accumulate,乘积累加运算) 单元的晶粒面积 (Die Area) 大约只有浮点单元的一半而已。此外,8 位 MAC 使用的面积是 32 位 MAC 的四分之一。因此,从 FP32 转移到 INT8 可以减少多达 8x 的计算面积。更小的面积也同时意味着较低的功耗。研究显示,对于推理来说,FP32 和 INT8 在 DNN 精度上的差异是很小的。研究人员正在评估其他数字格式,以优化精度和晶粒面积/功耗之间的权衡。
图一: 脉动 MAC 阵列 (Systolic MAC Array)。在这种架构中,当激活数据流过时,权重 (Weight) 沿着阵列向下流动,从而使每个周期能够进行大量的乘积累加运算 (MAC)。此示例来自 Google 的 TPU。(Photo Source : The Linley Group)
另一个共同的特征是脉动 MAC 阵列 (Systolic MAC Array)。如图一所示,一个脉动阵列可以同时计算多达 256 个 MAC,然后数据立即流到下一行进行下一个计算。相比之下,CPU 或 GPU 内核对指令进行解码,从寄存器 (Register) 加载 512 位数据,最多计算 16 个 MAC,然后将结果存储到寄存器中。脉动阵列消除了这些额外的指令解码和寄存器存取动作,简化了芯片设计。最后,人工智能处理器通常包括特殊的硬件来计算常用的 DNN 函数,如激活 (Activations)、归一化 (Normalization) 和池化 (Pooling),这些函数在标准 CPU 或 GPU 上通常需要执行多个指令。
2016年,Intel 收购了Nervana Systems,这是一家开发为 DNN 优化的新架构的初创公司。Intel 希望 Nervana 设计能够支持数据中心的培训和推理。该设计使用片上 HBM 实现大容量存储器带宽。2019 年ㄧ月 Intel 推出了该公司为推理所研发的 Nervana 神经网络推理处理器 (NNP-I),该处理器将在 2019 年下半年出货而用于训练的处理器将在年底推出。
现场可编程门阵列 (FPGAs)
定制架构 (Custom Architecture) 芯片在人工智能加速器具有巨大前景,例如专用集成电路 (ASIC) 因为是针对特定算法及应用优化所设计,因此其效能、面积 (成本)、设计保密度等各方面都具有优势。但问题是,实现定制架构,从芯片设计、掩膜 (Mask) 制作、晶圆厂投片制造、测试验证到量产,可能需要花上ㄧ年以上的时间,而且一旦设计确认,芯片制造出来,硬件就无法更改。再者,研究人员仍在继续开发新的 DNN 算法、新的激活函数 (Activation Function) 和新的数据格式,如果设计者猜错或者没有预测到新的算法,他们的产品可能会在市场上失败。
一种解决方案是使用 FPGA,这种灵活的芯片可以实时实现新的设计。公司可以将相同的架构烧录到 FPGA 中,几分钟内就可以启动并运行,而不是将一个新架构精雕细琢到 ASIC 中,然后花数个月等待芯片从晶圆厂回来。此外,如果公司想要修复一个错误,或是对架构做一个微小改进,它可以在几分钟内更新相同的 FPGA 芯片,而不需要购买新的芯片。
FPGA 非常适合神经网络,因为它除了可配置逻辑 (Configurable Logic) 模块外,还包括许多称为 DSP 模块的 MAC 单元。Xilinx 与 Intel 是 FPGA 人工智能加速器的领导者。例如,Intel 的 Stratix 10 FPGA 拥有多达 5,760 个 DSP 模块,每秒可产生 23 万亿次整数运算 (Stratix 10 使用比 8 位整数更精确的 18 位整数)。FPGA 还可以配置为每秒产生 9 万亿次 FP32 运算。在处理这些 DNN 计算时,Intel FPGA 的功率消耗 (包括内存) 为 125W。
微软创建了一个名为 Brainwave 的架构,并将其在 Intel Stratix FPGAs 中实例化,从而加速数据中心的推理速度。该公司每周都会进行ㄧ些调整,同时将其推广到数千个 FPGAs。使用这种迭代方法,它开发并测试了一个定制的 9 位浮点格式 (FP9),然后确定采用一个比标准 INT8 性能高一倍的 8 位格式 (FP8)。为了满足其数据中心的需求,微软还针对 Brainwave 进行低延迟优化,即使在少量请求的情况下也能保持高效率。这些定制化演示了将 FPGAs 用于 DNNs 的优势。
虽然 FPGAs 有着上述的优势,但为了达到灵活使用的目的,FPGAs 实际可运用之逻辑电路只占芯片面积的 10%~20% 左右,其余都是用在连线电路上,这意味著芯片面积的浪费与成本的提高。因此现代 FPGA 已崁入很多常用的计算单元甚至是 IP,比如加法器、乘法器、片上 RAM,甚至嵌入式CPU,这些单元不是通过传统 FPGA 编程方式来构建,而是跟 ASIC 一样,用晶体管搭成,这可有效节省芯片面积,同时提升性能,这些计算单元同样的可以让用户配置和组合。
软件定义硬件 (SDH)
基于上述 FPGA 崁入常用计算单元的同样概念,一种新型的芯片技术 — 软件定义硬件 (Software Defined Hardware,SDH) 应运而生。SDH 的目标是构建运行时可重新配置的软硬件,也让芯片可以根据软件对其硬件进行调整。SDH 可以实现接近 ASIC 的性能,但不会牺牲数据密集型算法的可编程性。由美国国防部先进计划署 (DARPA) 推动的电子产业振兴计划 (Electronics Resurgence Initiative,ERI),其中一个计划就是软件定义硬件。SDH 计划旨在创建硬件/软件系统,允许数据密集型算法以接近 ASIC 的效率运行,但又不会面临 ASIC 所拥有的高制造成本、长开发时间或单一应用等等的缺点或限制。
SDH 将创建可塑的硬件/软件体系结构,与 ASIC 不同,它允许应用程序将硬件配置延迟到运行时才进行。SDH 可以:
ㄧ、 当输入数据发生变化时,动态优化代码和硬件,
二、 重用硬件来處理新的问题和新的算法,以解决现有问题。
为了实现这些目标,SDH 需要非常快的硬件重新配置速度和动态编译能力才能达成这些目标。预期 SDH 系统的效率将是 ASIC 的 5 倍、CPU 的 500-1000 倍。
图二: SDH 的概念和结构 。(Photo Source : DARPA)
自动驾驶 (Autonomous Driving)
每家大型汽车制造商都在开发自动驾驶技术,最终将允许乘客在无人驾驶的情况下安全地搭乘汽车。这项技术也可以应用于卡车、飞机和无人机。如今,有些汽车已经具备了半自动化技术,但它们需要驾驶员的监督。到 2020 年,我们预计大规模生产所谓的 SAE 等级 4 的自动驾驶汽车,在有限的地理区域 (如城市) 和良好的天气条件下,这些汽车是不需要人类驾驶的。(注: SAE 是美国汽车工程师学会 (Society of Automotive Engineers))
表ㄧ: 自动驾驶汽车 SAE 分级表。
要达成这个目标需要复杂的人工智能算法和处理器。自动驾驶汽车必须分析来自摄像机和其他传感器的实时数据,识别地标 (如车道标志、路标、建筑物) 以及潜在的危险 (如车辆、行人、道路碎片)。DNNs 在这种图像识别方面表现出色。精确解析车辆周围的环境这最困难的问题解决之后,其他复杂的算法则用以确定通往目的地的最佳路径,同时确保安全。DNNs 和传统软件的结合可以处理路径规划。
尽管它们具有庞大车身的和强大的引擎,但汽车功率和尺寸的限制比数据中心更多。消费者不希望整个行李箱填满驱动系统,汽车制造商将功率消耗限制在 40W 左右,以避免降低发动机性能和行驶里程。新的处理器必须满足这些限制,同时提供等级 4 和等级 5 自动驾驶所需的高性能。
2017 年,Intel 收购了 Mobileye,这是等级 2 和等级 3 高级辅助驾驶系统 (Advanced Driver Assistance Systems,ADAS) 处理器的领先供应商。Mobileye 专注于视觉处理,即分析相机图像和识别物体的能力。例如该公司的 EyeQ4 处理器每秒可产生 2 万亿次整数运算,而功耗仅为 3W,与高端数据中心处理器相比这数值低多了。Intel 计划将其中两种处理器与负责处理路径规划的低功耗 Xeon 芯片相结合,这种组合可以满足一辆汽车的 40W 功率预算。
消费性 (Consumer) /物联网 (IoT) 产品
人工智能处理适用于许多消费产品。除了像 Amazon Alexa 这样的语音助理现在已普遍出现在各家厂商之智能音箱外,我们开始看到支持声控的电视,烤箱,智能手表,照明什至厕所。虽然用户可以接受在做一般查询的云处理时有些延迟,但在居家处理照明调整或更改电视或广播频道的语音命令则必需获得快速响应。能够识别少量基本语音命令的神经网络所需要的存储器和处理能力相对较少。
大多数网络安全监控摄像机都会将视频发送到云上进行处理,但这种方法会占用大量带宽,特别是对于高解析度摄像机。因此,一些 “智能相机” 集成了一个处理器,该处理器可以分析图像并只有在出现异常时才将图像发送到云端。无人机可以使用类似的处理器来分析周围环境、避开障碍物、或在滑雪场或滑板公园跟踪拍摄对象。
消费性应用的处理器必须以尽可能低的成本交付所需的 AI 性能。许多应用还需要使用较小的芯片,以消耗尽较少的功率。即使微控制器有足够的性能来处理基本的语音识别,人工智能芯片也可以用一小部分的功率来完成相同的功能。这种节能在智能手表和其他电池驱动设备中至关重要。
为了满足这些消费者的需求,一些公司开发了低功耗的人工智能处理器。例如,Intel 提供了提供由其 Movidius子公司开发的视觉处理芯片 Myriad 2。该芯片的运算速度为每秒 1 万亿次,但它的功耗在一般情况只有约 1W 左右。它有 12 个定制的 SHAVE 内核,每个周期可以处理 128 位,以及一个新的神经计算引擎,可提供大部分的 DNN 加速。为了简化软件开发,Myriad 2 还提供一种做成类似 U 盘的包装让你可以直接插入连接个人电脑。(注: 本文发稿时,有 16 个 SHAVE 内核的 Myriad X 也已问世)
图三: Intel (Movidius) 搭载 Myriad 2 的视觉处理芯片提供类似 U 盘的包装。(Photo Source : Intel)
结论
自从深度神经网络 (DNN) 出现以后,人工智能处理正在席卷科技行业,并渗透到许多其他领域,通过自动化简单的任务,改善工作流程和消费者的生活方式。为了充分实例化这些功能,AI 处理不能被困在云中,相反的,它正向终端用户 (边缘) 靠近。要有效地实现这些人工智能任务,需要为汽车、无人机、安全摄像头、家用电器、可穿戴设备、医疗设备和其他物联网系统开发新型处理器。数据中心将继续发挥重要作用,特别是在训练 DNNs 方面,因此云服务提供商也在为他们的人工智能需求寻找更好的处理器。
没有一种处理器能够同时满足这些具有不同性能、功率和成本要求的广泛应用,每ㄧ种处理器也各自有其强项及弱点。开发者必须根据他们的应用选择适当的处理器,才能在这极具竞争的市场中脱颖而出。
参考文章 :
-
"AI Requires Many Approaches" by Linley Gwennap Principal Analyst
-
"Software Defined Hardware (SDH)" by DARPA Mr. Wade Shen
*免责声明:本文由作者原创。文章内容系作者个人观点,半导体行业观察转载仅为了传达一种不同的观点,不代表半导体行业观察对该观点赞同或支持,如果有任何异议,欢迎联系半导体行业观察。
今天是《半导体行业观察》为您分享的第1921期内容,欢迎关注。
推荐阅读
|
2018半导体行业资料合集 长期有效! |
半导体行业观察
『 半导体第一垂直媒体 』
实时 专业 原创 深度
识别二维码 ,回复下方关键词,阅读更多
科创板|OLED|开源|射频|5G|氮化镓|展会|VCSEL
回复
投稿
,看《如何成为“半导体行业观察”的一员 》
回复 搜索 ,还能轻松找到其他你感兴趣的文章!
相关文章
- 半导体行业观察
- 摩尔芯闻