模型复杂度与硬件性能的衡量

news2025/2/4 12:40:55

1. 模型复杂度的衡量

参数数量(Params):指模型含有多少参数,直接决定模型的大小,也影响推断时对内存的占用量

  • 单位通常为 M,通常参数用 float32 表示,所以模型大小是参数数量的 4 倍左右
  • 参数数量与模型大小转换示例:10M float32 bit = 10M × 4 Byte = 40MB

理论计算量(FLOPs):指模型推断时需要多少计算次数

  • 是 floating point operations 的缩写(注意 s 小写),可以用来衡量算法/模型的复杂度,这关系到算法速度,大模型的单位通常为 G(GFLOPs:10亿次浮点运算),小模型单位通常为 M
  • 通常只考虑乘加操作(Multi-Adds)的数量,而且只考虑 CONV 和 FC 等参数层的计算量,忽略 BN 和 PReLU 等等。一般情况,CONV 和 FC 层也会忽略仅纯加操作的计算量,如 bias 偏置加和 shotcut 残差加等,目前有 BN 的卷积层可以不加 bias
  • PS:也有用 MAC(Memory Access Cost) 表示的

2. 硬件性能的衡量

算力:

  • 计算平台倾尽全力每秒钟所能完成的浮点运算数(计算速度,fp32),单位一般为 TFLOPS(floating point of per second
  • 计算公式一般为 处理器核心时钟频率 × 处理器核心数量 × 特定数据类型的指令吞吐量 × 2 ,后面乘以 2 是因为乘加视作两次浮点运算
  • eg:NVIDIA A100 GPU 频率为 1.41GHZ,处理器( Streaming Multiprocessors, SMs)数为 108,每个处理器 FP32 的 CUDA Cores 数量为 64,那么 PeakFLOPS = 1.41*108*64*2 = 19.49TFLOPS

带宽:

  • 计算平台倾尽全力每秒所能完成的内存(CPU 内存 or GPU 显存)交换量,单位一般为 GB/s(GByte/second)
  • 计算公式一般为 (内存核心时钟频率 × 2) × (内存位宽 / 8) × 通道数,内存频率乘以 2 是因为一个时钟周期传输 2 bit 数据(上升沿和下降沿各传送一次);内存位宽的单位为 bit,除以 8 转换为 Byte;现在的内存条一般通道数为 2
  • eg:某相机芯片带宽:(2000MHZ × 2) × (32 / 8) × 2 = 32GB/s ,NVIDIA A100 带宽:(1215MHZ × 2) × (5120 / 8) × 1 = 1555.2GB/s

3. 模型复杂度的计算公式

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构C语言版 —— 树和二叉树的概念

树和二叉树 一、树 1. 树的概念 树(Tree)是n(n>0)n(n>0)n(n>0)个节点的有限集,在任意一颗非空树中: (1) 有且仅有一个特定的称为根(Root)的节点,根节点是没有前驱节点的。 (2)当 n>1n > 1n>1时…

_11LeetCode代码随想录算法训练营第十一天-C++队列的应用

_11LeetCode代码随想录算法训练营第十一天-C队列的应用 239.滑动窗口最大值347.前K个高频元素 239.滑动窗口最大值 整体思路 要实现一个单调递减队列: 对于滑动窗口的滑动,移除前面的元素,加入后面的元素。当移除前面的元素时&#xff0…

监控物联网卡该如何选择,你都踩过哪些坑?

不知道大家有没有发现在自己的身边不知不觉多了很多新玩意,例如智能自动售货机、共享单车、智能监控设备等,它们让大家的生活变得越来越方便,那么大家知道它们为什么能起到这么大的作用吗,其实得得益于一个叫做物联网卡的东西。前…

通过kubeode安装k8s

文章目录通过kubeode安装k8s1、准备vmdk文件2、创建虚拟机3、进入虚拟机4、配置yum源5、清理6、 增加node服务器7、修改Ip8、下载下载通道01 走普通家庭宽带下载点下载通道02 走群友无私赞助电信机房专线服务器--高速稳定下载----强烈推荐下载并解压9、一键安装通过kubeode安装…

字符串函数剖析(1)

带你玩转字符串 1.strlen函数不一样的细节 1.1模拟实现strlen函数 2.strcpy函数的巧妙 2.2strcpy的模拟实现 3.strcmp函数的巧妙 3.2strcmp的模拟实现 详解strlen的细节 首先了解strlen 函数的参数 size_t strlen ( const char * str );size_t 是什么东西呢&#xff1f…

链表-------数据结构

链表(重点): 链表是物理存储结构上面非连续的存储结构,数据元素的逻辑顺序是通过链表中的引用链接次序实现的 1)在顺序表中,我们不光引入了一段连续的内存,还引入了一块连续的内存空间,叫做usedsize,来表示对应数组中…

PMP每年考几次,费用如何?

PMP每年考四次,整个考证一次通关大致需要 7000 元左右,主要是下面几项费用: 部分学习笔记: 一、考证费用 分为基础费用报班费用 基础费用:报名费续证费用(补考费 / 退考费) 报名费 3900 元是固…

【软件测试】测试人的内卷,掀起血雨腥风......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 铺天盖地的职场内卷…

如何利用深度学习中的AutoEncoder进行特征降维和特征可视化,pytorch代码

我们将使用 Pytorch 中的 AutoEncoder(自动编码器架构)来减少特征维度和可视化。 北大出版社,人工智能原理与实践 人工智能和数据科学从入门到精通 详解机器学习深度学习算法原理 人工智能原理与实践 全面涵盖人工智能和数据科学各个重要体系经典 首先&#xff0c…

力扣(142.1002)补9.17

142.环形链表Ⅱ 不会,不过答案用了数学的想法,我以为计算机里只有暴力呢。 public class Solution { public ListNode detectCycle(ListNode head) { if(headnull||head.nextnull) return null; ListNode phead; ListNode p2head; while(true){ if(p2.ne…

Excel教程之学生成功所需的 5 个电子表格

作为一名学生,跟踪你盘子里的所有任务和责任可能会让人不知所措。 这就是为什么拥有一套组织良好的电子表格可以成为救命稻草的原因。出于多种原因,维护自己的电子表格可能是一项宝贵的技能。首先,它可以帮助您养成良好的习惯,例如组织和关注细节。通过创建和维护您自己的…

RabbitMQ之Exchange(交换机)

目录 一、Exchange简介 二、Exchange(交换机)的类型 1.直连交换机:Direct Exchange 2.主题交换机:Topic Exchange 3.扇形交换机:Fanout Exchange 4、默认交换机 5、Dead Letter Exchange(死信交换机) 三、交换机…

Conan 上传预编译的包

目录 1. 组织文件 2. 编写conanfile.py 3. 然后执行export 命令 4. 上传到自己的center 疫情肆虐,阳了一周,今天可以正常工作了,刚接触conan, 确实一脸懵逼,今天的任务是把项目转成Conan 管理,因为项目用到了第三方…

R语言学习笔记——扩展篇:第十九章-使用ggplot2进行高级绘图

R语言 R语言学习笔记——扩展篇:第十九章-使用ggplot2进行高级绘图 文章目录R语言一、R中的四种图形系统二、ggplot2包介绍三、用几何函数指定图的类型四、分组(重叠图形)五、刻面(并排图形)六、添加光滑曲线七、修改…

SpringMVC的AOP总结

SpringMVC的AOP总结 1、Filter 过滤器 Filter是Servlet规范中规定的,只能用于WEB中, 在Servlet前后起作用 它可以对几乎所有请求进行过滤,但是缺点是一个过滤器实例只能在容器初始化时调用一次 使用场景: 修改字符编码; 对入参进行校验, 校验不通过返回…

java实验报告之Employee类的设计

一个不知名大学生,江湖人称菜狗 original author: jacky Li Email : 3435673055qq.com Time of completion:2022.12.20 Last edited: 2022.12.20 目录 一、实验目的 二、实验内容 三、总体设计(设计原理、设计方案及流程等) 四…

Python数据结构+算法全面讲解:定义函数、定义类

之前的过程抽象例子调用了 Python数学模块中的 sqrt 函数来计算平方根。通常来说,可以 通过定义函数来隐藏任何计算的细节。函数的定义需要一个函数名、一系列参数以及一个函数体。 函数也可以显式地返回一个值。例如,下面定义的简单函数会返回传入值的平方。 >>> …

使用 Appium 报错“... Could not find ‘adb‘ in ...”

使用 Appium 报错 “... Could not find adb in ...”1. 现象2. 问题定位3. 解决方案4. 验证1. 现象 在 Robot Framework 中使用 Open Application 关键字以通过 Appium 来打开模拟器上的应用报错: WebDriverException: Message: An unknown server-side error occ…

Transformer17

还是transformer 这次还是谷歌哈 又在机器人领域发力 谷歌机器人团队等在机器人领域构建了一个多任务 transformer 模型,显著改进了对新任务、环境和对象的零样本泛化。轻松完成700多条指令、成功率达97%!谷歌开源机器人领域 我们知道,机器…

Docker搭建MySQL主从集群

使用Docker搭建一主一从的MySQL集群,使用的是8版本的MySQL镜像不是8的版本部分命令会无效,宿主机任意 规划 端口角色3307master3308slave 思路 事先准备 要确保linux宿主机已经安装上Docker。然后将MySQL镜像下载到本地 ,可以先去Docker Hu…