?
物聯(lián)網(wǎng)被炒得沸沸揚(yáng)揚(yáng),而物聯(lián)網(wǎng)帶來(lái)的數(shù)據(jù)爆增也不容忽視,伴隨著數(shù)據(jù)的成千上萬(wàn)倍地增長(zhǎng),我們會(huì)發(fā)現(xiàn)數(shù)據(jù)中心的服務(wù)器承載的壓力越來(lái)越大,用戶對(duì)CPU的處理能力要求要來(lái)越高,服務(wù)器加速刻不容緩。
一般要確保數(shù)據(jù)有冗余的話,每一個(gè)大數(shù)據(jù)架構(gòu)需要做3個(gè)備份,這樣所帶來(lái)的問(wèn)題是用戶需要準(zhǔn)備3倍的存儲(chǔ)空間,當(dāng)沒(méi)辦法做在線備份的時(shí)候怎么辦?有人說(shuō)可以通過(guò)邏輯把硬盤所需要的使用率從3倍降到1.4倍,但是這樣CPU的使用率會(huì)超過(guò)99%,因?yàn)镃PU要處理邏輯運(yùn)算。由此可見,這就沒(méi)有冗余的CPU處理能力去做大數(shù)據(jù)分析了,我們?cè)趺唇鉀Q?這就是我們要鼓勵(lì)第二代分布式計(jì)算的原因,我們能通過(guò)FPGA加速器進(jìn)行加速,這樣CPU主要是負(fù)責(zé)通用計(jì)算負(fù)載,F(xiàn)PGA技術(shù)負(fù)責(zé)大量的重復(fù)運(yùn)算負(fù)載,從而把控制分開。
CPU與FPGA怎樣跨界融合?它們?cè)诜?wù)器加速過(guò)程中各自起到什么角色?怎樣做到未來(lái)服務(wù)器的“少,快,好,省”?帶著這些問(wèn)題與非網(wǎng)記者參加了“IBM第二代分布式計(jì)算峰會(huì)”。
第二代分布式計(jì)算聯(lián)盟啟動(dòng)儀式
當(dāng)半導(dǎo)體技術(shù)發(fā)展遭遇瓶頸,服務(wù)器如何加速?
從計(jì)算機(jī)系統(tǒng)的發(fā)展可以看出,最初的計(jì)算機(jī)都是單任務(wù)計(jì)算,隨著數(shù)據(jù)的增加逐步演進(jìn)到多任務(wù)計(jì)算,因此系統(tǒng)中有多個(gè)CPU POWER,由于多個(gè)CPU POWER可以同時(shí)訪問(wèn)內(nèi)存中的數(shù)據(jù),所以首要解決的就是數(shù)據(jù)一致性問(wèn)題,當(dāng)一個(gè)POWER對(duì)一個(gè)數(shù)據(jù)進(jìn)行操作了之后,另外一個(gè)POWER需要拿到正確的數(shù)據(jù)。在系統(tǒng)里面一般用硬件來(lái)保證數(shù)據(jù)的一致性,這樣保證另外一個(gè)線程在讀取數(shù)據(jù)的時(shí)候能拿到正確的數(shù)據(jù),因此當(dāng)計(jì)算機(jī)系統(tǒng)從一個(gè)單CPU系統(tǒng)進(jìn)化到多CPU系統(tǒng)的時(shí)候,它的性能功耗比下降了很多,怎樣提高CPU的性能并降低功耗成為很多用戶的困惑。
IBM全球杰出工程師Bruce Wile解釋,“隨著互聯(lián)網(wǎng)數(shù)據(jù)的增長(zhǎng),對(duì)于我們的系統(tǒng)來(lái)說(shuō),我們需要更強(qiáng)的硬件計(jì)算能力來(lái)處理更多的數(shù)據(jù)。一個(gè)解決的方案就是我們?cè)谝粋€(gè)CPU核上面開辟更多個(gè)硬件的線程,用這些線程來(lái)提高它的處理能力,來(lái)增加它對(duì)I/O過(guò)來(lái)的數(shù)據(jù)進(jìn)行更好的處理,同時(shí)我們引入了GPU和FPGA,使用這些硬件來(lái)幫助我們的系統(tǒng)處理數(shù)據(jù),但是傳統(tǒng)上GPU和FPGA都是以I/O設(shè)備的形式掛載在這個(gè)系統(tǒng)上面,我們?yōu)榱耸褂眠@些IO設(shè)備,需要工程師具有更多的技能,比如:編程人員需要學(xué)習(xí)硬件知識(shí),我們需要懂內(nèi)核的人為這些I/O設(shè)備進(jìn)行驅(qū)動(dòng)開發(fā),同時(shí)由于它們是I/O設(shè)備,這些IO設(shè)備沒(méi)有和CPU共享內(nèi)存,所以需要內(nèi)核代碼幫助他們做數(shù)據(jù)傳輸。擺在我們面前的另外一個(gè)難題就是,半導(dǎo)體技術(shù)已經(jīng)到了一個(gè)技術(shù)拐點(diǎn),它的性價(jià)比不再持續(xù)增長(zhǎng),我們不能依賴于半導(dǎo)體技術(shù)的增長(zhǎng)使我們的系統(tǒng)更快更強(qiáng),我們需要從硬件還有它上面的固件、操作系統(tǒng)、設(shè)備應(yīng)用等各個(gè)角度綜合考慮,來(lái)尋求一個(gè)更好的解決方案?!?/p>
?
FPGA:讓服務(wù)器“少,快,好,省”
在大數(shù)據(jù)膨脹的背景下,數(shù)據(jù)中心運(yùn)維人員采用易于編程的多核CPU和GPU來(lái)開發(fā)應(yīng)用,但CPU和GPU都遇到了單位功耗性能的瓶頸,此時(shí)異構(gòu)計(jì)算的優(yōu)勢(shì)突顯。賽靈思亞太區(qū)通信和數(shù)據(jù)中心業(yè)務(wù)拓展高級(jí)經(jīng)理梁曉明介紹,“基本計(jì)算形式是在CPU旁邊增加一個(gè)FPGA加速卡,它針對(duì)Workload設(shè)計(jì)一段硬件程序,基于FPGA的應(yīng)用加速相比CPU/GPU實(shí)現(xiàn)方案,單位功耗性能可提升25倍,而時(shí)延則縮短了50到75倍,與此同時(shí)還能實(shí)現(xiàn)出色的I/O集成(PCIe、DDR4SDRAM接口、高速以太網(wǎng)等)。具體來(lái)說(shuō),F(xiàn)PGA加速卡不管作為軟件的一部分提供給客戶,或者是作為數(shù)據(jù)中心里面1/2、1/3普遍需要附帶的一個(gè)附加鍵,外部形式不變,這張卡會(huì)隨著軟件產(chǎn)品、系統(tǒng)服務(wù)交給最終用戶,它的功能用戶可以去定義,也可以在后續(xù)的軟件運(yùn)行過(guò)程中去重新更改它的屬性,更改它的處理能力。FPGA加速卡的功耗不等,功耗小的是20瓦、25瓦,功耗大的是75瓦。對(duì)比CPU和GPU單元,有的CPU功耗是145瓦,有的是100多瓦,GPU功耗可達(dá)200-300瓦;在計(jì)價(jià)形式方面,對(duì)用戶部署供電環(huán)境的要求簡(jiǎn)單,用戶不需要為了插4個(gè)GPU卡重新定義10千瓦的定價(jià);在處理能力方面,典型性能可以做到5000個(gè)DSP,在壓縮方面應(yīng)用廣泛;另外,F(xiàn)PGA加速卡配置了存儲(chǔ)器,這是自給體系的小系統(tǒng),業(yè)界也有合作伙伴直接把PFGA加速卡變成服務(wù)器的標(biāo)準(zhǔn)主件提供給客戶?!?/p>
根據(jù)以上特點(diǎn)可以看出,F(xiàn)PGA加速卡與CUP的協(xié)同合作可以使得未來(lái)服務(wù)器滿足“少,快,好,省”的特點(diǎn),服務(wù)器數(shù)量減少,運(yùn)行速度加快,用戶體驗(yàn)變好,功耗大大降低,幫助用戶節(jié)省費(fèi)用。
FPGA工作人員展示FPGA芯片技術(shù)
賽靈思FPGA加速卡更多詳細(xì)介紹,請(qǐng)參照:軟件工程也能跨界玩轉(zhuǎn)FPGA。
CAPI:連通CPU和FPGA的橋梁
CPU與FPGA聯(lián)手的結(jié)局固然很美好,但是他們的接口想實(shí)現(xiàn)互通卻很復(fù)雜,CAPI就是為了解決這一問(wèn)題而出現(xiàn),它可以拉近硬件加速和應(yīng)用軟件之間的距離。CAPI怎么幫助用戶簡(jiǎn)化流程?IBM中國(guó)研究院資深研究員陳飛指出,“傳統(tǒng)上,如果我們想使用FPGA對(duì)一個(gè)應(yīng)用進(jìn)行加速,首先要做的事情就是軟件人員和硬件人員坐下來(lái)一起對(duì)這個(gè)應(yīng)用進(jìn)行分析,原因是硬件人員往往不了解軟件,而軟件人員也并不清楚硬件能夠幫他們做什么。當(dāng)他們決定使用FPGA對(duì)他們的軟件進(jìn)行加速之后,接下來(lái)一個(gè)問(wèn)題就是怎么切分軟硬件之間的接口。這其實(shí)并不容易,如果切分不好,最后性能往往達(dá)不到預(yù)期。經(jīng)過(guò)軟硬件接口的切分之后,有可能會(huì)對(duì)數(shù)據(jù)結(jié)構(gòu)進(jìn)行改變,因?yàn)槿绻麛?shù)據(jù)不進(jìn)行改變,放到FPGA上面有可能運(yùn)行的效率也不高,所以這也是一個(gè)技術(shù)活。隨后是開發(fā)環(huán)境的搭建,大概需要半個(gè)月或者一個(gè)月。當(dāng)開發(fā)環(huán)境搭建好以后,軟件人員和硬件人員需要緊密合作,隨時(shí)交互,對(duì)數(shù)據(jù)結(jié)構(gòu)進(jìn)行改變,然后放在FPGA上進(jìn)行計(jì)算,最后才能放在生產(chǎn)環(huán)境上面進(jìn)行部署?!?/p>
陳飛補(bǔ)充,“由于FPGA以I/O設(shè)備的形式存在于系統(tǒng)上面,它不能直接被應(yīng)用程序調(diào)度,它需要一個(gè)內(nèi)核程序來(lái)替它做中間傳輸。如果用戶程序有一些數(shù)據(jù)要交給加速器運(yùn)算的話,它首先需要把數(shù)據(jù)拷貝到內(nèi)核程序幫他們開辟的一個(gè)緩沖空間里,然后才能被硬件上的DMA引擎進(jìn)行讀取。內(nèi)存環(huán)境分配的緩沖大小是非常有限的,相對(duì)于用戶程序數(shù)據(jù)的大小可能只是它的1%,只有緩沖上面的引擎被DMA引擎讀走了之后才能往這上面寫,這必須由用戶數(shù)據(jù)控制。同時(shí)這個(gè)結(jié)果從加速器上面進(jìn)行反饋的時(shí)候也是一樣的,它會(huì)先寫到內(nèi)核分配的緩沖,然后再?gòu)木彌_里面讀取出來(lái),刷新到它的目標(biāo)內(nèi)存上去。這一過(guò)程需要我們更改用戶的程序執(zhí)行這一過(guò)程。由此可見這一工作模式的局限性,對(duì)于FPGA硬件,傳統(tǒng)的I/O設(shè)備只能訪問(wèn)物理地址空間,所以用戶需要內(nèi)核程序,這既是軟件工作人員的工作量,也會(huì)給執(zhí)行中帶來(lái)性能的額外開銷。同時(shí)由于內(nèi)核分配緩沖的大小是有限的,我們需要更改用戶程序,這又增加了額外的工作量,因此軟件團(tuán)隊(duì)對(duì)硬件的引入會(huì)有某種程度上的抗拒。有過(guò)開發(fā)經(jīng)驗(yàn)的人會(huì)知道即使是數(shù)據(jù)搬移到了FPGA,數(shù)據(jù)的存儲(chǔ)格式在軟件存儲(chǔ)上和硬件存儲(chǔ)上往往都需要做出調(diào)整,比如:在軟件里面我們常用各種指針、鏈表這樣的數(shù)據(jù)格式來(lái)存儲(chǔ)數(shù)據(jù),但是FPGA是不認(rèn)識(shí)這些格式,所以為了讓FPGA能處理這些數(shù)據(jù),必須要對(duì)這些數(shù)據(jù)進(jìn)行一些預(yù)處理。當(dāng)然不是所有的應(yīng)用程序都需要這么做,只是說(shuō)通用的框計(jì)下面我們需要做這么多的事情,CAPI就是試圖去簡(jiǎn)化這樣的流程?!?/p>
陳飛強(qiáng)調(diào),“CAPI是FPGA與CPU互聯(lián)的一種方式,它的連接與CPU和內(nèi)存之間的連接從模式上是一樣的,它們都遵守著catch存儲(chǔ)的一致性原則。我們需要做的事情就是在FPGA里面嵌入一個(gè)模塊,包含在我們的開發(fā)套件里面,使用這個(gè)模塊,用戶去開發(fā)用戶自定義的加速器,對(duì)里面的應(yīng)用程序進(jìn)行加速,CAPI首先保證高性能地正確地讀取到你想要的數(shù)據(jù),其次它使用虛擬地址,也就意味著軟件所有的數(shù)據(jù)在FPGA硬件上面都可以用,它還有豐富的硬件同步機(jī)制,幫助軟件硬件的同步,不需要寫很多的軟件代碼就能實(shí)現(xiàn)軟硬件之間的同步。由于這種特征的存在,使用CAPI的話編程模型會(huì)比傳統(tǒng)更簡(jiǎn)單。在傳統(tǒng)的FPGA加速模式下,有可能要把所有的數(shù)據(jù)都加載到FPGA上面,它一邊計(jì)算一邊對(duì)數(shù)據(jù)進(jìn)行過(guò)濾,F(xiàn)PGA和系統(tǒng)的帶寬就會(huì)出現(xiàn)瓶頸。但是使用CAPI,它可以按需訪問(wèn)用戶的數(shù)據(jù),先取出一部分?jǐn)?shù)據(jù)來(lái)進(jìn)行計(jì)算之后,再?zèng)Q定下一步加載什么樣的數(shù)據(jù),這樣的話也可以減輕FPGA板卡和已有系統(tǒng)之間帶寬的壓力?!?/p>
全部開源:讓聯(lián)盟成員都參與進(jìn)來(lái)
開源是目前用戶非常歡迎的一種技術(shù)分享形式,而針對(duì)OpenPOWER,IBM也采用了開源的做法,這種開源還是完全的開源,IBM大中華區(qū)科技戰(zhàn)略合作總經(jīng)理姜錫岫表示,“兩年前,OpenPOWER成立時(shí)我們只有六個(gè)聯(lián)盟成員,今天已超過(guò)150家,我們希望通過(guò)互動(dòng)合作,相互協(xié)同,包括不同技術(shù)的交換創(chuàng)新,做有特色的品牌。我們希望通過(guò)OpenPOWER,跟不同生態(tài)圈的朋友提供很好的解決方案給到最終用戶。未來(lái)幾年在IT行業(yè)里,我們會(huì)在中國(guó)市場(chǎng)上更好地支持本地企業(yè),從成立這個(gè)部門以來(lái),從芯片、服務(wù)器、軟件都做了不同程度的開放,我們希望能夠在中國(guó)產(chǎn)出技術(shù)可控的本地產(chǎn)品,希望通過(guò)開放的合作帶來(lái)很多本地的解決方案,包括我們的服務(wù)器、整個(gè)IT行業(yè)所需要的重要關(guān)鍵軟件。另外,我們技術(shù)合作的概念不是把技術(shù)開放,而是希望通過(guò)合作培育人才,把我們的成果共享。我們?nèi)ツ旮K州中晟宏芯合作,把POWER源代碼做了第二次授權(quán),整個(gè)芯片有900多萬(wàn)的RTL代碼,42億個(gè)二級(jí)管電路,22納米制造工藝。下一代CB2將全面開放POWER芯片技術(shù),讓所有中國(guó)IT產(chǎn)業(yè)同仁可以享受到開放的好處。我們承諾協(xié)助建立中國(guó)本土產(chǎn)業(yè)鏈,從CPU開始是中國(guó)制造,到服務(wù)器也是,去年已經(jīng)跟無(wú)錫中太做了第一臺(tái)RedPOWER服務(wù)器?!?/p>
Bruce Wile指出,“我們會(huì)有更多的合作伙伴,比如中太數(shù)據(jù)提供服務(wù)器,NVIDIA提供GPU,賽靈思提供FPGA芯片,恒揚(yáng)提供FPGA板卡解決方案,還有Ubuntu提供操作系統(tǒng)解決方案,三星提供的存儲(chǔ)解決方案,我們希望是以一個(gè)合作伙伴的形式,向更多的企業(yè)提供應(yīng)用,提供服務(wù)?!?/p>
與非網(wǎng)原創(chuàng)內(nèi)容,謝絕轉(zhuǎn)載!
更多相關(guān)內(nèi)容,請(qǐng)參照:與非網(wǎng)服務(wù)器專區(qū)。
?