内存为什么涨价(拓展)

3,176 字 · 预计阅读 9 分钟

有同学问:跑模型理论上用不到内存,为什么内存溢价这么严重?

你这个前提有个误区。

"跑模型用不到内存",指的是模型放在显存里,基本不碰电脑上的内存条。

但从产业角度看,显存和内存是同一种东西:都是 DRAM,出自同一批工厂、同一种晶圆。

所以 AI 抢的不是内存条,而是整个 DRAM 的产能。


前言:基础介绍

CPU、GPU、内存、显存

电脑里的零件可以分成两类:一类负责算,一类负责放东西。

CPU 和 GPU 负责算,统称处理器。

硬盘、内存、显存负责放东西,统称存储。它们自己不会算,只负责把数据存着,等处理器来取。

很多人会把 CPU 也当成存东西的地方,这是最常见的混淆。

拿厨房来比:

  • 硬盘是仓库:东西最多,断电也不丢,但离灶台远,取一趟很慢
  • CPU 是几位大厨,什么菜都会做
  • 内存是大厨的操作台,菜要先从仓库搬到台面上,大厨才能动手
  • GPU 是上万个帮工,每人只会切菜这类简单活,但一起干特别快
  • 显存是帮工的操作台

规矩是:CPU 只能直接用内存里的数据,GPU 只能直接用显存里的数据。

所以跑模型时,模型文件要先从硬盘读进内存,再搬进显存,GPU 才能开始算。

CPU 和 GPU 负责算,硬盘、内存、显存负责放;模型要从硬盘经内存搬进显存


CPU 和 GPU

CPU 的核心少,但每个都很强,适合一步接一步、步骤复杂的活,比如运行系统、打开网页。

GPU 的核心极多,每个都很简单,适合把同一种简单计算重复成千上万遍。

拿数字比:一颗家用 CPU 常见是 16 个核心;RTX 4090 显卡有 16384 个核心,是它的 1024 倍。

这两种核心不是一回事,GPU 的一个核心比 CPU 的弱得多,这里只比数量。

大模型的计算几乎全是大量的乘法和加法,正好是 GPU 擅长的,所以模型放在 GPU 上跑。

同样大的地方,CPU 放 16 个大核心,GPU 放 16384 个小核心


内存和显存

内存和显存都是 DRAM 芯片,区别在给谁用、装在哪、多大、多快:

内存 显存
给谁用 CPU GPU
装在哪 主板上的内存条,可以自己加 焊在显卡上,紧挨着 GPU,加不了
家用电脑常见大小 16–32GB 8–32GB
每秒能搬多少数据 约 90GB(DDR5 双通道) 约 1000GB(RTX 4090)
芯片叫什么 DDR5 家用显卡叫 GDDR,数据中心叫 HBM

最后两行最关键。

显存紧贴着 GPU,路又宽,每秒能搬的数据是内存的 10 倍以上。

家用显卡上的显存叫 GDDR,数据中心 GPU 上的叫 HBM,两种都是 DRAM,HBM 下面细讲。


模型为什么放显存

模型由一大堆数字组成,这些数字叫参数。

每生成一个 token(大致是一个字或一个词),GPU 都要把全部参数从头读一遍。

所以生成速度主要看:每秒能把模型读几遍。

拿一个 80 亿参数(8B)的模型算一下,每个参数按 2 个字节存:

模型大小:80 亿 × 2 字节 = 160 亿字节 ≈ 16GB
从显存读(约 1008GB/s):1008 ÷ 16 ≈ 63 个 token/秒
从内存读(约 89.6GB/s):89.6 ÷ 16 ≈ 5.6 个 token/秒

同一个模型,放显存比放内存快 11 倍左右。这是理论上限,实际会慢一些。

同一个 8B 模型,从显存读比从内存读快 10 倍以上

所以显存装得下,模型就全放显存。"跑模型用不到内存"说的就是这个。


显存和内存都是 DRAM

内存条上的 DDR5、家用显卡上的 GDDR、数据中心的 HBM,都是 DRAM 芯片。

本文是会员内容

全文 3,176 字,已试读约 29%。开通专业版可阅读全文,并解锁全部官方课程与后续更新。

开通专业版

支持 7 天无理由退款 · 早鸟价 99 元/年(售完恢复365/年)

课程中涉及的第三方项目,其著作权与商标归各自权利人所有;引用处的署名与许可见《开源与来源说明》。