自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

炸裂!讓Python和C一樣快,MIT推出新編譯器,訓(xùn)練大數(shù)據(jù)集可提速5-10倍

人工智能
Codon平臺(tái)還有一個(gè)并行后端,可以讓用戶編寫(xiě)可以明確編譯為 GPU 或多核并行的Python 代碼,而這些任務(wù)傳統(tǒng)上需要一定的編程專業(yè)知識(shí)。

?大數(shù)據(jù)文摘出品

Python太慢了!

除了這個(gè)缺點(diǎn),Python可以說(shuō)是有無(wú)數(shù)個(gè)優(yōu)點(diǎn),但就是這個(gè)缺點(diǎn),讓無(wú)數(shù)程序員吐槽不已。

現(xiàn)在,麻省理工學(xué)院計(jì)算機(jī)科學(xué)與人工智能實(shí)驗(yàn)室(CSAIL)的研究人員希望通過(guò)一個(gè)新的編譯器來(lái)改變這種狀況——Codon。

Codon 是一個(gè)新的基于 Python 的編譯器,能讓用戶編寫(xiě)的 Python 代碼,運(yùn)行效率與 C 或 C++ 程序相當(dāng)。

這很香了。

裝上了渦輪增壓的 Python

Python 的主要優(yōu)勢(shì)在于語(yǔ)法簡(jiǎn)單易學(xué),這樣許多非專業(yè)程序員也能體會(huì)到編碼帶來(lái)的樂(lè)趣。

“我們意識(shí)到,人們不一定想學(xué)習(xí)一門(mén)新語(yǔ)言或一種新工具,尤其是那些非技術(shù)人員。所以我們想,讓我們把 Python 語(yǔ)法、語(yǔ)義和庫(kù)合并到一個(gè)從頭開(kāi)始構(gòu)建的新系統(tǒng)中。”Ariya Shajii  Codon 的新論文的主要作者。

這篇論文被發(fā)表在了第32屆 ACM SIGPLAN 編譯器構(gòu)造國(guó)際會(huì)議上。

圖片

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

不像 C 和 C + + 這樣的語(yǔ)言都帶有一個(gè)編譯器來(lái)優(yōu)化生成的代碼以提高性能,Python 是一個(gè)直譯語(yǔ)言。為了讓 Python 變得更快,人們付出了很多努力,研究小組說(shuō),這種方法通常采用“自上向下的方法”,即采用普通的 Python 實(shí)現(xiàn),并結(jié)合各種優(yōu)化或“即時(shí)”編譯技術(shù)(一種在執(zhí)行過(guò)程中編譯對(duì)性能至關(guān)重要的代碼片段的方法)。這些方法擅長(zhǎng)于保持向后兼容性,但是這種方法也極大地限制了可以獲得的加速種類。

Codon 則采取了更多的自下而上的方法,從頭開(kāi)始實(shí)施所有的東西,雖然有一些限制,但是更加靈活。

例如,Codon 雖然不能支持某些動(dòng)態(tài)特性,但是可以使用優(yōu)化和其他靜態(tài)編譯技術(shù),這些技術(shù)從標(biāo)準(zhǔn)的 Python 優(yōu)化流程開(kāi)始就無(wú)法實(shí)現(xiàn)。

之前都沒(méi)人做,難點(diǎn)在哪?

第一個(gè)難點(diǎn)就在于運(yùn)行前的類型檢查。

編譯器執(zhí)行的第一個(gè)關(guān)鍵步驟之一稱為“類型檢查”,即在程序中計(jì)算每個(gè)變量或函數(shù)的不同數(shù)據(jù)類型的過(guò)程。例如,一些可以是整數(shù),一些可以是字符串,還有一些可以是浮點(diǎn)數(shù)ーー這是常規(guī) Python 不會(huì)去做的。在普通的 Python 中,在運(yùn)行程序時(shí)必須處理所有這些信息,這是使其運(yùn)行速度如此之慢的因素之一。

Codon 的的解決方法在于,在運(yùn)行程序之前進(jìn)行類型檢查。這允許編譯器將代碼轉(zhuǎn)換為本機(jī)代碼,從而避免了 Python 在運(yùn)行時(shí)處理數(shù)據(jù)類型的所有消耗。

第二個(gè)難點(diǎn)在于編譯器中的優(yōu)化。

舉個(gè)例子,如何使用插件實(shí)現(xiàn)一組特定于該某計(jì)算領(lǐng)域的優(yōu)化?比如使用涉及到使用基因組序列和其他生物學(xué)數(shù)據(jù)的基因組學(xué)庫(kù)。

Codon 的方法是生成一個(gè)可執(zhí)行文件——讓其以 C 或 C + + 的速度運(yùn)行,甚至一旦應(yīng)用了特定于領(lǐng)域的優(yōu)化,運(yùn)行速度甚至更快。

Codon 目前涵蓋了 Python 的一個(gè)相當(dāng)大的子集,不過(guò)它仍然需要合并幾個(gè)動(dòng)態(tài)特性,并擴(kuò)大其 Python 庫(kù)的覆蓋范圍。Codon 團(tuán)隊(duì)正在努力進(jìn)一步縮小與 Python 的差距,并期待在未來(lái)幾個(gè)月內(nèi)發(fā)布幾個(gè)新特性。Codon 目前在 GitHub 上公開(kāi)可用。

GitHub:https://github.com/exaloop/codon

圖片

研究小組對(duì)密碼頓進(jìn)行了嚴(yán)格的測(cè)試,結(jié)果證明它超出了預(yù)期。

具體來(lái)說(shuō),他們采用了大約10個(gè)用 Python 編寫(xiě)的常用基因組學(xué)應(yīng)用程序,并使用 Codon 編譯它們,實(shí)現(xiàn)了比原始手工優(yōu)化實(shí)現(xiàn)快5到10倍的速度。

圖片

除了基因組學(xué),他們還探索了定量金融的應(yīng)用,定量金融同樣也需要也處理大數(shù)據(jù)集,并大量使用 Python,效果也非常顯著。

同時(shí),Codon平臺(tái)還有一個(gè)并行后端,可以讓用戶編寫(xiě)可以明確編譯為 GPU 或多核并行的Python 代碼,而這些任務(wù)傳統(tǒng)上需要一定的編程專業(yè)知識(shí)。

相關(guān)報(bào)道:

https://www.csail.mit.edu/news/python-based-compiler-achieves-orders-magnitude-speedups

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

https://spectrum.ieee.org/python-compiler

責(zé)任編輯:武曉燕 來(lái)源: 大數(shù)據(jù)文摘
相關(guān)推薦

2023-04-03 14:25:01

Python編譯

2023-05-04 15:32:51

編程開(kāi)發(fā)

2013-09-24 09:40:41

Java圖形加速

2016-10-08 16:02:37

WIFIMegaMIMO系統(tǒng)

2010-01-14 14:55:14

C++編譯器

2024-05-11 09:38:05

React編譯器React 19

2020-01-13 09:39:52

工具代碼開(kāi)發(fā)

2023-07-31 07:33:04

Rust編譯器內(nèi)存

2012-04-05 09:13:17

C代碼

2021-02-21 15:47:47

機(jī)器學(xué)習(xí)人工智能計(jì)算機(jī)

2009-08-10 17:12:54

C#編譯器

2021-06-07 11:40:26

Python命令代碼

2020-11-12 08:30:38

Java微服務(wù)Go

2013-08-22 10:17:51

Google大數(shù)據(jù)業(yè)務(wù)價(jià)值

2010-01-18 10:34:21

C++編譯器

2022-08-01 11:15:26

MIT材料

2010-01-21 09:11:38

C++編譯器

2021-12-30 09:00:00

區(qū)塊鏈以太坊NFT

2009-07-29 16:44:45

AndroidSimpleGoogle

2009-03-07 18:53:46

Chrome瀏覽器訂制
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)