[NLP]LLM 训练时GPU显存耗用量估计

以LLM中最常见的Adam + fp16混合精度训练为例,分析其显存占用有以下四个部分:

 

 

 

 

GPT-2含有1.5B个参数,如果用fp16格式,只需要1.5G*2Byte=3GB显存, 但是模型状态实际上需要耗费1.5B*16=24GB.

比如说有一个模型参数量是1M,在一般的深度学习框架中(比如说PyTorch),一般是32位存储。32位存储的意思就是1个参数用32个bit来存储。那么这个拥有1M参数量的模型所需要的存储空间的大小即为:1M * 32 bit = 32Mb = 1M * 4Byte =  4MB。因为1 Byte = 8 bit。现在的quantization技术就是减少参数量所占的位数:比如我用16位存储,那么:所需要的存储空间的大小即为:1M * 16 bit = 16Mb = 2MB。

结论如下:

  • 不考虑Activation,3090的模型容量上限是 24/16=1.5B,A100的模型容量上限是 80/16=5B
    • 假设训练的过程中batchsize恒定为1,也即尽最大可能减少Activation在显存中的占用比例,使得我们的理论计算值16Φ更接近真实的显存占用,那么24G的3090的模型容量上限是1.5B(差不多是GPT-2的水平),80G的A100的模型容量上限是5B
  • 考虑Activation,3090的模型容量上限是 0.75B,A100的容量上限是 2.5B
    • batchsize为1的训练效率非常低,batchsize大于1才能充分发挥GPU的效率,此时Activation变得不可忽略。经验之谈,一般需要给Activation预留一半的显存空间(比如3090预留12G,A100预留40G),此时3090的模型容量上限是0.75B,A100的容量上限是2.5B,我们实际测试结果接近这个值
    • 激活在训练中会消耗大量的显存。一个具体的例子,模型为1.5B的GPT-2,序列长度为1K,batch size为32,则消耗显存为60GB。
  • [1B, 5B] 是目前市面上大多数GPU卡的分水岭区间
    • [0, 1B) 市面上绝大多数卡都可以直接硬train一发
    • [1B, 5B] 大多数卡在这个区间的某个值上触发模型容量上限,具体触发值和显存大小有关
    • (5B, ~) 目前没有卡能裸训

LLM Training GPU显存耗用量估计 - 知乎 (zhihu.com) 

[深度学习]大模型训练之框架篇-DeepSpeed_奇思闻影的舒克与贝克的博客-CSDN博客

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

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

相关文章

power law

power law 中文有的叫幂率, 有的叫长尾理论。 一张图可以说明其思想: 再想power law和2:8原则是不是有一些相似。懒得算了,这两个都是形式化的描述,具体数字没有太大意义。 很奇妙的一点是,这个世界其实有时候就是这…

【Linux】进程信号之信号的处理

进程信号 三 一、信号的处理时机二、内核态与用户态1、内核态与用户态的转化2、重谈进程地址空间 三、信号的处理1、一般信号的处理流程2、捕捉信号的处理流程3、信号捕捉函数sigaction 一、信号的处理时机 在前面我们讲过信号产生和保存以后,我们知道进程对于产生…

power related

android的wake_lock介绍 拒绝Wakelock提高续航!安卓省电优化攻略 http://www.cnblogs.com/GnagWang/ ??who

2020-5-5

问题 D: 洁净无瑕 时间限制: 1 Sec 内存限制: 128 MB [提交] [状态] 题目描述 小X是一位富豪,酷爱收藏宝石。 在他的收藏柜中,从左到右依次摆放着各种形态不一的钻石。为了评价一颗钻石的美观程度,小X为每颗钻石赋予了一个洁净度ai。 小X…

day-5

1、模块 定义:模块,用一砣代码实现了某个功能的代码集合。 本质就是.py结尾的python文件(变量,函数,类,逻辑) 例:test.py 模块名:test类似于函数式…

5 Series Solutions

文章目录 this chapter, blend power series with solving ordinary differential equations. a class of linear (homogeneous) differential equations admitting solutions that can be represented as a power series. Due to the technicality, only second order. All…

Isolated power 板级小功率电源

电源模块体积单位通常使用砖来命名1/4砖、1/8砖 全砖:116.8*61.0*12.7mm 半砖:61.0*57.9*12.7mm 四分之一砖:57.9*36.8*8.1mm 八分之一砖:57.9*22.9*10.4mm 砖式DC/DC转换器的工作环境越来越恶劣,尽管这些模块产品…

linux umask:文件访问权限控制预设值

1. umask 定义 在 linux 系统中,umask 被定义在 /etc/profile 配置文件中,有一段 shell 脚本对 umask 是这么定义的。在 shell 会话输入命令: $ cat /etc/profile # 查看 /etc/profile 配置文件的内容 if [ $UID -gt 199 ] &&…

iOS 13.2升级后:iPhone、iPad频繁杀后台,怎么解决呢?

编辑|排版| 宅哥技术转载请联系商务合作给你开白名单来源:宅哥技术(zg_jishu) ---------♥--------- 杀后台 现在很多小伙伴都更新到了iOS13.2版本,更新完后很多朋友都说系统杀后台好严重,什么是…

分享如何升级macOS Catalina

了解如何下载和安装最新版 Mac 操作系统 macOS Catalina。 macOS Catalina 让您喜爱的所有 Mac 体验都更进一步。在三个全新的 Mac 应用程序中体验音乐,电视和播客。在 Mac 上畅玩您最喜欢的 iPad 应用。拿起 iPad 和 Apple Pencil 扩展您的工作空间,释放…

LeetCode700. 二叉搜索树中的搜索

700. 二叉搜索树中的搜索 文章目录 [700. 二叉搜索树中的搜索](https://leetcode.cn/problems/search-in-a-binary-search-tree/)一、题目二、题解方法一:迭代方法二:递归 带main函数测试用例 一、题目 给定二叉搜索树(BST)的根节…

升级鸿蒙系统效果,鸿蒙系统初体验 全方位体验升级[多图]

鸿蒙系统是近期华为发布的,这个的话,在更新了以后,就能够看到了,不过只是对于某些适配机型来说是这样,其他的话,是没有的,很多用户都十分的好奇,也是在观望当中,这个的话…

android6.1内存,iPhone 6为何坚持1GB内存?安卓太坑爹!

这个问题说简单也简单,说复杂也很复杂。有人该回答了:“是苹果优化好呗!”说苹果好,里面本身就带着几分“Android呵呵”的意思。而事实似乎并非如此。iOS设备采取了与Android不同的内存垃圾回收机制,因此两者对运存容量…

iPad Pro 11 英寸(2021 年)评测:比笔记本电脑更奢华

Apple 的高端中型 iPad 还没有完全准备好取代您的 MacBook,但我们不否认它是一款出色的平板电脑。那么 11 英寸iPad Pro具体性能如何呢?它能替代MacBook吗? iPad Pro 11in (2021, M1) 全面评测 苹果公司于 2020 年夏季开始,处理器…

牛客题解-------BC99:正方形图案

目录 一、题目相关 二、题目链接 三、题目 题目描述: 输入 输出 样例 四、题目分析 五、AC参考代码 六、共勉 一、题目相关 在对于初学C语言的我来说,对于图形打印一直都有一种未知的恐惧,大家是否跟我一样在开始对于图形的打印只…

Python爬虫:抓取表情包的下载链接

Python爬虫:抓取表情包的下载链接 1. 前言2. 具体实现3. 实现代码 1. 前言 最近发现了一个提供表情包的网址,觉得上面的内容不错,于是就考虑用Python爬虫获取上面表情包的下载链接。整体而言,实现这个挺简单的,就是找到提供表情包…

步入React正殿 - 事件处理

目录 扩展学习资料 React事件和DOM事件 和传统DOM事件处理异同 this关键字的处理 this关键字 在JSX中使用bind方法 在构造函数中使用bind方法 使用箭头函数【推荐】 向事件处理程序传递参数【不跨组件】 向父组件传递参数 /src/App.js /src/components/listItem.jsx…

微信对接系列——微信自动退款

业务背景 关于微信自动退款串接背景基于酷客多多商户系统,系统组成主要有前端小程序、商家后台管理系统、运营商系统等 业务流程 退款单状态:待退款、退款中、退款完成、自动退款失败等 由于微信申请退款接口接受请求后不会立即进行退款处理&#xf…

基于grpc从零开始搭建一个准生产分布式应用(1) - 开始准备

开始前必读:​​基于grpc从零开始搭建一个准生产分布式应用(0) - quickStart​​ 本来笔者并不想开设这个系列,因为工作量比较大,另外此专题的技术点也偏简单。最近复盘了下最近的工作,发现一个问题就是各个互联网大厂一般都会有…

微信小程序开发(十)小程序支付-查询退款

应用场景 提交退款申请后,通过调用该接口查询退款状态。退款有一定延时,用零钱支付的退款20分钟内到账,银行卡支付的退款3个工作日后重新查询退款状态。 接口说明 这里退款还是根据商户订单号-out_trade_no去微信那边查询 代码实现 /** 根…