一.工具介绍
-
前言
stream测试得到的是可持续运行的内存带宽最大值,而并不是一般的硬件厂商提供的理论最大值,具有如下特点:1.主要有四种数组运算,测试的内存带宽的性能分别是:数组的复制(Copy)、数组的尺度变换(Scale)、数组的矢量求和(Add)、数组的复合矢量求和(Triad)
2.数组的值采用了双精度(8个字节)
| 测试内容 | 解析 |
| ------------ | ------------ |
| Copy | 是复制操作,即从内存单元中读取一个数,并复制到其他内存单元中,两次访问内存操作 |
| Scale | 是乘法操作,即从内存单元中读取一个数,与常数相乘,得到的记过存到其它单元内存两次访问内存操作 |
| Add | 是加法操作,从两个内存单元中分别读取两个数,将其进行加法操作后,得到的结果写入另一个内存单元中 |
| Tirad| 是前面三种的结合,先从内存中读取一个数,与一个常数相乘得到一个乘积,然后从另一个内存单元中读取的结果写入内存,3次访问内存操作 |分析:一次Add操作需要访问三次内存(两个读操作,一个写操作),Triad操作也需要访问三次内存, Copy和Scale操作需要访问两次内存。单位操作内,访问内存次数越多,越能够掩盖访问内存延迟,带宽越大。
单核Stream测试:影响的因素除了内存控制器能力外,还有Core的ROB、Load/Store对其影响,因此不是单纯的内存带宽性能测试。
多核Stream测试:通过多核同时发出大量内存访问请求,能够更加饱和地访问内存,从而测试到内存带宽的极限性能。
文章参考https://blog.csdn.net/qq_50550870/article/details/129438422