专为AI开发的新编程语言Mojo,号称比Python快35000倍

180次阅读
没有评论

共计 2580 个字符,预计需要花费 7 分钟才能阅读完成。

Swift 语言创始人 Chris Lattner 在 2021 年离开 Swift 核心团队。他在 2022 年 1 月时与 Tim Davis 共同创立 Modular AI,目标是开发人工智能系统开发平台,希望能从根本改进人工智能的程序开发性、可用性、可扩展性以及运算方式。前几天它们正式发布了新编程语言 Mojo,号称在在执行特定的演算法,Mojo 甚至能够比 Python 快 35,000 倍。

官方网站:https://www.modular.com/mojo

Mojo 官方手册:https://docs.modular.com/mojo

专为 AI 开发的新编程语言 Mojo,号称比 Python 快 35000 倍

Mojo

Mojo 官网提到,该语言同时拥有 Python 的可用性,以及 C 语言的高效能。由于 Mojo 专门为在 AI 硬件上编程而设计的,例如运行 CUDA 和其他加速器的 GPU,因此运算效能大幅超越 Python,在执行特定的演算法,Mojo 甚至能够比 Python 快 35,000 倍。

专为 AI 开发的新编程语言 Mojo,号称比 Python 快 35000 倍

Mojo 的设计目标是提供高效、易用、安全的 AI 开发环境。它支持 Python API,可以轻松地与现有的 Python 代码进行集成。此外,Mojo 还支持多线程和分布式计算,使得在大规模数据处理时可以更好地发挥其优势。Mojo 是 Modular AI 的一个正式的专案,所有 Modular 核心也都以 Mojo 编写,官方表示,这也是 Modular 模组化推理引擎高效能和高可移植性的原因。

Mojo 优劣

在 MLIR 上,Mojo 代码可以访问各种 AI 调优的硬件功能,例如 TensorCores 和 AMX 扩展。因此,对于某些特定算法类型,它的速度要远远超过原始 Python——它在 AWS r7iz.metal-16xl 上运行 Mandelbrot 算法只需 0.03 秒,而 Python 3.10.9 则需要 1027 秒(约 17 分钟)。

专为 AI 开发的新编程语言 Mojo,号称比 Python 快 35000 倍

一、优势

  • 高效的代码生成和执行速度:Mojo 的代码生成和执行速度非常高,这是它成为 AI 开发语言的重要原因之一。在大规模数据处理时,Mojo 可以比 Python 更快地完成计算,从而提高开发效率和性能。
  • 兼容 Python API:Mojo 支持 Python API,这意味着可以使用现有的 Python 代码并集成到 Mojo 中。这对于那些已经有大量 Python 代码库的开发人员来说,是一个非常有吸引力的特点。同时,Mojo 还支持 Python 的科学计算库,如 NumPy、SciPy 和 Pandas 等,使得开发人员可以轻松地迁移现有的 Python 项目。
  • 多线程和分布式计算支持:Mojo 支持多线程和分布式计算,这使得它可以在大规模数据处理时更好地发挥其优势。开发人员可以利用 Mojo 的多线程和分布式计算功能,使得计算更加并行化和高效。
  • 安全性和易用性:Mojo 在安全性和易用性方面也表现出色。Mojo 的类型系统非常强大,能够防止许多常见的编程错误。同时,Mojo 的语法简单、易学,使得开发人员可以更快地掌握它。

二、劣势

  • 还处于早期阶段,还没有完全兼容 Python 语法和运行时,也没有开源代码,因此缺乏社区的支持和反馈,也难以评估其真实的效果和潜力。
  • 它可能会遇到编程语言设计上的大坑,比如如何平衡 Python 的动态性和 C 的静态性,如何把 Rust 的所有权、生存期和借用检查融入 Python 的语法,如何处理部署时对 Python 包的依赖等
  • 它可能会面临激烈的竞争,因为 Python 生态已经有很多成熟的 AI 框架和编译器,比如 PyTorch、TensorFlow、Jax、Codon 等,它们也在不断地优化性能和扩展功能,mojo 语言要想脱颖而出并不容易。
  • 它可能会引起一些 Python 用户的抵触或反感,因为它可能会让他们觉得自己的原生语言不够好或者需要被取代,也可能会让他们觉得 mojo 语言太复杂或者不符合他们的习惯。

三、其他

Modular AI 提到,Python 虽然是一个强大的语言,也支持各种人工智能研究,但可扩展性是 Python 最终无法在生产中使用的主要问题,Python 难以被用在大型工作负载,也无法在边缘装置中顺畅执行,生产环境的人工智能终究还是需要使用 C ++ 以及 CUDA 等其他语言。这样的状况导致人工智能软件环境碎片化,降低人工智能应用从研究阶段,进入生产阶段的速度,进而减少了人工智能开发人员的生产力。

Mojo 建立在现代编译技术之上,其具有类型设计,大幅增加程序的执行速度,也让开发者能够定义零成本抽象,并且拥有类似 Rust 语言的记忆体安全性。特别的是,Mojo 还拥有 自动调优(Autotuning) 编译时元编程(Compile-Time Metaprogramming)功能。自动调优会在程序编译过程,自动优化程序性能,而编译时元编程则允许开发者在编译阶段生成代码,而不是在运行时生成代码。

受益于 Modular 的高效能 Runtime,且充分应用 MLIR(Multi-Level Intermediate Representation)技术,Mojo 能够直接操作各种 AI 硬件,像是存取执行线程、TensorCores 和 AMX 扩充等低阶硬件功能,官方提到,在执行像是 Mandelbrot 这类演算法,Mojo 比 Python 快 35,000 倍。

即便 Mojo 与 Python 有不少区别,但是官方称使用 Mojo 就像是 Python 一样。开发者可以在 Mojo 上使用 Python 的函式库,包括 Numpy、Pandas、Matplotlib,甚至是现有的其他 Python 代码。Mojo 非常灵活,开发者不需要重新编译框架或是编写任何 C ++ 或 CUDA 代码,就拥有执行核心融合(Kernel Fusion)、图重写(Graph Rewrites)以及形状函数(Shape Functions)等能力。

结语

人工智能非营利研究组织 Fast.ai 创办人,同时也是 Modular AI 顾问的 Jeremy Howard 解释,当 Mojo 最终完成时,将相当于 Python 的严格超集,他认为,Mojo 可能是近十年最大的编程语言进步。目前的 Mojo 仍有一定缺失,比如包管理和构建系统——这也是 Python 社区长久以来一直努力解决的需求。另外,Mojo 语言尚未指定开源许可,但相信只是时间问题。

(文中一些观点来源:知乎IThome

正文完
关注公众号获取最新教程
post-qrcode
 
AI小诸葛
版权声明:本站原创文章,由 AI小诸葛 2023-05-08发表,共计2580字。
转载说明:除特殊说明外本站文章皆由原创发布,请勿转载。