K1 Power Linux上Stream测试内存带宽
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测试内存带宽相关推荐
- linux编译测试代码,rtc在linux上的测试代码
点击(此处)折叠或打开 rtc在linux上的测试代码 . rtc应用很广泛,在PC机和嵌入式上面几乎都能看到.下面就用最简单的代码做一个演示.相应的分析请看linux源代码中的分析文档.代码如下: ...
- 【开发工具】【stream】内存带宽测试工具(Stream)的使用
获取更多相关的嵌入式开发工具,可收藏系列博文,持续更新中: [开发工具]嵌入式常用开发工具汇总帖 Stream简介 STREAM是一套综合性能测试程序集,通过fortran和C两种高级且高效的语言编写 ...
- stream.c 内存带宽测试
内存带宽测试工具:stream 介绍 Stream测试是内存测试中业界公认的内存带宽性能测试基准工具,作为衡量服务器内存性能指标的通用工具. 2. 原理 申请了三个巨大的双精度浮点数组a[N], b[ ...
- linux 查看共享内存最大值,linux上更改共享内存的最大值
linux下更改共享内存的最大值 System V IPC 参数 名字 描述 合理取值 SHMMAX 最大共享内存段尺寸(字节) 最少若干兆(见文本) SHMMIN 最小共享内存段尺寸(字节) 1 S ...
- stream测试内存_.net core百万设备连接服务和硬件需求测试
随着物联网的普及,服务应用将面对大量物联设备处理:早期.NET在通讯上的处理能力一直给人的印像并不怎样,但net core经历过大量的优化后在各个模块的处理性能都有着比较出色的提升,针对网络方向的处理 ...
- Linux上如何清理内存缓存、缓冲与交换空间?
[推荐阅读] 浅析linux内核网络协议栈--linux bridge 深入理解SR-IOV和IO虚拟化 深入linux内核架构--进程&线程 与其他类型的操作系统一样,GNU/Linux已经 ...
- 为Oracle数据库在linux上配置hugepage内存管理---发表到鼎甲公众号
发表到鼎甲公众号 技术干货 | 如何提高大数据量时的内存使用效率? 文章目录 配置HugePages的必要性 系统调整之前的状态 Oracle数据库版本和参数 操作系统版本和参数 内核参数 检查Hug ...
- Dearpygui制作Linux上SSD测试工具集合
功能介绍 1.BaseFunction : a. 可查询磁盘smart信息 b. 可做数据保持测试 c. 可做数据校验测试 功能已全部实现 2.Performance : a. 可做基础CDM性能测试 ...
- linux 内存使用很大,在32位和64位Linux上,为什么同一进程的pmap的内存使用量会有很大差异?...
我正在设置一台新服务器(64位Debian),并试图使apache进程尽可能小,从而禁用了我不需要的任何模块.然后,我将pmap输出与32位Debian机器上的apache进行了比较,并打开了更多模块 ...
最新文章
- Boolean值判断2个条件之后选择一个条件
- mac 拷贝文件时报错 8060 解决方案
- TP5 封装通用的微信服务类
- WordPress更新时提示无法连接到FTP服务器的解决方案
- JAVA单例模式:懒汉式,饿汉式
- 宁波医院计算机试题及答案,(宁波市第25届小学生计算机程序设计竞赛试题及答案.doc...
- Maven Fluido Skin和Javadoc类图
- CCNA-数据包在网络设备直接的通信流程
- java 监控 配置 文件怎么打开_java实现文件变化监控的方法(推荐)
- spark学习-41-Spark的块传输服务BlockTransferService
- POJ 2352 HDU1541 Stars(树状数组)
- 结构体学生成绩输入和输出
- 拓端tecdat|stata如何处理结构方程模型(SEM)中具有缺失值的协变量
- java如何去掉文件后缀名_JAVA 递归批量更改文件后缀名 删除后缀
- 安装Editplus软件
- Linux中RPM(红帽软件包管理器)
- python---酒鬼漫步
- 数学三次危机(二)毕达哥拉斯学派的数学思想
- 本年盈余与预算结余差异表的分析(一)
- 如何改善客户体验和用户体验
热门文章
- python3管道通信demo(windows)
- 易飞:订单单头税率与单身税率不符导致销货单无法开窗选择
- 【ROS-I wiki翻译(三)】Supported Hardware(节译)
- Vivado设计秒表计时器实现00分00.00秒到59分59.99秒的计时(verilog语言)
- MOS管的知识,看这一篇就可以了
- web零基础学习笔记
- 已知空间中的三点 求三角形面积_【微专题】立体几何中的截面问题
- 计算机入门考核标准,计算机应用基础考核实施方案.doc
- 开放式思维,如MBA等(商学院,教育,进阶)
- FW150RM和FWR162C共同工作设置