Mojo 編程語(yǔ)言開(kāi)放下載:專(zhuān)為 AI 設(shè)計(jì),號(hào)稱(chēng)比 Python 快 68000 倍

2023/9/8 15:50:35 來(lái)源:IT之家 作者:汪淼 責(zé)編:汪淼

IT之家 9 月 8 日消息,Mojo 是 Modular AI 公司開(kāi)發(fā)的一種編程語(yǔ)言,專(zhuān)門(mén)面向 AI  設(shè)計(jì),號(hào)稱(chēng)比 Python 快 68000 倍

官方今日宣布,Mojo 現(xiàn)已開(kāi)放本地下載運(yùn)行,除了編譯器之外,Mojo SDK 還包括一整套開(kāi)發(fā)者和 IDE 工具,可以用于構(gòu)建和迭代 Mojo 應(yīng)用。

Modular AI 表示,自 5 月 2 日推出 Mojo 編程語(yǔ)言以來(lái),已有超過(guò) 12 萬(wàn)開(kāi)發(fā)者注冊(cè)使用 Mojo Playground,超過(guò) 1.9 萬(wàn)開(kāi)發(fā)者在 Discord 和 GitHub 上積極討論 Mojo。

Mojo 現(xiàn)在可供本地下載,不過(guò)目前只有 Linux 系統(tǒng)版本,官方承諾會(huì)在即將發(fā)布的版本中添加 macOS 和 Windows 系統(tǒng)支持。

據(jù)介紹,Mojo 是一種用于計(jì)算的高性能“Python++”編程語(yǔ)言,面向 AI 開(kāi)發(fā)人員推出,隨著時(shí)間的推移,它將發(fā)展成為 Python 的超集。

目前,Mojo 已經(jīng)支持與任意 Python 代碼無(wú)縫集成,并具有可擴(kuò)展的編程模型來(lái)針對(duì)性能關(guān)鍵型系統(tǒng),包括人工智能中普遍存在的加速器(例如 GPU)。

此外,IT之家在博客中注意到,Mojo 號(hào)稱(chēng)將動(dòng)態(tài)和靜態(tài)語(yǔ)言的優(yōu)點(diǎn)結(jié)合在一起,性能可達(dá)到目前 Python 的 68,000 倍,還提供與 Python 生態(tài)系統(tǒng)的完全互操作性,從而可以無(wú)縫使用 Python 庫(kù)。

以下為使用 Mojo 計(jì)算歐幾里得距離的代碼:

$ 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 允許開(kāi)發(fā)者構(gòu)建靜態(tài)編譯的可執(zhí)行文件,可以在沒(méi)有任何依賴(lài)項(xiàng)的情況下進(jìn)行部署,例如:

$ 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 的官方擴(kuò)展,支持語(yǔ)法高亮、語(yǔ)句診斷、格式化、補(bǔ)全建議等。

廣告聲明:文內(nèi)含有的對(duì)外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。

相關(guān)文章

關(guān)鍵詞:Mojo,編程語(yǔ)言AI 語(yǔ)言,Python

軟媒旗下網(wǎng)站: IT之家 最會(huì)買(mǎi) - 返利返現(xiàn)優(yōu)惠券 iPhone之家 Win7之家 Win10之家 Win11之家

軟媒旗下軟件: 軟媒手機(jī)APP應(yīng)用 魔方 最會(huì)買(mǎi) 要知