当前位置: > 硕士毕业论文 > 30000字硕士毕业论文阿特拉斯系统中数据结构的具体组织及其在龙芯2F建筑中的应用

30000字硕士毕业论文阿特拉斯系统中数据结构的具体组织及其在龙芯2F建筑中的应用

论文类型:硕士毕业论文
论文字数:30000字
论点:向量,矩阵,函数
论文概述:

基于龙芯2F体系结构特点和ATLAS各级函数的运算特征,提出一系列方法来优化ATLAS各函数的性能。主要的优化目标在于函数的访存方式,通过调度指令,尽可能地将计算时间隐藏于访存之中,同时有效

论文正文:

第一章导言
龙芯2F是国内高性能通用处理器[1,2,3]。基于龙芯2F低功耗、低成本、高集成度优势开发高性能计算机,对于打破外国垄断,提高中国[计算机自主发展水平具有重要意义。为了充分发挥计算机系统的性能,通常需要为用户提供高效的标准函数库。作为许多标准函数库[5-12之一,BLAS库主要负责基本的线性代数运算。目前,几乎所有与矩阵运算相关的软件都需要使用BLAS作为其核心数学库。同时,BLAS函数的运算性能也是高性能计算机的主要评估方法,其中DGEMM(双精度矩阵乘法)函数甚至占据了HPL(高性能标准测试程序)[13]主要计算负荷的90%以上。因此,根据特定体系结构的特点优化BLAS对于发挥计算机性能和提高应用软件的运行速度具有重要作用。
1.1 BLAS介绍BLAB是一组基本的线性代数子程序,它实际上实现了矩阵和向量的基本运算。汉森等人在1973年发表了一篇文章,介绍了为线性代数问题建立一组基本子函数的重要性,并提出了最初的BLAS版本[6]。目前,BLAS已经成为初等线性代数运算的事实标准。它广泛应用于十大科学和工程计算,是许多数学软件的基本核心。因此,BLAS性能的优化对于提高程序运行速度和充分发挥计算机的计算能力具有重要意义。1 . 1 . 1 BLAS的数据结构不是作为参数输入函数的矩阵或向量的原始结构。为了保存空并降低无用数据的访问成本,ATLAS对传入函数的参数进行了一些存储转换。当函数在内部实现时,源数据和参数数据需要根据输入参数的类型进行转换。根据ATLAS源代码和BLAS功能描述的其他版本,分析并得出ATLAS中数据结构的具体组织。ATLAS中的向量和矩阵实际上存储在一维数组中。ATLAS根据不同类型的矢量和矩阵为它们提供不同的存储方法。
矩阵是BLAS函数的主要操作对象。ATLAS根据不同的矩阵类型在二级和二级BLAS中实现不同的子功能,并为各种矩阵设置各自的存储方法,以节省存储空并减少访问开销。矩阵有四种转置形式:T、N、C}H,分别代表实转置、实非转置、复共轭转置和复共轭非转置。BLAS函数接口中传递的矩阵参数都是以某种方式存储的数组。在此过程中应注意他们的职位转换。LL1.1向量向量是一组一维有序数据,分为行向量和列向量。转置:将行向量(列向量)转换成列向量(行向量),从而实现向量的转置过程。在计算之后,图1.1显示了图1.1的向量巨阵列的转置共轭四点:复向量在共轭之后被转置。复矢量的共轭转置形式如图1.20至图1.2所示。向量巨阵的共轭转置向量x以一定步长incX连续存储在阵列x中,其对应的位置关系为:“x[开始+”Incx]Incx >。x7I } x[开始] incx1。}[开始+(i+1-n)*incX]incX
参考
[1]龙芯2F处理器用户手册fGl。中国科学院计算技术研究所。2007
胡魏武、张福鑫、李祖松。龙芯2号处理器的设计与性能分析[[。《计算机研究与发展》,ISSS 1000.1239 } CN 111777 } TP43(6):959 966,2006。
[3]龙芯官方网站[ol。]:http://+}+}+} . loong son . cn/loong son/
[4]张俊霞,张焕杰,李蕙敏,基于龙芯2F的中国万亿次高性能计算机KD-50-1的研发,中国科技大学学报[版,第38卷,第1期,2008年1月
[5]奈德利布·[·奥尔。]: http://+}+}+}.netlib.org
[6]东加拉,索伦森。高性能计算机上的线性代数[。荷兰北部,阿姆斯特丹,1986_ 113。
摘要3-4
摘要4
第一章导言8-23
1.1爆破介绍8-18
1 . 1 . 1 BLAS 8-14的数据结构
1.1.2爆破子功能14-17
1 . 1 . 3 BLAS 17的重要参数
1.1.4 BLAS优化状态17-18
1.2龙芯2F建筑18-21
1.2.1无序执行19-20
1.2.2浮点单元20
1.2.3高速缓存的组织20-21
1.2.4内存管理21
1.3本条的研究内容和技术21-22
1.4结构22-23
第二章代码优化方法23-35
2.1循环展开23-26
2.1.1循环展开系数24-25
2.1.2命令调度25-26
2.2加速内存访问26-28
2.3减少缓存故障28-34
2.3.1数据预取28
2.3.2数据分区28-29
2.3.3部分副本29-34
2.4概述34-35
第三章阿特拉斯二级功能的优化35-52
3.1二级功能的分类35-36
3.2叶片2 36-39的计算方法
3.2.1不对称/非共轭36-38
3.2.2对称/共轭38-39
3.3优化流程39-50
3 . 3 . 1 GEMV 39-46的优化
3 . 3 . 2 HEMV 46-50的优化
3.4概述50-52
第四章GEMM优化52-60
4.1叶片的计算方法3 52-54
4.1.1 SYMM/HEMM 52
4 . 1 . 2 SYRK/HERK/SYR2K/HER2K 52-54
4.1.3 TRMM/TRSM 54
4.2优化54-58
4.2.1循环展开55-56
4.2.2指令调度56
4.2.3矩阵划分和部分拷贝56-57
4 . 2 . 4 sgem 57-58的性能
4.3概述58-60
第五章总结与展望60-62
5.1本文总结了60-61
5.2存在的问题和研究展望61-62