Transformer Decoder-Only 算力FLOPs估计

FLOPs和FLOPS的区别

  • FLOPs (Floating Point Operations)是指模型或算法执行过程中总的浮点运算次数,单位是“次”
  • FLOPS (Floating Point Operations Per Second)是指硬件设备(如 GPU 或 CPU)每秒能够执行的浮点运算次数,单位是“次/秒”

MFU

模型算力利用率(Model FLOPs Utilization, MFU)和硬件算力利用率(Hardware FLOPs Utilization, HFU)是评估某一模型实现对芯片计算性能利用情况的常用指标。

  • 模型算力利用率:是指模型一次前反向计算消耗的矩阵算力与机器算力的比值
  • 硬件算力利用率:是指考虑重计算后,模型一次前反向计算消耗的矩阵算力与机器算力的比值

矩阵相乘

矩阵是A(大小H×D),参数矩阵B(大小D×W),Y=AB的FLOPs公式就是:

H × W × ( D + (D−1)) = H × W × (2D−1) 

其中Y的每个元素都是经过D次相乘以及D-1加法。如果考虑常数项或者考虑加入bias,即Y中每一个元素需要额外进行一次加法,则可以将公式中的-1省略,即:2 × H × D × W

矩阵乘法FLOPs与参数量Parameter

一个全连接层的神经网络计算的过程可以看成是两个矩阵进行相乘的操作,忽略掉激活函数(activation)部分的计算,假设输入矩阵是A、矩阵大小是H×I,全连接层的参数矩阵是B、矩阵大小是I×W,全连接层矩阵计算过程实际就是:Y=AB

所以,对于输入值大小Input_size是H ,矩阵乘法中有:

FLOPs = 2 × H × D × W = 2 × Input_size × Parameter

即可以简单认为一个token的计算量是参数量的2倍

Transformer FLOPs计算

 参数量计算参考Transformer Decoder-Only 参数量计算-CSDN博客,且通过上面分析,可以知道1个token的计算量是参数量的2倍,从而可以计算transformer的每层FLOPs如下

(其中embed层的计算是查表计算,计算量为4×d_model)

推理时每个token需要的算力:C_forward per token ≈ 2N 

根据反向传播的计算量是前向传播的2倍的结论,假设模型整个训练过程语料Token数是 T ,可以估算Transfomer训练(前向传播+反向传播)的FLOPs 约等于: C_train  ≈  2N × 3 × T = 6NT

如果考虑激活重计算技术(Activation Recomputation),反向传播的计算量大概是前向传播的3倍,则训练FLOPs 约等于8NT

实际情况时间估算

上面说的算理想情况:即首要考虑 GPU 前后向时算矩阵运算这个时间大头,而且 隐藏层维度d_model >> 序列长度n_ntx,利用率100%,不考虑更新、通信、切分、其他步骤(加载数据、log等等)。

实际情况不可能达到 100%,如果考虑到上述效率,一般要打折扣。折扣系数要看框架,目前比较高效的框架算上通信加载也就0.5,模型大通常来说折扣还会高。

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

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

相关文章

掌握MySQL数据库操作:从创建到管理全攻略

1.库的操作 1.1库的查看 show databases; 这句语法形式是查看服务器已经存在的数据库 注意要加分号————; 1.databeses是复数形式 2.大小写都可以 前提(数据库已经创建或查看服务器自带的数据库) 也可以查看指定的数据库 show cre…

服务器综合实验(实战详解)

实验内容 环境拓扑结构 主机环境描述 主机名主机地址需要提供的服务content.exam.com172.25.250.101提供基于httpd/nginx的YUM仓库服务ntp.exam.com172.25.250.102提供基于Chronyd的NTP服务mysql.exam.com172.25.250.103提供基于MYSQL的数据库服务nfs.exam.com172.25.250.104…

CentOS 7 修改锁屏时间为永不

在 CentOS 7 中,默认情况下,系统会在一定时间不活动后自动锁屏。对于某些用户来说,可能希望禁用自动锁屏功能或者将锁屏时间设置为“永不”。本文将介绍如何通过图形界面和命令行两种方式修改 CentOS 7 的锁屏时间,确保系统永不自…

MySQL 日期计算方法 date_sub()、date_add()、datediff() 详解-文中有示例帮助理解

1、date_sub()、date_add() date_sub() 和date_add() 语法相同,只不过一个加一个减。 从日期中减去指定时间间隔 语法: DATE_SUB(start_date, INTERVAL expr unit) start_date: 起始日期(如 now() , 字段名)。 INTERVAL expr…

宝塔基于亚马逊云服务器安装mysql5.7失败问题记录

安装日志如下: --2025-05-14 15:25:15-- https://na1-node.bt.cn/install/1/mysql.sh Resolving na1-node.bt.cn (na1-node.bt.cn)... 128.1.164.196 Connecting to na1-node.bt.cn (na1-node.bt.cn)|128.1.164.196|:443... connected. HTTP request sent, awaitin…

LLaMA-Factory 微调 Qwen2-7B-Instruct

一、系统环境 使用的 autoDL 算力平台 1、下载基座模型 pip install -U huggingface_hub export HF_ENDPOINThttps://hf-mirror.com # (可选)配置 hf 国内镜像站huggingface-cli download --resume-download shenzhi-wang/Llama3-8B-Chinese-Chat -…

Redis三种高可用模式的使用场景及特点的详细介绍

Redis三种高可用模式的使用场景及特点的详细介绍,结合不同业务需求提供选择建议: 主从模式(Replication) 核心能力:数据冗余备份、读写分离 适用场景: 读多写少:例如内容发布平台、新闻网站等…

通俗易懂版知识点:Keepalived + LVS + Web + NFS 高可用集群到底是干什么的?

实验开始前,先搞懂为什么要部署该集群? 这个方案的目标是让网站 永不宕机,即使某台服务器挂了,用户也感觉不到。它主要涉及 负载均衡(LVS) 高可用(Keepalived) 共享存储&#xff…

Qt中解决UI线程阻塞导致弹窗无法显示的两种方法

在Qt应用程序开发中,我们经常会遇到这样的问题:当执行一个耗时操作时,整个界面会卡住,无法响应任何用户操作,甚至连一个简单的提示弹窗都无法正常显示。本文将介绍两种解决这个问题的方法,并通过完整的代码示例进行说明。 问题描述 先来看一个常见的错误示例: #inclu…

2025年中国DevOps工具选型指南:主流平台能力横向对比

在数字化转型纵深发展的2025年,中国企业的DevOps工具选型呈现多元化态势。本文从技术架构、合规适配、生态整合三个维度,对Gitee、阿里云效(云效DevOps)、GitLab CE(中国版)三大主流平台进行客观对比分析&a…

isp流程介绍(yuv格式阶段)

一、前言介绍 前面两章里面,已经分别讲解了在Raw和Rgb域里面,ISP的相关算法流程,从前面文章里面可以看到,在Raw和Rgb域里面,很多ISP算法操作,更像是属于sensor矫正或者说sensor标定操作。本质上来说&#x…

虚幻引擎5-Unreal Engine笔记之UE编辑器退出时的保存弹框

虚幻引擎5-Unreal Engine笔记之UE编辑器退出时的保存弹框 code review! 文章目录 虚幻引擎5-Unreal Engine笔记之UE编辑器退出时的保存弹框1. 退出编辑器时弹出的“Save Content”窗口2. File 菜单中的保存选项3. 区别总结 1. 退出编辑器时弹出的“Save Content”窗口 退出时…

如何判断IP是否被平台标记

一、基础检测:连通性与黑名单筛查 网络连通性测试 Ping与Traceroute:通过命令测试延迟和路由路径,若延迟>50ms或存在异常节点(如某跳延迟>200ms),可能影响可用性。示例命令: bash ping 8.…

零Gas授权实战:用线下签名玩转智能合约 Permit 机制

目录 链下签名背景什么是 Permit ?链下签名应用场景Permit 原理简述实战:从合约到前端完整实现安全注意事项总结链下签名背景 在以太坊智能合约开发中,很多初学者经常面临这样一个问题:ERC20 代币授权必须先调用链上合约的 approve(),再调用链上合约的 transferFrom(),每…

React 简介:核心概念、组件化架构与声明式编程

本文为《React Agent:从零开始构建 AI 智能体》专栏系列文章。 专栏地址:https://blog.csdn.net/suiyingy/category_12933485.html。项目地址:https://gitee.com/fgai/react-agent(含完整代码示​例与实战源)。完整介绍…

LeetCode100.7 接雨水

对于这题&#xff0c;有一个非常直观简洁的思路&#xff1a;水量等于柱子围成的体积减去柱子的体积。 首先计算每一个高度的体积&#xff0c;相加即为总体积&#xff0c;减去sum(height)即为水的体积。 class Solution { public:int trap(vector<int>& height) {in…

NineData 社区版 V4.1.0 正式发布,新增 4 条迁移链路,本地化数据管理能力再升级

NineData 社区版 V4.1.0 正式更新发布。本次通过新增 4 条迁移链路扩展、国产数据库深度适配、敏感数据保护增强‌等升级&#xff0c;进一步巩固了其作为高效、安全、易用的数据管理工具的定位。无论是开发测试、数据迁移&#xff0c;还是多环境的数据管理&#xff0c;NineData…

Go 语言 sqlx 库使用:对 MySQL 增删改查

MySQL 作为目前最流行的开源关系型数据库&#xff0c;其 SQL 语法体系已形成行业标准&#xff0c;相关知识体系庞大且成熟&#xff0c;本文不再对 SQL 基础进行详细展开&#xff0c;建议尚未掌握的读者先行系统学习。本文聚焦于如何使用 Go 语言进行 MySQL 数据库操作&#xff…

单片机-STM32部分:13、PWM

飞书文档https://x509p6c8to.feishu.cn/wiki/NjhuwbVP7iaEOikVK95cmJNLnWf PWM&#xff08;Pulse Width Modulation&#xff09;脉冲宽度调制&#xff0c;是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。它是把每一脉冲宽度均相等的脉冲列作为PWM波形&am…

抽奖系统-奖品-活动

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言获取奖品列表前端页面活动创建需求分析活动创建后端实现1-控制层实现及校验活动活动创建后端实现2-保存信息活动插入活动奖品插入 整合活动信息存入redis测试活…