Centos7.6 stream测试内存
1.下载并解压stream
tar -xvf stream.tar
2.编译
单线程编译:
# gcc -mtune=native -march=native -O3 -mcmodel=medium -DSTREAM_ARRAY_SIZE=200000000 -DNTIMES=30 stream.c -o stream.o
多线程编译(一般采用多线程编译):
# gcc -mtune=native -march=native -O3 -mcmodel=medium -fopenmp -DSTREAM_ARRAY_SIZE=200000000 -DNTIMES=30 stream.c -o stream.o
参数说明:
-mcmodel=medium:当单个Memory Array Size 大于2GB时需要设置此参数(小于2GB时也可保留这个参数,此时这个参数不生效)
-fopenmp:适应多处理器环境;开启后,程序默认线程为CPU线程数
-DSTREAM_ARRAY_SIZE=200000000:这个参数是对测试结果影响最大,也是最需要关注的一个参数,它用来指定计算中a[],b[],c[]数组的大小,它的值不能太大,也不能太小,太大的话,会影响测试准确性,太小的话,CPU Cache会干扰测试结果,不能测试出真实的内存带宽。要确定合适的size值,首先要使用cat /sys/devices/system/cpu/cpu0/cache/index3/size命令查看测试机的三级缓存,假如测试机配置为8C32G,查到的三级缓存为16384K(也就是16MB),那么size最小应该设置为(8C*16MB/core)/8B=32M=32000000,建议为size的四倍,即128M=128000000
-DNTIMES=30:执行的次数,并且从这些结果中选最优值
3.编译后执行测试
./stream
参考:
https://blog.csdn.net/liudong124521/article/details/101205119