news 2026/2/28 19:20:29

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
(模型量化学习)基础准备

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才达到计算饱和。所以这些
模型其理论上都没有计算饱和。到目前讲的是理论值。然而实际上我们会发现峰值一般会小一些。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/28 0:09:52

巴菲特的市场周期理解

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

作者头像 李华
网站建设 2026/2/27 11:03:17

astmd4169振动测试

对于astmd4169标准中的振动测试,最关键的一步是根据你的实际运输方式来确定对应的测试谱和测试时间。标准也提供了多种预设的运输场景方案。astmd4169部分运输振动谱卡车运输谱常见测试时间1小时空运谱常见测试时间2小时铁路运输谱测试时间标准根据流通周期DC确定松…

作者头像 李华
网站建设 2026/2/25 23:45:32

AI与PLUS-InVEST模型的土地利用多情景优化及生态系统服务智能模拟研究

工业革命以来,全球城市化与工业化进程加速,土地资源的高强度开发引发人地关系失衡,水土流失、生物多样性锐减、气候调节功能退化等生态危机频发。传统土地利用规划依赖经验驱动或单一模型模拟,难以精准捕捉人类活动与生态系统的复…

作者头像 李华
网站建设 2026/2/25 16:57:09

PHP 异步与多线程 从 TrueAsync 展望未来

RFC TrueAsync 1.7 讨论中有个问题:这个提议会如何与 PHP 核心未来的变化互动?要设计好语言的长期演进,至少得对 PHP 的发展方向有基本判断。本文试图回答这个问题。 TrueAsync 项目不仅是 PHP 核心的 async 改动,还包括回答以下…

作者头像 李华
网站建设 2026/2/26 22:54:57

必看!2026年EOR名义雇主服务TOP5,助力企业高效解决用工问题

在2026年,EOR名义雇主服务在全球市场中扮演着越来越重要的角色。这些服务为企业提供了灵活的用工方案,确保所有操作符合当地法律法规。通过EOR名义雇主服务,企业能够轻松管理全球员工的薪资、税务和合同事务,同时降低用工风险。这…

作者头像 李华
网站建设 2026/2/25 9:52:39

qt之实现截图效果

以下是修改后的代码,实现鼠标滑动矩形区域截图功能: #include <QGuiApplication> #include <QScreen> #include <QPixmap> #include

作者头像 李华