機器之心報道
編輯:梓文
你聽說過 Mojo 的「傳奇色彩」嗎?
如果說 Python/ target=_blank class=infotextkey>Python 是最流行的語言,C 語言是最經典的語言,那么 Mojo 也有它的之最 —— 最年輕。Mojo 能夠與 Python 無縫銜接,它的出世被稱作為「幾十年來最大的編程進步」。
圖源:
https://www.modular.com/blog/mojo-its-finally-here
自 5 月 Mojo 推出以來,已經有超過 12 萬的開發者注冊使用 Mojo Playground,并有超過 1.9 萬的開發者在 Discord 和 Github 上積極討論 Mojo。9 月 7 日,Modular 公司宣布 Mojo 可以在本地下載。Mojo 最初的目標是比 Python 快 35000 倍,近日該團隊表示,Mojo 將動態與靜態語言的優點結合起來,一舉將性能提升達 Python 的 68000 倍。
Mojo
Mojo 是一種面向 AI 開發人員的新編程語言,它已經支持與任意 Python 代碼無縫集成,并將成長為 Python 的超集。讓我們回顧一下 Mojo 的「魅力」。
- 用一種語言編寫所有內容:Mojo 可滿足 AI 開發人員的需求,將 Python 的易用性與系統編程功能相結合。這使研究和部署團隊可以在一個共同的代碼庫中工作,從而簡化工作流程。
- 釋放 Python 性能:Python 無處不在,但對于需要高性能或特殊硬件的任務來說,Python 并非最適合的工具。Mojo 可在 CPU 上實現高性能,并支持 GPU 和 ASIC 等特殊加速器,提供與 C++ 和 CUDA 不相上下的性能。
- 訪問整個 Python 生態系統:Mojo 提供了與 Python 生態系統的完全互操作性,可以無縫使用 Python 庫,同時利用 Mojo 的功能和性能優勢。
Mojo 本地下載所提供的工具箱也可以讓開發者更輕松地上手。首次發布的 Mojo SDK 包含了以下工具:
- Mojo 驅動程序:提供 shell(用于讀取 - 評估 - 打印 - 循環或 REPL),允許構建和運行 Mojo 程序、打包 Mojo 模塊、生成文檔和格式化代碼。
- Visual Studio Code (VS Code) 的擴展:支持語法高亮、代碼自動補全等多種功能
- Jupyter 內核:支持構建和運行 Mojo 筆記本,包括 Python 代碼
- 調試支持(即將推出):進入并檢查運行中的 Mojo 程序,甚至可以混合使用 C++ 和 Mojo 堆棧幀
就在近日,一位 Mojo 社區成員將 Python 程序移植到 Mojo,效果如何?
llama.mojo
項目地址:https://github.com/tairov/llama2.mojo
隨著 Mojo 的發布,這位 Mojo 社區成員受到啟發,將在 Python 上移植的 llama2.py 移植到了 Mojo 上。它已經比 Karpathy 的 llama.c 快了 20%。而這并不是速度的終點,未來可能會更快。
llama2.py、llama2.c、llama2.mojo 的直觀對比
這個版本利用了 Mojo 的 SIMD 和矢量化原語,將 Python 的性能提高了近 250 倍。即使在快速運行模式下,Mojo 版本的性能也比原來的 llama2.c 高出 15-20%。這展示了通過 Mojo 高級功能進行硬件級優化的潛力。這有助于大家了解在原有 llama2.c 硬件優化的基礎上還能走多遠。
性能數據對比
當然,這位成員也公布了操作系統與硬件細節。
看到這樣的性能比較,網友們紛紛感慨,Mojo 的確展現了自己的「實力」。
但是也有網友提出了不一樣的看法,或是另一個探索方向。
Llama.c 不是為了快速運行而調優的,而是為了理解一個文件中的代碼。它 llama.cpp 比起來會是怎樣?
Mojo 與他的背后「大佬」
Modular AI 于 2022 年創立,旨在重建全球 ML 基礎設施,它由 LLVM 和 Swift 編程語言的聯合創始人 Chris Lattner 創辦,并在此前剛獲得 1 億美元融資。Chris Lattner 表示,融資將用于產品擴展、硬件支持和推動自研 AI 編程語言 Mojo 的進一步發展。
Chris Lattner
Chris Lattner 畢業于波特蘭大學的計算機科學系,具有創建和領導多個知名大型項目的經驗,其中包括 LLVM、Clang、MLIR 和 CIRCT 等編譯器基礎設施項目,他還帶頭創建了 Swift 編程語言。他曾在蘋果的開發者工具部門任職,還擔任過特斯拉副總裁。2017 年 8 月,他 任 google Brain 團隊領導了 TensorFlow 基礎設施工作,包括一系列硬件支持(CPU、GPU、TPU),底層運行時和編程語言工作。
在 llama.mojo 的性能對比發布后,Chris Lattner 在推特上感慨到,這離 Mojo 可本地下載只隔了三天。
參考鏈接:
https://Twitter.com/Modular_AI/status/1701342288012820800
https://twitter.com/tairov/status/1701194900228764023
https://github.com/tairov/llama2.mojo