欢迎来到天天文库
浏览记录
ID:39100189
大小:2.42 MB
页数:57页
时间:2019-06-24
《ATLAS在龙芯2F上的访存优化》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、中国科学技术大学学位论文原创性声明本人声明所呈交的学位论文,是本人在导师指导下进行研究工作所取得的成果。除已特别加以标注和致谢的地方外,论文中不包含任何他人已经发表或撰写过的研究成果。与我一同工作的同志对本研究所做的贡献均已在论文中作了明确的说明。作者签名:j址签字日期:量竺乒』址中国科学技术大学学位论文授权使用声明作为申请学位的条件之一,学位论文著作权拥有者授权中国科学技术大学拥有学位论文的部分使用权,即:学校有权按有关规定向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅,可以将学位论文编入有关数据库进行检索,可以采用影印、缩印或扫
2、描等复制手段保存、汇编学位论文。本人提交的电子文档的内容和纸质论文的内容相一致。保密的学位论文在解密后也遵守此规定。玉开口保密(——年)作者签名:萱。邀签字日期:超全军:』!12一聊虢址导师签名:巡!兰.签字日期:第一章绪论龙芯2F是国产的高性能通用处理器[1,2,3】,基于龙芯2F低功耗、低成本和高集成度的优点研制高性能计算机,对打破国外垄断,提高我国计算机的自主研制水平有很重要的意义【4】。为发挥计算机系统性能,通常需要给用户提供高效的标准函数库。BLAS库作为众多标准函数库中的一种[5.12】,主要负责基本的线性代数运算,目前几乎所有的矩阵运算相
3、关的软件都需要使用BLAS作为其核心数学库。同时BLAS函数的运算性能也是高性能计算机的主要评测手段,其中的DGEMM(双精度矩阵乘)函数在规模较大时甚至占用高性能标准测试程序HPL主要运算量的90%以上[13】。因此针对特定体系结构的特点进行BLAS的优化对发挥计算机性能,提高应用软件的运算速度有很重要的作用。1.1BLAS介绍BLAS是一组基本的线性代数子程序,实际上实现矩阵和向量的基本操作。1973年Hanson等发表文章介绍了为线性代数问题建立一组基本子函数的重要性,并提出最初的BLAS版本[6】,目前BLAS已经成为初等线性代数运算事实上的标
4、准,它广泛用于科学及工程计算,是许多数学软件的基本核心,因此BLAS的性能的优化对提高程序运行速度、发挥计算机的运算能力有很重要的意义。1.1.1BLAS的数据结构作为参数传入函数的矩阵或向量并非其本来的结构,为了节省空间、减少无用数据的访问开销,ATLAS对传入函数的参数进行了一些存储转换。在函数内部实现时,需要根据传入参数的类型来进行源数据和参数数据的对应转换。由于未找到ATLAS中关于其数据结构的详细介绍,本文根据ATLAS源码并参考其它版本的BLAS函数说明,分析得出ATLAS中数据结构的具体组织。ATLAS中向量和矩阵实际上是存储在一维数组当
5、中,根据向量和矩阵的不同类型,ATLAS为其提供了不同的存储方式。矩阵是BLAS函数的主要操作对象,ATLAS根据各种矩阵类型,在二、三级BLAS中实现了不同的子函数,同时对各种矩阵设定了各自的存储方式,以节省存储空间,减少访问开销。矩阵的转置形式一共有4种:T,N,C,H,分别代表实数转置,实数非转置,复数共轭转置,复数共轭非转置。第一章绪论BLAS函数接口中传入的矩阵参数均为按一定方式存储后的数组,在计算过程中需注意其位置转换。I.I.I.1向量向量是一维有序数据的集合,分为行向量与列向量。转置(Transpose):将行向量(列向量)转换为列向量
6、(行向量),图1.1表示了向量的转置过程。xr"-Ix,X2x3...%】图1.1矩阵的转置共轭转置(ConjugateTranspose):将复数向量元素取共轭后转置。复数向量共轭转置后的形式如图1.2。耳x2而Xt-t=[i—X2一x3...i]图1.2矩阵的共轭转置向量x在数组X中以一定步长incX连续存储,其位置对应关系为:fX[begin+f枣incX】incX>0t={X[begin】incX=0lX[begin+(i+1一咒)}incX】incX7、egin=0中以步长incX=-2存储,则X=(7,5,3,1)。复数向量与实数向量类似,差别是一个复数需在数组中占用连续的两个空间,前者存放实部,后则存放虚部。因此若复数向量x步长为incX,则X在X中的实际存储间隔为2*incX。2西恐鼍.靠第一章绪论1.1.1.2普通矩阵GE(GeneralMatrix)一般矩阵的存储方式为满矩阵存储(FullMatrixStorage),图1.3是普通矩阵的存储示意,矩阵A实际存储在一维数组中,存储方式有列主序和行主序两种,若为列主序,LDA表示矩阵一列所占用的空间,否则为一行所占用的空间,LDA不小于矩阵一列8、(一行)的大小。与向量一样,复数矩阵的存储与实数矩阵类似,只是复数矩阵的实际规模为实数矩阵的2
7、egin=0中以步长incX=-2存储,则X=(7,5,3,1)。复数向量与实数向量类似,差别是一个复数需在数组中占用连续的两个空间,前者存放实部,后则存放虚部。因此若复数向量x步长为incX,则X在X中的实际存储间隔为2*incX。2西恐鼍.靠第一章绪论1.1.1.2普通矩阵GE(GeneralMatrix)一般矩阵的存储方式为满矩阵存储(FullMatrixStorage),图1.3是普通矩阵的存储示意,矩阵A实际存储在一维数组中,存储方式有列主序和行主序两种,若为列主序,LDA表示矩阵一列所占用的空间,否则为一行所占用的空间,LDA不小于矩阵一列
8、(一行)的大小。与向量一样,复数矩阵的存储与实数矩阵类似,只是复数矩阵的实际规模为实数矩阵的2
此文档下载收益归作者所有