K1 Power Linux上Stream测试内存带宽

本篇文章介绍在K1 Power Linux上理论内存带宽结算,实测内存带宽方法,衡量服务器的内存带宽水平。需要说明的是,对于Scale UP的Power9服务器,计算方法不相同。

预期

K1 PowerLinux 计算理论内存带宽。

  • 双socket的Sforza(POWER9芯片一种),4通道
    2(socket)*2666MHz(内存速度)*4(通道数)*8 = 170GB
  • 双socket的Lagrange或者Monza的芯片(Power9芯片两种),8通道
    2(socket)*2666MHz(内存速度)*8(通道数)*8=340GB/s

stream是可以从https://www.cs.virginia.edu/stream/FTP/Code/stream.c下载,采用如下命令来编译:

gcc -m64 -O3 -fopenmp -DSTREAM_ARRAY_SIZE=536895856 -DNTIMES=20 -mcmodel=large stream.c -o stream

536895856是个magic数字,考虑了预取的各种情况和虚地址转换的各种情况。
-DNTIMES=20 Native Linux用的多一些,运行时间比较快。
-DNTIMES=100 一般VM用的多一些,比较慢,但是可以把系统“warm-up”起来

测试脚本

ppc64_cpu --smt=off
ppc64_cpu --dscr=7
export OMP_NUM_THREADS=40
export GOMP_CPU_AFFINITY=0-159:4
./stream

ppc64_cpu --dscr=7 预取数据。
40表示总的物理核数。
0-159表示一共有160个逻辑核。
GOMP_CPU_AFFINITY 步进4这个值,在传统POWER的大核情况下,改为8。

双路总内存带宽测试结果

Function    Best Rate MB/s  Avg time     Min time     Max time
Copy:          256550.5     0.036187     0.033484     0.042544
Scale:         267920.4     0.036097     0.032063     0.052552
Add:           282230.4     0.052077     0.045656     0.070840
Triad:         283472.4     0.049402     0.045456     0.059879

内存带宽283GB/s跟理论值340GB/s相比,有83%的效率。

另外需要说明:
CPU在用4-6个core的时候就可以将内存带宽基本塞满。
CPU的主频在对内存带宽的最大值的影响不大。

双路机器一侧测试脚本:

ppc64_cpu --dscr=7
export OMP_NUM_THREADS=20
export GOMP_CPU_AFFINITY=0-79:4
./stream

双路机器一侧测试结果

Function    Best Rate MB/s  Avg time     Min time     Max time
Copy:          128566.8     0.068630     0.066816     0.076080
Scale:         133570.9     0.066048     0.064313     0.074193
Add:           141507.2     0.092190     0.091059     0.099438
Triad:         141826.6     0.091653     0.090854     0.093557

K1 Power Linux上Stream测试内存带宽相关推荐

  1. linux编译测试代码,rtc在linux上的测试代码

    点击(此处)折叠或打开 rtc在linux上的测试代码 . rtc应用很广泛,在PC机和嵌入式上面几乎都能看到.下面就用最简单的代码做一个演示.相应的分析请看linux源代码中的分析文档.代码如下: ...

  2. 【开发工具】【stream】内存带宽测试工具(Stream)的使用

    获取更多相关的嵌入式开发工具,可收藏系列博文,持续更新中: [开发工具]嵌入式常用开发工具汇总帖 Stream简介 STREAM是一套综合性能测试程序集,通过fortran和C两种高级且高效的语言编写 ...

  3. stream.c 内存带宽测试

    内存带宽测试工具:stream 介绍 Stream测试是内存测试中业界公认的内存带宽性能测试基准工具,作为衡量服务器内存性能指标的通用工具. 2. 原理 申请了三个巨大的双精度浮点数组a[N], b[ ...

  4. linux 查看共享内存最大值,linux上更改共享内存的最大值

    linux下更改共享内存的最大值 System V IPC 参数 名字 描述 合理取值 SHMMAX 最大共享内存段尺寸(字节) 最少若干兆(见文本) SHMMIN 最小共享内存段尺寸(字节) 1 S ...

  5. stream测试内存_.net core百万设备连接服务和硬件需求测试

    随着物联网的普及,服务应用将面对大量物联设备处理:早期.NET在通讯上的处理能力一直给人的印像并不怎样,但net core经历过大量的优化后在各个模块的处理性能都有着比较出色的提升,针对网络方向的处理 ...

  6. Linux上如何清理内存缓存、缓冲与交换空间?

    [推荐阅读] 浅析linux内核网络协议栈--linux bridge 深入理解SR-IOV和IO虚拟化 深入linux内核架构--进程&线程 与其他类型的操作系统一样,GNU/Linux已经 ...

  7. 为Oracle数据库在linux上配置hugepage内存管理---发表到鼎甲公众号

    发表到鼎甲公众号 技术干货 | 如何提高大数据量时的内存使用效率? 文章目录 配置HugePages的必要性 系统调整之前的状态 Oracle数据库版本和参数 操作系统版本和参数 内核参数 检查Hug ...

  8. Dearpygui制作Linux上SSD测试工具集合

    功能介绍 1.BaseFunction : a. 可查询磁盘smart信息 b. 可做数据保持测试 c. 可做数据校验测试 功能已全部实现 2.Performance : a. 可做基础CDM性能测试 ...

  9. linux 内存使用很大,在32位和64位Linux上,为什么同一进程的pmap的内存使用量会有很大差异?...

    我正在设置一台新服务器(64位Debian),并试图使apache进程尽可能小,从而禁用了我不需要的任何模块.然后,我将pmap输出与32位Debian机器上的apache进行了比较,并打开了更多模块 ...

最新文章

  1. Boolean值判断2个条件之后选择一个条件
  2. mac 拷贝文件时报错 8060 解决方案
  3. TP5 封装通用的微信服务类
  4. WordPress更新时提示无法连接到FTP服务器的解决方案
  5. JAVA单例模式:懒汉式,饿汉式
  6. 宁波医院计算机试题及答案,(宁波市第25届小学生计算机程序设计竞赛试题及答案.doc...
  7. Maven Fluido Skin和Javadoc类图
  8. CCNA-数据包在网络设备直接的通信流程
  9. java 监控 配置 文件怎么打开_java实现文件变化监控的方法(推荐)
  10. spark学习-41-Spark的块传输服务BlockTransferService
  11. POJ 2352 HDU1541 Stars(树状数组)
  12. 结构体学生成绩输入和输出
  13. 拓端tecdat|stata如何处理结构方程模型(SEM)中具有缺失值的协变量
  14. java如何去掉文件后缀名_JAVA 递归批量更改文件后缀名 删除后缀
  15. 安装Editplus软件
  16. Linux中RPM(红帽软件包管理器)
  17. python---酒鬼漫步
  18. 数学三次危机(二)毕达哥拉斯学派的数学思想
  19. 本年盈余与预算结余差异表的分析(一)
  20. 如何改善客户体验和用户体验

热门文章

  1. python3管道通信demo(windows)
  2. 易飞:订单单头税率与单身税率不符导致销货单无法开窗选择
  3. 【ROS-I wiki翻译(三)】Supported Hardware(节译)
  4. Vivado设计秒表计时器实现00分00.00秒到59分59.99秒的计时(verilog语言)
  5. MOS管的知识,看这一篇就可以了
  6. web零基础学习笔记
  7. 已知空间中的三点 求三角形面积_【微专题】立体几何中的截面问题
  8. 计算机入门考核标准,计算机应用基础考核实施方案.doc
  9. 开放式思维,如MBA等(商学院,教育,进阶)
  10. FW150RM和FWR162C共同工作设置