Mojo 編程語言開放下載:專為 AI 設計,號稱比 Python 快 68000 倍
9 月 8 日消息,Mojo 是 Modular AI 公司開發的一種編程語言,專門面向 AI 設計,號稱比 Python 快 68000 倍。
官方今日宣布,Mojo 現已開放本地下載運行,除了編譯器之外,Mojo SDK 還包括一整套開發者和 IDE 工具,可以用于構建和迭代 Mojo 應用。
Modular AI 表示,自 5 月 2 日推出 Mojo 編程語言以來,已有超過 12 萬開發者注冊使用 Mojo Playground,超過 1.9 萬開發者在 Discord 和 GitHub 上積極討論 Mojo。
Mojo 現在可供本地下載,不過目前只有 Linux 系統版本,官方承諾會在即將發布的版本中添加 macOS 和 Windows 系統支持。
據介紹,Mojo 是一種用于計算的高性能“Python++”編程語言,面向 AI 開發人員推出,隨著時間的推移,它將發展成為 Python 的超集。
目前,Mojo 已經支持與任意 Python 代碼無縫集成,并具有可擴展的編程模型來針對性能關鍵型系統,包括人工智能中普遍存在的加速器(例如 GPU)。
此外,IT之家在博客中注意到,Mojo 號稱將動態和靜態語言的優點結合在一起,性能可達到目前 Python 的 68,000 倍,還提供與 Python 生態系統的完全互操作性,從而可以無縫使用 Python 庫。
以下為使用 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.821425092235
35. print(naive_dist)
36. 1290.8521425092235
此外,Mojo 允許開發者構建靜態編譯的可執行文件,可以在沒有任何依賴項的情況下進行部署,例如:
$ mojo build hello.??
$ ./hello
Hello Mojo ??!
9
6
3
$ ls -lGtranh hello*
-rw-r--r-- 1 0 817 Sep 3 23:59 hello.??
-rwxr-xr-x 1 0 22K Sep 3 23:59 hello
Mojo 還擁有 Visual Studio Marketplace 的官方擴展,支持語法高亮、語句診斷、格式化、補全建議等。