電腦效能應用與安全研究室 Performance, Applications and Security Lab


我們的研究範圍很廣,從嵌入式系統、手機應用、一直到雲端計算、商務應用、資訊安全都有做。
我們的合作研究夥伴很多,包括聯發科、IBM、中研院、資策會,還有和台大、清大、交大的教授合組研發團隊
,包括高階應用處理器架構研究、虛擬化技術、異質計算、系統軟體等重要技術的研究與創新,我們很關切台灣人才與產業的未來。

2013年1月4日 星期五

談Intel的60核心協同處理器Xeon Phi

最近用『說』的方式,發表了一些看法,感覺上還滿方便的。ITHome的主編來訪問我,聊個半小時,講的東西就被記錄下來,比自己打字還快 :)

我講的東西被刊登在這篇報導裡:
Intel推60核心協同處理器Xeon Phi挑戰GPU繪圖卡
http://www.ithome.com.tw/itadm/article.php?c=77741&s=1

有些話不便在採訪中講得太重,免得被斷章取義,在這裡補充一下,在古文裡,這叫做『注』『釋』或『註釋』 :)

以下原文摘要用斜體字,註釋用藍字紅字。開始的那幾段跟我沒有關係,是編輯自己整理的,或是訪問其他人的,後面那幾段才是我講的,算是壓軸嗎?

每年公布兩次的全球超級電腦5百強排名,不只是各國展現運算國力的排名,從排名中也可以看出高效能運算技術的新趨勢。… 但是,這份排名中,也有6臺超級電腦採用了Intel剛推出的第一款60核心協同處理器Xeon Phi,其中包括了全球超級電腦排名第七,位於德州先進運算中心的Stampede超級電腦,這也是第一部採用Xeon Phi協同處理器的超級電腦。 … Xeon Phi的首度登場,超級電腦除了利用GPU來提高運算效能的作法之外,又有了新選擇。 

XEON Phi登場,為什麼選超級電腦作為最初的戰場?當然是有理由的。

1 Pflops相當於每秒可以執行1,000兆次的數學浮點運算。而可以提供17.59Pflops運算效能的Titan超級電腦有多快?每個人每秒若能計算一次浮點運算,全臺灣2,300萬人需連續計算24年所累積的計算量,就相當於Titan用1秒鐘所完成的計算量。

這段實在是有講等於沒講,現在很多地方都好像有這種弱智的對話。

因為Nvidia早在1999年就推出第一款GPU繪圖卡,2006年時更發表了GPU的開發框架CUDA(Compute Unified Device Architecture),協助開發人員透過C語言或Fortran語言來運用GPU的平行運算核心,2008年更推出專供高效能運算用的GPU繪圖卡後,不只超級電腦,許多HPC高運算伺服器也紛紛搭載Nvidia的GPU繪圖卡,來提高運算效能。 … 不過,Nvidia GPU繪圖卡在平行運算領域的地位,開始受到了挑戰。英特爾推出了Xeon Phi協同處理器來對抗Nvidia的GPU。 

CUDA是比較早出來的東西,市場佔有率高。不算非常好用,但是硬體的性能價錢比很高,所以很適合用來建超級電腦,反正超級電腦的使用者已經很習慣花很多時間去開發和調校城市了。(我博士論文就是搞這個的)。

英特爾推出超多核心架構的Xeon Phi協同處理器5110P,採用PCIe介面卡設計,可作為HPC的運算加速卡,單顆處理器內建了60個運算核心,運算效能媲美1臺1997年的超級電腦。 … 這款處理器採用22奈米製程,時脈1.053GHz,採用常見的PCIe介面卡設計,並搭配被動式散熱機制,功耗為225瓦,可搭載8GB的GDDR5記憶體。 … 除了5110P之外,另外還有還將推出一款更低價的Xeon Phi 3100協同處理器,可支援6GB記憶體,同樣採用22奈米製程,但熱設計功耗較高,達到300瓦特,預定明年上半年上市,售價將會低於2,000 美元。

2000美元的處理機貴嗎?新東西當然貴,如果量夠多的話,價格會降下來的。問題是,銷售量有沒有辦法衝高?這是雞生蛋 蛋生雞的問題。Intel在個人電腦的市場上呼風喚雨,憑藉的就是市佔率,現在豬羊變色,Intel是後來者,要靠什麼打江山?


英特爾亞太區暨大中華區高效能運算解決方案架構師Scott David表示,因為Xeon Phi協同處理器延續了Xeon的x86架構,所以,可以沿用平行處理常用的開發語言如C、C++和Fortran語言,也能沿用原有的平行運算模型,所以,在原有Xeon E5處理器環境中執行的程式碼,略作調整並重新編譯,也可以在新的Xeon Phi處理器執行環境中,不需要重新改寫程式碼,就可以提高效能。

Intel官方的說法,就是靠這個Intel最厲害的市佔率,叫大家不要學什麼CUDA了,用原本寫給多核心Intel (x86)電腦的方法就對了!真的嗎?廠商講的話不能盡信,要仔細檢視喔,所以我小小吐槽一下。

不過,臺灣大學大資工系副教授洪士灝認為,雖然可以執行,但要充分發揮Xeon Phi的運算效能,還是得費心調校平行運算的程式。

『費心調校』這四個字,說得很模糊,但是內行的人就聽得懂。這不是普通人會做的事,剛好可以拿來訓練我的學生!

若用核心數來比較,Nvidia的GPU繪圖卡擁有高達2千多個運算核心,而Xeon Phi介面卡只搭載一顆Xeon Phi,只有60核心。看起來GPU的核心數比Xeon Phi多很多,但是,洪士灝認為,Nvidia的GPU繪圖卡和Xeon Phi介面卡,同樣都是可以用來加速HPC平行運算的效能,但兩者適合的運算架構截然不同,對於平行運算的加速效果,不一定能放在同一個標準上比較。

不一定能放在同一個標準上比較,那要怎麼比較?請來修計算機結構。接下來這幾段是我對採訪人員免費上的課:

臺灣大學大資工系副教授洪士灝表示,GPU類似SIMD架構,而Xeon Phi則是MIMD架構,兩者的運算架構截然不同,擅長的平行運算任務也不同。HPC常見高效能運算方式有兩種,第一種是資料平行化的運算方式,也就是Data Parallel,也可稱為Stream計算。這種作法適合處理大量資料,資料就像水流一樣持續提供給處理器,處理器執行完運算指令後,處理過的資料不需保存在GPU加速卡中,而是繼續提供下一筆資料給處理器,就像水流一樣持續流動。洪士灝表示,GPU擅長這種運算方式,運算量不大,也不用保留資料,處理完就送走。 


另外一種運算方式則是要對同一批資料反覆進行大量運算。例如汽車碰撞的程式,可以用來計算汽車和牆壁碰撞後,汽車或汽車內木偶的變形過程。分析人員可用3角形來模擬汽車外觀,再透過平行運算來計算汽車受力後的變化,這是工程上常用的有限元素分析方法或者稱為蒙地卡羅模擬。運算時,程式每次計算一個奈秒後的變化,如哪些地方受力會發生改變,計算出結果後,程式再依據前一奈秒的結果,採用同樣的運算規則來計算下一個奈秒的改變情形。資料就只有車子和牆,同一批資料要計算幾百萬次。洪士灝認為,Xeon Phi比GPU更擅長處理這類型的運算。 

因為GPU擅長Stream風格的平行計算方式,接近是SIMD(Single Instruction, Multiple Data,單一指令多重資料)的運算模式,這是指所有運算核心都執行同一個指令,只是作用在不同的資料上。而Xeon Phi則是MIMD架構(Multiple Instruction, Multiple Data,多重指令多重資料)的運算模式,Xeon Phi中的60個核心,每個核心都可以處理不同的指令和不同的資料。正因為如此,每個處理核心彼此需要許多同步和通訊的機制,所以,Xeon Phi處理核心的電路遠比GPU的核心更複雜。 

而SIMD架構的GPU,上千個處理核心會分群執行,例如一次使用256個核心,每個核心都是同步執行相同的指令,所以,彼此之間不需複雜的通訊或同步機制,而且所有核心可以共用同一個指令分派元件,所以,單一運算核心的電路可以簡化,就很容易在單一晶片中設計出大量的運算核心。但是,洪士灝認為,遇到蒙地卡羅模擬這類運算需求,例如汽車碰撞模擬,要對同樣的資料進行反覆大量運算的需求,GPU就不容易處理。

我已經盡可能用白話文解釋了,聽不懂的話,我也沒辦法。話說回來,為什麼中文的科普教材幾乎都沒有『電腦科學與工程』?電機資訊人應該去編一些科普教材,向下扎根才是。

不過, Xeon Phi介面卡目前內建記憶體只有8GB,有些大型運算任務的資料量容易超過這樣的規模,程式得先切割資料後才能放入Xeon Phi中計算,這樣作會影響運算效能,所以,Xeon Phi目前也不一定能滿足這類大型運算的需求。 洪士灝表示,Xeon Phi的處理核心是x86架構,雖然複雜性相當於是十年前的處理器架構,只是現在集中到同一個晶片中,就像是在一張主機板上有60顆處理器一樣,彼此組成運算叢集。「若能找到適合這類處理器的應用,這種在單晶片中放入60核心的作法,能以更低成本來取代現有的伺服器叢集或大型平行運算用的電腦。」他說。

Xeon Phi到底好不好用?答案是:『It depends』。要看你遇到的問題而定,見招拆招。有多少招?請參考拙著『 Optimizing Parallel Applications』,這本1998年寫的博士論文,到現在還很有用。

我們實驗室很快就會拿到這個XEON Phi來玩,有興趣的同學可以來詢問。



1 則留言:

  1. 洪老師你好
    對XEON Phi也很興趣 自OpenCL發跡開始
    就一直注意intel在這方面的硬體
    目前intel也只有linux的驅動
    不知道何時才會有windows的支援
    偏偏C++AMP很不爭氣 就一定要WDDM1.2才能用除法
    CUDA搞這麼久了編個碼還是覺的很費心力
    OpenACC又還在成長

    總之
    很羨慕這麼快就有實品可玩
    不知道可否用MPI的碼直接上
    如果平常有問題不知何時可以打擾老師?

    回覆刪除