《人工智能将如何重振摩尔定律的良性循环.docx》由会员分享,可在线阅读,更多相关《人工智能将如何重振摩尔定律的良性循环.docx(8页珍藏版)》请在第一文库网上搜索。
1、人工智能将如何重振摩尔定律的良性循环前言:在这篇文章中,天数智芯首席技术官吕坚平博士阐述了当今四性渊源,跳脱过去芯片设计窠臼,提倡以A1为本的可微分硬件理念。希望借此可重振软硬件彼此加持的雄风,缓解甚至逆转摩尔定律的衰退。据报导,正值全球芯片短缺之际,台积电提高了芯片价格并推迟了3nm制程的生产进程。无论这类新闻是否准确或预示着一种长期趋势,它们都在提醒我们,摩尔定律的衰退将带来越来越严重的影响,并迫使我们重新思考人工赴能硬件一一它会受到这种衰退的影响,还是会帮助扭转这种趋势?如果我们希望恢复摩尔定律(Mo21es1aw)的良性循环,这其中,软件和硬件曾经相互加持,使一部现代智能王机比过去10
2、年占据整个仓库的超级计算机功能更强大。人们普遍接受后摩尔时代的良性循环是基于更大的数据迸发更大的模型并需要更强大的机器。但事实上,这样的循环是不可持续的。除非我们重新定义并行性,我们不能再指望缩小品佳萱来制造越来越宽的并行处理器。我们也不能依赖于它,除非特定领域架构(DSA)有助于促进及适应软件的发展。与其搞清楚哪类硬件是用于AI这个不断发展的移动目标,我们不如从A1以可微分罐为核心的角度来看待A1硬件。这样说,人工智能软件程序是一个计算图,由一起训练实现端到端目标的计算节点组成。只要一个深度线程DSA硬件是可微的,它就可以作为一个计算节点。软件程序员可以自由地将可微硬件插入计算图中,以实现高
3、性能和以创意解决问题,就像预构建的可定制软件组件一样。AI硬件不应再有血统纯正度审查,毕竟它现在可以包括各样可微硬件。但愿这样,软件和硬件将再次通过良性循环并行发展,就像摩尔定律盛行时那样。人工智能硬件架构师的苦恼在人工智能市场的众多些竞争者中,特斯拉推出了DojO超级计算机。Dojo似乎是网络、集成和可延展性方面的杰作。而另一方面,Dojo的组件D1芯片则称不上是架构上的突破。我们可以将GPU竞争者分为两个阵营,Many-Core和Many-MACoD1是Many-Core阵营的一个例子,它是将多个CPU核心连接起来的“网格”。另一方面,特斯拉F型或谷歌TPU是Many-MAC阵营的缩影,其
4、特点是少量大型矩阵乘法(MM)加速器,每个都在一个“网格”中封装许多乘累积(MAC)单元。正如我们所看到的,关于A1架构的争论可以说是处于网格和GPU之间。在制造芯片带来的飞速增长的冲力下,A1硬件架构师面对着巨大压力,总是胆战心惊的看待媒体对基准测试和学术大会的报导。人工智能硬件常常跑不动基准测试和最机出炉的NN模型,而讽刺的是,这些模型在所谓“老掉牙”的GPU上,却运行良好。如下图所示,Many-Core和GPU本质上只是数据交换方式有所不同。前者通过一个互联的网格传递数据,而后者通过一个存储器层次结构共享数据。这种差异与人工智能没有什么关系。ManyYore芯片(如D1芯片)是否最终会超
5、过GPU,还有待观察。稍后我将介绍MarIy-MAC。Switch比较Many-Core(左)和GPIJ(右)的概念上的连接方式现在,让我们快速回顾一下网格和GPU在高性能计算(HPC)中的共同根源。HPC的传承HPC用于解决计算密集的如军事研究、科学发现、油气勘探等问题。超级计算机(简称超算)一直是高性能计算的关键硬件解决方案。与处理指针丰富的数据结构(如树和链表)的通用程序相比,HPC程序主要花时间在“回圈”中重复数据并行计算。矢量超算的兴衰在20世纪70年代和90年代,矢量超算,通过将数据并行回圈展开成矢量来加速高性能计算程序,主导了高性能计算市场。在那期间,矢量超算等同于超级计算机。在
6、1990年代,正当摩尔定律鼎盛之时,通过将许多现成的CPU排列在网格或某种类似的拓扑结构中来构建超级计算机变得可行。这种趋势导致了分布式超算的出现。尚未接受分布式超算的HPC社区抗拒地将其称为TheAttackoftheKi11erMicros,其中“Micro”意味着微处理器。这种观点源于一个芯片上的CPU在早期被称之为微处理器,而“CPU”通常是一个由分立组件组成的系统。最终,分布式超算取代了矢量超算,成为今天超级计算机的代名词。矢量超算以GPGPU的身份王者再临在21世纪初,摩尔定律开始呈现老化,导致CPU时针速度竞赛戛然而止。然而CPU时钟速度曾是单晶片计算性能的主要来源。业界的回应是
7、在一个芯片上安装多个CPU核,期望并行性成为新的主要性能来源。这一趋势带来双核、四核以及最终的多核,有效地形成了分布式超算集于一芯,将多个CPU核心排列在一个网格中。Many-Core的例子包括英特尔在市场上挑战GPU的两次挫败,1arrabee在3D市场,以及1arrabee的后代XeonPhi系列在HPCoGPU传统上对顶点、三角形和像素等图形单元上展开“回圈”。GPU架构师将这种能力扩展到HPC应用中的回圈,使GPU有效地成为矢量超算集于“一芯”。然后他们将GPU在HPC中的使用命名为通用GPU(即GPGPU)。当矢量超算在HPC市场让位给分布式超算时,它就化身为GPU来报复它的竞争对手
8、。我们可以看到GPU在顶级超算机上的商业成功,比如橡树岭国家实验室的Titan超算机和瑞士国家超算中心的EIZDainto简而言之 分布式超算机将矢量超算机从HPC市场踢出局。 Many-Core是分布式超算集于“一芯”,GPU是将高性能计算的矢量超算集于“一芯”O矩阵乘法(MM)和A1网格,计算机架构中的“旧锤子”,如何自我升级改造视人工智能为“新钉子”?MM和HPC计算机体系结构中的一条永恒规则是,搬动数据比计算数据更昂贵,这就要求计算机架构在较少的数据上进行更多的计算。幸运的是,HPC社区从几十年的实战经验中学到,他们可以用MM来表达大多数HPC问题,大致说来,MM在数据上的操作具有很高
9、的计算-通信比。如果运用得当,使用MM解决问题可以通过隐藏数据传输来实现高性能。因此,HPC程序员只需要超算机供应商提供的一个健全的MM程序库。当计算MM时,今天的分布式超级计算可以充分利用分布在数十万平方英尺上的数十万节点,有效地令每个单个节点都忙于计算。矩阵乘法(MM)在A1中的崛起运用基于独经网络(NN)的机!蹬2(M1)是现代人工智能的特征。神经网络模型由多层M1核心程序组成。在卷积神经网络(CNN)之前,最流行的神经网络(NN)是多层感知器(M1P)。M1P的基本M1核心程序是矩阵矢量乘法(MVM),它对数据进行粗略的MAC操作,几乎没有数据重用。另一方面,CNN目前主要的运作元是张
10、量卷积(nsorConvo1ution,TC)o正如我在我的文章“A11TCnSOrSSeCretIywiShtoBeThemSeIVeS”中解释的那样,在数据搬动和共享方面,MM和TC在结构上是等价的,所以我们经常可以互换使用张量和矩阵。将MM作为运作元给HPC和人工智能带来了突破。CNN主要使用了MM,引发了让算机视觉领域人工智能的突破。TranSfOnner也广泛使用了MM,点燃了人工智能在自然语言理解(N1P)方面的突破。多亏了人工智能及其对MM的大量使用,计算机体系结构社区才有了一个世纪一遇的机会,能够聚焦在优化MM这单纯的目标,而又能同时对计算产生广泛的影响一一等于是事半功倍。Ma
11、ny-Core可以运行与分布式超算相同的MM算法。从某种意义上说,从事人工智能的Many-Core可以说是归宗到HPC。Many-MAC的浪潮1982年,脉动阵列被引入加速MM和其他应用。如果当年在人工智能的背景下加速MM像今天一样酷,那么脉动阵列的研究人员就不会为MM之外应用而费心了。脉动阵列是一种比CPU内核更密集地封装MAC单元的机制。缺点是,我们不能在其他地方使用MMMAC单元。由于缺乏通用性,直到因为A1成为MM的杀手级应用,谷歌在TPU上采用脉动阵列作为MM加速器,脉动阵列才被市场接受。从那时起,市场上就出现了许多改进原作的版本。在这里,我将原始的脉动阵列及其变体称为Many-MA
12、C。为了处理非MM操作,Many-MAC增加了配套处理器。另一方面,Many-Core中的CPU核心,例如D1芯片或GPU的着色器核心,可以使用更小的Many-MAC,从而有效地成为Many-MAC容器。简而言之 AI和HPC因为使用大量MM而命运交汇。 Many-Core和Many-MAC基本上不比GPU更适配AIo领域转移和领域特定的并行性暗硅和功耗墙在2010年之后,业界意识虽然理论上来说,并行度加倍是计算性能的主要来源,然而拥有两倍的CPU核心,不可能保持这种良性循环。这是因为每个CPU核无法将其功耗降低一半,或每瓦并行度翻倍。在几次迭代的核加倍后,我们会看到大多数核在相同的功率预算下
13、无法被蚀电,从而产生了暗硅,或者更准确地说,是暗核。如下图的概念图所示,当我们从2核变为4核时,4个核中只有3个可以供电,而当我们从4核变为8核时,只能为4个核供电。最后,16个内核中只有4个可以供电,因此从8核变为16核没有任何好处。我们将这种现象称为“功耗撞墙(hittingthePowerWa11)”。由于这个原因,相当一部分计算机架构社区成员疏远并行化。此外,悲观主义者倾向于将并行度低、指针丰富的计算作为主流,并将具有并行性的HPC视为一个小众市场。他们认为,良性循环将过早止于阿姆达尔上限,也就是并行运算的极致。Performance4x3)2xMoore,s1awIterations
14、喑硅或暗核人工智能的及时救援巧合的是,在这种悲观情绪中出现了人工智能。根据斯坦福AI指数报告,人工智能一直不断进步,就好像功耗墙不存在一样!关键在于主流软件可能会发生领域转移,导致不同并行模式。如下面的概念图所示,当主流软件从多指针计算转向数据并行计算时,它将一个并行度重新定义为单指令多数据(Sing1e-Instruction-MuItip1eData,SIMD)的一条通道而不是一个CPU核。我们看到一条比CPU核曲线更高的曲线(标记为S1MI)IaneSfordata-para11e1)0接下来,当主流软件进入着重于MM的A1领域时,添加了更高的曲线(标记为MMMACsforMM-heav
15、y),一个MMMAC代表一个并行度。正如我们所看到的,通过探索更有效的领域特定并行模式和提高阿姆达尔定律的上限,计算性能在功耗墙之内继续增长。顺带一句,着重于MM的A1有自己的阿姆达尔上限。AI应用程序需要有回圈前端,将MM操作分配到并行计算资源,以及回圈后端收集计算结果进行串行操作(如归一化或Softmax)的结果。当有足够多的MMMAC来加速MM时,阿姆达尔定律就会发挥作用,从而使回圈前端和后端成为瓶颈。此外,随着摩尔定律的衰落越来越严重,制造更宽的加速MM的机器是否能维持A1的良性循环就成了问题。为了解决这个问题,进一步提高阿姆达尔的上限,我们需要转移到更新的领域并探索新的领域特定并行性。换句话说,我们要考虑是否需要在下面的概念图中添加一条新的曲线。Power简而言之通过不同领域转移扩展平行度的概念图