成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

人工智能 新聞
甚至比 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 上運行最終結果 —— 不經過中間虛擬機或解釋器。」

圖片

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

基于 Python 的編譯器帶有適用于 Linux 和 macOS 的預構建二進制文件,你還可以從源代碼構建或生成可執行文件。「使用 Codon,你可以像 Python 一樣分發源代碼,或者你可以將它編譯成二進制文件,」Shajii 說。「如果你想分發一個二進制文件,它將與像 C++ 這樣的語言一樣,例如一個 Linux 二進制文件或一個 Mac 二進制文件。」

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

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

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

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

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

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

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

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

圖片

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

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

為了使 Codon 能夠適應不同領域,該團隊開發了一個插件系統。「它就像一個可擴展的編譯器,」Shajii 說道。「你可以為基因組學或其他領域編寫插件,這些插件可以有新的庫和新的編譯器優化。」

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

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

責任編輯:張燕妮 來源: 機器之心
相關推薦

2023-04-07 22:11:36

2010-01-14 14:55:14

C++編譯器

2022-12-12 13:36:04

Python編譯器

2010-01-18 10:34:21

C++編譯器

2010-01-21 09:11:38

C++編譯器

2010-01-18 10:28:15

C++編譯器

2010-10-20 13:43:37

C++編譯器

2010-01-14 15:29:44

C++編譯器

2010-02-03 13:14:03

C++編譯器命令

2020-05-01 12:35:31

C++Python編程

2010-01-12 16:42:59

C++編譯器

2023-07-31 07:33:04

Rust編譯器內存

2010-01-21 09:26:53

CC++編譯器

2010-01-27 16:39:48

C++編譯器

2009-01-12 10:16:11

Visual C++編譯器選項設置

2010-01-27 14:48:55

優秀C++編譯器

2014-03-03 10:00:53

編譯器集成開發環境

2017-03-01 17:24:05

5G5G網絡4G

2010-01-08 16:00:46

C++編譯器

2010-01-13 17:12:26

C++編譯器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本一区高清 | 国产精品伦一区二区三级视频 | 水蜜桃久久夜色精品一区 | 日本一级淫片免费啪啪3 | 亚洲性视频网站 | 欧洲精品一区 | 99精品久久久国产一区二区三 | 日本理论片好看理论片 | 在线精品观看 | 久久99精品久久久久久国产越南 | 一区二区三区国产 | 欧美精品一区在线 | 看片国产 | 国产综合视频 | 日韩av在线一区二区 | 色婷婷一区二区三区四区 | 精品国产一区三区 | 日韩精品一区二区三区中文在线 | 九九色综合 | 日本精品一区二区三区视频 | 在线中文字幕亚洲 | 欧美激情一区二区三级高清视频 | 国产乱性 | 超碰导航 | 久久99精品国产99久久6男男 | 高清欧美性猛交xxxx黑人猛交 | 精品一区二区免费视频 | 亚洲播放一区 | 在线免费观看黄视频 | xx性欧美肥妇精品久久久久久 | 男人的天堂一级片 | 华丽的挑战在线观看 | 欧美精品一区在线发布 | 欧美日韩在线免费 | 成人欧美一区二区三区黑人孕妇 | 午夜精品一区二区三区在线视频 | 一区二区三区免费观看 | 特一级黄色毛片 | 国产一区二区a | 在线中文视频 | 91精品国产91久久久久久吃药 |