<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 設計應用 > 多核時(shí)代:填補軟硬件之間的鴻溝

多核時(shí)代:填補軟硬件之間的鴻溝

——
作者: 時(shí)間:2007-09-26 來(lái)源:IT168 收藏
        計算機硬件與軟件之間的互動(dòng)已經(jīng)發(fā)展了50年之久。但在過(guò)去,雙方的關(guān)系仍然保持一定的距離。往往是由硬件工程師研制出芯片之后,再扔給軟件程序員。而隨著(zhù)的出現,硬件/軟件之間的聯(lián)系會(huì )變得更加緊密。芯片制造商們逐漸認識到,架構正在從根本上改變傳統的軟件生產(chǎn)模式——過(guò)去的軟件通常都是單線(xiàn)程的,要對它們進(jìn)行改編使之適合多線(xiàn)程、多內核技術(shù)非常困難。因此,如果芯片廠(chǎng)商要想推廣自己的產(chǎn)品,就必須想方設法縮短硬件和應用之間的鴻溝。
 
        芯片廠(chǎng)商的共識
    
        事實(shí)的情況是正是如此。在某種程度上,英特爾、IBM、AMD、NVIDIA等芯片廠(chǎng)商都在跟ISV和研究機構加強廣泛合作,提供早期的硬件樣品、軟件支持及相關(guān)培訓。芯片制造商們已經(jīng)通過(guò)編譯器和接口庫(processor interface libraries)等形式提供軟件支持,來(lái)幫助工具開(kāi)發(fā)商處理芯片上越來(lái)越多的內核。
   
         比如,IBM為其CELL提供軟件開(kāi)發(fā)套件(SDK)和其他工具(參見(jiàn):Cell寬帶引擎Linux擴展和軟件開(kāi)發(fā)工具發(fā)布:http://publish.it168.com/2005/1122/20051122046901.shtml),IBM 還啟動(dòng)了一個(gè)名為Octopiler的項目,使對Cell的編程更簡(jiǎn)單。
    
        AMD為其GPU編程引入名為“Close to Metal”的CTM技術(shù),使開(kāi)發(fā)者能夠隨意訪(fǎng)問(wèn)AMD流處理器中的原生指令集和大規模并行計算單元的內存。利用CTM,流處理器就能夠像今天的中央處理器(CPU)一樣成為功能強大的開(kāi)放式可編程架構。通過(guò)開(kāi)放架構,CTM使開(kāi)發(fā)者能夠對硬件進(jìn)行低階、確定和可重復的訪(fǎng)問(wèn),這一能力是開(kāi)發(fā)編譯器、調試器、數學(xué)庫和應用平臺等基本工具所必需的(參見(jiàn):AMD發(fā)布針對流運算的CTM技術(shù):http://publish.it168.com/2006/1120/20061120041201.shtml)。 
 



       AMD 的CTM技術(shù)
    
       NVIDIA則為其GPU產(chǎn)品提供了CUDA平臺,開(kāi)發(fā)人員可運用Quadro系列解決方案的高速運算性能,以研發(fā)、設計原型以及解決復雜的可視化問(wèn)題。在X86軟件支持方面,英特爾更是擁有非常廣泛的商業(yè)產(chǎn)品、軟件工具和教育培訓服務(wù),來(lái)幫助開(kāi)發(fā)人員更好地應對多核芯趨勢。針對大量存在的行業(yè)ISV,為了幫助其盡快的實(shí)現從單線(xiàn)程應用向多線(xiàn)程應用的轉變,英特爾投入大量資源,向業(yè)界提供編譯器、應用程序分析和調試、數學(xué)函數庫等軟件工具。 
 


       NVIDIA CUDA技術(shù)架構輔助CPU進(jìn)行運算功能
  
        在高性能計算領(lǐng)域,這一策略已經(jīng)變得更加清晰。最近的例子就是圍繞相對較新的IBM Cell BE和通用GPU處理器,涌現了許多開(kāi)發(fā)工具。在這些芯片出廠(chǎng)之前,PeakStream和RapidMind等廠(chǎng)商就開(kāi)始為新的加速器設備提供應用開(kāi)發(fā)平臺。如果這些產(chǎn)品獲得成功,將在芯片廠(chǎng)商和軟件開(kāi)發(fā)商之間就有望實(shí)現非常重要和關(guān)鍵的協(xié)同機制。下面,我們就以CELL和GPU在HPC中的應用為例,來(lái)看看其軟件開(kāi)發(fā)方面存在的機遇和挑戰。

       用GPU和CELL充當HPC加速器
    
       使用GPU和CELL處理器來(lái)充當流處理加速器(stream processing accelerator),這一做法已經(jīng)在HPC業(yè)界引發(fā)了相當的關(guān)注。人們可以通過(guò)這些處理器來(lái)實(shí)現應用加速,其目標領(lǐng)域包括3D可視化、廣播編碼、醫療成像、多媒體內容創(chuàng )作、圖像和信號處理、金融財務(wù)分析、地震資料處理、大規模數據庫交易和企業(yè)科研,幾乎適用于所有要求強勁計算性能的數據密集型應用。這些多核加速器在HPC領(lǐng)域里的廣泛適用性,已經(jīng)吸引了軟件開(kāi)發(fā)商的關(guān)注。
    
       早在去年9月份,Peaksteram公司就推出了一種“基于GPU顯卡來(lái)構建超級計算機”的解決方案——該公司的C/C++程序接口、虛擬機處理任務(wù)調度和內存管理等工具軟件,為程序員提供一種方便的途徑,利用多內核x86或Cell處理器和GPU組成聯(lián)合系統。編程人員可以象以往那樣使用C/C++ 語(yǔ)言編寫(xiě)程序,PeakStream的軟件負責硬件資源的分配。雖然客戶(hù)必須根據PeakStream軟件的接口對應用軟件進(jìn)行改編,但跟搞明白圖形卡或其它硬件產(chǎn)品的內部原理來(lái)說(shuō),還是要簡(jiǎn)單得多。如其今年3月發(fā)布的PeakStream Workstation for Windows包含了一系列工具和庫文件,可以方便開(kāi)發(fā)者在微軟的Visual Studio下為顯卡開(kāi)發(fā)多線(xiàn)程通用運算程序。 
 


       PeakStream軟件架構
    
       RapidMind是加拿大的一家為多核平臺(GPU/Cell等)提供編程環(huán)境的公司,近期也推出了類(lèi)似的平臺,宣稱(chēng)能夠支持IBM CELL處理器以及最新的NVIDIA、 AMD/ATI GPU產(chǎn)品在HPC領(lǐng)域里的應用,并表示不久就會(huì )支持多核X86處理器。RapidMind提供C++的編程環(huán)境,對C++進(jìn)行了一些擴展,比如特殊的數據類(lèi)型,以及數字圖像處理、游戲編程等庫函數。目前來(lái)看,PeakStream使用的技術(shù)和RapidMind非常相似,都是C/C++和library方式,都是Array Programming Model,都是動(dòng)態(tài)編譯,都提供虛擬機。
   
        除了商業(yè)公司,科研人員也正在研究新的基于CELL的加速器技術(shù)。今年4月份,中國科學(xué)院(CAS)計算機網(wǎng)絡(luò )信息中心和IBM在國內合作的第一臺基于Cell BE(Broadband Engine, 寬帶引擎)的刀片服務(wù)器系統開(kāi)始投入運行。在早期的系統測試中,中國國家網(wǎng)格(CNGrid)和IBM聯(lián)合組建的測試團隊通過(guò)進(jìn)行一系列優(yōu)化軟件和Cell BE的硬件潛力開(kāi)發(fā),將地震應用的計算速度提高了60倍。地震預報專(zhuān)家將可以在短短幾分鐘內得到以往需要數個(gè)小時(shí)才能得到的計算結果。(參見(jiàn):國內首臺Cell刀片服務(wù)器落戶(hù)中科院http://publish.it168.com/2007/0416/20070416034401.shtml) 
  


       IBM的CELL刀片系統
    
       在美國的田納西州大學(xué),Jack Dongarra和他的小組在創(chuàng )新計算實(shí)驗室(Innovative Computing Laboratory)中安裝了基于IBM CELL 處理器的系統——跟中科院使用的刀片系統不同,這是一套由4個(gè)節點(diǎn)子系統組成的PlayStation3 (PS3)集群,用作科學(xué)計算的研究平臺。僅僅花費了2400美元,他們就構建了這套可以提供600 Glops(單精度浮點(diǎn)運算)峰值性能的系統。盡管PS3從來(lái)都不是專(zhuān)門(mén)針對高性能計算機群節點(diǎn)來(lái)設計的,但其低廉的價(jià)格和可用性還是得到了一些正在尋求低成本FLOPS的HPC  FANS的青睞。值得一提的是,田納西州大學(xué)小組正在評估PS3機群的編程模型,及該架構對HPC的某些限制。

       CELL處理器用于HPC的局限性
    
       在測試過(guò)程中,田納西州大學(xué)的科研人員編撰了一份關(guān)于使用PlayStation 3作為HPC平臺的技術(shù)報告——《A Rough Guide to Scientific Computing On the PlayStation 3》(感興趣的讀者可以從這里下載:http://www.netlib.org/utk/people/jackdon garra/papers/scop3.pdf)。對于那些對使用CELL處理器進(jìn)行技術(shù)計算比較陌生的開(kāi)發(fā)人員來(lái)說(shuō),這份報告有必要一讀。 
 


       田納西州大學(xué)科研人員用PS3搭建機群
    
       該報告描述了CELL芯片和PS3的硬件性能、可支持的系統軟件,以及如何來(lái)組建一套實(shí)驗室用的PS3機群。它還探討了相關(guān)的編程技巧,并提供了一些實(shí)際的應用案例。最實(shí)用的一部分是,它討論了針對CELL架構的許多商業(yè)和科研軟件平臺。盡管這份報告沒(méi)有闡述跟CELL/PS3軟件開(kāi)發(fā)相關(guān)的全部細節,但它確實(shí)盡力給出了關(guān)于當前可用技術(shù)的總體框架性說(shuō)明。下面這段引自該報告的引言部分:

       “用PS3來(lái)做科學(xué)計算,聽(tīng)起來(lái)很讓人振奮,但其實(shí)卻是坎坷之途。針對多核處理器的并行編程模型還只是處于襁褓階段,標準的API甚至還沒(méi)有出現。這導致的結果是,當前,我們只能通過(guò)手寫(xiě)代碼來(lái)充分挖掘CELL處理器的硬件性能。[編者按:RapidMind公司可能會(huì )相當不同意這點(diǎn)。]總的來(lái)看,由于該處理器處理性能和互連通信速度之間極不平衡,從而嚴重削弱了PS3平臺用做科學(xué)計算的適用性,詳見(jiàn)9.1章節。不過(guò),CELL處理器仍然是一個(gè)具有革命性的芯片,提供了突破性的強大性能,而且售價(jià)也不貴。我們希望這份報告能夠讓CELL的道路變得更平坦一些?!?
   
        該報告對PS3用于科學(xué)計算的局限性進(jìn)行了相當精彩的探討,包括內存帶寬和容量、網(wǎng)絡(luò )連接速度以及浮點(diǎn)運算方面的缺陷。該報告的姊妹篇則進(jìn)一步討論了這些問(wèn)題的更多技術(shù)細節——《Limitations of the PlayStation 3 for High Performance Cluster Computing》(感興趣的讀者可從這里下載:http://www.netlib.org/utk/people/jackdon garra/papers/ps3-summa-2007.pdf)。在下一代的處理器中,那些限制CELL用于科學(xué)計算的浮點(diǎn)運算方面的缺陷,可能會(huì )得到解決。根據田納西州大學(xué)的報告,在下一代浮點(diǎn)運算方面,IBM公司正在計劃將雙精度性能(double-precision performance)從14Glops提升到102Glops,但沒(méi)有說(shuō)明IEEE 754浮點(diǎn)支持問(wèn)題是否也會(huì )得到解決。

        GPU面臨類(lèi)似的問(wèn)題
   
        GPU是另一個(gè)例子。跟主流的CPU相比,GPU的原始浮點(diǎn)性能要強勁得多。比如,3GHz的奔騰4運算能力大約為6GFLOP(10億次浮點(diǎn)運算每秒),Woodcrest最高可達24GFLOP,四路雙核安騰2系統運算速度可達45GFLOP。而GPU要領(lǐng)先的多,比如ATI高端的X1950 XTX處理器運算速度為375GFLOP,雙顯卡模式達到750GFLOP,相當于31個(gè)Xeon 5100處理器;Nvidia的Geforce 7950 GX2雙GPU顯卡也能達到384GFLOP。 
 



        GPU與CPU之間的性能對比
    
        當然,浮點(diǎn)性能只是一方面,GPU要完全取代CPU還有很大的距離。GPU可以在部分急需數學(xué)計算的領(lǐng)域表現出色,但是GPU內部緩存遠小于CPU,因此,CPU可以存儲預測和非預測指令,GPU則無(wú)法做到。AMD和NVIDIA都在準備新一代GPGPU產(chǎn)品,分別基于R600和G80,NVIDIA將G80用于GPU計算,AMD將R600用于流計算,這種產(chǎn)品在PCB上集成盡可能多的內存,而輸出接口只有1個(gè)DVI。NVIDIA有可能在Computex 2007大會(huì )上發(fā)布GPGPU版的G80產(chǎn)品,同時(shí)發(fā)布正式版的CUDA SDK以配合GPGPU版的G80。
    
        而且,GPU也面臨跟CELL類(lèi)似的浮點(diǎn)運算局限性。如果NVIDIA和AMD想將GPU成功引入科學(xué)計算市場(chǎng),它們就必須就相應設備的浮點(diǎn)問(wèn)題做出某些決定。當前,這二者都無(wú)法提供任何雙精度硬件(double precision hardware),IEEE 754兼容性問(wèn)題也還沒(méi)有得到完全解決。然而,NVIDIA最新的G80設備已經(jīng)開(kāi)始支持rounding modes、overflow和NaN。
    
        這里的問(wèn)題是,為了支持GPU的科學(xué)浮點(diǎn)運算性能,NVIDIA和AMD在改進(jìn)GPU架構方面會(huì )走多遠?另外,GPU工程師還不得不考慮內存糾錯、低功耗等方面的問(wèn)題,以提供更強壯的HPC方案。
   
         綜上所述,隨著(zhù)多核時(shí)代的到來(lái),為了平衡應用需求和硬件性能之間的緊張關(guān)系,英特爾、IBM、AMD、NVIDIA等芯片廠(chǎng)商已經(jīng)開(kāi)始做更多的工作——編譯器、接口庫、軟件工具等等,甚至通過(guò)GPU和CELL等“另類(lèi)”的方法來(lái)提供HPC應用加速技術(shù)。一些軟件廠(chǎng)商如PeakStream和RapidMind等,也企圖借機填補多核硬件與并行軟件之間的巨大鴻溝。


關(guān)鍵詞: 多核 處理器 嵌入式系統

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>