llama2.mojo比llama2.c快20%,最年輕的語言Mojo驚艷開發(fā)者社區(qū)
如果說 Python 是最流行的語言,C 語言是最經(jīng)典的語言,那么 Mojo 也有它的之最 —— 最年輕。Mojo 能夠與 Python 無縫銜接,它的出世被稱作為「幾十年來最大的編程進(jìn)步」。

圖源:https://www.modular.com/blog/mojo-its-finally-here
自 5 月 Mojo 推出以來,已經(jīng)有超過 12 萬的開發(fā)者注冊(cè)使用 Mojo Playground,并有超過 1.9 萬的開發(fā)者在 Discord 和 GitHub 上積極討論 Mojo。9 月 7 日,Modular 公司宣布 Mojo 可以在本地下載。Mojo 最初的目標(biāo)是比 Python 快 35000 倍,近日該團(tuán)隊(duì)表示,Mojo 將動(dòng)態(tài)與靜態(tài)語言的優(yōu)點(diǎn)結(jié)合起來,一舉將性能提升達(dá) Python 的 68000 倍。
Mojo
Mojo 是一種面向 AI 開發(fā)人員的新編程語言,它已經(jīng)支持與任意 Python 代碼無縫集成,并將成長(zhǎng)為 Python 的超集。讓我們回顧一下 Mojo 的「魅力」。

- 用一種語言編寫所有內(nèi)容:Mojo 可滿足 AI 開發(fā)人員的需求,將 Python 的易用性與系統(tǒng)編程功能相結(jié)合。這使研究和部署團(tuán)隊(duì)可以在一個(gè)共同的代碼庫(kù)中工作,從而簡(jiǎn)化工作流程。
- 釋放 Python 性能:Python 無處不在,但對(duì)于需要高性能或特殊硬件的任務(wù)來說,Python 并非最適合的工具。Mojo 可在 CPU 上實(shí)現(xiàn)高性能,并支持 GPU 和 ASIC 等特殊加速器,提供與 C++ 和 CUDA 不相上下的性能。
- 訪問整個(gè) Python 生態(tài)系統(tǒng):Mojo 提供了與 Python 生態(tài)系統(tǒng)的完全互操作性,可以無縫使用 Python 庫(kù),同時(shí)利用 Mojo 的功能和性能優(yōu)勢(shì)。
Mojo 本地下載所提供的工具箱也可以讓開發(fā)者更輕松地上手。首次發(fā)布的 Mojo SDK 包含了以下工具:
- Mojo 驅(qū)動(dòng)程序:提供 shell(用于讀取 - 評(píng)估 - 打印 - 循環(huán)或 REPL),允許構(gòu)建和運(yùn)行 Mojo 程序、打包 Mojo 模塊、生成文檔和格式化代碼。
- Visual Studio Code (VS Code) 的擴(kuò)展:支持語法高亮、代碼自動(dòng)補(bǔ)全等多種功能
- Jupyter 內(nèi)核:支持構(gòu)建和運(yùn)行 Mojo 筆記本,包括 Python 代碼
- 調(diào)試支持(即將推出):進(jìn)入并檢查運(yùn)行中的 Mojo 程序,甚至可以混合使用 C++ 和 Mojo 堆棧幀
就在近日,一位 Mojo 社區(qū)成員將 Python 程序移植到 Mojo,效果如何?
llama.mojo

項(xiàng)目地址:https://github.com/tairov/llama2.mojo
隨著 Mojo 的發(fā)布,這位 Mojo 社區(qū)成員受到啟發(fā),將在 Python 上移植的 llama2.py 移植到了 Mojo 上。它已經(jīng)比 Karpathy 的 llama.c 快了 20%。而這并不是速度的終點(diǎn),未來可能會(huì)更快。

llama2.py、llama2.c、llama2.mojo 的直觀對(duì)比
這個(gè)版本利用了 Mojo 的 SIMD 和矢量化原語,將 Python 的性能提高了近 250 倍。即使在快速運(yùn)行模式下,Mojo 版本的性能也比原來的 llama2.c 高出 15-20%。這展示了通過 Mojo 高級(jí)功能進(jìn)行硬件級(jí)優(yōu)化的潛力。這有助于大家了解在原有 llama2.c 硬件優(yōu)化的基礎(chǔ)上還能走多遠(yuǎn)。

性能數(shù)據(jù)對(duì)比
當(dāng)然,這位成員也公布了操作系統(tǒng)與硬件細(xì)節(jié)。

看到這樣的性能比較,網(wǎng)友們紛紛感慨,Mojo 的確展現(xiàn)了自己的「實(shí)力」。


但是也有網(wǎng)友提出了不一樣的看法,或是另一個(gè)探索方向。

Llama.c 不是為了快速運(yùn)行而調(diào)優(yōu)的,而是為了理解一個(gè)文件中的代碼。它 llama.cpp 比起來會(huì)是怎樣?
Mojo 與他的背后「大佬」
Modular AI 于 2022 年創(chuàng)立,旨在重建全球 ML 基礎(chǔ)設(shè)施,它由 LLVM 和 Swift 編程語言的聯(lián)合創(chuàng)始人 Chris Lattner 創(chuàng)辦,并在此前剛獲得 1 億美元融資。Chris Lattner 表示,融資將用于產(chǎn)品擴(kuò)展、硬件支持和推動(dòng)自研 AI 編程語言 Mojo 的進(jìn)一步發(fā)展。

Chris Lattner
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 編程語言。他曾在蘋果的開發(fā)者工具部門任職,還擔(dān)任過特斯拉副總裁。2017 年 8 月,他 任 Google Brain 團(tuán)隊(duì)領(lǐng)導(dǎo)了 TensorFlow 基礎(chǔ)設(shè)施工作,包括一系列硬件支持(CPU、GPU、TPU),底層運(yùn)行時(shí)和編程語言工作。
在 llama.mojo 的性能對(duì)比發(fā)布后,Chris Lattner 在推特上感慨到,這離 Mojo 可本地下載只隔了三天。

































