CPU/GPU让路,AI芯片时代已至

摘自——techradar

如今,层出不穷的智能设备已渗透进我们的生活里,语音助手、面部识别摄像头,甚至是你的个人电脑都会或多或少的装有这些东西。然而,它们并不能通过魔法来工作,需要一些东西来支持它们所做的所有数据处理。一些设备可以通过大量的数据中心在云端完成。其他设备则是通过人工智能(AI)芯片的帮助来完成所有处理。

据了解,AI技术的发展和应用在美国、中国和欧盟等世界主要国家中已经成为国家战略,在国家的科技发展和产业竞争中占据越来越重要的位置。同时,AI技术在手写识别(例如MNIST数据集)、人脸识别(例如Facebook的DeepFace)、语音识别(例如亚马逊的Alexa、Apple的Siri、微软的Cortana)、机器人技术(例如机器人操作系统)、自动驾驶(例如TartanRacing),甚至智力游戏(例如Google的AlphaGo)和视频游戏(例如Pac-mAnt)等领域得到了广泛应用。随着人工智能的发展,产生了更多的专业技术,比如神经网络模型、机器学习等,依靠经验学习而不是编程来做出决策。反过来,机器学习为深度学习奠定了基础,深度学习涉及分层算法,以便更好地理解数据。

CPU/GPU让路,AI芯片时代已至

但是什么是人工智能芯片呢?它和其他设备上的芯片有什么不同?这篇文章将为您介绍AI芯片的重要性,用于不同应用的不同类型的AI芯片,以及在设备中使用AI芯片的好处。

为什么其他芯片不适合人工智能

在20世纪80年代,我们看到了个人电脑的兴起。这是由CPU(中央处理单元)实现的,它执行程序中指令所指定的基本算术、逻辑、控制和输入/输出操作。它是PC的大脑。为此,在CPU领域也成就了许多巨头,包括英特尔和AMD。

然而,当谈到CPU的发展时,我们还必须提到arm, arm的芯片架构始于20世纪80年代的个人电脑,但直到移动计算、智能手机和平板电脑的崛起,arm才成为一个有力的参与者。2005年,市面上98%的手机都至少使用了某种形式的arm架构。2013年,全球共生产了100亿个arm芯片,全球近60%的移动设备中都有基于arm的芯片。可以看出,arm是人工智能芯片领域的重要组成部分。

AI处理单元

在人工智能处理方面,GPU通常比CPU好,但它们并不完美。该行业需要专门的处理器来实现人工智能应用程序的高效处理、建模和推理。因此,芯片设计者现在正致力于创建优化执行这些算法的处理单元。它们有许多类型,如NPU、TPU、DPU、SPU等,我们统称它们为AI处理单元(AI PU)。

AI PU的创建是为了执行机器学习算法,通常通过人工神经网络等预测模型进行操作。它们通常被分类为训练或推理,因为这些过程通常是独立执行的。

我们已经在现实世界中看到了一些应用:

监控系统或区域免受威胁,如涉及实时面部识别的安全系统(IP摄像头、门摄像头等)。

用于零售或企业与客户互动的机器人

语音助手的自然语言处理

AI处理器vs GPU

有些人可能会问——GPU不是已经能够执行AI模型了吗? GPU确实有一些属性可以方便处理AI模型。

Gpu可以处理二维或三维的图形,因此需要同时并行处理多个函数串。人工智能神经网络也需要并行处理,因为它们有分支节点,就像动物大脑中的神经元一样。所以,GPU可以很好地完成这一部分。

然而,神经网络也需要卷积,也就是需要卷积神经网络CNN,而这正是GPU出错的地方。简而言之,GPU基本上是为图形而优化的,而不是为神经网络而优化的——它们充其量只是一个代理。

我们为什么需要用到CNN?

首先对于普通的神经网络来说也会遇到一些问题。假设我们要做图像识别,把一张图片丢到机器,机器能理解的就是每个像素点的值,我们在搭建好神经网络模型之后,需要做的就是用数据训练,最终需要确定的是每一个神经元参数,这样我们就可以确定模型了。

CPU/GPU让路,AI芯片时代已至

CPU/GPU让路,AI芯片时代已至

假设我们输入的是50*50像素的图片,这依然有2500个像素点,而我们生活中基本都是RGB彩色图像,有三个通道,那么加起来就有2500*3=7500个像素点。

如果用普通的全连接,深度比较深时,那需要确认的参数太多了,对于计算机的计算能力,和训练模型来说都是比较困难的事。所以,普通神经网络的问题是:需要确认的参数太多。

这时,CNN就会出场。CNN是一种多层神经网络,擅长处理图像特别是大图像的相关机器学习问题。CNN通过一系列方法,成功将数据量庞大的图像识别问题不断降维,最终使其能够被训练。说的直白一点,就是通过缩小样本,减小输入的特征变量,从而减少参数量,这样可以大大减少分析时间。

神经网络结构大体都长这样:

CPU/GPU让路,AI芯片时代已至

其实卷积神经网络依旧是层级网络,只是层的功能和形式做了变化,可以说是传统神经网络的一个改进。这里就不再赘述。

另一个需要考虑的重要因素是目前人工智能的发展速度如此之快。世界各地的研究人员和计算机科学家都在以指数级的速度不断提高人工智能和机器学习的标准,而CPU和GPU作为兼收所有硬件的发展,根本无法跟上。同时摩尔定律已经跟不上现在的发展速度了,即使在最佳状态下也无法跟上人工智能的发展步伐。

人工智能的加速最终将依赖于一种专门的人工智能加速器,比如AI PU。一般需要AI PU作以下用途:

与GPU相比,加速机器学习任务的计算数倍(近10K倍)

与GPU和CPU相比,机器学习任务能耗低,资源利用率高

AI SOC的组成部分

虽然AI PU构成了芯片上AI系统的大脑,但它只是组成芯片的一系列复杂组件中的一部分。介绍一下AI SoC的组成、与AI PU配对的组件以及它们如何协同工作。

NPU

这是神经处理单元或矩阵乘法引擎,AI SoC的核心操作在此执行。值得指出的是,对于人工智能芯片制造商来说,这也是任何人工智能SoC脱颖而出的秘密武器。

控制器

这些是处理器,通常基于RISC-V,ARM,或自定义逻辑指令集架构(ISA)开发,用于控制和通信所有其他块和外部处理器。

是否在本地控制是一个基本的问题,设计之前就要想好它会被用在哪儿,它在哪里被使用,它被谁使用?

SRAM

这是用于存储模型或中间输出的本地内存。你可以把它想象成你家的冰箱。虽然它的存储空间很小,但它可以非常快速和方便地抓取东西,比如数据。在某些情况下,尤其是与边缘人工智能相关的情况下,速度是至关重要的,这在智能驾驶领域尤为凸显。

在一个芯片中包含多大的SRAM是基于成本和性能的决定。更大的SRAM需要更高的前期成本,但使用DRAM的次数会更少,DRAM是一种典型的、更便宜的内存,主板上的内存条就是,所以从长远来看,它是值得的。

另一方面,较小的SRAM前期成本较低,但需要更多的访问DRAM;这种方法效率较低,但如果市场要求某一特定用例需要一种更廉价的芯片,则可能需要降低成本。

处理速度是SRAM大小之间的区别,就像RAM影响计算机的性能和处理性能需求的能力一样。

I / O

它是把这些块(blocks)连接到SoC外部的组件,例如DRAM和潜在的外部处理器。这些接口对于AI SoC能否最大化发挥性能至关重要。例如,如果一个V8引擎连接到一个4加仑的油箱,它就必须每隔几个街区就去加油。因此,接口及其连接对象(DRAM、外部处理器等)需要显示AI
SoC的潜在性能。例如,DDR是DRAM的接口。所以,如果把SRAM比作冰箱,那么DRAM就像杂货店。它有更大的存储空间,但它需要更多的时间去搬运。

互连结构

互连结构是处理器(AI PU、控制器)与SoC上所有其他模块之间的连接。像I/O一样,互连结构在提取AI SoC的所有性能方面必不可少。不过,我们通常只会注意到芯片中的互连结构。

无论您的处理器有多快或多么具有开创性,只有当您的互连结构能够跟上并不会产生总体性能的延迟时,创新才会起作用,就像高速公路如果没有足够的车道,高峰时段照样堵车。

所有这些部件都是构成人工智能芯片的关键。虽然不同的芯片可能有额外的组件或对这些组件不同的优先级,正如SRAM,这些基本组件以共生的方式一起工作,以确保AI芯片可以快速和有效地处理AI模型。与CPU和GPU不同,AI SoC的设计还远未成熟。

AI芯片用例

市场上有许多不同的芯片,所有的命名方案都取决于设计公司。这些芯片有不同的用法,包括它们所使用的模型,以及它们所加速的应用程序。

训练和推理

人工智能本质上是利用人工神经网络模拟人类大脑,其目的是替代我们大脑中的生物神经网络。神经网络是由一群一起工作的节点组成的,可以被调用来执行一个模型。

这就是人工智能芯片发挥作用的地方。它们特别擅长处理这些人工神经网络,并被设计用来做两件事:训练+推理。

CPU/GPU让路,AI芯片时代已至

为训练而设计的芯片实际上扮演着网络教师的角色,就像一个在学校的孩子。一个原始的神经网络最初是不发达的,通过输入大量的数据来进行训练。训练是依赖于计算的,所以我们需要专注于训练的AI芯片,它能够快速有效地处理这些数据。芯片越强大,网络学习速度就越快。

一旦一个网络经过训练,它就需要用于推理的芯片,以便使用现实世界中的数据,如面部识别、手势识别、自然语言处理、图像搜索、垃圾邮件过滤等。将推理视为你最有可能在人工智能系统中看到的方面,除非你从事的是训练方面的人工智能开发。

你可以把训练看作是在编篡一本字典,而推理则类似于查找单词并理解如何使用。两者都是必要、共生的。

值得注意的是,为训练而设计的芯片也可以进行推理,但推理芯片不能进行训练。

云计算和边缘

我们需要了解的AI芯片的另一个方面是,它可以用于云应用和边缘端,当然,这也是需要训练和推理的。

云计算之所以有用,是因为它的可访问性,因为它的功能完全可以在非prem情况下使用。在这些用例中,您不需要设备上的芯片来处理任何推理,这可以节省电力和成本。然而,在隐私和安全方面,它也有缺点,因为数据存储在云服务器上,可能会遭到黑客攻击。对于推理用例,它也可能效率较低,因为它没有边缘芯片那么专业。

处理“边缘推理”的芯片也可以在一个设备上,比如面部识别摄像头。因为所有的数据都存储在设备上,而且芯片通常都是为特定目的而设计——例如,面部识别摄像头会使用一种擅长运行面部识别模型的芯片。但如在设备上增加另一个芯片会增加成本和电力消耗。重要的是要使用边缘AI芯片来平衡成本和功率,以确保设备对其细分市场来说成本刚刚好,或者不是太耗电。

以下是这些应用程序和芯片通常是如何配对的:

云+训练

这种配对的目的是开发用于推理的人工智能模型。这些模型最终细化为特定于用例的AI应用程序。这些芯片功能强大,运行成本昂贵,而且设计的目的是尽可能快地进行训练。

CPU/GPU让路,AI芯片时代已至

比如英伟达DGX-2系统,DGX-2 使用 16 个 SXM3 GPU 卡提供每秒 2 千万亿次浮点运算的计算性能,可提供 10 倍的深度学习性能,而功耗仅为 10kW。它由16个NVIDIA V100张量核心GPU组成。另一个就是英特尔Habana Gaudi芯片。

人们每天都需要大量训练的应用程序包括Facebook photos和谷歌translate。

云+推理

这是在设备上无法进行需要强大的处理能力的推理。这是因为应用程序需要利用更大的模型并处理大量数据。

例如高通Cloud AI 100,这是用于大规模云数据中心的人工智能的大型芯片。还有就是阿里巴巴的含光800,Graphcore Colossus Mk2 GC200 IPU。

CPU/GPU让路,AI芯片时代已至

训练芯片被用于训练Facebook的照片或谷歌翻译,云推理芯片用于处理你输入的数据,使用这些公司创建的模型。其他例子包括人工智能聊天机器人或大型科技公司运营的人工智能服务。

边缘+推理

使用设备上的边缘芯片进行推理可以消除任何与网络不稳定或延迟有关问题,并且更好地保护所使用数据的隐私和安全性。其优点是在上传大量数据时所需的带宽,特别是图像或视频等可视化数据,无需相关成本,因此只要成本和功耗达到平衡,就可以比云计算更便宜、更高效。

CPU/GPU让路,AI芯片时代已至

比如耐能Kneron芯片,KL520和最近推出的KL720芯片,这是为设备上使用而设计的低功耗、低成本的芯片。比如他们的KL520,它能够给 2D、3D 图像识别提供支持,适配各种 2D、3D 传感器,适用于结构光、ToF、双目视觉等 3D 传感技术并计算不同神经网络模型,且兼具规格、性能、成本等多重优点,解决 3D
模组相对较贵、芯片成本高和硬件功耗高等问题。正是这样,这颗芯片能被广泛应用于智能门锁、门禁系统、机器人、无人机、智能家电、智能玩具等智能物联网领域。其他的比如英特尔Movidius和谷歌的Coral TPU。

CPU/GPU让路,AI芯片时代已至

应用领域包括面部识别监控摄像头,用于行人和危险检测或驾驶意识检测的车辆摄像头,以及用于语音助手的自然语言处理。

所有这些不同类型的芯片及其不同的实现、模型和用例都是未来AIoT发展的必要条件。如果得到5G等其他新兴技术的支持,它们的性能将会更上一层楼。无论是在家里还是在工作中,人工智能正在迅速成为我们生活的重要组成部分,人工智能芯片空间的发展将迅速,不久的将来将会有更多类型的芯片问市,让我们的工作生活更加便利迅捷。

ozabc