随笔-处理器微架构-测量最大IPC

目录
  • 固定cpu运行频率
  • max_ipc_test.sh
  • LSD (Loop Stream Detector)
  • arm固定cpu频率方式

固定cpu运行频率

我的测试环境cpu频率管理是intel_pstate:

$ lscpu | grep -i hz
Model name:                           Intel(R) Core(TM) i5-10500 CPU @ 3.10GHz
CPU max MHz:                          4500.0000
CPU min MHz:                          800.0000
$ echo 1 | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo
1
$ echo 100 | sudo tee /sys/devices/system/cpu/intel_pstate/min_perf_pct
100
$ echo 100 | sudo tee /sys/devices/system/cpu/intel_pstate/max_perf_pct观察设置结果:
$ sudo cpupower -c 0 frequency-info                                                                       
...current policy: frequency should be within 3.10 GHz and 3.10 GHz.
...$ grep "cpu MHz" /proc/cpuinfo
...
cpu MHz         : 3100.000
cpu MHz         : 3100.665

max_ipc_test.sh

#!/bin/bash[[ -z "$1" ]] && exitecho 'void main() { do {__asm__ (' > nop.c
for ((i = 1; i <= $1; i++)); do
echo '"nop\n\t"' >> nop.c;
done
echo ');} while(1);}' >> nop.cgcc -O0 nop.c -o nopset -x
[ -f ./nop ] && {xcpu=7; sudo perf stat -C $xcpu --timeout 2000 taskset -c $xcpu ./nop
}
set +x
$ bash max_ipc_test.sh 4...                12,290,206,450      instructions                     #    3.97  insn per cycle            
...
void main() { do {__asm__ (
"nop\n\t"
"nop\n\t"
"nop\n\t"
"nop\n\t"
);} while(1);}

LSD (Loop Stream Detector)

nop个数增加会怎么样,考虑LSD,如果循环体太长,则检测不到循环,取指速度若达不到指令执行速度,back end需要等待,出现气泡,IPC会下降

测试最大为32:

$ bash max_ipc_test.sh 33                                                                                                                                           
...               11,486,619,532      instructions                     #    3.71  insn per cycle            
...

看下对应的边际变化

sudo python3 toplev.py -l 3 --core S0-C0 --no-desc --verbose bash -c 'timeout 1 taskset -c 0 /data/products/hpc001/nop 33'

arm固定cpu频率方式

sudo cpufreq-info -c 7 -g
cat /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor
echo performance | sudo tee /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor

恢复:
echo ondemand | sudo tee /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/861840.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

6、RabbitMQ队列之主题【RabbitMQ官方教程】

在前面的教程中,我们改进了日志系统。我们没有使用只能进行虚拟广播的扇出交换机,而是使用了直接交换机,从而有可能选择性地接收日志。 虽然使用直接交换改进了我们的系统,但它仍然有局限性——它不能基于多个标准进行路由。 在我们的日志系统中,我们可能不仅要根据严重性…

石猴授徒-分支2-穿山大王

1-前面跟着任务跑,注意不要碰到"宫女" 2-在幻阵场景内点击各个NPC,战斗获得5个线索后,再重新点击其它NPC,提交线索。 注意:在归墟幻阵中通过传送门能够较快的移动,节约时间。3-提交5个线索后随机位置出现地洞,点击后可传送至“穿山大王府”。 4-在穿山大王府点…

KingbaseES 数据库备份恢复案例之---sys_rman备份进程异常

KingbaseES 、sys_rman案例说明: 执行sys_rman物理备份时,读取backup.info、backup.info.copy文件失败,sys_rman进程异常,无法正常结束服务,进程无法退出,阻塞新的备份任务。 适用版本:KingbaseES V8R6 一、问题现象 如下所示,sys_rman备份结束时,读取backup.info、ba…

养老服务市场潜力大,如何实现效率提升?——看板软件篇

通过引入看板软件,养老行业可以实现任务管理的可视化、协作的便捷化和资源的优化配置。这不仅提高了管理效率和服务质量,还为老年人提供了更加安全、舒适的养老服务环境。未来,随着技术的不断进步和应用的不断深化,看板软件将在养老行业中发挥更加重要的作用,为养老行业的…

易基因:单细胞WGBS揭示母源蛋白Pramel15调控早期胚胎发育的DNA甲基化重编程机制|NC/IF 14.7

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 哺乳动物的早期胚胎发育会经历重要的表观遗传重编程过程,这一过程需要重置从亲本基因组继承的表观遗传信息,以启动胚胎基因表达程序,而全基因组去甲基化对表观遗传重编程至关重要。哺乳动物基因组在CpG位点…

10个技巧,3分钟教会你github高效寻找开源项目(转)

作为程序员,不论是开发还是学习,肯定会用到开源项目,那么怎么快速在开源网站找到这些项目呢?常用的开源网站有:github 和 giteegithub是全球最大的开源社区,今天就以github为例,演示一下github界面一般来说,优秀的项目,维护会比较频繁,提交数也就会多一点。当然,一个…

Excel中使用VLOOKUP对两个单元格关联

一、背景 exl中需要关联两个Excel,根据主键合并两个单元格数据二、使用方法1、表1---列包含在id、姓名、年龄2、表2---列包含姓名、性别3、期望根据【姓名】列为主键,关联两个表数据,补充在【合并-性别】列 首先新增【合并-性别】列,然后选中期望填充的单元格,再点击2位置…

Redis启动,停止,Redis命令行的操作

一、redis命令1 redis执行了make install后,redis的课执行文件都会自动复制到 /usr/local/bin 目录 2 redis-server redis服务器 3 redis-cli redis命令行客户端 4 redis-benchmark redis性能测试工具 5 redis-check-aof aof文件修复工具 6 r…

记一次 .NET某汗液测试机系统 崩溃分析

一:背景 1. 讲故事 上个月在社区写的文章比较少,一直关注的朋友应该知道那段时间被狗咬了以及一些琐事处理,所以手头上也攒了不少需要分享的案例,这段时间比较空闲,逐个给大 家做个分享吧,刚好年后为新版的 .NET高级调试训练营 做案例储备,所以抓紧时间疯狂输出吧! 这次…

Abp vNext 扩展属性

扩展属性我们发现abp的默认都会有一个ExtraProperties属性,那么他的作用是什么呢?当我们使用abp的时候,需要对其原有的表进行扩展或者添加我们想要的字段,又不想改源码,以最小的方式实现,这个时候就体现它的价值了。 我们添加的数据都会在ExtraProperties以JSON对象方式进…