系统性能测试之内存带宽性能测试(STREAM)

内存带宽性能测试(STREAM)

STREAM 是业界标准的内存带宽测试工具,通过模拟四种典型的内存访问模式(Copy、Scale、Add、Triad)来评估系统的内存带宽性能(单位:MB/s)。以下是详细说明和操作步骤:


一、STREAM 测试的核心指标
  1. 四种测试模式

    • COPY: 纯内存拷贝(a(i) = b(i)
    • SCALE: 内存拷贝+标量乘法(a(i) = q*b(i)
    • ADD: 内存加法(a(i) = b(i) + c(i)
    • TRIAD: 混合运算(a(i) = b(i) + q*c(i)
      注:结果以 MB/s 为单位,数值越高表示内存带宽性能越强。
  2. 关键影响因素

    • 内存频率、通道数(如双通道 vs 四通道)
    • CPU 缓存效率、NUMA 架构优化
    • 编译器优化级别(如 -O3

二、下载与编译 STREAM
1. 安装依赖(需 GCC 编译器)
# Debian/Ubuntu
sudo apt update && sudo apt install -y gcc

# RHEL/CentOS
sudo yum install -y gcc
2. 下载并编译 STREAM
wget https://www.cs.virginia.edu/stream/FTP/Code/stream.c
gcc -O3 -march=native -fopenmp -DSTREAM_ARRAY_SIZE=100000000 -DNTIMES=20 stream.c -o stream

参数说明

  • -O3: 最高优化级别
  • -march=native: 针对当前 CPU 架构优化
  • -fopenmp: 启用多线程支持
  • -DSTREAM_ARRAY_SIZE: 测试数组大小(建议 ≥4×CPU 缓存大小)
  • -DNTIMES: 测试轮次(取平均值)

三、运行测试
# 单线程测试
export OMP_NUM_THREADS=1
./stream

# 多线程测试(例如 8 线程)
export OMP_NUM_THREADS=8
./stream

典型输出示例

-------------------------------------------------------------
Function    Best Rate MB/s  Avg time     Min time     Max time
Copy:           45678.9     0.0351       0.0349       0.0353
Scale:          43821.6     0.0366       0.0365       0.0368
Add:            48912.3     0.0492       0.0490       0.0495
Triad:          49234.7     0.0488       0.0487       0.0490
-------------------------------------------------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值