開放才是未來
早在2012年,AMD就高調(diào)宣布要設(shè)計基于64-bit ARM架構(gòu)的處理器,而為了在2014年處理器問世前打造一條完整的軟硬件生態(tài)鏈,AMD更是同ARM一起成立了HSA基金會(異構(gòu)系統(tǒng)架構(gòu)基金會)。HSA基金會倡導(dǎo)的是一種更簡單、開放,同時還可以涵蓋PC與移動設(shè)備(不光是跨 OS)的標準。目的在于通過基于GPU的并行運算來提升處理器的表現(xiàn)。比如圖像處理器將不僅僅用于圖像、游戲等方面,普通的任務(wù)和應(yīng)用也可以用到它。

圖:HSA幫助從服務(wù)器端到移動端提升效率、降低功耗
“雖然用OpenCL這個工業(yè)標準已經(jīng)能達到這種效果,但這樣的做法仍舊太復(fù)雜,而且主流的開發(fā)者也不容易接受。NVIDIA雖然大力推進自己的CUDA運算架構(gòu),不過CUDA和OpenCL是同一層面的技術(shù),而基于私有架構(gòu)的開發(fā)棧終將沒落。”
AMD中國開發(fā)合作與解決方案中心總監(jiān)楚含進坦言,目前AMD所有做的事情都是為將來某一段時間產(chǎn)品集中爆發(fā)做技術(shù)上系統(tǒng)儲備。在HSA基金會中,其中的廠商從服務(wù)器到PC到手機廠商都會有,AMD將幫助各個伙伴更好的去驅(qū)動軟件生態(tài)系統(tǒng),促使軟件里面的工具、軟件里面的庫、軟件里面的開發(fā)環(huán)境讓更多的人更容易的去使用。
“其次,我們將一直致力于降低功耗,這兩年我們會把生態(tài)鏈去閉環(huán)運營。在中國來說,我們有一個開發(fā)團隊會幫助國內(nèi)的開發(fā)人員能夠?qū)W會如何在GPU上進行編程;而在技術(shù)層面上,我們更希望能夠向著平板電腦這個方向進行過度。 最終目的是在低功耗上推出AMD的一系列產(chǎn)品,x86和ARM雙核并行戰(zhàn)略。”
而從市場的直接反饋結(jié)果來看,AMD擁抱開放技術(shù)的策略也受到了開發(fā)者的一致歡迎。
作為軟件開發(fā)人員尤其是學(xué)生開發(fā)人群,是AMD首先取悅的人群,在前不久舉行的異構(gòu)編程大賽上,AMD收到了40多個作品,從開發(fā)者的關(guān)注點來看,他們也正向著云計算、多媒體、移動互聯(lián)網(wǎng)應(yīng)用這些深層次的產(chǎn)品優(yōu)化的方向,同目前的行業(yè)熱點是有很好的契合點的。并且在相當多的參賽作品中,無論是學(xué)生本人,還是在導(dǎo)師的帶領(lǐng)下,這些行業(yè)還是都比較容易產(chǎn)生有創(chuàng)意或者是有深度有質(zhì)量的軟件實現(xiàn)的算法或者產(chǎn)品的核心技術(shù),而這些注定是未來軟件公司差異化的核心。
從作品的類型來看,有數(shù)據(jù)搜索和數(shù)據(jù)的作品,也有算法優(yōu)化方面的內(nèi)容。而在多媒體、圖形圖像方面,比如損失圖像的修復(fù)、二維圖像的三維化、圖像的拼接以及細化和分割,這些(技術(shù))在很多領(lǐng)域無論是移動還是多媒體領(lǐng)域有著深遠的意義。
對于此次大賽的結(jié)果,楚含進表示,“大賽只是AMD對異構(gòu)編程技術(shù)的一個普及推廣形式。根據(jù)以往的大賽經(jīng)驗,在作品的推廣中,學(xué)生是不利的。一般參賽的大部人是年輕人,年輕人有干勁,但是他們有時只見樹木不見森林。如果把大賽中學(xué)生的每一件作品拿出來,稍加深化補充,都可以成為一個很好的分子。但是把分子作為一個產(chǎn)品還要花一段時間的。所以AMD一直在思考能不能把學(xué)生做的引擎收集起來,不論是計劃上的還是部分實現(xiàn)上的,讓他們能夠沿著這個方向更好的研究下去,產(chǎn)生一些有影響力的,不論是論文還是實際案例,抑或在他們自己的產(chǎn)品中能夠把它延伸到自己研究的領(lǐng)域。”
“因此,從AMD幫助學(xué)生開發(fā)技術(shù)提高來看,會做三件事,第一是與CSDN一起來探討利用學(xué)生的自身優(yōu)勢和他們本身已經(jīng)完成的工作,繼續(xù)能夠指導(dǎo)他們做一些成果出來。我們不是只針對TOP10,甚至是TOP20。第二種是扶植學(xué)生能夠真正的發(fā)布自己的作品,以及針對于當前工作真正有用的。我們給予他們業(yè)務(wù)層面的指導(dǎo)。還有一種想法是把他們的某一些業(yè)務(wù)成果提交給我們的客戶,這樣能把他們轉(zhuǎn)化為真正的生產(chǎn)力。第三點是我們希望能夠與CSDN形成一個比較切實的基于GPU的異構(gòu)開發(fā)人群,然后把一些作品放在開源的社區(qū)來進行一些補充。這個項目本身不會成為一個獨立運行的具有某種功能的產(chǎn)品模塊,但是我們希望過開源社區(qū)的力量,把這些產(chǎn)品形成一種相對來說比較獨立通用的一個庫,并提供相應(yīng)的訪問接口。這樣,越來越多的人就會去很容易的使用它,而且這樣可以真正的培養(yǎng)開發(fā)人員尤其學(xué)生的軟件產(chǎn)品意識。”
AMD結(jié)盟ARM, 橫跨x86和ARM架構(gòu)?
目前的芯片市場,實際上是有兩大芯片陣營,ARM與x86兩大陣營在博弈。在智能手機出現(xiàn)之前,是通用處理器的天下,這種通用處理器包括ARM、x86。實際上更多領(lǐng)域用的還是通用處理器,通用處理器時代,CPU的設(shè)計是個門檻,決定這個公司的成敗。但隨著智能手機和移動互聯(lián)的大量實現(xiàn),決定這個公司的未來是是否具有設(shè)計CPU以及設(shè)計多核CPU的能力。
“通用處理器的設(shè)計已經(jīng)不再是門檻了,因為ARM已經(jīng)把整個CPU體系幫你設(shè)計完成了。第二,Intel的x86處理器通用處理器也由于開始受到主機的云應(yīng)用的影響。用戶會問,問什么要用通用處理器來做這種非通用的應(yīng)用?給我一個理由,這會是一個很大的問題。”從技術(shù)層面,這背后其實系統(tǒng)和產(chǎn)品設(shè)計日益差異化需求的問題。、
在未來的CPU發(fā)展趨勢上也許我們可以看到幾個趨勢:一、像Facebook、Google已經(jīng)把精力放在整個架構(gòu)上,希望他們自己的服務(wù)器作為行業(yè)標準化,個性定制化?開發(fā)化,所謂的標準化就是說不需要限定在某種通用處理器,而是需要針對自己應(yīng)用和系統(tǒng)架構(gòu)構(gòu)建專屬系統(tǒng)。二、在移動領(lǐng)域,芯片設(shè)計的趨勢是從通用處理器到SoC,而從SoC又逐漸是往專屬領(lǐng)域有獨特要求的處理器演變。這種情況下,生產(chǎn)通用處理器的公司會受到非常非常大的挑戰(zhàn),那么將來的局面會是,任何一個行業(yè)里面的任何一個公司所生產(chǎn)出來的芯片不會是萬能的,應(yīng)該是在本行業(yè)里有獨特的特點,符合行業(yè)的趨勢和需求。比如做手機的核心一定是通信功能,做游戲的核心一定是游戲的引擎,做服務(wù)器的核心一定是數(shù)據(jù)處理能力和帶寬和在某個領(lǐng)域具有處理特定需求的能力。
“AMD對于GPU的發(fā)展技術(shù)上有很獨創(chuàng)的見解,在游戲以及圖形圖像處理上非常的專注,所以這就是AMD能夠走SoC和將來走可定制化專用服務(wù)器領(lǐng)域的一個信號”,楚含進表示。
可以看到,目前x86上很多的開源項目是集成在服務(wù)器領(lǐng)域里面,而傳統(tǒng)的ARM則是集中在手機領(lǐng)域。兩者本質(zhì)的區(qū)別是x86的開源是集中在通用處理器上,而ARM在完善了基于以linux內(nèi)核為核心的一套開源系統(tǒng)之后,更多的會布置在專用的領(lǐng)域上,比如基于ARM的多媒體應(yīng)用、基于ARM的編譯器,以及很多開源項目。隨著開源的項目越來越多,在這個領(lǐng)域就會形成一定的技術(shù)門檻,尤其是軟件技術(shù)門檻,所以x86面臨的問題就是開發(fā)者為什么要用通用處理器去做非通用的事情。在這種大的背景下,如果所有的開源都是為通用服務(wù)的話,為什么還要用通用的軟件去搭建一個需要特定處理能力的平臺?所以在目標不一致、指導(dǎo)思想不一致的情況下,研發(fā)人員在做開源項目的整個方向就不一樣。舉個例子,比如開源項目Ubuntu,它在PC上的用戶體驗與在手機上完全不一樣,雖然都是同一套Linux,都是開源搭出來的。它桌面的Xwindow系統(tǒng)都已經(jīng)不再用在手機上了。如果你把Xwindow強行放在手機上,你所產(chǎn)生的成本,以及所占用的資源都會是很大的。那么在未來,ARM服務(wù)器和手機更交融的情況來看,ARM和x86兩種開源社區(qū)也會出現(xiàn)交融的情況,這種交融會帶來更多獨創(chuàng)的開源項目。比如在ARM上運行的底層軟件,能不能實時的在x86上運行,x86上運行的軟件能不能不改動任何代碼就放到手機上運行,現(xiàn)在已經(jīng)有一些好的開源項目在開始做了,比如LLVM項目。
ARM和x86在服務(wù)器市場的爭奪將愈演愈烈
另一個值得關(guān)注的領(lǐng)域在于服務(wù)器,標志性的事件是,以Facebook、百度為首的互聯(lián)網(wǎng)企業(yè)已經(jīng)在服務(wù)器端開始大量采用ARM架構(gòu)作為存儲服務(wù)器。
對此,楚含進認為,如果把web接入、存儲服務(wù)器等高并發(fā)但輕量級應(yīng)用作為當前云計算重要的落地形式,則云計算反而是ARM服務(wù)器在服務(wù)器的主要切入點。而在大數(shù)據(jù)、科學(xué)計算等領(lǐng)域,ARM要走的路很長。畢竟通用處理器在高性能計算,尤其是密集型計算中還是占有得天獨厚的優(yōu)勢,包括其軟件。但這并不妨礙大家看到,在移動終端硬件競爭和服務(wù)器硬件競爭上面,實際上服務(wù)器還是屬于藍海。
“百度用ARM不完全是基于價格的考慮,而是基于未來百度把自己的軟件按照專屬領(lǐng)域的業(yè)務(wù)特點然后來配備相應(yīng)的硬件而做的規(guī)劃,這種規(guī)劃會使自己從供應(yīng)鏈、軟件、硬件的生態(tài)系統(tǒng)當中變得標準化和開放,同時也會降低整個的成本。畢竟百度是以軟件為生存的一個公司,而ARM的服務(wù)器也只是有限的部署在在百度的某些服務(wù)領(lǐng)域,占很小的一部分。”
那么未來服務(wù)器芯片領(lǐng)域的格局是什么呢?以前服務(wù)器領(lǐng)域傳統(tǒng)的格局只會是HP、DELL、IBM這些公司,而ARM服務(wù)器的出現(xiàn)會使得芯片公司有機會在設(shè)計服務(wù)器,或者說是類服務(wù)器的技術(shù)門檻降低。因為原來只能在x86服務(wù)器上做的東西現(xiàn)在有可能用低成本的ARM服務(wù)器來替代。而對于芯片廠商來說,會使許多原來認為“在x86領(lǐng)域做服務(wù)器門檻很高”的企業(yè)進入這個領(lǐng)域。這也對以前老牌的服務(wù)器廠家提出了巨大的挑戰(zhàn),也就是說他如何去面對現(xiàn)在終端和云端這種相互的格局下能夠定位自己的產(chǎn)品。第二,在移動端,有著很深厚背景的公司,比如某些移動芯片制造公司,他們進入服務(wù)器領(lǐng)域也是有可能的,因為他們本身對ARM的技術(shù)并不缺乏,而且對自己所做的業(yè)務(wù)也很熟悉,軟件能力也很成熟,唯一缺乏的是制造服務(wù)器芯片的一顆芯。其實,很多公司已經(jīng)制造出了具有服務(wù)器功能的ARM架構(gòu)芯片,可是我們要看到,這并不代表他們能夠制造出真正意義上的基于ARM服務(wù)器和打造完整的ARM服務(wù)器軟件生態(tài)系統(tǒng)。
“很多ARM的服務(wù)器要考慮的不僅僅是功能上的,還有背板總線、內(nèi)存技術(shù)、主板布置技術(shù)、電源布置技術(shù)等,這都是做服務(wù)器廠家和做移動端廠家不同的地方。現(xiàn)在ARM的服務(wù)器剛剛開始,原來的服務(wù)器一家獨大的場面會逐漸變得市場細分,會使更多的芯片廠商進入服務(wù)器領(lǐng)域中來嘗試走出自己的紅海到另外一個藍海領(lǐng)域中擴大自己的陣營,AMD是有限的具有制造服務(wù)器芯片和打造服務(wù)器生態(tài)鏈的基因的公司,這一點是其他廠家無可比擬的,對于AMD 的ARM服務(wù)器未來一定會引起產(chǎn)業(yè)的格局變化”
從公司的長遠技術(shù)趨勢來看,AMD肯定不會放棄x86的;ARM短期內(nèi)在科學(xué)計算等高性能領(lǐng)域可能不大有很好的作為,因為其指令集架構(gòu)和應(yīng)用生態(tài)系統(tǒng)不是完全為這方面服務(wù)的。那么AMD基于ARM的異構(gòu)和x86的異構(gòu)在未來會不會在高性能領(lǐng)域成為主導(dǎo)呢?
楚含進表示,未來基于APU的服務(wù)器,不管是ARM異構(gòu)還是x86異構(gòu),一定會為高性能領(lǐng)域帶來非常非常重大的影響,會在很多在非結(jié)構(gòu)化數(shù)據(jù)處理方面能夠產(chǎn)生非常深的影響。因為在現(xiàn)在大數(shù)據(jù)的前提下,一些非結(jié)構(gòu)化數(shù)據(jù)的處理,有的時候不能完全靠CPU的處理能力,要靠GPU和CPU的協(xié)同處理能力才能更好的有效的完成。目前中國有很多客戶對異構(gòu)服務(wù)器都非常感興趣。而其實APU服務(wù)器的出現(xiàn),并不是簡單的CPU和GPU的合成,而是整個系統(tǒng)框架的變化,是主板布局的變化,最重要的是業(yè)務(wù)模型,編程模型的變化,整個業(yè)務(wù)的部署也會隨著在不同級別服務(wù)器的部署產(chǎn)生很大的變化。這些都會為業(yè)界帶來很好的機會。至于下一代高性能計算的趨勢,我認為不是簡單的CPU的編程或是GPU的編程,而是要看業(yè)務(wù),而且業(yè)務(wù)應(yīng)該是與云計算綁定在一起的。開發(fā)人員與業(yè)務(wù)人員會去考慮是單純的利用CPU還是異構(gòu)服務(wù)器。
而在高性能計算領(lǐng)域,GPU現(xiàn)在還是作為CPU的協(xié)作處理器存在,通過PCIE傳輸數(shù)據(jù),對異構(gòu)計算而言,這似乎是一個嚴重的瓶頸。
楚含進認為,GPU現(xiàn)在有兩個問題。第一,硬件瓶頸問題,就是GPU與CPU之間的通訊和數(shù)據(jù)搬遷造成成性能功耗的問題。第二,GPU作為一個協(xié)處理器或者將來作為一個可編程處理器,如何讓用戶更容易編程,這是GPU如何作為通用處理器的第二個瓶頸。
“AMD目前做了兩件事情,公司的大策略是低功耗,包括嵌入式,所做的一切都是為了低功耗。APU實際上是把CPU和GPU結(jié)合起來做了一個架構(gòu)叫做Heterogeneous System Architecture(HSA),這是一個異構(gòu)的架構(gòu)。目前LG、三星、高通都已經(jīng)和AMD在加入HSA基金會之力于異構(gòu)系統(tǒng)結(jié)構(gòu)的標準化,涵蓋服務(wù)器終端到桌面的領(lǐng)域。這個架構(gòu)最大的解決了兩個問題,第一,把CPU與GPU進行更緊密的結(jié)合,不僅在實際上減少了數(shù)據(jù)在CPU和GPU之間傳輸時產(chǎn)生的功耗,更對很多程序來說是莫大的幫助;第二,我們在HSA上為GPU開發(fā)出一套非常容易讓高層的編程語言人員能夠使用的工具,這個工具不用太多的考慮GPU里專有的編程語言。我們立足于希望這些開發(fā)人員利用這種工具能夠?qū)ψ约旱臉I(yè)務(wù)了解即可,而不用考慮GPU,而最終把GPU變成通用編程的模型。為了做到這一點,我們提供了HSA編譯工具、可調(diào)式的工具、基于開源的中間件。”
“在未來,我們真正的基于HSA的APU產(chǎn)品出來之后,你會看到對GPU的編程模型會徹底的改變。因為在CPU和GPU的通訊架構(gòu)上做了很徹底的改變,而使得CPU和GPU的數(shù)據(jù)的傳輸可以不通過內(nèi)存拷貝,這也就達到了省電和低功耗的目的。AMD把這種技術(shù)作為長足的發(fā)展,這種技術(shù)會用在我們的服務(wù)器領(lǐng)域,也會用在未來的PC機領(lǐng)域,同時也會用到低功耗的產(chǎn)品領(lǐng)域。”同時不要忘了,當我們說異構(gòu),不單單是指GPU和CPU,AMD的APU的SoC內(nèi)同時集成了如入視頻編碼,解碼,音頻處理,內(nèi)容安全等專用的處理模塊,同時提供特定的編程接口,這也是異構(gòu)的表現(xiàn)。
給開發(fā)人員的建議:如何避免同質(zhì)化開發(fā)?
在中國,好的開發(fā)人員非常多,這一點從異構(gòu)大賽可以看出,有些產(chǎn)品的創(chuàng)意,性能和應(yīng)用領(lǐng)域都非常有商業(yè)和學(xué)術(shù)價值;好的產(chǎn)品規(guī)劃師也很多。但是中國做出來的產(chǎn)品同質(zhì)化非常嚴重,針對某一應(yīng)用領(lǐng)域做出自己專屬產(chǎn)品的框架前提的指導(dǎo)下,以前只要掌握編程可能就能開發(fā)出應(yīng)用,但是現(xiàn)在就不一樣了。楚含進認為,對目前的中國軟件開發(fā)人員而言,目前的市場大環(huán)境對他們提出了幾個方面的需求:
首先,架構(gòu)人員應(yīng)該有全局觀,不但要對業(yè)務(wù)領(lǐng)域有所熟悉,而且更需要拓展與此專業(yè)領(lǐng)域相關(guān)的知識領(lǐng)域,要想辦法利用現(xiàn)有的各種技術(shù)來時自己產(chǎn)品在性能,特性產(chǎn)生差異化和提高技術(shù)門檻,從硬件,軟件,算法,性能綜合考慮,而不是單純吧摸個產(chǎn)品功能實現(xiàn)就可以。這樣就能使你們的產(chǎn)品變得與眾不同。
第二,要有原創(chuàng)精神,培養(yǎng)自己內(nèi)功,現(xiàn)在的技術(shù),流派太多了,軟件人員一輩子也學(xué)完,等你學(xué)會了這個,結(jié)果新的潮流來了,好像總是落伍。有一個例子,大家都去學(xué)hadoop, 我問了很多人去學(xué)Hadoop干什么,居然沒有幾個回答我,只是覺得這個東西很熱,所以去看看,盲從的心理不會產(chǎn)生好的軟件產(chǎn)品。所以我建議要對自己學(xué)習的東西有所判斷,要關(guān)注新的技術(shù)產(chǎn)生,對新技術(shù)要敏感,用于嘗試。現(xiàn)在的代碼程序員太多,思想成員太少了。
最后,對于軟件人員,我特別希望無論你是應(yīng)用層還是底層的開發(fā)人員, 都應(yīng)該去了解計算機體系結(jié)構(gòu),了解CPU和GPU的方向。CPU和GPU一定是未來硬件的兩大軟件承載核心,所謂先知者先行。以前GPU很多停留在游戲行業(yè),但是隨著異構(gòu)計算的到來,GPU和CPU融合產(chǎn)生應(yīng)用的變化,很多有前瞻性的軟件人員早已開始涉足此領(lǐng)域來占領(lǐng)先機。(文/譚茂 責編/包研)