ARM整形算力计算

2023-05-16

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、RK3399规格?
  • 二、开始计算
    • 1.参考
    • 2.计算
  • 总结


前言

之前做人工智能使用RK3399的CPU去推理,发现效果不理想,现在基本上是采用NPU来推理了。我内心不禁萌生一个想法,ARM的CPU算力到底有多少,为什么推理方面干不过NPU,这里我借用经常使用的RK3399来对比下


一、RK3399规格?

RK3399是国产厂商瑞芯微设计的一款ARM产品,基于Cortex-A72+Cortex-A53的大小核架构设计,算是半国产产品吧,Cortex-A72数量2颗,主频1800Mhz;Cortex-A53数量4颗,主频1500Mhz。

二、开始计算

1.参考

我们需要参考官方给出的实际算力表,见下表

在这里插入图片描述
表里我们看出
Cortex-A72的DMIPS/MHZ是4.7,也就是每秒,每MHZ执行4.7百万个整数计算指令
Cortex-A53的DMIPS/MHZ是2.3,也就是每秒,没MHZ执行2.3百万个整数计算指令
有了这些数据,我们开始计算实际的整数算力。

2.计算

MOPS:megaOPS,每秒10^6次整数运算,相当于每秒一百万次整数运算
GOPS:gigaOPS,每秒10^9次整数运算,相当于每秒十亿次整数运算
TOPS:teraOPS,每秒10^12次整数运算,相当于每秒一万亿次整数运算
POPS:petaOPS,每秒10^15次整数运算,相当于每秒一千万亿次整数运算
EOPS:exaOPS,每秒10^18次整数运算,相当于每秒一百亿亿次整数运算

有了这些数据,我们就可以开始计算RK3399的算力了,这里我们抛弃其它的干扰,只计算官方给出的数据,结果可能有一定的偏差。

计算公式:频率(MHZ)x核心数xDMIPS/MHZ

Cortex-A72: 1800x2x4.7=16920 DMIPS
Cortex-A53: 1500x4x2.3=13800 DMIPS

合计:30720 DMIPS

这个算力在GOPS核TOPS中间,实际307.2GOPS或0.3072TOPS,看起来和动辄3TOPS的NPU比起来还是有差距的。


总结

1、市面上很多模型都是基于INT8的,精度和FLOAT肯定是差一些的,大多数人都是采用牺牲一些精度换取大量的性能提升,这个是目前边端设备上的主流做法。
2、没有测试GPU,RK3399这个GPU在嵌入式设备上还是蛮强的,但是实际上在推理场景发挥有限,至少我是没有获得过巨大的性能提升。
3、边端设备上推理还是采用NPU更划算,单纯依靠CPU还是不太现实,或者只能满足受限制的小场景。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ARM整形算力计算 的相关文章

随机推荐

  • turnserver (coturn + redis) 配置ICE server 临时用户密码【实践】

    背景 前端连接turn服务时一般都需要设置账号密码 xff0c 由于都是在js中配置的 xff0c 长期凭据相对临时用户安全性会差很多 xff0c 本文通过程序生成临时的账号密码 xff0c 把临时凭据设置到Redis中 xff0c tur
  • C# 端口转发

    业务需要跳转ip xff0c 又不想迁移程序 xff0c 可以用此方法进行端口转发 span class hljs keyword static span span class hljs keyword void span Main spa
  • 列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少

    列数的规则如下 1 1 2 3 5 8 13 21 34 求第30位数是多少 分析 xff1a 从第二个数开始 xff0c 每位等于前两个数相加 递归 xff1a span class hljs keyword public span sp
  • dotnet core 使用传统Cookie

    dotnet core 使用传统Cookie 先在添加Cookie中间件 app UseCookiePolicy public void Configure IApplicationBuilder app IHostingEnvironme
  • dotnet core web IApplicationBuilder 中间件学习

    dotnet core web IApplicationBuilder 中间件学习 编写一个自己的中间件的模版 public static class MyApp public static IApplicationBuilder User
  • docker gitlib 搭建

    docker gitlib 搭建 1 docker 命令构建 sudo docker run v etc localtime etc timezone rw v etc localtime etc localtime rw d p 8443
  • net core Ocelot 网关 初使用(1)

    新建 net core webapi 项目 安装 nuget 包 96 96 96 Install Package Ocelot 96 96 96 配置 添加一个Ocelot json的文件用来添加Ocelot的配置 转发 http loc
  • net core Ocelot 网关 初使用(2)- 搭配 consul 服务使用 Ocelot

    搭配 consul 服务使用 Ocelot xff0c 自动路由配置 新建webapi 项目 xff0c 安装 nuget 包 install package Ocelot install package Ocelot Provider C
  • spring boot web开发(1)构建项目

    spring boot web开发 xff08 1 xff09 构建项目 1 构建项目 去 https start spring io 下载基础项目在pom xml 添加 web 依赖 lt dependency gt lt groupId
  • SpringBoot web开发(2)session登录注册

    SpringBoot web开发 xff08 2 xff09 session登录注册 新建 LoginController java 文件使用 session 控制登录 64 Autowired HttpSession session 添加
  • SpringBoot web开发 (3) 使用 mysql-jpa 登录验证

    3 使用 mysql jpa 构造 数据库实体类型 添加maven依赖 lt dependency gt lt groupId gt org springframework boot lt groupId gt lt artifactId
  • JAVA+Netty根据二级域名实现多租户内网穿透功能【设计实践】

    目录 背景 实践 项目结构 原理分析 代码实现 cc common项目 cc server项目 cc client项目 Nginx配置 使用 启动服务端 启动客户端 背景 上一篇JAVA基于Netty实现内网穿透功能 设计实践 殷长庆的博客
  • C++:stringstream格式化字符串

    C语言通过snprintf对字符串进行格式化 格式化前需要首先对字符串的长度预估 如果长度大于了字符数组的大小 格式化字符串会被截断 C 通过stringstream对字符串进行格式化 include lt sstream gt inclu
  • Ubuntu:apt软件包管理工具

    apt是Advanced Packaging Tool 是Ubuntu的安装包管理工具 主要的几个操作为 1 安装软件包 sudo apt install 软件包名 2 卸载软件包 而保留软件的配置文件 sudo apt remove 软件
  • CMake:message输出消息

    可以在执行cmkae的时候使用message输出信息 xff1a message lt mode gt 34 message text 34 其中mode有如下几个选项 xff08 优先级由低到高 xff09 xff1a TRACE xff
  • C++(11):通过underlying_type获取/输出枚举类的值

    C 11 枚举类 风静如云的博客 CSDN博客 c 11 枚举类 介绍了枚举类使用的好处 不过如果直接输出枚举类的值是不行的 include lt iostream gt using namespace std int main enum
  • gitlab-ce安装

    GitLab是一个利用 Ruby on Rails 开发的开源应用程序 xff0c 实现一个自托管的Git项目仓库 xff0c 可通过Web界面进行访问公开的或者私人项目 GitLab拥有与Github类似的功能 xff0c 能够浏览源代码
  • WSL2安装到其它目录下

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 前言一 WSL2是什么 xff1f 二 下载Ubuntu20 041 打开Mocrosoft Store2 导出发行版 总结 前
  • 解决Ubuntu20.04安装CUDA-11.2报256错误的问题

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 前言一 报错的原因是什么 xff1f 二 安装cuda 11 2三 安装nvidia driver 455四 再装cuda 11
  • ARM整形算力计算

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 前言一 RK3399规格 xff1f 二 开始计算1 参考2 计算 总结 前言 之前做人工智能使用RK3399的CPU去推理 x