(模型量化学习)基础准备

1.FLOPS(大写)和TOPS

FLOPS指的是一秒钟可以处理的浮动小数点运算次数,而TOPS是一秒钟可以处理了的整形运算次数的能力,衡量计算机硬件性能,计算能力的一个单位。

注意FLOPS与FLOPs不同,FLOPs是衡量模型大小的一个指标。

2.FLOPS在GPU中是如何运算的

以A100架构举例,一共有108个SM,一个SM里有64个处理INT32的CUDA Core,64个处理FP32的CUDA Core,32个处理INT32的CUDA Core,4个处理矩阵计算的的Tensor Core。

上表的吞吐量是如何计算呢?以FP64为例子:

throughput = 1.41*108*32*1*2= 9.7 TFLOPS

同理FP32也是如此,但是想FP16,由于此架构没有专门针对FP16的cuda core,所以我们将FP32和FP64的cuda core一起使用来计算FP16,那么FP16则有256个(32*2+2*64)

Throughput = 1.41 GHz * 108 * 256 * 1 * 2 = 78 TFLOPS,
我们算了两个cuda core的现在我们分析tensor core:
Ampere架构使用的是第三代Tensor Core,可以一个clk完成一个
1024 ( = 256 * 4)个FP16运算。准确来说是4x8的矩阵与8x8的矩阵的
FMA:
Throughput = 1.41 GHz * 108 * 4 * 256 * 2 = 312 TFLOPS
3.CUDA Core vs Tensor Core
如果这样的话,算完一共矩阵后需要8*16 =128个clk,如果有16个cuda core并行则只需要8个clk。
而tensorcore不是一个一个去算,而是一部分一部分去算:
整体来说处理一个4*8与8*4的矩阵只需要2个clk就能完成。
(一)roofline model
#参数
1.计算量:
单位是FLOPs,表示模型中有多少个floating point operations,是衡量模型大小的标准
2.计算峰值:单位是FLOPS (也可以是FLOP/s),表示计算机每秒可以执行的floating point operations。是衡量计算机性能的标准。
3.参数量:单位是Byte,表示模型中所有的weights(主要在conv和FC中)的量。是衡量模型大小的标准。
4.访存量:单位是Byte,表示模型中某一个算子,或者某一层layer进行计算时需要与memory产生read/write的量。是分析模型中某些计算的计算效率的标准之一。
5.带宽:单位是Byte/s,全称是memory bindwidth,表示的是单位时间内可以传输的数据量的多少。是衡量计算机硬件memor性能的一个标准。
#带宽
带宽主要与以下三个因素有关:memory clock (GHz)memory bus width (Byte)memory channelmemory clock可以看成小汽车运行的速度,memory bus width可以看成路面的宽度,memory channel 则是一共有多少条运货的路。
#计算密度
单位是FLOPs/Byte,表示的是传送单位数据可以进行的浮点运算数。计算密度 = 计算量/访存量 。
上图中,横坐标是计算密度,纵坐标是计算机性能,斜率是带宽,峰值是计算峰值。
以一台3080为例:我们有他的计算峰值,带宽,我们就能做出他的性能图:
我们知道了斜率,我们知道计算峰值,然后根据这两个变量就可以找到不同浮点数对应的计算密度,比如FP32,由图可知他的计算密度为39.2,那我们为了更好的使用计算机,则我们后续搭建的模型的计算密度应该就是这个值左右,实际会比39.2小一些。
(1)kernel size的影响
以FP32为例,如图所示
conv(1x1 conv)的虽然较少了计算量,但是计算密度也 很低。随着kernel size增大,计算密度增长率逐渐下降,一般来说3,5大小的比较好。
(2)output size的影响
(3)channel size的影响
(4)group convolution的影响
(5)FC的影响
FC的计算密度非常低的原因在于它的大量的访存
(6)模型分析
RTX 3080 Ampere架构中FP32的计算在39.2FLOPs/byte才达到计算饱和。所以这些
模型其理论上都没有计算饱和。到目前讲的是理论值。然而实际上我们会发现峰值一般会小一些。

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

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

相关文章

Nature重磅!打破AI安全边界:微调代码为何会引发全面失准?

研究团队在OpenAI和阿里巴巴云模型上的实验揭示了一个令人不安的现象:如果你教一个大语言模型去写包含安全漏洞的代码,它学到的绝不仅仅是写代码。一项刚刚发表在《自然》杂志上的重磅新研究,发现了大模型安全的新幽灵:微小的恶意…

智谱新模型也用DeepSeek的MLA,苹果M5就能跑

这是一个30B总参数、仅3B激活参数的混合专家(MoE)架构模型,官方给它的定位是“本地编程与智能体助手”。 智谱AI上市后,再发新成果。 开源轻量级大语言模型GLM-4.7-Flash,直接替代前代GLM-4.5-Flash,API免…

【Da】达芬奇基础设置

--本篇导航--工程项目基础设置偏好设置代理优化面板写在前面:达芬奇用的是官方的免费版Davinvi Resolve 20,很多Studio版的功能就没涉及到了。 基本剪辑、调色的部分,此笔记中都涉及到了。 学达芬奇仅仅是想做长视频…

XML外部实体注入(XXE)漏洞深度剖析与防御实践

【精选优质专栏推荐】 《AI 技术前沿》 —— 紧跟 AI 最新趋势与应用《网络安全新手快速入门(附漏洞挖掘案例)》 —— 零基础安全入门必看《BurpSuite 入门教程(附实战图文)》 —— 渗透测试必备工具详解《网安渗透工具使用教程(全)》 —— 一站式工具手册《CTF 新手入门实战教…

快讯|萝博派对(RoboParty)Roboto_Origin项目全栈上线:1.2m人形机器人硬件结构、BOM清单、3m/s运动控制算法完全开源;灵心巧手与Xbotics推出线上实习项目,打造人才生态

🐾 具身智能 / AI 赛道,过去24小时的行业焦点,像北京的冬日阳光一样,一半洒在突破想象力的AI疆界,另一半则直射向机器人领域那些试图“掀翻桌子”的年轻身影。当GPT-5.2 Pro在数学的圣殿里留下足迹时,一群0…

阿里云ECS部署hadoop+MapReduce+Spark实践

阿里云ECS部署hadoop+MapReduce+Spark实践host说明 Namenode:主机结点 Datanode1:数据节点1 Datanode2:数据节点2 私网ip(在阿里云查看) 172.xx.xxx.xx Namenode 172.xx.xx.xx Datanode1 172.xx.xxx.xxx D…

GBase 8s MTK工具,让数据库迁移更简单

在企业数字化转型和国产化替代的浪潮中,数据迁移往往是让IT团队最头疼的环节之一:源端系统五花八门,迁移过程怕丢数据、怕出错,操作复杂门槛高……而与GBase 8s数据库配套的GBase Migration Toolkit(简称 MTK&#xff…

谷歌新发现:DeepSeek推理分裂出多重人格,左右脑互搏越来越聪明

谷歌最新研究表明,DeepSeek-R1这类顶尖推理模型在解题时,内部会自发“分裂”出不同性格的虚拟人格,比如外向的、严谨的、多疑的……AI变聪明的真相居然是正在“脑内群聊”?!谷歌最新研究表明,DeepSeek-R1这…

【课程设计/毕业设计】机器学习基于python-cnn深度学习识别水果是否成熟

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

GBase 8c数据库故障定位解析

南大通用GBase 8c数据库定位数据库故障,可从以下方面进行排查分析:日志:数据库日志记录了数据库服务端启动、运行或停止时出现的问题,当数据库在启动、运行或停止的过程中出现问题时,数据库用户可以通过运行日志快速分…

无需PLC控制,威纶通触摸屏直接实现与台达变频器通信控制

一、PLC通信简介 威纶通(Weinview)触摸屏作为工业人机交互核心,与台达(Delta)变频器的通信是自动化控制系统中常见的应用场景。通过两者的稳定通信,可实现变频器运行状态监控、参数设置、启停控制等功能,简化操…

巴菲特的市场周期理解

巴菲特的市场周期理解 关键词:巴菲特、市场周期、价值投资、市场波动、长期投资、风险评估、投资策略 摘要:本文深入探讨了巴菲特对市场周期的理解。从背景介绍入手,阐述研究目的、预期读者、文档结构及相关术语。接着剖析核心概念,揭示市场周期与巴菲特投资理念的联系,并…

探索健康管理虚拟仿真实训室的创新教学应用

一、推动教学理念从知识传授向能力建构转型 健康管理虚拟仿真实训室的应用,首先带来的是教学理念的深刻革新。传统教学往往偏重于理论知识与标准流程的讲授,学生缺乏在复杂、动态的真实情境中综合决策与应急处置的机会。点击获取方案 而健康管理虚拟仿真…

GBase 8c数据库操作系统故障定位介绍

南大通用GBase 8c数据库查询状态时,显示一个节点上所有实例都不正常时,可能是操作系统发生了故障。可以通过如下方法确定操作系统是否存在问题:1、通过 SSH 或者其它远程登录工具登录该节点。如果连接失败,请尝试通过 ping 发包检…

【Effective Modern C++】第二章 auto:6. 当auto推导的类型不符合要求时,使用显式类型初始化习惯用法

个人认为原著写的非常难懂,所以精简总结如下: auto与代理类的问题: 当使用auto进行类型推导时,如果表达式返回的是代理类,auto会推导出代理类型而不是被代理的实际类型,可能导致未定义行为。 例如&#…

智慧旅游虚拟仿真实训:场景化与交互式学习

随着旅游产业的数字化转型不断深入,行业对既掌握专业理论知识,又具备实践操作与应变能力的高素质人才需求日益迫切。在这一背景下,旅游管理虚拟仿真实训室应运而生,它作为连接传统课堂与真实行业场景的关键桥梁,正深刻…

【毕业设计】(源码+文档+远程调试,全bao定制等)基于python-cnn深度学习识别水果是否成熟

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

GBase 8c数据库磁盘故障定位解析

南大通用GBase 8c数据库常见的磁盘故障是磁盘空间不足、磁盘出现坏块、磁盘未挂载等。部分磁盘故障会导致文件系统损坏,例如磁盘未挂载,数据库管理自动定期执行磁盘检测时会识别故障并将实例停止,查看数据库状态时对应实例状态异常&#xff1…

5.AiServices工具类

目录 一.为什么要学习这个工具类? 二.使用步骤 1.引入依赖 2.声明接口 3.使用AiServices为接口创建代理对象 方式①:编写配置类 方式②:使用注解 4.在Controller中注入并使用 三.运行项目,测试效果 四.解释一下上面的Co…