曹小靜,李智深,王闖
(1.揚州萬方科技股份有限公司,江蘇 揚州 225000;2.某部駐鎮(zhèn)江軍事代表室,江蘇 鎮(zhèn)江 212000)
異構加速(Hybrid Acceleration)是指在同一系統上通過綜合利用不同的加速設備實現更高性能的計算加速。過去的加速計算多是同構加速,在集群中利用多臺計算機的處理器實現運算性能的提升。然而,由于CPU不得不執(zhí)行一些控制命令,同時CPU采用重核設計,因此其無法完全滿足并行度高的應用。
后來多核與眾核技術得以產生,特別是以GPU、協處理器為代表的加速設備的出現,使得異構加速成為日趨主流的加速模式。在異構加速設備的組合系統中,那些控制信息多、并行度低、計算量小的程序主要交由處理器執(zhí)行,而控制信息少、并行度高、計算量大的程序交由協處理器進行計算,最終將運算結果拷貝回主機內存。通常,應用程序包含了大量工作負載行為,從控制密集型到數據密集型。此外,還包括計算密集型應用,這類應用的吞吐量嚴重依賴于底層硬件的計算效率。每一類工作負載一般都能在某種特定類型的硬件體系架構上獲得最高的運行效率,但是沒有一種硬件架構能夠都取得最優(yōu)的運行效率。這種趨勢鼓勵我們開始尋找異構解決方案。
基于自主可控國產軟硬件體系結構,采用國產通用處理器和操作系統,研究自主異構協同的超融合服務器技術。
結合國內外技術現狀和服務器發(fā)展方向,研究一種基于高密度可擴展多節(jié)點服務器體系結構,研究基于自主可控的異構國產計算單元之間協作與超融合技術。采用基于PCIe接口規(guī)范開發(fā)硬件加速模塊與基于高性能等級FPGA芯片的異構計算加速模塊實現多層次的異構計算加速;研究網絡數據預處理技術釋放網絡數據包處理對處理器資源的大量占用;基于新型非易失性高速存儲的混合存儲架構技術,充分發(fā)揮非易失性存儲器低延遲與高帶寬優(yōu)勢。
本設計研究內容充分考慮需求、現狀、目標等現實條件和需求。主要研究包括以下內容。
(1)異構計算資源融合的服務器體系結構。針對目前國產多核處理器性能現狀,可通過融合異構計算資源,將國產處理器和其他加速處理器優(yōu)勢資源互補,以國產處理器作為主處理器,以FPGA、網絡處理器等作為協處理器,將計算任務分配到最后執(zhí)行它的計算資源上,使計算任務總的執(zhí)行時間最小、效率最高,并能夠根據應用需求通過增加協處理器以及通過多節(jié)點并行等方式擴展計算資源,形成完整的異構計算資源融合體系結構。
(2)新型非易失性高速存儲的混合存儲架構技術。為解決傳統存儲器件功耗高、體積大、片上緩存小、速率低等問題,需迫切開展新型非易失性存儲技術的開發(fā)和研制工作。結合國產處理器特點,針對應用中不同類型數據對存儲的需求,從混合存儲層面進行分析,研究非易失性存儲器構建的存儲系統策略,構建新型混合存儲模型。
(3)多層次異構計算加速、數據預處理加速等多種加速技術?;诙嗪司W絡處理器的驅動軟件研發(fā),包括:適應自主可控主處理器業(yè)務處理模型,負載均衡多隊列分發(fā)和分類流量隊列化以及與應用程序無縫銜接的網絡數據包捕獲接口等技術?;贔PGA的異構計算技術,包括:基于高性能FPGA芯片的異構加速模塊硬件研發(fā),FPGA異構加速模塊的驅動軟件研發(fā)以及FPGA異構加速模塊OpenCL板級支持包軟件研發(fā)等。
服務器由異構計算單元(含加速單元、存儲單元)、交換單元、管理單元以及供電單元等組成,計算單元可以根據實際使用需求進行數量的靈活配置,計算單元與兩個交換單元之間采用雙星型以太網互聯架構,計算單元通過PCIe接口擴展加速單元和存儲單元,實現異構計算以及高性能存儲的融合,整機互聯以及異構計算單元設計框圖如圖1所示。

圖1 整機互聯以及計算單元設計框圖
FPGA異構計算結構采用CPU+FPGA的異構模式,充分利用了FPGA的優(yōu)勢。其中最主要的一個優(yōu)點是FPGA具有邏輯在線可重構性。可以通過FPGA的可重構性實現典型應用場景的算法級重構、節(jié)點級重構、集群級重構等。
(1)FPGA的配置模式的選擇。FPGA的可重構具有靜態(tài)和動態(tài)可重構兩種模式,靜態(tài)可重構模式下系統的可重構部分只能進行一次配置,在系統運行的過程中無法進行重構,動態(tài)可重構模式下可以實現系統運行過程中的反復編程,一般情況下選擇使用動態(tài)可重構模式。
在動態(tài)可重構模式下,FPGA外圍需要設計非易失性存儲器,用于存儲初始的配置數據,實現開機過程中FPGA的初始化,彌補FPGA內部SRAM掉電后會丟失數據的缺點。
(2)FPGA的動態(tài)重構配置流程設計。FPGA的動態(tài)重構過程中包含上電過程中的初始配置以及在系統運行過程中的反復編程2種配置事件,在系統運行過程中可以動態(tài)的進行多次配置。FPGA動態(tài)可重構配置流程圖如圖2所示。

圖2 FPGA動態(tài)可重構配置流程圖
上電過程中的初始配置和在系統運行過程中的反復編程兩種配置事件在觸發(fā)方式上有一定的區(qū)別,FPGA在上電過程中可以自動復位并進行初始化配置,在運行過程中的反復編程,需要使能編程接口后來進行重新配置。配置過程中主要包含配置文件的獲取、配置文件的加載以及配置文件的執(zhí)行三個方面,來完成兩種配置時間的執(zhí)行。
(3)FPGA動態(tài)可重構實現方法。FPGA動態(tài)可重構主要有單上下文、多上下文以及部分運行時可重構三種模式。其中單上下文的重構模式下,配置數據存儲在外部存儲器中,每次進行重構時,需要到外部存儲器中進行配置數據的獲取,然后加載到FPGA內部的邏輯單元胞中,同時每次重構都需要對整片配置存儲器進行重寫,這種方式重構時間主要由FPGA與外部存儲器之間的傳輸速率決定,往往重構時間會比較長,重構方法示意圖如圖3(a)所示。
基于多上下文的重構模式相對于單上下文重構模式下,FPGA片內具有單獨的配置數據存儲器,FPGA上電后會先將外部存儲器中的配置數據加載到片內配置數據存儲器中,在進行重構時不需要與外部存儲器進行數據交互,可以大大縮短配置文件切換的時間和動態(tài)重構時間,具有更高的運行效率,重構方法示意圖如圖3(b)所示。

圖3 FPGA動態(tài)可重構方法示意圖
部分運行時可重構模式下,既具備基于多上下文重構模式下切換時間短的特點,同時在進行動態(tài)重構時不需要對整片配置存儲器進行重寫,僅對部分邏輯資源進行配置,在動態(tài)重構的過程中不會影響整個系統的運行,重構方法示意圖如圖3(c)所示。
基于新型非易失性存儲器件與傳統磁盤技術結合,設計新型混合存儲架構,在保持成本和能耗優(yōu)勢的前提下大幅提升存儲容量。本設計硬件通信接口采用PCIe通道,相對于傳統HDD或者SSD,訪問速度有顯著提升。SATA3.0通道的理論帶寬是6Gb/s,理論極限傳輸速度750MB/s。存儲通信接口采用PCIe3.0×4通道,傳輸通道帶寬為32Gb/s,遠遠超過了SATA3.0的極限傳輸速度。同時在數據存儲的過程中需要通過DMA操作完成數據的傳輸,在設計中需要對DMA的操作進行優(yōu)化設計,減少DMA操作的開銷來提升存儲的性能。因此,需要對存儲的框架進行優(yōu)化,PCIe設備發(fā)起數據交互請求時,在數據傳輸過程中不需要處理器進行干預,從而可以釋放處理器在數據傳輸過程的處理壓力。同時增強該框架的自適應性,在編譯系統程序中識別出并行加速循環(huán),插入并行編譯指示,針對循環(huán)引用的數據,生成正確的數據管理子句,使得處理過程中使用到的數據可以進行快速的訪問。高速存儲優(yōu)化框架如圖4所示。

圖4 高速存儲優(yōu)化框架
當前日趨復雜的網絡協議使得處理器在大流量下的數據處理量急劇增長,而采用傳統網卡進行數據采集時所消耗大量的處理資源,進一步降低了系統的總體性能。異構計算加速卡提供了高效的數據包捕獲能力,幾乎不占用處理器的處理資源。
異構計算加速卡可以通過規(guī)則表對網絡數據包進行過濾和轉發(fā)。異構計算加速卡的規(guī)則表基于以太網類型、IP數據包的協議、IP地址、端口、數據包長度等信息,每條規(guī)則表項由一個或者多個匹配表組成,對于由多個匹配表組合而成的規(guī)則表項,在進行數據包的匹配時,針對匹配表中的任一表項進行特征匹配,同時必須滿足與所有匹配表同時發(fā)生匹配時才認為與該規(guī)則表項匹配,規(guī)則表項匹配如圖5所示。

圖5 規(guī)則表項匹配
規(guī)則表項間可按優(yōu)先級匹配,當前支持64個規(guī)則表項,并且規(guī)則表項按照先后的順序進行編號,不同的編號具有不同的優(yōu)先級。
異構計算加速卡接收到的數據包通過主機隊列來接收。系統提供N個主機隊列,可以將流的行為設置為轉發(fā)至任意一個主機隊列上,同時主機CPU也可以在任意一個隊列上接收數據包,異構計算加速卡接收到的數據包也可以直接轉發(fā)到線路上,轉發(fā)時可以根據規(guī)則指定將流量轉發(fā)至某一個特定的端口或者流量輸入端口。
未來科技發(fā)展將會面臨著對大數據量的處理、運算、存儲的挑戰(zhàn),需要在規(guī)定的時間內進行大量的浮點運算,這時采用傳統架構的服務器無法滿足此類應用需求,需要開展對異構協同超融合服務器的研究,來滿足此類需求。同時,為高效能異構計算和非易失高速存儲量身定制一套合適的體系架構并非易事,需要從系統架構、總線互連、存儲架構、協處理器、高階可重構等多方面進行綜合的技術研究和探索。