论文链接: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-KernelRL 后训练 / 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.2KOPE52/53897/106084.6%2004.49
GLM-5.2CANNBot37/53613/106057.8%1465.93
GLM-5.2CUDA-Agent13/53156/106014.7%312.00
Deepseek-V4-ProKOPE47/53783/106073.9%1242.90
Deepseek-V4-ProCANNBot25/53417/106039.3%1015.38
Deepseek-V4-ProCUDA-Agent8/5396/10609.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/106060.0%636.000.0382×15.9B
主动(三层预算装配)897/106084.6%2004.490.0661×1.113B
效果+261+24.6pp+1368.491.73×−93.0%

两个配置都覆盖全部 53 算子,无需交集筛选。token 降 93% 的同时通过率反升 24.6pp——增益不可能来自「塞更多历史」,只能来自「装得更准」。

5.5 消融二:经验图记忆开/关

配置用例通过通过率L1L2L3L4
有图记忆897/106084.6%0.659×0.0866×0.0344×0.0182×
无图记忆585/106055.2%0.664×0.0595×0.0229×0.00199×
效果+312+29.4pp0.993×1.455×1.501×9.175×

通过率 +29.4pp;412 对有效计时上几何均值 1.434×。难度越高的算子,图记忆的加速效果越陡峭(L4 达 9.175×,L1 基本持平)——经验在「模型内置知识最不够用的地方」价值最大,这与「补语料稀缺」的动机完全自洽。

5.6 RISC-V 跨硬件迁移(附录,204 用例)

记忆配置通过率交集几何均值
冷启动123/20460.3%0.388×
Ascend 记忆170/20483.3%0.145×
K3 记忆182/20489.2%0.514×
Ascend + K3188/20492.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 的根本性改变:

  1. 信息流从开环变闭环:每次尝试的「决策-结果 + 替代分支」进入经验图,使跨任务证据复用成为可能。因果链:AscendC 公共语料稀缺 → 模型内置知识不足 → CUDA-Agent 惨败(14.7%)证明该瓶颈真实存在 → 图记忆让目标硬件上产生的证据反哺后续决策 → 覆盖率从 57.8% 升至 84.6%(缺失算子从 16 个降到 1 个)。L4 难题上 9.2× 的加速佐证:经验在模型最无知的区域价值最大。
  2. 上下文装配从「被动堆积」变「主动预算化」:被动模式的问题不是历史太少,而是信息利用率低——膨胀的历史挤占 Hot 空间且触发 lost-in-middle。主动三层装配改变的是信息密度:token 降 93% 的同时通过率升 24.6pp,直接证伪「增益来自更多历史」的解释——增益来自「对的历史在对的状态被送进去」。
  3. 排序信号从文本相关性变「下游结果折扣分」:文本相似检索找不到「当时看似平平、后来被证明关键」的决策;折扣分 $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),恰恰是经验价值最大的地方。