Hot Chips 30 - 机器学习
今年的Hot Chips会议上和DL/ML/AI相关的内容很多(之前的文章“Hot Chips 30,黄金时代的缩影”简单做了介绍),本文和大家一起讨论两个Machine Learning的session以及来自Mythic的talk。
•••
Machine Learning I的第一个talk来自ARM,“ARM’s First Generation ML Processor”。关于ARM的MLP,我之前也有文章进行过分析(一窥ARM的AI处理器)。这次新的细节不多,下图好像是之前没有的,可以更清楚的看到做Convolution运算的数据流。
总得来说,ARM的MLP主要体现了“后发”优势,到目前为止学界和业界已经有大量研究成果和设计实现,主要的IP厂商都已经推出了自己的NN处理器IP,甚至还可以看到Nvidia的NVDLA的开源设计。因此,ARM可以广泛借鉴前人的经验和教训。当然,ARM之所以敢“后发”(QA环节说今年晚些时候可以license),也是基于其在嵌入式处理器领域的垄断地位。从另一个角度来说,ARM现在推出MLP也说明这个领域从需求到技术已经逐渐进入比较成熟的阶段。
•••
这部分的第二个talk来自Nvidia,“The NVIDIA Deep Learning Accelerator”。讲演者一上来就有点不好意思的说他们这个talk其实和前面一个差不多,感觉在顺序上有点吃亏
•••
这部分的第三个talk来自初创公司Tachyum,“Tachyum Cloud Chip for Hyperscale workloads, deep ML, general, symbolic and bio AI”。对这个talk我还是比较期待的,因为正好在前不久,我才把这个公司加到“AI/ML/DLICs and IPs”列表当中。从他们的介绍来看,其目标是设计相对通用的处理器来支持AI应用,特别是大规模的云端应用,并且从性能上超过CPU,GPU和TPU。
它们的处理器架构如下图所示:
从他们介绍的具体技术细节来看,虽然野心比较大,但用的基本还是传统处理器设计的技术,似乎并没有太新鲜的内容。所以,如他所说的“Faster than Xeon, smaller than ARM”是真的有什么绝活儿,还是仅仅在玩文字游戏,就只能等着进一步的benchmark数据出来再看了。
不过,这个talk的问答环节还是挺有意思的。
Q:我觉得似乎似曾相识,在多年前的Hot Chips,英特尔推出了VLIW概念Itanium,它将复杂性推给了编译器。我在你们的设计中也看到了类似的痕迹。你们怎么来避免安腾陷阱?另外,你们将如何避免来自英特尔和其它巨头在这方面的专利和IP?
A:Itanium是有序的VLIW,希望人们可以构建出好的编译器来实现性能。我们则从相反的方向入手,我们使用动态调度(dynamic scheduling)。我们不是VLIW,每个节点都定义了子图(sub-graphs)和相关指令(dependentinstructions)。我们首先设计了编译器,然后围绕编译器构建硬件,而英特尔的方法恰恰相反。
而对于专利的问题的回答是:我们设计的是新东西,我们的技术有很大不同。This is America!(这个大家自己体会吧
)
说实话,这个talk的主题部分比较无聊,个人感觉PR的成分比较大。不过问答部分比较精彩,讲演者对于比较尖锐的问题表现出的冷静和自信可以说是加分不少。而他所说的“围绕编译器构建硬件”至少也说到了问题的关键。这个公司以后还是值得关注的。
•••
Machine Learning II包括了两个talk,第一个是来自深鉴的“The Evolution of Deep Learning Accelerators Upon the Evolution of Deep Learning Algorithms”,姚颂和韩松两位介绍了深鉴这几年所做的工作,特别反映在算法到硬件的联合优化上,这也代表了未来技术发展的趋势。讲演提到深度学习算法的演进:激活函数不止包括ReLU,还有PReLU;通道有不同的权重;群卷积,逐个深度卷积逐个点卷积,DenseNet,膨胀卷积,不规则卷积等等。而DPU加速器的演进,则从v1只支持3x3,步长为1的卷积核到v2可支持任意卷积,再到v2.5支持任意的卷积参数、池化参数和更多的特征图操作。逐个深度卷积和逐个点卷积是通过特殊的独立设计的存储子系统与数据通路实现的,没有与原有架构共用。
编译器优化方面也包括了图优化部分,比如张量垂直融合、水平融合、张量的分解等;和存储优化部分,如存储对象的分配、调度与重用等。
正好也祝愿一下深鉴在加入Xilinx之后能够有更好的发展,给我们带来更多更好的技术。
这部分第二个talk,也是来自Xilinx,“ Xilinx Tensor Processor: An Inference Engine, Network Compiler + Runtime for Xilinx FPGAs”。这是Xilinx在FPGA上构建的专门用于Tensor处理的处理器,其架构如下图所示。
不难看出,这个架构是和Google第一代TPU的Systolic Array是高度类似的,我挺好奇他们怎么规避Google TPU专利的问题(参考,脉动阵列 - 因Google TPU获得新生和Google的神经网络处理器专利)。它们架构的特点包括:支持浮点、不同宽度的整数、二值三值等多种数据类型;支持稀疏。
另外,他们也提到实现的软件工具可以支持Tensor Graph的优化,比如GraphPartitioning,Fusing of Operation,Intralayer tilling等等,以及Compiler和Quantizer功能。总得来说,他们的工作和深鉴的工作在功能上有相似性,不过在具体架构和实现上还是有比较大的区别的,可能在未来会是一个互补的组合。
•••
除了这两个ML session,在“ New Technologies”这个session里,初创公司Mythic的talk也是AI加速的内容,题目是“Analog Computation in Flash Memory for Datacenter-scale AI Inference in a Small Chip”。这个方向,即所谓的存内计算我之前讨论的不多,主要是因为这种技术很多依赖新型存储器件,离商用还有距离。不过目前也有使用现有的Flash技术或其它存储器件(如SRAM)做这方面的尝试的,Mythic就是其中之一。正好我们可以借这个机会讨论一下这个方向。这类存内计算技术的主要目标是利用存储器件实现矩阵乘法运算,如实现下图所说的:Matrix Multiplying Memory。
一般来说,这一类模拟存内计算都会使用上图所示的模型。其目标是实现向量和矩阵的乘加运算。首先,矩阵的值(模拟量)存储在电阻性器件当中(上图中的R);输入的向量经过DAC转换为模拟量,如电阻上的电压(上图中的V);每个电压施加在电阻上形成的电流累加在一起,最后经过ADC得到输出结果Y(还可以顺便在结果上实现非线性函数)。即实现如下图所示的运算。
由于模型存储和给运算单元提供数据是目前NN加速的主要挑战(这次会议上多次听到feed the beast的说法,就是在说这个问题),存储和计算融一体的架构其优势不言而喻。除了计算/存储效率和功耗的优势之外,这种基于Flash的运算还有一个很大的优势就是成本,Flash在终端中本来就用来存储Weight,而其密度成本都比DRAM和SRAM低很多。优势比较容易理解,下面主要分析一下它面临的挑战和限制。
首先,在前面的计算模型里需要能够用一个电阻性器件保存矩阵的数值。这个电阻性器件目前有各种选择,比如Mythic用的“Flash transistors can be modeled as variable resistors representing the weight”,其它还有新型存储器,如RRAM和PCRAM等。但是,不管是哪种器件,作为存储的时候只需要存储“0”,“1”两个值。而要支持计算,则需要存储一个具有一定动态范围和精度的数值。另外,还要解决不同存储单元的一致性的问题。因此,这一部分的挑战还是非常高的。Mythic目前只支持inference,1-8bit精度,因此精度和一致性的要求可以稍低一些。如果要支持Training就会困难很多,IBM在用PCM做这方面的工作,有兴趣的读者可以去看看。
第二,由于存储设备一般都是比较规则的二维矩阵形式。也就意味着这种存内计算只适用于规则的矩阵乘法。其它运行必须先转换成这样的形式才行,可能要增加额外的开销。而硬件缺乏灵活性也对软件工具提出了很高的要求。同时,如果矩阵有很大稀疏性,这种结构也没法进行任何优化。另外,由于这类存储器件一般都有读写速度和寿命的限制,不可能频繁更新,在运算过程中也是不能更新的。因此,在实现中,会需要把一个网络所有weight都存起来,以避免上述问题。Mythic也是这么做的,如下图所示。
对于这类架构来说,一个重要的指标是存储Weight的能力。比如Mythic初始版本能够存储50M(40nm工艺),下一步是250M。当然,如果能够实现250M Weight的存储,大部分嵌入应用中的神经网络应该都能放得下了。
最后,由于芯片的顶层还是数字设计,模拟计算和数字计算的接口必须使用AD/DA,这会增加很多面积和功耗的开销。这部分是需要优化的。
上述这些挑战和限制都会让存内计算在架构上获得的收益有所折扣。因此大家对于它的前景也需要保持一个比较客观冷静的态度。在新型存储器件实现更大进展之前,这类架构可能还是更适合在一些特定的应用领域发挥作用。
- END-
题图来自网络,版权归原作者所有
本文为个人兴趣之作,仅代表本人观点,与就职单位无关