IT運維 | 異構計算簡介
2020-05-17 18:45 作者:admin
IT運維 | 異構計算簡介
北京
IT外包服務商為您提供專業的
IT外包服務
隨著人工智能的發展,越來越多的計算平臺都采用了異構計算。作為
IT運維必須要了解這種運算架構,以便更好的服務我們的客戶。異構計算主要是指使用不同類型指令集和體系架構的計算單元組成系統的計算方式。異構計算已經無處不在,從超算系統到桌面到云到終端,都包含不同類型指令集和體系架構的計算單元,下面先從幾個系統了解下異構計算超算系統。
天河-2:包括16,000個計算節點,每個節點 2*Xeon (IveBridge)+3*Phi。Total 3,120,000 Core, Linpack測試基準為33.86 petaFLOPS ,Power 17.6 megawatts。編程框架:OpenMC/OpeMP。
Mac Pro: Intel Xeon E5 (6/8/2 cores) + Dual AMD FirePro D500 GPU (1526 stream processors, 2.2 teraflops, 3-way 4k video)。編程框架:CUDA、OpenCL、Metal。
Amazon Linux GPU Instances g2.8xlarge: 4 GPU (each with 1,536 CUDA cores and 4 GB of video memory and the ability to 4* 1080p@30fps), 32 vCPU 。編程框架:CUDA,OpenCL。
Qualcomm Snapdragon 820 : octa-core CPU+ Adreno 530 GPU+ Hexagon 680 DSP,編程框架:MARE,OpenCL。
顯然,異構計算系統包含了不同異構計算單元,如CPU、GPU、DSP、ASIC、FPGA等。除了異構硬件單元,不同異構計算平臺采用的編程框架也不盡相同。那么,為什么要用異構計算?異構計算優勢主要提現在性能、性價比、功耗、面積等指標上,在特定場景,異構計算往往會表現出驚人的計算優勢。
·
Google Brain:1,000臺服務器 (16,000 CPU核) 模擬simulating a model of the brain with a billion synapses.
·
Nvidia:three GPU-accelerated servers: 12 GPUs in total, 18,432 CUDA processor cores.
The Nvidia solution uses 100 times less energy, and a 100 times less cost.
除OpenCL之外,還有很多編程框架?異構并行計算框架是充分發揮異構硬件性能和屏蔽硬件差異的關鍵,但目前業界不存在一個統一標準。OpenCL是業界主流公司推動的異構并行計算編程標準。OpenCL屬于性能層,業界很多產能層框架對接OpenCL。
· Intel、ARM、高通的異構硬件均支持OpenCL軟件設計。
· Intel Xeon+FPGA異構芯片支持OpenCL。
Nvidia CUDA、Apple Metal是針對各自異構硬件設計的計算私有框架,是封閉系統,但都有廣泛的開發者支持。CUDA和OpenCL在設計理念上非常相近,但Nvidia GPU性能業界最強,有能力通過CUDA綁定用戶,比如深度學習上Nvidia GPU效果最好,開發者只能選擇CUDA。異構硬件的一個趨勢是SOC上集成多種異構硬件。比如高通820芯片集成了ARM64+GPU+DSP等多種形態。
· 但傳統的計算框架只針對一種硬件設計,無法支持多形態。
· 高通設計了Symphony異構并行計算框架來發揮多形態異構硬件性能,同時適應未來芯片的演進。
OpenCL異構編程技術得到各大廠家的大力支持,可屏蔽異構硬件與OS差異,簡化異構核編程復雜度,OpenCL由蘋果提出,得到業界大多數廠商的支持:如Nvidia、Apple、AMD、ARM、INTEL、TI等等,支撐GPGPU、DSP、FPGA等通用硬件加速器。
· 優勢:OpenCL是針對GPGPU大規模數據并行的特性所開發的底層編程框架,屏蔽各廠商GPU之間的差異,與芯片設計協同演進,C語言的擴展。
· 不足:性能的可移植性不足。
OpenCL編程模型中隱含了很多的硬件特征,比如并行粒度、內存模型、存儲層次、資源粒度、內存帶寬和延遲、ISA差異等,這導致不同的加速器上的OpenCL代碼都要重新思考上述特征。隨著FPGA的廣泛使用,成本逐步降低,作為軟件定義實現快速在線指令優化,對整個編譯器、運行框架、OS產生巨大影響。新架構對軟件的挑戰:
· 1)支持CPU+FPGA融合并行的計算框架,包括FPGA編譯和高層語言設計。
· 2)大規模分布式FPGA資源管理與調度
· 3)高性能FPGA算法庫。
異構計算主要是指使用不同類型指令集和體系架構的計算單元組成系統的計算方式。常見的計算單元類別包括CPU、GPU、DSP、ASIC、FPGA等。FPGA和GPU/CPU對比具有以下不同:
· 1.軟件定義的硬件架構:GPU/CPU硬件固定,其并行性設計是適應固定硬件。而FPGA的硬件邏輯可以通過軟件動態改變,從硬件的角度來適配軟件,從而獲得更高的計算性能。
· 2.更高并行性、能效比:FPGA擁有更豐富的計算資源組件,從而能夠滿足更多并行計算需求。并且能夠充分發掘軟件算法中的并行性,降低功耗。
同時,新架構融合CPU+FPGA,將成為一種發展趨勢:
· 1. 異構核首次作為一等公民:通過CPU+FPGA的融合設計,由主機+外設的Offloading模式轉變為異構多核片上系統設計,CPU與FPGA地位等同,通信方式由板級轉向片內。
· 2. OpenCL帶來了FPGA的編程革命:提高了FPGA的可編程性,將程序員從復雜的硬件電路設計中解救出來,更專注于系統/算法的設計。
總結:CPU主要是做通用控制以及計算的,整個算術邏輯單元ALU占整個芯片面積不到5%。CPU里面包含很多控制邏輯,預測,Cache等邏輯,所以算力不高,但是什么都能做。
· CPU主要特點:主頻高,但核數有限;邏輯控制和算術運算單元、具有大量緩存,主要功能在于管理和調度任務。
GPU專門用來做浮點運算,只能作為協處理器配合CPU完成特定計算。但GPU天然假設所有運算可以并行(GPU具有數千個計算核),整個芯片90%都是運算邏輯。所以算力非常高,通常是CPU的幾十上百倍。
· GPU特點:高并發(幾千個核并),強浮點能力和高顯存帶寬。
FPGA主頻低但集成大量計算單元,流水線并行和數據并行,具備硬件編程和加速和特定應用IP核。然而,ASIC是針對某一場景優化的專用處理單元,硬件基本不可編程,采用多個IP集成,但有高性價比和能效比。
以上內容由北京艾銻無限科技發展有限公司整理