如果说 Python 是最流行的语言,C 语言是最经典的语言,那么 Mojo 也有它的之最 —— 最年轻。Mojo 能够与 Python 无缝衔接,它的出世被称作为「几十年来最大的编程进步」。
图源:https://www.modular.com/blog/mojo-its-finally-here
自 5 月 Mojo 推出以来,已经有超过 12 万的开发者注册使用 Mojo Playground,并有超过 1.9 万的开发者在 Discord 和 GitHub 上积极讨论 Mojo。9 月 7 日,Modular 公司宣布 Mojo 可以在本地下载。Mojo 最初的目标是比 Python 快 35000 倍,近日该团队表示,Mojo 将动态与静态语言的优点结合起来,一举将性能提升达 Python 的 68000 倍。
Mojo
Mojo 是一种面向 AI 开发人员的新编程语言,它已经支持与任意 Python 代码无缝集成,并将成长为 Python 的超集。让我们回顾一下 Mojo 的「魅力」。
- 用一种语言编写所有内容:Mojo 可满足 AI 开发人员的需求,将 Python 的易用性与系统编程功能相结合。这使研究和部署团队可以在一个共同的代码库中工作,从而简化工作流程。
- 释放 Python 性能:Python 无处不在,但对于需要高性能或特殊硬件的任务来说,Python 并非最适合的工具。Mojo 可在 CPU 上实现高性能,并支持 GPU 和 ASIC 等特殊加速器,提供与 C++ 和 CUDA 不相上下的性能。
- 访问整个 Python 生态系统:Mojo 提供了与 Python 生态系统的完全互操作性,可以无缝使用 Python 库,同时利用 Mojo 的功能和性能优势。
Mojo 本地下载所提供的工具箱也可以让开发者更轻松地上手。首次发布的 Mojo SDK 包含了以下工具:
- Mojo 驱动程序:提供 shell(用于读取 - 评估 - 打印 - 循环或 REPL),允许构建和运行 Mojo 程序、打包 Mojo 模块、生成文档和格式化代码。
- Visual Studio Code (VS Code) 的扩展:支持语法高亮、代码自动补全等多种功能
- Jupyter 内核:支持构建和运行 Mojo 笔记本,包括 Python 代码
- 调试支持(即将推出):进入并检查运行中的 Mojo 程序,甚至可以混合使用 C++ 和 Mojo 堆栈帧
就在近日,一位 Mojo 社区成员将 Python 程序移植到 Mojo,效果如何?
llama.mojo
项目地址:https://github.com/tairov/llama2.mojo
随着 Mojo 的发布,这位 Mojo 社区成员受到启发,将在 Python 上移植的 llama2.py 移植到了 Mojo 上。它已经比 Karpathy 的 llama.c 快了 20%。而这并不是速度的终点,未来可能会更快。
llama2.py、llama2.c、llama2.mojo 的直观对比
这个版本利用了 Mojo 的 SIMD 和矢量化原语,将 Python 的性能提高了近 250 倍。即使在快速运行模式下,Mojo 版本的性能也比原来的 llama2.c 高出 15-20%。这展示了通过 Mojo 高级功能进行硬件级优化的潜力。这有助于大家了解在原有 llama2.c 硬件优化的基础上还能走多远。
性能数据对比
当然,这位成员也公布了操作系统与硬件细节。
看到这样的性能比较,网友们纷纷感慨,Mojo 的确展现了自己的「实力」。
但是也有网友提出了不一样的看法,或是另一个探索方向。
Llama.c 不是为了快速运行而调优的,而是为了理解一个文件中的代码。它 llama.cpp 比起来会是怎样?
Mojo 与他的背后「大佬」
Modular AI 于 2022 年创立,旨在重建全球 ML 基础设施,它由 LLVM 和 Swift 编程语言的联合创始人 Chris Lattner 创办,并在此前刚获得 1 亿美元融资。Chris Lattner 表示,融资将用于产品扩展、硬件支持和推动自研 AI 编程语言 Mojo 的进一步发展。
Chris Lattner
Chris Lattner 毕业于波特兰大学的计算机科学系,具有创建和领导多个知名大型项目的经验,其中包括 LLVM、Clang、MLIR 和 CIRCT 等编译器基础设施项目,他还带头创建了 Swift 编程语言。他曾在苹果的开发者工具部门任职,还担任过特斯拉副总裁。2017 年 8 月,他 任 Google Brain 团队领导了 TensorFlow 基础设施工作,包括一系列硬件支持(CPU、GPU、TPU),底层运行时和编程语言工作。
在 llama.mojo 的性能对比发布后,Chris Lattner 在推特上感慨到,这离 Mojo 可本地下载只隔了三天。