近期ARMv9架构发布,根据安谋官方的说法最新V9版本的ARM芯片具有安全计算、SVE2指令集和极致的性能优化三大特性,是十年来ARM最重要一次升级,并且还能继续向华为供货。不少媒体也沿用了ARM官方的说法,不过笔者窃以为这样的说法听听就好,像性能极致优化、继续供货华为等说法其实只是意义不大,而真正带来革命的SVE2反而光芒被掩盖了。
略显鸡肋的安全计算与性能升级
首先我们看到首先于2011年的ARMV8架构的确是革命性的创新,ARMv8中首次引入了AArch64架构,对于64位架构的ARM处理器产生的革命性提升。不过本次的升级当中所谓极致的性能优化其实是目前各大芯片设计厂商都已经在做的工作,其实并不算什么重大的创新点。
安全计算的理念倒是比较新,安全计算实际是计算机加了一个安全密室,即使拥有最高权限的管理员也不能进入安全密室。这样的功能在计算机已经被完全攻破的情况其实意义不大,因为数据进出安全屋的情况,可以被外界一览无遗,因此拥有最高权限的用户完全可以通过行为分析破解安全屋内发生的事情。
供货华为,意义不大
笔者在之前的文章《造芯为何这么难》当中曾经介绍过在芯片制造几大环节当中,我们最缺失的是工业软件EDA和包括光刻机等方面在内的晶圆制造技术,在芯片设计的封装、测试方面其实我们做得还不错。而ARMv9本身其实是一个IP CORE,而我们国产EDA中还没有哪家能把ARMV9 CORE加入到元件库当中,而且这样的芯即使我们设计出来也造不出。华为买断ARMV9 IP的意义其实不大。
A真正的杀招-SVE2
SVE2是一种SIMD指令集,SIMD是Single instruction multiple data也就是单指令多数据流的缩写。我们知道传统的CPU本质是将一切计算操作转换成加法来完成完成任务的,比如减法是加一个有符合的负数,乘法是多个数相加。
但是在AI的神经网络世界中使用加法进行运算的拟合效率就太低了,以深度神经网络为例,神经元可以抽象为对于输入数据乘以权重以表示信号强度乘积加总,再由ReLU、Sigmoid等应用激活函数调节,本质是将输入数据与权重矩阵相乘,并输入激活函数,对于有三个输入数据和两个全连接神经元的单层神经网络而言,需要把输入和权重进行六次相乘,并得出两组乘积之和。这实际上就是一个矩阵乘法运算。因此AI的运算中向量与矩阵的运算才是基础。而VR虚拟现实技术也比较类似,它也需要不断进行矩阵的变换操作所以说矩阵操作才是AI、VR等领域的最基础算式。
我们看到针对AI计算的特殊性,各大科技巨头在励精图治后都给出了自己的独门绝技。比如华为就推出了“达芬奇架构”,具体来说,达芬奇架构采用3D Cube针对矩阵运算做加速,以N*N的矩阵乘法为例,3D Cube技术通过优化的运算单元,可以将运算复杂度直接降低幂级,这也造就了基于达芬奇架构的昇腾910芯片成为地表算力最强的AI芯片。
华为没有公开昇腾910具体的细节,不过笔者判断达芬奇架构应该没有使用精简指令集,因为据公开资料显示昇腾910芯片的竞品-谷歌TPU选择了复杂指令集作为其架构基础,谷歌创建了一个编译器和软件栈,将来自TensorFlow的API调用直接转化成TPU指令,这也印证这样一个逻辑,在AI的世界中几乎所有的运算都需要对应的指令与电路进行专门的优化才能真正提升效率。
但这次ARM给出了不同的答案,我们在前文《疑难杂症:雪崩是怎么造成》中曾经介绍过指令流水线的相关知识。而SIMD这种技术运用的也是流水线思想,只是这不是指令流水线了,而是数据流水线。他在一个时钟周期内可以取多条数据并且并发进行操作。
SVE2的操作数可变长度的,从128-2048均可以,正如我们刚刚所说AI、VR等多需要矩阵运算,而64位长只能表示一个维度,多维矩阵的表示目前64位长的CPU力不从新,因此SVE2这项技术对于矩阵运算将大大提速.。可以说SVE2才是ARMV9最牛的地方,希望读者们可以GET到这个点。
转载:https://blog.csdn.net/BEYONDMA/article/details/115494678