1

我目前正在为学校做一个小型研究项目,与它创建和管理的虚拟机相比,我要测试 Hypervisor 的内存性能带宽。

由于项目的时间框架,将只分析 STREAM 测试的向量函数之一。我的思考过程是查看“复制”函数的结果,因为这是最基本的函数,它不执行任何算术运算,如https://www.cs.virginia.edu/stream/ref 底部所述。 html 毕竟这是内存带宽性能测试。

我还没有找到任何可以证明或反驳我的理论的谷歌帖子。这里有没有人可以对这个话题有所了解?

4

1 回答 1

0

STREAM Copy 和其他三个测试通常用纯 C 编写,没有显式矢量化。但是循环很简单,大多数编译器都能够将它们优化为矢量化变体。https://www.cs.virginia.edu/stream/ref.html中的内核行是循环的完整代码,共有三个数组:a, b,c大小相同;用一些浮点数据预初始化。向量的元素是双精度的(典型值为 8 字节)。

下表显示了在 STREAM 循环的每次迭代中计算了多少字节和 FLOP。该测试由四个内核的多次重复组成,并选择(通常)10 次试验的最佳结果。

------------------------------------------------------------------
name        kernel                  bytes/iter      FLOPS/iter
------------------------------------------------------------------
COPY:       a(i) = b(i)                 16              0
SCALE:      a(i) = q*b(i)               16              1
SUM:        a(i) = b(i) + c(i)          24              1
TRIAD:      a(i) = b(i) + q*c(i)        24              2
------------------------------------------------------------------

该测试的最新变体是 NERSC: http: //www.nersc.gov/users/computational-systems/cori/nersc-8-procurement/trinity-nersc-8-rfp/nersc-8-trinity-benchmarks/stream /和 HPCC: http: //icl.cs.utk.edu/hpcc/均基于http://www.cs.virginia.edu/stream/

于 2016-07-21T20:28:02.937 回答