ASPLOS 2025 论文研究
Google & Stanford
2025年3月

Wave: 将资源管理卸载到 SmartNIC 核心

微秒级系统软件透明卸载的开创性突破:通过创新的 PCIe 延迟隐藏技术,在仅 1.1%-7.4% 性能降解下回收 16-24 个主机核心

Google, Stanford, Columbia
ASPLOS 2025 最佳论文

核心成果

性能降解 1.1-7.4%
核心节省 16-24 核
VM 性能提升 11.2%

技术创新

预暂存延迟隐藏
事务性 API
写合并页表
MMIO/DMA 双模式

执行摘要

Wave 是 Google 与斯坦福大学联合发表于 ASPLOS 2025 的开创性研究,首次实现了将微秒级系统软件(线程调度、内存管理、RPC 协议栈)透明卸载到 SmartNIC ARM 核心。这一突破性工作通过创新的 PCIe 延迟隐藏技术,在仅 1.1%-7.4% 性能降解下回收 16-24 个主机核心,为数据中心操作系统架构开辟了全新方向。

技术突破

首次证明微秒级系统软件可透明卸载到 SmartNIC,打破 PCIe 延迟瓶颈

性能表现

性能降解 1.1%-7.4%,回收 16-24 个主机核心,VM 性能提升 11.2%

商业价值

每 10 万台服务器可节省约 7.4 亿美元的等效计算容量

核心创新点

  • 透明卸载能力:三种现有用户空间系统软件(ghOSt 调度器、内存管理器、RPC 协议栈)无需重大修改即可卸载,保持 Linux 内核和未修改应用的完全兼容性
  • 低延迟通信 API:新型主机-SmartNIC 通信原语,通过 MMIO/DMA 双模式、预暂存、写合并页表等技术将决策循环延迟降至 426 ns
  • 严格性能基准:"苹果对苹果"同条件比较方法,确保测量的是卸载架构本身的开销,而非额外资源带来的收益
  • 大规模资源回收:实际部署中节省 16 核(内存管理)+ 8 核(RPC)+ 11.2% VM 性能提升

论文概览与学术背景

论文元数据

基础信息

标题 Wave: Offloading Resource Management to SmartNIC Cores
会议 ASPLOS 2025 (第30届ACM国际会议)
时间 2025年3月30日 - 4月3日
地点 荷兰鹿特丹

作者团队

JH
Jack Tigar Humphries
Stanford / Stellar Development Foundation
NN
Neel Natu
Google, Inc.
KK
Kostis Kaffes
Columbia University
+ 5位合作作者

arXiv 版本历史

v1 2024-08-30 初始投稿版本
261 KB
v2 2024-10-20 审稿反馈修订
244 KB
v3 2025-07-20 大幅扩展实验与附录
852 KB
v4 2025-07-26 最终精简版本
280 KB

研究背景与动机

数据中心效率挑战

严峻的资源效率瓶颈
现代超大规模数据中心中,操作系统、虚拟化层、网络协议栈等系统软件消耗了大量本可用于付费客户的 CPU 周期
系统软件开销 ~5% CPU 周期
128核服务器影响 6-7 个核心
10万台服务器规模 数万个核心

SmartNIC 技术演进

3.0 代 SmartNIC
Intel Mount Evans IPU 为代表,集成 16 个 ARM Neoverse N1 核心和 200 Gbps 网络能力
1
第一代 (2015-2018)
FPGA 可编程,网络功能虚拟化
2
第二代 (2018-2022)
ASIC 固定功能,RDMA/加密/压缩
3
第三代 (2022-至今)
通用 ARM 核心,完整 OS 运行

系统架构设计深度剖析

整体架构设计理念

策略-机制分离原则

Wave 架构的核心创新在于重新定义主机与 SmartNIC 之间的职责边界,将系统软件的"策略决策"(policy)卸载到 SmartNIC ARM 核心执行,而将"机制执行"(mechanism)保留在主机内核。

策略层 (SmartNIC)
  • • 调度算法选择
  • • 优先级计算
  • • 时间片分配
  • • 核心绑定决策
机制层 (主机)
  • • 上下文切换
  • • 寄存器保存/恢复
  • • 抢占和中断处理
  • • 物理页分配/回收

Wave 系统架构概览

graph TB subgraph "主机系统 Host System" A["应用程序 Applications"] --> B["ghOSt 调度器 ghOSt Scheduler"] A --> C["内存管理器 Memory Manager"] A --> D["RPC 协议栈 RPC Stack"] B --> E["Linux 内核 Linux Kernel"] C --> E D --> E E --> F["硬件机制 Hardware Mechanisms"] end subgraph "PCIe 互连 PCIe Interconnect" G["Wave API
MMIO/DMA
事务性通信"] G -.->|"426 ns 延迟"| G end subgraph "SmartNIC IPU" H["调度代理 Scheduling Agent"] I["内存代理 Memory Agent"] J["RPC 代理 RPC Agent"] K["共享内存队列 Shared Memory Queues"] L["ARM 核心 ARM Cores"] M["网络引擎 Network Engine"] end B -.->|"策略决策"| H C -.->|"策略决策"| I D -.->|"策略决策"| J H --> K I --> K J --> K K --> L L --> M style A fill:#e3f2fd,stroke:#1976d2,stroke-width:2px,color:#000 style E fill:#e8f5e8,stroke:#388e3c,stroke-width:2px,color:#000 style L fill:#fff3e0,stroke:#f57c00,stroke-width:2px,color:#000 style M fill:#fce4ec,stroke:#c2185b,stroke-width:2px,color:#000 style G fill:#f3e5f5,stroke:#7b1fa2,stroke-width:3px,color:#000 style H fill:#f8f9fa,stroke:#495057,stroke-width:2px,color:#000 style I fill:#f8f9fa,stroke:#495057,stroke-width:2px,color:#000 style J fill:#f8f9fa,stroke:#495057,stroke-width:2px,color:#000 style K fill:#f8f9fa,stroke:#495057,stroke-width:2px,color:#000 style B fill:#f8f9fa,stroke:#495057,stroke-width:1px,color:#000 style C fill:#f8f9fa,stroke:#495057,stroke-width:1px,color:#000 style D fill:#f8f9fa,stroke:#495057,stroke-width:1px,color:#000 style F fill:#f8f9fa,stroke:#495057,stroke-width:1px,color:#000

Wave 架构通过策略-机制分离,将决策逻辑卸载到 SmartNIC,实现主机资源的高效利用

核心组件详解

Wave 代理模型

部署模式
单功能代理 强隔离
组合代理 协同优化
多代理联邦 分布式协作
生命周期管理
• 初始化:START_WAVE_AGENT()
• 运行:POLL_MESSAGES() + TXN_COMMIT()
• 终止:KILL_WAVE_AGENT()

通信抽象层

队列类型
消息队列 主机 → SmartNIC
决策队列 SmartNIC → 主机
状态队列 双向同步
底层机制
• MMIO:小数据低延迟
• DMA:大数据高吞吐
• 批处理:摊平 PCIe 开销

事务性 API 工作流程

sequenceDiagram participant Host as "主机 Host" participant Queue as "共享队列 Queue" participant Agent as "SmartNIC Agent" participant Core as "ARM Core" Host->>Queue: SEND_MESSAGES(q, events) Note right of Host: 批量发送事件 Queue->>Agent: POLL_MESSAGES(q) Agent->>Core: 策略计算 Core-->>Agent: 决策结果 Agent->>Queue: TXN_CREATE(q) Note left of Agent: 创建事务上下文 Agent->>Queue: TXNS_COMMIT(q, flags) Note left of Agent: 原子性提交 alt SEND_MSIX Queue->>Host: MSI-X 中断通知 Host->>Queue: POLL_TXNS(q) else SKIP_MSIX Host->>Queue: 轮询检查 end Host->>Queue: 应用决策 Host->>Queue: SET_TXNS_OUTCOMES() Queue->>Agent: POLL_TXNS_OUTCOMES() Note right of Agent: 获取执行结果 alt 事务成功 Agent->>Agent: 继续处理 else 事务失败 Agent->>Core: 重新计算策略 end

事务性 API 确保跨 PCIe 决策的原子性和一致性,支持灵活的通知机制

关键子系统实现与优化策略

内核线程调度器卸载

ghOSt 框架集成

内核侧
轻量级调度类,捕获调度事件
用户侧
调度代理,执行算法决策
Wave 扩展:跨 PCIe 通信 + 延迟隐藏

延迟保障技术

PCIe 传输 ~100 ns
Agent 轮询 ~0 ns
决策写回 ~100 ns
关键路径总计 ~600-1 μs

预暂存优化

优化前
上下文切换: 6,100-6,910 ns
优化后
3,320-4,040 ns
32%
吞吐量提升

预暂存算法工作流程

flowchart TD subgraph "SmartNIC Agent" A["扫描主机核心运行队列"] --> B{"识别空闲核心"} B -->|是| C["从就绪队列选择最优线程"] B -->|否| A C --> D["生成调度决策"] D --> E["写入核心预暂存槽"] E --> F["标记为 VALID"] F --> G{"就绪队列变化?"} G -->|是| H["使受影响槽位 INVALID"] G -->|否| A H --> I["重新计算决策"] I --> A end subgraph "主机核心" J["线程阻塞/让出"] --> K{"检查预暂存槽"} K -->|VALID| L["直接应用决策"] K -->|INVALID/空| M["发送紧急调度请求"] L --> N["发送消耗确认"] M --> O["等待实时响应"] O --> P["应用决策"] P --> Q["标记预暂存槽"] style A fill:#e3f2fd,stroke:#1976d2,stroke-width:2px,color:#000 style B fill:#fff3e0,stroke:#f57c00,stroke-width:2px,color:#000 style L fill:#e8f5e8,stroke:#388e3c,stroke-width:3px,color:#000 style M fill:#ffebee,stroke:#d32f2f,stroke-width:2px,color:#000 style J fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px,color:#000 style K fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px,color:#000 style N fill:#f8f9fa,stroke:#495057,stroke-width:1px,color:#000 style O fill:#f8f9fa,stroke:#495057,stroke-width:1px,color:#000 style P fill:#f8f9fa,stroke:#495057,stroke-width:1px,color:#000 style Q fill:#f8f9fa,stroke:#495057,stroke-width:1px,color:#000

预暂存通过主动为空闲核心生成调度决策,将有效延迟降至本地内存访问级别

内存管理器卸载

SOL 框架集成

机器学习驱动
• 页面热度预测
• 分层放置决策
• 预取策略优化
状态同步策略
初始全量同步 DMA, ~1ms
增量批次更新 每 100-500ms
访问位扫描 每 10-100ms

核心资源回收

传统部署
主机原生 SOL 消耗 16 个 x86 核心
Wave 卸载
SmartNIC 2 个 ARM 核心等效
16
核心净节省

RocksDB 内存优化效果

内存占用对比
主机原生 102 GiB
Wave 卸载 21.3 GiB
性能影响
中位 GET 延迟
10μs → 12μs
+20%
99% 尾延迟
25μs → 31μs
+24%
管理核心
16 → 0
100% 节省

通过精准热度预测和激进压缩策略,实现 79% 内存减少16 核心节省

RPC 协议栈卸载

控制平面协同

SmartNIC 端处理
• 网络数据包接收
• TCP/IP 协议解析
• RPC 帧定界
• 负载均衡决策
主机端处理
• 应用业务逻辑
• 响应生成

每核心队列

架构特点
• 无锁并行设计
• 单生产者单消费者
• 缓存友好访问
• 线性可扩展
8 核
净节省

负载均衡

全局可见性
• 网络到达率
• 核心负载状态
• 历史调度效果
联合优化
网络感知 + 调度感知

性能评估与实验分析

实验环境与方法论

硬件平台

Intel Mount Evans IPU
• 16× ARM Neoverse N1 核心
• 16 GB DDR4 内存
• 2× 100 GbE 网络接口
• PCIe 4.0 x16 主机接口
主机配置
AMD EPYC / Intel Xeon, 256 vCPU, 定制 Linux 内核

工作负载选择

RocksDB
内存 KV 存储,调度敏感
SOL + RocksDB
大内存,复杂访问模式
Stubby RPC
高频率小请求,多样负载

苹果对苹果比较原则

控制变量
相同硬件平台
仅改变软件部署位置
相同算法实现
源代码级相同
相同配置参数
队列深度、批大小等
相同测量方法
采样频率、统计处理
关键设计
传统比较陷阱
• 利用释放核心扩展工作负载
• 混淆架构开销与资源收益
• 不公平的性能对比
Wave 方法
• 释放核心保持空闲
• 纯粹测量架构开销
• 严格同条件比较
426ns
决策循环延迟

严格的同条件比较确保测量的纯粹是卸载架构本身的开销,而非额外资源带来的收益

核心性能指标

性能开销

1.1-7.4%
性能降解范围
最优场景 (FIFO) 1.1%
典型场景 3-5%
压力场景 5-7%
无优化基线 350%

资源回收

内存管理
16 核
RPC 处理
8 核
调度优化
4-6 核
综合潜力
24-30 核

VM 性能提升

+11.2%
综合性能提升
干扰消除
缓存污染减少
Turbo Boost 稳定

商业价值分析(10万台服务器规模)

核心节省
240-300万
等效核心节省
内存管理 ~160万核
RPC 处理 ~80万核
调度优化 ~50万核
经济价值
~7.4亿
美元/年节省
假设单价 $0.05/核/小时
利用率 70%
时间 8760 小时/年
ROI 分析
~15:1
投资回报比
SmartNIC 成本 ~$500/节点
部署规模 10万台
回收价值 ~$740/节点/年

基于 $0.05/核心/小时和 70% 利用率的保守估算,Wave 技术具有显著的商业价值

与现有方案的对比分析

同类 SmartNIC 卸载系统

Lynx (ASPLOS 2020)

核心目标
加速器中心架构
延迟要求 毫秒级
编程模型 专用 API
代码复用 需重写
Wave 优势
微秒级 + 透明迁移

iPipe (SIGCOMM 2019)

抽象层次
应用层任务并行
目标用户 应用开发者
透明性 需显式标注
优化目标 应用吞吐
Wave 优势
系统层 + 对应用透明

OSMOSIS (ATC 2024)

核心焦点
多租户虚拟化
隔离机制 完善
控制平面 未优化
延迟优化 有限
互补性
可集成增强隔离

SmartNIC 卸载方案对比

方案 目标层级 延迟要求 编程模型 代码修改 核心节省
Lynx 应用层 毫秒级 专用 API 100% 有限
iPipe 应用层 百微秒级 Actor 模型 50-80% 显著
OSMOSIS 系统层 微秒级 容器化 20-40% 显著
Wave 系统层 微秒级 透明兼容 <10% 16-30核

Wave 在微秒级延迟要求下实现了最高的核心节省和最低的代码修改量

内核旁路与用户空间系统

DPDK/SPDK 对比

目标层级
网络/存储数据平面
执行位置 主机用户空间
与内核关系 完全旁路
资源影响 消耗 CPU
延迟优化 轮询+零拷贝
Wave 演进
主机旁路 + 内核协作

gRPC 对比

主机 gRPC
• CPU 占用:高
• 延迟:~100μs+
• 瓶颈:主机 CPU
• 核心节省:0
Wave Stubby
• CPU 占用:极低
• 延迟:~10μs
• 瓶颈:网络带宽
• 核心节省:8 核

调度系统对比分析

系统 核心创新 执行位置 延迟特征 与 Wave 关系
Shinjuku 微秒级抢占式调度 主机内核 亚微秒 策略可移植
Caladan 协作式调度,高吞吐 主机内核 微秒级 架构理念一致
ghOSt Linux 用户空间调度框架 主机用户空间 微秒级 直接技术基础
Wave SmartNIC 卸载调度 SmartNIC 426ns 突破主机限制

Wave 的独特贡献在于使这些调度系统可运行在 SmartNIC,突破了"必须在主机 CPU 执行"的假设

Wave 的差异化优势

微秒级卸载

突破性
首次证明微秒级软件可实用卸载
优化前 350% 降解
优化后 1.1-7.4%
技术栈
• 预暂存延迟隐藏
• 写合并页表
• 事务性 API

代码复用

兼容性
Linux 完全兼容
修改量 < 10%
采纳门槛
生态系统
• ghOSt 兼容
• SOL 兼容
• Stubby 兼容

通用框架

部署模式
• 单功能代理
• 组合代理
• 多代理联邦
动态加载 ✓ 支持
多厂商支持 ✓ 支持
适应性
适应快速演进需求

实际应用场景与部署考量

云计算数据中心场景

虚拟化基础设施优化

GCE 验证成果
• KVM 管理程序 vCPU 调度卸载
• 虚拟设备控制平面迁移
• 实时迁移决策加速
综合效果
11.2% VM 性能提升
优化机制
• 减少 VM exit 频率
• 降低主机干扰
• 提升决策速度

容器与微服务

高密度部署
调度器卸载减少 per-container 开销
快速扩缩容
SmartNIC 快速决策加速启动
服务网格
RPC 控制平面卸载
无服务器
冷启动优化,预生成决策

多租户环境下的隔离机制

计算隔离
cgroup + 实时调度
✓ 已验证
内存隔离
进程地址空间 + IOMMU
✓ 已验证
网络隔离
SR-IOV + TC QoS
✓ 已验证
安全边界
跨租户状态访问
⚠ 需扩展

生产部署需结合 OSMOSIS 等多租户机制解决剩余安全挑战

关键业务负载适配

键值存储

RocksDB 优化
• 79% 内存减少
• 16 核心节省
• 1.1% 性能降解
适用扩展
• LevelDB, PebblesDB
• RocksDB 衍生系统
• 内存数据库 (Redis)

ML 推理服务

请求调度优化
模型缓存策略
异构协调调度
能效优化
优化方向
动态批处理 + 模型缓存 + 统一调度

高频交易

核心路径
适用性有限
辅助系统
• 风险检查
• 数据预处理
• 故障转移
延迟要求
核心路径 <100ns,Wave 426ns 仍有差距

部署挑战与解决方案

硬件差异

平台多样性
• Intel Mount Evans
• NVIDIA BlueField-3
• AMD Pensando
• Marvell OCTEON
适配策略
• 抽象硬件接口
• 平台特定优化
• 动态参数调优
兼容性
设计时已考虑多平台

软件生态

依赖挑战
• Linux 内核版本
• VFIO/IOMMU 要求
• 驱动兼容性
缓解策略
• 主流发行版预集成
• DKMS 打包
• 上游化关键补丁
ghOSt 进展
已开源,上游化中

运维复杂性

挑战
• 跨设备调试
• 性能分析
• 故障诊断
解决方案
• eBPF 扩展
• 统一追踪
• 自动化 watchdog
可观测性
结构化日志 + 灰度发布

未来研究方向与行业启示

技术演进路径

CXL 互联技术影响

CXL 特性
• 缓存一致性
• 亚微秒延迟 (~100-200ns)
• 内存池化
• 机架级交换
对 Wave 影响
• 简化状态同步
• 降低决策循环
• 减少数据拷贝
• 资源池化扩展
架构演进
异构 NUMA 架构,边界模糊化

横向扩展

单服务器多 SmartNIC
机架级资源池
故障容错架构
研究方向
• 分布式代理协调
• 全局状态一致性
• 快速故障恢复
协同效应
CXL 网络 + 多 SmartNIC 协同

机器学习驱动的自适应策略

在线学习
工作负载特征
实时适应
强化学习
多目标优化
延迟/吞吐/能效
神经网络加速
SmartNIC NPU
策略推理加速
自适应调优
动态参数
工作负载感知

机器学习技术将进一步提升 Wave 的自适应能力和优化效果

系统软件设计范式转变

数据中心 OS 重新思考

传统范式
单节点内核为中心
Wave 范式
策略分布,机制集中
未来演进
完全分布式 OS
核心转变
• 同构 → 异构原生
• 静态 → 动态可重构
• 软件定义基础设施

异构资源统一调度

扩展调度视角
• CPU/GPU/TPU/FPGA
• 网络拓扑感知
• 能耗-性能联合优化
技术挑战
• 统一抽象模型
• 异构性能建模
• 跨设备优化
Wave 基础
调度代理可扩展异构支持

边缘-云协同

资源受限 → 轻量代理
连接不稳 → 本地自治
延迟敏感 → 预生成决策
架构模式
• 本地自治 + 云端协同
• 功能裁剪 + 动态加载
• 离线优化 + 在线适应
Wave 扩展
代理模型天然支持边缘部署

产业生态影响

硬件设计趋势

当前状态
• 16 核 ARM
• 通用核心
• 数 GB 内存
• PCIe 4.0/5.0
未来方向
• 32-64 核 ARM
• + 专用 NPU/DSA
• 数十 GB 内存
• CXL 原生支持
Wave 影响
推动硬件向系统软件优化方向发展

云服务商策略

AWS Nitro 系统扩展
Google Wave 发源地,内部部署
Azure 类似框架开发
阿里云/腾讯云 技术跟进
竞争格局
Wave 推动行业向控制平面卸载发展

开源与标准化

当前状态
• Wave: 未官方开源
• ghOSt: 已开源
• 标准化: 早期
未来机会
• Wave 社区开源
• Linux 内核集成
• OCP/CXL 标准化
社区期待
业界期待 Wave 开源发布和技术标准化

结论与总结

核心贡献回顾

Wave 论文在系统软件架构领域做出了奠基性贡献,不仅证明了微秒级系统软件卸载的技术可行性,更为异构计算时代的操作系统设计开辟了全新方向。

理论突破

微秒级卸载可行性
打破"PCIe 延迟不可接受"的传统认知,证明通过系统性优化可实现实用卸载
策略-机制分离扩展
将经典操作系统原则扩展到跨设备边界,为异构计算提供设计模板

技术创新

延迟隐藏技术栈
预暂存、写合并页表、事务性 API 等系统性优化,将性能降解从 350% 降至 1.1%-7.4%
透明迁移架构
最小侵入式设计,保持 Linux 兼容性,降低技术采纳门槛

工程验证成果

16-24 核
主机核心节省
内存管理 + RPC + 调度优化
1.1-7.4%
性能降解
可接受的架构开销
11.2%
VM 性能提升
干扰消除效应

研究局限性与开放问题

当前局限性

验证范围
• 单硬件平台验证 (Intel Mount Evans)
• 单租户场景为主
• 有限的工作负载类型
技术假设
• FITO (Forward-In-Time-Only) 假设
• Watchdog 超时机制
• 静态优化配置
安全边界
多租户环境下的完整安全隔离方案

开放问题

泛化能力
• 多厂商 SmartNIC 的适配性
• 不同工作负载的通用性
• 大规模部署的稳定性
性能优化
• 自适应、工作负载感知的动态调优
• 更优雅的状态同步机制
• 快速故障恢复策略
学术争鸣
Paul Borrill 的 FITO 假设批判激发深入讨论,体现健康学术生态

对系统研究社区的长远价值

Wave 的研究方法论——将既有系统软件透明迁移到新执行环境,而非重新设计——为异构计算时代的系统演进提供了可借鉴的范式。其对 PCIe 延迟优化技术的深入探索,也为 CXL、UCle 等新兴互联技术的软件栈设计提供了技术储备。

深层启示

"硬件异构性不应迫使软件碎片化,而应通过精心设计的抽象和优化,实现'一次编写,到处运行'的愿景"
Wave 证明了这一愿景在系统软件层面的可行性,为未来的数据中心操作系统设计开辟了广阔空间。

未来方向

1
异构计算统一抽象
为多样化加速器提供一致编程模型
2
分布式系统软件
探索跨节点系统软件分解与协同
3
自适应系统优化
利用机器学习实现运行时动态调优
核心价值

Wave 不仅是一项技术创新,更是一种系统设计思维的创新。它告诉我们:面对硬件异构性的挑战,不应简单地重新设计软件,而应通过精心设计的抽象和优化,让既有软件能够透明地迁移到新环境中运行。这一理念将深刻影响未来数据中心操作系统的设计与发展。

参考文献与资源链接

论文原始来源

arXiv 预印本
版本历史: v1 (2024-08-30) 至 v4 (2025-07-26)
HTML 实验版: HTML 版本
ACM Digital Library
ISBN: 979-8-4007-1080-3/2025/03
ASPLOS 2025 正式出版

相关技术文献

调度系统
Shinjuku: 微秒级抢占式调度 (SOSP 2019)
Caladan: 协作式调度 (SOSP 2020)
SmartNIC 架构
Intel Mount Evans: Hot Chips 33, 2021
Intel Mount Morgan (E2200): Hot Chips 2025
OSMOSIS: 多租户 SmartNIC 支持 (ATC 2024)
互联技术
CXL Specification: CXL Consortium
PCIe Base Specification: PCI-SIG

相关链接与资源

会议与演示

开源代码

Wave 框架 (关注作者主页更新)
报告版本
2026-04-05 基于 arXiv v4、ACM DL 正式版、斯坦福大学 PDF 及相关批判性研究