vllm [Bug]: 当使用 --kv-cache-dtype fp8 时,分块预填充似乎不起作用,

5jvtdoz2  于 4个月前  发布在  其他
关注(0)|答案(3)|浏览(75)

当前环境

H100(但我相信它发生在任何机器上)

🐛 描述错误

--enable-chunked-prefill --num-max-batched-tokens 2048 --kv-cache-dtype "fp8"

似乎存在某种类型的不兼容性错误。

x0fgdtte

x0fgdtte1#

是的,可以确认。我认为同时使用两者是不支持的,但没有记录?我在一台双4090机器上遇到了这个错误:

2024-06-03T14:15:05.332567820Z     raise CompilationError(fn.src, node, repr(e)) from e
2024-06-03T14:15:05.332573240Z triton.compiler.errors.CompilationError: at 114:24:        off_v = (
2024-06-03T14:15:05.332578110Z             bn[:, None] * stride_v_cache_bs +
2024-06-03T14:15:05.332588389Z             cur_kv_head * stride_v_cache_h +
2024-06-03T14:15:05.332593288Z             offs_d[None, :] * stride_v_cache_d +
2024-06-03T14:15:05.332598147Z             (start_n + offs_n[:, None]) % block_size * stride_v_cache_bl)
2024-06-03T14:15:05.332602996Z         k = tl.load(K_cache + off_k,
2024-06-03T14:15:05.332607825Z                     mask=dim_mask[:, None] &
2024-06-03T14:15:05.332612695Z                     ((start_n + offs_n[None, :]) < cur_batch_ctx_len),
2024-06-03T14:15:05.332617564Z                     other=0.0)  # [D,N]
2024-06-03T14:15:05.332622383Z 
2024-06-03T14:15:05.332627142Z         qk = tl.zeros([BLOCK_M, BLOCK_N], dtype=tl.float32)  # [M,N]
2024-06-03T14:15:05.332632532Z         qk += tl.dot(q, k)
2024-06-03T14:15:05.332637411Z                         ^
2024-06-03T14:15:05.332642260Z AssertionError('Both operands must be same type. First operand (fp16) and second operand (uint8)')

我使用的其他引擎参数,以防它们相关:

--quantization gptq --dtype float16 --enforce-eager --tensor-parallel-size 2
lf5gs5x2

lf5gs5x22#

让我现在做一个PR来引发一个错误。cc @comaniac我相信你之前做过这个工作。你使用了kv缓存dtype fp 8吗?

f8rj6qna

f8rj6qna3#

它应该与带有分页注意力的xformers后端一起工作,但我不确定这是否适用于GPTQ。

相关问题