TOPS、MIPS、DMIPS、MFLOPS、吞吐量与推理效率

1.概述

在深度学习对应的神经推理中经常涉及几个重要概念,TOPS、MIPS、DMIPS,MFLOPS,下文对其做对比说明。

2.概念对比

2.1 MIPS

Million Instructions Per Second的缩写,每秒处理的百万级的机器语言instructions。这是衡量处理速度的一个指标。比如一个Intel 80386 电脑可以每秒处理3 million到5 million机器语言指令,那么我们就说80386是3~5MIPS的CPU。MIPS只是衡量CPU性能的指标。注意:这里的instructions指的是任意类型的,可能有取数据、译码、decimal numbers相关等。

与此同时,MIPS还是一家美国著名的芯片设计公司,是一家设计制造高性能、高档次及嵌入式32位和64位处理器的厂商,它采用精简指令系统计算结构(RISC)来设计芯片。和英特尔采用的复杂指令系统计算结构(CISC)相比,RISC具有设计更简单、设计周期更短等优点,并可以应用更多先进的技术,开发更快的下一代处理器。MIPS是出现最早的商业RISC架构芯片之一,新的架构集成了所有原来MIPS指令集,并增加了许多更强大的功能。1984年,MIPS计算机公司成立。1992年,SGI收购了MIPS计算机公司。1998年,MIPS脱离SGI,成为MIPS技术公司。

MIPS公司设计RISC处理器始于1980s年代初,1986年推出R2000处理器,1988年推R3000处理器,1991年推出第一款64位商用微处器R4000。之后又陆续推出R8000(于1994年)、R10000(于1996年)和R12000(于1997年)等型号。

随后,MIPS公司的战略发生变化,把重点放在嵌入式系统。1999年,MIPS公司发布MIPS32和MIPS64架构标准,为未来MIPS处理器的开发奠定了基础。新的架构集成了所有原来NIPS指令集,并且增加了许多更强大的功能。MIPS公司陆续开发了高性能、低功耗的32位处理器内核 (core)MIPS324Kc与高性能64位处理器内核MIPS64 5Kc。2000年,MIPS公司发布了针对MIPS32 4Kc的版本以及64位MIPS 64 20Kc处理器内核。 


2.2 DMIPS

DMIPS是D-MIPS的组合。具体来说:D是Dhrystone的缩写,表示了在Dhrystone这样一种测试方法下的MIPS,Dhrystone是一种整数运算测试程序。以下是在FOLDOC上的解释:

Dhrystone
A short synthetic benchmark program by Reinhold Weicker , intended to be representative of system (integer) programming. It is available in ADA, Pascal and C.The current version is Dhrystone 2.1. The author says, "Relying on MIPS V1.1 (the result of V1.1) numbers can be hazardous to your professional health."
Due to its small size, the memory system outside the cache is not tested. Compilers can too easily optimise for Dhrystone. String operations are somewhat over-represented.
(2002-03-26)
(c) Copyright 1993 by Denis Howe


2.3 MFLOPS

MFLOPS在FOLDOC上的解释如下:

A benchmark which attemps to estimate a system's floating-point "MFLOPS" rating for specific FADD, FSUB, FMUL and FDIV instruction mixes.

是一种基于浮点运算的CPU测试程序,当然,这种测试的结果也以 MFLOPS来加以表示,代表了CPU处理浮点运算的能力。

CPU性能评估采用综合测试程序,较流行的有Whetstone 和 Dhrystone 两种。Dhrystone主要用于测整数计算能力,计算单位就是DMIPS。采用Whetstone 主要用于测浮点计算能力,计算单位就是MFLOPS。

无论是MIPS或MFOPS表示的与decimal numbers相关的指令操作,取数据、译码不包含在内。

2.4 TOPS

  • TOPS是Tera Operations Per Second的缩写,是计算机的算力单位。1TOPS代表处理器的算力是1s可进行一万亿次(10^{12}) 或tera计算操作op,单次运算op,当前一般指矩阵相乘时的乘加运算。

  • 与此对应的还有GOPS(Giga Operations Per Second),MOPS(MillionOperation Per Second)算力单位。1GOPS代表处理器每秒钟可进行十亿次(10^9),1MOPS代表处理器每秒钟可进行一百万次(10^6)计算操作。

  • TOPS、MOPS、GOPS都是算力单位,都代表每秒钟能计算的次数,可以相互换算。

  • 广义上,它可以再任意加上一个数据类型,作为指对在特定数据类型上的处理能力,比如对INT8(8位整型)、FP32(32位双精度)。对于后者这些浮点数类型,单位会增加一个 FL 特指 Float-point,即 TFLOPS。

  • 除了表示计算操作的速度快慢,还有类似 TOPS/W 这样的单位来附加说明能耗关系,它表示每瓦电力能产生多少算力。

由于目前市场主流的计算性能对比都在 TOPS (兆亿每秒)这个级别上,所以这个单位被广泛使用。不同算力单位的数量级对比如下。

3.推理效率

目前市场上有数十家公司已经或正在开发用于神经网络推理的 IP 和芯片。几乎每家人工智能公司都提供 TOPS的信息,但几乎没有介绍其他信息。

TOPS是每秒数万亿或万亿次操作。它主要是衡量可实现的最大吞吐量,而不是实际吞吐量的衡量标准。大多数操作是 MAC(multiply/accumulates),因此:

                         TOPS =(MAC 单元数)x(MAC 操作频率)x 2

因此,更多的 TOPS 意味着更多的硅基面积、更高的成本、更高的功耗,也许还有更高的吞吐量,但这取决于推理加速器的其他方面。

光有TOPS来指代推理效率是不够的。进一步需要知道具体的model、image size、batchsize - 所有这些结合起来才能告诉芯片或 IP 是否满足具体的吞吐量要求。

单位成本的吞吐量Throughput 是给定模型、图像大小、批量大小的推理效率,不同的备选方案之间可以进行综合比较或单项比较。通过查看芯片的市场价格,可以来粗略估算它的推理成本。

所有推理加速器都将有 4 个关键组件,这些组件将构成芯片的大部分:

  1. MAC(现在假设所有 MAC 都是 INT8,但许多 MAC 都有 INT16 和 BFloat16 选项);
  2. SRAM(可以是芯片上分布式的或在芯片上是集中式的);
  3. DRAM(每个 DRAM 需要片上一个 DDR PHY 和大约 100 个额外的 BGA balls);
  4. 连接计算和内存模块以及控制神经网络模型执行逻辑的互连架构。

更多的MAC、更多的SRAM、更多的DRAM和更多的互连将提高推理效率,但同时也会增加成本。

推理目标是获得最大的推理效率:使用最少的 MAC、SRAM、DRAM 和互连架构,最大限度地提高吞吐量(对于给定模型、图像大小、批量大小)。由于功耗与成本具有大致的相关性:功耗来自MAC、SRAM、DRAM和互连架构 - 其中的每一项增加都将转化为更高的功率。

少量但不是很多公司为其推理加速芯片提供额外的数据:TOPS、DRAM 数量(决定 DRAM 带宽)和 ResNet-50 的吞吐量。单位成本的Throughput可以通过查看Throughput/TOPS、Throughput/SRAM 和Throughput/DRAM 的组合来近似计算得出。

ResNet-50 可能不是最好的测试benchmark ,也没有人在应用程序中实际使用它。但它是唯一有足够数据进行比较的基准。需要注意的是,根据每种体系结构的特征不同,更大的models和更大的图像尺寸的相对性能可能也会发生显著变化。

下面我们将比较 TOPS 从 400(Groq)~0.5 (Jetson Nano)的推理加速性能。由于很难提供想要的全部数据,下表中列出的芯片已发布特定批量大小的 TOPS 和 ResNet-50 性能数据,我们从中也足以看到一些基本的趋势。芯片按从最高 ResNet-50 吞吐量到最低吞吐量的顺序排列,其中两列显示 batch=1 吞吐量和 batch=10++ 吞吐量。如果未给出batch大小,我们假设它是 large batch。

注意,TOPS 和吞吐量具有松相关性,但某些芯片比其他芯片以更少的 TOPS 也可以提供更高的吞吐量。这是因为互联架构、SRAM大小和DRAM数量在决定吞吐量方面也非常重要。

a)  Throughput/TOPS:衡量模型使用 MAC 效率的指标

Throughput/TOPS告诉我们芯片使用其MAC的效率如何,至少对于给定的模型而言是这样。

下表中除了 InferX X1 之外,其它芯片都没有表明它们有多少 SRAM(X1 有 8MB)。更多的SRAM和更多的DRAM都将有助于提高MAC的利用率,但需要付出相应代价。因此,最高Throughput/TOPS不一定是最佳单位成本下的Throughput,我们需要知道使用了多少会增加成本的内存。

下表按吞吐量降序显示了 ResNet-50 的Throughput/TOPS。

b)  Throughput/DRAM:衡量DRAM利用效率的指标

接下来,可以查看ResNet-50 Throughput/DRAM(DRAM 的数量,而不是千兆位:DRAM 主要用于推理带宽而不是容量)。

下表按 ResNet-50 的Throughput/DRAM 降序排序。

c) Throughput/SRAM:衡量SRAM利用效率的指标

SRAM大小可能与MAC的面积一样大或更大,因此了解SRAM 容量对于估算单位成本Throughput非常重要。不幸的是,很少有芯片提供具体数据:下表中只列出有 2 个,Hailo-8 的 SRAM 大小是微处理器报告的估计值。

通过汇制出Throughput/TOPS vs Throughput/DRAM,以及Throughput/TOPS vs Throughput/SRAM 关系图,可以估算得到单位成本下的Throughput,由此可以得出一些结论。

上述表格中 TOPS 和 DRAM 数据最多——我们在下面绘制了 ResNet-50 batch=1 和 ResNet-50 batch=10+ 的数据。

关于TOPS和SRAM的数据最少,如下图所示,只有 ResNet-50 batch=1对应数据。


4.结论

如何将上述分析方法应用于具体的程序,这主要有三步。

1)首先,需要具体的model-size、image-size和batch-size。

2)然后,通过查看芯片供应商资料手册提供的该model-size、image-size和batch-size下的 INT8 Throughput,以及对应的 TOPSSRAM 的片上megabytes大小和用于实现Throughput的 DRAM 数量。

3)最后,使用上述分析方法绘制结果,可以深入了解应用程序的单位成本对应的Throughput。

5.参考资料

TOPS, Memory, Throughput And Inference Efficiency

MIPS?、DMIPS和MFLOPS的定义、区别和联系

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

coredump+gdb调试

1、什么是coredump Coredump(核心转储)是操作系统在程序异常终止(例如由于段错误或其他严重错误)时创建的一种文件。这个文件包含了程序崩溃时刻进程的内存镜像,通常还包括程序计数器、寄存器内容和堆栈内存等信息&am…

我在考 pmp,想知道如何去学习 pmbok?

PMP新版大纲加入了ACP敏捷管理的内容,而且还不少,敏捷混合题型占到了 50%,很多人都觉得考试难度提升了,我最开始备考的时候也被折磨过一段时间,但是后面还是找到了方法,3A通过了考试,也算有点经…

设计模式——桥接模式(Bridge Pattern)

概述 桥接模式是一种结构型设计模式,如果软件系统中某个类存在两个独立变化的维度,通过该模式可以将这两个维度分离出来,使两者可以独立扩展,让系统更加符合“单一职责原则”。与多层继承方案不同,它将两个独立变化的维…

SpringBoot整合人大金仓数据库KingBase

1 去KingBase官网下载驱动jar包 2 将解压得到的所有jar包放置在libs目录下&#xff08;没有就新建一个目录&#xff09; 3 在pom文件添加相关依赖 <!--添加KingBase所需要的依赖--> <dependency><groupId>com.kingbase</groupId><artifactId>kin…

el-select 单选时,选择后输入框的is-focus状态并没有取消

前两天在封装组件的时候&#xff0c;发现el-select 单选时&#xff0c;选择后输入框的is-focus状态并没有取消&#xff0c;需要手动点其它地方才会取消&#xff0c;于是想着找找为什么 一、通过调试源码发现&#xff0c;输入框在点击选项后触发blur&#xff0c;紧接着又触发了…

亚马逊,速卖通,美客多卖家怎么才能安全及有效的积累产品的评论

测评补单对于亚马逊、速卖通等平台卖家来说&#xff0c;是一种重要的运营手段之一&#xff0c;通过测评补单快速增加产品的销量、评论数量&#xff0c;提升排名&#xff0c;从而打造爆款产品。 测评养号的好处包括&#xff1a; 1. 提升店铺信誉&#xff0c;制造爆款&#xff…

【Django开发】美多商城项目第2篇:Django用户注册和登录开发(附代码,已分享)

本系列文章md笔记&#xff08;已分享&#xff09;主要讨论django商城项目相关知识。项目利用Django框架开发一套前后端不分离的商城项目&#xff08;4.0版本&#xff09;含代码和文档。功能包括前后端不分离&#xff0c;方便SEO。采用Django Jinja2模板引擎 Vue.js实现前后端…

【2023】java常用HTTP客户端对比以及使用(HttpClient/OkHttp/WebClient)

&#x1f4bb;目录 1、介绍2、使用2.1、添加配置2.1.1、依赖2.1.2、工具类2.1.3、实体2.1.4、Controller接口 2.2、Apache HttpClient使用2.3 、OkHttp使用2.4、WebClient使用 1、介绍 现在java使用的http客户端主要包括以下几种 而这些中使用得最频繁的主要是&#xff1a; A…

持续领跑云安全赛道!安全狗多项安全能力获认可

近日&#xff0c;以“数字安全 未来可期”为主题的“2024安全市场年度大会”在北京成功举行。 作为国内云原生安全领导厂商&#xff0c;安全狗也受邀出席此次活动。 厦门服云信息科技有限公司&#xff08;品牌名&#xff1a;安全狗&#xff09;创办于2013年&#xff0c;是国内领…

[②C++ Boost]: Boost库编译,arm交叉编译方法

前言 Boost是十分实用的C库&#xff0c;如果想在arm环境下使用&#xff0c;就需要自己下载源码编译&#xff0c;本篇博客就记录下Boost库的编译方法。 下载Boost源码 Boost源码的下载路径可以使用&#xff1a;https://sourceforge.net/projects/boost/files/boost/ 编译 …

MySQL之导入、导出远程备份

一、Navicat工具导入、导出 1.1 导入 第一步&#xff1a; 右键&#xff0c;点击运行SQL文件 第二步&#xff1a; 选择要运行的SQL&#xff0c;点击开始 第三步&#xff1a; 关闭即可 1.2 导出 第一步&#xff1a; 右键选择&#xff0c;导出向导 第二步&#xff1a; 选择SQL脚…

require.context的作用

1、什么是 require.context 一个 webpack 的 api &#xff0c;通过该函数可以获取一个上下文&#xff0c;从而实现工程自动化&#xff08;遍历文件夹的文件&#xff0c;从中获取指定文件&#xff0c;自动导入模块&#xff09;。 在前端工程中&#xff0c;如果一个文件夹中的模块…

亚信安全深度解读2023年中国网络安全重要政策法规

亚信安全在对2023年国内网络安全政策的持续跟踪和研究基础上进行了详细分析。观察整体态势&#xff0c;本年度网络安全政策的发布呈现出高密度特征&#xff0c;共计引起行业高度关注的政策达50余项。数据安全领域、个人信息保护和数据跨境安全成为关注的热点&#xff0c;分别有…

ChatGPT给出最有用建议居然是去网上搜索

今天共享服务器的学员发现了一个问题&#xff0c;就是装不了rJava。但是&#xff0c;我装了下&#xff0c;发现没问题啊&#xff0c;然后&#xff0c;我就问他&#xff0c;他是哪里加载的&#xff0c;他回答的说&#xff0c;是在Rstduio-server上。 我觉得此时有蹊跷&#xff0…

状态管理小能手:Cookie 和 Session

1. 引言 大家好&#xff0c;我是小❤&#xff0c;一个漂泊江湖多年的 985 非科班程序员&#xff0c;曾混迹于国企、互联网大厂和创业公司的后台开发攻城狮。 假期抢票的尴尬事件 最近小❤在抢出行的高铁票时&#xff0c;发生了一件尴尬的事情。 这不是临近假期了嘛&#xf…

autoxjs 安卓爬虫自动化

autoxjs 安卓爬虫自动化 我这里只是测试请勿用于违法的 我这里是小红书 文章目录 autoxjs 安卓爬虫自动化前言一、自动刷直播间并且抓取商品已经粉丝数量等&#xff1f;总结 前言 欢迎来到AutoXJS的世界&#xff0c;这是一个充满创新、挑战和技术探索的领域。在这个引领未来的…

Embedded-Project项目介绍

Embedded-Project项目介绍 Server后端项目后端启动连接数据库启动时可能遇到的问题架构介绍 web前端项目前端启动启动时可能遇到的问题架构介绍 前后端分离开发流程 项目地址&#xff1a; https://github.com/Catxiaobai/Embedded-Project Server后端项目 系统后端项目&#…

非工程师指南: 训练 LLaMA 2 聊天机器人

引言 本教程将向你展示在不编写一行代码的情况下&#xff0c;如何构建自己的开源 ChatGPT&#xff0c;这样人人都能构建自己的聊天模型。我们将以 LLaMA 2 基础模型为例&#xff0c;在开源指令数据集上针对聊天场景对其进行微调&#xff0c;并将微调后的模型部署到一个可分享的…

深入理解 Hadoop (五)YARN核心工作机制浅析

概述 YARN 的核心设计理念是 服务化&#xff08;Service&#xff09; 和 事件驱动&#xff08;Event EventHandler&#xff09;。服务化 和 事件驱动 软件设计思想的引入&#xff0c;使得 YARN 具有低耦合、高内聚的特点&#xff0c;各个模块只需完成各自功能&#xff0c;而模…

红帽宣布CentOS 7和RHEL 7将在2024年6月30日结束支持,企业面临紧迫的迁移压力!

2020 年红帽 (RedHat&#xff0c;已在 2019 年被 IBM 收购) 单方面宣布终止 CentOS Linux 的开发&#xff0c;此后 CentOS Linux 8 系列的更新已经在 2021 年 12 月结束&#xff0c;而 CentOS Linux 7 系列的更新将在 2024 年 6 月 30 日结束。 与 CentOS Linux 7 一起发布的 R…