異構(gòu)眾核計算的“三個三”
一言以蔽之,“三個玩家三條路,三大挑戰(zhàn)待征服”
正如Jack Dongarra教授所言,“在可預見的未來,異構(gòu)(眾核)計算將為成為主流”。硬件有三個玩家,會走三條完全不同的路,而軟件也會面臨三大挑戰(zhàn)。
自從2006年AMD收購ATI之后,CPU市場的Intel對AMD,GPU市場的nVIDIA對ATI的2對2格局就被打破了,形成了現(xiàn)時異構(gòu)計算的“三國演義”:Intel對AMD對nVIDIA。
A M D是這三家中惟一同時擁有成熟C P U和GPU產(chǎn)品線的廠商。在“Future is Fusion”的戰(zhàn)略下推出了集成顯卡的CPU,未來仍將向集成X86 CPU +GPU的APU芯片繼續(xù)進化。
nVIDIA在2004至2006年之間,趁多核CPU性能青黃不接之際,提出了通用GPU的概念,并進軍計算市場。五、六年之間就將TOP500中排名靠前的3臺超級計算機納入麾下,占領(lǐng)了HPC的制高點。最近由于面向個人消費級的獨立顯卡Geforce市場受到?jīng)_擊,發(fā)展停滯不前,從而無法繼續(xù)攤薄Tesla計算卡的生產(chǎn)成本。不過就算如此,未來GPU的產(chǎn)品形態(tài)最大可能還是單卡。當然如果“丹佛”芯片研發(fā)順利的話,也不排除A R M CPU+G P U的芯片問世。
Intel前幾年針對GPU對計算市場的奇襲,倉促應(yīng)戰(zhàn)的Larrabee出師未捷。痛定思痛之后,一邊“圍魏救趙”,推出集成顯卡的Sandy Bridge,逆襲Geforce的大本營個人顯卡市場;另一邊放棄原有的GPU思路,改用全新架構(gòu)MIC(Many Integrated Cores),明年年中推出的Knight Corner頗有幾分值得期待之處。雖然明年的新MIC仍會以PCIE卡的形態(tài)發(fā)布,但從成本及編程等綜合考慮,PCIE卡應(yīng)該并非Intel的最佳選擇。因此如果MIC投石問路成功,Intel很有可能將其集成到主板中,以解決目前PCIE卡在計算時遇到的主板-插卡之間數(shù)據(jù)傳輸瓶頸的通病。
由于異構(gòu)眾核的硬件更新?lián)Q代頻率驚人,甚至超越了CPU的摩爾定律,因此軟件研發(fā)將不可避免地會在編程策略、目的和工具上遇到各自的挑戰(zhàn)。
Revolution V.S. Evolution:
關(guān)于編程策略,到底是采用推倒重來的革命(Revolution)方式還是逐步改良的進化(Evolution)方式,一直都存在很大的分歧。某些學者認為,從編程思路來說,異構(gòu)眾核不僅完全不同于串行CPU,甚至不同于多核CPU。因此如果過于執(zhí)著于原先的串行CPU,可能會束縛在原有的思路中,導致無法寫出優(yōu)秀的異構(gòu)眾核程序。應(yīng)當采用全部推倒,重新開發(fā)的方法。不過我個人對此
有不同的看法:先改良成多核CPU版本作為過渡,這樣可以熟悉代碼,又可以深入挖掘算法的內(nèi)在并行性,然后再改良成異構(gòu)眾核版本。逐步改良所需花費的時間和精力不會很大,但能有效利用現(xiàn)有代碼,保護用戶先前投資,同時更容易掌控進度,規(guī)避風險,因為無法實現(xiàn)多核CPU的算法,通常無法設(shè)計高效的異構(gòu)眾核版本。然而目前,針對逐步改良所必須的SDK和工具集還很不完善。
Performance V.S. Performance Portability:
伯克利大學的David Patterson教授曾提到,性能(performance)一直以來都是并行編程的惟一目的。然而進行異構(gòu)多核時代之后,性能可移植性(performance portability)將有望逐漸成為第一要義。如果某算法在指不同廠商的產(chǎn)品,或相同廠商的不同代產(chǎn)品之間,都有比較穩(wěn)定的性能加速比,則稱該程序有良好的性能可移植性,例如在異構(gòu)平臺A/B/C上,加速比分別為10、8、7的算法,就要遠好于20、2、3。之前無論是串行程序還是并行程序都是運行在CPU之上,其本質(zhì)的計算模型是一致的。但異構(gòu)多核就不同了,MIC架構(gòu)與GPU架構(gòu)完全不同,nVIDIA的GPU與AMD的GPU區(qū)別很大,即使是同一公司不同代的GPU之間,硬件參數(shù)和性能也有不小的差別。因此性能可移植性所帶來的挑戰(zhàn)會越來越嚴峻,沒有良好的性能可移植性,大家就只能緊隨廠商的步伐,頻繁地更新程序。然而到目前為止,還沒有一個成熟到可用的解決方案。
Explicit V.S. Implicit:
異構(gòu)眾核計算目前所采用的工具,無論是nVIDIA主推的C U D A還是A M D主推的O p e n C L,都屬于顯式(explicit)并行工具,即需要程序員手動處理并行性,分配內(nèi)存和協(xié)調(diào)線程間同步等,這與集群上的MPI性質(zhì)相同。而隱式(implicit)并行工具則提供了相應(yīng)的工具和編譯器,能部分解決這些問題。鑒于難學難用的顯式并行MPI只在HPC社區(qū)內(nèi)流行,而異構(gòu)眾核計算又志不在此,因此雖然性能上會打著折扣,但易學易用的隱式并行最終大有可能成為主流。然而目前雖有一些可用的隱式并行產(chǎn)品如法國CAPS的HMPP,但處理實際復雜算例的能力還有待進一步完善和提高。
在可預見的未來,從智能手機到超級計算機,都將出現(xiàn)異構(gòu)眾核計算的身影。目前三大硬件廠商基于各自商業(yè)利益和技術(shù)優(yōu)勢的考慮,分別選擇了三條完全不同的產(chǎn)品路線,最終將帶來一場異常慘烈的搏殺。誰能先“軟硬通吃”,形成類似P C時代的Wintel聯(lián)盟,搶先一步提供針對上述三大挑戰(zhàn)的解決方案,就能為勝利天平自己的一邊添加一個重量級的砝碼。
林新華上海交通大學網(wǎng)格中心副主任