论文链接:arxiv.org/abs/2608.25570 发表时间:2026年8月 机构:香港城市大学 + 华为技术有限公司(应用软件工程实验室)——企业+高校合作:港城大团队(Siyuan Chen、Zhichao Lu、Qingfu Zhang 等)负责框架设计与算法机制,华为应用软件工程实验室提供昇腾 NPU 场景、CANN 生态与工程验证,是典型的「高校出方法、企业出场景」协作模式 领域标签:cs.LG / Agent 自进化 / 代码优化 / 异构计算
一、论文背景
1.1 什么是硬件内核优化?
在深度学习与高性能计算的世界里,内核是运行在处理器上的最小计算单元——矩阵乘法、卷积、归一化这些操作最终都要变成内核代码才能真正跑起来。内核优化就是把一段功能正确但朴素的内核代码,改写成在特定硬件上跑得更快的版本。
这个过程极其依赖专家经验。一次典型的优化循环是:写一版候选实现 → 编译 → 测试数值正确性 → 跑性能基准(profiling)→ 分析瓶颈 → 修改 → 再来一遍。性能取决于内存层级、数据搬运方式、并行执行策略,以及目标硬件特有的约束。一个算子优化到位可能需要反复几十轮。
1.2 LLM Agent 进场:能力增强的路线及其天花板
近年出现了用 LLM Agent 自动化这一过程的尝试:更强的底座模型、更长的上下文窗口、更长的执行轨迹,确实提升了单个任务内的优化效果。KernelBench 等基准证明了 LLM 能写出高效的 GPU 内核。
但作者指出了一个关键盲区:这些系统的效果严重依赖模型参数里已经编码的硬件知识。对 CUDA 这种公共语料铺天盖地的生态,模型见过海量优化代码;可对新发布、公共实现稀缺的硬件——比如华为昇腾 NPU 的 AscendC 内核——模型内置知识几乎空白。而自动优化恰恰在这种生态早期最有价值:人工专家还没来得及沉淀公共语料的时候。
更麻烦的是第二个问题:现有系统的执行反馈(编译诊断、正确性结果、性能数据)只服务于当前这一轮运行,用完即弃。下一个算子、下一次运行,Agent 又从零开始。它无法把「上次试了 X 失败了、试了 Y 成功了」积累成可复用的知识。
1.3 为什么「保留全部历史」不是答案?
一个直观的想法是:把所有轨迹都存下来,塞进上下文。但这在机制上走不通:
- 上下文是稀缺资源:不断膨胀的历史会挤占当前任务的规范、代码、反馈所需的空间;
- Lost in the Middle 问题:已有研究(Liu et al. 2024; Hsieh et al. 2024)证明,长上下文中间部分的信息利用率显著下降——历史堆得越多,关键证据反而越容易被淹没。
于是核心研究问题浮现:在公共训练数据稀缺的硬件上,LLM Agent 如何把探索中获得的执行反馈转化为可复用知识,并跨优化步骤、跨任务地应用?
二、论文定位和关联工作
2.1 研究谱系一:LLM 内核优化系统
| 工作 | 核心思路 | 与 KOPE 的关键区别 |
|---|---|---|
| KernelBench (Ouyang et al. 2025) | GPU 内核评测基准(正确性+速度) | 只评不学,不积累经验 |
| Astra (Wei et al. 2025) | 多 Agent 协调生成-测试-profiling-规划 | 反馈只在当前任务内流转 |
| Makora / CuSeT / QiMeng-Kernel | RL 后训练 / CUDA 敏感指令微调 / 宏观策略+微观实现分离 | 都在改模型,KOPE 冻结模型、只改外部经验 |
| AscendKernelGen (Cao et al. 2026a) | 昇腾专用数据+模型适配+执行评估 | 领域适配路线,同样不跨任务积累证据 |
| CANNBot | 官方 CANN 样本参考实现 | 最强外部基线,依赖人工样本库 |
关键区别:以上系统都在问「怎么让这一次优化更好」,KOPE 问的是「这一次探索的反馈,如何变成下一次的证据」。
2.2 研究谱系二:检索与 Agent 记忆
- RAG / RepoCoder / 层次化上下文剪枝:从非参数存储中检索相关知识,但主要面向静态语料,不记录「决策→结果」的因果序;
- MemGPT:操作系统式分层管理有限上下文,解决「装多少」,不解决「装什么经验」;
- ExpeL:保留任务轨迹并蒸馏可复用洞察——但蒸馏出的通则丢失了具体证据;
- ReMe (Cao et al. 2026b):动态程序性记忆框架,KOPE 直接以 ReMe 为存储底座。
KOPE 的特化:把通用 Agent 记忆机制改造成内核优化专用——记录前后代码、编译反馈、加速比、前驱 ID,重建为决策-结果有向无环图,并用下游结果折扣分排序。这是「通用记忆 → 领域特化经验图」的推进。
2.3 研究谱系三:长上下文利用
「Lost in the Middle」与 RULER 确立了上下文利用问题;KV-cache 逐出(Bui et al. 2026)在解码阶段选择内部表示。KOPE 的主动上下文管理在模型调用之前选择外部材料——两者作用于不同阶段,可叠加。
定位结论:KOPE 站在「Agent 记忆」与「内核优化 Agent」两条线的交汇处,首次针对「公共语料稀缺硬件」这一真实痛点,把经验图记忆与预算化上下文注入组合成闭环工作流。
三、问题定义
3.1 从具体场景出发
具体问题:在昇腾 NPU 上优化 53 个 AscendC 算子,Agent 每轮会收到编译诊断、正确性判定、性能数据,但这些信息在任务结束后就消失了。下一个算子开始时,Agent 依然只有模型内置知识可用。
3.2 核心洞察:经验 = 带「下游结果」的证据链
论文的深层抽象是:一次优化尝试的价值不由它当时的对错决定,而由它的下游结果揭示。同一「尝试 tiling 因子 32」的决策,在后续不同分支上的命运可能截然不同。因此经验必须组织成保留决策顺序与替代分支的图,而非扁平的文本日志——这是与「把轨迹存数据库」的本质区别。
3.3 形式化定义
对任务 $x_t$ 的第 $k$ 次迭代:
$$z_{t,k} = R(s_{t,k}, M_{t,k}) \quad\text{(从记忆检索经验)}$$$$C_{t,k} = I(s_{t,k}, z_{t,k}; B) \quad\text{(在预算 } B \text{ 内装配 prompt)}$$$$a_{t,k} = \pi_\theta(C_{t,k}), \quad y_{t,k} = E(a_{t,k}) \quad\text{(冻结模型决策,环境返回反馈)}$$$$M_{t,k+1} = U(M_{t,k}, s_{t,k}, a_{t,k}, y_{t,k}) \quad\text{(更新记忆)}$$其中 $M_{t+1,0} = M_{t,K_t}$ 保证记忆跨任务持久。给定:冻结的 $\pi_\theta$、反馈函数 $E$、上下文预算 $B$;求:记忆组织与注入策略,使整个算子全集的通过率与加速比最大化。
3.4 这个抽象的精妙之处
「自进化」被严格限定为外部经验与注入上下文的变化,模型参数不动——这把「换更强模型」与「更好用经验」两个变量干净地分离开,让后续实验可以单独度量经验机制的贡献。
四、问题解法
KOPE = 经验驱动工作流 + 两大机制。类比来说:Experience Graph Memory 是「实验室记录本 + 实验谱系图」,Active Context Management 是「每次做实验前,帮你把相关记录摘出来摆到桌面上」。
4.1 组件一:Experience Graph Memory(KOPE-Mem)
类比:像版本控制系统的 commit 历史,但每个节点除了「改了什么」还记录「结果如何」,且兄弟分支(同一前驱的替代尝试)都保留。
双表示记录。每次尝试同时存为两种形态:
| 表示 | 格式 | 内容 | 用途 |
|---|---|---|---|
| Journal | 追加式 Markdown | 尝试策略、代码变更、验证状态、测量值、解读 | 语义检索、跨任务摘要 |
| Case | 结构化 JSON | 算子/输入场景、优化思路、前后代码、编译反馈、正确性、加速比、置信度、session/step/前驱 ID | 精确检索、图重建的事实来源 |
决策-结果经验图。从 Cases 重建有向无环森林:节点 = 一次决策+其结果,边 = 「v 的尝试始于 u 的优化状态」(每节点至多一个前驱、可多个后继)。注意:边只记录谱系,不断言因果关系。
图感知检索与排序。检索先构造候选池(按算子/层级/思路 ID/结果标签精确过滤 + 语义搜索补充),然后图提供独立的结果信号:每步相对加速比 $r_v = a_v / a_{prev(v)}$,按阈值分为 effective($r_v \geq 1.05$)/ partial / ineffective / negative 四个桶。桶内用折扣下游结果分排序:
$$d(v) = w_{self} r_v + w_{succ}\, \gamma \sum_{u \in succ(v)} d(u), \quad w_{self}=w_{succ}=0.5,\ \gamma=0.7$$直觉:一个决策的直接效果一般,但如果它的后继分支里跑出了大加速,这个决策的「历史地位」就该上调——早期决策的价值由后续结果回溯定价,类似折扣回报在搜索树上的传播。
4.2 组件二:Active Context Management and Injection
类比:CPU 的三级缓存。Hot 像寄存器(必须有)、Warm 像 L1 缓存(高优先级经验)、Cold 像主存(背景知识)。它是准入优先级而非永久存储位置——同一物品对不同状态可以是 Warm 或 Cold。
三层划分:
| 层级 | 内容 | 准入规则 |
|---|---|---|
| Hot | 内核规范、现任代码、最新编译/正确性/性能反馈、优化目标 | 必保,prompt 可行则必须容纳 |
| Warm | 当前状态检索出的 Cases、Journal 摘要、程序性摘要(成功动作+失败模式) | 图排序后按上限 $Q_w$ 装配 |
| Cold | 更广文档、跨类目经验、旧摘要 | 剩余容量按上限 $Q_c$ 装配 |
预算感知装配。可用知识预算 $B_k = \max(0, W - S - G - R)$(模型窗口 − 系统提示 − 生成预留 − 新近预留)。装配器先保留 Hot 载荷 $H$(可行性要求 $H \leq B_k$),再纳入至多 $Q_w$ 的图排序 Warm 经验,剩余容量给 Cold。每次迭代前重建 prompt——第 k 轮记录的事件可以改变第 k+1 轮的上下文。
执行环:先正确后性能——编译+测试通过且实测更优才替换现任代码;失败尝试(编译错误、结果错误、性能回退)同样入库作为负面证据。
4.3 与推理期缓存管理的边界
KV-cache 逐出在解码时选内部状态,KOPE 在模型调用前选外部材料——阶段不同、可组合。
五、评估指标与实验证据
5.1 基准与环境
CANN Bench v0.4.0:53 个算子 × 20 用例 = 1,060 个公共用例,Ascend 910C 硬件,1M token 上下文预算(GLM-5.2 与 Deepseek-V4-Pro 都提供 1M 窗口,保证跨系统预算一致)。评测器含反 reward-hacking 检查(如疑似 CPU 回退检测)。所有数字从存档最终评测工件重算。
5.2 指标体系
- 通过率 = $P/1060$:整个任务宇宙上被评测器接受的用例比例。缺失算子按 20 个失败计——这一设计防止「只交自己擅长的算子」刷分;
- 算子加速比几何均值:每个算子 $s_o = T_{CANN}/T_{generated}$,几何均值(描述性统计,只算正域);
- 综合分数:编译+正确性+性能合成,缺失算子记零分;
- token 消耗:完整 53 算子配置的总优化 token 开销。
为什么这套指标能证明论点:通过率用全集分母,度量的是「覆盖率」而非「挑肥拣瘦的条件性能」——这正是语料稀缺场景的核心痛点(能不能把没见过的算子做对)。
5.3 主实验:系统级对比
| 模型 | 系统 | 算子通过 | 用例通过 | 通过率 | 分数 |
|---|---|---|---|---|---|
| GLM-5.2 | KOPE | 52/53 | 897/1060 | 84.6% | 2004.49 |
| GLM-5.2 | CANNBot | 37/53 | 613/1060 | 57.8% | 1465.93 |
| GLM-5.2 | CUDA-Agent | 13/53 | 156/1060 | 14.7% | 312.00 |
| Deepseek-V4-Pro | KOPE | 47/53 | 783/1060 | 73.9% | 1242.90 |
| Deepseek-V4-Pro | CANNBot | 25/53 | 417/1060 | 39.3% | 1015.38 |
| Deepseek-V4-Pro | CUDA-Agent | 8/53 | 96/1060 | 9.1% | 192.00 |
关键读数:
- CUDA-Agent 的惨败是全文最有信息量的对照:这个在 NVIDIA KernelBench 上拿到 98.8% 通过率、2.60× 几何加速的 SOTA 工作流,迁到 Ascend 后两个模型下通过率仅 14.7%/9.1%,且没有一个完整算子被解出。这证明「模型能力强 + 任务内打磨」在目标语料稀缺时不够用——瓶颈不在模型,在经验。
- 诚实细节:Deepseek 的 31 算子交集上,CANNBot 条件得分(1015.38)反超 KOPE(952.53),正域几何均值也略高。KOPE 的系统级优势主要在覆盖率,不是在每个已返回算子上都碾压。作者如实报告了这一点。
5.4 消融一:主动 vs 被动上下文(全量 53 算子)
| 上下文策略 | 用例通过 | 通过率 | 分数 | 正域几何均值 | token |
|---|---|---|---|---|---|
| 被动(Agent 自建上下文) | 636/1060 | 60.0% | 636.00 | 0.0382× | 15.9B |
| 主动(三层预算装配) | 897/1060 | 84.6% | 2004.49 | 0.0661× | 1.113B |
| 效果 | +261 | +24.6pp | +1368.49 | 1.73× | −93.0% |
两个配置都覆盖全部 53 算子,无需交集筛选。token 降 93% 的同时通过率反升 24.6pp——增益不可能来自「塞更多历史」,只能来自「装得更准」。
5.5 消融二:经验图记忆开/关
| 配置 | 用例通过 | 通过率 | L1 | L2 | L3 | L4 |
|---|---|---|---|---|---|---|
| 有图记忆 | 897/1060 | 84.6% | 0.659× | 0.0866× | 0.0344× | 0.0182× |
| 无图记忆 | 585/1060 | 55.2% | 0.664× | 0.0595× | 0.0229× | 0.00199× |
| 效果 | +312 | +29.4pp | 0.993× | 1.455× | 1.501× | 9.175× |
通过率 +29.4pp;412 对有效计时上几何均值 1.434×。难度越高的算子,图记忆的加速效果越陡峭(L4 达 9.175×,L1 基本持平)——经验在「模型内置知识最不够用的地方」价值最大,这与「补语料稀缺」的动机完全自洽。
5.6 RISC-V 跨硬件迁移(附录,204 用例)
| 记忆配置 | 通过 | 率 | 交集几何均值 |
|---|---|---|---|
| 冷启动 | 123/204 | 60.3% | 0.388× |
| Ascend 记忆 | 170/204 | 83.3% | 0.145× |
| K3 记忆 | 182/204 | 89.2% | 0.514× |
| Ascend + K3 | 188/204 | 92.2% | 0.786×(2.027× 冷启动) |
这个实验把「可行性知识」与「性能知识」的迁移性干净地分开了:Ascend 记忆使覆盖率 +23pp(可行性知识可跨硬件复用),但交集性能反而降 62.5%(性能知识不可移植);目标侧(K3)记忆才能恢复性能。「接口可移植」没有被夸大成「性能可移植」——证据边界划分严谨。
六、效果优势的根源解释
对比对象:CANNBot 靠官方样本库参考实现,CUDA-Agent 靠 6000 合成任务 + agentic RL 训出的强模型能力。它们为何在语料稀缺场景失效?
Baseline 的根本局限:两者都是「一次性知识消耗者」。CANNBot 的知识在人工样本库里(覆盖不了没写的算子——GLM-5.2 下只返回 49 个算子、Deepseek 下只返回 31 个);CUDA-Agent 的知识被烧进模型权重(针对 CUDA 生态,AscendC 公共实现稀缺意味着预训练里没有对应知识可烧)。机制层面:它们的执行反馈只驱动当前轮次的修复,任务结束后归零——信息流是「开环」的。
KOPE 的根本性改变:
- 信息流从开环变闭环:每次尝试的「决策-结果 + 替代分支」进入经验图,使跨任务证据复用成为可能。因果链:AscendC 公共语料稀缺 → 模型内置知识不足 → CUDA-Agent 惨败(14.7%)证明该瓶颈真实存在 → 图记忆让目标硬件上产生的证据反哺后续决策 → 覆盖率从 57.8% 升至 84.6%(缺失算子从 16 个降到 1 个)。L4 难题上 9.2× 的加速佐证:经验在模型最无知的区域价值最大。
- 上下文装配从「被动堆积」变「主动预算化」:被动模式的问题不是历史太少,而是信息利用率低——膨胀的历史挤占 Hot 空间且触发 lost-in-middle。主动三层装配改变的是信息密度:token 降 93% 的同时通过率升 24.6pp,直接证伪「增益来自更多历史」的解释——增益来自「对的历史在对的状态被送进去」。
- 排序信号从文本相关性变「下游结果折扣分」:文本相似检索找不到「当时看似平平、后来被证明关键」的决策;折扣分 $d(v)$ 把后继分支的结果回溯定价到前驱,改变了「什么算重要经验」的定义。
反事实验证:关掉图记忆 → 通过率跌 29.4pp、L4 加速从 9.175× 跌回 1×;关掉主动装配 → token 涨 14 倍、通过率跌 24.6pp。两个机制各自必要。
如实说明:系统级对比同时改变了多个工作流决策,无法把增益归因到单一组件(作者自陈);每个配置只有单次存档运行,无重复实验方差估计——这是证据强度的边界。
七、必要知识反推
假设一个零知识的人要完成这项工作,他最少需要知道什么?
7.1 领域知识层
- 内核优化的完整循环(编译→正确性→profiling→修订):不理解「先正确后性能」的替换逻辑,就无法设计执行环与记录 schema;
- 目标硬件生态的稀缺性判断:知道 AscendC 公共实现少、CANN Bench 提供完整编译/测试/测量环境——这是选题成立的前提,也是「为什么不用 CUDA 练手」的判断依据;
- 昇腾/RISC-V 两套异构栈的工程细节(AscendC vs Triton、NPU vs RVV):跨硬件迁移实验的必要条件。
7.2 方法论知识层
- Agent 记忆研究脉络(MemGPT/ExpeL/ReMe):知道 ReMe 的程序性记忆机制,才能「站在它上面」做领域特化而非重造轮子;
- 长上下文利用的实证结论(Lost in the Middle / RULER / KV-cache eviction):这是「为什么不能无脑堆历史」的理论依据,直接支撑主动上下文管理的设计动机;
- 折扣回报思想:$\gamma=0.7$ 的下游结果折扣显然源自 RL 的回报传播直觉——把搜索树上的信用回溯迁移到经验排序;
- 评测方法论:全集分母、缺失记零、反 reward-hacking、交集诊断 vs 全量报告的区分——不懂这些会做出可被「挑肥拣瘦」攻破的评测。
7.3 工程知识层
- 双表示存储(Markdown Journal + JSON Case)的 schema 设计:兼顾语义检索与精确图重建;
- prompt 重建时机(每迭代一次)与预算公式 $B_k = W - S - G - R$ 的参数化管理;
- 存档工件的重算纪律:所有报告值从最终评测 JSON 重算、排除中间日志——保证数字可审计。
7.4 知识融合的关键节点
- 节点一:「语料稀缺 × 反馈即弃」的交集洞察——把两个各自已知的问题(生态早期缺语料、Agent 不积累经验)识别为同一个机会:在目标硬件上自己生产语料。这需要同时懂硬件生态规律和 Agent 记忆研究。
- 节点二:图结构 × 折扣分——意识到「决策价值由下游揭示」需要搜索树式思维,把它落到「带前驱 ID 的 JSON Case」上需要工程抽象。
- 节点三:三层缓存 × token 预算——把操作系统缓存分层的经典思想移植到 prompt 装配,并用「token 降 93% + 通过率升」的双向实验证明信息密度假设。
八、论文中可以提取的通用性灵感
灵感一:在语料稀缺领域,让系统在目标环境「自己生产语料」
核心思想:当预训练分布覆盖不到目标场景时,运行时产生的执行反馈本身就是最高质量的领域语料——经验记忆是一种「运行时持续训练」的替代物(模型冻结)。 论文证据:CUDA-Agent 在 KernelBench 98.8% 通过率,在 AscendC 上 14.7% 且零完整算子;KOPE 靠目标侧经验积累把覆盖率做到 84.6%。 推广场景:(1) 新编程语言/新框架的代码 Agent;(2) 私有内网系统运维 Agent;(3) 新发布硬件的编译器自动调优;(4) 企业内部 API 生态的调用 Agent——凡「公共语料覆盖不到、但环境可执行反馈」的场景都适用。
灵感二:决策的价值应由下游结果回溯定价
核心思想:评估一条历史经验的权重,不要只看它当时的即时效果,而要看它的后继分支最终走向何方——折扣下游得分是对「短期看似无用、长期被证明关键」决策的补偿机制。 论文证据:$d(v) = 0.5\,r_v + 0.5 \times 0.7\sum d(u)$ 的排序使 L4 难题获得 9.175× 加速;扁平日志做不到这种回溯定价。 推广场景:(1) 推荐系统中「长程价值」内容排序;(2) 科研实验管理中「失败实验的谱系价值」评估;(3) Agent 工作流里工具调用的信用分配;(4) 组织知识管理中对「早期决策」的复盘定价。
灵感三:上下文的价值在信息密度,不在信息总量
核心思想:主动的、预算化的、按状态条件化的上下文装配,优于被动堆砌全部历史——省 token 与涨效果可以同时发生。 论文证据:主动装配使 token 从 15.9B 降至 1.113B(−93%)的同时通过率从 60.0% 升至 84.6%。 推广场景:(1) 任何长历史 Agent 的记忆注入策略;(2) RAG 系统的上下文压缩;(3) 多轮对话产品的历史摘要装配;(4) 代码 Agent 的仓库上下文剪枝。
灵感四:可行性知识与性能知识是两种不同的知识,迁移性不同
核心思想:「这条路能走通」与「这条路走多快」应该分开存储、分开评估——前者往往可跨环境迁移,后者高度环境绑定。 论文证据:RISC-V 迁移中,Ascend 记忆使覆盖率 +23pp 但交集性能 −62.5%;只有目标侧 K3 记忆才同时提升两者。 推广场景:(1) 跨项目/跨团队的知识迁移评估;(2) 多环境部署系统的经验库分区;(3) 个人技能迁移中「会做」与「做得快」的训练分离;(4) 仿真到真实(sim-to-real)的经验管理。
灵感五:把「自进化」严格定义为可分离验证的变量
核心思想:把学习限定在外部经验与注入上下文、冻结模型参数,使「经验机制的贡献」与「模型能力的贡献」可以被干净地分离度量——这种变量分离纪律让消融实验有了明确解释力。 论文证据:同模型同预算下,两组消融分别隔离了上下文策略(+24.6pp)与图记忆(+29.4pp)的贡献;CUDA-Agent 对照隔离了「模型能力」这一变量。 推广场景:(1) Agent 系统改进的归因分析框架;(2) 任何「多因素系统」的 A/B 实验设计;(3) prompt 工程与记忆工程的收益分离核算。
一句话总结:KOPE 用「经验图 + 预算化注入」证明了在语料稀缺的硬件上,会攒经验的 Agent 比更聪明的 Agent 更值钱——而最难的那部分任务(L4),恰恰是经验价值最大的地方。