×

新兴计算架构上的稀疏张量分解软件。 (英语) Zbl 07099291号

小结:在本文中,我们开发了用于分解稀疏张量的软件,该软件可移植到各种多核、多核和GPU计算体系结构,并可在这些结构上运行。结果是一个代码,其性能与优化的架构特定实现相匹配。可移植方法的关键是确定可以以不同方式映射到不同体系结构的多个并行级别,我们解释了如何对矩阵化张量乘以Khatri-Rao乘积(MTTKRP)做到这一点,MTTKRP是正则多元张量分解的关键内核。我们的实现利用了Kokkos框架,该框架使单个代码能够跨多个架构实现高性能,这些架构在实现细粒度并行方面存在差异。我们还介绍了一种新的可移植线程数组构造,称为编译时多态数组。我们的方法和实现的细节不仅对调优张量计算很感兴趣,而且还为开发其他可移植的高性能代码提供了路线图。作为优化性能的最后一步,我们修改了MTTKRP算法本身,对张量非零进行置换遍历,以减少原子写入争用。我们在16核和68核Intel CPU以及K80和P100 NVIDIA GPU上测试了我们的实现的性能,表明我们在与最先进的体系结构特定代码竞争的同时,具有能够在多种体系结构上运行的优势。

MSC公司:

65日元10 特定类别建筑的数值算法
15A72号 向量和张量代数,不变量理论
15-04 线性代数相关问题的软件、源代码等
PDF格式BibTeX公司 XML格式引用

参考文献:

[1] B.W.Bader和T.G.Kolda,算法862:用于快速算法原型的MATLAB张量类,ACM变速器。数学。《软件》,32(2006),第635-653页,https://doi.org/10.1145/1186785.1186794。 ·Zbl 1230.65054号
[2] B.W.Bader和T.G.Kolda,使用稀疏张量和因子张量的高效MATLAB计算,SIAM J.科学。计算。,30(2007),第205-231页,https://doi.org/10.1137/060676489。 ·Zbl 1159.65323号
[3] N.Bell和M.Garland,在面向吞吐量的处理器上实现稀疏矩阵-向量乘法,《高性能计算网络、存储和分析会议记录》,SC'09,ACM,纽约,2009,18,https://doi.org/10.1145/1654059.1654078。
[4] J.D.Carroll和J.J.Chang,通过“Eckart-Young”分解的N向推广分析多维尺度中的个体差异《心理测量学》,35(1970),第283-319页,https://doi.org/10.1007/BF02310791。 ·Zbl 0202.19101号
[5] J.H.Choi和S.Vishwanathan,DFacTo:张量的分布式因式分解,《神经信息处理系统进展》(NIPS 2014),2014年,第1296-1304页,http://papers.nips.cc/paper/5395-dfacto-distributed-factorization-of-tensors。
[6] N.Cohen、O.Sharir和A.Shashua,深度学习的表达能力:张量分析,第29届学习理论年会,第49卷,《机器学习研究论文集》,2016年,第698-728页,http://proceedings.mlr.press/v49/chen16.html。
[7] H.C.Edwards、D.Sunderland、V.Porter、C.Amsler和S.Mish,多核性能可移植性:Kokkos多维数组库,科学。程序。,20(2012),第89-114页,https://doi.org/10.3233/SPR-2012-0343。
[8] H.C.Edwards、C.R.Trott和D.Sunderland,Kokkos:通过多态内存访问模式实现多核性能可移植性,J.平行分布计算。,74(2014),第3202-3216页,https://doi.org/10.1016/j.jpdc.2014.07.003。
[9] H.Fanaee-T和J.Gama,基于张量的异常检测:一项跨学科研究《基于知识的系统》,98(2016),第130-147页,https://doi.org/10.1016/j.knosys.2016.01.027。
[10] E.Gujral、R.Pasricha和E.E.Papalexakis,SamBaTen:基于抽样的批量增量张量分解,预打印,https://arxiv.org/abs/1709.00668v1, 2017.
[11] R.A.Harshman,PARAFAC程序的基础:“解释性”多模态因子分析的模型和条件《加州大学洛杉矶分校语音学工作论文》,16(1970),第1-84页;可在获取http://www.psychology.uwo.ca/faulty/harshman/wpppfac0.pdf。
[12] D.Hong、T.G.Kolda和J.A.Duersch,广义正则多元张量分解,预打印,https://arxiv.org/abs/1808.07452, 2018. ·Zbl 1432.68385号
[13] M.Janzamin、H.Sedghi和A.Anandkumar,战胜非凸性的危险:使用张量方法保证神经网络的训练,预打印,https://arxiv.org/abs/1506.08473v3, 2016.
[14] P.Karpiníski和J.McDonald,用于显式SIMD矢量化的高性能便携式抽象接口,载于《第八届多核和多核编程模型与应用国际研讨会论文集》,PMAM’17,ACM,纽约,2017,第21-28页,https://doi.org/10.1145/3026937.3026939。
[15] O.Kaya和B.Uçar,稀疏张量的维数树并行CANDECOMP/PARAFAC分解,SIAM J.科学。计算。,40(2018年),第C99-C130页,https://doi.org/10.1137/16M1102744。 ·Zbl 1383.65037号
[16] K.Kim、T.B.Costa、M.Deveci、A.M.Bradley、S.D.Hammond、M.E.Guney、S.Knepper、S.Story和S.Rajamanickam,设计向量友好的紧凑BLAS和LAPACK内核,载于《高性能计算、网络、存储和分析国际会议论文集》,SC’17,ACM,纽约,2017,55,https://doi.org/10.1145/3126908.3126941。
[17] T.G.Kolda和B.W.Bader,张量分解及其应用SIAM Rev.,51(2009),第455-500页,https://doi.org/10.1137/07070111X。 ·Zbl 1173.65029号
[18] M.Kretz和V.Lindenstreath,Vc:用于显式矢量化的C++库《软件:实践与经验》,42(2012),第1409-1430页,https://doi.org/10.1002/spe.1149。
[19] J.Li、J.Choi、I.Perros、J.Sun和R.Vuduc,高阶张量的模型驱动稀疏CP分解,《2017年IEEE国际并行和分布式处理研讨会(IPDPS)论文集》,IEEE,2017年,第1048-1057页,https://doi.org/10.109/IPDPS.2017.80。
[20] J.Li、Y.Ma和R.Vuduc,理想配偶!:多核CPU和GPU的并行张量基础结构2018年10月,https://github.com/hpcgarage/ParTI。
[21] J.Li、J.Sun和R.Vuduc,HiCOO:稀疏张量的层次存储,《ACM/IEEE高性能计算、网络、存储和分析国际会议论文集》(SC18),IEEE出版社,新泽西州皮斯卡塔韦,2018,19。
[22] B.Liu、C.Wen、A.D.Sarwate和M.Mehri Dehnavi,GPU上稀疏张量运算的统一优化方法,预打印,https://arxiv.org/abs/1705.09905, 2017.
[23] J.D.McCalpin,当前高性能计算机中的内存带宽和机器平衡IEEE计算机学会计算机体系结构技术委员会(TCCA)通讯,12(1995),第19-25页。
[24] A.Novikov、D.Podoprikhin、A.Osokin和D.Vetrov,张量化神经网络,预打印,http://arxiv.org/abs/1509.06569, 2015.
[25] OpenMP体系结构审查委员会,OpenMP应用程序接口, 2013, https://www.openmp.org/wp-content/uploads/OpenMP4.0.0.pdf。
[26] E.Phipps、M.D'Elia、H.C.Edwards、M.Hoemmen、J.Hu和S.Rajamanickam,嵌入式集成传播,用于提高新兴计算架构不确定性量化的性能、可移植性和可扩展性,SIAM J.科学。计算。,39(2017年),第C162-C193页,https://doi.org/10.1137/15M1044679。 ·Zbl 1365.65017号
[27] T.B.Rolinger、T.A.Simon和C.D.Krieger,异构分布式张量分解的性能挑战,IEEE高性能极限计算会议HPEC 2017,IEEE,2017。
[28] S.Smith、J.W.Choi、J.Li、R.Vuduc、J.Park、X.Liu和G.Karypis,FROSTT:开放式稀疏张量和工具的可形成存储库, 2017, http://frostt.io/。
[29] S.Smith和G.Karypis,具有压缩稀疏张量的张量矩阵乘积,《第五届非常规应用研讨会论文集:架构和算法》,IA3'15,ACM,纽约,2015年5月,https://doi.org/10.1145/2833179.2833183。
[30] S.Smith、J.Park和G.Karypis,高带宽存储器多核处理器上的稀疏张量分解,《2017年IEEE国际并行和分布式处理研讨会(IPDPS)论文集》,IEEE,2017年,第1058-1067页,https://doi.org/10.109/IPDPS.2017.84。
[31] S.Smith、N.Ravindran、N.D.Sidiropoulos和G.Karypis,SPLATT:高效并行稀疏张量矩阵乘法,摘自IPDPS 2015:IEEE国际并行和分布式处理研讨会,IEEE,2015,第61-70页,https://doi.org/10.109/ipdps.2015.27。
[32] E.Solomonik、D.Matthews、J.R.Hammond、J.F.Stanton和J.Demmel,用于耦合簇计算的大规模并行张量收缩框架,平行分布计算杂志。,74(2014),第3176-3190页,https://doi.org/10.1016/j.jpdc.2014.06.002。
[33] D.Vandevorde和N.M.Josuttis,C++模板:完整指南艾迪森·韦斯利,雷丁,马萨诸塞州,2002年。
[34] H.Wang、P.Wu、I.G.Tanase、M.J.Serrano和J.E.Moreira,简单、便携和快速的SIMD内部编程:通用SIMD库,《2014年SIMD/矢量处理编程模型研讨会论文集》,WPMVP’14,ACM,纽约,2014年,第9-16页,https://doi.org/10.1145/2568058.2568059。
[35] Y.Wang、R.Chen、J.Ghosh、J.C.Denny、A.Kho、Y.Chen、B.A.Malin和J.Sun,Rubik:用于健康数据分析的知识导向张量分解和完成,《第21届ACM SIGKDD知识发现和数据挖掘国际会议论文集》,KDD’15,ACM,纽约,2015年,第1265-1274页,https://doi.org/10.1145/2783258.2783395。
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。