@Modular: Mojo 拥有极简的样板代码、严格的类型系统以及编译时验证,所有这些都使其非常适合……

X AI KOLs Following 工具

摘要

Modular 发布了开源的 Mojo 智能体技能,帮助 AI 编码智能体生成正确且地道的 Mojo 代码,包括一个将 CUDA 内核代码翻译为 Mojo 的演示。Mojo 的极简样板代码、严格的类型系统和编译时验证使其适用于智能体工作流。

Mojo 拥有极简的样板代码、严格的类型系统以及编译时验证,所有这些都使其非常适合与 AI 编码智能体配合使用。我们通过发布一组 Mojo 智能体技能将其提升了一个层次,这些技能使代码翻译为 Mojo 变得轻而易举。完整文章 + CUDA 内核 Mojo 翻译演示:
查看原文
查看缓存全文

缓存时间: 2026/05/13 22:26

Mojo 样板代码最少、类型系统严格,并且支持编译时验证——所有这些特性使其非常适合与 AI 编程智能体配合使用。我们通过发布一套 Mojo 智能体技能(Agent Skills)将这一优势推向新高,让代码向 Mojo 的翻译变得轻而易举。完整文章 + CUDA 内核 Mojo 翻译演示如下:


通过 AI 智能体将代码翻译为 Mojo

来源:https://www.modular.com/blog/translating-to-mojo-via-ai-agents?utm_source=x&utm_campaign=mojo_agents

在 Modular,我们一直在尝试最新的智能体编程工具,将其中最好的整合到我们的工作流程中,并在此过程中收获颇多。我们意识到,Mojo 语言非常适合现代 AI 智能体的需求。

Mojo 语法熟悉且样板代码极少,因此智能体在读写时代码标记消耗更少。其类型系统和约束模型能在编译时捕获许多常见错误。与其让智能体消耗大量标记来构建一个可能无法运行的东西,然后在它出问题时花数小时调试,Mojo 可以提前发现问题,并向智能体提供清晰的错误信息。这种更紧密的反馈循环,是类型化语言在智能体工作流中越来越受青睐的原因之一。

Mojo 也不会在人体工程学和性能之间做取舍。同样整洁易读的代码可以定位到 Mojo 支持的全部硬件,包括 NVIDIA、AMD 和 Apple silicon GPU。

帮助 AI 智能体使用 Mojo

唯一的挑战是 Mojo 仍然是一门年轻的语言,LLM 还没有接受过大量 Mojo 代码的训练。这就是为什么我们创建了工具来帮助智能体从开始就生成正确且地道的 Mojo。首先,我们开源了在 Modular 编写的所有 Mojo 代码,以及我们用于 MAX 的所有 Python API。

更进一步,Mojo 现在有了可插入大多数 AI 编程助手的编程智能体技能。这些技能作为一个轻量级适配器,用于纠正 AI 模型可能产生的误解、过时模式和非地道的代码。

要开始使用这些技能,你可以在任何支持的编程智能体中用一条命令安装:

bash

npx skills add modular/skills

演示:将 CUDA 代码翻译为 Mojo

Mojo 目前的一个杀手级应用是能够编写高性能且可移植的 GPU 内核。然而,当今世界上大多数内核代码是用 CUDA 和 Triton 编写的(主要为 NVIDIA GPU)。使用我们的 AI 智能体技能,你可以快速将这些现有内核翻译为 Mojo。

让我们来看一个具体例子。

在这个例子中,我们将从 Szymon Ożóg 对 CUDA 中 Softmax 优化的探索 开始。将此仓库克隆到本地,以便你可以在家跟做:

bash

git clone [email protected]:SzymonOzog/FastSoftmax.git

在本教程中,我将使用 Claude Code + Opus 4.7 模型,但同样的步骤也适用于任何前沿编程智能体。

首先,让我们创建一个新的 Mojo 项目。我们的 new-modular-project 技能负责项目设置,并引导你选择合适的配置。

在你的 AI 智能体中启动新会话,并输入以下提示:

bash

I'd like to start a new Mojo project named mojo_softmax using a quick uv
environment and the nightly build of Mojo.

你的智能体应该会激活 new-modular-project 技能并为你处理项目设置:

bash

⏺ Skill(new-modular-project)                                                    
  ⎿  Successfully loaded skill                                                
                                                                                
⏺ All options specified. Creating a quick uv environment with nightly Mojo.
                                                                                
  Listed 1 directory (ctrl+o to expand)                                         
                                                                               
⏺ Bash(mkdir mojo_softmax && cd mojo_softmax && uv venv && uv pip install mojo  
      --index https://whl.modular.com/nightly/simple/ --prerelease allow)     
  ⎿  Running...

然后在新项目就绪时向你汇报:

bash

⏺ Bash(source .venv/bin/activate && mojo --version)                             
  ⎿  Mojo 0.26.3.0.dev2026042105 (cfe16c5b)                                     
                                                                                
⏺ Project mojo_softmax is set up at ./mojo_softmax with a quick uv venv and nightly Mojo  
  0.26.3.0.dev2026042105 installed.                                             
                                                                                
  To work in it:                                                                
  cd mojo_softmax                                                               
  source .venv/bin/activate

项目配置好 Mojo 编译器和工具后,我们可以开始将 CUDA 参考代码翻译为 Mojo。使用类似下面的提示,调整路径以匹配你克隆 FastSoftmax 的位置:

bash

In the directory ./FastSoftmax, there's a CUDA example of a fast softmax
I'd like to port to Mojo. When done, build it and test it to verify
that it works correctly.

不同智能体的输出可能有所不同,但在我的本地运行中,我看到了:

bash

⏺ I've read all the CUDA kernels. The file contains 10 progressive optimizations, with
 `softmax_kernel8` as the default - it uses online normalization (single-pass max+sum), float4
 vectorized loads, warp shuffles, and shared-memory cross-warp reduction.
 
 I'll port this to Mojo using shared-memory tree reductions (universal across GPU backends
 including Apple silicon) with coalesced strided access, matching the algorithm of kernels 3-8.

然后智能体将激活 mojo-syntax 和 mojo-gpu-fundamentals 技能来编写 fast_softmax.mojo 文件:

bash

⏺ Now I'll load the Mojo skills to guide the port.                              
                                                                                
⏺ Skill(mojo-gpu-fundamentals)                                                  
  ⎿  Successfully loaded skill                                                  
                                                                                
⏺ Skill(mojo-syntax)                                                            
  ⎿  Successfully loaded skill                            

⏺ Now I have enough understanding to write the Mojo port. I'll implement the    
  softmax kernel, plus a test harness that verifies against a CPU       
  reference.                                                                    
                                                                                
⏺ Write(fast_softmax.mojo)

完成时,智能体会构建并测试 Mojo 实现以验证其正确性:

bash

⏺ Bash(source .venv/bin/activate && mojo build fast_softmax.mojo 2>&1 | head -80)
  ⎿  (No output)                                          
                                  
⏺ Build succeeded. Running the test now.                      
                                                          
⏺ Bash(source .venv/bin/activate && ./fast_softmax 2>&1 | head -40)                  
  ⎿  row 0 sum = 0.9999997 drift from 1.0 = 2.9802322e-07 
     row 1 sum = 0.99999994 drift from 1.0 = 5.9604645e-08                      
     row 2 sum = 1.0000001 drift from 1.0 = 1.1920929e-07                       
     ... +8 lines (ctrl+o to expand)                        
                                                                                
⏺ The port is complete and verified working on the local GPU.

虽然你最终的项目格式可能与我不同,但你的 mojo_softmax 项目现在应该包含一个正确的 Mojo 内核及其测试(在此示例中为 fast_softmax.mojo)。

需要注意的一个关键点是,此示例的原始 CUDA 代码只能在 NVIDIA GPU 上运行,但新的 Mojo 版本可以在 NVIDIA、AMD 和 Apple silicon GPU 上运行,以及未来 Mojo 支持的其他加速器。这是为新硬件引导内核、算法甚至模型的一种非常快速的方式。

这个新翻译的 Mojo 版本在功能上应与源版本完全相同,因此你可以阅读代码以了解 CUDA 到 Mojo 的概念映射。下一步,你还可以尝试对此代码进行更多 Mojo 特有的优化,或针对你正在使用的确切硬件进行调整。这也不限于使用 CUDA 作为参考,同样的过程也适用于 Python 中的 Triton 内核或其他各种语言的代码。

加速你的 Mojo 之旅

如你所见,你可以快速将现有的 Python、CUDA 或其他来源的参考代码翻译为 Mojo。开箱即用,这甚至可以带来实际的性能提升。例如,当 Automatika Robotics 将一些用于自主导航的 CUDA 和 SYCL 内核翻译为 Mojo 时,他们立即看到了性能提升。用他们自己的话来说:

“相同的负载用于 EMOS kompass-core:5,001 条轨迹 × 1,000 个点,10 秒水平,4 个成本函数启用。

  • *kompass-core SYCL (AdaptiveCpp / CUDA): 16.358 ms (±0.12)
  • *kompass-mojo (Mojo 0.26.1 / CUDA): 15.973 ms (±0.09)

需要指出的是,我使用了 Claude 并配合官方技能来翻译我的 Mojo 内核,尚未对 Mojo 端进行任何优化工作。因此,初步结果令人印象深刻。”

Mojo 1.0 beta 1 已经发布。使用前沿 AI 编程智能体配合这些技能,是让你的旧 Mojo 项目为今年晚些时候 1.0 正式版做好准备的好方法。我们知道,LLM 受益于变化不大的语言,这也是我们为 1.0 稳定 Mojo 的原因之一。

事实上,我们从社区项目中随机抽取了五个样本,安装了这些技能,然后向 Claude Opus 4.7 发送提示:

我想将此项目更新到最新版本的 Mojo。

在全部五个案例中,智能体都正确地更新了整个项目,使其能够在最新的 Mojo 1.0 beta 1 上构建,无需其他帮助。

亲自尝试

这些 Mojo 编程技能现已可用。以下是三种使用方式:

加速你的 Python。 如果你的 Python 函数成为瓶颈,配备了 Mojo 技能的智能体可以将其翻译为 Mojo。将它指向慢速代码,它将生成初始 Mojo 移植代码,然后你可以集成、性能分析和调优。如果你想更进一步,同样的代码只需少量修改即可定位 GPU。

用 Mojo 替换 CUDA 或 Triton。 正如 softmax 演示所示,这些技能可以处理从 CUDA 到 Mojo 的结构性翻译。同样的过程也适用于 Triton 内核以及其他内核领域的特定语言。你将得到一个可移植的起点,可在 NVIDIA、AMD 和 Apple silicon GPU 上运行,而无需从头重写。

参与进来。 这些技能本身就是开源的。如果你遇到当前技能无法很好处理的模式,请提交 issue 或贡献修复。AI 智能体在现实中遇到的 Mojo 代码越多,它们就能写得越好。

使用 npx skills add modular/skills 安装这些技能,并在 Modular 论坛 上告诉我们你构建了什么。

相似文章

Mojo 1.0 Beta

Hacker News Top

Modular 宣布推出 Mojo 1.0 Beta,这是一种高性能编程语言,将 Python 的易用性与编译型语言的速度相结合,专为 AI 和系统编程设计。

模块化/模块化

GitHub Trending (daily)

Modular 平台提供了开源工具,用于 AI 开发和部署,具有 MAX 框架和 Mojo 语言。

Mojo 1.0

Hacker News Top

Modular announces the 1.0 release of the Mojo programming language, offering a stable foundation for developers building libraries, tools, and applications with enhanced features like Python-style lambdas, improved LSP, and memory safety diagnostics.