簡介:硬件算力能夠說在人工智能三要素中處於發動機的角色,特別是深度學習在最近 10 年之因此得到日新月異的發展,很大程度得益於硬件算力在摩爾定律的驅動下得到持續的增加,如 GPU 在最近 10 年的理論算力得到了近幾十倍的性能提高。因此,硬件算力也是阿里在人工智能技術領域的重中之重,並進行了重點佈局和持續的技術研發投入,咱們的技術核心戰略是「經過建設核高基領域的研發能力,提供極致性價比的算力供給,奠基阿里雲在 IaaS/PaaS 層具有產品易用性、多樣性和差別化服務的能力」。html
AI 集羣旨在得到更高的 AI 集成算力,扮演着「承上啓下「的角色,「承上」是指向 AI 應用提供的有效集成算力,高集成算力是支撐 AI 大模型和海量數據量的使能能力。而「啓下」是指經過集羣的計算、網絡、存儲平衡設計來充分發揮 AI 計算芯片能力,例如訪存或網絡瓶頸都會致使較低的 AI 芯片效率。AI 集羣設計的關鍵在於:前端
首先,咱們將從計算和互聯兩個技術點對阿里現有的技術棧進行全面的闡述。算法
在阿里雲神龍硬件平臺下,虛擬化架構也作了相應的升級,使計算虛擬化部分的架構更加清晰簡潔,讓虛擬機能提供接近物理機的性能。如圖所示,神龍服務器架構的主要特色是:I/O 鏈路從傳統的軟件實現轉變爲硬件和直通設備來實現,存儲虛擬化、網絡虛擬化都在 MOC 卡上來實現;同時將管控系統、監控程序等都下沉到 MOC 卡上。在提供計算服務的物理機上,只運行阿里雲本身裁剪的 Linux 操做系統和輕量化的虛擬機監控器。總的來講,神龍硬件平臺的底座,加上輕量化的宿主機 OS,再加上輕量化的虛擬機監控器,就組成了神龍架構下的輕薄且高效的新一代虛擬化平臺。數據庫
CPU 執行 AI 計算每每並不能達到最優的性價比,所以,具備海量並行計算能力、可以加速 AI 計算的 AI 芯片應運而生。當前最具表明的是 GPU、FPGA 和 AI ASIC 芯片。GPU 仍然是當前最成熟也是最普遍使用的加速器,阿里巴巴上層框架針對 GPU 作了大量的編譯優化工做。GPU 在阿里巴巴獲得了普遍的部署,也是雲上 AI 算力售賣的主力,咱們已經能作到基於 GPU 的雲產品與最新一代 GPU 同步發佈。在雲上 GPU 的安全性,可運維性,用戶體驗上咱們都走在業界的前列。在於通用計算可運維性在 GPU 虛擬化場景下的熱升級能力,居於業界第一;是業界首個發佈基於 SRIOV 的 GPU 熱遷移技術預研的雲廠商。在業界首個實現基於 GRID 的 vGPU 技術在雲上輸出,引導了 vGPU 雲化的技術趨勢,而且爲 5G 時代的雲遊戲鋪墊了 GPU 計算基礎設施。編程
GPU 的訓練芯片一直引領着 GPU 技術發展的趨勢,除了基礎 FP32 算力的高速增加以外,經過精度的變化大幅度提升算力,好比 Tensorcore 是另一個算力提高趨勢;另外,因爲多卡,多機的通訊的需求,GPU 的通訊經歷了 PCIE P2P 技術,基於 NVLink 的高速通訊技術,以及經過 RDMA 網絡的 GPUDirect RDMA 技術。而在阿里雲上,因爲多租戶之間須要進行算力共享,在不一樣的通訊模式下,如何進行算力分割和通訊的隔離,是一個阿里雲一直研究的技術,包括最新的基於 NVSwitch 的 NVLink 全鏈接場景下的可編程拓撲分割技術等。後端
FPGA 器件自誕生之初,就以高度靈活的可編程性提供類 ASIC 的性能和能效比而普遍應用於有線和無線通訊、航空航天、醫療電子和汽車電子等領域。可是,相比 CPU 和 GPU,FPGA 的開發週期較長(儘管只有 ASIC 開發週期的一半乃至三分之一)、開發和使用門檻較高,使得 FPGA 的開發人員遠遠少於 CPU 和 GPU 的開發人員,同時應用範圍和知名度也受到了很大的限制。在 FPGA 上,咱們具有了有更高的定製和自研能力,阿里雲與 AIS 聯合研發的業界第一款單卡雙芯片的 Xilinx FPGA 板卡,在板卡和 HDK 層面實現了技術自主創新的能力。安全
雲上的 FPGA 實例作了豐富的功能輸出,阿里雲 FaaS(FPGA as a Service)舜天平臺在雲端提供統一硬件平臺與中間件,可大大下降加速器的開發與部署成本。第三方 ISV 加速器 IP 能夠迅速造成服務提供給用戶,消除加速技術與最終用戶的硬件壁壘。用戶則可以在無需瞭解底層硬件的狀況下,直接按需使用加速服務。爲了給加速器提供方和使用方提供更加高效、統一的開發及部署平臺,FaaS 舜天平臺提供兩大開發套件:HDK 和 SDK。FaaS 的邏輯架構圖以下圖所示:性能優化
FaaS FPGA 邏輯架構圖服務器
阿里雲 FaaS 舜天平臺支持最全面的 DMA 技術,包括:DMA、XDMA 和 QDMA;同一架構支持 RTL 和 HLS 開發、驗證與測試;全球惟一的同一軟件架構同時支持兩大 FPGA 廠商 Xilinx 和 Intel 的雲廠商。全面、過硬、兼容性好,而且可以利用 PR 技術進行動態熱升級的Shell技術使得 FaaS 舜天平臺成爲阿里集團 FPGA 異構加速業務的基礎設施,徹底適配了集團的全部已經引入的 FPGA 器件,已經成功服務手淘、優酷、螞蟻和雲安全幾大業務板塊。網絡
阿里雲 FaaS 平臺架構圖
與 GPU 環境下,單向的軟件適配硬件不一樣,FPGA 和阿里自研 NPU 給了咱們定義硬件的機會,能夠根據業務特徵進行深度的軟硬件優化。AliDNN 是一款基於 FPGA 的指令集、加速器、SDK 和編譯器全棧自研的深度學習加速引擎。指令集加編譯器設計爲 AliDNN 提供了充分的靈活性。深度學習框架 (TensorFlow,Caffe 等)能夠直接調用 AliDNN 引擎,編譯器(震旦)將深度學習模型編譯成加速器指令進行計算。算法, runtime,編譯器和加速器的全棧軟硬件協調優化,使得 AliDNN 擁有極致的效率和性能。AliDNN 提供了高吞吐、低延遲的深度學習推理服務。
AliNPU(含光 800)更是分析阿里集團內部的人工智能應用場景需求,肯定了以 CNN 模型爲主作了深度的優化,同時支持一些通用模型,好比 RNN 類模型等。這是針對特定深度學習算法領域作特別的優化,把相關應用的性價比提升到極致,正式如此,含光 800 性價比遠超競品,成爲全球最強 AI 推理芯片。
RDMA 是目前業界最受歡迎的高性能網絡技術,能大大節約數據傳輸時間及 CPU 開銷,被公認爲是提高人工智能、科學計算、分佈式存儲性能的關鍵技術。阿里巴巴基於全新的 HAIL 網絡架構並結合自研交換機,打造了從主機網絡、消息中間件、盤古分佈式存儲、網絡運營到產品運營的完整技術體系,實現了數十個數據中心的全球最大規模 RDMA 網絡部署,遠超亞馬遜、微軟等主要雲廠商。這張全球最大規模的數據中心「高速網」使得集羣極大地突破了傳輸速度瓶頸,有效地支撐了雲盤 ESSD、雲超算 SCC、機器學習 PAI、 雲原生數據庫 POLARDB 這些廣受歡迎的創新產品,並助力電商數據庫從容應對雙十一峯值流量考驗。同時,能夠跨 POD 的 lossy RDMA 技術已經在阿里巴巴進入實驗測試階段,屆時將進一步擴大 RDMA 的適應範圍。
自研的EXSPARCL(Extremely Scalable and high Performance Alibaba gRoup Communication Library)集合通訊庫提供通用的集合通訊功能,同時兼容 NVIDIA 的 NCCL。ExSparcl 專門優化支持大規模 AI 集羣的高速互聯架構和多網卡特性, 充分利用設備之間的互聯帶寬,保證通訊和業務性能的線性擴展。經過對集羣/主機物理互聯的拓撲感知,和網絡路由的最優選擇,實現創新的無擁塞算法,確保節點內和節點間的高速通訊。例如針對 SCC 訓練集羣架構,實現的Rank重映射 Havling-Doubling 算法,能夠保障集合通訊過程當中沒有由於路徑衝突而產生的擁塞排隊,在大規模環境中對比 NVDIA 公司的 NCCL 通訊庫,實現集合通訊性能 (AllReduce/AllGather) 的數倍提高,對業務性能的提高也很是明顯。此外,拓撲感知的特性能夠用於故障規避,大大加強網絡的可用性,詳見:https://www.qbitai.com/2020/03/11987.html。
ExSPARCL
飛天 AI 加速工具經過統一的框架同時支持了 Tensorflow,PyTorch,MXNET,Caffe 這 4 種主流的 AI 計算框架的分佈式性能加速,而且針對 VPC 網絡和 RDMA 網絡都作了很深刻的性能優化,在不一樣場景不一樣訓練規模下能夠提高 1~10 倍的訓練性能。同時, AIACC 和各 AI 計算框架是解耦的,一方面能夠輕鬆支持各 AI 計算框架社區版本的向前迭代,另外一方面,用戶使用各 AI 計算框架實現的模型、算法代碼基本上不用修改,就能夠很輕鬆的得到性能加速。
阿里雲與 AIS 聯合研發的業界第一款單卡雙芯片的 FPGA 板卡,AliFPGAx2,兩塊 FPGA 之間的 Serdes 的帶寬能夠高達 600G,在一臺服務器上的兩塊 AliFPGAx2 的板卡,還能夠經過光纜互聯與高速 Serdes 互聯。於此同時 FaaS F3 提供給用戶強大的互聯拓撲結構,方便用戶搭建 FPGA 集羣,實現 FPGA 互聯,而且經過 FaaS 舜天的 Shell 提供高速 DMA 的軟硬件支持。能夠支持單卡 2 芯片互聯,雙卡 4 芯片互聯和 8 卡 16 芯片互聯,而且互聯的通道能夠經過軟件靈活配置硬件的隔離分割,在雲用戶不一樣的拓撲需求之間進行互聯和隔離。下圖是典型的 2 卡 4 芯片互聯拓撲結構。
在此基礎上,阿里巴巴開發了適合不一樣應用場景的異構超算集羣。
高性能計算是採用低延遲高帶寬的計算節點構成並行計算集羣,經過並行計算(Parallel computing)實現對浮點密集型科學和工程模型包括AI深度模型的求解。做爲計算節點的神龍裸金屬服務器經過 RoCE 網卡實現節點間計算的高速 MPI 通訊,經過神龍 MOC 卡實現和 VPC,IO 和網絡,雲盤的互聯。從而在輸出超算水平的超級算力的同時,保持全部節點的「雲原生」的彈性和統一運維。咱們還開發了彈性高性能計算 E-HPC PaaS 平臺,做爲高性能計算軟件棧建立和管理 SCC 集羣,同時對有能力自建 HPC 平臺的客戶直接輸出 SCC 集羣。
針對 AI 大規模訓練的算力需求,阿里巴巴開展了從硬件到算法的一體化設計。從性能角度,集羣設計的核心之一就是經過提高加速器間數據交互的能力,下降非計算開銷佔比,進而實現算力的規模線性擴展。所以,異構集羣系統以優化通訊爲突破口,對服務器和整機網絡架構進行從新定義,先從硬件上解除通訊瓶頸,再經過軟硬件協同,將加強的通訊能力發揮出來,該部分的工做內部代號 EFlops,實現了 AI 訓練的線性加速,相關成果在頂級學術會議 HPCA2020 上發佈點擊查看,目前建設的系統單集羣 AI 算力可達 500 PFlops(FP16 性能)。
此外,液冷是推進AI集羣架構演進的另外一股力量。因爲功耗限制,當前一個機櫃僅能容納兩臺或四臺 8 卡服務器,計算密度難以提高,而液冷則能夠打破這個限制,一個 Tank 便可容納 100 多塊 GPU 卡,省電省地省光纖,提高穩定性。相應地,集羣架構根據浸沒式液冷 Tank 的尺寸和出線特色進行了從新設計,這一工做已進入實驗階段。
再次,在得到極致性能的同時,咱們也兼顧在計算成本方面的優化,以及通用與異構算力解耦以後的靈活性。
阿里 IaaS 的 GPU 虛擬化技術是 AI 計算力上雲的基礎。阿里 IaaS 在對現有開源 GPU 虛擬化技術之上進行了二次開發,使得現有 GPU 虛擬化方案能夠適合公有云對安全性,高可靠性與可監控等關鍵功能的提高。
在公有云 GPU 服務器的安全隔離方面,阿里雲異構 IaaS 層完成了從實例內部的驅動的初步安全過濾,宿主機虛擬化層對 GPU 特權指令的過濾攔截,宿主機 PCIe 協議成的容錯處理等三層立體防禦體系,確保客戶實例不受攻擊,也沒有可能攻擊其餘客戶。
當前主流異構虛擬化仍是以設備直通的方式存在,並在基礎之上逐漸演化出 SRIOV, vGPU 分片虛擬化等最新技術。阿里 IaaS 依託現有 GPU 虛擬化技術完成了 AI 集羣 (GPU/FPGA) 的雲上規模化和產品輸出。GPU 虛擬化走過了漫長的發展路程;經歷了直通虛擬化,SRIOV 與 vGPU 的分片虛擬化,Intel 的 GVT-G 技術等等。
在通用計算時代,虛擬化的引入主要是爲了提升 CPU 利用率,可是隨着熱升級,熱遷移技術的引入,把計算資源的安全性,可靠性推到新的高度。在 GPU 資源利用率提高,計算資源碎片整理上,GPU 虛擬化技術也扮演着重要的角色。
在公有云 GPU 服務器的監控方面,阿里雲異構 IaaS 層作了 GPU 相關的雲監控方案,能夠實時取得當前 GPU 的運行狀態與溫度,顯存用量等信息,並能夠自定義多種監控模式。GPU 自定義監控與 GPU 雲監控插件。
在公有云 GPU 服務器的高可用性方面,阿里雲異構 IaaS 層開發並部署了特有的 GPU 服務器熱升級與熱遷移功能。使得當實例所在宿主機須要系統軟件更新/硬件維修等運維操做時,可讓客戶無感的完成升級更新,從而保障了客戶業務的穩定性與連續性。基於 SRIOV 和 GRID vGPU 的熱遷移能力上,阿里雲都做爲業界第一梯隊領先競對。
雲原生已經成爲業內雲服務的一個趨勢,如何可以在雲原生上支持異構計算,同時在單個 GPU 上能夠運行多個容器並進行隔離,對此業界也作了不少探索。Nvidia vGPU, Nvidia MPS, 友商的 vCUDA 方案,都爲用戶更小顆粒度的使用 GPU 提供了可能。
阿里雲 GPU 團隊推出了昊天 cGPU 方案,相比其餘方案,這是一個顛覆性的創新。業內經常使用方案是經過替換 CUDA 庫實現攔截,須要對靜態連接的程序從新編譯,同時 CUDA 升級時也須要適配新版本;而昊天 cGPU 在作到算力調度與顯存隔離的同時,也作到了無需替換 CUDA 靜態庫,動態庫,無需從新編譯,CUDA,cuDNN 等版本隨時升級無需適配。
cGPU 爲自主研發的宿主機內核驅動。它的好處在於:
如今基於阿里雲 GPU 團隊的 cGPU 昊天方案和容器服務的 GPU 共享調度雙劍合璧, 能夠打造低成本,可靠,用戶友好的規模化 GPU 調度和隔離方案。
EAIS 經過軟件池化的方式將 CPU 核心數和後端異構加速設備解耦,前端的純 CPU ECS能夠動態掛載或者卸載後端異構加速設備,前端 ECS 和後端異構加速設備間經過加密的 gRPC 協議通訊。後端加速設備能夠包括 GPU,FPGA,NPU 等異構加速器,而且經過軟件池化的方式進行統一調度和管理。
作加速機羣池化的主要目的,是想提升機羣資源利用率。機羣管理如 K8s 對加速資源管理手段很是有限,通常都是以直通(pass-through)的方式,以整卡的力度來分配。再者 CPU 和加速資源以整機形式,綁定資源分配,在實際應用中有很大資源浪費。而數據中心呈現去中心化發展趨勢(disaggregation),從物理機到虛擬機,到虛擬網卡,到分佈式存儲,整機的各個部件逐漸以專用機櫃的形式,以虛擬化,可配置(configurable)的方式經過網絡組裝。對比磁盤,加速資源跟通用計算之間聯繫更緊密,可是隨着技術的進步,加速資源單獨組機櫃,經過網絡或者其餘互聯(interconnect)的形式,對通用計算(CPU)加速,成爲一個技術趨勢。
Heterogenous accelerator resource pooling (HARP),目前以 GPU 爲主要加速資源,未來會擴展到 NPU 和其餘加速硬件。經過在用戶程序和 driver 之間,加一箇中間層(目前爲軟件,未來可擴展爲硬件),來實現加速資源的虛擬化,動態地爲用戶分配本地或者遠程的加速資源,從而更好的管理和利用加速資源。
HARP 實現方式的優點爲:
HARP 資源池須要支持其餘各類加速芯片,所以但願能創建統一的接口。支持該接口的芯片只須要花少許的工做,就能接入資源池調度系統。所以咱們聯合上海交大和清華大學,以及寒武紀等芯片廠商,創建中國異構資源池技術標準產業聯盟。
做爲軟件池化技術的升級,利用自研或者三方的硬件插卡,經過機架或小規模跨機架的高速總線互聯技術,對通用計算器與多種加速器進行配比解耦,達到中等規模加速器池化和任意的加速器的靈活組合。同時在可靠性,可運維性,加速卡硬件故障處理 SLA 上提供更好的服務。
遠程資源 - 本地訪問
最後,基於在「核高基」領域的技術研發,奠基了今天阿里雲的 IaaS 及 PaaS 服務具有了如下特色: