当前位置:网站首页>内存墙简介
内存墙简介
2022-07-27 09:17:00 【黄昏贩卖机】
内存墙
以下内容摘录自 一流科技网站
- 近几年CV NLP 语音识别领域的运算量以每两年15倍的速度增长,促进了AI硬件发展
- 通信带宽瓶颈:芯片内部、芯片间、AI硬件之间的通信,称为不少AI应用的瓶颈
- 模型大小平均每两年翻240倍,但是AI硬件的内存大小仅仅每两年翻2倍
- 训练AI模型所需的内存比一般模型的参数量还要多几倍
内存墙不仅和内存容量相关,也包括内存的传输带宽。
- 涉及多个级别的内存数据的传输:
例如,在计算逻辑单元和片上内存之间,或在计算逻辑单元和主存之间,或跨不同插槽上的不同处理器之间的数据传输
上述所有情况中,容量和数据传输的速度都大大落后于硬件计算能力
- 采用分布式的策略将训练扩展到多个AI硬件上,从而突破于当个硬件内存容量和带宽带来的限制。 AI硬件会遇到通信瓶颈,比片上数据搬运更慢
- 分布式策略的横向扩展仅在通信量和数据传输量很少的情况下,才适合解决计算密集型问题
有希望打破内存墙的解决方案
为了继续创新和 “打破内存墙”,我们需要重新思考人工智能模型的设计。这里有几个要点:
- 当前人工智能模型的设计方法大多是临时的,或者仅依赖非常简单的放大规则。(我不太明白)
- 需要更有效的数据方法训练AI模型,当前网络训练非常低效。学要大量数据和数十万次的迭代
- 现有的优化和训练方法,需要大量调整参数,在设置好参数而训练成功前需要数以百计次的试错。
- SOTA类网络规模非常大,光部署她们就极具挑战性。AI硬件涉及主要集中在提高算例,而较少关注改善内存。
训练算法
- 困难:暴力探索式调参
- 微软关于 Zero 论文中介绍了一个很有前景的工作:可以通过删除/切分冗余优化器状态参数[21, 3],在保持内存消耗量不变的前提下,训练8倍大的模型。如果这些高阶方法的引入的 overhead 问题可以得到解决,那么可以显著降低训练大型模型的总成本。
- 提高优化算法的本地属性,并减少内存占用,但是会增加计算量
- 设计足够稳健的、使用与低精度训练的优化算法
高效部署
- 剪枝掉模型中冗余的参数
- 量化,降低精度
结论
目前 NLP 中的 SOTA Transformer 类模型的算力需求,以每两年750倍的速率增长,模型参数数量则以每两年240倍的速率增长。相比之下,硬件算力峰值的增长速率为每两年3.1倍。DRAM 还有硬件互连带宽增长速率则都为每两年1.4倍,已经逐渐被需求甩在身后。深入思考这些数字,过去20年内硬件算力峰值增长了90000倍,但是DRAM/硬件互连带宽只增长了30倍。在这个趋势下,数据传输,特别是芯片内或者芯片间的数据传输会迅速成为训练大规模 AI 模型的瓶颈。所以我们需要重新思考 AI 模型的训练,部署以及模型本身,还要思考,如何在这个越来越有挑战性的内存墙下去设计人工智能硬件。
边栏推荐
- Some practical, commonly used and increasingly efficient kubernetes aliases
- ES6 new symbol data type
- Full Permutation recursive thought sorting
- ES6 new - object part
- ES6 new - deconstruction assignment of array / object
- npm和yarn 更新依赖包
- Qt中发送信号时参数为结构体或者自定义的类怎么办?
- 【云驻共创】华为云:全栈技术创新,深耕数字化,引领云原生
- Five kinds of 3D attention/transformer finishing (a-scn, point attention, CAA, offset attention, point transformer)
- Detailed explanation of two methods of Sqlalchemy
猜你喜欢

Flex layout (actual Xiaomi official website)

CUDA programming-04: CUDA memory model

NPM install error forced installation

js call和apply

ES6 new - Operator extension

C# 窗体应用常用基础控件讲解(适合萌新)

Five kinds of 3D attention/transformer finishing (a-scn, point attention, CAA, offset attention, point transformer)

645. Wrong set

Antdesign a-modal自定义指令实现拖拽放大缩小

As a VC, the auction house invested Web3 for the first time
随机推荐
Pymongo fuzzy query
QT uses SQLite to open multiple database files at the same time
Summary of traversal methods
Pytorch custom CUDA operator tutorial and runtime analysis
Full Permutation recursive thought sorting
ArkUI框架中的两个小技巧
[C language - zero foundation lesson 13] the mystery of string
基于ArkUI eTS开发的坚果食谱(NutRecipes
[cloud native kubernetes practice] deploy the rainbow platform under the kubernetes cluster
Ctfshow ultimate assessment
如何注册码云账号
【云驻共创】华为云:全栈技术创新,深耕数字化,引领云原生
[C language - zero foundation _ study _ review _ lesson 4] data types and operations
Nutrecipes developed based on arkui ETS
[C language - zero foundation lesson 6] input and output sentence format and compound sentence
500报错
Rewrite the tensorrt version deployment code of yolox
Storage and computing engine
Sentry 2 orbital data download
async/await的执行顺序以及宏任务和微任务