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

Centos7.6 stream测试内存

 

 

参考:

https://blog.csdn.net/liudong124521/article/details/101205119

 

相关文章:

  • 2021-09-23
  • 2022-12-23
  • 2021-09-02
  • 2021-11-02
  • 2022-01-05
  • 2021-10-20
  • 2021-04-27
  • 2021-06-23
猜你喜欢
  • 2022-12-23
  • 2021-09-24
  • 2021-10-24
  • 2022-01-16
  • 2022-12-23
  • 2021-08-03
  • 2021-08-04
相关资源
相似解决方案