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