mit einem Klick
search-workflow
// 通过 adaptive_search 或 evolve 搜索式 workflow 生成优化算子。 后台 silent mode 执行,轮询监控进度。
// 通过 adaptive_search 或 evolve 搜索式 workflow 生成优化算子。 后台 silent mode 执行,轮询监控进度。
矩阵乘法矩阵乘法 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.
适用于归约(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 代码规范和内嵌扩展方法
ARM CPU 架构性能优化技巧、NEON SIMD 向量化、数值稳定性和调试策略
| name | search-workflow |
| description | 通过 adaptive_search 或 evolve 搜索式 workflow 生成优化算子。 后台 silent mode 执行,轮询监控进度。 |
| argument-hint | 必需:workflow 类型(adaptive_search / evolve)、任务文件路径、framework、backend、arch、dsl、输出路径、命令模板。 可选:devices、workflow 特定参数。 |
通过 adaptive_search 或 evolve 搜索式 workflow 生成高性能算子代码。以 silent mode 后台执行,轮询监控进度。
主 Agent 的 Phase 3 中用户选择了 adaptive_search 或 evolve 时使用。
使用命令模板后台启动 @scripts/run_workflow.py,输出重定向到 run.log:
<命令模板: nohup python @scripts/run_workflow.py 的绝对路径 \
--workflow <adaptive_search|evolve> \
--task-file /abs/path/{op_name}.py \
--framework <framework> --backend <backend> \
--arch <arch> --dsl <dsl> \
--output-path <output-path> \
> <output-path>/run.log 2>&1 & echo $!>
记录返回的 PID。
每隔 ~1 分钟执行:
kill -0 <PID> 2>/dev/null && echo "RUNNING" || echo "FINISHED"
tail -n 10 <output-path>/run.log
RUNNING → 继续轮询(间隔 1 分钟)FINISHED → 进入结果收集禁止擅自终止工作流
summary.json 存在 → 读取 success 字段generated_code.py 存在 → 成功run.log 末尾获取错误信息kill <PID>
中断后按「部分结果恢复」处理。
adaptive_search / evolve 每完成一次成功验证就会写入 <output-path>/logs/。进程被杀时已写入的文件仍在。
核心原则:只要有 passed case 就不算失败。
<output-path>/logs/
├── passed_cases/{op_name}/ # 通过验证的迭代
│ └── Iteration{id}_Step{NN}_verify/
│ └── {op_name}_{dsl}_impl.py # 实现代码
├── {op_name}/profiling/
│ └── speed_up_record.txt # 加速比记录
└── verification_results.jsonl
恢复步骤:
logs/passed_cases/{op_name}/ 是否有内容speed_up_record.txt,找性能最佳记录对应的 unique_dirpassed_cases/{op_name}/{unique_dir}/ 读取实现代码<output-path>/generated_code.py| workflow | 特点 | 典型耗时 |
|---|---|---|
adaptive_search | UCB 策略、即时递补、收敛快 | 10-30 分钟 |
evolve | 岛屿模型、多样性强 | 15-60 分钟 |
adaptive_search 特定参数:
--max-concurrent(默认 2)、--initial-tasks(默认 2)、--max-tasks(默认 10)evolve 特定参数:
--max-rounds(默认 3)、--parallel-num(默认 4)、--num-islands(默认 2)仅当需要 --resume 恢复会话或 --worker_url 远程 Worker 时使用:
akg_cli op --task-file /abs/path/{op_name}.py \
--intent '使用 adaptive_search_workflow 生成高性能算子' \
--framework <framework> --backend <backend> \
--arch <arch> --dsl <dsl> \
--output-path <output-path> \
--yes --no-stream