項目概況,項目結構,項目技術,其他技術,程式設計,當前進展,評價展望,
項目概況
一種基於全新技術的超級計算機實現--HTMT項目
1. 引言
從上個世紀90年代早期開始,美國展開了針對實現petaflops級超級計算機途徑的討論。其中,分析了很多需要peta級處理能力的各種大規模套用的需求,如記憶體容量、記憶體頻寬、訪存延遲等;也討論了實現peta級計算的使能技術,如超導邏輯、PIM(把處理器集成到RAM中)、光全息存儲等。這些討論的最終結論是設計一種創新性的體系結構來構造peta級別的超級計算機系統, HTMT項目便誕生了。
在計算機發展史上,先進的器件技術與計算機體系結構革新理念結合都會帶來計算機系統的跨越發展,計算機性能以及性價比得到巨大提高。普通的大型機,向量超級計算機以及MPP超級計算機,它們的每一次成功問世都是當時先進的器件技術、系統結構和程式模型獨特結合的典範。伴隨著一些器件技術發展和新的體系結構理念的形成,一個新的構造petaflops級超級計算機的機會正慢慢來臨。新的器件技術如超導體技術、PIM技術、光交換網路以及光全息存儲技術正在成熟。而建立在多執行緒執行模型基礎上的任務和延遲管理體系結構理念則成為組織這些新技術的一種有效方式。於是HTMT項目便應運而生了。現在可以對HTMT有個較清楚的認識:HT(Hybrid Technology)-各種新技術,MT(Multi-Threaded) -多執行緒體系結構。正是這兩個方面的結合,有可能很快的構造出更高性能並達到peta級別的超級計算機系統。
HTMT的目標是比採用傳統CMOS技術提前4-5年,即於2006年左右實現petaflops級別的超級計算機。實現這樣一個高性能的計算機系統要面臨諸多挑戰,如峰值性能、足夠的存儲容量以及記憶體頻寬、製造成本、系統能耗、記憶體延遲、高效性、可程式性等。HTMT在設計上很好的解決了這些挑戰性問題,是一個結合新技術和新的體系結構理念的產物。仔細分析並理解HTMT項目的體系結構、關鍵技術、程式執行模型等方面對我們在設計、構造一台超級計算機時具有很好的借鑑意義。
項目結構
從處理器和記憶體的關係角度看,HTMT也是一種分散式NUMA體系結構。但是傳統的處理器和記憶體的主從關係發生了根本改變。由於採用了PIM技術,HTMT中的處理器由記憶體驅動。記憶體主動向處理器提供連續的工作流和數據流,處理器和記憶體之間的主從關係發生轉變。
(1)HTMT的系統結構由4096個多執行緒的處理器SPELL構成。SPELL主要由低功耗的帶有1M快取的超導設備構成,然後放在一個液氫冷卻的低溫保持器里。主頻能達到100GHz或更高。處理器的高速快取CRAM可以看成本地記憶體,通過處理器內部超導邏輯實現的自路由的多級包交換網路--CNet與下一級的SRAM(也稱智慧型cache)相聯。SRAM通過光通信網路與下一級的DRAM相聯。SRAM和DRAM都採用了PIM技術,其中實現的一種邏輯是Move Engine,它允許在不同的記憶體層次之間自動的傳輸數據。DRAM下一級是光全息記憶體HRAM,作為高密度、可並行訪問的快速線上備用存儲器。
HTMT物理記憶體層次結構由五部分組成:CRAM、SRAM、DRAM、HRAM、以及磁碟或磁帶。在程式執行期間,頻繁使用的數據會分布在較快的記憶體單元(如SPELL內),而一些較少使用的數據會分布在輔助記憶體(如HRAM)。每一級記憶體層次都有一個獨立的地址空間。
項目技術
高性能處理器SPELL
HTMT中採用超導技術實現的處理器稱為SPELL,它的主頻能達到100GHz。
每個SPELL有16個MSU單元,每個MSU可以執行一個執行緒,每一個執行緒中可以有多個strands。處理器內部的自路由交換網路(PNet)連線MSUs、FPUs和CRAM。
CRAM
CRAM是SPELL的低溫RAM,所有RAM單元被組織成矩陣形式。它能達到和SPELL同樣的主頻速度。
每個SPELL由4個本地的CRAM晶片服務,容量為1M。在有4096個處理器的系統中CRAM的總容量是4GB。
所有CRAM組成一個邏輯地址空間由所有處理器共享,形成NUMA結構。
CNet
CNet(Cryo-Network)是一個自路由、多階段包交換的低溫超導RSFQ(Rapid Single Flux Quantum)網路,用於SPELL模組和遠端SRAM模組之間的通信。CNet一端連線局部記憶體CRAM,另一端連線到SRAM的接口。
對局部記憶體負載的預測表明,CNet能提供7PB/s網路頻寬,可充分滿足petaflops級別的計算。
SRAM
SRAM也稱智慧型cache,採用了PIM技術。SPIM(SRAM內的處理器)主頻能達到1GHz。每個SRAM晶片容量為64MB,總的容量是1TB。在SPIM上運行實時系統,以支持Parcel的傳遞。
智慧型cache作為和處理器緊密相連的CRAM的備用高速緩衝,另外也作為數據頁的高速臨時快取。SRAM有兩個接口。一個接口和CNet相連;另一接口和光通信網路相連。
DRAM主存
DRAM當作HTMT系統的主存,也採用了PIM技術。DPIM(DRAM內的處理器)主頻能達到500MHz。每個晶片的容量是512MB,總的容量能達到16TB。同SPIM一樣,DPIM上也要運行實時系統來支持Parcel的傳遞。
DRAM主存也支持兩個接口。一個接口和光通信網路相連;另一個接口和全息存儲模組相連。
Data Vortex光通信網路
在將來的高性能計算機系統當中,將需要幾百Tbps的數據傳輸頻寬。採用電信號的電纜在數量和能耗上受到限制,因而大多會採用光通信網路。
HTMT中的光通信網路Data Vortex是一種細粒度的包交換光通信網路,位於SRAM和DRAM之間,總的傳輸頻寬能達到5Pbps。DataVortex採用了帶有路由拓撲的多節點層次結構。每個節點使用最小的邏輯實現路由功能。這種結構可減少多個連線埠轉發的時間,並且可以擴展到很大的規模。
Data Vortex網路連線N個輸入緩衝區和N個輸出緩衝區,可以看作是同心的互聯的圓柱面集合。
光全息記憶體HRAM
光全息存儲是依據全息學的原理,將信息以全息照相的方法存儲起來。全息存儲(HRAM)具有容量大,數據讀取速率高及可並行讀取等優點。
HTMT中HRAM位於主存DRAM和輔存(磁碟、磁帶)之間。HRAM的訪問延遲比磁碟低一個數量級,比訪問主存高兩個數量級。由於每次讀取的數據量大,每個存儲模組的頻寬能達到100Gbps,適合訪存密集型套用。
每個HRAM模組包含10GB的存儲,由一個PIM晶片控制並作為它的臨時快取。總的容量能達到1PB,總的I/O頻寬能達到320TB/s。
實時自適應資源管理
在HTMT中,為了隱藏高效處理器的訪存延遲,開發了兩級多執行緒技術。一種是處理器之間及處理器和SPIM之間的多執行緒技術,但是這種機制不能有效處理通過Data Vortex網路到DRAM或者HRAM的延遲。因而提出了另一種革新的滲透方法,即把程式將用到的數據預先取到智慧型cache中,從而達到延遲隱藏的目的。其中提出了Parcel的概念,在後面程式執行模型中介紹。
其他技術
關鍵技術
HTMT中採用了超導技術、PIM技術、光通信網路、光全息存儲等關鍵技術。光通信網路和光全息存儲技術在前面已有說明,下面主要介紹超導技術和PIM技術。
超導技術
在HTMT中,SPELL處理器、CNet網路都是採用超導RSFQ技術實現的。超導技術實現的電子設備有兩個特性,一個是主頻高,另一個是能耗低。
採用超導技術來製作小的電子電路,主頻能達到750G左右,而製造處理器晶片能達到100G甚至更高的時鐘頻率。目前,中等大小的超導電子設備(每個片子上有幾千個門)主要是被軍方和工業套用所採用。
能耗低也是超導邏輯的一個主要特性。包括對超導邏輯進行冷卻所需的能耗,超導邏輯實際能耗是CMOS邏輯的百分之一。
雖然超導技術具有主頻高和能耗低兩個特性,但在高性能計算領域中並沒有被廣泛研究和採用。
PIM技術
PIM(Processor In Memory),也叫做智慧型RAM或IRAM,是一種很有前途的超大規模積體電路技術,它在一個單一的CMOS記憶體晶片上把高密度的邏輯和高密度的記憶體結合在一起。這種簡單的技巧(trick)對計算機的體系結構具有深遠的影響。如果邏輯單元用來構造類似CPU的設備,這些CPU將會非常接近包含指令和數據的記憶體陣列,會有效解決訪存延遲問題,同時也會降低能耗、提高訪存頻寬。
可以看出,在高性能計算機領域採用PIM技術已經是一種趨勢。
程式設計
程式執行模型
HTMT程式執行模型包括兩部分:滲透模型和通信機制。在滲透模型當中,數據在記憶體層次中自動傳輸,裝載到SPELL上運行的程式從不需要等待數據。通信機制提供對滲透模型的數據傳輸支持,由運行在DPIM、SPIM和SPELL中的實時系統實現。
n 術語理解。在設計HTMT程式執行模型時,使用了多個術語。對這些術語的理解有助於對模型的充分理解。
1). 滲透:HTMT程式執行時,要在記憶體層次之間以Parcel的形式移動完整的指令語義模組(contexts)。指令語義模組經過各個記憶體層次自動的向執行處理器傳播,SPELLs總是能獲得在CRAM緩衝中準備好的可執行指令語義模組,不會有任何不期望的延遲。
2). 指令語義模組(contexts):一個指令語義模組是一個記憶體塊,它包含程式運行需要的數據、指令和控制狀態。HTMT中每個執行緒和一個獨立的指令語義模組相關。最終在CRAM中為執行緒分配指令語義模組緩衝才能執行執行緒。
3). 幀(frame):一個指令語義模組通常由若干幀的集合表示。從體系結構的觀點看,一個幀是用來保存臨時數據的一些暫存器的集合。從程式設計師的觀點看,幀是當前過程的局部變數堆疊。
4). 指令串(strand):一個執行緒最多可以支持8個指令串。一個指令串是一些指令集合,是SPELL上可以被調度執行的基本單元。
5). 信息包(parcel):一個信息包是一個信息單位,它在記憶體層次之間移動。信息包可以激活自身內含有的代碼執行,或者激活已經在記憶體中的代碼執行。有幾種信息包類型,包括控制 信息包、數據 信息包、代碼 信息包、指令語義模組信息包。
n 實時系統,完成作業裝載、調度、在記憶體層次之間傳遞信息包以支持程式運行。實時系統包括運行在FEC(Front End Computer)、DPIMs、SPIMs、SPELLs上的實時程式,是實現滲透模型和通信機制的基礎。
1). FEC核心程式,功能包括初始化SPIMs和DPIMs,為新的數據對象分配空間,通過傳送控制信息包來啟動DPIMs,接收來自DPIMs的結果。
2). DPIMs實時程式,裝載應用程式代碼和數據,向SPIMs傳送控制信息包來初始化SPIMs並開始它們的工作,向SRAM裝載代碼信息包,負責和DPIMs、SPELL的其它類型的信息包通信。
3). SPIMs實時程式,負責從DPIMs請求數據信息包,把代碼和數據信息包傳送到SPELLs,並負責和SPELLs、DPIMs的其他類型的信息包通信。
4). SPELLs實時程式,接收來自SPIMs的指令語義模組信息包執行,當執行完向SPIMs傳送控制信息包通知處理完成。
n 程式模型處理流程細節
1). DPIM傳輸數據對象到SRAM當中的指令語義緩衝。
2). SPIM識別空閒的CRAM緩衝,初始化從SRAM到CRAM緩衝的DMA(Direct Memory Access)傳輸,把數據移動到準備好的佇列當中。
3). 通知SPELL當前的緩衝滿,SPELL上的計算進程在一個新的指令語義模組上執行。
4). SPELL聲明一個CRAM緩衝已經被處理完,相應的SPIM能夠識別。
5). SPIM啟動DMA把處理完的CRAM緩衝中的結果移到一個空閒的SRAM緩衝。
6). 當一個DMA結束,SPIM把來自SRAM緩衝的結果移動到另一個SRAM緩衝,或者執行第7步。當一個SRAM緩衝的所有結果都被掃描完,SPIM把它標誌成空閒,使SRAM緩衝可以被重新使用。
7). 把來自SRAM緩衝的結果移動到DRAM。DPIM能夠識別出處理完的指令語義模組的結果已經移到DRAM,DPIM進一步處理。
程式設計
HTMT具有很好的可程式性。具體採用以下幾種措施:
3). 自動延遲管理:實現了處理器自動負載均衡以及執行執行緒所需數據的自動滲透。
矩陣乘法舉例
假設在運行A、B兩個80x80的矩陣乘法,結果放在矩陣C中,如下。開始,矩陣以記憶體塊的形式放在DPIM的記憶體中。Aik和Bkj表示16x16的塊大小。DPIM把這些塊當作新的指令語義模組信息包傳送到SPIM的輸入佇列。
計算矩陣C的一個塊的程式如下:
C[1,1] = 0;
for (i=1; i<=n; i++) {
P = A[1,i] * B[i,1];
C[1,1] = C[1,1]+P;
}
主要計算量是間接矩陣P的計算,在SPELL中實現以充分發揮超導處理器的性能。結果矩陣C的每個塊的值在SPIM中計算,在DPIM中多個Cij被組合起來生成最後的結果矩陣C。其間,SPIMs、DPIMs和SPELLs之間根據程式執行模型互動Parcels,以協調計算。
可見,多個PIMs和SPELLs可以同時執行不同的計算任務,實現了多個處理器之間的並行工作,有效的隱藏了延遲並能充分發揮超導處理器性能。
當前進展
HTMT項目分五個階段實施,最終完成估計將耗資2億美元。由於項目採用幾項全新技術,一些技術的指標還是預期的,因而風險大,對項目的資助分階段進行。
目前正處於第三階段,工作包括:全系統功能模擬以取得定量的測試數據,RSFQ器件的製造、PIM體系結構設計。
計畫在第四階段用實際器件構造一個實驗原型,並在實際的負載下運行以獲得對整個系統更準確的參數。第五階段則是最終完成整個系統構造。
根據可獲得的資料看,HTMT項目由於資金問題現在實際上處於停頓狀態。相反,美國對其他高性能計算機項目正大力資助,包括Cray的Cascade,IBM的PERCS以及Sun的Hero項目。這幾個項目屬於美國HPCS計畫,另外還有BlueGene項目,Streaming SuperComputer項目。
下面介紹第三階段相關工作的進展情況。
模擬原型實現及性能分析
Notre Dame大學使用Java語言實現了一個模擬系統原型,實現了HTMT系統中超導處理器、各個記憶體層次及相關的網路。
通過在模擬原型上執行矩陣乘法運算,並對測試數據進行分析,得到如下結論: SPIM/SPELL之間的Parcel互動負載最高,表明對於矩陣運算等計算密集型套用,暫存器負載要比記憶體負載高很多。
超導晶片進展
目前已經研製出了FLUX-1超導晶片。它具有5K個門,主頻能達到20GHz,是一款8位通用的微處理器晶片。目前對該晶片正進行測試。根據FLUX-1的複雜性及主頻,可以預測超導處理器主頻能達到100G或更高。
另外正在設計FLUX-2 MCM。它是帶有向量暫存器堆的乘法器。在這個晶片上,有兩個32位浮點乘法器。這個晶片作為多處理器晶片的演示晶片。
PIM體系結構研究
已經提出了滿足HTMT需求的PIM體系結構並進行了軟體模擬。其他項目對PIM體系結構的研究也有了實質進展,如前面提到的Gilgamesh項目。已經成功完成了基於FPGA和SRAM實現的PIM體系結構原型。其他項目對PIM技術的研究對HTMT項目中PIM的研究具有很好的推動作用。
評價展望
HTMT項目在設計之初結合當時的最新技術和革新的體系結構理念,有效地解決了構造一台高性能計算機系統要面臨的諸多挑戰性問題,如峰值性能、存儲容量、記憶體頻寬、成本、能耗、高效性、可程式性等。構想通過如下一些方法解決:
1). 峰值性能:計算密集型套用通過超導邏輯實現,數據密集型套用通過PIM技術實現;
2). 存儲容量:通過增大DRAM以及光全息存儲技術實現;
3). 記憶體頻寬:通過PIM技術、光全息記憶體、光交換網路保證系統所需的頻寬;
4). 製造成本:通過使用高吞吐率和較強能力的設備以減少部件數量來降低成本;
5). 能耗:通過採用超導技術、PIM技術、光全息記憶體、光交換網路技術等低能耗技術降低能耗;
6). 高效性:通過分散式實時任務管理策略以及在高速處理器和PIM處理器當中的多執行緒機制實現延遲隱藏而實現高效性;
7). 可程式性:通過提供自適應的實時資源管理,引入了單一全局記憶體名空間手段,以及引入的滲透算法來減輕程式設計師的負擔;
基於HTMT的設計理念完全有可能實現一台Petaflops級別的超級計算機,但目前卻遇到了一定的困難。最直接的原因是沒有資金,另外背後的原因可能有某些創新的技術太過複雜而不易實現或太過昂貴而離實用目標很遠,或者性價比不占優勢而遭放棄。
從中我們可以得到正反兩方面的啟發:正的方面是HTMT體現的敢於創新的精神,敢於採用全新的技術及體系結構,不墨守常規;反的方面可以看作是走向極端,如採用的新技術在預計的時間內不可能實現。當前採用傳統商業部件構造Cluster系統來實現高性能計算確實具有很多優勢,但是如果一直採用這個路線則會走入了另一個極端。正確的做法應該是在原有技術基礎上的有限創新。
應該承認,HTMT在新技術和體系結構模型上已經取得了一定進展。如超導晶片主頻到目前可達到20GHz;PIM早已有商用晶片,目前已經提出滿足HTMT需求的PIM體系結構;光互連網路目前已經很成熟;HRAM技術進展迅速。在體系結構模型上,超導處理器硬體可以實現細粒度多執行緒;在程式執行模型上提出了基於Parcel的“滲透模型”,較好地解決了處理器訪問記憶體的延遲問題。可見,HTMT項目在資金允許的情況下有可能實現預期目標。