Anatomy of High-Performance Matrix Multiplication

Anatomy of High-Performance Matrix Multiplication

​ 现在我们进行机器学习训练,通常都会使用一些机器学习库,比如TensorFlow这样的库,并且在训练机器学习模型时,通常这些库对性能的提升是数量级的提升。以下以卷积计算为例,去剖析高性能矩阵计算。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
'''
Convolve `input` with `kernel` to generate `output`
input.shape = [input_channels, input_height, input_width]
kernel.shape = [num_filters, input_channels, kernel_height, kernel_width]
output.shape = [num_filters, output_height, output_width]
'''
for filter in 0..num_filters
for channel in 0..input_channels
for out_h in 0..output_height
for out_w in 0..output_width
for k_h in 0..kernel_height
for k_w in 0..kernel_width
output[filter, out_h, out_w] +=
kernel[filter, channel, k_h, k_w] *
input[channel, out_h + k_h, out_w + k_w]

阅读更多

Coarse-Grained Reconfigurable Architectures and Plasticine

Coarse-Grained Reconfigurable Architectures and Plasticine

​ 本节课主要介绍了CGRA(粗粒度可重构计算阵列架构)和Plasticine架构。相较于FPGA(现场可编程逻辑门阵列),它提供可重构阵列的粗粒度设计,可以认为是FPGA Overlay也是FPGA虚拟化的主流技术,可以克服FPGA中的弱重构、功耗高、速度慢等缺点。Plasticine是斯坦福基于CGRA提出的一种体系结构。

阅读更多

Efficient Processing of Deep Neural Networks (A Tutorial and Survey)

Efficient Processing of Deep Neural Networks: A Tutorial and Survey

​ 这是一篇有关于深度神经网络加速的综速。本文介绍了DNN的历史背景和作用,介绍的DNN的结构以及当前流行的DNN模型。后面不仅仅介绍了如何从硬件层面加速神经网络,也介绍了从算法,从软件,从软硬件结合的层面实现DNN加速。

阅读更多

Is Dark Silicon Useful

暗硅(Dark Silicon)

Is Dark silicon useful?

​ 暗硅的意思就是一个处理器,比如多核处理器,由于功耗的限制,其实同一时刻只有很少的一部分门电路能够工作,其余的大部分处于不工作的状态,这部分不工作的门电路就叫做”暗硅“。

​ 如下图所示,可以很好地解释暗硅是怎么产生的。

对于一个65nm的4核处理器,假定在额定功率允许的情况下其四个核心能够同时全速工作。当工艺尺寸缩小到32nm的时候,之前4核处理器的面积就可以容纳16个核心。但现实是,这16个核心并不会都工作。能够同时工作的仍然只有四个核心。为什么?假设两代工艺之间缩放因子是S,那么S=65nm/32nm=2,芯片的晶体管数量将乘以$S^2$,即4倍;晶体管的切换频率可以乘以$S$,即2倍,因此总的计算能力将乘以$S^3$,即8倍。由于特征尺寸减小了一半,故晶体管的电容将减小S倍。由于总功耗与晶体管数量和切换频率成正比,和电容成反比,总功耗将变成之前的$S^2$倍,即4倍。为了保持总功耗不变,芯片的利用率只能变为原来的$\frac{1}{S^2}$,即原来的1/4。所以即使有16个核,仍然只有4个核可以工作。

其中,工艺尺寸缩小分为两种,一种是Dennardian缩小,一种是PostDennardian缩小。两者的区别是Dennardian缩小随着工艺尺寸的缩小,芯片的供电电压等比例缩小。而PostDennardian缩小随着工艺尺寸的缩小,芯片的供电电压保持不变。对于Dennardian缩小,同样的面积能够容纳的晶体管数量增大了$S^2$倍,系统频率也增加$S$倍,而供电电压降低了$S^2$倍,电容也减少了$S$倍,总功耗保持不变。由此摩尔定律可以有$S^3$倍计算能力的提高,而PostDennardian缩小由于其供电电压不变,所以总功耗增大了$S^2$倍,为了保持总功耗不变,芯片利用率只能变为原来的$\frac{1}{S^2}$,即原来的1/4,所以摩尔定律只能有$S$倍计算能力的提高。总结上述的情况,暗硅产生的原因就是随着现在芯片尺寸的不断减小,芯片的供电电压不能随着一起降低,为了保持总功耗不变,现在工业界常采用面积来换取能量效率,出现了多核芯片,但芯片中能同时满频率工作的面积依然越来越小,由此产生的暗硅。

​ 文中指出了暗硅四骑手:

(1)THE SHRINKING HORSEMAN

主要思想就是因为面积昂贵,所以希望制造更小的芯片而移除掉暗硅的部分。这是一个很乐观的结果,但前景并不被人看好。原因有:暗硅并不表示它没有用或者不会被用到,它只是不会在任何时候都工作,比如如x86处理器中的SIMD SSE单元;从经济学上考虑,硅片成本其实只占芯片成本很小的一部分,封装测试,营销销售,支持维护等其他费用才是大头;商家并不愿意为了减少芯片面积而去牺牲性能;功率密度提高带来的芯片散热问题。

(2)THE DIM HORSEMAN

主要思想是用”弱硅“来替代”暗硅“,就是使用仅在一部分时间内使用的逻辑来填充暗硅区域。其中的技术有:

  • 近阈值电压(NTV)处理器:单个处理器性能下降比节省的能耗更多,但多个处理器并行可以弥补性能损失。任务并行量越大,收益越高。问题在于NTV技术下随机掺杂波动(RDF)导致晶体管阈值电压变化、工作频率变化,鲁棒性下降(如SIMD),以及大量低速处理器和SRAM间互连会增大功耗。

  • 更大的Cache(缓存):即将暗硅区域用于高速缓存即可以提升性能有节省能耗。但随着低功耗片外接口和3D集成存储器的出现,片上高速缓存的优势在下降。

  • 粗粒度可重配置阵列(CGRA):拥有针对字级操作的优化路径,比FPGA的长线路能耗更低。

  • 计算冲刺和自动超频:临时升温但保持在温度极限以此提高性能;使用相变材料使得芯片在亚秒级的时间内可以超过温度限制。

(3)THE SPECIALIZED HORSEMAN

相对于功耗和能耗,硅面积已经成为更廉价的资源,用面积来购买能源效率,在暗硅上实现一系列的专用协处理器,这些专业协处理器/加速器可以提高能源效率和性能的数量级,尤其对于高并行计算。但是软硬件之间协调、兼容困难,且因标准更改而被淘汰。由此需要指定可扩展的硬件标准,满足低功耗高性能的要求,同时降低软硬件设计的复杂度;克服Amdahl定律的限制:对规则并行代码和非规则代码都进行专用化方法。

(4)THE DEUS EX MACHINA HORSEMAN

使用新的半导体器件:基于隧道效应的隧道场效应晶体管(TFETS),以及基于纳米机电开关((Nano-Electro-Mechanical switch)),它们基于物理交换机。

硬件加速器背景介绍(Lecture1)

硬件加速器背景

​ 如今计算能力限制了训练机器学习模型的工作,如果我们有更快的处理器我们可以运行更大的模型。

现有的机器学习加速器
  • CPU:线程、SIMD(单指令多数据流)
  • GPU:大量线程、SIMD、HBM(高带宽存储器)
  • FPGA:LUTs(查找表)、DSP、BRAM
  • TPU:MM Unit、BRAM
阅读更多

机器学习背景介绍(Lecture2)

机器学习简介

​ 本节主要学习一些机器学习算法,部分算法研究在《智能计算系统》的学习中有所接触,还学习机器学习相关技术和常见的计算模式,从而帮助加速器设计人员高效地将这些模式应用于硬件。

阅读更多

Roofline and TPU Performance

Roofline and TPU Performance

​ 任何模型都必须依赖具体的计算平台才能展示出自己真正的实力。从前,许多的性能模型和模拟器都是通过追踪延迟来预测性能,近二十年也诞生了一些隐藏延迟的技术,例如:乱序执行(硬件发现并行性以隐藏延迟);硬件流预取(硬件推测加载数据);大规模线程并行。这些技术有效地隐藏了延迟,但同时也使得计算平台从延迟受限转变为了吞吐量受限。

​ Roofline模型是一个吞吐量指向的性能模型,它追踪速度而不是时间。也可以这么说说Roof-line Model就是:模型在一个计算平台的限制下,到底能达到多快的浮点计算速度。通俗来讲是”计算量为A且访存量为B的模型在算力为C且带宽为D的计算平台所能达到的理论性能上限E是多少“这个问题。Roofline模型有两个关键部分:一个是机器参数,第二个是应用的理论编辑。

阅读更多

Why Systolic Architectures?

Why Systolic Architectures?

为什么要设计脉动阵列这样的架构?

  • Simple and regular design(简单和规则的设计)

​ 首先就是成本效益一直是专用系统的关注点,由于一个专用系统的功能往往十分有限,所以就需要它的成本足够低来弥补这一劣势。而其成本又被分为设计成本和器件成本。由于集成电路技术的进步,器件成本正在迅速下降,所以关键因素还是设计成本。所以采用脉动阵列这个简单又规则的硬件架构,可以很快地完成芯片的设计和实现。

阅读更多
Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×