<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          編譯器大佬Chris Lattner全新編程語(yǔ)言「Mojo」:兼容Python核心功能...

          共 6983字,需瀏覽 14分鐘

           ·

          2023-05-05 06:33

          點(diǎn)擊關(guān)注公眾號(hào),Java干貨 及時(shí)送達(dá)b5532cfca88b36282fa21a4360d27d9e.webp

          機(jī)器之心報(bào)道

          編輯:蛋醬、陳萍
          它可與 Python 無(wú)縫銜接,但克服了很多 Python 的缺點(diǎn)。Jeremy Howard 試用后表示:「Mojo 可能是幾十年來(lái)最大的編程進(jìn)步?!?/span>
          對(duì)于全球各地開(kāi)發(fā)者來(lái)說(shuō),Chris Lattner 這個(gè)名字絕對(duì)不陌生。 3a815eeb189c4ad54e4a09c9f1bd3136.webp 他曾是許多大型技術(shù)項(xiàng)目的領(lǐng)導(dǎo)者,包括 LLVM 編譯器基礎(chǔ)結(jié)構(gòu)項(xiàng)目、Clang C 和 C++ 編譯器、MLIR 機(jī)器學(xué)習(xí)基礎(chǔ)結(jié)構(gòu)等編譯器技術(shù),以及為蘋果生態(tài)系統(tǒng)提供支持的程序設(shè)計(jì)語(yǔ)言 Swift。此外,Chris Lattner 還為 Google Brain 和 TensorFlow 建立和管理了一系列與 AI 相關(guān)的編譯器、運(yùn)行時(shí)和編程語(yǔ)言團(tuán)隊(duì)。 十多年來(lái),Chris Lattner 的職業(yè)履歷算是相當(dāng)豐富,變動(dòng)也算頻繁:
          • 2011-2017 年,任蘋果開(kāi)發(fā)部高級(jí)總監(jiān)、架構(gòu)師
          • 2017.1-2017.6,任特斯拉副總裁,負(fù)責(zé)自動(dòng)駕駛
          • 2017.8-2020.1,任谷歌 Google Brain 高級(jí)總監(jiān)
          • 2020.1,加入芯片創(chuàng)業(yè)公司 SiFive 負(fù)責(zé)平臺(tái)工程
          2022 年 1 月,Chris Lattner 正式宣布創(chuàng)業(yè),和 Tim Davis 共同建立了「Modular AI」,希望自下而上重建全球 ML 基礎(chǔ)設(shè)施。在這家新生的公司中,Chris Lattner 以 CEO 身份領(lǐng)導(dǎo)團(tuán)隊(duì)。 其實(shí),Chris Lattner 每一次跳槽的選擇都頗受關(guān)注。對(duì)于「Modular AI」,業(yè)界也是寄予厚望。 近日,Chris Lattner 的創(chuàng)業(yè)之路有了重要?jiǎng)討B(tài)。這一次,他官宣的是全新的編程語(yǔ)言「Mojo」。 ffc273640fc37fea36ad74f847eb8d1d.webp 「Mojo 結(jié)合了 Python 的可用性與 C 的性能,釋放了 AI 硬件無(wú)與倫比的可編程性和 AI 模型的可擴(kuò)展性」—— 它與 Python 一樣易于使用,但具有 C++ 和 Rust 的性能。此外,Mojo 提供了利用整個(gè) Python 庫(kù)生態(tài)系統(tǒng)的能力。 Mojo 的出世,在 AI 領(lǐng)域迅速引起了熱議。Jeremy Howard 試用后,在一篇博客文章中表示,Mojo 可能是幾十年來(lái)最大的編程進(jìn)步。 028581e376fbc0f7da79d3d4d0a5d361.webp「感覺(jué)編程被顛覆了?!乖?Jeremy Howard 的記憶中,上次有這樣的感覺(jué),還是他首次上手 Visual Basic v1.0。而在 Mojo 中編寫(xiě)代碼,讓他重溫了這種「神奇」的感覺(jué)。 為什么會(huì)有 Mojo? 關(guān)于「Mojo」這項(xiàng)工作的背景,Chris Lattner 和 Tim Davis 在博客中進(jìn)行了詳細(xì)的說(shuō)明:
          機(jī)器學(xué)習(xí)基礎(chǔ)設(shè)施已經(jīng)為數(shù)十億美元的商業(yè)提供動(dòng)力,并且正在迅速增長(zhǎng)。但是,它要么由硬件團(tuán)隊(duì)為特定的設(shè)備集合構(gòu)建,要么是由工業(yè)研究實(shí)驗(yàn)室構(gòu)建,許多系統(tǒng)是不兼容技術(shù)的集合。
          現(xiàn)有的單體系統(tǒng)很難在其最初的領(lǐng)域目標(biāo)之外進(jìn)行擴(kuò)展或通用,這種情況迫使硬件制造商建立自己的技術(shù)棧。造成的結(jié)果就是,人工智能部署行業(yè)是非常分散的,工具鏈就有幾十個(gè),各自有不同的權(quán)衡和限制。更重要的是,這些設(shè)計(jì)模式也因其可用性、可移植性和難以擴(kuò)展而減緩了創(chuàng)新的步伐。
          不幸的是,我們也看到,構(gòu)建和部署這些應(yīng)用程序的技術(shù)復(fù)雜性仍然太高。部署人工智能仍然是全棧專家的領(lǐng)域,而最前沿的應(yīng)用只有那些自己建立 ML 技術(shù)的最大科技公司的人可以使用。
          大一統(tǒng)的設(shè)想注定會(huì)失敗嗎?今天人工智能的現(xiàn)實(shí)世界的復(fù)雜性是否使得它不可能解決這個(gè)問(wèn)題? Chris Lattner 并不這么認(rèn)為。他表示,軟件行業(yè)會(huì)經(jīng)歷周期,我們以前也見(jiàn)過(guò)并解決過(guò)這樣的問(wèn)題:
          20 世紀(jì) 90 年代的軟件世界有過(guò)類似于我們今天看到的人工智能的碎片化問(wèn)題。當(dāng)時(shí),C 和 C++ 已經(jīng)建立起了社區(qū),但卻被分散在幾十個(gè)專有編譯器中。每一個(gè)都有供應(yīng)商的擴(kuò)展、粗糙的邊緣、奇怪的邊角案例和不完整的實(shí)現(xiàn)。當(dāng)時(shí),構(gòu)建跨平臺(tái)的軟件是如此困難,以至于推動(dòng)業(yè)界出現(xiàn)了一些工具來(lái)幫助開(kāi)發(fā)者應(yīng)對(duì)碎片化,使其更容易安裝、構(gòu)建和配置軟件(例如 autoconf)。
          「GCC」就是其中一員。憑借其對(duì)跨平臺(tái)的支持、良好的性能和穩(wěn)定性,以及免費(fèi)性,GCC 在 90 年代獲得了巨大的成功。GCC 的成功推動(dòng)了工具行業(yè)的整合浪潮,由此產(chǎn)生的碎片整理使其功能成為事實(shí)上的標(biāo)準(zhǔn),從而帶來(lái)了一波新的創(chuàng)新。它催化了軟件(直接促成了 Linux 等開(kāi)放源碼軟件社區(qū)的迅速崛起)和硬件(促成了指令集架構(gòu)和新商業(yè)模式的創(chuàng)新)的革命,使前者從零散的 C/C++ 實(shí)現(xiàn)中解放出來(lái),使后者不必追趕快速發(fā)展的 C/C++ 語(yǔ)言標(biāo)準(zhǔn)。
          如今,Mojo 的誕生也承擔(dān)了這樣一份希冀。
          當(dāng)我們創(chuàng)辦 Modular 時(shí),我們沒(méi)有打算建立一種新的編程語(yǔ)言。但是,當(dāng)我們?cè)诮⑽覀兊钠脚_(tái),打算統(tǒng)一世界上的 ML/AI 基礎(chǔ)設(shè)施時(shí),我們意識(shí)到,在整個(gè)堆棧中編程太復(fù)雜了。另外,我們用手寫(xiě)了很多 MLIR,但并不愉快。
          我們想要的是一個(gè)創(chuàng)新的、可擴(kuò)展的編程模型,可以針對(duì)加速器和其他機(jī)器學(xué)習(xí)中普遍存在的異構(gòu)系統(tǒng)。這意味著一種具有強(qiáng)大的編譯時(shí)元編程的編程語(yǔ)言,整合自適應(yīng)編譯技術(shù),在整個(gè)編譯流程中進(jìn)行緩存,以及其他現(xiàn)有語(yǔ)言不支持的東西。
          盡管加速器很重要,但最普遍的、有時(shí)被忽視的加速器之一是主機(jī) CPU。今天,CPU 有很多類似張量核心的加速器塊和其他 AI 加速單元,但它們也是專門加速器無(wú)法處理的運(yùn)算的后備力量,如數(shù)據(jù)加載、前后處理以及與國(guó)外系統(tǒng)的集成。因此,很明顯,我們不能用一種只與特定處理器一起工作的「加速器語(yǔ)言」來(lái)提升人工智能。應(yīng)用 AI 系統(tǒng)需要解決所有這些問(wèn)題,我們認(rèn)為沒(méi)有理由不通過(guò)一種語(yǔ)言來(lái)完成。
          在這種情況下,Mojo 誕生了。 Mojo:比 Python 快 35000 倍的編程語(yǔ)言 在編程語(yǔ)言領(lǐng)域,Python 可以說(shuō)是非常受歡迎了。如今,這個(gè)領(lǐng)域又迎來(lái)一位新的競(jìng)爭(zhēng)者:Mojo。 Mojo 是一門新的編程語(yǔ)言,其將 Python 的易用性和 C 的性能結(jié)合起來(lái),彌合了研究和生產(chǎn)之間的差距。使用 Mojo,用戶可以編寫(xiě)比 C 語(yǔ)言更快的可移植代碼,并與 Python 生態(tài)系統(tǒng)無(wú)縫互操作,其目標(biāo)是成為 AI 研究和生產(chǎn)的理想選擇。 我們先看一個(gè)示例。下圖展示的是 Mojo 與 Python 無(wú)縫互操作:

          019f5eeaaedebc05b4afe908cc9373a5.webp

          Mojo 語(yǔ)言具有以下特點(diǎn): 首先是可用性和可編程性,只用 Mojo 一種語(yǔ)言就能編寫(xiě)所有東西。例如可以編寫(xiě) Python、大量低級(jí) AI 硬件程序,而不需要 C++ 或 CUDA。

          5bd036eb7293176d968937a0f42211d5.webp

          第二是性能,Mojo 解鎖了 Python 性能。利用最先進(jìn)的編譯器和異構(gòu)運(yùn)行時(shí),Mojo 能夠充分利用硬件的全部功能,包括多核、向量單元和加速器單元。在任務(wù)不復(fù)雜的情況下實(shí)現(xiàn)與 C++ 和 CUDA 相當(dāng)?shù)男阅堋?/span>

          e7147fd68e148932ae4ac02bd4d2f5ab.webp

          并行化:Mojo 利用 MLIR,使 Mojo 開(kāi)發(fā)人員能夠利用向量、線程和 AI 硬件單元。 此外,根據(jù)測(cè)試,Mojo 比 Python 快 35000 倍。 acea7a0b77a3076441b598e33244694c.webpMojo 第三個(gè)特點(diǎn)是互操作性,可以訪問(wèn)整個(gè) Python 生態(tài)系統(tǒng),如可以訪問(wèn) Numpy、Matplotlib 以及用戶自定義代碼:

          e65ce5e8e2bf8493ca32a991f8042d14.webp

          第四個(gè)特點(diǎn)是可擴(kuò)展性。使用預(yù)處理和后處理操作就能輕松擴(kuò)展模型,或者用自定義操作替換其他操作。此外,Mojo 還可以利用核融合、圖形重寫(xiě)、形狀函數(shù)等。

          f3a1fd7c1447f214bbab5b29b45a599a.webp

          模型的可擴(kuò)展性,Mojo 可以升級(jí)模型中的現(xiàn)有操作。 Modular AI 表示,Mojo 仍在開(kāi)發(fā)中,開(kāi)發(fā)者現(xiàn)在可以在 Modular AI 基于 JupyterHub 的 Playground 中試用,用戶只需通讀教程便可編寫(xiě)自己的 Mojo 代碼。 試用地址:https://docs.modular.com/mojo/get-started.html 參考鏈接:
          https://www.modular.com/blog/the-future-of-ai-depends-on-modularity https://www.modular.com/mojo https://www.fast.ai/posts/2023-05-03-mojo-launch.html
              
                

          ? ? ac5ec4bb2ce74dd0c06fbaf0bf3587ee.webp

                    
                      

                        

          1、社區(qū)糾紛不斷:程序員何苦為難程序員?

          2、該死的單元測(cè)試,寫(xiě)起來(lái)到底有多痛?

          3、互聯(lián)網(wǎng)人為什么學(xué)不會(huì)擺爛

          4、為什么國(guó)外JetBrains做 IDE 就可以養(yǎng)活自己,國(guó)內(nèi)不行?區(qū)別在哪?

          5、相比高人氣的Rust、Go,為何 Java、C 在工具層面進(jìn)展緩慢?

          6、讓程序員早點(diǎn)下班的《技術(shù)寫(xiě)作指南》

          32e02a7e007bd000f7ece00e8ae77766.webp

          點(diǎn)

          6e9ce3dd8aca49b66570fb3c2e0e9f70.webp

          點(diǎn)

          b396fdb618914f31ab2e96c62e694db7.webp

          點(diǎn) 點(diǎn)

          d1d4fceaf4906e0d2a23b512617f68a9.webp

          點(diǎn)在看

          瀏覽 103
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产做爱视频一区二区三区 | 国语对白 | 无码一区二区三区嫩草网你懂的 | 久久精品国产99久久不卡 | 一级无码片 |