网站大量收购独家精品文档,联系QQ:2885784924

内存系统对性能的影响.pptVIP

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
内存系统对性能的影响.ppt

内存系统对性能的影响 内存系统对性能的影响 对于很多应用而言,瓶颈在于内存系统,而不是CPU 内存系统的性能包括两个方面:延迟和带宽 Latency is the time from the issue of a memory request to the time the data is available at the processor. Bandwidth is the rate at which data can be pumped to the processor by the memory system. 延迟和带宽的区别 理解延迟与带宽的区别非常重要。 考虑消防龙头的情形。如果打开消防龙头后2秒水才从消防水管的尽头流出,那么这个系统的延迟就是2秒。 当水开始流出后,如果水管1秒钟能流出5加仑的水,那么这个水管的“带宽”就是5加仑/秒。 如果想立刻扑灭火灾,那么更重要是减少延迟的时间。 如果是希望扑灭更大的火,那么需要更高的带宽。 内存延迟示例 考虑某一处理器以1GHz(1纳秒时钟)运行,与之相连的DRAM有100纳秒的延迟(没有高速缓存)。假设处理器有两个multiply-add部件,在每1纳秒的周期内能执行4条指令。 处理器的峰值是4GFLOPS。 由于内存延迟是100个周期,并且块大小为一个字(word),每次处理内存访问请求时,处理器必须要等待100个周期,才能够获得数据。 内存延迟示例 在以上平台上,考虑计算两个向量点积的问题。 计算点积对每对向量元素进行一次乘法-加法运算,即每一次浮点运算需要取一次数据。 此计算的峰值速度的限制是,每100纳秒才能够进行一次浮点计算,速度为10MFLOPS,只是处理器峰值速度的每小一部分。 使用高速缓存改善延迟 高速缓存是处理器与DRAM之间的更小但更快的内存单元。 这种内存是低延迟高带宽的存储器。 如果某块数据被重复使用,高速缓存就能减少内存系统的有效延迟 由高速缓存提供的数据份额称为高速缓存命中率(hit ratio ) 高速缓存命中率严重影响内存受限程序的性能。 高速缓存 缓存效果示例 继续考虑前一示例。在其中加入一个大小为32KB,延迟时间为1纳秒(或1个周期)的高速缓存。使用此系统来计算矩阵乘法,两个矩阵A和B的维数为32 × 32。之所以选择这个大小,是为了能够将A、B两个矩阵以及结果矩阵都放入高速缓存中。 缓存效果示例 结果如下 将两个矩阵取到高速缓存中等同于取2K个字,需要大约200 μs。 两个n × n 的矩阵乘需要2n3 步计算。在本例中,需要64K步计算,如果每个周期执行4条指令,则需要16K个周期,即 16 μs。 总计算时间大约是加载存储时间以及计算时间之和,即200 + 16 μs。 峰值计算速度为64K/216 =303 MFLOPS。 缓存的效果 对相同数据项的重复引用相当于“时间本地性(temporal locality)” 对于高速缓存的性能来说,数据的重复使用至关重要。 内存带宽的影响 内存带宽由内存总线的带宽和内存部件决定。? 可以通过增加内存块的大小来提高带宽。 底层系统在 L时间单位内(L为系统的延迟)存取B单位的数据(B为块大小) 内存带宽的影响示例 继续上一示例,将块大小由1个字改为4个字。同样考虑点积计算: 假定向量数据在内存中线性排列,则在200个周期内能够执行8FLOPs(4次乘法-加法) 这是因为每一次内存访问取出向量中4个连续的字 因此,两次连续访问能够取出每个向量中的4个元素。 这就相当于每25ns执行一次FLOP,即峰值速度为40MFLOPS。 内存带宽的影响 需要注意的是,增加块的大小,并不能改变系统的延迟。 物理上讲,本例中的情形可以认为是与多个存储区相连接的宽的数据总线(4个字,或者128位) 实际上,构建这样的宽总线的代价是昂贵的。 在更切实可行的系统中,得到第一个字后,连续的字在紧接着的总线周期里被送到内存总线。 内存带宽的影响示例 以上示例清楚地说明了增加带宽对于提高峰值计算速度的影响。 对数据布局的假设是,连续的数据字被连续的指令所使用(空间本地性,spatial locality ) 如果以数据布局为中心,那么计算的步骤应该确保连接的计算使用连接的数据 小结 以上示例说阐述了如下概念: 利用应用程序的空间本地性与时间本地性对于减少内存延迟及提高有效内存带宽非常重要。 计算次数与内存访问次数的比是一个很好的预测内存带宽的承受程序的指标。 内存的布局以及合理组织计算次序能对空间本地性和时间本地性产生重大影响。 实际测试 * * * * *

文档评论(0)

docindoc + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档