{主关键词}

A | 记者从日前召开的2026绿色算力(人工智能)大会上获悉,当前我国算力规模快速增长,算力设备向高能效方向升级,算力载体绿色化转型进展积极,算电协同从理念走向实践,算力网、词元经济、算力出海等新模式新业态成为新增长极。随着算电协同持续深化和国产大模型全面爆发,算力产业迎来新格局。中国信息通信研究院副院长敖立在大会上发布的《绿色算力发展研究报告(2026年)》显示,我国算力设备加速向高能效方向迭代升级。截至2026年6月底,我国智能算力规模达2185EFLOPS。算力从“建得快”转向“用得好”,从“拼规模”转向“拼能效”成为产业界的共识。在内蒙古和林格尔新区,华电全国首批算电协同示范项目一期已并网直供,每年向数据中心输送超7亿度绿电,绿电从几十公里外的风电场通过专线直接送到服务器。 作者 | Steef-Jan Wiggers 译者 | 平川 OpenAI 的工程师们花了数周时间,试图解释 Rockset 中那些神秘的崩溃问题。Rockset 是一款 C++ 数据基础设施服务,为 ChatGPT 的搜索和数据插件提供支持。中国联通内蒙古分公司机构产业服务事业群总经理陈晓娟介绍,企业与国电投、华电、内蒙古能源集团等电力企业合作,探索算电协同试点建设,结合柔性负载调节、弹性算力调度、跨域协同调度,实现“荷随源动”。大会同期发布的《“东数西算”枢纽节点绿色算力指数研究报告(2026年)》显示,算力设备绿色化相关指标综合年度增长达206.8%,规模扩张与效率提升协同并进。“算能协同相关指标年度增长达496.8%,是增长最快的维度。”清华大学经济管理学院副院长李东红表示,这说明“算力找电”正加速变成“电随算走”。此外,算用协同迎来新业态爆发。

B | 敖立介绍,截至2026年3月,我国日均词元调用量从2024年初约1000亿激增至约140万亿,两年增长超千倍。

C | 函数似乎会返回错误的内存地址,栈指针在执行过程中似乎会偏移 8 个字节。算力出海步伐加快,自贸试验区正探索制度创新。团队提出的每一种假设都面临着有力的反证。

D | 这个 Bug 似乎根本不可能存在。“算力正从基础设施向服务形态升级”,成为大会释放的明确信号。不过,绿色算力并非绿电加服务器那么简单。 他们原本以为是一个 Bug ,结果却发现是两个互不相关的 Bug ,它们只是很巧合地在同一时间被发现了。国家信息中心原党委书记、常务副主任杜平在会上给出三层理解:基础层是绿电与服务器的结合;技术层是软硬件的适配与协同交付;增值服务层是算力、电力、数据三大市场交叉融合的新业态。这一突破性发现并非来自对单个崩溃事件的深入排查,而是源于转向了他们所说的“流行病学调试”:构建一条管道,自动分析过去一年中生产环境的每一个核心转储文件,然后寻找整体规律,而不是对单个案例进行推断。 该团队让 ChatGPT 编写了一个脚本,用于下载每个核心文件的开头部分,提取寄存器数据,过滤已知的误报,并将每次崩溃标记为“返回空指针”、“栈对齐错误”或其他类型。“绿色算力是一个多因素协同发力的开放生态系统,需要超前谋划、统筹设计。”杜平说。他们将该脚本并行应用于过去一年中的所有 Rockset 核心转储文件。

E | “算力经济正从物理资源交付向以词元为代表的智能新路径发展,呈现由资源供给驱动向能力服务驱动转变的全新趋势。他们很快就发现了相关性。”国家数据局副局长夏冰在大会上表示,算力设施建设迎来了从资源扩张到系统增效的新阶段,下一步将聚焦东数西算工程、算力监测调度、算电协同等方面的重点工作,持续夯实算力工作,为人工智能发展提供支撑。面向未来,敖立建议从四方面发力:完善绿色算力体系,深化算电协同规划布局;强化绿色技术创新,探索柔性互动技术;壮大产业生态与配套服务;拓展应用场景,培育算力服务新业态。李东红提醒:“绿色算力没有统一模板,各地要立足自身禀赋,聚焦设备、载体、能源、应用找准主攻方向。原本从症状上看属于同类的问题,实际上对应两组特征完全不同的崩溃事件。

F | 这些因栈对齐错误导致的崩溃均源自同一个 Azure 区域,有明确的起始日期,而且从未出现在长期运行的节点上。

G | 团队追踪发现,这些崩溃源自一台物理主机,其 CPU 正在悄无声息地产生错误的结果。”(记者 安路蒙 王雪冰 郭倩)。它既没有过热,也没有抛出机器检查异常,而只是数学运算默默出了错。将该主机从服务中移除后,因栈对齐错误导致的崩溃便完全消失了。 在剔除硬件崩溃问题后,剩余的由“返回空指针”导致的崩溃问题便变得可控了。此前,团队曾排除了 C++ 异常展开的原因,因为他们认为自己找到了反例:在未使用异常的代码路径中发生了崩溃。但这些反例全都来自有硬件损坏的故障集群。一旦剔除了这些干扰因素,剩余的所有崩溃便都是发生在异常展开过程中了。 问题发生的根本原因是 GNU libunwind 的 _Ux86_64_setcontext 函数中有一个已经存在 18 年的竞争条件。在 C++ 异常展开过程中,libunwind 会在栈上合成一个 ucontext_t 结构体,填充所需的寄存器状态,然后调用 _Ux86_64_setcontext 将控制权转移给清理处理程序。问题在于:_Ux86_64_setcontext 在从旧结构体中读取指令指针的操作尚未完成之前,就将栈指针(%rsp)更新为指向新的栈帧。一旦 %rsp 发生变化,该结构体便不再属于活动栈的一部分,也不再受内核红区的保护。如果信号恰好在 %rsp 更新与 %rip 读取之间的这一时间窗口内到达,内核就会在该结构体之上构建其信号帧,指令指针遭到破坏,函数便会跳转到 NULL 或垃圾地址。 竞争窗口的宽度正好为一条指令。以现代处理器的时钟频率计算,这大约相当于 100 皮秒。在大多数程序中,这种情况根本不会被触发。OpenAI 的 Rockset 使用了 timer_create 函数,每隔几毫秒的 CPU 时间就发送一次 SIGUSR2 信号,为的是实现轻量级的按查询记账,这样产生的信号发送事件远多于传统的应用程序。正是这种高频的信号发送,将只在理论上可能发生的竞争状况转化成了实际生产环境中的崩溃。 该团队将一个修复方案和一个自包含的重现示例提交到了 GNU libunwind,并通过验证证实,其他展开器(如 libgcc)不存在这个问题。该修复方案通过重新排序指令,确保在更新 %rsp 之前先读取 %rip,从而彻底消除了这个时间窗口。 该团队对这一教训的总结值得全文引用: 最重要的步骤并非巧妙地解读汇编代码,也不是对细节的深入了解,而是构建一个高质量的数据集。如果没有这个数据集,我们就会把两种截然不同的现象混为一谈,并试图通过推理来理清这种混乱。

H | 一旦获得了准确且完整的全量数据,问题的结构便显而易见了。 如果你的团队正在排查难以解释的生产环境崩溃问题,请检查你们是否将多个 Bug 混为一谈。那些看似与所有假设都不相符的症状,实际上可能并不矛盾;它们可能与两个不同的假设相符,而你却无意中将它们混淆了。洞察问题结构的最快途径,并非对单个案例进行更深入的分析,而是获取涵盖所有故障案例的完整、带标签的数据。 这篇完整的工程技术博文包含了详细的栈内存示意图、存在漏洞的汇编指令,以及揭示出两种不同类型故障的崩溃率可视化图表。 https://www.infoq.com/news/2026/07/openai-libunwind-core-dumps/ 声明:本文由 InfoQ 翻译,未经许可禁止转载。
Current article:http://www.xuanliaruamibinmilangca.shop/e0s/lnvhmg.html
Published on:02:32:10
我的网站热门国内