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

 

posted @ 2021-04-25 17:54  祝福满地  阅读(745)  评论(0编辑  收藏  举报