软件介绍
Stream是业绩公认的Linux下测试内存带宽性能的工具。该软件支持四种运算方式,包括copy(复制)、Scale(尺度变换)、Add(矢量求和)、Triad(复合矢量求和),从而全面评估内存带宽性能。
测试环境
- 操作系统:UOS统信20专业版1070版本
- 机型:华为擎云W585x 麒麟9000C,ARM64架构
下载
我们可以通过git直接拉取Github上的软件到本地,也可以手动下载压缩包后解压,Github地址https://github.com/jeffhammond/STREAM,为了方便无法访问Github的朋友我也同步上传到123网盘供大家下载。
123网盘链接:https://www.123865.com/s/GOJQjv-IEpe 提取码:NeSS
运行
我们将下载的zip包解压出来后进入到STREAM-master文件夹,在空白处右击“在终端中打开”,输入以下两条命令行即可运行
gcc -O3 -fopenmp -DSTREAM_ARRAY_SIZE=4300000 -DNTIMES=10 stream.c -o stream
./stream
编译参数解释:
- -O3:指定最高编译优化级别,即3
- -fopenmp:启用OpenMP,适应多处理器环境,更能得到内存带宽实际最大值。开启后,程序默认运行线程为CPU线程数
- -DSTREAM_ARRAY_SIZE:指定测试数组a[]、b[]、c[]的大小(Array size),必须设置测试数组大小远大于 CPU 最高级缓存(一般为 L3 Cache)的大小,否则就是测试 CPU 缓存的吞吐性能,而非内存吞吐性能。例如:测试机器是单CPU,最高级缓存8MB,则计算值为 8×1024×1024×4.1×1/8≈4299162
- -DNTIMES=10:执行的次数,并从这些结果中选最优值。
- stream.c:待编译的源码文件
- stream:输出的可执行文件名
- -mtune=native -march=native:针对 CPU 指令的优化,-mtune=native会在已选指令集约束下生成本地机器优化代码;使用-march=native将启用本地机器支持的所有指令子集。
- -mcmodel=medium :当单个 Memory Array Size 大于 2GB 时需要设置此参数
- -DOFFSET=4096 :数组的偏移,一般可以不定义
结果
我们关注最后一个表中 copy(复制)、Scale(尺度变换)、Add(矢量求和)、Triad(复合矢量求和)的传输速率Rate MB/s
《国产信创电脑内存测试工具Stream》留言数:0