# ANUMA-fork **Repository Path**: hypothesiser/anuma-fork ## Basic Information - **Project Name**: ANUMA-fork - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-02 - **Last Updated**: 2026-02-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ANUMA 通过大语言模型实现 **A+K 资源亲和隔离优化**:在提供关键 PID/TID 及角色后,完成系统信息采集、瓶颈分析、绑核策略生成与实施,输出优化结果报告。 --- ## 功能概览 - **系统信息采集**:NPU/CPU 拓扑、进程-NPU 映射、CPU 亲和、内存分布、LLC 使用;**NPU-PID-NUMA 三元组**(由 npu-smi info、topo、lscpu 解析得到) - **瓶颈分析**:拓扑亲和、Cache 竞争、跨 NUMA 通信、绑核分布、内存压力 - **绑核策略**:生成基于 `taskset` / `numactl` 的可执行脚本 - **实施与验证**:执行绑核并校验结果 --- ## 项目结构 ``` ANUMA/ ├── config/ │ └── load_command.yaml # 打流命令,采集前维持业务压力 ├── scripts/ │ ├── collect_system_info.py # 系统信息采集(NPU/CPU 拓扑、亲和、NUMA、LLC、NPU-PID-NUMA 三元组) │ └── bindcore.sh # 生成的绑核脚本(由 Skill 输出) ├── reference/ │ └── bindcore.sh # 绑核脚本参考 ├── SKILL.md # 推理绑核优化 Skill 详细说明 └── README.md ``` --- ## Cursor Skill:推理绑核优化 项目内提供 Skill(见 [SKILL.md](SKILL.md)),用于: 1. **输入关键 PID/TID 及作用**:整理为关键进程(线程)列表 2. **收集系统信息**:打流 + 调用 `collect_system_info.py` 采集 NPU/CPU 拓扑、亲和、内存、**NPU-PID-NUMA 三元组**等 3. **瓶颈分析**:分析拓扑亲和、Cache、通信、绑核分布等问题 4. **生成绑核策略**:输出可执行 `bindcore.sh` 脚本 5. **实施绑核**:执行绑核、验证并输出优化结果报告 **适用场景**:绑核、推理优化、热点进程(线程)、taskset、numactl、ANUMA 等。 --- ## 前置条件 - **环境**:Linux - **工具**:`taskset`、`numactl`(可选)、`perf`(LLC 采集)、`npu-smi`(NPU 拓扑与进程映射)、`lscpu`、`ps` - **配置**:编辑 `config/load_command.yaml` 中的 `load_command`,用于采集前打流以维持业务压力 --- ## 配置说明 `config/load_command.yaml` 中的 `load_command` 会在采集系统信息前约 20 秒启动,以保持采集期间有业务压力。示例: ```yaml load_command: 'docker exec vllm_test-hubin sh -c "cd /workspace/vllm-ascend; bash benchmarks/scripts/run-performance-benchmarks.sh"' ``` 按实际环境修改该命令。 --- ## 使用方式 ### 通过 Skill 工作流(推荐) 1. 使用 Cursor 打开项目,确保已启用推理绑核优化 Skill 2. 提供关键 **PID/TID** 及各自**角色**(如主推理进程、Worker、算子下发线程等) 3. 按 Skill 工作流依次完成:采集 → 瓶颈分析 → 生成策略 → 实施绑核 → 验证 详细工作流与模板见 [SKILL.md](SKILL.md)。 ### 单独运行采集脚本 采集指定 TID 的系统信息(拓扑、亲和、NUMA、LLC、NPU-PID-NUMA 三元组等),输出 JSON 或 Markdown: ```bash # 输出 Markdown(含 NPU-PID-NUMA 三元组表格等) python3 scripts/collect_system_info.py [tid ...] --md # 输出 JSON python3 scripts/collect_system_info.py [tid ...] ``` TID 可由 `ps -T -p -o pid,tid,comm` 或 `npu-smi info` 得到;脚本会从 `/proc//status` 的 Tgid 解析出 PID。