查看原文
其他

Modular 准发布 Mojo 语言,一个具有 C 级速度的 Python 超集

21CTO 21CTO 2024-04-14

Modular 是一家新兴且高于平均水平的AI技术初创公司,它最近推出了一种名为 Mojo 的编程语言,旨在将 Python 的可用性与 C 语言的速度结合起来。

当前,有许多正在进行的项目可以使 Python 运行更快,例如Jax和最近的一个名为 Codon 的Python 编译器,还有像Julia这样的面向数据科学的替代型语言。

Mojo 通过其所谓的极速加速,将自己与其它 Python 增强型引擎分开来。由于它使用了硬件加速,在运行 Mandelbrot 等数学算法时比原生 Python 快 35,000 倍。

Mojo作者 Lattner

此语言的作者 Lattner 曾是 Apple、Google 和 Tesla 的资深研发人士,他与团队共同开发了 LLVM 编译器工具链,还共同创建了 MLIR 编译器基础设施,并带头开发了 Swift 编程语言。

他与蒂姆·戴维斯 (Tim Davis) 共同成为 Modular 的创始人,两个一起发起并创立了Modular公司。而戴维斯作为 Google ML 团队的前任领导者也带来了极其丰富的经验,他负责监督机器学习 API、编译器和运行时基础设施。

这家只成立一年的初创公司,本周接连宣布了两个关联项目:

第一个是 Mojo,这是一种建立在 Python 之上的编程语言,承诺具有 C 语言的高性能;

另一个是据称可移植、高性能的模块化推理引擎,可以在生产环境中以更低的成本运行 AI 模型,推理模型经过训练后的应用。

“Mojo 将研发人员喜爱的 Python 部分与需要使用 C、C++ 和 CUDA 的系统编程功能完美结合,”这家公司如此解释说。

“Mojo 建立在下一代编译器技术之上,当你向程序添加类型时,这项技术可显著提高性能,使你能够定义零成本抽象,受益于类似 Rust 的内存安全,并支持独特的自动调整和编译-时间元编程能力。”

通过利用MLIR,Mojo 代码可以访问各种 AI 调优硬件功能,例如 TensorCores 和 AMX 扩展。因此,对于某些类型的算法,它比普通 Python 要快得。在测评实例中如 AWS r7iz.metal-16xl 上运行 Mandelbrot 算法只需 0.03 秒,而 Python 3.10.9 需要运行 1,027 秒(约 17 分钟)。

当前状态

Mojo 语言仍在开发中,不过,目前有一个 Jupyter notebook可供开发者们试用。

当它真正发布时,将有望成为 Python 的超集,包括一个带有系统编程工具包的 Python 生态系统。在此种形式下,它可以运行任何 Python 程序。目前,虽然 Mojo 支持 Python 核心功能,包括 async/await、错误处理和可变参数,但仍需要做大量工作才能实现完全兼容。

在周四的公告中,Fast.ai 的创始人与数据科学家杰里米霍华德(Howard )说,“Mojo 可能是几十年来最大的编程语言进步。”

Howard 解释说,Mojo 试图解决 AI 的分叉现实:虽然由于生态系统的丰富性,AI 模型通常是用 Python 开发的,但 Python 程序员通常最终要将他们的代码连接到使用性能更高的语言(例如 C/C++ 和 Rust)的模块,而这种“双语”方法使得分析、调试、学习和部署机器学习应用程序变得非常困难。

“而使用 Mojo 的一个关键能力是,作为开发人员,你可以随时选择更快的‘模式’,通过使用‘fn’而不是‘def’来创建自己的函数,”Howard 如此解释说。“在此种模式下,你必须准确声明每个变量的类型,这样 Mojo 就可以创建优化的机器代码来实现你的功能。

“如果你使用'struct'而不是'class',你的属性将被紧密地打包到内存中,这样它们可以在数据结构中使用而无需四处寻找指针。这些特性可以像 C 语言一样速度飞快,现在 Python 程序员也可以访问它们了,而且只需要学习一点点新语法。”

Mojo 的另一个好处,是可以将代码编译成独立的、快速启动的二进制文件,从而在利用可用内核和加速同时亦能轻松部署。

目前,仍然有一些缺失的部分,比如包管理和构建系统,这是目前 Python 社区也一直在努力解决的问题。

Mojo 语言尚未获得正式开源许可,但预计最终会获得同意。

“Mojo 还没有正式完成——但它足够令人兴奋,它是由一个非常小的团队在很短的时间内创建的。这个语言显示了Lattner多年使用 Clang、LLVM 和 Swift 的深厚经验,使用精心构建基础的各种好处。”

相关资料:

https://www.fast.ai/posts/2023-05-03-mojo-launch.html

作者:场长


相关阅读:

继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存