fp8_config ¶
Generic FP8 quantization backed by torch._scaled_mm.
Matches linear layers by suffix (to_q/k/v/to_out, ffn.fc_in/fc_out). Supports per-tensor (default, fast) and per-channel (higher accuracy) granularity. Falls back to bf16 dequant on GPUs older than sm89.
Classes¶
fastvideo.layers.quantization.fp8_config.FP8Config ¶
FP8Config(granularity: str = 'tensor')
Bases: QuantizationConfig
FP8 (e4m3) quantization via suffix matching on standard linear layer names.
Source code in fastvideo/layers/quantization/fp8_config.py
fastvideo.layers.quantization.fp8_config.FP8QuantizeMethod ¶
FP8QuantizeMethod(granularity: str = 'tensor')
Bases: QuantizeMethodBase
FP8 linear method.
granularity='tensor' (default): per-tensor weight + per-tensor dynamic activation scales — the fast tensorwise _scaled_mm path. granularity='channel': per-output-channel weight + per-token activation scales (rowwise) — higher accuracy but slower _scaled_mm.
Source code in fastvideo/layers/quantization/fp8_config.py
Methods:¶
fastvideo.layers.quantization.fp8_config.FP8QuantizeMethod.quantize_input ¶
quantize_input(x: Tensor) -> tuple[Tensor, Tensor, None]
Pre-quantize an activation for reuse across q/k/v projections.
Source code in fastvideo/layers/quantization/fp8_config.py
Functions:¶
fastvideo.layers.quantization.fp8_config.convert_model_to_fp8 ¶
Quantize all FP8-tagged linear layers in-place after weights are loaded.