Mojo编程语言开放下载,声称比Python快68000倍

Mojo 是 Modular AI 公司开发的新编程语言,它结合了 Python 的易用性以及 C 语言的可移植性和性能,目标是使其成为 AI 研究和生产的理想选择。

Modular AI 是 Chris Lattner 和 Tim Davis 于 2022 年创立的公司,目标是自下而上重建全球 ML 基础设施。在这家新生的创业公司中,Chris Lattner 以 CEO 身份领导团队。

Chris Lattner 毕业于波特兰大学的计算机科学系,具有创建和领导多个知名大型项目的经验,其中包括 LLVM、Clang、MLIR 和 CIRCT 等编译器基础设施项目,他还带头创建了 Swift 编程语言。

从 2005 年 7 月到 2017 年 1 月间,他曾领导苹果的开发者工具部门,随后,曾短暂领导过特斯拉的自动驾驶团队。2017 年 8 月,Chris Lattner 在 Google Brain 团队领导了 TensorFlow 基础设施工作,包括一系列硬件支持(CPU、GPU、TPU),底层运行时和编程语言工作。

图片

今年 5 月,Modular AI 向外界公布了 Mojo。据称自 Mojo 亮相以来,超过 12 万开发者注册使用了 Mojo Playground,另外还有 19 万开发者参与 Discord 与 GitHub 讨论。Modular AI 公司更是在上月底宣布融资一亿美元。

图片

9 月 7 日,Modular AI 宣布 Mojo 正式开放下载,这意味着开发者可以在本地使用 Mojo 进行开发 —— 目前仅支持 Linux,官方表示会尽快推出 Mac 和 Windows 版本。

根据公告,官方提供了编译器和 Mojo SDK。其中 Mojo SDK 还包括全套开发者和 IDE 工具 ,用于轻松构建和迭代 Mojo 应用程序。

图片

下面是 Mojo SDK 包含的工具概览。

图片

  • mojo 驱动:提供 shell 用于 read-eval-print-loop 或 REPL 的 shell,支持构建和运行 Mojo 程序、打包 Mojo 模块(包括对 🔥 扩展的支持)、生成文档和格式化代码‍

  • VS Code 扩展:支持多项生产力功能,例如语法高亮显示、自动补全代码等 ‍

  • Jupyter kernel:支持构建和运行 Mojo notebooks,包括 Python 代码‍‍

  • 调试工具(即将推出):进入并检查正在运行的 Mojo 程序,甚至包括混合 C++ 和 Mojo 代码的框架

Mojo 刚发布时,官方介绍称它能够利用 MLIR,使 Mojo 开发者能够利用向量、线程和 AI 硬件单元。根据测试,Mojo 比 Python 快 35000 倍。

图片

最近开发团队刷新了自己的成绩,他们表示 Mojo 将动态和静态语言的优点结合在一起,性能可达到目前 Python 的 68000 倍。

图片

图片

▲ 好一个 Python++

这很难评,各位自行下载来玩一玩吧:https://developer.modular.com/

示例代码

跟 Python 一样,可以通过运行 mojo 命令在 REPL 中进行编程。下面是使用 Mojo 计算欧几里得距离的代码:

$ mojo
Welcome to Mojo! 🔥
Expressions are delimited by a blank line.
Type `:mojo help` for further assistance.
1> %%python
2. import numpy as np
3. n = 10000000
4. anp = np.random.rand(n)
5. bnp = np.random.rand(n)

6> from tensor import Tensor
7. let n: Int = 10000000
8. var a = Tensor[DType.float64](n)
9. var b = Tensor[DType.float64](n)
10. for i in range(n):
11.    a[i] = anp[i].to_float64()
12.    b[i] = bnp[i].to_float64()

13> from math import sqrt
14. def mojo_naive_dist(a: Tensor[DType.float64], b: Tensor[DType.float64]) -> Float64:
15.    var s: Float64 = 0.0
16.    n = a.num_elements()
17.    for i in range(n):
18.       dist = a[i] - b[i]
19.       s += dist*dist
20.    return sqrt(s)

23> fn mojo_fn_dist(a: Tensor[DType.float64], b: Tensor[DType.float64]) -> Float64:
24.    var s: Float64 = 0.0
25.    let n = a.num_elements()
26.    for i in range(n):
27.       let dist = a[i] - b[i]
28.       s += dist*dist
29.    return sqrt(s)
30.
31> let naive_dist = mojo_naive_dist(a, b)
32. let fn_dist = mojo_fn_dist(a, b)
33. print(fn_dist)
34. 
1290.8521425092235
35. print(naive_dist)
36. 
1290.8521425092235

此外,Mojo 支持构建静态编译的可执行文件,开发者可以在没有任何依赖项的情况下进行部署。例如直接从官方的示例 repo 中编译并运行 hello.🔥 程序,代码如下所示:

$ mojo build hello.🔥

$ ./hello
Hello Mojo 🔥!
9
6
3

$ ls -lGtranh hello*
-rw-r--r-- 1 0   817 Sep  3 23:59 hello.🔥

相关链接:

https://www.modular.com/blog/mojo-its-finally-here

https://twitter.com/Modular_AI/status/1699820936588107848 

  • 56
    点赞
  • 320
    收藏
    觉得还不错? 一键收藏
  • 27
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值