是什么推动了超级计算领域的矩阵引擎运动?

2020-11-03 02:23:30

Jens Domke是日本RIKEN和AIST的松冈博士的同事,他特别关注HPC网络,他反复指出,近期未来HPC的内存带宽限制是最关键的瓶颈。虽然他同意,在某些地方,密集的矩阵数学单元是有意义的,但它们肯定无助于解决内存和数据移动问题。即使你有一些加速,大多数应用程序也不会受益太多。“。当被问及他对研究矩阵引擎广泛用途的研究团队是否预期结果时,他补充说,他预计一些应用程序会很难使用它们,但他们没有意识到实际上使用密集矩阵乘法的应用程序有多么少。在分析了所有应用程序之后,我们意识到HPC的性能大大低于预期。我们可能会估计这不会是真的,当你是学生或博士后时,非常强调矩阵数学。“。

这篇论文中有相当多的细节,但我们确实想通过几个屏幕抓图来突出要点。第一张图显示了研究中使用的应用程序--这是一个相当广泛但不同(就计算/内存要求而言)的集合。下面是一些结果。请注意,总的来说,77个HPC基准中只有9个执行GEMM操作或将密集的线性代数计算外包给库。

尽管他们的分析结果并不预示高性能计算在矩阵引擎中的广泛适用性,但在一些有前途的领域中,采用可能会很好地发挥作用,特别是在补充传统的高性能计算应用程序方面,即使是那些受物理模拟的计算和内存要求约束的应用程序也是如此。松冈说:“应用程序有适应硬件的趋势;这一切都是关于合作设计的。”“你基本上必须有一个非常客观的观点,但在如何构建应用程序方面有一些基本原则。如果你在直接模拟物理,我们知道只有几个应用程序会使用稠密线性代数,这是物理学的基础。现在,你可以争辩说,ML可以模拟这些物理,也许在训练中可以使用相当多的矩阵运算。而且还没有得到证实--我们知道有一些令人兴奋的应用程序,至少在这里进行培训--密集的线性代数运算可能是有效的代理或代理函数,而不是第一原理计算。这有各种使用案例,结果并不像人们想象的那么糟糕,确实有办法以这种方式有效而准确地加速模拟。“。

请注意,对话的大部分内容都集中在培训上。毕竟,深度学习是要求最高的工作。然而,即使是为了推断,矩阵引擎布丁中的证明也不在那里,至少对于他们所看到的那套应用程序来说是不存在的。“即使是在推理阶段进行深度学习,密集线性代数的数量也非常少。当您尝试组合HPC和ML时,或者当您尝试使用代理来加速传统的HPC应用程序时,主要的计算是在HPC端。无论你做什么推断,无论是用它来指导优化,还是作为补充外推,与重量级的HPC计算相比,计算都是非常轻量级的。“。

RIKEN和AIST的另一位同事穆罕默德·瓦希布(Mohamed Wahib)参与了矩阵引擎分析,他说,当回顾结果时,他感到惊讶和失望,因为结果显示,几乎没有HPC应用程序可以受益。

他指出,HPC多年来采用了包括PC和移动芯片在内的商业技术,这是一个充满希望的迹象,表明总有来自外部世界的东西可以填补HPC的利基市场。然而,在这种情况下,他说他不怀疑矩阵引擎将在ML中广泛使用,但看到研究中70多个应用程序中只有一小部分亮点令人失望,没有达到他预期的效果。他对这项工作中的一些相关见解持乐观态度,“它开启了一场关于可编程性的讨论。虽然这项工作的重点是关于高性能计算中矩阵引擎利用的经验结果,但后续工作应该包括对设备的可编程性进行研究,以便更全面地了解更广泛的适用性。“即使不是矩阵引擎,专业化也会出现。如果说这件事有什么积极意义的话,那就是它表明,现在是时候大声思考我们将如何真正使用未来的专用引擎了。“。

他说:“我们并不否认这些引擎的效用,特别是在训练方面。从我记事起,就有关于加速和专门化的炒作;浮点、FFT、向量加速,不胜枚举。专业化并不新鲜,但你必须想一想,为什么在某些情况下,他们没有取得广泛的成功,为什么这一次,他们可能会成功。在这种情况下,有一些