跳到主要内容
研究论文

自适应Winograd矩阵乘法

出版:2009年3月16日出版历史
跳过抽象节

摘要

现代体系结构具有复杂的内存层次结构和不断增加的并行性(例如,多核)。这些特性使得跨快速变化的体系结构实现和保持良好性能变得越来越困难。性能已经成为一个复杂的权衡,而不仅仅是简单的计算简单CPU操作的成本。

我们提出了一种新颖的、混合的、自适应递归Strassen-Winograd矩阵乘法(MM),它使用自动调整的线性代数软件(ATLAS)或GotoBLAS。我们的算法适用于存储在行或列主布局中的任何大小和形状矩阵(在本工作中为双精度),因此可以有效地应用于C和FORTRAN实现。此外,我们的算法将计算划分为等效的复杂度子MM,并且不需要任何额外的计算来组合中间子MM结果。

与GotoBLAS/ATLAS单核系统相比,我们实现了高达22%的执行时间减少,而对于双核处理器系统,我们实现高达19%的执行时减少。最重要的是,即使对于1500×1500这样的小矩阵,我们的方法也已经实现了10%的执行时间缩减,并且对于大于3000×3000的矩阵的MM,它提供的性能与经典的O(运行)(n个)算法,以加快处理器的峰值性能(即,我们的算法在峰值性能为4.4 GFLOPS的系统上提供相当于5 GFLOPS性能的性能,而GotoBLAS仅达到4 GFLOPS)。这是运营成本节约的结果(以及FLOPS)。因此,我们的算法比任何算法都快经典MM算法可能适用于这种大小的矩阵。此外,我们根据文献中的既定方法提供了实验证据,证明我们的算法对于矩阵族来说与经典算法一样准确。

参考文献

  1. Anderson,E.,Bai,Z.,Bischof,C.,Dongarra,J.D.J.,DuCroz,J.,Greenbaum,A.,Hammarling,S.,McKenney,A.,Ostrouchov,S.和Sorensen,D.1995年。LAPACK用户指南,2.0版,第二版SIAM。,宾夕法尼亚州费城。谷歌学者谷歌学者数字图书馆数字图书馆
  2. Bilardi,G.、D’Alberto,P.和Nicolau,A.,2001年。分形矩阵乘法:缓存性能可移植性的案例研究。算法工程研讨会论文集(丹麦奥胡斯)。谷歌学者谷歌学者数字图书馆数字图书馆
  3. Bilmes,J.、Asanovic,K.、Chin,C.和Demmel,J.1997年。使用PHiPAC优化矩阵乘法:一种便携式、高性能、Ansi C编码方法。在超级计算年度国际会议记录中。谷歌学者谷歌学者数字图书馆数字图书馆
  4. Blackford,L.S.、Demmel,J.、Dongarra,J.,Duff,I.、Hammarling,S.、Henry,G.、Heroux,M.、Kaufman,L.、Lumsdaine,A.、Petitet,A.、Pozo,R.、Remington,K.和Whaley,R.C.,2002年。一组更新的基本线性代数子程序(BLAS)。ACM事务处理。数学。柔和。28, 2, 135--151.谷歌学者谷歌学者数字图书馆数字图书馆
  5. Brent,R.P.1970年a。矩阵乘法算法。技术代表TR-CS-70-157。斯坦福大学,加利福尼亚州斯坦福。谷歌学者谷歌学者数字图书馆数字图书馆
  6. 布伦特,R.P.1970b。基于Winograd恒等式的矩阵乘法和三角分解算法的误差分析。数字。数学。16, 145--156.谷歌学者谷歌学者数字图书馆数字图书馆
  7. Chatterjee,S.R.A.、Patnala,P.和Thottethoddi,M.,2002年。递归数组布局和快速矩阵乘法。IEEE传输。帕拉尔。分销系统。13, 11, 1105--1123.谷歌学者谷歌学者数字图书馆数字图书馆
  8. Cohn,H.、Kleinberg,R.、Szegedy,B.和Umans,C.,2005年。矩阵乘法的群论算法。第46届IEEE计算机科学基础研讨会论文集379-388。谷歌学者谷歌学者数字图书馆数字图书馆
  9. Coppersmith,D.和Winograd,S.1987年。通过算术级数进行矩阵乘法。第19届ACM计算机理论年会论文集。1--6.谷歌学者谷歌学者数字图书馆数字图书馆
  10. D’Alberto,P.和Nicolau,A.2005a。Adaptive Strassen和ATLAS的DGEMM:现代高性能系统的快速平方矩阵乘法。第八届亚太地区高性能计算国际会议论文集。(中国北京)。45--52.谷歌学者谷歌学者数字图书馆数字图书馆
  11. D’Alberto,P.和Nicolau,A.2005年b。使用递归提高ATLAS的性能。第六届高性能计算国际研讨会(ISHPC-VI)论文集。谷歌学者谷歌学者数字图书馆数字图书馆
  12. D’Alberto,P.和Nicolau,A.2007年。自适应斯特拉森矩阵乘法。第21届超级计算国际年会论文集。ACM,纽约州纽约市,284-292。谷歌学者谷歌学者数字图书馆数字图书馆
  13. Demmel,J.、Dongarra,J.,Eijkhout,E.、Fuentes,E.、Petitet,E.、Vuduc,V.、Whaley,R.和Yelick,K.,2005年。自适应线性代数算法和软件。在IEEE会议录中,关于“程序生成、优化和适配”的专刊,第93卷。2谷歌学者谷歌学者
  14. Demmel,J.、Dumitriu,J.,Holtz,O.和Kleinberg,R.,2006年。快速矩阵乘法是稳定的。数字。数学。106, 2, 199--224.谷歌学者谷歌学者数字图书馆数字图书馆
  15. Demmel,J.和Higham,N.1992年。具有快速3级BLAS的块算法的稳定性。ACM事务处理。数学。柔和。18274-291。谷歌学者谷歌学者数字图书馆数字图书馆
  16. Dongarra,J.J.、Croz,J.D.、Duff,I.S.和Hammarling,S.1990b。算法679:一组三级基本线性代数子程序。ACM事务处理。数学。柔和。16, 18--28.谷歌学者谷歌学者数字图书馆数字图书馆
  17. Dongarra,J.J.、Croz,J.D.、Duff,I.S.和Hammarling,S.,1990年a。一组三级基本线性代数子程序。ACM事务处理。数学。柔和。16, 1--17.谷歌学者谷歌学者数字图书馆数字图书馆
  18. Douglas,C.、Heroux,M.、Slishman,G.和Smith,R.,1994年。GEMMW:Strassen矩阵的可移植3级BLAS Winograd变体——矩阵乘法算法。J.公司。物理学。110, 1--10.谷歌学者谷歌学者数字图书馆数字图书馆
  19. Eiron,N.、Rodeh,M.和Steinwarts,I.1998年。矩阵乘法:算法工程的案例研究。《WAE’98会议录》(德国萨尔布吕肯)。谷歌学者谷歌学者
  20. Frens,J.和Wise,D.1997年。源代码中的自动块矩阵乘法或跟踪BLAS3性能。1997年ACM并行编程原理与实践研讨会论文集32,206-216。谷歌学者谷歌学者数字图书馆数字图书馆
  21. Frigo,M.和Johnson,S.2005年。FFTW3的设计与实现。程序中。IEEE(“程序生成、优化和适配”专刊)93,2,216--231。谷歌学者谷歌学者
  22. Goto,K.和van de Geijn,R.2008。高性能矩阵乘法剖析。ACM事务处理。数学。柔和。34, 3, 1--25.谷歌学者谷歌学者数字图书馆数字图书馆
  23. Grayson,B.、Shah,A.P.和van de Geijn,R.1995年。高性能并行Strassen实现。技术代表CS-TR-95-24。1.德克萨斯大学奥斯汀分校。谷歌学者谷歌学者数字图书馆数字图书馆
  24. Gunnels,J.、Gustavson,F.、Henry,G.和van de Geijn,R.,2001年。FLAME:形式化线性代数方法环境。ACM事务处理。数学。柔和。27、4(12月)、422--455。谷歌学者谷歌学者数字图书馆数字图书馆
  25. 海姆,N.1990。利用3级BLAS中的快速矩阵乘法。ACM事务处理。数学。柔和。16, 4, 352--368.谷歌学者谷歌学者数字图书馆数字图书馆
  26. 海姆,N.2002。数值算法的准确性和稳定性,第二版,SIAM,宾夕法尼亚州费城。谷歌学者谷歌学者数字图书馆数字图书馆
  27. Huss Lederman,S.、Jacobson,E.、Johnson,J.、Tsao,A.和Turnbull,T.,1996年A。斯特拉森的矩阵乘法算法:建模、分析和实现。技术代表CCS-TR-96-14。威斯康星州麦迪逊市威斯康星大学计算科学中心。谷歌学者谷歌学者
  28. Huss-Lederman,S.、Jacobson,E.、Tsao,A.、Turnbull,T.和Johnson,J.1996b。矩阵乘法Strassen算法的实现。在1996年ACM/IEEE超级计算会议(CDROM)的会议记录中。ACM出版社,纽约州纽约市。谷歌学者谷歌学者数字图书馆数字图书馆
  29. Kagstrom,B.、Ling,P.和van Loan,C.1998a。算法784:基于GEMM的第3级BLAS:可移植性和优化问题。ACM事务处理。数学。柔和。9月24日、3日、303--316日。谷歌学者谷歌学者数字图书馆数字图书馆
  30. Kagstrom,B.、Ling,P.和van Loan,C.1998b。基于GEMM的3级BLAS:高性能模型实施和性能评估基准。ACM Trans。数学。柔和。第24、3(9月)、268--302页。谷歌学者谷歌学者数字图书馆数字图书馆
  31. 卡波林,I.1999。一种实用的快速矩阵乘法算法。数字。线性代数。申请。6, 8, 687--700. 超级计算机和大规模并行应用中心,俄罗斯科学院计算中心,Vavilova 40,Moscow 117967,Russia。谷歌学者谷歌学者交叉引用交叉引用
  32. 卡波林,I.2004。聚合和消除技术是一种用于更快矩阵乘法的实用工具。理论。计算。科学。315, 2-3, 469--510.谷歌学者谷歌学者数字图书馆数字图书馆
  33. Lawson,C.L.、Hanson,R.J.、Kincaid,D.和Krogh,F.T.,1979年。FORTRAN使用的基本线性代数子程序。ACM事务处理。数学。柔和。5, 308--323.谷歌学者谷歌学者数字图书馆数字图书馆
  34. Li,X.,Garzaran,M.和Padua,D.,2005年。用遗传算法优化排序。代码生成和优化国际研讨会论文集。99--110.谷歌学者谷歌学者数字图书馆数字图书馆
  35. Nguyen,D.、I.Lavalley、M.Bui和Q.Ha。2005.分布式存储计算机上快速矩阵乘法算法的通用可扩展实现。第六届软件工程、人工智能、网络和并行/分布式计算国际会议论文集和第一届ACIS自组装无线网络国际研讨会论文集。116--122. http://doi.ieeecomputersociety.org/10.109/SNPD-SAWN.2005.2。谷歌学者谷歌学者数字图书馆数字图书馆
  36. Ohtaki,Y.、Takahashi,D.、Boku,T.和Sato,M.2004年。异构集群中Strassen矩阵乘法算法的并行实现。第18届国际并行和分布式处理研讨会论文集。112http://doi.ieecomputersociety.org/10.109/IPDPS.2004.1303066。谷歌学者谷歌学者
  37. 潘,V。1978年。斯特拉森的算法不是最优的:用于构造矩阵运算快速算法的聚合、合并和取消的三线性技术。计算机科学基础研讨会论文集。166--176.谷歌学者谷歌学者数字图书馆数字图书馆
  38. 潘,V.1984。我们如何加快矩阵乘法和查询速度;SIAM版本26,3,393--415。谷歌学者谷歌学者数字图书馆数字图书馆
  39. Panda,P.、Nakamura,H.、Dutt,N.和Nicolau,A.,1999年。通过数据对齐增强循环平铺以提高缓存性能。IEEE传输。计算。48, 2, 142--149.谷歌学者谷歌学者数字图书馆数字图书馆
  40. 牧师,D.1991。任意精度浮点运算的算法。在第十届IEEE计算机算术研讨会(算术-10)的会议记录中,P.Kornerup和D.W.Matula,编辑IEEE计算机社会出版社,加利福尼亚州洛斯阿拉米托斯,132-144。谷歌学者谷歌学者交叉引用交叉引用
  41. Püschel,M.,Moura,J.,Johnson,J.、Padua,D.、Veloso,M.、Singer,B.、Xiong,J.和Franchetti,F.、Gać,A.、Voronenko,Y.、Chen,K.、Johnson,R.和Rizzolo,N.2005。螺旋:DSP转换的代码生成。程序。IEEE(“程序生成、优化和适配”专刊)93,2,232--275。谷歌学者谷歌学者
  42. 斯特拉森,V.1969年。高斯消除不是最优的。数字。数学。14, 3, 354--356.谷歌学者谷歌学者数字图书馆数字图书馆
  43. Thottehodi,M.、Chatterjee,S.和Lebeck,A.1998年。调整Strassen的矩阵乘法以提高内存效率。1998年ACM/IEEE超级计算会议记录(佛罗里达州奥兰多)。谷歌学者谷歌学者数字图书馆数字图书馆
  44. Whaley,R.和Dongarra,J.1998年。自动调整线性代数软件。1998年ACM/IEEE超级计算会议(CDROM)会议记录。IEEE Computer Society,Press,Los Alamitos CA,1-27。谷歌学者谷歌学者数字图书馆数字图书馆
  45. R.C.Whaley和A.Petitet,2005年。最大限度地降低开发和维护成本,以支持持续优化的BLAS。柔和:实际。专家。35、2(2月)、101-121。网址:http://www.cs.utsa.edu/~whaley/papers/spercw04.ps。谷歌学者谷歌学者数字图书馆数字图书馆

索引术语

  1. 自适应Winograd矩阵乘法

            建议

            评论

            詹姆斯·哈罗德·达文波特

            斯特拉森的矩阵乘法,通常用于Winograd变体[1],是一个吸引人的理论玩具。此外,如果我们忽略一些问题,比如小矩阵大小的效率低下、临时结果占用的空间、高效使用各级处理器缓存的需要、进行融合乘法运算D:=AB+C的实际需要以及矩阵大小不是二的幂的问题,就可以很容易地对其进行描述。作者并没有忽视这些问题。第一个问题通常通过设置递归点限制n1来解决,在这个限制之下,我们使用经典乘法。最后一个问题通常是通过剥离“不适合”的部分来解决的,但D’Alberto和Nicolau认为这会导致数据局部性较差,因此建议采用平衡细分。作者的系统在安装期间估计n1,然后精确计算。对于单核处理器,他们报告的典型值在900到1000范围内。然而,对于由两个双核芯片组成的节点,单核的n1值为950,而双核的节点则为1300。在这两种情况下,作者都实现了“快于峰值”的性能;也就是说,他们的系统乘以矩阵的速度比O(n)算法可能做到的更快,尽管这种效果在多核系统上不太明显。作者还讨论了这些算法的误差分析。理论上,Strassen算法[2]有3k的误差,Winograd算法比传统算法差4.5k,其中k是达到n1之前除法树的深度。实际上,k=3。总结一个复杂的故事,在他们的实验中,误差确实随着k的增加而增加,但没有这些界限所表明的那么快。值得注意的是,这并不是故事的最后一句话[3]。在线计算评论服务

            访问计算机文献的关键评论在这里

            成为评论员计算评论。

            评论

            登录选项

            检查您是否可以通过登录凭据或您的机构访问本文。

            登录

            完全访问权限

            • 发布于

              数学软件上的封面图像ACM事务
              ACM数学软件汇刊 第36卷第1期
              2009年3月
              137页
              国际标准编号:2009年8月35日
              EISSN公司:1557-7295
              内政部:10.1145/1486525
              期刊目录

              版权所有©2009 ACM

              如果复制品不是为了盈利或商业利益而制作或分发的,并且复制品的第一页载有本通知和完整引文,则允许免费制作本作品的全部或部分数字或硬拷贝以供个人或课堂使用。必须尊重ACM以外的其他人对本作品组成部分的版权。允许用信用证进行摘要。要以其他方式复制或重新发布,在服务器上发布或重新发布到列表,需要事先获得特定许可和/或付费。从请求权限[电子邮件保护]

              出版商

              计算机协会

              美国纽约州纽约市

              出版历史

              • 出版:2009年3月16日
              • 认可的:2008年6月1日
              • 修订过的:2007年12月1日
              • 收到:2007年1月1日
              发布于汤姆斯第36卷第1期

              权限

              请求有关此文章的权限。

              请求权限

              检查更新

              限定符

              • 研究论文
              • 研究
              • 推荐

            PDF格式

            以PDF文件查看或下载。

            PDF格式

            电子阅读器

            使用eReader联机查看。

            电子阅读器