ASPLOS 2024启示:软硬件协同设计如何驱动AI与系统效能革命

发布时间:2026/6/3 7:24:17

ASPLOS 2024启示:软硬件协同设计如何驱动AI与系统效能革命 1. 从ASPLOS 2024看现代计算系统的协同进化微软研究团队的实践与洞见又到了一年一度的ASPLOS季。对于深耕计算机系统架构、编程语言和操作系统交叉领域的研究者和工程师来说这个会议就像一场“华山论剑”大家聚在一起看看过去一年里我们手里的“兵器”硬件和“招式”软件又有了哪些精进。今年的ASPLOS 2024在圣迭戈举行微软的研究团队不仅深度参与了会议的组织工作更有八篇重量级论文被接收覆盖了从AI基础设施到系统安全、资源调度的多个前沿方向。这背后反映出的一个核心趋势是面对规模空前、复杂度飙升、安全需求迫切的现代应用硬件和软件“单打独斗”的时代已经过去了协同设计与协同进化成了唯一的出路。我作为一个长期混迹在系统性能优化和基础设施搭建一线的从业者对这一点感触尤深。无论是为了支撑一个大语言模型推理服务还是保障一个云上租户的虚拟机既经济又稳定我们每天都在和各种“鸿沟”作斗争CPU和GPU之间的数据搬运瓶颈、内存带宽与计算能力的不匹配、安全机制带来的性能开销、以及如何从有限的物理资源里“榨”出更多的价值。微软这次在ASPLOS上展示的工作恰好为我们提供了几个非常具体的、可落地的解题思路。接下来我就结合自己的工程经验为大家深度拆解这几项研究看看它们是如何在硬件与软件的夹缝中找到那些关键的优化杠杆的。2. AI与深度学习基础设施的效能革命AI特别是大模型已经成为驱动算力需求增长的绝对主力。但算力不是凭空变出来的它受制于物理定律如功耗墙和经济学原理如成本。微软的研究没有停留在“堆更多卡”的层面而是深入到功耗管理和计算范式本身去寻找答案。2.1 POLCA为LLM云集群“精打细算”的功耗超额订阅框架《Characterizing Power Management Opportunities for LLMs in the Cloud》这篇论文直击一个非常现实的痛点GPU集群的扩张正越来越受限于数据中心的供电能力而不是芯片的供应。论文首先做了一项扎实的“摸底”工作详细刻画了LLM集群在实际运行中的功耗模式。核心发现与工程启示研究发现与训练任务持续“满负荷”运转不同LLM推理集群的平均功耗和峰值功耗之间存在显著的空闲区间。这是因为推理请求的到达是间歇性的GPU并非时刻处于满载计算状态。这就好比一条高速公路虽然设计时速是120公里但大部分时间车流量只达到了设计容量的60%-70%存在大量的“空闲车道”。这个发现是革命性的它意味着我们可以通过精细化的功耗管理在供电总量不变的情况下部署更多的GPU服务器即所谓的“功耗超额订阅”。POLCA框架的实操逻辑POLCA框架的核心思想是动态功率封顶。它不是简单粗暴地给每台服务器设定一个固定的低功耗上限而是基于集群级别的实时监控和预测进行智能调度。监控层持续收集每台服务器上运行的模型、批次大小、请求队列长度等指标实时估算其功耗需求。预测与决策层使用轻量级模型预测未来短时间内的集群总功耗需求。当预测到总需求可能超过物理供电上限时系统会优先对某些低优先级或可容忍轻微延迟的推理任务所在的服务器实施临时的、小幅度的功率封顶。执行与反馈层通过GPU驱动或底层管理接口如NVML动态调整GPU的功率限制。同时严密监控性能降级如请求延迟的增加确保服务质量SLA不被违反。注意功耗超额订阅的关键在于“度”的把握。封顶幅度过大或时机不当会导致请求延迟激增影响用户体验。POLCA的鲁棒性正体现在其基于真实负载特征的保守策略和快速回退机制上。在实际工程中还需要与业务层的调度器如Kubernetes深度集成确保被限流的任务能被正确识别和处理。论文中提到的30%的服务器密度提升这个数字对于动辄拥有数万张GPU的超大规模集群来说意味着巨大的成本节约和能效提升。这不仅仅是省电费更是在供电基础设施扩容困难的情况下实现算力规模增长的关键技术。2.2 PIM-DL当深度学习遇见存内计算一场计算范式的迁移《PIM-DL: Expanding the Applicability of Commodity DRAM-PIMs for Deep Learning》这项研究则从另一个更根本的角度挑战了AI计算的现状我们是否一定要依赖昂贵的、高功耗的矩阵乘法GEMM单元从计算到查找的范式转换PIM存内计算的概念并不新鲜它旨在减少数据在内存和处理器之间搬运的昂贵开销。但传统深度学习模型严重依赖GEMM操作而现有的商用DRAM-PIM硬件如三星的HBM-PIM其内置的计算单元能力较弱无法高效执行浮点矩阵乘。PIM-DL的巧妙之处在于它通过算法-系统协同设计绕开了这个障碍。其核心是将神经网络中大量的计算操作替换为基于查找表LUT的近似计算。简单来说对于某些算子如激活函数、小规模的向量运算我们可以预先计算好所有可能输入对应的输出结果保存在一个表格里。实际推理时只需要根据输入值去“查表”得到输出完全避免了复杂的算术运算。这就像你不需要每次都现场用公式计算“sin(30°)”而是直接查数学用表得到0.5。工程落地的挑战与解决然而将整个神经网络“查表化”面临巨大挑战精度损失LUT是离散的会引入量化误差。PIM-DL需要设计智能的量化、分段和插值策略在保证模型精度的前提下最大化可查表操作的比例。存储开销LUT本身需要占用内存。研究需要精心设计LUT的压缩和共享机制使其能够适配PIM设备有限的片上存储资源。计算图重构需要开发一个完整的编译器框架能够自动分析深度学习模型如PyTorch或TensorFlow定义的计算图识别出适合转换为LUT的算子子图并生成针对PIM硬件优化的执行代码。高达37倍的性能提升背后是这种软硬件协同优化的巨大潜力。它启示我们对于推理这类对极致精度要求稍低、但对吞吐和能效要求极高的场景脱离传统冯·诺依曼架构的束缚探索近似计算和新型计算范式可能比单纯追求更高的GPU峰值算力更有前途。这对于边缘计算、物联网设备上部署轻量级AI模型具有特别重要的意义。3. 系统基础设施的可靠性与效率基石AI的辉煌离不开底层系统基础设施的稳定与高效。微软在系统安全、存储性能和资源调度方面的研究正是在为上层应用夯实地基。3.1 Cornucopia Reloaded为CHERI能力架构补齐“时间安全”的最后一块拼图《Cornucopia Reloaded: Load Barriers for CHERI Heap Temporal Safety》这篇论文关注的是一个古老但至今仍肆虐的“幽灵”内存安全漏洞。微软自身就是CHERI能力架构的积极推动者如CHERIoT项目这项研究旨在强化其安全边界。空间安全与时间安全CHERI通过“能力”指针已经很好地解决了空间安全问题即防止指针越界访问。但时间安全——也就是“释放后使用”Use-After-Free, UAF漏洞——依然棘手。传统的方案如内存标记、垃圾回收要么开销大要么兼容性差。“加载屏障”的精妙设计Cornucopia Reloaded提出了一种基于“加载屏障”的轻量级方案。其原理可以这样理解每个内存对象如一个数据结构在分配时除了获得一个CHERI能力指针还会关联一个唯一的“世代号”。当这个对象被释放时它的世代号就会递增作废。在代码中每次通过指针加载读取数据之前会插入一个非常轻量的“屏障”检查验证当前指针所指向对象的世代号是否有效即未被释放。低开销的实现秘诀关键在于这个“屏障”检查被设计得极其高效并且与CHERI硬件能力检查紧密结合大部分情况下只需几条指令。论文表明这种方案能以远低于先前工作的开销实现对象粒度的堆内存时间安全。对于像浏览器引擎、操作系统内核、关键服务中间件这类对性能和安全性都有极高要求的软件来说这种可接受的性能代价换取确定性的内存安全是一笔非常划算的交易。实操心得在考虑引入此类安全机制时性能开销的评估必须基于真实的、有代表性的工作负载进行微基准测试和宏观测试。同时需要与编译器工具链深度集成实现屏障的自动插入并对开发者透明这样才能真正推动其被广泛采用。微软将这项研究与CHERIoT平台结合正是为了打造一个从硬件到语言、到运行时的一体化安全解决方案。3.2 AUDIBLE为“突发型”虚拟机设计的高效超售调度器《AUDIBLE: A Convolution-Based Resource Allocator for Oversubscribing Burstable Virtual Machines》研究的是一个非常“云原生”的问题如何提高云平台底层物理服务器的资源利用率同时不损害用户体验。突发型虚拟机的挑战突发型虚拟机BVM如Azure的B系列是云成本优化的重要工具。它允许用户在大部分时间使用较低的基准性能在需要时短暂“爆发”到更高的性能。传统的资源超售模型基于固定比例或中心极限定理在面对BVM这种高度动态、长尾分布的工作负载时要么过于保守导致利用率低下要么过于激进导致物理机过载违反服务器容量约定影响邻租户性能。AUDIBLE的非参数统计模型AUDIBLE的创新在于它放弃了传统方法对负载分布形状的假设如假设其服从正态分布而是采用了一种非参数的、基于卷积的统计模型来直接估计多个BVM负载叠加后的总资源需求分布。工作负载画像系统持续监控每个BVM的历史资源使用如CPU利用率时间序列。分布估计使用核密度估计等方法为每个VM构建其未来短时间内资源需求的概率分布。卷积聚合通过卷积运算精确计算出将多个VM放置在同一台物理机上后总负载的概率分布。这能准确预测总负载超过物理机容量的风险概率。决策优化基于这个风险概率预测AUDIBLE可以做出更精准的装箱决策在保证违反容量约束的概率低于一个极低阈值如0.001%的前提下最大化服务器的平均利用率。这种方法轻量且与负载特征无关能自适应各种奇异的负载模式这正是处理真实云工作负载所必需的。它让云提供商能够在提供稳定性能承诺的同时显著提升硬件资源的利用效率最终降低所有用户的整体成本。3.3 CrossPrefetch为现代存储设备量身定制的I/O预取加速器《CrossPrefetch: Accelerating I/O Prefetching for Modern Storage》关注的是存储栈的性能。随着NVMe SSD和持久内存PMem的普及存储延迟大大降低但软件栈的开销如操作系统页缓存、文件系统相对而言变得更为突出。传统预取的局限操作系统内核有传统的预取算法但它们主要针对机械硬盘的访问模式设计对于SSD的随机访问特性以及现代应用如数据库、大数据分析复杂的访问模式效果不佳甚至可能因为错误的预取而污染缓存降低性能。CrossPrefetch的“跨界”协作这项研究提出在用户态库中实现智能预取并与内核协同工作。其核心思想是许多应用程序如LevelDB、RocksDB自身最清楚其数据访问模式。CrossPrefetch提供了一个API允许应用开发者以“提示”的方式将其对未来数据访问的预测告知存储系统。应用侧提示应用在读取某个数据块时可以同时发出一个异步的预取提示指明接下来很可能访问的相关数据块范围。用户态库处理CrossPrefetch库会收集这些提示进行聚合和去重并采用更高效的算法考虑到SSD的并行特性生成最优的预取请求序列。与内核协同这些优化后的预取请求再提交给内核的异步I/O接口从而绕过了内核通用预取逻辑的局限性。这种“应用感知”的预取机制能够显著减少I/O等待时间尤其适合那些具有可预测访问模式的关键应用。它体现了另一个层面的软硬件协同在存储设备硬件性能飞速发展的同时软件栈也需要更精细、更贴近业务的设计来释放硬件的全部潜力。4. 研究到工程的跨越常见挑战与应对策略看到这些前沿研究很多工程师可能会觉得“高大上”但离实际生产环境有点远。事实上将这些思想落地会遇到一系列非常具体的挑战。结合我的经验这里梳理几个关键点和应对思路。4.1 新硬件特性的采纳与适配无论是PIM还是CHERI新硬件的引入从来都不是简单的“即插即用”。挑战一生态系统缺失。像PIM-DL这样的框架需要全新的编译器工具链、运行时库甚至编程模型。早期采纳者需要投入大量精力进行移植和适配。应对策略采取“增量式”路径。首先瞄准一个特定的、高回报的场景如特定模型的推理服务为其打造端到端的垂直解决方案。验证价值后再逐步扩大应用范围并推动硬件厂商和开源社区完善上层生态。挑战二性能调优的复杂性。新硬件往往有独特的性能特性如不同的内存层级、特殊的指令集。获得论文中的理想加速比需要深入的性能分析和精细调优。应对策略建立详尽的性能剖析和基准测试套件。不仅要看端到端的吞吐和延迟更要使用硬件性能计数器PMC分析瓶颈是在计算、内存访问还是数据搬运上。与硬件厂商的工程师保持紧密沟通获取第一手的优化建议。4.2 资源超售与性能隔离的平衡像POLCA和AUDIBLE这类资源超售技术其核心风险在于“干扰”。挑战噪声邻居问题。在共享的物理资源CPU缓存、内存带宽、网络、甚至功耗上一个高负载的租户可能会严重影响其他租户的性能导致SLA违约。应对策略超售必须与强化的性能隔离机制结合使用。硬件层面充分利用现代CPU和平台提供的隔离技术如Intel RDT资源调配技术中的缓存分配CAT和内存带宽监控与分配MBA以及IOMMU对I/O设备的隔离。软件层面在调度器层面实施更严格的配额和权重控制。对于POLCA可以结合GPU MIG多实例GPU技术将物理GPU划分为多个硬件隔离的实例再进行功耗封顶从而将干扰控制在实例内部。监控与告警部署细粒度的性能监控不仅监控物理资源使用率更要监控每个租户的SLA指标如请求延迟的P99值。一旦检测到干扰调度系统需要能快速做出反应如迁移负载或动态调整资源分配。4.3 安全与性能的永恒博弈Cornucopia Reloaded为代表的内存安全方案是“安全左移”的典范但性能开销始终是绕不开的话题。挑战如何让开发者愿意为安全买单即使开销很低如果需要开发者大量修改代码或改变编程习惯推广起来也会困难重重。应对策略透明化集成最好的安全机制是对开发者透明的。应将其作为编译器或运行时的一个可选特性通过编译标志如-fmemory-safety一键开启无需或只需极少代码改动。分层部署并非所有代码都需要同等级别的安全保护。可以对安全关键模块如网络协议解析器、权限校验代码强制启用对性能关键且受攻击面较小的模块如数学计算内核则允许选择性关闭。硬件加速长远来看像CHERI这样的硬件辅助安全方案是根本出路。将安全检查卸载到硬件能最大程度降低性能损耗。产业界需要共同推动这类硬件特性的标准化和普及。4.4 从实验数据到生产部署的鸿沟学术论文中的实验环境通常是纯净的、可控的而生产环境是混乱的、多变的。挑战真实工作负载的复杂性。论文中用于评估的负载trace或模型可能无法覆盖生产环境中所有极端情况如流量毛刺、硬件故障、软件版本差异。应对策略采用“影子部署”和“金丝雀发布”。影子部署在生产环境中将新的调度策略如AUDIBLE或优化框架如PIM-DL以“只记录、不生效”的模式运行一段时间。收集其决策与实际负载、性能指标的对应关系与现有系统进行对比分析验证其在复杂真实场景下的有效性。金丝雀发布在通过影子部署验证后先在一小部分、非核心的业务负载上实际启用新技术。密切监控所有指标尤其是长尾延迟P999和错误率。只有在小规模范围内稳定运行足够长时间后才逐步扩大部署范围。5. 构建面向未来的协同设计思维纵观微软在ASPLOS 2024上的这些工作我们可以清晰地看到一条主线打破硬件和软件之间的壁垒进行跨层、跨领域的协同优化。这不仅仅是研究者的课题更是每一位系统架构师和工程师需要具备的思维模式。对硬件工程师的启示设计硬件时需要向上看理解主流软件栈如深度学习框架、云原生编排系统的需求和瓶颈。提供更灵活、更可观测、更易控制的硬件接口如更细粒度的功耗管理单元、性能监控计数器而不是一个简单的“黑盒”加速器。对软件工程师的启示编写软件时需要向下看了解底层硬件CPU微架构、内存层次、存储设备的特性。避免写出硬件不友好的代码模式如不可预测的分支、随机的内存访问。积极拥抱能够表达更高层意图的编程模型和API如为存储预取提供提示让运行时系统能进行更智能的优化。对架构师的启示在规划系统时需要建立“全栈视角”。从应用特性出发推导出对计算、存储、网络的需求再据此选择或设计合适的硬件和软件组件。例如如果确定业务以AI推理为主那么POLCA所揭示的功耗特性就应该纳入数据中心电力规划和集群调度器的设计考量。我个人在参与云原生基础设施建设的项目中一个深刻的体会是最持久的性能提升和成本优化往往来自于那些将硬件特性和软件逻辑紧密结合起来的设计。比如当我们了解到新一代CPU的某个新指令可以加速加密操作时我们会立刻推动基础库的优化当我们发现某种SSD的并发访问特性时我们会调整数据库的刷盘和压缩策略。ASPLOS这样的会议正是为我们提供了窥见未来硬件可能性、并提前思考软件如何适配的窗口。这些研究或许不会明天就直接出现在你的代码库里但它们指出的方向——协同设计、跨层优化、在安全、效率、规模之间寻找新的平衡点——将是未来十年构建高效、可靠、安全计算系统的核心逻辑。保持关注保持思考并在自己的领域内尝试实践这种思维是我们从这些前沿研究中能获得的最大价值。

相关新闻