llama2.mojo比llama2.c快20%,最年輕的語(yǔ)言Mojo驚艷開發(fā)者社區(qū)
如果說(shuō) Python 是最流行的語(yǔ)言,C 語(yǔ)言是最經(jīng)典的語(yǔ)言,那么 Mojo 也有它的之最 —— 最年輕。Mojo 能夠與 Python 無(wú)縫銜接,它的出世被稱作為「幾十年來(lái)最大的編程進(jìn)步」。
圖源:https://www.modular.com/blog/mojo-its-finally-here
自 5 月 Mojo 推出以來(lái),已經(jīng)有超過(guò) 12 萬(wàn)的開發(fā)者注冊(cè)使用 Mojo Playground,并有超過(guò) 1.9 萬(wàn)的開發(fā)者在 Discord 和 GitHub 上積極討論 Mojo。9 月 7 日,Modular 公司宣布 Mojo 可以在本地下載。Mojo 最初的目標(biāo)是比 Python 快 35000 倍,近日該團(tuán)隊(duì)表示,Mojo 將動(dòng)態(tài)與靜態(tài)語(yǔ)言的優(yōu)點(diǎn)結(jié)合起來(lái),一舉將性能提升達(dá) Python 的 68000 倍。
Mojo
Mojo 是一種面向 AI 開發(fā)人員的新編程語(yǔ)言,它已經(jīng)支持與任意 Python 代碼無(wú)縫集成,并將成長(zhǎng)為 Python 的超集。讓我們回顧一下 Mojo 的「魅力」。
- 用一種語(yǔ)言編寫所有內(nèi)容:Mojo 可滿足 AI 開發(fā)人員的需求,將 Python 的易用性與系統(tǒng)編程功能相結(jié)合。這使研究和部署團(tuán)隊(duì)可以在一個(gè)共同的代碼庫(kù)中工作,從而簡(jiǎn)化工作流程。
- 釋放 Python 性能:Python 無(wú)處不在,但對(duì)于需要高性能或特殊硬件的任務(wù)來(lái)說(shuō),Python 并非最適合的工具。Mojo 可在 CPU 上實(shí)現(xiàn)高性能,并支持 GPU 和 ASIC 等特殊加速器,提供與 C++ 和 CUDA 不相上下的性能。
- 訪問(wèn)整個(gè) Python 生態(tài)系統(tǒng):Mojo 提供了與 Python 生態(tài)系統(tǒng)的完全互操作性,可以無(wú)縫使用 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ò)展:支持語(yǔ)法高亮、代碼自動(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),未來(lái)可能會(huì)更快。
llama2.py、llama2.c、llama2.mojo 的直觀對(duì)比
這個(gè)版本利用了 Mojo 的 SIMD 和矢量化原語(yǔ),將 Python 的性能提高了近 250 倍。即使在快速運(yùn)行模式下,Mojo 版本的性能也比原來(lái)的 llama2.c 高出 15-20%。這展示了通過(guò) 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 比起來(lái)會(huì)是怎樣?
Mojo 與他的背后「大佬」
Modular AI 于 2022 年創(chuàng)立,旨在重建全球 ML 基礎(chǔ)設(shè)施,它由 LLVM 和 Swift 編程語(yǔ)言的聯(lián)合創(chuàng)始人 Chris Lattner 創(chuàng)辦,并在此前剛獲得 1 億美元融資。Chris Lattner 表示,融資將用于產(chǎn)品擴(kuò)展、硬件支持和推動(dòng)自研 AI 編程語(yǔ)言 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 編程語(yǔ)言。他曾在蘋果的開發(fā)者工具部門任職,還擔(dān)任過(guò)特斯拉副總裁。2017 年 8 月,他 任 Google Brain 團(tuán)隊(duì)領(lǐng)導(dǎo)了 TensorFlow 基礎(chǔ)設(shè)施工作,包括一系列硬件支持(CPU、GPU、TPU),底層運(yùn)行時(shí)和編程語(yǔ)言工作。
在 llama.mojo 的性能對(duì)比發(fā)布后,Chris Lattner 在推特上感慨到,這離 Mojo 可本地下載只隔了三天。