ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:378.13KB ,
资源ID:64253      下载积分:15 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/64253.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(矩阵乘法运算效率111.docx)为本站会员(b****9)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

矩阵乘法运算效率111.docx

1、矩阵乘法运算效率摘要近年来,处理器运行速度的增长和存储器访问速度的增长之间存在着巨大的差距,这使得两者之间的速度差距越来越大,现代计算机体系结构中广泛采用高速缓冲存储器(Cache)来缓解这两者之间的速度差距。本文根据矩阵乘法运算的六种不同程序代码,构建了矩阵乘法运算时间的测试程序,得到矩阵乘法运算六种不同版本的运行时间;并通过分析六种不同矩阵乘法运算程序代码中的空间局部性与时间局部性,得出由于高速缓冲存储器和程序访问的局部性差异,同一算法的不同程序代码运行时间相差很大。为了充分利用高速缓冲存储器,提高程序运行效率,在编写程序时需要考虑程序和数据的空间局部性和时间局部性。为了充分利用高速缓冲存

2、储器,论文又给出了分块矩阵乘法运算程序,它可以进一步提高矩阵乘法运算效率。关键字:高速缓冲存储器;矩阵乘法;分块矩阵;局部性原理;时间局部性;空间局部性AbstractRecent years, there has been a big gap between the growth ofprocessor and memory runs access speed, which makesthe speed dif erence between themis more and more big . In modern computer systemstructure, Cache is wide

3、ly used toa leviate the speed gap.Based on the six dif erent program code of matrix multiplication, constructs the matrix multiplication time testprocedures, obtaining the running time of matrix multiplication six dif erent versions; And through the analysis of spacelocalized and time localized in s

4、ix dif erent programcode of matrix multiplication, it is concluded that due to the cachememory and the local dif erences ofprograms access, there is a huge dif erence in the running time of the same algorithmof dif erent program code. In order to make ful use of cache memory and improve program ef i

5、ciency, it is needed toconsider the space and time localized when programming.In order to make ful use of cache memory, paper gives the programofpartitioned matrix multiplication, which couldfurther improve the matrix multiplication ef iciency.Key words:Cache; matrix multiplication; block matrix; pr

6、inciple of locality; temporal locality; spatial localityword文档 可自由复制编辑目录摘要0.Abstract0.第一章 概述3.1.1 研究背景及意义 3.1.2 研究内容4.第二章 基础知识5.2.1 矩阵乘法运算 5.2.2 高速缓冲存储器 6.2.2.1 设置 Cache 的理论依据62.2.2 Cache 的体系结构82.2.3 Cache 的相关知识82.3 开发平台9.第三章 测试程序1. 03.1. 数据区的设定 1. 03.2. 程序执行时间的计算方法103.3. 测试程序的运行结果保存方式113.4. 测试程序代码

7、1. 2第四章 结果和分析1. 64.1 实验结果图1. 64.2 实验结果分析17第五章 改进的矩阵乘法运算 1. 85.1 分块的矩阵乘法运算 1. 85.2 分块的矩阵乘法运算实验结果和分析19第六章 总结2. 1参考文献2. 3致谢2. 5第一章 概述1.1 研究背景及意义在应用程序中,如何提高程序的效率?这是很现实的问题。应用程序作为人们与计算机“ 交谈”的工具,其运行速度是一个十分重要的指标。人们总是希望应用程序执行速度快些, 以便达到最佳的运行效果。随着计算机硬件的发展,微机的速度越来越快,运行软件的能力也越来越强。计算机中程序的运行速度主要受计算机硬件和软件影响,提高计算机程序

8、的运行速度,一般可以从以下几个方面着手:1. 改进算法要想提高程序运行效率,改进算法是最关键的。算法是影响程序运行效率的主要因素,在编写不同程序时要选择适当的算法。算法是计算机求解特定问题的方法和步骤,是指令的有限序列。通常一个问题可以有多种算法,而一个好的算法通常应该具有下列5 个基本特性:正确性、健壮性(鲁棒性)、可读性、高效率、低存储空间。2. 改进程序同一个算法,实现的程序因为书写不同,其程序的运行效率也是不一样。而提高程序效率的方法又有很多。以C/ C+ + 语言为例,可以通过以下方法来提高程序的运行效率:(1)采用自加和自减运算说到对 C/ C+ +语言的优化, 人们马上会想起X+

9、 + 和 X ( 或+ + X、X) , 它们的功能虽与X= X+ 1、X= X- 1 相同, 但二者的运行效率却截然不同。前者不仅运算速度快, 而且占用 RAM的时间更少。(2)巧用寄存器变量寄存器变量是保存在 CPU内部寄存器中的, 其访问速度要比内存变量快得多。若将寄存器变量用于关键的内层循环控制变量, 就会大大提高程序的运行速度。(3)适当采用指针和数组下标指针是 C/ C+ + 语言的一个重要特色, 正确使用指针, 可以使程序简洁、高效、紧凑。利用指针变量比直接利用数组下标来访问数组程序运行要快得多。(4)合理使用内联函数在 C+ + 中, 为了解决一些频繁调用的小函数大量消耗栈空间

10、的问题, 特别地引入了 inline修饰符, 表示为内联函数。内联函数和宏很类似, 其区别在于, 宏是由预处理器对宏进行替代, 而内联函数则是通过编译器控制来实现的, 而且内联函数是真正的函数, 只是在需要用到的时候, 像宏一样地展开, 所以取消了函数的参数压栈,减少了调用的开销。你可以像调用函数一样来调用内联函数, 而不必担心会产生类似处理宏的一些问题。(5) 采用位运算C/ C+ 语言可以用来开发系统软件, 因此具有汇编语言所能完成的一些功能。所谓位运算是指进行二进制位的运算, 这项功能不仅有着其他高级语言无法相比的优越性, 而且位运算速度快, 在某些应用中还有着意想不到的作用。除了上述方

11、法之外,结合硬件环境也可以提高程序的运行效率。在计算机硬件对计算速度的影响上,计算机的3. 硬件环境硬件是提高应用程序计算速度和运行效率的重要途径之一。程序员在设计程序时,应当充分认识到计算机系统的重要性及实现细节,设计出高效、健壮、可移植的程序,从而能提高程序的运行速度。众所周知,内存的存取速度极大地制约着计算机的处理能力。目前,CPU的速度越来越快,尽管内存的速度也不断提高,但远远落后于CPU的处理速度。因而,CPU要花大量的时间等待内存访问延迟,因而内存存取速度是计算机速度的一个瓶颈。为了提高内存的存储速度,越来越多的计算机采用高速缓存Cache 技术。因而,如何有效地利用Cache 的

12、特性,提高程序的运行效率,已经成为一个热点问题。本文通过矩阵乘法运算相关代码的运行时间,讨论高速缓冲存储器对程序运行速度的影响。1.2 研究内容本文根据矩阵乘法运算的六种不同程序代码,构建了矩阵乘法运算时间的测试程序,得到矩阵乘法运算六种不同版本的运行时间;并通过分析六种不同矩阵乘法运算程序代码中的空间局部性与时间局部性,得出由于高速缓冲存储器和程序访问的局部性差异,同一算法的不同程序代码运行时间相差很大。为了充分利用高速缓冲存储器,提高程序运行效率,在编写程序时需要考虑程序和数据的空间局部性和时间局部性。为了充分利用高速缓冲存储器,论文又给出了分块矩阵乘法运算程序,它可以进一步提高矩阵乘法运

13、算效率。本文共分为 6 章,其具体组织如下:第一章是绪论。简要介绍了高速缓冲存储器对程序运行速度的影响分析研究的研究背景和意义,并且介绍了以C 语言为例的提高程序运行效率的方法,在总结这些工作的基础上提出本文的研究思路与内容。第二章基础知识。简要介绍了与本文研究相关的矩阵乘法运算和高速缓存Cache 的有关知识,主要包括矩阵乘法运算的六个不同程序版本,Cache 的工作原理,Cache 的命中率等,并在最后对实验的开发环境Visual C+ 6.0做一个简单的介绍。第三章测试程序。首先对构成矩阵的数组做一个说明,其次介绍4 种用于测试程序运行时间的方法及函数,接着说明了程序实验结果的存放形式和

14、方法,最后给出了完整的测试程序代码。第四章结果及分析。以表格形式呈现实验结果,根据实验结果,绘制图表。对程序从空间局部性和时间局部性两方面进行分析,以验证实验结果。第五章改进的矩阵乘法运算。针对程序的空间局部性和时间局部性随着数组的增大而降低的情况,提出了分块的思想,并且根据分块思想构建矩阵乘法运算的程序,相应的实验证明分块能够较好的提高程序的局部性,提高程序的运行效率。第六章总结。总结本文所做的主要研究工作,并且对利用局部性原理和高速缓存提高程序的运行效率提出了建议。第二章 基础知识2.1 矩阵乘法运算A= aa11 21aa12 22 ,B= bb11 21b12 c11b22 , C= c 21c12 c22

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1