Mojo 是 Modular AI 公司開(kāi)發(fā)的新編程語(yǔ)言,它結(jié)合了 Python 的易用性以及 C 語(yǔ)言的可移植性和性能,目標(biāo)是使其成為 AI 研究和生產(chǎn)的理想選擇。 Modular AI 是 Chris Lattner 和 Tim Davis 于 2022 年創(chuàng)立的公司,目標(biāo)是自下而上重建全球 ML 基礎(chǔ)設(shè)施。在這家新生的創(chuàng)業(yè)公司中,Chris Lattner 以 CEO 身份領(lǐng)導(dǎo)團(tuán)隊(duì)。
Chris Lattner 畢業(yè)于波特蘭大學(xué)的計(jì)算機(jī)科學(xué)系,具有創(chuàng)建和領(lǐng)導(dǎo)多個(gè)知名大型項(xiàng)目的經(jīng)驗(yàn),其中包括 LLVM、Clang、MLIR 和 CIRCT 等編譯器基礎(chǔ)設(shè)施項(xiàng)目,他還帶頭創(chuàng)建了 Swift 編程語(yǔ)言。
從 2005 年 7 月到 2017 年 1 月間,他曾領(lǐng)導(dǎo)蘋果的開(kāi)發(fā)者工具部門,隨后,曾短暫領(lǐng)導(dǎo)過(guò)特斯拉的自動(dòng)駕駛團(tuán)隊(duì)。2017 年 8 月,Chris Lattner 在 Google Brain 團(tuán)隊(duì)領(lǐng)導(dǎo)了 TensorFlow 基礎(chǔ)設(shè)施工作,包括一系列硬件支持(CPU、GPU、TPU),底層運(yùn)行時(shí)和編程語(yǔ)言工作。
今年 5 月,Modular AI 向外界公布了 Mojo。據(jù)稱自 Mojo 亮相以來(lái),超過(guò) 12 萬(wàn)開(kāi)發(fā)者注冊(cè)使用了 Mojo Playground,另外還有 19 萬(wàn)開(kāi)發(fā)者參與 Discord 與 GitHub 討論。Modular AI 公司更是在上月底宣布融資 1 億美元。
9 月 7 日,Modular AI宣布Mojo正式開(kāi)放下載,這意味著開(kāi)發(fā)者可以在本地使用 Mojo 進(jìn)行開(kāi)發(fā) ——目前僅支持 Linux,官方表示會(huì)盡快推出 Mac 和 Windows 版本。根據(jù)公告,官方提供了編譯器和 Mojo SDK。其中 Mojo SDK 還包括全套開(kāi)發(fā)者和 IDE 工具 ,用于輕松構(gòu)建和迭代 Mojo 應(yīng)用程序。下面是 Mojo SDK 包含的工具概覽。
-
mojo 驅(qū)動(dòng):提供 shell 用于 read-eval-print-loop 或 REPL 的 shell,支持構(gòu)建和運(yùn)行 Mojo 程序、打包 Mojo 模塊(包括對(duì) 擴(kuò)展的支持)、生成文檔和格式化代碼?
-
VS Code 擴(kuò)展:支持多項(xiàng)生產(chǎn)力功能,例如語(yǔ)法高亮顯示、自動(dòng)補(bǔ)全代碼等 ?
-
Jupyter kernel:支持構(gòu)建和運(yùn)行 Mojo notebooks,包括 Python 代碼??
-
調(diào)試工具(即將推出):進(jìn)入并檢查正在運(yùn)行的 Mojo 程序,甚至包括混合 C++ 和 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 支持構(gòu)建靜態(tài)編譯的可執(zhí)行文件,開(kāi)發(fā)者可以在沒(méi)有任何依賴項(xiàng)的情況下進(jìn)行部署。例如直接從官方的示例 repo 中編譯并運(yùn)行 hello. 程序,代碼如下所示:
$ mojo build hello.
$ ./hello
Hello Mojo !
9
6
3
$ ls -lGtranh hello*
-rw-r--r-- 1 0 817 Sep 3 23:59 hello.
-
Linux
+關(guān)注
關(guān)注
87文章
11292瀏覽量
209328 -
C語(yǔ)言
+關(guān)注
關(guān)注
180文章
7604瀏覽量
136688 -
AI
+關(guān)注
關(guān)注
87文章
30728瀏覽量
268886 -
編程語(yǔ)言
+關(guān)注
關(guān)注
10文章
1942瀏覽量
34707 -
python
+關(guān)注
關(guān)注
56文章
4792瀏覽量
84627
原文標(biāo)題:Mojo編程語(yǔ)言開(kāi)放下載,聲稱比Python快68000倍
文章出處:【微信號(hào):OSC開(kāi)源社區(qū),微信公眾號(hào):OSC開(kāi)源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論