1 / 16
文档名称:

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

格式:ppt   大小:901KB   页数:16页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

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

上传人:卓小妹 2022/8/3 文件大小:901 KB

下载得到文件列表

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

相关文档

文档介绍

文档介绍:内存系统对性能的影响
第1页,共16页,2022年,5月20日,7点44分,星期一
内存系统对性能的影响
对于很多应用而言,瓶颈在于内存系统,而不是CPU
内存系统的性能包括两个方面:延迟和带宽
Latency is the 内存系统对性能的影响
第1页,共16页,2022年,5月20日,7点44分,星期一
内存系统对性能的影响
对于很多应用而言,瓶颈在于内存系统,而不是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页,共16页,2022年,5月20日,7点44分,星期一
延迟和带宽的区别
理解延迟与带宽的区别非常重要。
考虑消防龙头的情形。如果打开消防龙头后2秒水才从消防水管的尽头流出,那么这个系统的延迟就是2秒。
当水开始流出后,如果水管1秒钟能流出5加仑的水,那么这个水管的“带宽”就是5加仑/秒。
如果想立刻扑灭火灾,那么更重要是减少延迟的时间。
如果是希望扑灭更大的火,那么需要更高的带宽。
第3页,共16页,2022年,5月20日,7点44分,星期一
内存延迟示例
考虑某一处理器以1GHz(1纳秒时钟)运行,与之相连的DRAM有100纳秒的延迟(没有高速缓存)。假设处理器有两个multiply-add部件,在每1纳秒的周期内能执行4条指令。
处理器的峰值是4GFLOPS。
由于内存延迟是100个周期,并且块大小为一个字(word),每次处理内存访问请求时,处理器必须要等待100个周期,才能够获得数据。
第4页,共16页,2022年,5月20日,7点44分,星期一
内存延迟示例
在以上平台上,考虑计算两个向量点积的问题。
计算点积对每对向量元素进行一次乘法-加法运算,即每一次浮点运算需要取一次数据。
此计算的峰值速度的限制是,每100纳秒才能够进行一次浮点计算,速度为10MFLOPS,只是处理器峰值速度的每小一部分。
第5页,共16页,2022年,5月20日,7点44分,星期一
使用高速缓存改善延迟
高速缓存是处理器与DRAM之间的更小但更快的内存单元。
这种内存是低延迟高带宽的存储器。
如果某块数据被重复使用,高速缓存就能减少内存系统的有效延迟
由高速缓存提供的数据份额称为高速缓存命中率(hit ratio )
高速缓存命中率严重影响内存受限程序的性能。
第6页,共16页,2022年,5月20日,7点44分,星期一
高速缓存
第7页,共16页,2022年,5月20日,7点44分,星期一
缓存效果示例
继续考虑前一示例。在其中加入一个大小为32KB,延迟时间为1纳秒(或1个周期)的高速缓存。使用此系统来计算矩阵乘法,两个矩阵A和B的维数为32 × 32。之所以选择这个大小,是为了能够将A、B两个矩阵以及结果矩阵都放入高速缓存中。
第8页,共16页,2022年,5月20日,7点44分,星期一
缓存效果示例
结果如下
将两个矩阵取到高速缓存中等同于取2K个字,需要大约200 µs。
两个n × n 的矩阵乘需要2n3 步计算。在本例中,需要64K步计算,如果每个周期执行4条指令,则需要16K个周期,即 16 µs。
总计算时间大约是加载存储时间以及计算时间之和,即200 + 16 µs。
峰值计算速度为64K/216 =303 MFLOPS。
第9页,共16页,2022年,5月20日,7点44分,星期一
缓存的效果
对相同数据项的重复引用相当于“时间本地性(temporal locality)”
对于高速缓存的性能来说,数据的重复使用至关重要。
第10页,共16页,2022年,5月20日,7点44分,星期一
内存带宽的影响
内存带宽由内存总线的带宽和内存部件决定。• 可以通过增加内存块的大小来提高带宽。
底层系统在 L时间单位内(L为系统的延迟)存取B单位的数据(B为块大小)
第11页,共16页,2022年,5月20日,7点44分,星期一
内存带宽的影响示例
继续上一示例,将块大小由1个字改为4个字。同样考虑点积计算:
假定向量数据在内存中线性排列,则在200个周期内能够执行8FLOPs(4次乘法-加法)
这是因为每一次内存访问取出向量中4个连续的字
因此,两次连续访问能够取出每个向量中的4个元素。
这就相当于每25ns执行一次FLOP,即峰值速