一个block 占用内存大小(Byte)= token 数量 (block_size) ✖️ 一个 token 的 kv cache 占用 内存大小。 所以,我们只需要计算出单个 token 的 kv cache 对应的大小即可。block 大小的计算方法由vllm/vllm/worker/cache_engine.py文件里CacheEngine类的get_cache_block_size函数实现,代码也很简单,简化后如...
max_num_batched_tokens 2048 平衡延迟与吞吐 block_size 32 影响内存碎片率 3.2 高级缓存配置 # 启用PagedAttention优化 llm.set_cache_config( block_size=32, num_blocks=512, window_size=256 ) 四、典型报错解决方案 4.1 CUDA内存不足(Error 801) 解决方案阶梯: 降低gpu_memory_utilization至0.7-0.8 添加...
block_size: int, ) -> None: self.seq_id = seq_id self.prompt = prompt self.block_size = block_size self.data = SequenceData(prompt_token_ids) # 数据 self.logical_token_blocks: List[LogicalTokenBlock] = [] # Initialize the logical token blocks with the prompt token ids. self._appe...
block_size: int, # 每个逻辑块中有多少个槽位(默认为16) ) -> None: self.block_number = block_number self.block_size = block_size # 逻辑块刚初始化时,将其中的每个token_id都初始化为_BLANK_TOKEN_ID(-1) self.token_ids = [_BLANK_TOKEN_ID] * block_size # 当前逻辑块中已经装下的token...
上面代码中首先拿到num_heads和head_size两个变量的值,num_heads * head_size就表示单个 token 在单层多头注意力机制计算中所需要的参数量,不过这只是 key 或者 value cache 所占用的参数量。 一个block 占用的内存 = token 数量(block_size)✖️ 层数 (num_layers) ✖️ 单层 kv cache 占用内存 (2...
--block-size{8,16,32,64,128}令牌块大小,用于连续的令牌块。这在 neuron 设备上会被忽略,并设置为`--max-model-len`。在 CUDA 设备上,仅支持最大为32的块大小。在 HPU 设备上,块大小默认为128。 --calculate-kv-scales 启用kv-cache-dtype 为 fp8 时动态计算 k_scale 和 v_scale。如果 calculate-...
内存不足错误:调整--block-size参数(建议从16开始尝试) 算子不支持:使用CANN的Custom OP开发工具扩展新算子 多卡通信瓶颈:检查HCCN网卡绑定状态,建议开启XRM内存共享 七、进阶优化方向 鲲鹏平台特有的L3 Cache优化技巧 昇腾AI Core的流水线并行策略 基于vLLM的批处理动态调度算法改进 八、总结 通过本文介绍的部署方法...
[--block-size{8,16,32}][--enable-prefix-caching][--disable-sliding-window][--use-v2-block-manager][--num-lookahead-slots NUM_LOOKAHEAD_SLOTS][--seed SEED][--swap-space SWAP_SPACE][--gpu-memory-utilization GPU_MEMORY_UTILIZATION][--num-gpu-blocks-override NUM_GPU_BLOCKS_OVERRIDE][--...
上面代码中首先拿到num_heads和head_size两个变量的值, num_heads * head_size就表示单个 token 在单层多头注意力机制计算中所需要的参数量,不过这只是 key 或者 value cache 所占用的参数量。 一个block 占用的内存 = token 数量(block_size)✖️ 层数 (num_layers) ✖️ 单层 kv cache 占用内存 (...
默认为 4。 --block-size {8,16,32}:指定块大小。默认为 16。 --seed SEED:指定随机种子。默认为 None。 --swap-space SWAP_SPACE:指定交换空间的大小。默认为 4GB。 --max-num-batched-tokens MAX_NUM_BATCHED_TOKENS:指定每个批次的最大令牌数。默认为 2048。 --max-num-seqs MAX_NUM_SEQS:指定...