Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix error image #92

Merged
merged 3 commits into from
May 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions docs/第二章/2.4 AI硬件加速设备.html
Original file line number Diff line number Diff line change
Expand Up @@ -862,7 +862,7 @@ <h2>2.4.1 TPU<a class="headerlink" href="#tpu" title="永久链接至标题">#</
<section id="id1">
<h3>芯片架构设计<a class="headerlink" href="#id1" title="永久链接至标题">#</a></h3>
<p>TPU的设计架构如下图</p>
<img src="./figures/TPU.jpg" />
<img src="../../source/第二章/figures/TPU.jpg" />
<p>上图:In-datacenter performance analysis of a tensor processing unit,figure 1</p>
<p>由上图可见,整个TPU中最重要的计算单元是右上角黄色的矩阵乘单元“Matrix Multiply Unit”,它包含256x256个MAC部件,每一个能够执行有符号或者无符号的8位乘加操作。它的输入为权重数据队列FIFO和统一缓冲Unified Buffer,即图中指向它的两个蓝色部分。在计算结束后,16位结果被收集并传递到位于矩阵单元下方的4MiB 32位蓝色累加器Accumulators中,之后由黄色的激活单元在累加后执行非线性函数,并最终将数据返回给统一缓冲。</p>
<p>Matrix Multiply Unit矩阵处理器作为TPU的核心部分,它可以在单个时钟周期内处理数十万次矩阵(Matrix)运算。MMU有着与传统CPU、GPU截然不同的架构,称为脉动阵列(systolic array)。之所以叫“脉动”,是因为在这种结构中,数据一波一波地流过芯片,与心脏跳动供血的方式类似。而如下图所示,CPU和GPU在每次运算中都需要从多个寄存器(register)中进行存取,而TPU的脉动阵列将多个运算逻辑单元(ALU)串联在一起,复用从一个寄存器中读取的结果。每个ALU单元结构简单,一般只包含乘法器、加法器以及寄存器三部分,适合大量堆砌。</p>
Expand All @@ -880,13 +880,13 @@ <h4>脉动阵列设计<a class="headerlink" href="#id4" title="永久链接至
<p>TPU采用了与传统CPU和GPU截然不同的脉动阵列(systolic array)结构来加速AI运算,脉动阵列能够在一个时钟周期内处理数十万次矩阵运算,在每次运算过程中,TPU能够将多个运算逻辑单元(ALU)串联在一起,并复用从一个寄存器中取得的结果。这种设计,不仅能够将数据复用实现最大化,减少芯片在运算过程中的内存访问次数,提高AI计算效率,同时也降低了内存带宽压力,进而降低内存访问的能耗。</p>
<p>MMU的脉动阵列包含256 × 256 = 65,536个ALU,也就是说TPU每个周期可以处理65,536次8位整数的乘法和加法。</p>
<p>TPU以700兆赫兹的功率运行,也就是说,它每秒可以运行65,536 × 700,000,000 = 46 × 1012次乘法和加法运算,或每秒92万亿(92 × 1012)次矩阵单元中的运算。</p>
<img src="./figures/MMU.jpg" style="zoom:80%;" />
<img src="../../source/第二章/figures/MMU.jpg" style="zoom:80%;" />
<p>上图:In-datacenter performance analysis of a tensor processing unit,figure 4</p>
</section>
<section id="id5">
<h4>确定性功能和大规模片上内存<a class="headerlink" href="#id5" title="永久链接至标题">#</a></h4>
<p>如图是TPU的平面设计简图,黄色为MMU运算单元,蓝色是统一缓存和累加器等数据单元,绿色是I/O,红色是逻辑控制单元。</p>
<img src="./figures/FloorPlan.jpg" style="zoom: 67%;" />
<img src="../../source/第二章/figures/FloorPlan.jpg" style="zoom: 67%;" />
<p>上图:In-datacenter performance analysis of a tensor processing unit,figure 2</p>
<p>传统GPU由于片上内存较少,因此在运行过程中需要不断地去访问片外动态随机存取存储器(DRAM),从而在一定程度上浪费了不必要的能耗。与CPU和GPU相比,TPU的控制单元更小,更容易设计,面积只占了整个冲模的2%,给片上存储器和运算单元留下了更大的空间。如上图所示的TPU一代架构中,总共设计了占总芯片面积35%的内存,其中包括24MB的局部内存、4MB的累加器内存,以及用于与主控处理器对接的内存。这一比例大大超出了GPU等通用处理器,节约了大量片外数据访存能耗,使得TPU计算的能效比大大提高。从TPU二代开始采用HBM片上高带宽内存,虽然和最新一代GPU片上内存技术相同,但是TPU芯片的面积要远远小于GPU。硅片越小,成本越低,良品率也越高。</p>
<p>另外,由于TPU是一个单用途芯片,不需要考虑缓存、分支预测、多道处理等问题。这就意味着TPU的功能是单一且确定的。因此,我们可以使用TPU轻易的预测运行一个神经网络需要多长时间,这样我们就能让芯片以吞吐量接近峰值的状态运行,同时严格控制延迟。</p>
Expand All @@ -906,7 +906,7 @@ <h3>DianNao<a class="headerlink" href="#diannao" title="永久链接至标题">#
<p>基于神经网络的人工智能算法,是模拟人类大脑内部神经元的结构。上图中的neuron代表的就是单个神经元,synapse代表神经元的突触。这个模型的工作模式,就要结合高中生物课的知识了。</p>
<p>一个神经元,有许多突触,给别的神经元传递信息。同样,这个神经元,也会接收来自许多其他神经元的信息。这个神经元所有接受到的信息累加,会有一个强烈程度,在生物上是以化学成分的形式存在,当这些信息达到一定的强烈程度,就会使整个神经元处于兴奋状态(激活),否则就是不兴奋(不激活)。如果兴奋了,就给其他神经元传递信息,如果不兴奋,就不传递。这就是单独一个神经元的工作模式。那么有成千上万个这样的神经元组合起来,就是一个神经网络模型。</p>
<p>那么DianNao是如何模拟神经元进行工作的呢,我们可以看看它的内部结构图:</p>
<p>![](./figures/accelerator .jpg)</p>
<p><img alt="" src="../../source/第二章/figures/accelerator.jpg" /></p>
<p>上图:DianNao: a small-footprint high-throughput accelerator for ubiquitous machine-learning,figure 11</p>
<p>如图所示,上图中浅蓝色的部分就是用硬件逻辑模拟的神经网络架构,称为NFU(Neural Functional Units)。它可以被细分为三个部分,即途中的NFU-1,NFU-2,和NFU-3。</p>
<p>NFU-1是乘法单元,它采用16bit定点数乘法器,1位符号位,5位整数位,10位小数位。该部分总计有256个乘法器。这些乘法器的计算是同时的,也就是说,在一个周期内可以执行256次乘法。</p>
Expand All @@ -923,7 +923,7 @@ <h3>DaDianNao<a class="headerlink" href="#dadiannao" title="永久链接至标
<section id="shidiannao">
<h3>ShiDianNao<a class="headerlink" href="#shidiannao" title="永久链接至标题">#</a></h3>
<p>ShiDianNao是机器视觉专用加速器,集成了视频处理的部分,它也是DianNao系列中唯一一个考虑运算单元级数据重用的加速器,也是唯一使用二维运算阵列的加速器,其加速器的运算阵列结构如下所示:</p>
<img src="./figures/shidiannao.jpg" style="zoom:67%;" />
<img src="../../source/第二章/figures/shidiannao.jpg" style="zoom:67%;" />
<p>上图:ShiDianNao: Shifting vision processing closer to the sensor,figure 5</p>
<p>ShiDianNao的运算阵列为2D格点结构,对于每一个运算单元(节点)而言,运算所使用的参数统一来源于Kernel,而参与运算的数据则可能来自于:数据缓存NBin,下方的节点,右侧的节点。</p>
<p>下图为每个运算单元的结构:</p>
Expand Down
10 changes: 5 additions & 5 deletions source/第二章/2.4 AI硬件加速设备.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ TPU即Tensor Processing Unit,中文名为张量处理器。2006年,谷歌开

TPU的设计架构如下图

<img src="./figures/TPU.jpg" />
![](./figures/TPU.jpg)

上图:In-datacenter performance analysis of a tensor processing unit,figure 1

Expand All @@ -53,15 +53,15 @@ MMU的脉动阵列包含256 × 256 = 65,536个ALU,也就是说TPU每个周期

TPU以700兆赫兹的功率运行,也就是说,它每秒可以运行65,536 × 700,000,000 = 46 × 1012次乘法和加法运算,或每秒92万亿(92 × 1012)次矩阵单元中的运算。

<img src="./figures/MMU.jpg" style="zoom:80%;" />
![](./figures/MMU.jpg)

上图:In-datacenter performance analysis of a tensor processing unit,figure 4

#### 确定性功能和大规模片上内存

如图是TPU的平面设计简图,黄色为MMU运算单元,蓝色是统一缓存和累加器等数据单元,绿色是I/O,红色是逻辑控制单元。

<img src="./figures/FloorPlan.jpg" style="zoom: 67%;" />
![](./figures/FloorPlan.jpg)

上图:In-datacenter performance analysis of a tensor processing unit,figure 2

Expand Down Expand Up @@ -93,7 +93,7 @@ NPU即Neural-network Processing Unit,中文名为神经网络处理器,它

那么DianNao是如何模拟神经元进行工作的呢,我们可以看看它的内部结构图:

![](./figures/accelerator .jpg)
![](./figures/accelerator.jpg)

上图:DianNao: a small-footprint high-throughput accelerator for ubiquitous machine-learning,figure 11

Expand All @@ -119,7 +119,7 @@ NFU-3是非线性激活函数,该部分由分段线性近似实现非线性函

ShiDianNao是机器视觉专用加速器,集成了视频处理的部分,它也是DianNao系列中唯一一个考虑运算单元级数据重用的加速器,也是唯一使用二维运算阵列的加速器,其加速器的运算阵列结构如下所示:

<img src="./figures/shidiannao.jpg" style="zoom:67%;" />
![](./figures/shidiannao.jpg)

上图:ShiDianNao: Shifting vision processing closer to the sensor,figure 5

Expand Down
Loading