com um clique
vllm-mindspore-post-process
后处理优化 - 对计算结果进行优化处理,包括缓存、并行化、向量化等。
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Menu
后处理优化 - 对计算结果进行优化处理,包括缓存、并行化、向量化等。
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Baseado na classificação ocupacional SOC
矩阵乘法矩阵乘法 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 代码规范和内嵌扩展方法
| 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,必须逐条包含以下内容: