模型量化是将模型中的参数从高精度浮点数转换为低精度整数的过程。
通过模型量化可以减少模型显存的占用量,使得显存较小的显卡也可以运行较大的模型。
显卡对低精度的数值计算一般算力更高。举个例子: 2.561 * 3.427 → 2 * 3
下面是英伟达A100的算力表:
类型 | 算力 |
---|---|
Tensor Float 32 (TF32) | 156 TFLOPS |
FP16 Tensor Core | 312 TFLOPS |
INT8 Tensor Core | 624 TOPS |
模型量化减少了TensorCore与显存之间的数据交互量,在GPU访存带宽的为推理瓶颈的时候,可以提高模型的推理速度。
带宽瓶颈模型推理速度(每秒推理次数)计算公式:
显存带宽 * 带宽利用率 / ( 模型参数量 * 每个参数占用的字节数 )
以A100为例 (显存带宽2TB/s ) 带入上述公式可得:
数据 | 对应字节数 | 推理极限 |
---|---|---|
32 | 4 | 60 |
16 | 2 | 121 |
8 | 1 | 240 |
4 | 0.5 | 480 |