STREAM Benchmark及其操作性能分析

本文介绍了STREAM测试工具,一种衡量内存带宽性能的基准测试。文章详细解释了Copy、Scale、Add及Triad四种基本操作,并通过实测数据对比了不同页面大小模式下各操作的带宽表现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

STREAM 是业界广为流行的综合性内存带宽实际性能 测量 工具之一。随着处理器处理核心数量的增多,内存带宽对于提升整个系统性能越发重要,如果某个系统不能够足够迅速地将内存中的数据传输到处理器当中,若干处理核心就会处于等待数据的闲置状态,而这其中所产生的闲置时间不仅会降低系统的效率还会抵消多核心和高主频所带来的性能提升因素。 STREAM 具有良好的空间局部性,是对 TLB 友好、Cache友好的一款测试。STREAM支持Copy 、Scale 、 Add、 Triad四种操作,下面分别介绍四种操作的含义:


  1. void tuned_STREAM_Copy()  
  2. {  
  3.     int j;  
  4.         for (j=0; j<N; j++)  
  5.             c[j] = a[j];  
  6. }  
  7. void tuned_STREAM_Scale(double scalar)  
  8. {  
  9.     int j;  
  10.     for (j=0; j<N; j++)  
  11.         b[j] = scalar*c[j];  
  12. }  
  13. void tuned_STREAM_Add()  
  14. {  
  15.     int j;  
  16.     for (j=0; j<N; j++)  
  17.         c[j] = a[j]+b[j];  
  18. }  
  19. void tuned_STREAM_Triad(double scalar)  
  20. {  
  21.     int j;  
  22.     for (j=0; j<N; j++)  
  23.         a[j] = b[j]+scalar*c[j];  
  24. }  


Copy操作最为简单,它先访问一个内存单元读出其中的值,再将值写入到另一个内存单元。
Scale操作先从内存单元读出其中的值,作一个乘法运算,再将结果写入到另一个内存单元。
Add操作先从内存单元读出两个值,做加法运算, 再将结果写入到另一个内存单元。
Triad的中文含义是将三个组合起来,在本测试中表示的意思是将Copy、Scale、Add三种操作组合起来进行测试。具体操作方式是:先从内存单元中中读两个值a、b,对其进行乘加混合运算(a + 因子 * b ) ,将运算结果写入到另一个内存单元。


下面展示用大页面和不用大页面测试STREAM的一组结果,然后再对结果进行简单分析。
测试平台:龙芯3A,主频UNKNOWN,大页面大小16M
测试结果:

 

首先看小页面模式(i.e. 普通的4K页面大小模式),Add > Copy > Triad > Scale,这是为什么?一次Add操作需要访问三次内存(两个读操作,一个写操作),Triad操作也需要三次访问内存,Copy和Scale操作需要两次访问内存。单位操作内,访问内存次数越多,越能够掩盖访存延迟,带宽越大。单位操作内,操作越复杂,操作完成时间越长,导致整个操作循环完成的时间越长。Add操作简单且访存次数多,故而带宽最大,Scale操作复杂且访存次数少,故而带宽最小。Copy操作简单但访存次数少,Triad操作复杂但访存次数多,考虑到编译器循环展开的作用,Copy操作能够更快地执行,最终导致Copy带宽比Triad略大。
大页面模式下,基本规律一致。由于使用了大页面,每访问16M页面才会出现一次物理缺页,相比每访问4K页面就出现一次缺页来说,访存缺页的概率大大降低。这里需要注意的是,TLB缺失开销在本实验中是无法观测到的。这是因为,本测试中,缺页开销占主导地位,访问过的内存不会被重新访问(时间局部性几乎没有),TLB缺失开销几乎可以不计。


STREAM Benchmark下载地址:http://www.cs.virginia.edu/stream/FTP/Code/

 

延伸内容:
以上分析基于STREAM1.0,现在已经推出了STREAM2.0测试,总体思想一致,四种操作进行了少许修改:

STREAM2 is an attempt to extend the functionality of the STREAM benchmark in two important ways:

  •   STREAM2 measures sustained bandwidth at all levels of the cache hierarchy, and
  •   STREAM2 more clearly exposes the performance differences between reads and writes

STREAM2 is based on the same ideas as STREAM, but uses a different set of vector kernels:

  •   FILL:        similar to bzero(), but fills with a constant instead of zero
  •   COPY:        similar to bcopy(), and the same as STREAM Copy
  •   DAXPY:    similar to STREAM Triad, but overwrites one of the input vectors instead of writing results to a third vector
  •   SUM:        sum reduction on a single vector -- reads only, no writes



Table 1: Characteristics of the STREAM2 kernels.  The value in parentheses in the "Bytes/iter read" column indicates the number of additional bytes read per iteration on machines with a "write allocate" cache policy.

 

 

 

STREAM2.0 下载地址: http://www.cs.virginia.edu/stream/stream
### EMU 编辑器性能基准测试方法和工具 在探讨 EMU 编辑器的性能基准测试之前,有必要先理解其背景。Movie Gen Edit 在 TGVE+ 基准测试中的卓越表现证明了该领域内技术的进步[^1]。然而,对于特定于 EMU 的编辑器而言,虽然直接提及较少,但从相似的技术框架中可以获得一些启示。 #### 测试环境配置 为了确保公平性和可重复性,在进行 EMU 编辑器性能基准测试时,通常会设定标准化的硬件平台以及软件运行环境。这包括但不限于操作系统版本、内存大小、CPU 类型等参数的选择。这些设置有助于消除外部因素对测试结果的影响。 #### 性能指标定义 针对 EMU 编辑器的具体应用场景,需确立一系列衡量标准来评价其效率与质量: - **响应速度**:测量从用户输入命令到系统完成相应操作所需的时间间隔; - **资源占用率**:监控 CPU 使用情况、RAM 占用量以及其他可能影响整体性能的因素; - **渲染精度**:通过视觉检测算法分析输出内容的质量差异; #### 工具选用建议 考虑到上述需求,可以选择如下几种常见的评测工具组合来进行综合评估: - **Perfetto 或 Systrace**:用于捕获详细的执行轨迹数据,帮助识别潜在瓶颈所在位置; ```bash perf record -e cycles,instructions ./emu_editor_binary ``` - **Valgrind (Callgrind/KCachegrind)**:辅助定位内存泄漏问题并优化代码路径; ```bash valgrind --tool=callgrind ./emu_editor_binary kcachegrind callgrind.out.* ``` - **FFmpeg/ffmpeg-python**:适用于处理多媒体文件转换及格式兼容性的验证工作; ```python import ffmpeg stream = ffmpeg.input('input.mp4') stream = ffmpeg.output(stream, 'output.avi', vcodec='libx264') ffmpeg.run(stream) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值