当前位置: 首页 > news >正文

一个计算密集小程序在不同CPU下的表现

本文比较了几款CPU对同一测试程序的比较结果,用的是Oracle公有云OCI上的计算实例,均分配的1 OCPU,内存用的默认值,不过内存对此测试程序运行结果不重要。

本文只列结果,不做任何评价。下表中,最后一列为测试程序运行5次的平均耗时。

OCI shape名称CPU 型号基本频率(GHz)测试程序运行耗时平均值(秒)
VM.Standard3.FlexIntel Xeon Platinum 83582.6135.084
VM.Optimized3Intel Xeon 63543.0123.65
VM.Standard.E4.FlexAMD EPYC 7J132.5562.766
VM.Standard.E5.FlexAMD EPYC 7J132.453.22
VM.Standard.A1.FlexAmpere Altra Q80-303.0107.206

测试程序:

#include <stdio.h>
#include <math.h>void main()
{double r;int i, j;for (i=0; i< 100000; i++)for (j=0; j< 100000; j++)r = r + sqrt(sqrt(i));}

编译:

cc -lm a.c

test.sh运行a.out 5次:

for i in 1 2 3 4 5; dotime -p ./a.out
done

求平均值可以将以上输出存于临时文件,例如/tmp/1,然后运行一下:

cat /tmp/1|grep real|sed  's/real //'|awk '{s+=$1} END {print s/5}'

Intel Xeon Platinum 8358

$ lscpu
Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              2
On-line CPU(s) list: 0,1
Thread(s) per core:  2
Core(s) per socket:  1
Socket(s):           1
NUMA node(s):        1
Vendor ID:           GenuineIntel
CPU family:          6
Model:               106
Model name:          Intel(R) Xeon(R) Platinum 8358 CPU @ 2.60GHz
Stepping:            6
CPU MHz:             2594.024
BogoMIPS:            5188.04
Virtualization:      VT-x
Hypervisor vendor:   KVM
Virtualization type: full
L1d cache:           32K
L1i cache:           32K
L2 cache:            4096K
L3 cache:            16384K
NUMA node0 CPU(s):   0,1
Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cm                                                       ov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm consta                                                       nt_tsc arch_perfmon rep_good nopl xtopology cpuid tsc_known_freq pni pclmulqdq v                                                       mx ssse3 fma cx16 pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer                                                        aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault invp                                                       cid_single ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow flexpriority ept vpid e                                                       pt_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid avx512f avx512dq rdse                                                       ed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveop                                                       t xsavec xgetbv1 xsaves nt_good wbnoinvd arat vnmi avx512vbmi umip pku ospke avx                                                       512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq la57 r                                                       dpid md_clear arch_capabilities

测试结果:

$ ./test.sh
real 135.08
user 134.69
sys 0.00
real 135.04
user 134.67
sys 0.00
real 135.14
user 134.67
sys 0.02
real 135.10
user 134.68
sys 0.00
real 135.06
user 134.69
sys 0.00

通过grep real|sed 's/real //'可以得到所有real time统计:

135.08
135.04
135.14
135.10
135.06

直接求平均值可以用grep real|sed 's/real //'|awk '{s+=$1} END {print s/5}', 因此平均值为135.084

Intel Xeon 6354

$ lscpu
Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              2
On-line CPU(s) list: 0,1
Thread(s) per core:  2
Core(s) per socket:  1
Socket(s):           1
NUMA node(s):        1
Vendor ID:           GenuineIntel
CPU family:          6
Model:               106
Model name:          Intel(R) Xeon(R) Gold 6354 CPU @ 3.00GHz
Stepping:            6
CPU MHz:             2993.064
BogoMIPS:            5986.12
Virtualization:      VT-x
Hypervisor vendor:   KVM
Virtualization type: full
L1d cache:           32K
L1i cache:           32K
L2 cache:            4096K
L3 cache:            16384K
NUMA node0 CPU(s):   0,1
Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl xtopology cpuid tsc_known_freq pni pclmulqdq vmx ssse3 fma cx16 pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves nt_good wbnoinvd arat vnmi avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq la57 rdpid fsrm md_clear arch_capabilities

测试结果:

$ ./test.sh
real 123.69
user 123.40
sys 0.00
real 123.66
user 123.37
sys 0.00
real 123.65
user 123.38
sys 0.00
real 123.62
user 123.38
sys 0.00
real 123.63
user 123.38
sys 0.01

通过grep real|sed 's/real //'可以得到所有real time统计:

123.69
123.66
123.65
123.62
123.63

直接求平均值可以用grep real|sed 's/real //'|awk '{s+=$1} END {print s/5}', 因此平均值为123.65

AMD EPYC 7J13

$ ./test.sh
real 60.26
user 60.25
sys 0.00
real 60.51
user 60.50
sys 0.00
real 64.45
user 64.44
sys 0.00
real 67.76
user 66.29
sys 0.13
real 60.85
user 60.80
sys 0.00

测试结果:

$ ./test.sh
real 60.26
user 60.25
sys 0.00
real 60.51
user 60.50
sys 0.00
real 64.45
user 64.44
sys 0.00
real 67.76
user 66.29
sys 0.13
real 60.85
user 60.80
sys 0.00

通过grep real|sed 's/real //'可以得到所有real time统计:

60.26
60.51
64.45
67.76
60.85

直接求平均值可以用grep real|sed 's/real //'|awk '{s+=$1} END {print s/5}', 因此平均值为62.766

AMD EPYC 9J14

$ lscpu
Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              2
On-line CPU(s) list: 0,1
Thread(s) per core:  2
Core(s) per socket:  1
Socket(s):           1
NUMA node(s):        1
Vendor ID:           AuthenticAMD
CPU family:          25
Model:               17
Model name:          AMD EPYC 9J14 96-Core Processor
Stepping:            1
CPU MHz:             2596.100
BogoMIPS:            5192.20
Virtualization:      AMD-V
Hypervisor vendor:   KVM
Virtualization type: full
L1d cache:           64K
L1i cache:           64K
L2 cache:            512K
L3 cache:            16384K
NUMA node0 CPU(s):   0,1
Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm rep_good nopl cpuid extd_apicid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy svm cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw topoext perfctr_core invpcid_single ssbd ibrs ibpb stibp vmmcall fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves nt_good avx512_bf16 clzero xsaveerptr wbnoinvd arat npt nrip_save avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq la57 rdpid arch_capabilities

测试结果:

$ ./test.sh
real 52.63
user 52.62
sys 0.00
real 53.29
user 53.19
sys 0.00
real 52.13
user 52.12
sys 0.00
real 52.28
user 52.27
sys 0.00
real 55.77
user 54.79
sys 0.01

通过grep real|sed 's/real //'可以得到所有real time统计:

52.63
53.29
52.13
52.28
55.77

直接求平均值可以用grep real|sed 's/real //'|awk '{s+=$1} END {print s/5}', 因此平均值为53.22

Ampere Altra Q80-30

$ lscpu
Architecture:        aarch64
Byte Order:          Little Endian
CPU(s):              1
On-line CPU(s) list: 0
Thread(s) per core:  1
Core(s) per socket:  1
Socket(s):           1
NUMA node(s):        1
Vendor ID:           ARM
Model:               1
Model name:          Neoverse-N1
Stepping:            r3p1
BogoMIPS:            50.00
L1d cache:           unknown size
L1i cache:           unknown size
L2 cache:            unknown size
NUMA node0 CPU(s):   0
Flags:               fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp ssbs

测试结果:

$ ./test.sh
real 113.46
user 103.23
sys 0.23
real 103.77
user 103.02
sys 0.03
real 109.15
user 103.01
sys 0.14
real 105.11
user 103.29
sys 0.02
real 104.54
user 103.06
sys 0.02

通过grep real|sed 's/real //'可以得到所有real time统计:

113.46
103.77
109.15
105.11
104.54

直接求平均值可以用grep real|sed 's/real //'|awk '{s+=$1} END {print s/5}', 因此平均值为107.206

参考

  • https://docs.oracle.com/en-us/iaas/Content/Compute/References/computeshapes.htm#vm-standard

相关文章:

一个计算密集小程序在不同CPU下的表现

本文比较了几款CPU对同一测试程序的比较结果&#xff0c;用的是Oracle公有云OCI上的计算实例&#xff0c;均分配的1 OCPU&#xff0c;内存用的默认值&#xff0c;不过内存对此测试程序运行结果不重要。 本文只列结果&#xff0c;不做任何评价。下表中&#xff0c;最后一列为测…...

圈子系统搭建教程,以及圈子系统的功能特点,圈子系统,允许二开,免费源码,APP小程序H5

圈子是一款社区与群组的交友工具。你可以在软件内创造一个兴趣的群组从而达到按圈子来交友的效果用户可以根据自己的兴趣爱好。 1. 创建圈子 轻松创建专属圈子&#xff0c;支持付费型社群。 2. 加入圈子 加入不同圈子&#xff0c;设置不同名片&#xff0c;保护隐私。 3. 定…...

递归算法练习

112. 路径总和 package Tree;import java.util.HashMap; import java.util.Map;class TreeNode {int val;TreeNode left;TreeNode right;public TreeNode(int val) {this.val val;} }/*** 求 树的路径和* <p>* 递归 递减* <p>* 询问是否存在从*当前节点 root 到叶…...

WebDriver 类的常用属性和方法

目录 &#x1f38d;简介 &#x1f38a;WebDriver 核心概念 &#x1f389;WebDriver 常用属性 &#x1f381;WebDriver 常用方法 &#x1f437;示例代码 &#x1f3aa;注意事项 &#x1f390;结语 &#x1f9e3;参考资料 &#x1f38d;简介 Selenium WebDriver 是一个用…...

基于x86+FPGA+AI轴承缺陷视觉检测系统,摇枕弹簧智能检测系统

一、承缺陷视觉检测系统 应用场景 轴类零件自动检测设备&#xff0c;集光、机、软件、硬件&#xff0c;智能图像处理等先进技术于一体&#xff0c;利用轮廓特征匹配&#xff0c;目标与定位&#xff0c;区域选取&#xff0c;边缘提取&#xff0c;模糊运算等算法实现人工智能高…...

短剧小程序系统cps分销开发搭建

短剧小程序系统CPS分销开发搭建是一个相对复杂但具有广阔商业前景的过程。以下是关于短剧小程序系统CPS分销开发搭建的详细步骤和要点&#xff1a; 需求分析与市场调研&#xff1a; 深入了解市场需求、用户画像和竞品分析&#xff0c;明确产品定位和功能需求。研究目标用户的消…...

代理IP的10大误区:区分事实与虚构

在当今的数字时代&#xff0c;代理已成为在线环境不可或缺的一部分。它们的用途广泛&#xff0c;从增强在线隐私到绕过地理限制。然而&#xff0c;尽管代理无处不在&#xff0c;但仍存在许多围绕代理的误解。在本博客中&#xff0c;我们将探讨和消除一些最常见的代理误解&#…...

数组-长度最小的子数组

M长度最小的子数组&#xff08;leetcode209&#xff09; /*** param {number} target* param {number[]} nums* return {number}*/ var minSubArrayLen function(target, nums) {const n nums.length;let ans n 1;let sum 0; // 子数组元素和let left 0; // 子数组…...

深度学习之交叉验证

交叉验证&#xff08;Cross-Validation&#xff09;是一种用于评估和验证机器学习模型性能的技术&#xff0c;尤其是在数据量有限的情况下。它通过将数据集分成多个子集&#xff0c;反复训练和测试模型&#xff0c;以更稳定和可靠地估计模型的泛化能力。常见的交叉验证方法有以…...

使用 Python 五年后,我发现学 python 必看这三本书!少走一半弯路

第一本 《Python编程-从入门到实践》 适合零基础的读者 豆瓣评分&#xff1a;9.1 推荐指数&#xff1a;5颗星 推荐理由&#xff1a; 本书是针对所有层次的 Python 读者而作的 Python 入门书。全书分为两部分&#xff1a; 第一部分介绍使用Python 编程所必须了解的…...

React@16.x(45)路由v5.x(10)源码(2)- history

目录 1&#xff0c;作用1.1&#xff0c;createBrowserHistory1.2&#xff0c;createHashHistory1.3&#xff0c;createMemoryHistory 2&#xff0c;history 对象的属性2.1&#xff0c;action2.2&#xff0c;push / replace / go / goBack / goForward2.3&#xff0c;location2.…...

grpc学习golang版( 八、双向流示例 )

系列文章目录 第一章 grpc基本概念与安装 第二章 grpc入门示例 第三章 proto文件数据类型 第四章 多服务示例 第五章 多proto文件示例 第六章 服务器流式传输 第七章 客户端流式传输 第八章 双向流示例 文章目录 一、前言二、定义proto文件三、编写server服务端四、编写client客…...

SpringBoot学习05-[SpringBoot的嵌入式Servlet容器]

SpringBoot的嵌入式Servlet容器 嵌入式Servlet容器servlet容器-嵌入式servlet容器配置修改通过全局配置文件修改修改添加实现了WebServerFactoryCustomizer接口的bean来进行修改 servlet容器-注册servlet三大组件应该如何注册呢&#xff1f;servlet3.0规范提供的注解方式进行注…...

查看Oracle是哪个Oracle_home 下启动的

[rootrac1 ~]# ps -ef|grep smon root 413 24903 0 22:30 pts/0 00:00:00 grep --colorauto smon root 27165 1 0 22:11 ? 00:00:09 /u01/app/19.0.0/grid/bin/osysmond.bin grid 27784 1 0 22:12 ? 00:00:00 asm_smon_ASM1 oracl…...

重温react-06(初识函数组件和快速生成格式的插件使用方式)

开始 函数组件必然成为未来发展的趋势(个人见解),总之努力的去学习,才能赚更多的钱.加油呀! 函数组件的格式 import React from reactexport default function LearnFunction01() {return (<div>LearnFunction01</div>) }以上是函数式组件的组基本的方式 快捷生…...

【高考志愿】仪器科学与技术

目录 一、专业介绍 1.1 专业概述 1.2 专业方向 1.3 主要课程 二、专业技能与素质培养 三、就业前景 四、个人发展规划建议 五、仪器科学与技术专业排名 六、总结 一、专业介绍 1.1 专业概述 仪器科学与技术专业是一门综合性极强的学科&#xff0c;它融合了测量、控制…...

Elasticsearch的Mapping

Elasticsearch的Mapping Mapping是什么 Mapping定义了ES的索引结构、字段类型、分词器等&#xff0c;是索引的一部分。类似于关系型数据库中“表结构”的概念&#xff0c;在 Mapping 里也包含了一些属性&#xff0c;比如字段名称、类型、字段使用的分词器、是否评分、是否创建…...

【vocabulary in use (elementary)】6 Health and Illness

very well / fine 很好 ill sick 生病 I feel terrible 感觉很差 headache 头疼 toothache 牙疼 dentist medicine 药 pills 片药 caps 胶囊 aspirin 阿司匹林 antibiotic 抗生素 vitamin 维生素 painkiller 止痛药 dentist 牙医 got a cold 感冒 for many years 很多年 all th…...

探囊取物之多形式注册页面(基于BootStrap4)

基于BootStrap4的注册页面&#xff0c;支持手机验证码注册、账号密码注册 低配置云服务器&#xff0c;首次加载速度较慢&#xff0c;请耐心等候&#xff1b;演练页面可点击查看源码 预览页面&#xff1a;http://www.daelui.com/#/tigerlair/saas/preview/ly4gax38ub9j 演练页…...

【C++进阶学习】第五弹——二叉搜索树——二叉树进阶及set和map的铺垫

二叉树1&#xff1a;深入理解数据结构第一弹——二叉树&#xff08;1&#xff09;——堆-CSDN博客 二叉树2&#xff1a;深入理解数据结构第三弹——二叉树&#xff08;3&#xff09;——二叉树的基本结构与操作-CSDN博客 二叉树3&#xff1a;深入理解数据结构第三弹——二叉树…...

REFramework技术实战指南:问题解决与架构优化

REFramework技术实战指南&#xff1a;问题解决与架构优化 【免费下载链接】REFramework REFramework 是 RE 引擎游戏的 mod 框架、脚本平台和工具集&#xff0c;能安装各类 mod&#xff0c;修复游戏崩溃、卡顿等问题&#xff0c;还有开发者工具&#xff0c;让游戏体验更丰富。 …...

掌握NLP实践:从环境搭建到应用部署的6步学习指南

掌握NLP实践&#xff1a;从环境搭建到应用部署的6步学习指南 【免费下载链接】nlp-tutorial A list of NLP(Natural Language Processing) tutorials 项目地址: https://gitcode.com/gh_mirrors/nlp/nlp-tutorial 自然语言处理&#xff08;NLP&#xff09;作为人工智能领…...

[PTA]从汉诺塔到斐波那契:递归思想在经典算法问题中的实战解析

1. 递归思想&#xff1a;从神话到代码的魔法之旅 第一次接触递归时&#xff0c;我盯着汉诺塔的代码看了整整三小时。那种感觉就像小时候听魔术师说"见证奇迹的时刻"——明明看着他把鸽子变没了&#xff0c;却死活想不通机关在哪。递归就是编程世界最优雅的魔术&#…...

低资源部署DeepSeek-R1:苹果A17实测120 tokens/s推理速度

低资源部署DeepSeek-R1&#xff1a;苹果A17实测120 tokens/s推理速度 1. 模型概述 DeepSeek-R1-Distill-Qwen-1.5B是DeepSeek团队基于80万条R1推理链样本对Qwen-1.5B进行知识蒸馏得到的轻量级模型。这款"小钢炮"模型仅1.5B参数却能达到7B级模型的推理能力&#xff…...

Kubernetes资源监控与告警:从指标到行动的完整闭环

Kubernetes资源监控与告警&#xff1a;从指标到行动的完整闭环没有监控的集群就是黑盒&#xff0c;没有告警的监控就是摆设。监控体系架构 一个完整的K8s监控体系包含三个层次&#xff1a; ┌────────────────────────────────────────…...

Mac Mouse Fix:如何让第三方鼠标在macOS上释放全部潜能

Mac Mouse Fix&#xff1a;如何让第三方鼠标在macOS上释放全部潜能 【免费下载链接】mac-mouse-fix Mac Mouse Fix - A simple way to make your mouse better. 项目地址: https://gitcode.com/GitHub_Trending/ma/mac-mouse-fix Mac Mouse Fix是一款开源工具&#xff0…...

从零搭建你的数字工作室:一套搞定Ps、Pr、Ae、C4D、达芬奇的电脑配置与软件协同方案

从零搭建你的数字工作室&#xff1a;一套搞定Ps、Pr、Ae、C4D、达芬奇的电脑配置与软件协同方案 当你决定投身数字内容创作——无论是成为UP主、独立导演&#xff0c;还是开设小型广告工作室&#xff0c;一套能流畅运行主流创意软件的工作站是必不可少的。但面对Adobe全家桶、…...

Python+PySpark+Hadoop房价预测系统 房价预测 房源推荐系统 二手房推荐系统 随机森林回归预测模型、链家二手房 可视化大屏

1、项目 介绍 技术栈&#xff1a; Python房价预测分析系统 毕业设计 大屏 爬虫 机器学习 Flask框架、Echarts可视化、requests 爬虫、随机森林回归预测模型、链家二手房2、项目界面 &#xff08;1&#xff09;数据可视化大屏&#xff08;2&#xff09;房价预测&#xff08;3&am…...

Halcon机器视觉实战:表面划痕检测的优化策略与形态学处理

1. 表面划痕检测的工业挑战与Halcon优势 在工业质检领域&#xff0c;表面划痕检测一直是让工程师头疼的难题。想象一下汽车发动机缸体上的发丝状划痕&#xff0c;或是手机玻璃盖板上若隐若现的加工痕迹——这些缺陷往往与背景对比度差异不足5%&#xff0c;人眼盯着看十分钟都可…...

STM32F103 BSP实战:从零构建自定义板级驱动

1. 认识BSP&#xff1a;硬件与软件的桥梁 当你拿到一块全新的STM32F103开发板时&#xff0c;第一件事就是要让它"活"起来。这时候BSP&#xff08;板级支持包&#xff09;就是你的最佳助手。简单来说&#xff0c;BSP就像是一位专业的翻译官&#xff0c;把硬件的"…...