Nvidia AI显卡参数
2025-03-01
仅列表介绍目前(2025年)常见的(指淘宝上可以买到的)一些显卡型号,在对比算力时请注意单位中的"TOPS"和”GOPS“。
文章末尾有常用模型参数量与显存占用的介绍。
Tesla P系列
Tesla M系列
M10是在单卡中塞入4个核心,每个核心都带有8G显存,M60则是在单卡中塞入2个核心。虽然这两张卡的面板性能看起来十分优秀,但是实际使用场景十分受限,买了约等于上当受骗。
Tesla 新系列
TF32:Tensor Float 32,英伟达针对机器学习设计的一种特殊的数值类型,用于替代FP32。首次在A100 GPU中支持。由1个符号位,8位指数位(对齐FP32)和10位小数位(对齐FP16)组成,实际只有19位。在性能、范围和精度上实现了平衡。
BF16:Brain Float 16,由Google Brain提出,也是为了机器学习而设计。由1个符号位,8位指数位(和FP32一致)和7位小数位(低于FP16)组成。所以精度低于FP16,但是表示范围和FP32一致,和FP32之间很容易转换。
游戏显卡
移动端显卡
顺便解释一下模型参数量和显存之间的关系,在这之前先引入计算机中存储容量转换的概念:
1byte(字节)=8bit(比特位)
1kb(千字节)=1024byte
1mb(兆字节)=1024kb
1gb(吉字节)=1024mb
模型参数量通常表示为xxB,例如3B、4B、8B、12B等,这里的B是英文单词十亿(billion)的缩写。也就是说,1B的模型指的是它的参数量为10亿。
假设每个参数占用1bit,那么每8个参数占用为1byte。这样的话1B的模型共占用1,000,000,000/8=125,000,000byte,换算一下约等于0.12GB。
然后模型还有一个量化的概念,指的是每一个参数以什么形式存储。例如FP16量化,指的是将每一个参数读取为float16格式。我们来看一下各个量化参数的具体占用:
float64
别名:fp64/全精度/双精度/Q64
每一个参数占用64bit内存,也就是说一个参数占用8byte。
如果1B的模型以float64量化,则占用显存为1,000,000,000*8=8,000,000,000byte。
8,000,000,000byte=7,812,500KB≈7,629MB≈7.45GB
也就是说,1B模型以float64量化载入,将会占用约7.45G显存。
这个精度一般只用于模型训练,因为它可以最大限度地保证精度。
float32
别名:FP32/单精度/Q32
每一个参数占用32bit内存,也就是说一个参数占用4byte。
如果1B的模型以float32量化,则占用显存约3.72GB。
float16
别名:FP16/半精度/Q16
每一个参数占用16bit内存,也就是说一个参数占用2byte。
如果1B的模型以float16量化,则占用显存约1.86GB。
这个精度是推理模型的最佳选择,它可以在保证模型质量损失忽略不计的前提下,最大限度地提升模型推理速度。
大部分情况下,人们都是用这个精度加载模型并进行推理。除了那些专门为双精度运算优化的显卡以外,绝大多数显卡的FP16运算性能都是最好的。因此使用该精度量化的模型可以有很好的推理速度。
INT8
别名:Q8
每一个参数占用8bit内存,也就是说一个参数占用1byte。
如果1B的模型以INT8量化,则占用显存约0.93GB。
INT8是一个相对比较“穷”的选项,如果你的显存容量无法以FP16精度加载模型,那么试试INT8也是一个不错的选择。只是相较于FP16,INT8量化通常有着较为明显的质量损失。
有些模型会对INT8精度进行特别优化,以让它们在INT8精度上同样保持高质量。
INT4
别名:Q4
每一个参数占用4bit内存,也就是说一个参数占用0.5byte。
如果1B的模型以INT4量化,则占用显存约0.46GB。
超级丐版的精度,模型质量损失非常明显。使用INT4量化加载的文本模型有时候会输出一些牛头不对马嘴的上下文。你应该优先考虑参数量更少的模型,而不是将一个大参数量的模型强行以INT4量化加载到你的显存中。