Gellow 旋转头像
One Summer's Day
钢琴 · 轻音乐
0:000:00
随机遍历 · 9 首
Insert Coin To Load
M
Loading Markdown

正在渲染文章与目录。

markdown / full reading page

AIGC 模型精度、量化、显存与多卡推理知识框架

工作流工程

AIGC 模型精度、量化、显存与多卡推理知识框架 ​

目标:记录概念关系和检索大纲,细节后续按关键词查阅。


1. 先区分四个层级 ​

text
AIGC 推理优化
├─ 数值精度 / 数据类型
│  ├─ FP32
│  ├─ FP16
│  ├─ BF16
│  ├─ FP8
│  └─ INT8 / INT4
│
├─ 量化方案
│  ├─ INT8 / INT4
│  ├─ GGUF Q8 / Q6 / Q5 / Q4
│  ├─ AWQ
│  ├─ GPTQ
│  └─ NVFP4 等
│
├─ 文件格式
│  ├─ safetensors
│  └─ GGUF
│
└─ 显存与并行策略
   ├─ CPU / Layerwise Offload
   ├─ Model Parallel
   ├─ Tensor Parallel
   ├─ Sequence Parallel
   ├─ Data Parallel
   └─ FSDP / ZeRO

这些概念经常被混在一起,但属于不同层级。


2. FP16、BF16、FP8、INT8 ​

FP16 / BF16 ​

目前大模型训练和推理中的常见高精度基准。

  • FP16:尾数精度更高
  • BF16:指数范围更大
  • 大模型训练通常更偏向 BF16
  • AIGC 推理中二者都很常见

FP8 ​

目前大型 DiT、图像和视频生成中非常重要。

主要意义:

  • 相比 FP16/BF16 权重显存约减半
  • 通常比更激进的低 bit 量化更容易保持质量
  • 新 GPU 对 FP8 Tensor Core 支持较好
  • 在模型、Kernel 和硬件支持完善时,是很重要的性能甜点位

需要注意:

FP8 权重减半不等于推理速度翻倍,实际性能取决于 Kernel、硬件和数据搬运。


INT8 / INT4 ​

属于整数低精度量化。

不能简单理解为:

text
INT8 一定优于 FP8
或
INT8 一定比 GGUF Q8 好

因为实际差异还取决于:

  • per-tensor / per-channel
  • group size
  • scale
  • calibration
  • outlier handling
  • activation 是否量化
  • mixed precision 策略
  • GPU Kernel

所以“8 bit”只是精度等级,不代表具体算法相同。


3. GGUF 与 Q8 / Q6 / Q5 / Q4 ​

GGUF 首先是一个模型文件 / Tensor 存储格式,本身不是某一种量化。

GGUF 中可以保存:

text
F16
BF16
Q8
Q6
Q5
Q4
……

常见 GGUF 量化:

text
Q8_0
Q6_K
Q5_K_M
Q5_K_S
Q4_K_M
Q4_K_S

Q 后面的数字大致对应权重的平均 bit 数,但实际 bits-per-weight 会因为 scale、metadata、分组等略高。

大致可以理解:

格式大致权重位宽
FP1616 bit
Q8~8 bit
Q6~6-7 bit
Q5~5-6 bit
Q4~4-5 bit

K-Quant ​

类似:

text
Q4_K_M
Q5_K_M
Q6_K

不是简单地把所有 Tensor 统一压成相同 bit。

通常涉及:

  • 分组量化
  • 不同 Tensor 使用不同精度
  • 敏感层保留更高精度
  • mixed quantization

S / M 一般对应更偏体积或更偏质量的策略。

后续可查:

text
GGUF K-quants
Q4_K_M
Q5_K_M
Q6_K
bits per weight

4. GGUF Q8 和普通 INT8 不能直接等同 ​

虽然两者都是 8bit 级别,但可能在以下方面完全不同:

text
Group Size
Scale
Per-channel / Per-group
Calibration
Outlier Handling
Mixed Precision
Dequantization
Kernel

所以:

text
GGUF Q8 ≠ 任意 INT8 方案

同样:

text
INT4 ≠ GGUF Q4

比较量化方案时应该同时比较:

text
质量
显存
实际推理速度
Kernel 支持
模型架构适配

5. 为什么 GGUF 不一定是 NVIDIA GPU 上最优方案 ​

GGUF / GGML / llama.cpp 的重要优势一直包括:

  • CPU 推理
  • CPU + GPU 混合推理
  • 跨硬件兼容
  • 灵活 Offload
  • 低 bit 模型存储

它不一定针对 NVIDIA Tensor Core 做最激进的性能优化。

在纯 NVIDIA GPU AIGC 推理中,某些场景可能更适合:

text
FP8
INT8
AWQ
NVFP4
其他原生 Tensor Core 量化

因此 GGUF 更应该理解为:

通用、灵活、低显存友好的量化体系,而不是所有场景下性能最强的量化体系。


6. 显存不足与 Offload ​

常见层级:

text
VRAM
↓
System RAM
↓
Swap / Pagefile / SSD

通常所谓 Offload 指:

text
GPU VRAM ↔ CPU RAM

不是直接把 GPU 权重放到 SSD。

主要瓶颈是 PCIe 数据搬运。

需要关注:

text
GPU Memory Bandwidth
PCIe Bandwidth
Pinned Memory
Prefetch
Layerwise Offload

如果 RAM 也不足、开始频繁使用 Swap/Pagefile,性能会严重下降。


7. Layerwise Offload ​

大型 DiT / LLM / 视频模型常用。

基本思想:

text
当前计算层 → GPU
暂时不用的层 → RAM

而不是整个模型频繁整体换入换出。

优化方向:

  • pinned memory
  • asynchronous copy
  • prefetch
  • layer buffer
  • 保留部分层常驻 GPU

核心目标:

在显存不足的情况下减少 GPU 等待 PCIe 数据的时间。


8. 多 GPU 显存是否能“相加” ​

双 4090:

text
24GB + 24GB

物理上仍然是两个独立 VRAM。

但可以通过模型分片利用总显存,因此:

可以运行单卡装不下的模型,但不是自动获得一块统一的 48GB 显存。

区别非常重要:

text
Unified Memory Pool
≠
Distributed Model Across GPUs

是否可以有效使用两卡,取决于框架和模型是否支持对应并行策略。


9. Model Parallel ​

最基础的模型分层:

text
GPU0
Layer 0 ~ N

GPU1
Layer N+1 ~ M

作用:

  • 扩大单模型可用总显存
  • 让单卡装不下的模型运行

问题:

  • GPU 间需要传输 Activation
  • Pipeline 利用率可能不高
  • PCIe 通信可能成为瓶颈

10. Tensor Parallel ​

将同一层内部的 Tensor / Matrix 分到多张 GPU:

text
Weight Matrix
├─ GPU0
└─ GPU1

两卡同时计算,再进行:

text
AllReduce
AllGather
ReduceScatter

适用于大型 Transformer / LLM。

优势:

  • 多 GPU 同时计算同一层
  • 可以同时获得显存分片和计算并行

问题:

  • 通信频繁
  • 对高速 GPU interconnect 更敏感
  • 双 4090 只能依赖 PCIe,没有 NVLink

11. Sequence Parallel ​

对于 Transformer / DiT / 视频生成尤其重要。

将序列维度拆分到多 GPU:

text
Sequence / Tokens
├─ GPU0
└─ GPU1

在视频模型里,Sequence 可能对应:

  • Spatial Tokens
  • Temporal Tokens
  • Frames
  • Patch Tokens

相关关键词:

text
Sequence Parallel
Ulysses
Attention Parallel
Context Parallel

这类方法对于长序列视频 DiT 很有价值。


12. Data Parallel ​

每张卡保留完整模型:

text
GPU0 → Batch A
GPU1 → Batch B

主要作用:

  • 提升训练吞吐量
  • 提高批量推理吞吐量

不能解决:

单个模型本身超过单卡显存的问题。


13. FSDP / ZeRO ​

主要用于训练。

训练显存不只有模型参数,还包括:

text
Parameters
Gradients
Optimizer States
Activations

FSDP / ZeRO 会把这些状态分片到不同 GPU。

重点关键词:

text
PyTorch FSDP
DeepSpeed ZeRO-1
ZeRO-2
ZeRO-3
Optimizer State Sharding
Parameter Sharding

以后做大模型微调、蒸馏、多 GPU 训练时重点学习。


14. 多 GPU 的价值分类 ​

双 GPU 的价值不能只理解成“显存相加”。

扩展模型容量 ​

text
Model Parallel
Tensor Parallel
Sequence Parallel
FSDP

解决:

text
单卡装不下

加速单任务 ​

text
Tensor Parallel
Sequence Parallel
Pipeline Parallel

效果取决于:

text
计算量 / 通信量比例
PCIe 带宽
模型结构
Kernel
框架实现

因此双卡不意味着速度 ×2。


提高总吞吐量 ​

最简单稳定:

text
GPU0 → Task A
GPU1 → Task B

例如:

text
GPU0 → 视频生成
GPU1 → 图片 / LLM / Upscale

对于个人 AI 工作站非常实用。


15. PCIe 与 NVLink ​

没有 NVLink 不代表无法多 GPU。

双 4090 可以通过 PCIe 通信。

主要问题是:

text
GPU ↔ GPU Bandwidth

会限制:

  • Tensor Parallel
  • Sequence Parallel
  • Pipeline Parallel
  • Activation Transfer

因此:

多 GPU 是否有意义,要看计算量是否足以覆盖通信成本。

后续可查:

text
PCIe Peer-to-Peer
CUDA P2P
NCCL
AllReduce
NVLink vs PCIe

16. MiniMax H3 这类大型视频模型 ​

大型视频 DiT 是典型的显存和并行案例。

如果高精度 DiT 权重约 60GB+:

text
单 4090 24GB

无法完整加载。

双 4090 总 VRAM 48GB,也无法直接把全部 BF16 / FP16 权重常驻 GPU。

常见解决方案:

text
BF16 / FP16
+
双 GPU 并行
+
Layerwise Offload
+
大容量 RAM

或者:

text
FP8 / INT8
+
双 GPU
+
Sequence / Tensor Parallel

后者可以显著降低 CPU Offload 压力。


17. H3 双 4090 的几类思路 ​

BF16 / FP16 + 双卡 + Offload ​

text
BF16
↓
GPU0 + GPU1
↓
剩余 Layer → RAM

优势:

  • 尽可能保持原始精度

问题:

  • RAM 需求高
  • PCIe Streaming 明显
  • 实际速度受 Offload 影响

FP8 / INT8 + 双卡并行 ​

text
Quantized H3
↓
GPU0 + GPU1
↓
Sequence / Attention / Tensor Parallel

优势:

  • 更多权重常驻 GPU
  • 减少 RAM ↔ VRAM 搬运
  • 更适合作为长期生产工作流

属于比较值得重点研究的方向。


更激进量化 + Offload ​

例如:

text
NVFP4
GGUF
INT4

进一步降低显存要求。

重点需要验证:

text
质量损失
Kernel 性能
推理速度
模型兼容性

18. ComfyUI / 视频生成真正值得研究的优化方向 ​

工作流优化核心可以分为:

模型层 ​

text
FP16 / BF16 / FP8 / INT8 / FP4
GGUF
Model Loader
Attention Backend

显存层 ​

text
CPU Offload
Layerwise Offload
Pinned Memory
VAE Tiling
Model Unload
Cache

计算层 ​

text
Flash Attention
SageAttention
Tensor Parallel
Sequence Parallel
Attention Parallel

生成策略 ​

text
Resolution
Frames
Steps
Sampler
CFG
Latent Size

后处理 ​

text
Upscale
Frame Interpolation
VAE Decode
Video Encode

本质是在权衡:

text
质量
速度
显存

19. 视频模型为什么尤其适合研究显存优化 ​

视频模型除了空间维度,还有时间 / 序列维度,因此 Attention 和 Activation 成本明显增加。

值得关注:

text
Resolution
Frame Count
Sequence Length
Attention Complexity
Activation Memory

常见优化路线:

text
较低分辨率 / 帧数进行 Diffusion
↓
Upscale
↓
Frame Interpolation
↓
视频后处理

相比直接高分辨率、高帧数扩散,通常效率更高。


20. 分析一个大型 AIGC 模型时的顺序 ​

以后看到新模型,可以按下面顺序分析:

text
模型架构
↓
原始精度
↓
官方推荐推理精度
↓
可用量化方案
↓
单卡峰值显存
↓
能否完全常驻 GPU
↓
不能则考虑:
    Quantization
    Offload
    Multi-GPU
↓
多 GPU 支持:
    Model Parallel
    Tensor Parallel
    Sequence Parallel
↓
通信成本
↓
Kernel 支持
↓
最终比较:
    Quality
    VRAM
    Latency
    Throughput

21. 后续需要重点深入的知识树 ​

text
AIGC 性能工程
│
├─ Precision
│  ├─ FP16
│  ├─ BF16
│  ├─ FP8
│  └─ FP4
│
├─ Quantization
│  ├─ INT8 / INT4
│  ├─ GGUF
│  ├─ AWQ
│  ├─ GPTQ
│  └─ NVFP4
│
├─ Memory Management
│  ├─ CPU Offload
│  ├─ Layerwise Offload
│  ├─ Pinned Memory
│  ├─ Prefetch
│  └─ Tiling
│
├─ Multi-GPU
│  ├─ Model Parallel
│  ├─ Tensor Parallel
│  ├─ Pipeline Parallel
│  ├─ Sequence Parallel
│  ├─ Data Parallel
│  └─ FSDP / ZeRO
│
├─ Communication
│  ├─ PCIe
│  ├─ NVLink
│  ├─ CUDA P2P
│  ├─ NCCL
│  ├─ AllReduce
│  └─ AllGather
│
└─ AIGC Workflow
   ├─ DiT
   ├─ Attention
   ├─ VAE
   ├─ Text Encoder
   ├─ Cache
   ├─ Upscale
   └─ Frame Interpolation

22. 推荐检索关键词 ​

text
FP16 vs BF16
FP8 inference
FP8 Tensor Core
INT8 quantization
INT4 quantization

GGUF quantization
GGUF K-quants
Q4_K_M
Q5_K_M
Q6_K
Q8_0

CPU offload
Layerwise offload
Pinned memory
Model prefetch

Model parallel
Tensor parallel
Pipeline parallel
Sequence parallel
Ulysses
Attention parallel
Context parallel

PyTorch FSDP
DeepSpeed ZeRO

CUDA P2P
NCCL
PCIe GPU communication
NVLink vs PCIe

ComfyUI multi GPU
ComfyUI layerwise offload
ComfyUI VRAM optimization
VAE tiling

DiT
Video DiT
Video diffusion memory optimization

23. 当前需要记住的核心关系 ​

text
数据精度
↓
量化
↓
权重显存
↓
模型能否常驻 GPU
↓
Offload / Multi-GPU
↓
PCIe / GPU 通信
↓
实际推理性能

判断方案时不要单独看某一个指标。

例如:

text
更低 bit

不一定代表:

text
更快

因为实际性能还受到:

text
Kernel
Dequantization
GPU 原生支持
Offload
通信

影响。

同理:

text
双 24GB GPU

可以利用约 48GB 总 GPU 内存进行模型分片,但是否高效取决于软件是否支持合适的多卡并行方式。

整个 AIGC 性能优化最终可以归纳成:

text
Precision
+
Quantization
+
Memory Management
+
Parallelism
+
Communication
+
Workflow

这六个方向基本构成大型 AIGC 模型本地推理优化的主体知识框架。

Back To Note