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.pswp.cn/pingmian/80880.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/80880.shtml
英文地址,請注明出處:http://en.pswp.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測試活…