← 返回 2026-05-12

Metal-Sci:面向 Apple Silicon 上进化式 LLM 内核搜索的科学计算基准 Metal-Sci: A Scientific Compute Benchmark for Evolutionary LLM Kernel Search on Apple Silicon

Víctor Gallego 📅 2026-05-10 👍 5 2026-07-13 08:36
Apple Metal GPU内核优化 LLM代码生成 智能体监督 科学计算基准 进化搜索

10任务科学Metal基准+演化循环,利用held-out门做廉价LLM监督

前置知识

Apple Metal 与 threadgroup/simdgroup

Metal Shading Language (MSL) 是 Apple GPU 的着色语言。kernel 是从 CPU 调用的 .metal 源 GPU 函数;threadgroup (TG) 相当于 CUDA 的 thread block,组内线程共享一块 threadgroup memory scratchpad;simdgroup 是 threadgroup 内的 32 线程 SIMD lane 组(对应 CUDA 的 warp)。另外,[[max_total_threads_per_threadgroup(N)]] 是 MSL 中必须放在 kernel void 声明上的属性,half 是 MSL 为 fp16 保留的类型关键字(不是 CUDA 风格的 half 模板),这些细节都是 CUDA 训练数据之外的 OOD 语法点。

本基准的目标硬件就是 Apple Metal,理解 threadgroup / simdgroup / MSL 语法差异才能理解为什么 LLM 在 Metal 上的失败模式与 CUDA 不同,以及为什么文中反复讨论 simd_shuffle_xor、pinned threadgroup 等 Metal 特有优化

Roofline 性能模型

Roofline(Williams 等 2009)以算术强度 (FLOPs/byte) 为横轴、以硬件可达吞吐上限为纵轴画出一条折线:低强度区域被 DRAM 带宽封顶(GB/s),高强度区域被 FP32 算力封顶(GFLOPS)。本文不与任何手写基线比较,而是把候选内核的实测吞吐 $a_T(\kappa, \sigma)$ 与同尺寸下该芯片的 roofline $c_T(\sigma)$ 取比值 $f_T(\kappa, \sigma) = a_T(\kappa, \sigma)/c_T(\sigma)$,并对多个尺寸取几何均值 $S_T(\kappa) = \prod_{\sigma \in \Sigma_T} f_T(\kappa, \sigma)^{1/|\Sigma_T|}$ 作为 in-distribution 评分。

roofline 锚定是本工作评分机制的核心。理解它才能明白为什么 $S_T$ 是硬件上限的'物理单位',以及为什么 gmean 比 max 更难被单一尺寸过拟合操纵

(1+1) 进化策略与代码搜索

(µ=1+λ=1) 进化策略(Beyer & Schwefel 2002)是最简进化算法:一个父代 κ⋆、每代变异产生一个子代 κ,iff 子代评分严格高于父代时替换父代。FunSearch(Romera-Paredes 2023)和 AlphaEvolve(Novikov 等 2025)把 LLM 放进这种循环,让 M 在 prompt $p_T$ 与上一轮反馈 $F_k$ 条件下输出下一份可执行代码。本文的进化算子本身就是 LLM:M(pT, q(κk−1, κ⋆k−1, Fk−1)) → κk,编译-分发-评分-提升,构成单步循环。

本工作把自主代码代理抽象为 (1+1) 进化循环,从而可以借用进化计算的标准分析框架(incumbent / promote 规则)来讨论过拟合与监督

FTS / 显式 kernel 内联与 template

MSL 支持用 template 或 template 写参数化 kernel,让内层循环在编译期完全展开(#pragma unroll)并消除运行时分支;运行时通过 if (d==8u) run<8u>(); else if (d==16u) run<16u>(); 做显式派发。文中 hmc 任务的核心提速就来自这种 template-D 改造:把 d=8 的 matvec 从手工 8 路 float4 横向求和(121 GFLOPS, 2.7% 峰值)改为 template 全展开标量 FMA(970 GFLOPS, 22% 峰值)。

template-D 是文中 Opus 与 Gemini 在 hmc 上'找到同一杠杆'的具体技术,理解它才能读懂 Figure 3 的代码 diff 与 8× 提速来源

Held-out 评估与过拟合

标准机器学习中,held-out 集是训练期间不可见、用于泛化性估计的子集。本文把这个思想搬到 LLM 代码搜索:每个任务 $T$ 配备一个 in-distribution 尺寸集 $\Sigma_T = \{\sigma_1, \sigma_2, \sigma_3\}$(搜索时使用的 3 个尺寸)以及一个 held-out 尺寸 $\sigma^\star_T \notin \Sigma_T$(搜索时永远不反馈给 LLM 的尺寸);end-of-run 时一次性计算 $\Phi_T(\kappa) = f_T(\kappa, \sigma^\star_T) \cdot \chi_T(\kappa, \sigma^\star_T)$,作为对 in-distribution 评分 $S_T$ 的'廉价外部监督'。

$\Phi_T$ 是本文的核心方法论贡献——它把'agent 自我报告的指标'与'人类/部署侧的信任信号'用单个未见过的问题实例解耦,是理解整篇论文价值主张的关键

研究动机

现有的 LLM 内核生成基准(KernelBench、TritonBench、BackendBench、MultiKernelBench、NPUEval、KernelCraft)全部围绕 CUDA 或类 CUDA 后端的 ML 算子(GEMM、注意力、卷积、归一化、激活),并以相对 PyTorch eager / 厂商库的 speedup 作为评分依据。然而科学计算暴露的是完全不同的优化曲面:stencil 偏带宽、依赖 halo 与时间分块;全对 n-body 偏算力、依赖寄存器 tiling 与 threadgroup 协作加载;D2Q9 格子 Boltzmann 要在 9 个分布函数间做 pull-stream 与 BGK 碰撞融合;Lennard-Jones MD 走 cell-list + 原子 scatter 解决不规则访存;Grad-Shafranov 求解把 in-kernel reduction 与变系数 stencil 串起来;3D FFT 则被数据重排 / Stockham auto-sort / twiddle 缓存主导,tiling 不再是关键。每个 regime 的'规范优化'(Datta 2008、Nyland 2007、Schönherr 2011、Anderson 2008、Govindaraju 2008)几乎不跨 regime 迁移,因此靠'回忆预训练里见过的 CUDA kernel 模板'在科学计算上立刻失效。更严重的是,当前 LLM 自主代码代理((1+1) 或更复杂 evolutionary loop)报告的 in-distribution speedup 极易被两种'静默失败'操纵:(i) 静默正确性违反——Opus 在 hmc 上 d=8/16/32 全绿,但 held-out d=24 上样本协方差偏 ~10σ;(ii) 静默回归——GPT-5.5 在 fft3d 的 in-distribution gmean 2.95× 是表内最大单模型 gap,到 held-out $256^3$ 立方体却跌到 0.23×(8.5% 有效 ceiling),根因是 N∉{32,64,128} 派发到 O(N²) 直接 DFT。

本文的目标是本文的具体目标有三:(1) 构造一个面向 Apple Silicon Metal 的 10 任务科学计算基准 METAL-SCI,跨越 6 个结构上不同的优化 regime(每个 regime 的规范优化不向相邻 regime 迁移),并对每个任务配备 CPU 参考、roofline 锚定评分、3 个 in-distribution 尺寸与 1 个 held-out 尺寸;(2) 设计一个轻量级 evolutionary harness:runtime 编译(PyObjC + MTLDevice.newLibraryWithSource),把编译错误、per-size 正确性 (χT)、per-size 吞吐分数以结构化字符串包进反馈包 Fk,单步秒级,支撑 (1+1) 循环;(3) 用三个前沿 LLM(Claude Opus 4.7、Gemini 3.1 Pro、GPT-5.5)在 M1 Pro 上做 matched-budget sweep,把 held-out 评分 ΦT 实例化为对自动编码代理的'廉价机械监督原语'——ΦT 永远不进 Fk,只在 end-of-run 对 incumbent 评估一次。

与已有工作不同的是,本文的独特切入角度是'基准 + 监督契约'双层定位。底层贡献是 HPC 域的 Metal 基准(不同于 KernelBench 等 ML/CUDA 基准),上层贡献是方法论的:作者认为 METAL-SCI 的真正价值不是提供一个'更难'的基准,而是把评分机制与监督机制分开——$S_T$(in-distribution gmean)是 agent 的优化目标,$\Phi_T$(held-out 一次性评估)是人类/下游自动审查者的轻量级信任信号。每个任务只需额外一个尺寸的 GPU 派发(秒级开销)就能捕获'自信地错'的代码。这一思路与 Karpathy autoresearch、Gallego (2026) 的'外层代理重写内层合成 pipeline'属同一脉络,但本文的代理层是内层 LLM 单点内核搜索,pipeline 与提示词模板是固定人类设计的,因此'监督缺口'只发生在单内核维度,可被单 held-out 实例盖住。

核心方法

METAL-SCI 的整体思路是把'LLM 当内核合成器'包进一个 (µ=1+λ=1) 进化循环:每代由 frozen LLM M 在 prompt pT 与反馈包 Fk 条件下输出一份 Metal 源码 κk,runtime 编译后用 PyObjC Metal binding 在统一内存缓冲区上分发到该任务 3 个 in-distribution 尺寸 ΣT,按 roofline 取每个尺寸的分数 fi = ai/cT(σ),再对所有尺寸做几何均值并用正确性硬门 χT 取与,得到 $S_T(\kappa) = \prod_{\sigma \in \Sigma_T} f_T(\kappa, \sigma)^{1/|\Sigma_T|} \cdot \prod_{\sigma \in \Sigma_T} \chi_T(\kappa, \sigma)$。严格 (1+1) 规则保证只有 $S_T(\kappa_k) > S_T(\kappa^\star_{k-1})$ 时才把 κk 提升为新 incumbent κ⋆k,否则 κ⋆k=κ⋆(k−1) 不变;K 步后对 κ⋆K 一次性计算 $\Phi_T(\kappa^\star_K) = f_T(\kappa^\star_K, \sigma^\star_T) \cdot \chi_T(\kappa^\star_K, \sigma^\star_T)$,作为'廉价监督信号'对人类可见但永远不进入 Fk。技术路线上三个关键选择:(i) Python 进程内 runtime 编译(避免 xcrun metal 工具链),单步秒级;(ii) 所有 multi-size 派发共享一个 MTLCommandBuffer,时序来自 GPUEndTime−GPUStartTime,3 warmup + 10 timed 报告 median;(iii) chip 探测从 sysctl,per-family 表查 M1–M4 的 peak FP32 GFLOPS 与 DRAM 带宽。

本文核心创新是'hold-out 门作为代理监督原语',与已有方法有本质区别。已有 LLM 内核基准(KernelBench 等)要么只看 single-shot PyTorch speedup、要么只看 multi-turn compiler speedup,监督反馈与评分反馈是同一信号;本文把'代理的自我优化目标'$S_T$ 与'外部监督信号'$\Phi_T$ 在数据通道上彻底隔离——$\Phi_T$ 在 K 次迭代期间从未进入 Fk,因此 LLM 永远无法针对 $\sigma^\star_T$ 过拟合。第二个创新是 benchmark 设计的 6-regime 结构:每个 regime 的'规范优化'互不迁移,使'召回预训练模板'无法横扫整榜,迫使代理必须真正识别 regime 并选对杠杆(halo / register tiling / SoA+pull-stream / atomic scatter / in-kernel reduction / Stockham 或 simd_shuffle_xor butterfly)。第三个创新是'用'最便宜的(一次额外派发)+'最决断的'(编译/正确性错误与静默性能回归)held-out 评估,把 LLM 自主代码搜索从'自评自升'变成'自评+外部机械监督'的可审计结构。

方法步骤详情

METAL-SCI 的完整流水线按 Alg. 1 形式化。第 1 步:每个任务 T 配 (a) 种子 Metal 内核 κT,(b) CPU 参考实现 + 任务特定 tolerance,(c) 3 个 in-distribution 尺寸 ΣT={σ1,σ2,σ3} + 1 个 held-out 尺寸 σ⋆T,(d) per-size roofline 上限 cT(σ) (GFLOPS 或 GB/s)。第 2 步:初始化 κ⋆0=κT,F0=EVALUATE(κT,T)。第 3 步(k=1..K):(3a) 提议——M(pT, q(κk−1, κ⋆k−1, Fk−1)) → κk;(3b) EVALUATE:PyObjC 调 MTLDevice.newLibraryWithSource 编译 κk,编译失败时 return (compile_fail, ec) 直接进 Fk;否则对每个 σ∈ΣT 派发并按 CPU reference 算 χT(κ,σ)∈{0,1} 与实测吞吐 aT(κ,σ);任一尺寸 χT=0 则 return (correct_fail, 违反尺寸, error metric);否则返回 score S 与 per-size 分数集 {as/cT(s)}s∈ΣT;(3c) 提升——iff rk.score 已定义且 rk.score > S_T(κ⋆k−1) 则 κ⋆k=κk,否则 κ⋆k=κ⋆k−1;(3d) 打包 Fk=(κk, rk) 作为下一轮结构化反馈。第 4 步:end-of-run 一次性计算 $\Phi_T(\kappa^\star_K) = f_T(\kappa^\star_K, \sigma^\star_T) \cdot \chi_T(\kappa^\star_K, \sigma^\star_T)$,永不进 Fk,与 S_T(κ⋆K) 一起报告。每个 candidate 在 M1 Pro 上耗时:Opus ~0.6 min/iter,Gemini ~3.5 min/iter,GPT ~6.6 min/iter。

技术新颖性

技术新颖性体现在四个层面。第一,benchmark 本身的 regime 结构:10 任务跨 6 优化 regime(stencil / compute / multi-field / atomics / multi-kernel / butterfly),每个 regime 的规范优化(halo blocking、register tiling、SoA pull-stream、cell-list scatter、in-kernel reduction、Stockham vs simd_shuffle_xor)不跨 regime 迁移,这点是文中 Table 2 显式声明的'中心设计决策',区别于 KernelBench 的单一 matmul-style 域。第二,per-chip roofline 锚定 + 几何均值 gmean 的评分函数,使'绝对物理单位'与'对单一尺寸的过拟合惩罚'同时进入 S_T。第三,runtime 编译 harness 暴露'编译诊断 + per-size χT + per-size 分数'三元组到 Fk,并把 held-out 评估放在反馈通道之外,做成可审计的机械监督契约。第四,方法论层面的'ΦT 作为代理监督'思想——作者明确把 METAL-SCI 定位为'廉价机械信任契约',使其价值不仅在'更难基准',更在'为 LLM 自主代码搜索加一道几乎零成本的部署前安全网'。配套软件 github.com/vicgalle/metal-sci-kernels 开源。

The METAL-SCI benchmark. Top: six optimization regimes (R1–R6). Bottom: the harness loop.
Figure 1: The METAL-SCI benchmark. Top: six optimization regimes (R1–R6). Bottom: the harness loop.
Paradigmatic candidate evolution: hmc, Opus 4.7, iter 5 → 6. Both Opus and Gemini independently arrive at this structural change.
Figure 3: Paradigmatic candidate evolution: hmc, Opus 4.7, iter 5 → 6. Both Opus and Gemini independently arrive at this structural change.
lbm iter-23 best, Opus (left) vs Gemini iter-13 best (right).
Figure 5: lbm iter-23 best, Opus (left) vs Gemini iter-13 best (right).
fft3d iter-10 best, Opus (left) vs Gemini iter-10 best (right).
Figure 6: fft3d iter-10 best, Opus (left) vs Gemini iter-10 best (right).

实验结果

在 Apple M1 Pro(4500 GFLOPS, 200 GB/s)上对 Claude Opus 4.7、Gemini 3.1 Pro、GPT-5.5 三个前沿 LLM 做 matched-budget sweep,in-distribution 自提速从 1.00× 到 10.7×,但三模型在 held-out 维度上以不同方式失败:(1) hmc 是正确性高光——Opus 的 template 特化对 d∈{8,16,32} 派发,d=24 被错分到 D=32 分支,per-thread q[32]、p[32] 对 24 维数据展开 matvec,样本协方差偏 ~10σ(FAIL);Gemini 保留 runtime-d leapfrog 回退,在 held-out d=24 跑到 9.7% FP32 峰值(17.6×);GPT 进一步显式枚举 D∈{8,16,24,32}+runtime-d 安全网,d=24 跑 10.2% 峰值(18.6×)。(2) fft3d 是性能高光——GPT-5.5 的 iter-10 best 用手写 fft_line_32/64/128 + simd_shuffle_xor + 64 项常数表 W128[64] 在 in-distribution 拿到 2.95×(表内最大单模型 gap),但在 held-out $256^3$ 跌到 0.23×(8.5% ceiling),根因是 N∉{32,64,128} 派发到 textbook O(N²) 直接 DFT,每个输出多 ~32× 算术量;Opus 1.03×、Gemini 1.19× 同样配置仅跑 42%/45% ceiling,但都保住了 ≥1.12× 的 held-out 倍数。(3) nbody、gradshaf、lj 在三模型上都泛化干净,gradshaf 尤其亮眼:Opus 2.05×、Gemini 2.91×、GPT 1.86×;lj 仅 Gemini 超过自己 in-distribution 倍数(1.87× at N=2744),Opus/GPT 拿到 1.24×/1.34×。(4) 静默正确性总账:Gemini 整个 candidate 预算 0 失败;Opus 13 次失败(wave3d 单任务就贡献 10/15,因为 leapfrog 多步放大符号/索引错误到 NaN);GPT 2 次。(5) 编译失败主要在 [[max_total_threads_per_threadgroup(N)]] 位置错(参数列表后/独立语句而非 kernel void 声明上)、half 当 fp16 保留字冲突、MSL 不支持 C++ lambda,Opus 12 次、Gemini 22 次、GPT 12 次。(6) 几何均值评分证明'难被博弈':heat2d 上 Opus 和 GPT 的所有 candidate 都没严格战胜 seed,incumbent 停在 iter 0,说明 S_T 是硬信号。(7) lbm Opus 的 BGK fold + pinned threadgroup(32×2 tile 与 simdgroup 宽对齐)把 256² 拉到 1.22(vs Gemini 1.03),但 Opus 用了 23 次迭代才突破 iter 3 的 1.36× plateau,10-iter 预算会错过这例——这是作者为 lbm/wave3d 配 25/151 次迭代预算的实证依据。

METAL-SCI versus existing LLM kernel-generation benchmarks across the axes that drive the design of our harness.
Table 1: METAL-SCI versus existing LLM kernel-generation benchmarks across the axes that drive the design of our harness.
The 10 METAL-SCI tasks.
Table 2: The 10 METAL-SCI tasks.
Evolutionary kernel refinement sweeps on Apple M1 Pro (Opus = claude-opus-4-7, Gemini = gemini-3.1-pro-preview, GPT = gpt-5.5). In-dist. × = best / seed, gmean over three in-distribution size configurations. Held-out frac-of-ceiling = achieved/ceiling at the unseen size, measured in a single fresh session for all three models; held-out × = best / seed at that size config.
Table 3: Evolutionary kernel refinement sweeps on Apple M1 Pro (Opus = claude-opus-4-7, Gemini = gemini-3.1-pro-preview, GPT = gpt-5.5). In-dist. × = best / seed, gmean over three in-distribution size configurations. Held-out frac-of-ceiling = achieved/ceiling at the unseen size, measured in a single fresh session for all three models; held-out × = best / seed at that size config.
Per-task running self-speedup (best-so-far / seed) versus iteration, Opus 4.7 vs Gemini 3.1 Pro vs GPT-5.5.
Figure 2: Per-task running self-speedup (best-so-far / seed) versus iteration, Opus 4.7 vs Gemini 3.1 Pro vs GPT-5.5.
GPT-5.5 fft3d iter-10 best: hand-coded fft_line_32/64/128 routines and the O(N²) direct DFT fallback.
Figure 4: GPT-5.5 fft3d iter-10 best: hand-coded fft_line_32/64/128 routines and the O(N²) direct DFT fallback.
GPT-5.5 hmc iter-3 best: explicit D∈{8, 16, 24, 32} enumeration with a runtime-d catch-all.
Figure 7: GPT-5.5 hmc iter-3 best: explicit D∈{8, 16, 24, 32} enumeration with a runtime-d catch-all.
查看结构化数据
任务指标本文基线提升
hmc (held-out d=24) 正确性 + FP32 frac-of-ceiling Opus FAIL (covariance 偏 ~10σ); Gemini 9.7% peak (17.6×); GPT 10.2% peak (18.6×) in-distribution Opus 10.6× / Gemini 10.7× / GPT 7.19× (gmean 0.0932/0.0870/0.0634) GPT 显式枚举 D∈{8,16,24,32}+runtime-d 是唯一既拿到 18.6× held-out 又无正确性失败的方案
fft3d (held-out 256³) speedup vs seed + frac-of-ceiling Opus 1.12× (42%); Gemini 1.20× (45%); GPT 0.23× (8.5%) in-distribution gmean: Opus 1.03×, Gemini 1.19×, GPT 2.95× ΦT 把 GPT 2.95× in-dist 翻转为 0.23× held-out,暴露 32× 算术膨胀;Opus/Gemini 在 held-out 仍 ≥1.12×
nbody (compute-bound, 3 in-dist sizes) in-distribution gmean self-speedup Opus 2.83×, Gemini 2.00×, GPT 2.19×; held-out N=512: Opus 1.24×, Gemini 1.50×, GPT 1.37× seed kernel gmean as 1.00× Opus 净胜 41% over 次优 GPT, 三模型均泛化 (held-out > in-dist for Opus/GPT)
gradshaf (multi-kernel reduction, 65²/257²/513²) in-distribution gmean self-speedup Opus 1.89×, Gemini 2.89×, GPT 1.93×; held-out 129²: Opus 2.05×, Gemini 2.91×, GPT 1.86× seed 1.00× Gemini 53% over Opus;所有模型 held-out 倍数 ≥ in-dist,全泛化
lbm (D2Q9 9 分布函数, 64²/128²/256²) in-distribution gmean self-speedup Opus 1.46× (用 25 iter), Gemini 1.06×, GPT 1.33×; held-out 192²: Opus 0.97×, Gemini 1.16×, GPT 1.01× seed 1.00× Opus BGK FMA fold + pinned 32×2 threadgroup 仅在 256² 拉开 (1.22 vs 1.03),但 192² 被 Gemini 反超,gmean 持平
lj (Lennard-Jones cell-list, 1.7K/4.1K/10.6K) in-distribution gmean + held-out N=2744 Opus 1.77× / 1.24×; Gemini 1.98× / 1.87×; GPT 1.62× / 1.34× seed 1.00× 仅 Gemini 的 held-out (1.87×) 超过自己 in-distribution,是 R4 唯一不回归的
heat2d (R1 5-point stencil, 256²/512²/1024²) in-distribution gmean + held-out 768² Opus 1.00× / 0.86×; Gemini 1.03× / 1.01×; GPT 1.00× / 0.82× seed (已在 ~84% effective DRAM ceiling) saturated — Opus/GPT 无任何 candidate 严格战胜 seed,incumbent 停在 iter 0,验证 S_T 是硬信号
wave3d (R1 7-point leapfrog, 64³/160³/192³) in-distribution gmean + held-out 128³ Opus 1.26× / 1.00× (151 iter); Gemini 1.00× / 0.90×; GPT 1.00× / 0.99× seed 1.00× Opus 13/15 candidate 失败(10 次落 NaN);唯一拿到 1.26× 但 held-out 持平
ising (R3 byte-exact MC, 256²/1024²/2048²) in-distribution gmean + held-out 1536² Opus 1.13× / 0.94×; Gemini 1.00× / 0.99×; GPT 1.09× / 0.88× seed 1.00× flat — held-out frac-of-ceiling 仅 10–12%,所有模型均回归到 seed 附近
saxpy (smoke test, 1M/16M/64M) in-distribution gmean + held-out 4M Opus 1.25× / 1.17×; Gemini 1.00× / 0.98×; GPT 1.01× / 0.98× seed 1.00× saturated — saxpy 主要验证 harness,seed 已达 78–93% effective DRAM ceiling

局限与改进

(1) 静态 per-chip ceiling 不计 SLC residency:作者承认对小尺寸(如 32³ FFT ~256 KB 完全 SLC-resident)会高估可达上限,应改用 workload-aware roofline(Williams 等 2009)的每任务每尺寸版本来收紧分数。(2) 单种群 (1+1) 在多数任务 10–25 步内 plateau:R3/R4 的不规则访存任务未来应换 island-model 或 FunSearch-style 档案+新颖度信号(Novikov 等 2025 的 AlphaEvolve 思路)以打破 plateau。(3) held-out 单一尺寸只是'单点监督',不是分布外泛化的完整保证:ΦT 一次评估只能盖住'该尺寸正确性+性能',不能直接推断任意 N 的行为;多 held-out 尺寸会进一步压缩这一缺口但增加算力成本。(4) 时序对热状态敏感:作者显式声明 single-size held-out frac-of-ceiling 会因 GPU 热状态与 SLC residency 在不同 session 偏移数十百分点,因此表内以 within-session ratio 为锚,跨 session 绝对值仅供方向性参考。(5) 评估范围只到 M1 Pro:cross-chip generalization(演于 M2 Pro、评于 M4 Max)作者留作 future work。(6) 任务域有限:未来应加入稀疏线性代数(SpMV、CG)、更复杂的 MD 变种。(7) 模型版本绑定 2026 时点的 frontier 模型(Opus 4.7 / Gemini 3.1 Pro / GPT 5.5),结论不能直接外推到未来更大或更小模型——实际上 GPT 5.5 已经展示'更长推理→更激进重构→更易过拟合',对下一代模型需要重新审计 ΦT 价值。

独立分析的弱点

(1) GPT fft3d 的 N∉{32,64,128} O(N²) 回退是结构性失败,单 held-out 尺寸虽能抓到,但更稳妥的工程做法是让 harness 在编译期强制'所有 power-of-2 N 都必须能跑',把这种'只在训练尺寸集上调通的 dispatch 表'在编译/分发阶段拒掉;改进方向是 dispatch 表生成器 + 自动在最大支持 N 处生成尾递归 fallback(如 Stockham 直接展开)。(2) Opus hmc 的 d=24 → D=32 静默错误是另一个静默正确性违反模式:单分支 if-else dispatch 容易把未见值'四舍五入'到最近的已枚举 D。改进方向是要求 candidate 必须显式提供 runtime-d 安全网路径,且 harness 在 held-out 评估时检查'是否每个分支都实际编译到了 D=24 数据'。(3) per-task 迭代预算 10/25/151 是 pilot 决定、并非理论最优:lbm Opus 在 iter 23 才突破 1.36→1.46 plateau,10-iter 预算会错过;可改成基于 held-out 分数变化率的 adaptive budget,或在 in-dist plateau 出现 N 步后自动加 budget。(4) 反馈包 Fk 是结构化字符串,'前一次 candidate diff + 编译错误'的呈现格式会显著影响 LLM 的下一轮探索方向;文中没做 prompt ablation 验证。(5) 编译失败在 [[max_total_threads_per_threadgroup]] 放置上 5 个任务重复出现,提示应把 MSL 语法 OOD 注入到 in-context 范例中作为强约束。(6) 几何均值 gmean + 正确性硬门虽然比 max 难博弈,但若 LLM 学会'在两个尺寸上小幅提升、第三个尺寸上小幅妥协'仍可推高 gmean——应在 Fk 中显式暴露 per-size 残差。

未来方向

(1) workload-aware roofline:把 per-task per-size 的 SLC occupancy 与 DRAM 带宽动态测量集成到 cT(σ),收紧小尺寸上限。(2) 多种群/档案搜索:把 (1+1) 扩到 island model + FunSearch-style 文档+新颖度奖励,特别针对 R3/R4 的不规则访存任务打破 plateau。(3) 跨芯片泛化:在 M2 Pro 训练、到 M4 Max 评估 held-out,研究 Metal-语法模式与 simdgroup 宽度的跨代际迁移性。(4) 更广任务域:加入稀疏线性代数(SpMV、CG)、stencil 变种(HPCG 类)、更高维 FFT 与 GPU-resident MD integrator。(5) prompt 模板 ablation:F_k 结构(compile diag / per-size χT / per-size aT / 短历史)的最优呈现形式,对应模型的不同 temperament(Opus 偏'收紧同算法'、Gemini 偏'换算法'、GPT 偏'激进重构')。(6) 把 ΦT 机制泛化到非 kernel 任务:作者明确把工作定位为'自动编码代理监督'范式,可平移到 RL reward 设计(Eureka)、hyper-heuristic(ReEvo)、agentic 训练(autoresearch)等领域的'廉价机械信任契约'。(7) 跟踪更强模型时的 ΦT 价值曲线:GPT 5.5 的'更长推理→更激进重构→更易过拟合'提示,下一代 frontier 模型可能让 ΦT 的捕获价值更高,而非更低。

复现评估

(1) 完整代码已开源:github.com/vicgalle/metal-sci-kernels,arXiv:2605.09708v1 摘要末尾标注。(2) 数据规模适中:10 任务、每个 3 in-dist + 1 held-out 尺寸,单一硬件(M1 Pro)即可跑全部 in-distribution sweep;held-out 评估需要一次 fresh session,单 GPU 派发秒级。(3) 算力需求:每位 LLM 在 matched budget(10/25/151 iter)下,Opus ~0.6 min/iter × 总 ~187 iter ≈ 2 小时 wall-time;Gemini ~3.5 min/iter ≈ 11 小时;GPT ~6.6 min/iter ≈ 20 小时——三模型全跑约 33 GPU-hours + LLM API 成本。(4) 第三方复现门槛:必须使用 Apple Silicon Mac(PyObjC Metal binding 强依赖 macOS),M1–M4 都可(per-family 表已覆盖),但 M1 Pro 的 4500 GFLOPS/200 GB/s 上限数字仅对该芯片有效,其他芯片的 roofline 需重新校准。(5) 复现难度中等:harness、prompt 模板、CPU reference、roofline 计算在论文 App. A/B/C/D 中完整形式化(Alg. 1 与 4 个 diff 图都给了 kernel-level 证据),但每个任务的'种子 kernel'与 per-task tolerance 需要从代码仓取。(6) 评测可复现性:作者明确 single-size held-out 数字跨 session 会漂移数十百分点,因此复现者应优先关注 within-session ratio 与 gmean 趋势,而非绝对 frac-of-ceiling 数值。(7) 模型版本:Opus 4.7、Gemini 3.1 Pro、GPT 5.5 都是 2026 年 5 月版本,未来 frontier 模型升级后需重新做 matched-budget sweep 才能复用结论。