with one click
vllm-mindspore-post-process
后处理优化 - 对计算结果进行优化处理,包括缓存、并行化、向量化等。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
后处理优化 - 对计算结果进行优化处理,包括缓存、并行化、向量化等。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
| name | vllm-mindspore-post-process |
| description | 后处理优化 - 对计算结果进行优化处理,包括缓存、并行化、向量化等。 |
| Triggers | ["vllm-mindspore后处理优化","vllm-mindspore post process","vllm-mindspore后处理","vllm-ms后处理优化","vllm-ms post process","vllm-ms后处理"] |
vllm-mindspore 是基于 vllm 二次开发适配 ASCEND (华为昇腾) 的推理框架。其后处理流程位于模型推理 (Forward) 之后、采样 (Sampling) 之前的阶段。
| Rule | Value |
|---|---|
| 核心文件 | vllm_mindspore/v1/ |
| 优化重点 | 惩罚计算、温度调节、Top-K/Top-P 过滤 |
| 优化模式 | 按需计算、范围缩减、索引传递、短路返回 |
文件路径 | 作用 | 关键函数
vllm_mindspore/v1/worker/gpu_input_batch.py | 采样参数准备 | _make_sampling_metadata()
vllm_mindspore/model_executor/layers/utils.py | 核心后处理-惩罚计算 | apply_penalties(), get_token_bin_counts_and_mask()
vllm_mindspore/v1/sample/sampler.py | 温度调节 | apply_temperature()
vllm_mindspore/v1/sample/ops/penalties.py | 惩罚张量转换 | _convert_to_tensors()
vllm_mindspore/v1/sample/ops/topk_topp_sampler.py | Top-K/Top-P过滤 | apply_top_k_top_p(), apply_top_k_only(), random_sample()
vllm_mindspore/v1/worker/gpu_model_runner.py | 模型推理执行 | execute_model()
模型输出 Logits
│
▼
┌─────────────────────────────────────────┐
│ 1. 惩罚计算 (apply_penalties) │
│ - Repetition Penalty (重复惩罚) │
│ - Frequency Penalty (频率惩罚) │
│ - Presence Penalty (存在惩罚) │
└─────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────┐
│ 2. 温度调节 (apply_temperature) │
│ - logits = logits.div(temp) │
└─────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────┐
│ 3. Top-K 过滤 (apply_top_k_only) │
│ - 只保留概率最高的 k 个 token │
└─────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────┐
│ 4. Top-P 过滤 (apply_top_k_top_p) │
│ - 保留概率累加和达到 p 的最小集合 │
└─────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────┐
│ 5. 采样 (random_sample) │
│ - 基于处理后的概率分布进行采样 │
└─────────────────────────────────────────┘
│
▼
采样结果
三种惩罚的默认生效条件:
Top-K/Top-P 采样逻辑
apply_penalties 中使用 broadcast_to 替代 tensor.repeat 提升性能apply_top_k_only 避免全量排序,使用 topk 操作<optimization_patterns>
判断各个部分是否有效,只对有效部分计算,类似penalty只在值有效时才计算。
分析多个操作之间的依赖关系,后续操作的计算范围是否可以缩小?当 A 操作的结果是 B 操作的输入时,思考:B 是否只需要在 A 的有效结果范围内计算,而不是在全量数据上计算,例如在计算topk这类操作中,后续可以只对 topk 个 token 进行计算。
是否可以只传递必要的信息(如索引、计数)而不是传递全量数据?通过索引映射而非数据复制来减少计算量。
当输入满足特定条件(如参数为默认值)时,可以直接返回,无需执行后续计算。
如并行计算、缓存机制等。
</optimization_patterns>
按以下检查项进行:
基于背景知识中后处理流程架构,识别后处理相关代码,遍历相关代码,分析当前后处理流程
基于以下优化手段,分析优化机会
对于每个优化点,严格按照以下步骤进行检查,在思考过程中逐个进行
is not None 或类似方式实现了基础的按需计算all() 比较)本身也有开销。确保优化带来的收益大于其成本。输出优化结果,保存为当前目录的opt_result/vllm-mindspore-post-process-result.md,必须逐条包含以下内容:
矩阵乘法矩阵乘法 A[M, K] @ B[K, N] = C[M, N]中,大K维度矩阵乘法(K>>M,N)优化:针对M/N较小但K极大(如M=N=256,K=131072)的场景,Split-K切分K维度并行化、Workspace+Reduce替代全局同步,实现显著性能提升
Triton Ascend hard API restrictions and forbidden syntax. MUST-follow rules that apply to every kernel: forbidden control flow (return/break/continue/lambda/while), tensor slice/index restrictions, scalar conversion rules, BLOCK_SIZE upper bound. Violating any of these produces a compile or runtime error on Ascend.
Triton Ascend 性能优化通用策略: BLOCK_SIZE 选择 (1024-2048 for elementwise, must be <65536), grid configuration (use VEC_CORE_NUM / CUBE_CORE_NUM, 2D/3D grid for matmul / conv / reduce, 1D grid + inner loop for elementwise / pointwise), 256B alignment for memory transfers, autotune block-size patterns, fp16 / fp32 precision conversion. Bind via keywords like matmul, elementwise, reduce, block_size, grid, autotune, alignment, fp16, fp32, tile, interleaved-loop, cube-core, vec-core.
通过 adaptive_search 或 evolve 搜索式 workflow 生成优化算子。 后台 silent mode 执行,轮询监控进度。
适用于归约(reduce)类算子和含归约子步骤的复合算子(如归一化)的优化指南。典型算子包括:sum, mean, max, min, prod, argmax, argmin, cumsum, cumprod, softmax, logsoftmax, layernorm, rmsnorm, groupnorm, instancenorm, batchnorm, l1norm, l2norm, frobeniusnorm, var, std, average_pooling, sum_pooling 等。特别重要:当归约维度不是最后一维(如 dim=1 归约 shape=[B,F,D1,D2]),需要正确处理多维索引和两阶段归约。包含 PyTorch normalized_shape 多轴归一化语义说明。不适用于纯逐元素运算或矩阵乘法。如果算子是损失函数(先逐元素计算再全局归约),应选择 elementwise-reduce-fused 指南。
CPU C++ 算子核心概念、标准结构模式、KernelBench 代码规范和内嵌扩展方法