一键导入
akg-env-setup
akg_agents 环境准备。缓存优先,检查 akg_cli + LLM 连通性, 未安装则引导安装,采集硬件/Framework/DSL。 FULL_SETUP 模式额外包含参数确认和运行时依赖安装。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
akg_agents 环境准备。缓存优先,检查 akg_cli + LLM 连通性, 未安装则引导安装,采集硬件/Framework/DSL。 FULL_SETUP 模式额外包含参数确认和运行时依赖安装。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 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 | akg-env-setup |
| description | akg_agents 环境准备。缓存优先,检查 akg_cli + LLM 连通性, 未安装则引导安装,采集硬件/Framework/DSL。 FULL_SETUP 模式额外包含参数确认和运行时依赖安装。 |
| argument-hint | 可选:ENV_TYPE(conda/venv)、CONDA_ENV、VENV_PATH、AKG_AGENTS_DIR。 可选:FULL_SETUP=true(包含参数确认和运行时依赖安装,算子相关 agent 使用)。 |
question 工具并等待用户回复,不得跳过或自行决定。Step 0 解析 $HOME_DIR → 读取缓存
├─ 命中 ──────────────────────────────┬─ FULL_SETUP → Step 5
│ └─ 否则 → 结束
└─ 未命中 → Step 1 检查 akg_cli + LLM
├─ 通过 → Step 4 采集硬件/Framework/DSL
│ ├─ 4a 硬件
│ ├─ 4b Framework
│ ├─ 4c DSL & 后端推断
│ └─ 4d 写入缓存(必须,不可跳过)
│ ├─ FULL_SETUP → Step 5 → (Step 6 [可选,仅需要新依赖时]) → 结束
│ └─ 否则 → 结束
└─ 失败 → Step 2 询问用户(一次收集处理方式+环境信息)
├─ 已有环境 → Step 1(重试)
└─ 需要安装 → Step 3 → Step 1(重试)
首先执行以下命令获取 home 目录绝对路径,赋值给 $HOME_DIR:
echo $HOME
后续所有路径中的 $HOME_DIR 均使用此值。
然后读取 $HOME_DIR/.akg/check_env.md:
需要先确定 $ENV_TYPE、$CONDA_ENV/$VENV_PATH 和 $AKG_AGENTS_DIR。优先使用调用方提供的值,未提供时使用当前已激活的环境。
检查 1 — akg_cli 可用性:
conda:
conda run -n $CONDA_ENV --no-capture-output bash -c \
"cd $AKG_AGENTS_DIR && source env.sh && which akg_cli"
venv:
bash -c "source $VENV_PATH/bin/activate && cd $AKG_AGENTS_DIR && source env.sh && which akg_cli"
检查 2 — LLM 连通性:
conda:
conda run -n $CONDA_ENV --no-capture-output bash -c \
"cd $AKG_AGENTS_DIR && source env.sh && \
python tools/v2/use_llm_check/test_run_llm.py"
venv:
bash -c "source $VENV_PATH/bin/activate && cd $AKG_AGENTS_DIR && source env.sh && \
python tools/v2/use_llm_check/test_run_llm.py"
判定:
调用 question 工具,一次调用 3 个问题,同时收集处理方式和环境信息:
| # | header | question | options |
|---|---|---|---|
| 1 | 处理方式 | akg_agents 在当前环境中不可用。检查结果:<哪项通过、哪项失败及错误信息>。请选择处理方式: | "使用已有环境" / "新建环境安装" |
| 2 | 环境类型 | 选择 Python 环境类型 | "conda" / "venv" |
| 3 | 环境名或路径 | conda 填环境名(如 akg_agents),venv 填绝对路径(如 ~/akg/.venv) | "akg_agents(默认)" |
问题 3 用户可选择默认值或通过「自定义输入」填写自己的环境名/路径。
处理回复:
$ENV_TYPE、$CONDA_ENV/$VENV_PATH,回到 Step 1 重试question:
环境 $CONDA_ENV/$VENV_PATH 已存在,请选择:
- 复用该环境安装
- 删除重建
- 取消
task(subagent_type="akg-installer", load_skills=[],
run_in_background=false,
description="Install akg_agents",
prompt="请安装 akg_agents。ENV_TYPE=<类型> CONDA_ENV=<名称>/VENV_PATH=<路径> ENV_ACTION=<reuse|recreate>。<用户原始请求>")
安装完成后,重新从 Step 1 开始检查(安装成功 → 检查通过 → 进入 Step 4)。
Step 1 两项检查通过后执行以下步骤。
⛔
nvidia-smi和npu-smi info的输出禁止截断(不得添加head/tail/| head -N等),必须获取完整输出以准确识别所有设备数量。截断会导致多卡被误认为少卡。
uname -m
cat /proc/cpuinfo 2>/dev/null | grep "model name" | head -1 || sysctl -n machdep.cpu.brand_string 2>/dev/null
nvidia-smi 2>/dev/null
npu-smi info 2>/dev/null
free -h 2>/dev/null || sysctl hw.memsize 2>/dev/null
采集后处理:从工具输出中提取芯片型号后,必须按规范化规则转换再写入缓存。例如 npu-smi 输出的 910B4 必须转换为 ascend910b4,nvidia-smi 输出的 A100 必须转换为 a100。缓存中的 arch 字段必须是规范化后的值。
torch 始终采集。torch_npu 仅在 4a 检测到 Ascend NPU 时采集。
| 项目 | 采集条件 | <CMD> |
|---|---|---|
| torch | 始终 | python -c "import torch; print(torch.__version__, 'CUDA:', torch.cuda.is_available())" |
| torch_npu | 有 Ascend NPU | python -c "import torch_npu; print(torch_npu.__version__)" |
triton 仅在 4a 检测到 Ascend NPU 或 NVIDIA GPU 时采集:
| 项目 | <CMD> |
|---|---|
| triton | python -c "import triton; print(triton.__version__)" |
| g++/clang++ | g++ --version 2>/dev/null || clang++ --version 2>/dev/null(系统命令,无需命令模板) |
按检测结果列出所有可用后端(一台机器可匹配多行):
| 条件 | 后端 | DSL | 架构 |
|---|---|---|---|
| Ascend NPU + torch_npu + triton | ascend | triton_ascend | 从 npu-smi 解析型号 |
| NVIDIA GPU + CUDA + triton | cuda | triton_cuda | 从 nvidia-smi 解析型号 |
| g++/clang++ 可用 | cpu | cpp | uname -m |
$HOME_DIR/.akg/check_env.md**重要:**此步骤不可跳过。不写入缓存,后续每次启动都会重复完整环境检查。
将 Step 4a–4c 的采集结果按附录格式写入 $HOME_DIR/.akg/check_env.md。环境缓存示例:@references/example_check_env.md
写入后立即验证:
test -f $HOME/.akg/check_env.md && echo "✅ 缓存已写入" || echo "❌ 缓存写入失败"
验证通过后:
从 $HOME_DIR/.akg/check_env.md 的「可用后端 & DSL & 架构」表中读取所有可用组合,用 question 工具请用户选择本次使用的配置:
根据您的环境检测,可用配置如下:
请选择:
- backend=cuda, arch=a100, framework=torch, dsl=triton_cuda
- backend=cpu, arch=x86_64, framework=torch, dsl=cpp ...
options 只列出缓存中检测到的组合,不要添加"自行输入"类选项(question 工具自带「Type your own answer」入口,用户需要自定义时会自行使用)。缓存中只有一行时也需确认。
确认后按「算子参数规范化」规则处理(小写、别名转换、连字符→下划线等)。
进入 Step 6。
如果用户在 Step 5 选择的配置来自 check_env.md 中已有的组合,说明依赖已就绪,跳过本步骤,直接报告环境就绪并返回参数。
仅当用户通过「Type your own answer」输入了 check_env.md 中不存在的配置时,才需要检测并安装缺失依赖(所有 pip 命令通过命令模板在环境中执行):
backend = cpu
| 缺失 | 处理 |
|---|---|
| torch | pip install torch --index-url https://download.pytorch.org/whl/cpu |
| g++/clang++ | 检查可用性,不可用告知用户 |
backend = cuda
| 缺失 | 处理 |
|---|---|
| torch | pip install torch |
| triton | pip install triton |
backend = ascend
| 缺失 | aarch64 | x86_64 |
|---|---|---|
| torch | pip install cpu 版 | 🛑 需用户提供 .whl |
| torch_npu | pip install | 🛑 需用户提供 .whl |
| triton-ascend | 🛑 需用户提供 .whl | 🛑 需用户提供 .whl |
🛑 标记项必须调用
question工具索要 .whl 路径。 pip 包名用连字符(如triton-ascend),API 参数用下划线(如triton_ascend)。
**【重要】:**安装完成后,更新 $HOME_DIR/.akg/check_env.md,重新执行 Step 4b–4c 采集最新 Framework 和 DSL 版本。
报告环境就绪,向调用方返回已确认的 framework/backend/arch/dsl。流程结束。
$HOME_DIR/.akg/check_env.md 完整格式# AKG Agents 环境缓存
> 自动生成。删除此文件可强制重新检查。
## 环境配置
- HOME_DIR: <绝对路径>
- ENV_TYPE: <conda 或 venv>
- CONDA_ENV: <环境名>(仅 conda)
- VENV_PATH: <路径>(仅 venv)
- AKG_AGENTS_DIR: <绝对路径>
## 命令模板
将 <CMD> 替换为实际命令:
<根据 ENV_TYPE 和 AKG_AGENTS_DIR 生成的完整命令模板,含激活环境和 source env.sh>
## 验证状态
- akg_cli: ✅
- LLM: ✅ 或 ⚠️(未配置 API Key)
## 硬件
- CPU: <架构和型号>
- GPU/NPU: <型号或无>
- 内存: <大小>
## Framework
- torch: <版本> (CUDA: True/False)
- torch_npu: <版本>(如有)
## DSL
- triton: <版本>(如有)
- g++/clang++: <版本或"未安装">
## 可用后端 & DSL & 架构(可多行)
| 后端 | DSL | 架构 |
|------|-----|------|
| <后端1> | <DSL1> | <架构1> |
| <后端2> | <DSL2> | <架构2> |
环境缓存仅存储环境级信息(硬件、已安装的 Framework和DSL、命令模板)。任务级参数配置(framework/backend/arch/dsl 选择、当次所用的 device id等)不缓存,每次任务由调用方确认。