top of page

Qualcomm 收购后,Modular 将 Mojo 开源,CUDA 锁定效应面临考验

Modular 于 8 月 18 日开放了 Mojo 编译器的源代码,距离发布 Mojo 1.0 仅一周,距 Qualcomm 完成收购仅三周。这一时机带来了明显的矛盾:一个承诺硬件独立性的语言,如今归属于全球最大的芯片设计商之一。

因此,该仓库在 GitHub 上的走红与一条可验证的事件链有关,而非一波无法解释的人气激增。Mojo 于 8 月 11 日达到 1.0 版本。随后,Modular 在旧金山举办的 ModCon 开发者大会期间发布了编译器源代码。

这一举动将长期承诺转化为可供审查的代码,同时也提高了 Modular 必须达到的标准。开发者如今可以检视编译器,但他们仍需要看到证据,证明其跨硬件模型能够在受控演示之外正常发挥作用。

CUDA 仍是现实中的参照标准。Nvidia 的软件平台背后拥有数十年的库、工具、文档和已部署应用积累。Modular 并不只是邀请开发者尝试另一门语言,而是在要求他们重新思考:谁控制着 AI 软件与实际运行硬件之间的这一层。

Modular 的 GitHub 仓库现已包含 Mojo 编译器

关键变化不在于 Modular 登上了 GitHub 热门,而在于该仓库如今公开了支撑 Mojo 可移植性主张的编译器。

Mojo 1.0 于 2026 年 8 月 11 日通过 Modular Platform 26.5 正式发布。Modular 将该版本描述为一项稳定基础,适用于需要经受未来语言更新考验的项目。

1.0 版本并不意味着所有规划中的语言功能都已完成。它确立了兼容性基线。Modular 表示,整个 1.x 系列的变更应主要增加能力,而非反复破坏现有代码。

此次发布之前经历了很长一段快速迭代期。开发者可以尝试 Mojo,但频繁的语法和库变动使大型项目的维护成本高昂。稳定的语言契约至少能解决这一问题——对于被标记为稳定的接口而言如此。

8 月 18 日发布编译器则回应了另一项担忧。在此之前,开发者可以检查 Mojo 环境的重要组成部分,却无法看到将其程序转换为可执行代码的完整机制。

公开仓库此前已经包含 Mojo 标准库、MAX kernels、模型实现、服务代码、示例和文档。尚未公开的编译器仍是核心的信任缺口。

这一缺口之所以重要,是因为编译器并非外围工具。它负责解释语言规则、检查类型和生命周期、应用转换,并为目标处理器生成代码。

Modular 的编译器源代码现位于 KGEN 目录下。在该项目中,KGEN 指“kernel generator”。

该目录包含解析器代码、编译器 pass、测试、文档、命令行工具和支持库。其公开文档描述了从 Mojo 源码、经由中间表示,到 LLVM IR 和机器码的路径。

该编译器基于 MLIR,即 Multi-Level Intermediate Representation。MLIR 是一种编译器框架,旨在在生成特定机器代码之前,以多个抽象层级表示程序。

Mojo 的解析器会生成源代码层级的 MLIR dialect,而非仅依赖传统的抽象语法树。后续 pass 将执行语义检查、生命周期分析、特化、优化,以及向 LLVM 的 lowering。

这一架构与 Modular 更大的承诺相关。要支持多种处理器,编译器必须保留有用信息,直到它对目标硬件有足够了解。

仓库文档还列出了编译器周边的命令行工具。公开的 mojo 命令可以将源代码编译为可执行文件和库。内部工具则为编译器开发公开各个转换和优化阶段。

开放这些代码为外部人士提供了几种新选择。编译器工程师可以检查语言规则如何变成机器代码。研究人员可以研究中间表示。开发者可以针对具体实现细节报告缺陷。

贡献者也可以通过常规的公开工作流提出修复方案。这不同于向封闭工具链提交反馈,然后等待其所有者回应。

许可证边界仍值得仔细阅读。该仓库说明,其贡献采用带 LLVM exceptions 的 Apache License 2.0。其他 Modular 产品和分发组件可能适用不同条款。

开发者应核实自己计划再分发的每个组件所适用的许可证。“开放仓库”并不自动意味着每个打包产品都拥有相同权利。

日期也需要精确看待。BettaFish 条目没有提供发布时间。相关事件发生在 8 月 11 日和 8 月 18 日,而热门榜单上的出现是在 8 月 20 日观察到的。

这一顺序解释了重新升温的关注。它并不能证明该仓库首次在 8 月 20 日走红,也不能把 GitHub 排名变成采用率指标。

为什么 Qualcomm 的所有权改变了这件事的含义

收购完成后立即将 Mojo 开源,将检验 Qualcomm 在自身拥有商业硬件利益时,是否仍会保持硬件中立。

Qualcomm 于 7 月 29 日宣布已完成收购。两家公司没有在该公告中披露交易的财务条款。

Modular 联合创始人 Chris Lattner 出任 Qualcomm 高级 AI 软件与平台执行副总裁。Mojo、MAX 和 Modular Cloud 保留了各自现有的产品身份。

Qualcomm 还表示,Modular 的开放、异构路线将继续推进。异构计算是指在同一计算环境中使用不同类型的处理器,包括 CPU、GPU、NPU 和定制加速器。

这一承诺符合 Qualcomm 的战略需求。该公司在手机、个人电脑、边缘系统、工业设备和数据中心基础设施等领域展开竞争。一个可移植的软件层可以让这些处理器更容易被采用。

硬件公司经常面临软件问题。即便芯片性能出色,若开发者在部署前必须重写应用、替换库并学习不熟悉的编程模型,它们仍难以推广。

Nvidia 通过 CUDA 解决了这一问题的大部分。它的领先地位并不只建立在 GPU 性能之上。CUDA 连接了编程工具、优化库、调试系统、教育材料和庞大的开发者社区。

随着 AI 布局扩展,Qualcomm 需要一套可信的软件回应。收购 Modular 为其带来了语言、编译器架构、推理框架、云服务和经验丰富的编译器团队。

不过,所有权也带来了显而易见的张力。Mojo 告诉开发者,他们应避免依赖单一硬件供应商;而 Qualcomm 现在控制着引导 Mojo 开发的公司。

发布编译器缓解了其中一部分矛盾。如果关键代码以宽松条款公开,开发者便能获得可见性,并对单方面的产品变化拥有一定保障。

他们可以检查目标平台的实现方式,也可以维护补丁。理论上,如果企业优先级发生变化,他们可以继续开发。

源代码可获得性并不能消除治理风险。Qualcomm 仍可以决定人员配置、路线图、发布优先级、测试资源,以及哪些处理器能获得一流支持。

公开的编译器仍可能在功能上由单一赞助方控制。这种模式存在于开源基础设施中:尽管许可证宽松,外部参与程度仍各不相同。

因此,下一项考验既关乎社会协作,也关乎技术。开发者必须能够影响决策、合入有意义的变更,并支持不在 Qualcomm 近期商业计划附近的目标平台。

Modular 在被收购前就拥有活跃的贡献者基础。其 Mojo 1.0 公告称,自标准库开放以来,近 200 名贡献者已提交超过 1,100 个 pull request。

该公司还报告称,这些贡献带来了超过 200,000 行代码变更。这些数据来自 Modular,应被视为公司自行报告的社区指标。

不过,它们仍说明了编译器访问权限的重要性。此前只能绕开封闭核心工作的贡献者,如今可以检视语言实现中大得多的一部分。

这一转变也遵循了分阶段开放的流程。Modular 先开放 Mojo 标准库,随后开放更多 MAX kernels、模型代码和 Python 接口。

编译器是最后一个在象征意义上最重要的组件。在 Qualcomm 旗下发布它,回应了收购会逆转该项目开源方向的直接担忧。

但这并未解决长期问题。一次发布只能证明 Qualcomm 在某一时刻履行了这项承诺。持续的中立开发,需要在多个产品周期中得到证据支持。

开发者应关注公告后的贡献活动。一个健康的项目展示的不应只是 stars、forks 和被复制的演示,而应包括经过审查的补丁、有文档记录的决策、可靠的发布,以及 Qualcomm 员工之外的参与。

Modular 与 CUDA 之争是一场可移植性竞赛

Modular 真正的对手不是另一门类 Python 语言,而是 CUDA 作为 GPU 高性能 AI 默认路径的地位。

Mojo 将类 Python 语法、系统编程功能和直接加速器控制结合在一起。这门语言面向的开发者,目前往往必须跨越数个技术边界,才能将 AI 模型投入生产。

研究团队可能先在 Python 和 PyTorch 中完成原型。随后,性能工程师会使用 C++、CUDA、Triton 或供应商专属库实现特定操作。

部署阶段还会增加图编译器、服务系统、容器镜像、设备运行时和监控。每一道边界都引入专门知识,也增加一处可能发生兼容性失败的环节。

Mojo 试图用一门语言覆盖其中更长的一段路径。Modular 的推理与模型框架 MAX 则为其提供更高层的服务和执行层。

Modular 表示,开发者可以通过熟悉的 Python 接口使用 MAX,并在需要自定义 kernels 或更底层控制时使用 Mojo。kernel 是在加速器上执行的专用函数。

这一结构意味着,Mojo 并不像其早期“Python 加性能”的描述所暗示的那样,是 Python 的直接替代品。Python 仍是许多应用和库的入口。

更明确的定位与硬件专属代码有关。Mojo kernel 的目标是表达计算,同时保留足够结构,让编译器能够为不同设备生成高效实现。

CUDA 采取了不同立场。它提供对 Nvidia GPU 的紧密访问,并受益于针对单一供应商架构进行的大量优化。

这种聚焦是优势,而不只是局限。开发者选择 CUDA,是因为其行为、库、工具和部署环境都已得到充分理解。

当抽象层掩盖了影响峰值性能的细节时,可移植性可能引入成本。不同加速器拥有不同的内存系统、执行模型、通信链路和支持的数据格式。

一种通用语言无法消除这些差异。它必须有选择地暴露这些差异,而不强迫每位开发者都成为每个目标平台的专家。

Mojo 的编译器架构正是为这种平衡而设计。它在多个 MLIR 阶段保留高层语义,然后将程序逐步降级为面向特定目标的代码。

其类型系统能够编码内存布局和编译期参数。TileTensor 等功能让开发者可以描述结构化的 GPU 数据布局,同时将部分正确性检查交由编译器完成。

这一机制很有前景,因为 AI 内核高度依赖内存行为。与在不同内存层级之间搬运数据相比,算术计算的成本可能很低。

然而,优雅的机制并不等于广泛的硬件支持。该项目必须提供优化实现、稳定驱动、有用的诊断信息,以及在真实机器上可复现的性能。

Modular 的平台仓库包含 Mojo 代码、Python 代码、MAX 内核、服务组件、模型流水线和示例。这种广度有助于开发者了解各部分如何交互。

但它也带来了范围风险。Modular 同时在构建语言、编译器、内核库、建模接口、推理服务器、云平台和硬件抽象层。

每一层都必须与其他层保持兼容。这种协调在奏效时可以简化用户体验,但也将责任集中在单一平台之内。

CUDA 的生态系统则将部分责任分散给 Nvidia、框架维护者、云服务商、库开发者和用户。这个生态很复杂,但已经深度嵌入行业。

因此,Modular 必须提供的不只是理论上的可移植性。迁移成本必须降到足够低,团队才有理由在生产系统中引入一种年轻的语言和框架。

最有说服力的案例将是:同一个模型和应用只需有限代码改动,便可跨多个厂商运行。在考虑调优投入后,性能也必须保持竞争力。

比较还应涵盖运维行为。团队关注冷启动、内存消耗、批处理、可观测性、故障恢复和部署工具。

MAX 围绕这些需求提供 OpenAI 兼容服务器和模型流水线。Modular 已扩展对 Nvidia、AMD、Apple silicon 及其他环境的支持,但不同功能的覆盖范围有所差异。

Qualcomm 可以扩展这一硬件范围。其处理器覆盖边缘端和客户端设备,而 Nvidia 在这些领域的控制力不如其在数据中心 GPU 软件中的影响力。

这使得 Modular 与 CUDA 的竞争不止关乎 GPU 内核语法。它关乎一套软件栈能否连接数据中心、笔记本电脑、手机和嵌入式系统,同时不牺牲有用的控制能力。

开源并不保证已具备生产就绪性

怀疑者的观点很简单:开发者现在可以检查编译器,但仍缺少多年兼容性、安全性和部署实践的证据。

Mojo 1.0 划定了一个版本边界。它并不意味着每个库接口都稳定、每项语言功能都已完成,或每个硬件目标都经过验证。

Modular 对尚未完成的领域一直很明确。其公布的 Mojo 路线图将成熟的异步编程模型和私有成员等功能列在初始里程碑之后。

这些缺口对不同工作负载的影响不同。一门专注于内核的语言,在成为通用系统语言的完整替代品之前,就可以达到实用价值。

风险出现在营销宣传从“适用于加速器编程”延伸到“适用于一切的一门语言”时。生产系统需要网络、并发、打包、安全工具、调试器和成熟的库。

Mojo 可以调用 Python 代码,这降低了眼下的生态压力。但这种互操作性也会让高度依赖现有库的应用继续保留 Python 的运行时和打包复杂性。

稳定性承诺还包含另一项限定。Modular 表示 1.x 开发应主要是增量式的,但经过谨慎管理的破坏性变更仍可能发生。

这对年轻语言来说很正常。不过,团队在将 1.0 视为全面兼容性保证前,仍应确认哪些接口被标记为稳定。

编译器成熟度也是另一项担忧。公开的问题追踪已记录内存使用、平台限制、诊断问题和行为变化。

开源让这些问题更容易调查,但不会让它们消失。短期内,更多外部测试反而可能提高可见的缺陷数量。

构建可复现性同样重要。开发者需要清晰的说明,以便从源码编译工具链,并产出与官方发布版本一致的构件。

一个仓库可以公开源码,却仍依赖内部构建假设、未公开的基础设施或不可用组件。公开的 KGEN 文档承认,Modular 的单体仓库与开源环境之间存在差异。

这是一项实际的采用测试。独立开发者应能构建、测试、修改和重新分发相关工具,而无需依赖私有系统。

治理同样仍不确定。该仓库接受贡献,但长期可信度取决于决策的制定方式。

语言提案需要透明讨论。重大变更需要迁移计划。硬件后端需要拥有足够权限和资源的维护者,以保持其与时俱进。

Qualcomm 的参与可能有所帮助,因为编译器和硬件支持需要大量投入。但它也可能使关注重点偏向符合 Qualcomm 战略的处理器。

评估这套技术栈的开发者应区分四个独立问题。

第一,这门语言是否足以表达目标工作负载?第二,编译器能否为预期硬件生成可靠且高效的代码?

第三,MAX 是否支持所需的模型和部署环境?第四,许可与治理模式是否符合组织的风险承受能力?

一个问题上的强劲结果无法替代其他问题。快速内核无法解决不受支持的部署拓扑。宽松的源码许可也不保证软件包稳定。

基准测试声明需要格外谨慎。Modular 发布了针对特定模型和设备的性能比较,但这些结果反映的是特定版本、配置和工作负载。

独立复现比孤立的峰值数字更重要。团队应在自己的流量模式下比较吞吐量、延迟、内存使用、启动时间和工程投入。

他们还应评估回退行为。跨硬件支持只有在明确标识不受支持的操作、数据类型或模型架构时才有价值。

错误信息必须帮助开发者找到这些边界。静默回退到更慢的执行路径,可能使名义上的兼容性产生误导。

短期内最稳妥的采用方式是有针对性的。团队可以先为一个范围明确的内核测试 Mojo,或针对受支持的模型使用 MAX,再考虑重构整个平台。

这种方式能够积累运维证据,而不会假定其生态已经追上 CUDA、PyTorch、C++ 或 Rust。

三个信号将表明 Modular 能否对 CUDA 施压

下一阶段将由独立编译器参与度、可信的跨厂商部署,以及 Qualcomm 收购后稳定的发布节奏决定。

第一个信号是未来数月内的编译器贡献活动。重大公告之后,仓库热度可能迅速上升,但持续参与更难人为制造。

观察外部贡献者能否构建 KGEN、提交变更,并获得实质性的审查。编译器修复和新目标平台工作将比单纯的文档编辑更重要。

最具说明性的变更将涉及解析、生命周期检查、MLIR pass、代码生成、调试和硬件后端等核心组件。

如果这些贡献来自多个组织,该项目的开源主张就会更有说服力。如果开发仍几乎完全由内部推动,源码虽是开放的,治理却仍将高度集中。

即使尚未广泛进入生产环境,这一信号也能增强 Mojo 的说服力。可信的编译器社区可改善延续性、测试覆盖和受支持思路的范围。

它也可能迅速削弱这一论点。困难的构建说明、缓慢的审查或不明确的贡献规则,都会表明代码公开并未形成实际可用的开发社区。

第二个信号是在竞争处理器上的可重复部署。Modular 需要公开案例,展示同一模型、容器或应用能够运行在不止一个硬件家族上。

这些案例应报告配置细节和端到端行为。内核微基准很有用,但无法体现服务开销或运维复杂性。

最有力的演示将包含 Nvidia 硬件,因为 CUDA 是既有基准。它们也应包括 AMD、Qualcomm、Apple 或其他加速器目标。

跨厂商结果不必赢下每一项基准。它需要证明,可移植性能在不带来不可接受的性能代价的前提下减少工程投入。

这种权衡因组织而异。购买多种硬件的公司,可能愿意接受适度的性能差异,以换取供应灵活性和更简单的维护。

只运行 Nvidia GPU 的团队则较少有迁移动机。CUDA 的专用化能力和既有生态仍可能更合适。

第三个信号是收购后的发布纪律。Mojo 1.0、编译器公开以及 Qualcomm 所有权变更都发生在数周之内。

该平台现在需要进入一个不那么戏剧化的阶段。开发者需要可预测的软件包、安全更新、兼容性政策,以及未解决功能的可见进展。

Modular 的 26.5 版本更明确地分离了 Mojo 和 MAX 的安装路径。它也表明将在后续版本中淘汰较旧的统一 modular 软件包。

这一打包变化可以厘清产品边界,但也会带来迁移工作,因此文档和兼容性行为将很重要。

未来发布应表明 Qualcomm 是否会增加投入,同时不会缩窄受支持硬件的叙事。持续推进 AMD、Apple、Nvidia 和开放加速器相关工作,将强化中立性。

若出现明显转向 Qualcomm 独有优势的情况,核心可移植性主张将被削弱。这会表明 Mojo 已成为由单一厂商控制、通向特定硬件产品组合的另一条路径。

开发者还应关注 Mojo 与 MAX 的关系。Mojo 可以成长为独立语言,而 MAX 则作为其主要的生产应用。

这种分离很重要,因为当一门语言的价值超越单一商业框架时,它就获得了更强的韧性。社区库、科学工具、嵌入式应用和独立运行时都能拓宽基础。

MAX 仍赋予 Mojo 一项许多新语言所没有的优势:由所有者运营的生产工作负载。Modular 表示其在整个 AI 技术栈中使用 Mojo,这迫使编译器面对真实的性能要求。

这种组合既带来机会,也带来依赖。MAX 可以验证 Mojo,但 Mojo 不应只在 MAX 内部才有用。

对于工程团队而言,眼下应采取的行动是评估,而不是全面迁移。选择一个硬件特定代码带来可衡量维护成本的工作负载。

记录现有的 CUDA、C++ 或 Triton 实现。然后从正确性、性能、构建复杂性、诊断能力、可移植性和维护投入等方面比较 Mojo。

保持实验可复现。将基准测试设置、编译器版本、设备细节和测试输入保存在可检索的工程知识库中。

8 月的事件让这项实验比此前更具可信度。Mojo 现已有 1.0 基线,其编译器实现也可供审查。

这些并不能证明 CUDA 已被替代。Nvidia 的优势仍深植于整个 AI 行业的工具、库、专业经验和已部署系统之中。

Modular 所做的,是开启了一场可信的竞争。Qualcomm 的资源可以为这项长期工作提供资金支持,而公开的编译器让开发者能够验证技术栈中更多部分。

决定性问题如今已很具体:Modular 能否将开源转化为独立参与能力,以及可重复的跨硬件成果?

面临实际加速器锁定的团队,应以一个接近生产环境的工作负载来检验这一说法。结果比任何 GitHub 排名都更能说明问题。

 
 

免费开始

一款本地优先的AI助手,具备个人知识管理功能

为了获得更好的人工智能体验,

remio 目前仅支持Windows 10+ (x64)M-Chip Mac

在你的大脑里添加一个搜索栏

Ask remio

记住一切

​无需整理

bottom of page