系统性能测试之内存带宽性能测试(STREAM)
STREAM 是业界标准的内存带宽测试工具,通过模拟四种典型的内存访问模式(Copy、Scale、Add、Triad)来评估系统的内存带宽性能(单位:MB/s)
·
内存带宽性能测试(STREAM)
STREAM 是业界标准的内存带宽测试工具,通过模拟四种典型的内存访问模式(Copy、Scale、Add、Triad)来评估系统的内存带宽性能(单位:MB/s)。以下是详细说明和操作步骤:
一、STREAM 测试的核心指标
-
四种测试模式
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为单位,数值越高表示内存带宽性能越强。
-
关键影响因素
- 内存频率、通道数(如双通道 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
-------------------------------------------------------------
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)