日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

改改Python代码,运行速度还能提升6万倍,Science:先别想摩尔定律了

發(fā)布時間:2024/8/23 python 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 改改Python代码,运行速度还能提升6万倍,Science:先别想摩尔定律了 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

如果摩爾定律注定終結(jié),人類的算力會被「鎖死」嗎?MIT、英偉達、微軟研究者合著的一篇 Science 論文告訴我們:不會。

這份最新研究指出,在后摩爾定律時代,人類所獲得的的算力提升將更大程度上來源于計算堆棧的「頂層」,即軟件、算法和硬件架構(gòu),這將成為一個新的歷史趨勢。

摩爾定律終結(jié)之后的性能提升途徑。

算力的提升可以為現(xiàn)代生活帶來諸多便利,例如,當前手機的功能比 25 年前房間大小的計算機都要強大,近一半的人可以上網(wǎng),強大的超級計算機還可以用于藥物挖掘。人類社會已經(jīng)了開始依賴計算機隨時間指數(shù)增長的強大性能了。

計算機性能的提高大部分要歸功于數(shù)十年來計算機部件的小型化。諾貝爾物理學(xué)獎獲得者理查德 · 費曼早就預(yù)見了這一點。在 1959 年致美國物理學(xué)會的演講中,他提到,「底部還有大量空間」。1975 年,英特爾創(chuàng)始人戈登 · 摩爾給出了這種部件小型化趨勢的預(yù)測,即集成電路上可容納的元器件數(shù)目約每隔 18-24 個月便會增加一倍,性能也將提升一倍。我們將其稱之為摩爾定律。

不幸的是,這種趨勢正在走向消亡,因為「底部」已經(jīng)沒有多少空間了。如果算力的提升停滯不前,那么幾乎所有行業(yè)的生產(chǎn)力都將面臨挑戰(zhàn)。

在此背景下,MIT、英偉達、微軟的研究者在最新一期《Science》上發(fā)文指出,雖然「底部」已經(jīng)沒有太多提升的空間,但「頂部」還有機會:在軟件、算法以及硬件架構(gòu)方面,我們都能夠找到提升計算性能的方法。

論文鏈接:https://science.sciencemag.org/content/368/6495/eaam9744

軟件

我們可以通過性能工程(performance engineering)把軟件做得更加高效,即通過重構(gòu)軟件加快其運行速度。性能工程能夠消除程序中的效率低下問題,這種問題被稱為軟件膨脹(software bloat),是由傳統(tǒng)軟件的開發(fā)策略造成的,即盡可能縮短軟件開發(fā)時間而不是縮短軟件運行時間。性能工程還可以根據(jù)運行的硬件來定制軟件,如利用并行處理器和矢量單元。

為了說明性能工程的潛在收益,我們思考一個簡單的問題:將兩個 4096×4096 的矩陣相乘。首先用 Python 代碼實現(xiàn),代碼在一臺現(xiàn)代計算機上做該矩陣乘法需要 7 個小時,如表 1 中的第一行(Version 1)所示,僅達到機器峰值性能的 0.0006%。

但是,用 Java 實現(xiàn)的代碼(Version 2)速度可以提高到原來的 10.8 倍,用 C 語言(Version 3)又可以提升到 Java 的 4.4 倍,運行時間比最初的 Python 版本快 47 倍。這種性能的提升來源于程序運行時操作數(shù)量的減少。

此外,根據(jù)硬件的特點來調(diào)整矩陣乘法的代碼甚至可以讓運行速度提升 1300 倍。這樣的收益是來源于在 18 個處理內(nèi)核上并行運行代碼(Version 4),利用處理器的存儲層次結(jié)構(gòu)(Version 5),矢量化代碼(Version 6)以及使用英特爾的高級矢量擴展指令集(AVX)(Version 7)。最終,代碼優(yōu)化的方法可以把這項任務(wù)所需的時間減少到 0.41 秒——跟需要 7 個小時運行的 Python 相比速度提升了 6 萬倍!

值得一提的是,用 Python 3 做同樣的事還要更慢,需要耗費 9 個小時。

算法

算法能夠為解決問題提供更有效的方法。實際上,自 20 世紀 70 年代末以來,算法在解決最大流問題上的速度提升幾乎和硬件帶來的加速一樣多。但是,在已有的算法問題上的進展是不均勻的和零散的,最終必將面臨收益遞減的情況。因此,目前最大收益常常來源于新問題領(lǐng)域的算法(例如機器學(xué)習(xí))以及開發(fā)能更好地反映新興硬件的新理論機器模型。

圖 1:在求解頂點數(shù) n=10^12,邊數(shù) m=10^1.1 的圖形的最大流問題上的主要算法進展。

圖 1 展示了最大流算法隨時間的進展。在 38 年的數(shù)據(jù)中,最佳算法的性能收益可與摩爾定律所帶來的收益相媲美,盡管過去 20 年,在該問題上并沒有提升性能的新算法出現(xiàn)。該例子重點介紹了有關(guān)算法的 3 個重要觀測結(jié)果:

1、在已有算法上的改進是不均勻的,而且具有偶然性;

2、算法創(chuàng)新得到的收益可以和摩爾定律相媲美;

3、解決任何已有的問題的算法改進最后都會進展趨緩。

盡管對于已有問題的研究仍能獲得少量收益,但是算法上的大量進展將來自于以下 3 個方面:

1、進軍新的問題領(lǐng)域;

2、解決可擴展性問題;

3、定制算法以利用當前硬件。

硬件架構(gòu)

在討論硬件架構(gòu)之前,我們先來談?wù)劇窪ennard 縮放比例定律」。

Dennard 縮放比例定律是一個鮮為人知但同樣重要的觀察結(jié)果,Robert Dennard 在 1974 年提出,隨著晶體管變得越來越小,它們的功率密度保持不變,因此功率的使用與面積成比例;電壓和電流的規(guī)模與長度成比例。

結(jié)合「摩爾定律」晶體管的數(shù)量大約每兩年翻一番,這意味著效能功耗比(每消耗一瓦功率,計算機可提供的計算速率)以同樣的速度增長,大約每兩年翻一番。

Dennard 縮放比例定律在提出之后的 30 年后結(jié)束,原因并不是因為晶體管的尺寸不再縮小,而是因為電流和電壓不能在繼續(xù)下降的同時保持可靠性了。隨后「多核時代」就到來了。

圖 2:1985 年 - 2015 年,SPECint 性能(串行為主)、SPECint-rate 性能(并行)、微處理器時鐘頻率提升的情況。坐標起點為 1985 年的 Intel 80386 DX 微處理器。

上圖 2 展示了微處理器的三組基準數(shù)據(jù):首先,如圖中綠點所示,從 1985 年到 2005 年,由于 Dennard 縮放比例定律的終結(jié),時鐘速度在增長了 200 倍之后趨于平緩。

在 Dennard 縮放比例定律時代,由于時鐘速度提高和其他架構(gòu)變化的推動,微處理器在 SPECint 和 SPECintrate 基準測試中的性能迅速提高,目的是在典型的用戶工作負載上對計算機性能建模。

SPECint 基準主要由串行代碼組成,SPECint-rate 基準測試則是并行的。這兩個基準測試在單處理器計算機上的表現(xiàn)是相同的。但從 2004 年之后,由于機器添加了多個內(nèi)核以及其他的顯式并行機制,兩者的性能出現(xiàn)差異。

實際上,從 2004 年到 2015 年,性能最佳的芯片上并行應(yīng)用程序的性能增長了 30 倍,大概每兩年就會翻一番。相比之下,同期的 SPECint 基準(灰點)僅增加了三倍。

既然設(shè)計者已經(jīng)接受了并行性,主要問題就是如何簡化處理器和利用應(yīng)用程序的并行性。未來,兩種簡化策略將占據(jù)主導(dǎo)地位:處理器簡化和領(lǐng)域?qū)iT化。

硬件架構(gòu)是可簡化的。一種是通過簡化處理器,將復(fù)雜的處理核替換為晶體管數(shù)量需求更少的簡單處理核。由此釋放出的晶體管預(yù)算可重新分配到其他用途上,比如增加并行運行的處理核的數(shù)量,這將大幅提升可利用并行性問題的效率。

簡化的另一種形式是領(lǐng)域?qū)iT化(domain specialization),即針對特定應(yīng)用程序定制硬件。這種專門化舍棄了某一領(lǐng)域不需要的處理功能,同時允許針對領(lǐng)域進行更多的自定義,比如降低機器學(xué)習(xí)應(yīng)用程序的浮點精度。

在后摩爾時代,軟件、算法和硬件體系架構(gòu)的性能改進越來越依靠在堆棧的各個級別上進行并發(fā)更改。從工程管理和經(jīng)濟的角度看,這類更改在大型系統(tǒng)組件中更容易實現(xiàn),因為這些可重用的軟件通常具有超過一百萬行的代碼,或者是擁有相當復(fù)雜的硬件。

如果一個組織和公司擁有此類的大型組件,通過重新設(shè)計模塊度來獲得性能提升是比較容易的。此外,成本和收益可以合在一起考慮,這樣一來,大型組件中某一部分重要但昂貴的更改就能用該組件中其他部分的收益來彌補。

「底層」或許還有機會

在后摩爾時代,處于「底層」的制硅工藝改進將不再提供那么顯著的計算機性能提升,但「頂層」的軟件性能更迭、算法開發(fā)和硬件精簡,將使計算機應(yīng)用程序的速度更快。與曾經(jīng)「底層」明顯的收益不同,這些「頂層」的收益將會是參差不齊、零散且機會性的。而且,隨著對特定計算方法的探索不斷深入,這種邊際收益將會呈現(xiàn)遞減趨勢。

當然,一些新興技術(shù)也可能從「底層」推動發(fā)展,比如 3D 堆疊、量子計算、光子學(xué)、超導(dǎo)電路、神經(jīng)形態(tài)計算、石墨烯芯片。這些技術(shù)目前還處于起步階段,尚未成熟,暫時無法與基于硅的半導(dǎo)體技術(shù)競爭。但不可否認的是,它們的確具備長期潛力。

參考鏈接:

https://science.sciencemag.org/content/368/6495/eaam9744

編輯?∑Gemini

來源:機器之心

文章推薦

?施一公:為什么要獨立思考、為什么要尊重科學(xué)?

?python實現(xiàn)五種常見算法

?中科院博導(dǎo): 讀博士感到痛苦的五個原因

?為什么世界是由數(shù)學(xué)構(gòu)成的

?19歲當保安,25歲成為CEO,退掉朋友圈,憑什么TED選中他?

?雜耍中的數(shù)學(xué)

總結(jié)

以上是生活随笔為你收集整理的改改Python代码,运行速度还能提升6万倍,Science:先别想摩尔定律了的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。