天天看點

《多核與GPU程式設計:工具、方法及實踐》----第1章 概 述 1.1 多核計算機時代

本節書摘來自華章出版社《多核與gpu程式設計:工具、方法及實踐》一書中的第1章,第1.1節, 作 者 multicore and gpu programming: an integrated approach[阿聯酋]傑拉西莫斯·巴拉斯(gerassimos barlas) 著,張雲泉 賈海鵬 李士剛 袁良 等譯, 更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

本章目标:

了解計算機(計算機體系架構)設計的發展趨勢以及該趨勢如何影響軟體開發。

學習基于flynn分類的計算機分類方法。

學習評估多核/并行程式性能即加速比和效率的必備工具。

學習測量和報告程式性能的正确實驗方法。

學習amdahl和gustafson-barsis定律,并使用這兩個定律預測并行程式性能。

在過去的40年中,數字計算機已經成為技術和科學發展的基石。遵循20世紀70年代摩爾(gordon e. moore)發現的摩爾定律,計算機的資訊處理速度(性能)呈指數提高,這使得我們可以處理更加複雜的問題。

令人驚訝的是,即使在今天,摩爾定律也描述了行業的發展趨勢。然而,在大衆科學中有一個被忽視的問題需要澄清一下:摩爾定律描述的是半導體數量呈指數級增長,而不是運作性能。圖1-1描述了摩爾定律。

這是一個非常容易犯的錯誤,因為半導體數目的增加伴随着運作頻率(時鐘頻率)的提高。但是,時鐘頻率的增加會導緻産熱的增加。為此,晶片設計者不斷降低電子電路的操作電壓(目前的運作電壓為1.29v)。然而,這并不足以解決這個問題。是以,時鐘頻率的發展不可避免地陷入停滞。在過去10年中,主流時鐘頻率維持在2~4ghz之間。

《多核與GPU程式設計:工具、方法及實踐》----第1章 概 述 1.1 多核計算機時代

是以,擷取更高計算能力的唯一途徑就是在晶片内部內建更多的計算邏輯和計算核心。随着amd于2015年推出第一款雙核晶片(amd 64 x2),更多的多核晶片也被不斷推出。這其中不僅包括擁有大量計算核心的同構晶片(如 64核tilera,tile64),而且包括異構晶片,如cell be,它采用power架構,并用于sony playstation 3。

這些晶片是多路(multisocket)平台(即,20世紀90年代中後期出現的搭載多個cpu的計算機)的自然演化。然而,gpgpu(通用計算圖形處理單元)的出現是一個意外。gpgpu是指利用gpu (graphical processing unit,圖形處理器)進行通用計算。雖然單個gpu核與同時代的cpu核相比性能很差,但是gpu采用了大規模并行架構,擁有通過高帶寬、高性能ram相連的成百上千個計算核心。是以,同cpu相比,gpu的性能以數量級提升。

在能源日益緊張的今天,gpgpu還有一個額外優勢:它提供了卓越的gflop/w的性能。換句話說,可以使用同樣的能源進行更多的計算。這在伺服器和雲基礎設施領域是非常重要的。在這些領域中,cpu在其運作壽命中消耗的能源費用要比其購買價格高得多。

gpgpu技術被認為是颠覆性的,在很多層面上确實是這樣:它為使用現代單核甚至多核cpu技術仍然無法解決的問題提供了解決方案。但是,gpgpu需要新的軟體設計、開發工具和技術。據預測,在不久的将來,需要數百萬個線程來開發下一代高性能計算硬體的性能。

然而,所有這些多核晶片帶來的性能提升都不是免費的:需要對按部就班執行的傳統算法進行重新設計。