×

模拟低精度浮点运算。 (英语) 兹比尔07124603

摘要:在2008年修订的IEEE浮点算法标准中定义的半精度(fp16)浮点格式,以及最近提出的半精度格式bfloat16,在GPU和其他加速器中越来越可用。虽然对低精度算法的支持主要是由机器学习应用程序驱动的,但通用数值算法也可以从中受益,它可以提高速度、能耗并降低通信成本。由于合适的硬件并不总是可用的,而且人们可能希望实验尚未在硬件中实现的新算法,因此需要对低精度算法进行软件模拟。我们讨论了如何使用更高精度的算法来模拟低精度的算法。我们检查了这些模拟的正确性,并通过舍入误差分析解释了为什么自然模拟方法可以在低精度下提供比实际计算更准确的结果。我们提供了一个MATLAB函数chop,该函数可用于有效模拟fp16、bfloat16和其他低精度算术,有或没有次正规数的表示,以及舍入到最近、有向舍入、随机舍入和有效位中的随机位翻转选项。我们演示了这种方法相对于定义新的MATLAB类和重载操作符的优势。

MSC公司:

6504年 计算机算术的数值算法等。
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] ARM体系结构参考手册。ARMv8,用于ARMv8-A架构概要文件,ARM有限公司,英国剑桥,2018,https://developer.arm.com/docs/ddi0487/最新,版本日期为2018年10月31日,原始版本日期为2013年4月30日。
[2] E.Carson和N.J.Higham,迭代求精的新分析及其在病态稀疏线性系统精确解中的应用,SIAM J.科学。计算。,39(2017),第A2834-A2856页,https://doi.org/10.1137/17M1122918。 ·Zbl 1379.65019号
[3] E.Carson和N.J.Higham,通过三种精度的迭代求精加速线性系统的求解,SIAM J.科学。计算。,40(2018年),第A817-A847页,https://doi.org/10.1137/17M1140819。 ·Zbl 1453.65067号
[4] M.Chantry、T.Thornes、T.Palmer和P.Du¨ben,天气和气候预报的尺度选择精度《月度天气评论》,147(2019),第645-655页,https://doi.org/10.1175/mwr-d-18-0308.1。
[5] A.J.Cox和N.J.Higham,求解等式约束最小二乘问题的零空间法的精度和稳定性,BIT,39(1999),第34-50页,https://doi.org/10.1023/A:1022365107361。 ·Zbl 0924.65033号
[6] A.道森和P.D.杜本,rpe v5:大型数值模拟中降低浮点精度的模拟器《地球科学模型开发》,10(2017),第2221-2230页,https://doi.org/10.5194/gmd-10-2221-2017。
[7] A.Dawson、P.D.Du¨ben、D.A.MacLeod和T.N.Palmer,陆面模型中可靠的低精度模拟《气候动力学》,51(2018),第2657-2666页,https://doi.org/10.1007/s00382-017-4034-x。
[8] J.Dongarra、M.Gates、A.Haidar、J.Kurzak、P.Luszczek、S.Tomov和I.Yamazaki,用GPU加速数值密集线性代数计算《使用GPU进行数值计算》,V.Kindratenko主编,Springer,Cham,2014年,第3-28页,https://doi.org/10.1007/978-3-319-06548-9_1。 ·Zbl 1317.65078号
[9] S.Dutta、Z.Bai、T.M.Low和P.Grover,CodeNet:在存在软错误的情况下训练大规模神经网络,预打印,https://arxiv.org/pdf/1903.01042.pdf, 2019.
[10] M.费尔德曼,富士通透露将为Post-K超级计算机提供动力的处理器的详细信息,发布于2018年8月22日;2018年11月22日访问,https://www.top500.org/news/fujitsu-reveals-details-of-processor-tha-will-power-post-k-supercomputer。
[11] M.Feldman,IBM致力于降低新一代AI芯片的精度,发布于2018年12月5日;2019年1月8日访问,https://www.top500.org/news/ibm-takes-aim-at-reduced-precision-for-new-generation-of-ai-chips/。
[12] M.Feldman,英特尔为未来三款Xeon产品制定路线图,发布于2018年8月9日:2019年6月5日访问,https://www.top500.org/news/intel-lays-out-roadmap-for-next-three-xeon-products/。
[13] M.Feldman,创纪录的考试申请被选为Gordon Bell入围者,发布于2018年9月19日;访问日期:2019年1月8日,https://www.top500.org/news/record-breaking-exascale-application-selected-as-gordon-bell-finalist/。
[14] S.A.Figueroa,什么时候双圆角无害?《SIGNUM新闻》,30(1995),第21-26页,https://doi.org/10.1145/221332.221334。
[15] L.Fousse、G.Hanrot、V.Lefèvre、P.Peílissier和P.Zimmermann,MPFR:具有正确舍入的多精度二进制浮点库,ACM变速器。数学。软件,33(2007),13:1-13:15,https://doi.org/10.1145/1236463.1236468。 ·Zbl 1365.65302号
[16] S.Gupta、A.Agrawal、K.Gopalakrishnan和P.Narayanan,有限数值精度的深度学习,《第32届机器学习国际会议论文集》,Proc。机器。学习。2015年第37号决议,第1737-1746页,http://www.jmlr.org/proceedings/papers/v37/gupta15.html。
[17] A.Haidar、A.Abdelfattah、M.Zounon、P.Wu、S.Pranesh、S.Tomov和J.Dongarra,快速高效线性求解器的设计:半精度算法和迭代求精技术的潜力,收录于《计算科学–ICCS 2018》,Y.Shi等人编辑,Springer,Cham,2018年,第586-600页,https://doi.org/10.1007/978-3-319-93698-7_45。
[18] A.Haidar、S.Tomov、J.Dongarra和N.J.Higham,利用GPU张量核进行快速FP16运算,以加速混合精度迭代精化求解器,《高性能计算、网络、存储和分析国际会议论文集——SC’18(德克萨斯州达拉斯)》,IEEE出版社,新泽西州皮斯卡塔韦,2018年,47:1-47:11,https://doi.org/10.109/SC.2018.00050。
[19] A.Haidar、P.Wu、S.Tomov和J.Dongarra,研究半精度算法加速稠密线性系统求解器,《第八届大型系统可伸缩算法最新进展研讨会论文集——ScalA’17》(科罗拉多州丹佛市),ACM,纽约,2017,10,https://doi.org/10.1145/3148226.3148237。
[20] S.Hatfield、P.Du¨ben、M.Chantry、K.Kondo、T.Miyoshi和T.Palmer,存在模型误差时数据同化的最佳数值精度选择J.高级模型。地球系统。,10(2018年),第2177-2191页,https://doi.org/10.1029/2018MS001341。
[21] N.J.Higham,矩阵计算工具箱, http://www.maths.manchester.ac.uk/higam/mctoolbox。
[22] N.J.Higham,三角形系统解的精度,SIAM J.数字。分析。,26(1989),第1252-1265页,https://doi.org/10.1137/0726070。 ·Zbl 0683.65029号
[23] N.J.Higham,浮点求和的精度,SIAM J.科学。计算。,14(1993),第783-799页,https://doi.org/10.1137/0914050。 ·Zbl 0788.65053号
[24] N.J.Higham,数值算法的准确性和稳定性第二版,SIAM,费城,2002年,https://doi.org/10.1137/1.9780898718027。 ·Zbl 1011.65010号
[25] N.J.Higham和T.Mary,一种利用低阶近似分解误差的新预条件器,SIAM J.科学。计算。,41(2019),第A59-A82页,https://doi.org/10.1137/18M1182802。 ·Zbl 1408.65013号
[26] N.J.Higham、S.Pranesh和M.Zounon,将矩阵压缩为半精度,并应用于求解线性系统,SIAM J.科学。计算。,41(2019),第A2536-A2551页,https://doi.org/10.1137/18M1229511。 ·Zbl 1420.65017号
[27] S.-i.O'uchi、H.Fuketa、T.Ikegami、W.Nogami,T.Matsukawa、T.Kudoh和R.Takano,图像分类器深度卷积神经网络由9位专用硬件训练,实现优于半精度浮点格式的验证精度和能效,《2018年IEEE国际电路与系统研讨会(ISCAS)论文集》,意大利佛罗伦萨,2018年,第1-5页,https://doi.org/10.109/ISCAS.2018.8350953。
[28] IEEE二进制浮点运算标准,ANSI/IEEE Std 754-1985IEEE计算机学会,纽约,1985年。
[29] IEEE浮点运算标准,IEEE Std 754-2008(IEEE Std754-1985修订版),IEEE计算机学会,纽约,2008,https://doi.org/10.109/IEEESTD.2008.4610935。
[30] 英特尔公司,BFLOAT16–硬件数字定义,白皮书,文件编号338302-001US,2018,https://software.intel.com/en-us/download/bfloat16-hardware-numerics-definition。
[31] E.Isaacson和H.B.Keller,数值方法分析纽约威利出版社,1966年;由纽约多佛重印,1994年·Zbl 0168.13101号
[32] Julia编程语言, http://julialang.org。
[33] Julia Computing公司,Bfloat16秒, https://github.com/JuliaComputing/BFloat16s.jl。
[34] V.Lefèvre和P.Zimmermann,使用GNU MPFR优化二进制64和二进制128算法,《2017年IEEE第24届计算机算术(ARITH)研讨会论文集》,伦敦,2017年,第18-26页,https://doi.org/10.1109/ARITH.2017.28。
[35] D.马龙,调和级数收敛到什么?,爱尔兰数学。《社会公报》,71(2013),第59-66页,https://www.maths.tcd.ie/pub/ims/bull71/recipnote.pdf。 ·Zbl 1305.65140号
[36] C.B.摩尔,克利夫实验室, http://mathworks.com/matlabcentral/fileexchange/59085-cleve-lalaboratory。
[37] C.B.摩尔,MATLAB用户指南,技术报告CS81-1(修订版),新墨西哥州阿尔伯克基新墨西哥大学计算机科学系,1982年。
[38] C.B.摩尔,“半精度”16位浮点运算,发布于2017年5月8日,http://blogs.mathworks.com/cleve/2017/05/08/shalf-precision-16-bit-floating-point-arithmetic/。
[39] C.B.摩尔,历史MATLAB用户指南,发布于2018年2月5日,https://blogs.mathworks.com/cleve/2018/02/05/the-histric-matlab-users-guide/。
[40] C.B.摩尔,可变格式半精度浮点算法,2019年1月16日发布,https://blogs.mathworks.com/cleve/2019/01/16/variable-format-half-precision-floating-point-arithmetic/。
[41] J.-M.穆勒,基本功能:算法与实现,第三版,Birkha¨user,马萨诸塞州波士顿,2016年,https://doi.org/10.1007/978-1-4899-7983-4。 ·Zbl 1357.65029号
[42] MATLAB的多精度计算工具箱,Advanpix,东京,http://www.advanpix.com。
[43] K.Palem和A.Lingamneni,构建破碎芯片的十年:不精确计算的物理和工程,ACM变速器。嵌入。计算。系统。,12(2013),第87:1-87:23页,https://doi.org/10.1145/2465787.2465789。
[44] T.N.Palmer,更可靠的预测和不太精确的计算:一条通往云解析天气和气候模拟器的快速通道?,菲尔翻译。R.Soc.A,372(2014),20130391,https://doi.org/10.1098/rsta.2013.0391。 ·兹比尔1353.86023
[45] N.Rao,超越CPU或GPU:为什么企业级人工智能需要更全面的方法,发布于2018年5月23日;2018年11月5日访问,https://newsroom.intel.com/editorials/artificial-intelligence-rerequires-holistic-approach。
[46] C.劳,一半1.12基于IEEE 754的半精度浮点库, http://half.sourceforge.net/index.html2017年3月。
[47] P.Roux,基本算术运算的无害双舍入,J.Formalized Reasoning,7(2014),第131-142页,https://doi.org/10.6092/issn.1972-5787/4359。 ·Zbl 1451.65061号
[48] S.M.臀部,INTLAB–子宫内实验室《可靠计算的发展》,T.Csendes主编,Kluwer学术出版社,荷兰多德雷赫特,1999年,第77-104页·Zbl 0949.65046号
[49] S.M.臀部,验证方法:使用浮点算法的严格结果,实绩数字。,19(2010),第287-449页,https://doi.org/10.1017/S096249291000005X。 ·Zbl 1323.65046号
[50] S.M.臀部,IEEE754 precision-\(k\)base-\(beta\)算术由precisions-\(m\)base-\(beta \)算术为\(k<m\)继承,ACM变速器。数学。软件,43(2017),20:1-20:15,https://doi.org/10.1145/2785965。 ·Zbl 1396.65177号
[51] 沙阿,评论Nicholas J.Higham,“半精度算术:fp16 vsus bfloat16”发布于2018年12月19日,https://nickhigham.wordpress.com/2018/12/03/half-precision-arithmetic-fp16-versus-bfloat16/#评论-5466.
[52] A.Svyatkovskiy、J.Kates-Harbeck和W.Tang,基于GPU簇的混合精度分布式深度递归神经网络训练,载于《MLHPC’17:HPC环境中的机器学习程序》,ACM出版社,纽约,2017年,10:1-10:8,https://doi.org/10.1145/3146347.3146358。
[53] 符号数学工具箱,The MathWorks,Inc.,马萨诸塞州纳蒂克,http://www.mathworks.co.uk/products/symbol/。
[54] G.Tagliavini、S.Mach、D.Rossi、A.Marongiu和L.Benin,超低功耗计算的超精密浮点平台,载于《IEEE 2018欧洲设计、自动化和测试会议暨展览会论文集》(DATE),2018,第1051-1056页,https://doi.org/10.23919/DATE.2018.8342167。
[55] T.Thornes、P.Duíben和T.Palmer,论尺度相关精度在地球系统建模中的应用,夸脱。J.罗伊。美托洛尔。Soc.,143(2017),B部分,第897-908页,https://doi.org/10.1002/qj.2974。
[56] S.Tomov、J.Dongarra和M.Baboulin,混合GPU加速多核系统的稠密线性代数,并行计算。,36(2010年),第232-240页,https://doi.org/10.1016/j.parco.2009.12.005。 ·Zbl 1204.68268号
[57] S.Tomov、R.Nath、H.Ltaief和J.Dongarra,基于GPU加速器的多核稠密线性代数求解器,摘自2010年IEEE并行和分布式处理国际研讨会论文集,研讨会和博士论坛(IPDPS’10),佐治亚州亚特兰大,IEEE出版社,新泽西州皮斯卡塔韦,第1-8页,https://doi.org/10.109/IPDPSW.2010.5470941。
[58] N.Wang、J.Choi、D.Brand、C.Y.Chen和K.Gopalakrishnan,用8位浮点数训练深度神经网络,《神经信息处理系统进展31》(NIPS 2018),S.Bengio等人编辑,Curran Associates,Inc.,2018,第7675-7684页,http://papers.nips.cc/paper/7994-training-depe-neural-networks-with-8-bit-floating-point-numbers.pdf。
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。