feat: Add FP4 (E2M1) KV Cache Support for MHA (#12612)

Signed-off-by: Ho-Ren (Jack) Chuang <horenchuang@bytedance.com>
Co-authored-by: Yichen Wang <yichen.wang@bytedance.com>
This commit is contained in:
Ho-Ren (Jack) Chuang
2025-11-14 22:31:35 -08:00
committed by GitHub
parent 67e6f1438d
commit 6d5e16fb1c
2 changed files with 131 additions and 22 deletions

View File

@@ -1325,6 +1325,24 @@ class ModelRunner:
* 2
* torch._utils._element_size(self.kv_cache_dtype)
)
if is_float4_e2m1fn_x2(self.kv_cache_dtype):
# kv_scale_buffer
scale_block_size = 16
n = self.model_config.get_num_kv_heads(get_attention_tp_size())
k = self.model_config.head_dim
cell_size = (cell_size // 2) + (
(
n
* k
* num_layers
* 2
* torch._utils._element_size(self.kv_cache_dtype)
)
// scale_block_size
)
rest_memory = available_gpu_memory - total_gpu_memory * (
1 - self.mem_fraction_static
)