Mojo:AI 开发者专用编程语言
Modular 推出针对 AI 计算优化的编程语言 Mojo。有望改变 AI 开发的编程体验和性能天花板。
Modular 推出针对 AI 计算优化的编程语言 Mojo。有望改变 AI 开发的编程体验和性能天花板。
像 Python 一样编写,像 C++ 一样运行。
使用一种既易于使用、又具备内存安全性的语言,为从 CPU 到 GPU 的多种硬件编写高性能代码,同时避免被特定厂商锁定。
稳定版:1.0.0b2(6 月 18 日)|最新 nightly 版本:7 月 30 日
5 分钟掌握基础知识
了解接下来的规划
在 GitHub 上探索 Mojo
Mojo 汲取了现代编程语言中最优秀的部分,例如 Python 直观的语法、Rust 的内存安全性,以及 Zig 强大且直观的编译期元编程能力。
Mojo 从零开始构建,旨在为支撑现代 AI 系统的各种硬件提供最佳性能。作为一种编译型、静态类型语言,它同样非常适合 Agent 编程。
不必再在生产力和性能之间做取舍——Mojo 两者兼得。你可以从简单、熟悉的编程模式开始,再根据需要逐步增加复杂度。
Mojo 让每个人都能进行 GPU 编程,无需依赖特定厂商的库,也无需使用单独编译的代码。你终于可以使用编写 CPU 程序的同一种语言,编写高性能 GPU kernel。
def vector_add( a: TileTensor[float_dtype, type_of(layout), element_size=1, ...], b: TileTensor[float_dtype, type_of(layout), element_size=1, ...], result: TileTensor[ mut=True, float_dtype, type_of(layout), element_size=1, ... ],): var i = global_idx.x if i < layout.size(): result[i] = a[i] + b[i]
Mojo 原生支持与 Python 互操作,因此无需重写所有代码,就能消除现有代码中的性能瓶颈。你可以先从一个函数开始,再根据需要逐步扩展,将性能关键代码迁移到 Mojo。你的 Mojo 代码可以自然地导入 Python,并能一起打包分发。同样,你也可以在 Mojo 代码中导入 Python 生态系统里的库。
# SIMD-vectorized kernel squaring array elements in place.def mojo_square_array(array_obj: PythonObject) raises: comptime simd_width = simd_width_of[DType.int64]() var ptr = array_obj.ctypes.data.unsafe_get_as_pointer[DType.int64]() def pow[width: Int](i: Int) {mut ptr}: var elem = ptr.load[width=width](i) ptr.store[width=width](i, elem * elem) vectorize[simd_width](len(array_obj), pow)
Mojo 的元编程与运行时代码使用同一种语言,提供了一套直观的系统来最大化性能。你可以通过条件编译构建针对特定硬件的优化,通过编译期求值确保内存安全,消除代价高昂的运行时分支,等等——所有意图都清晰明确,并通过零成本抽象实现。
# Generic struct equality using compile-time reflection.def __eq__(self, other: Self) -> Bool: comptime r = reflect[Self]() comptime for i in range(r.field_names().size): comptime assert conforms_to(r.field_types()[i], Equatable) if r.field_ref[i](self) != r.field_ref[i](other): return False return True
Mojo 正在持续演进,目标是成为一种面向高性能 CPU、GPU 和加速器编程的通用语言。
实现核心 parser,定义内存类型、函数、struct、初始化器、参数约定,以及其他语言基础。
让 Mojo 成为一种强大且富有表现力的语言,用于在 CPU、GPU 和 ASIC 上编写高性能 kernel,同时帮助开发者无缝扩展 Python。
扩展 Mojo,使其支持更多应用层编程场景,并提供有保障的内存安全模型,以及开发者进行系统编程时所期望的更多抽象能力。
支持更多 Python 动态特性,例如 class、继承和无类型变量,从而最大限度地兼容 Python 代码。
更多详细信息,请参阅 Mojo roadmap。
Mojo 标准库已经在 GitHub 上完全开源,我们欢迎大家贡献!我们还计划在 2026 年开源 Mojo compiler。
我们致力于将 Mojo 的所有部分开源,但这门语言仍然非常年轻。我们相信,在这个阶段,一群愿景一致、紧密协作的工程师,会比社区驱动的开发模式推进得更快。
如果你想参与其中,欢迎加入我们的开发者社区!
稳定版:1.0.0b2(6 月 18 日)|最新 nightly 版本:7 月 30 日
通过构建生命游戏学习 Mojo。
直接在浏览器中解决代码问题,学习 Mojo。
通过解谜学习如何使用 Mojo 进行 GPU 编程。
提出问题,并及时了解 Mojo 的最新动态。
查看即将举行的活动、聚会、演讲、黑客松等内容。
浏览待处理的 issue,帮助完善文档,并分享你的项目。