首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

2018年人工智能芯片技术白皮书(二)

上一篇我们对AI的由来和发展做了简单的介绍

今天开始我们将从各个角度出发

来说说这个神秘的AI

今天要说的是——

AI芯片的关键特征

技术总述

目前,关于AI芯片的定义并没有一个严格和公认的标准。比较宽泛的看法是,面向人工智能应用的芯片都可以称为AI芯片。时下,一些基于传统计算架构的芯片和各种软硬件加速方案相结合,在一些AI应用场景下取得了巨大成功。但由于需求的多样性,很难有任何单一的设计和方法能够很好地适用于各类情况。因此,学界和业界涌现出多种专门针对人工智能应用的新颖设计和方法,覆盖了从从半导体材料、器件、电路到体系结构的各个层次。

我们在这里探讨的AI芯片主要包括三类:

一是经过软硬件优化可以高效支持AI应用的通用芯片,例如GPU ;

二是侧重加速机器学习(尤其是神经网络、深度学习)算法的芯片,这也是目前AI芯片中最多的形式 ;

三是受生物脑启发设计的神经形态计算芯片。

AI技术是多层面的,贯穿了应用、算法机理、芯片、工具链、器件、工艺和材料等技术层级。各个层级环环紧扣形成AI的技术链。AI芯片本身处于整个链条的中部,向上为应用和算法提供高效支持,向下对器件和电路、工艺和材料提出需求。一方面,应用和算法的快速发展,尤其是深度学习、卷积神经网络对AI芯片提出了2-3个数量级的性能优化需求,引发了近年来AI片研发的热潮。另一方面,新型材料、工艺和器件的迅速发展,例如3D堆叠内存,工艺演进等也为AI芯片提供了显著提升性能和降低功耗的可行性,这个推动力来源于基础研究的突破。总体而言,这两类动力共同促进了AI芯片技术近年来的快速发展。

新型计算范式

AI计算既不脱离传统计算,也具有新的计算特质,包括 :

1、处理的内容往往是非结构化数据,例如视频、图像及语音等,这类数据很难通过预编程的方法得到满意的结果。因此,需要通过样本训练、拟合及环境交互等方式,利用大量数据来训练模型,再用训练好的模型处理数据。

2、处理的过程通常需要很大的计算量,基本的计算主要是线性代数运算,典型的如张量处理,而控制流程则相对简单。对于这类运算,大规模并行计算硬件较传统通用处理器更为适合。

3、处理的过程参数量大,需要巨大的存储容量,高带宽、低延时的访存能力,以及计算单元和存储器件间丰富且灵活的连接。数据本地化特征较强,适合数据复用和近内存计算。

训练和推断

AI系统通常涉及训练(Training)和推断(Inference)过程。简单来说,训练过程是指在已有数据中学习,获得某些能力的过程;而推断过程则是指对新的数据,使用这些能力完成特定任务(比如分类、识别等)。对神经网络而言,训练过程就是通过不断更新网络参数,使推断(或者预测)误差最小化的过程 ;推断过程则是直接将数据输入神经网络并评估结果的正向计算过程。虽然训练和推断有很多类似的基本运算,都需要具有大量的并行处理,高内存带宽和低延迟操作,但是两者在计算和存储资源方面的需求方面存在显著的差异。

训 练

首先,对于训练来说,计算精度非常重要,因为它直接影响推断的准确度。支持训练的硬件必须支持具有较长字长的浮点数或定点数。其次,训练中通常同时包括正向和反向的计算过程,需要多次迭代,计算量要求非常高。这就需要支持训练的芯片不仅要具有强大的单芯片计算能力,还要具备很好的扩展性,可以通过多芯片系统提供更强大的计算能力。

再次,训练过程,特别是离线训练,必须处理大量的数据(高达1015到1018字节),因此,它对内存数量、访问内存的带宽和内存管理方法的要求都非常高。第四,由于训练需要更新(写入)和使用(读取)神经网络中的参数(权重),因而需要更复杂的数据同步技术。最后,重要参数的频繁写入也要求存储器能支持更快速的写入(特别是对于在线训练),这对于一些存储器技术来说是很大的挑战。

推 断

对推断来说,运算和存储的需求都远远低于训练。但由于推断的应用场景多种多样,部署在从云到端的各种设备,如数据中心、自动驾驶汽车、智慧家庭和IoT设备等,其需求和约束呈现出多样化的特点。对于多数应用来说,速度、能效、安全和硬件成本等是最重要的考虑因素,而模型的准确度和数据精度则可以依具体情况适当降低。

虽然目前大部分机器学习方法都可以比较清晰地划分为训练和推断的过程,但还有一些领域,比如增强学习(Reinforcement Learning)和在线学习(On-line Learning)则处于持续学习和改进模型的进程中。因此,在未来的AI应用当中,训练(学习)和推断在更多场景下会是交织在一起的。

大数据处理能力

人工智能的发展高度依赖海量的数据。满足高效能机器学习的数据处理要求是AI芯片需要考虑的最重要因素。一个无法回避的现实是,运算单元与内存之间的性能差距越来越大,内存子系统成为芯片整体处理能力提高的障碍,也就是通常所说的“内存墙”。人工智能工作负载多是数据密集型,需要大量的存储和各层次存储器间的数据搬移,导致 “内存墙”问题更加突出。为了弥补计算单元和存储器之间的差距,学术界和工业界正在两个方向上进行探索:

(1)富内存的处理单元。增加片上存储器的容量并使其更靠近计算单元,使得数据计算单元和内存之间的数据移动成本(时间和功耗)大大减少。

(2)具备计算能力的新型存储器。直接在存储器内部(或更近)实现计算。这种方法也被称为存内计算(Process-in-Memory PIM)或近数据计算(Near Data Computing NDC)。

数据精度

低精度设计是AI芯片的一个趋势,在针对推断的芯片中更加明显。对一些应用来说,降低精度的设计不仅加速了机器学习算法的推断(也可能是训练),甚至可能更符合神经形态计算的特征。近期已经证明,对于学习算法和神经网络的某些部分,使用尽可能低的精度(例如二进制数据)就足以达到预期效果,同时可以节省大量内存和降低能量消耗。通过对数据上下文数据精度的分析和对精度的舍入误差敏感性,来动态地进行精度的设置和调整,将是AI芯片设计优化的必要策略。

可重构能力

人工智能各领域的算法和应用还处在高速发展和快速迭代的阶段,考虑到芯片的研发成本和周期,针对特定应用、算法或场景的定制化设计很难适应变化。针对特定领域(包括具有类似需求的多种应用)而不针对特定应用的设计,将是AI芯片设计的一个指导原则,具有可重构能力的AI芯片可以在更多应用中大显身手,并且可以通过重新配置,适应新的AI算法、架构和任务。

软件工具

就像传统的CPU需要编译工具的支持,AI芯片也需要软件工具链的支持,才能将不同的机器学习任务和神经网络转换为可以在AI芯片上高效执行的指令代码,如 NVIDIA GPU通过CUDA工具获得成功。基本处理、内存访问及任务的正确分配和调度将是工具链中需要重点考虑的因素。当工具链将神经网络或其它模型映射到AI芯片上时,也有很多优化代码的机会,比如神经网络剪枝、权重压缩和动态量化等。目前,AI算法开发框架如TensorFlow、Caffe和PyTorch等,在AI应用研发中已经起到了至关重要的作用。对AI芯片来说,构建一个集成化的流程,将AI模型的开发和训练,硬件无关和硬件相关的代码优化,自动化指令翻译等功能无缝的结合在一起,将是成功部署的关键要求。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181217B0PK9X00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券