色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

這款編譯器能讓Python和C++一樣快!

CVer ? 來源:機器之心 ? 2023-04-04 14:21 ? 次閱讀

甚至比 C 的速度還快,現在已在 GitHub 上可用。

深度學習興起以來,Python 一直是最熱門的編程語言之一,它在數據科學和機器學習領域占主導地位,甚至是科學和數學計算領域的主角。如今你能想象到的任何項目,幾乎都可以找到一個相應的 Python 包。

然而,盡管高級語言的簡化語法使其易于學習和使用,但和 C 或 C++ 等低級語言相比,它的速度更慢。

麻省理工學院計算機科學與人工智能實驗室(CSAIL)的研究人員希望通過 Codon 來改變這一現狀,Codon 是一種基于 Python 的編譯器,允許用戶編寫與 C 或 C++ 程序一樣高效運行的 Python 代碼,同時可以定制和適應不同的需求和環境。

該研究的最新論文《Codon: A Compiler for High-Performance Pythonic Applications and DSLs》發表在了 2 月份的第 32 屆 ACM SIGPLAN 編譯器構建國際會議上。

項目鏈接:https://github.com/exaloop/codon

論文:https://dl.acm.org/doi/abs/10.1145/3578360.3580275

在開發工作中,人們需要使用編譯器將源代碼轉換為可由計算機處理器執行的機器代碼,Codon 能幫助開發者在 Python 中創建新的領域特定語言(DSL),同時仍然獲得其他語言的性能優勢。

「常規 Python 會被編譯成所謂的字節碼,該字節碼在虛擬機中執行,這就會讓速度慢上很多,」Codon 論文的主要作者 Ariya Shajii 表示,「通過 Codon,我們則進行本地編譯,因此你可以直接在 CPU 上運行最終結果 —— 不經過中間虛擬機或解釋器?!?/p>

e24fc900-d2ab-11ed-bfe3-dac502259ad0.png



Codon 的編譯管道包括類型檢查,使其能夠更高效地運行 Python 代碼。

基于 Python 的編譯器帶有適用于 Linux 和 macOS 的預構建二進制文件,你還可以從源代碼構建或生成可執行文件?!甘褂?Codon,你可以像 Python 一樣分發源代碼,或者你可以將它編譯成二進制文件,」Shajii 說?!溉绻阆敕职l一個二進制文件,它將與像 C++ 這樣的語言一樣,例如一個 Linux 二進制文件或一個 Mac 二進制文件。」

為了讓 Codon 更快,研究人員決定在編譯時執行類型檢查。類型檢查涉及將數據類型(例如整數、字符串、字符或浮點數等)分配給值。例如數字 5 可以分配為整數,字母 c 可以分配為字符,單詞 hello 可以分配為字符串,十進制數 3.14 可以分配為浮點數。

「在常規 Python 中,所有類型都給了 runtime,」Shajii 介紹道?!甘褂?Codon,我們在編譯過程中進行類型檢查,這讓我們避免了在 runtime 進行所有昂貴的類型操作。」

MIT CSAIL 首席研究員 Saman Amarasinghe 補充說,「如果你有一種動態語言(比如 Python),每次你有一些數據時,你都需要在它周圍保留很多額外的元數據,以確定 runtime 的類型。Codon 取消了這種元數據,因此代碼速度更快,數據更小?!?/p>

根據 Shajii 的說法,Codon 在運行時沒有任何不必要的數據或類型檢查,所以開銷為零。在性能方面,「Codon 通常與 C++ 不相上下。與 Python 相比,我們通常看到的是 10 到 100 倍的速度改進。」

另一方面,Codon 的方法有其權衡?!肝覀冞M行這種靜態類型檢查,并且不允許使用 Python 的一些動態特性,比如在 runtime 動態更改類型,」Shajii 表示。

「還有一些 Python 庫我們還沒有實現?!笰marasinghe 補充說,「Python 已經過無數人的實際測試,而 Codon 還沒有達到那樣的水平,它需要運行更多的程序,獲得更多的反饋,并加固更多。達到常規 Python 的穩定水平需要一些時間?!?/p>

Codon 最初設計用于基因組學和生物信息學的工作。研究人員嘗試了大約 10 個用 Python 編寫的常用基因組學應用程序,并使用 Codon 對其進行了編譯,與最初的手動優化實現相比實現了 5 到 10 倍的加速。

「如今這些領域的數據集已變得非常大,而像 Python 和 R 這樣的高級語言速度太慢,無法處理每組測序 TB 級的數據量,」Shajii 說道。「這就是我們想要填補的空白 —— 通過構建一種無需寫 C 或 C++ 代碼即可處理大數據的方法,從而為非計算機科學或專業開發者的領域專家提供幫助?!?/p>

e26edb24-d2ab-11ed-bfe3-dac502259ad0.png

上述圖表在幾個基準上比較了 Python(CPython 3)、PyPy、Codon 和 C++ 的性能。y 軸顯示 Codon 實現相對于 CPython 實現的加速。MIT/EXALOOP/UNIVERSITY OF VICTORIA/ACM

除了基因組學,Codon 還可以應用于處理海量數據集的類似應用程序,以及基于 Python 的編譯器支持的 GPU 編程和并行編程等領域。事實上,Codon 現在正通過初創公司 Exaloop 在生物信息學、深度學習和量化金融領域進行商業應用,Shajii 創立了該公司,旨在將 Codon 從學術項目轉變為行業應用。

為了使 Codon 能夠適應不同領域,該團隊開發了一個插件系統。「它就像一個可擴展的編譯器,」Shajii 說道?!改憧梢詾榛蚪M學或其他領域編寫插件,這些插件可以有新的庫和新的編譯器優化?!?/p>

此外,公司和機構可以使用 Codon 來制作原型和開發自己的應用程序?!肝覀兛吹降囊环N模式是:人們使用 Python 進行原型設計和測試,因為它易于使用,但到了某些重要事項上,他們就不得不重寫應用程序,或讓其他人用 C 或 C++ 在更大的數據集上進行重寫與測試,」Shajii 表示。「通過 Codon,你就可以完全使用 Python,并獲得兩全其美的好處?!?/p>

關于 Codon 的未來,Shajii 和他的團隊目前正在研究廣泛使用的 Python 庫的本地實現,以及特定于庫的優化,以幫助人們從這些庫中獲得更好的性能。他們還計劃創建一個廣受歡迎的功能:Codon 的 WebAssembly 后端,以支持在 Web 瀏覽器上運行代碼。

審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • C++
    C++
    +關注

    關注

    22

    文章

    2114

    瀏覽量

    73793
  • 編譯器
    +關注

    關注

    1

    文章

    1642

    瀏覽量

    49240
  • 機器學習
    +關注

    關注

    66

    文章

    8438

    瀏覽量

    132935

原文標題:這款編譯器能讓Python和C++一樣快!最高提速百倍,MIT出品!

文章出處:【微信號:CVer,微信公眾號:CVer】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    SEGGER編譯器優化和安全技術介紹 支持最新CC++語言

    SEGGER編譯器是專門為ARM和RISC-V微控制設計的優化C/C++編譯器。它建立在強大的Clang前端上,支持最新的
    的頭像 發表于 06-04 15:31 ?1513次閱讀
    SEGGER<b class='flag-5'>編譯器</b>優化和安全技術介紹 支持最新<b class='flag-5'>C</b>和<b class='flag-5'>C++</b>語言

    C++編譯器數值性能比較

    現在市面上,主流的C/C++編譯器包括M$的CL、gcc、Intel的icl、PGI的pgcc及Codegear的bcc(原來屬于Borland公司)。Windows上使用最多的自然是cl,而在更廣闊的平臺上,gcc則是
    發表于 09-10 11:54 ?8次下載

    Linux下C/C++編譯器gcc使用指南

    1.gcc包含的c/c++編譯器 gcc,cc與c++,g++ gcc和cc是一樣的,c++和g
    發表于 11-02 10:59 ?0次下載

    英特爾C++和Fortran編譯器的逐漸優化過程介紹

    這是個介紹視頻,解釋了英特爾?C++和Fortran編譯器提供的逐步優化。
    的頭像 發表于 11-05 06:21 ?3167次閱讀

    MATLAB 64位C語言和C++編譯器應用程序免費下載

    本文檔的主要內容詳細介紹的是MATLAB 64位C語言和C++編譯器應用程序免費下載。
    發表于 05-21 08:00 ?4次下載
    MATLAB 64位<b class='flag-5'>C</b>語言和<b class='flag-5'>C++</b><b class='flag-5'>編譯器</b>應用程序免費下載

    阿里云基礎軟件C/C++編譯器的工作現狀及挑戰

    本文主要詳細介紹了阿里云C、C++編譯器(GCC、LLVM)工作現狀、主流編譯器(GCC、LLVM)開源社區參與現狀以及多架構(RISC-V)對數據中心的挑戰。
    的頭像 發表于 06-23 15:26 ?3005次閱讀
    阿里云基礎軟件<b class='flag-5'>C</b>/<b class='flag-5'>C++</b><b class='flag-5'>編譯器</b>的工作現狀及挑戰

    SuperH C/C++ 編譯器包 V.9.04 用戶手冊

    SuperH C/C++ 編譯器包 V.9.04 用戶手冊
    發表于 01-12 18:45 ?1次下載
    SuperH <b class='flag-5'>C</b>/<b class='flag-5'>C++</b> <b class='flag-5'>編譯器</b>包 V.9.04 用戶手冊

    C/C++編譯器的缺省字節對齊方式

    C/C++編譯器的缺省字節對齊方式為自然對界。即在缺省情況下,編譯器為每個變量或是數據單元按其自然對界條件分配空間。
    的頭像 發表于 04-15 11:24 ?1066次閱讀

    SuperH C/C++ 編譯器包 V.9.01 用戶手冊

    SuperH C/C++ 編譯器包 V.9.01 用戶手冊
    發表于 04-21 19:55 ?0次下載
    SuperH <b class='flag-5'>C</b>/<b class='flag-5'>C++</b> <b class='flag-5'>編譯器</b>包 V.9.01 用戶手冊

    SuperH C/C++ 編譯器包 V.9.04 用戶手冊

    SuperH C/C++ 編譯器包 V.9.04 用戶手冊
    發表于 07-03 18:38 ?4次下載
    SuperH <b class='flag-5'>C</b>/<b class='flag-5'>C++</b> <b class='flag-5'>編譯器</b>包 V.9.04 用戶手冊

    RX系列V3.06.00的C/C++編譯器包數據手冊

    電子發燒友網站提供《RX系列V3.06.00的C/C++編譯器包數據手冊.pdf》資料免費下載
    發表于 01-26 15:57 ?1次下載
    RX系列V3.06.00的<b class='flag-5'>C</b>/<b class='flag-5'>C++</b><b class='flag-5'>編譯器</b>包數據手冊

    C7000優化C/C++編譯器

    電子發燒友網站提供《C7000優化C/C++編譯器.pdf》資料免費下載
    發表于 10-30 09:45 ?0次下載
    <b class='flag-5'>C</b>7000優化<b class='flag-5'>C</b>/<b class='flag-5'>C++</b><b class='flag-5'>編譯器</b>

    TMS320C6000優化C/C++編譯器v8.3.x

    電子發燒友網站提供《TMS320C6000優化C/C++編譯器v8.3.x.pdf》資料免費下載
    發表于 11-01 09:35 ?0次下載
    TMS320<b class='flag-5'>C</b>6000優化<b class='flag-5'>C</b>/<b class='flag-5'>C++</b><b class='flag-5'>編譯器</b>v8.3.x

    MSP430優化C/C++編譯器v21.6.0.LTS

    電子發燒友網站提供《MSP430優化C/C++編譯器v21.6.0.LTS.pdf》資料免費下載
    發表于 11-08 14:57 ?0次下載
    MSP430優化<b class='flag-5'>C</b>/<b class='flag-5'>C++</b><b class='flag-5'>編譯器</b>v21.6.0.LTS

    Triton編譯器支持的編程語言

    Triton編譯器支持的編程語言主要包括以下幾種: 、主要編程語言 Python :Triton編譯器通過Python接口提供了對Trit
    的頭像 發表于 12-24 17:33 ?427次閱讀
    主站蜘蛛池模板: 丝袜美女被艹 | 啊灬啊灬啊灬快高潮视频 | 国产精品夜夜春夜夜爽久久小 | 色多多污污在线观看网站 | 国产在线aaa片一区二区99 | 24小时日本在线 | 国产精品俺来也在线观看 | 高清国产一区 | 国产精片久久久久久婷婷 | 征服丝袜旗袍人妻 | 免费果冻传媒2021在线看 | 欧美巨大xxxx做受高清 | 中文字幕99香蕉在线 | 日韩亚洲不卡在线视频 | 国产精品免费久久久久影院 | 国产免费怕怕免费视频观看 | 公和我做好爽添厨房中文字幕 | 亚洲国产欧美日韩在线一区 | 操中国老太太 | 日日操夜夜操狠狠操 | 99久久免热在线观看 | 蜜芽无码亚洲资源网站 | 国产 高清 无码 中文 | 女教师跟黑人男朋友激情过后 | 国产精品亚洲在钱视频 | 在线不卡中文字幕 | 思思99热久久精品在线6 | 男人狂躁进女人免费视频公交 | 成人免费一区二区无码视频 | 亚洲精品视频免费 | adc我们的永久网址 adc网址在线观看 | 少妇高潮惨叫久久久久久欧美 | 婷婷综合久久狠狠色 | 三级黄色小视频 | 海角社区在线视频播放观看 | 色中色入口2015 | 99久久亚洲 | 国产婷婷色综合AV蜜臀AV | 麻豆免费观看高清完整视频在线 | 乱叫抽搐流白浆免费视频 | 国产扒开美女双腿屁股流白浆 |