01
超級計算機和FPGA
1、超算?
大數據、基因科學、金融工程、人工智能、新材料設計、制藥和醫療工程、氣象災害預測等領域所涉及的計算處理,家用個人計算機級別的性能是遠遠不夠的。超級計算機(以下簡稱超算)就是為了解決這種超大規模的問題而開發的。超算并沒有一個明確的定義, 通常所說的超算大致是性能在家用計算機的1000倍以上,或者理論性能在50 TFLOPST以上的系統。
FPGA作為可以提高超算能效比的通用器件受到了廣泛關注。從性能、靈活性和功耗效率方面,CPU、FPGA和ASIC里面FPGA走的是中間路線。FPGA的功耗效率是高于CPU的,靈活性高于ASIC;從功耗效率、性能保障性和算法適用性來看,FPGA應該是碾壓GPU的。GPU適用的算法非常有限,拿到一個算法,能否達到最終的性能是有風險的;早期GPU的實現算法非常容易,但是自從Xilinx在高層次綜合HLS方面深度耕耘后,FPGA的編程容易度也降低了很多。其優勢是不但可以作為運算加速器,還可以作為連接器件讓超算中眾多的運算處理器和運算加速器更緊密地結合。此外,IoT技術正在推動硬件基礎設施的升級,今后運算和數據的集中化和分散化進程都會加速發展。在這個進程當中,為了運用超算技術,也要求數據中心具備更加嶄新和有效的方法和技術口。除了大規模計算以外,從強化升級社會IT基礎建設的角度上看,超算技術也越來越必要。因此,PLD/FPGA必將會在超算中得到更廣泛的運用。
02
超算中的FPGA應用案例
1、首先是筑波大學20世紀70年代開始研發用于科學計算的并行計算機PACS/PAX,而HA-PACS是該系列的第8代。PACS/PAX系列自開發之初就以實現了CPU和內存間的高速互聯架構而聞名。HA-PACS是PACS/PAX系列中首次采用GPU作為運算加速器的超算。用GPU提高超算性能,還必須要實現能夠充分發揮GPU高運算性能的并行系統架構。然而,HA-PACS開發時的GPU存在些問題,導致難以實現高效的并行系統架構。例如在多個GPU間共享數據時,傳輸前后需要在宿主CPU的主存中進行數據復制。還有將數據傳輸從PCle轉為其他通信方式時,很難削減通信延遲。為了改善這些問題,HA-PACS系統基于PEARL ( PCI Express Adaptive and Reliable Link)概念提出了TCA ( Tightly Coupled Accelerato-rs) 技術,并開始開發實現TCA的PEACH2板卡。
那么由CPU+GPU+FPGA組成的異構系統的性能又如何呢? HA-PACS/TCA是一個只有64個節點的小規模系統,理論性能為364.3TFLOPS,實測性能為277.1 TFLOPS, 2013年11月位列TOP500的第134名。另外,由于該系統達到了3.52 GFLOPS/W的高能效比,在2013年11月和2014年6月的Green500榜中位列第3名。HA-PACS/TCA的基礎部分采用GPU和CPU組合來實現高性能、低功耗的運算,再加上基于FPGA的PEACH2的使用,進一步提高了跨學科合作應用中的運算性能。
PEACH2提供了可以讓多個GPU直接互聯通信的框架。具體來說,PEACH2擴展了PCle通信連接,并實現了GPU間的直接通信,從而達到了提高數據傳輸效率的目的”。技術上,PEACH2實現了一種路由,可以將PCIe協議中Root Complex和多個End Point間的數據包在多個節點間傳輸。
原本的數據傳輸路徑GPUmem→CPUmem→(InfiniBand/MPI)→CPUmem→GPU mem, 縮短為了GPU mem→(PCIe/PEACH2)→GPU mem,即GPU間的直連傳輸。此外,通信協議的統一也實現了比InfiniBand更低的延遲。
下面一起看一下PEACH2的通信性能。PEACH2具備4個PCleGen2 x8 (8通路)端口。這里的端口數量上的限制并非源于PEACH2本身,而是因為所采用的FPGA器件的物理限制,這點可以通過FPGA制造技術的提升而改善。PEACH2中GPU對GPU的DMA的Ping-pong延遲為2.0us ( 100萬分之2秒),CPU對CPU的延遲為1.8 us,可以說通信延遲十分小了。PEACH2能達到這種性能要歸功于使用了PLD/FPGA,正因如此它才能將傳輸開銷降低到2.0 us的程度。這個性能和MVAPICH2 v2.0-GDR ( 帶GDR : 4.5us ;不帶GDR : 19 us) 相比已經足夠了。FPGA的采用實現了輕量化協議、多RootComplex互聯、Block-Stride通信硬件,從而獲得了高應用性能。此外,在Ping-pong帶寬方面,PEACH2 的CPU對CPU的DMA傳輸性能約為3.5 GB/s,達到了理論性能的95%;GPU對GPU的DMA性能約為2.8GB/s。然而,當負載大小超過512 KB時MVAPICH2 v2.0-GDR的性能更高,可以在實際應用時根據需求進行選擇。綜上,無論研究領域或商業系統,今后都會繼續探索能夠發揮PLD/FPGA優勢的高效方法,從而提高系統的整體性能。
2、其次是Cray Research,該公司的超級計算機:XD1就有用上FPGA,XD1用的是Xilinx(賽靈思)公司的VIRTEX系列FPGA。XD1機內有所謂的FPGA應用程序加速模塊(FPGA ApplicaTIon AcceleraTIon Module),模塊等于是機內的一個小型輔助運算系統,VIRTEX是模塊內的主控芯片,等于是一個協同處理器(Co-Processor),只不過這個協同處理器與ASIC型式的協同處理器不同,FPGA具有可程序化的功效,因此VIRTEX是一顆可程序化的協同處理器。運算模塊內除了有FPGA的協同處理器外,處理器也必須搭配內存才能行使運算,所以FPGA會再連接4顆QDR II SRAM(極高速性的內存),然后模塊一方面用HyperTransport與XD1的主處理器相連,另一方面也連往XD1的特有高速I/O界面:RapidArray。
接著,由于高效運算多是執行大量重復性的運算,例如氣象預測、風洞測試等,所以可以將執行的應用程序轉化成FPGA內的組態(ConfiguraTIon)程序,以硬件線路方式來執行運算,如此將比過往用純軟件方式執行快上數倍至數十倍的效能,甚至在特定的應用運算上能達一百倍以上的效能。
更仔細而言,其實是將整個應用程序中重復性最高、且最經常用的函數庫進行轉化,并以FPGA的硬件線路執行,如此就能獲得最大的加速效果。
Cray如此,與Cray同為高效運算市場的另一家業者:SGI(視算科技)也實行相同的作法,SGI提出所謂的RASC(Reconfigurable ApplicaTIon Specific Computing,可組態化應用程序性運算,)RASC也是以模塊方式讓原有的超級計算機能獲得加速效果。
SGI的作法與Cray有部分相同也有部分不同,Cray是將模塊設置在原有超級計算機的機內,而SGI則是運用既有超級計算機機箱的上部來加搭加速模塊,不過就功效機制而言兩者異曲同工,此外兩者都使用Xilinx的VIRTEX系列FPGA,但是內存與I/O部分兩家也實行不同的設計,Cray是使用QDR II SRAM,SGI則是可實行QDR SRAM,或者也可用DDR2 SDRAM,前者容量少(80MB)但速度快,后者容量大(20GB)而速度慢,提供兩種選擇的原因是可依據不同的應用程序特性來選用。
另外,高效運算業者通常有獨門的機內通訊傳輸技術,RapidArray即是Cray的獨家技術,而SGI自身也有獨家的傳輸技術,即NUMAlink 4(已是第四代技術),所以SGI的RASC不是使用RapidArray,而是使用NUMAlink 4。
其實Cray系統內所用的FPGA模塊是與DRC Computer公司技術合作而成,因此DRC Computer自身也有提供相近方案,DRC的RPU(Reconfigurable Processor Units)同樣也是用FPGA來加速,一樣是用Xilinx VIRTEX FPGA,但與主系統間的連接接口改成AMD Opteron處理器的接座接口,如此一般使用AMD Opteron處理器的x86服務器也可以加裝RPU來提升高效運算的效能。
原文標題:FPGA應用案例——超級計算機
文章出處:【微信公眾號:FPGA技術聯盟】歡迎添加關注!文章轉載請注明出處。
責任編輯:haq
-
FPGA
+關注
關注
1643文章
21983瀏覽量
614669 -
計算機
+關注
關注
19文章
7636瀏覽量
90284 -
人工智能
+關注
關注
1804文章
48788瀏覽量
247002
原文標題:FPGA應用案例——超級計算機
文章出處:【微信號:gh_873435264fd4,微信公眾號:FPGA技術聯盟】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
Blue Lion超級計算機將在NVIDIA Vera Rubin上運行
NVIDIA技術賦能歐洲最快超級計算機JUPITER
NVIDIA助力全球最大量子研究超級計算機
NVIDIA 宣布推出 DGX Spark 個人 AI 計算機

NVIDIA推出個人AI超級計算機Project DIGITS
NVIDIA 以太網加速 xAI 構建的全球最大 AI 超級計算機

評論