雲計算

機器學習領域技術大圖:硬件算力

--------點擊屏幕右側或者屏幕底部“+訂閱”,關注我,隨時分享機器智能最新行業動態及技術乾貨----------

image.png

AI 集群旨在獲得更高的 AI 集成算力,扮演著“承上啟下“的角色,“承上”是指向 AI 應用提供的有效集成算力,高集成算力是支撐 AI 大模型和海量數據量的使能能力。而“啟下”是指通過集群的計算、網絡、存儲平衡設計來充分發揮 AI 計算芯片能力,例如訪存或網絡瓶頸都會導致較低的 AI 芯片效率。AI 集群設計的關鍵在於:

  • 1)單機:計算優化,軟硬件協同優化發揮 AI 加速器有效算力。
  • 2)多機:通信優化,最小化多機數據交換引入的計算效率損耗。我們將從單機加速和集群加速(多機)兩個方面介紹相關技術和系統。

首先,我們將從計算和互聯兩個技術點對阿里現有的技術棧進行全面的闡述。

計算技術

image.png

神龍服務器和神龍虛擬化技術

在阿里雲神龍硬件平臺下,虛擬化架構也做了相應的升級,使計算虛擬化部分的架構更加清晰簡潔,讓虛擬機能提供接近物理機的性能。如圖所示,神龍服務器架構的主要特點是:I/O 鏈路從傳統的軟件實現轉變為硬件和直通設備來實現,存儲虛擬化、網絡虛擬化都在 MOC 卡上來實現;同時將管控系統、監控程序等都下沉到 MOC 卡上。在提供計算服務的物理機上,只運行阿里雲自己裁剪的 Linux 操作系統和輕量化的虛擬機監控器。總的來說,神龍硬件平臺的底座,加上輕量化的宿主機 OS,再加上輕量化的虛擬機監控器,就組成了神龍架構下的輕薄且高效的新一代虛擬化平臺。

image.png

image.png

GPU

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

FPGA 器件自誕生之初,就以高度靈活的可編程性提供類 ASIC 的性能和能效比而廣泛應用於有線和無線通信、航空航天、醫療電子和汽車電子等領域。但是,相比 CPU 和 GPU,FPGA 的開發週期較長(儘管只有 ASIC 開發週期的一半乃至三分之一)、開發和使用門檻較高,使得 FPGA 的開發人員遠遠少於 CPU 和 GPU 的開發人員,同時應用範圍和知名度也受到了很大的限制。在 FPGA 上,我們具備了有更高的定製和自研能力,阿里雲與 AIS 聯合研發的業界第一款單卡雙芯片的 Xilinx FPGA 板卡,在板卡和 HDK 層面實現了技術自主創新的能力。

image.png

舜天平臺:FPGA 即服務 (FaaS)

雲上的 FPGA 實例做了豐富的功能輸出,阿里雲 FaaS(FPGA as a Service)舜天平臺在雲端提供統一硬件平臺與中間件,可大大降低加速器的開發與部署成本。第三方 ISV 加速器 IP 可以迅速形成服務提供給用戶,消除加速技術與最終用戶的硬件壁壘。用戶則能夠在無需瞭解底層硬件的情況下,直接按需使用加速服務。為了給加速器提供方和使用方提供更加高效、統一的開發及部署平臺,FaaS 舜天平臺提供兩大開發套件:HDK 和 SDK。FaaS 的邏輯架構圖如下圖所示:

image.png

FaaS FPGA 邏輯架構圖

image.png

阿里雲 FaaS 舜天平臺支持最全面的 DMA 技術,包括:DMA、XDMA 和 QDMA;同一架構支持 RTL 和 HLS 開發、驗證與測試;全球唯一的同一軟件架構同時支持兩大 FPGA 廠商 Xilinx 和 Intel 的雲廠商。全面、過硬、兼容性好,並且能夠利用 PR 技術進行動態熱升級的Shell技術使得 FaaS 舜天平臺成為阿里集團 FPGA 異構加速業務的基礎設施,完全適配了集團的所有已經引入的 FPGA 器件,已經成功服務手淘、優酷、螞蟻和雲安全幾大業務板塊。

image.png

阿里雲 FaaS 平臺架構圖

AliDNN

與 GPU 環境下,單向的軟件適配硬件不同,FPGA 和阿里自研 NPU 給了我們定義硬件的機會,可以根據業務特徵進行深度的軟硬件優化。AliDNN 是一款基於 FPGA 的指令集、加速器、SDK 和編譯器全棧自研的深度學習加速引擎。指令集加編譯器設計為 AliDNN 提供了充分的靈活性。深度學習框架 (TensorFlow,Caffe 等)可以直接調用 AliDNN 引擎,編譯器(震旦)將深度學習模型編譯成加速器指令進行計算。算法, runtime,編譯器和加速器的全棧軟硬件協調優化,使得 AliDNN 擁有極致的效率和性能。AliDNN 提供了高吞吐、低延遲的深度學習推理服務。

image.png

NPU

AliNPU(含光 800)更是分析阿里集團內部的人工智能應用場景需求,確定了以 CNN 模型為主做了深度的優化,同時支持一些通用模型,比如 RNN 類模型等。這是針對特定深度學習算法領域做特別的優化,把相關應用的性價比提高到極致,正式如此,含光 800 性價比遠超競品,成為全球最強 AI 推理芯片。

image.png

互聯技術

RDMA

RDMA 是目前業界最受歡迎的高性能網絡技術,能大大節約數據傳輸時間及 CPU 開銷,被公認為是提升人工智能、科學計算、分佈式存儲性能的關鍵技術。阿里巴巴基於全新的 HAIL 網絡架構並結合自研交換機,打造了從主機網絡、消息中間件、盤古分佈式存儲、網絡運營到產品運營的完整技術體系,實現了數十個數據中心的全球最大規模 RDMA 網絡部署,遠超亞馬遜、微軟等主要雲廠商。這張全球最大規模的數據中心“高速網”使得集群極大地突破了傳輸速度瓶頸,有效地支撐了雲盤 ESSD、雲超算 SCC、機器學習 PAI、 雲原生數據庫 POLARDB 這些廣受歡迎的創新產品,並助力電商數據庫從容應對雙十一峰值流量考驗。同時,可以跨 POD 的 lossy RDMA 技術已經在阿里巴巴進入實驗測試階段,屆時將進一步擴大 RDMA 的適應範圍。

EXSPARCL通信庫

自研的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

image.png

ExSPARCL

飛天AI加速工具(AIACC)

飛天 AI 加速工具通過統一的框架同時支持了 Tensorflow,PyTorch,MXNET,Caffe 這 4 種主流的 AI 計算框架的分佈式性能加速,並且針對 VPC 網絡和 RDMA 網絡都做了很深入的性能優化,在不同場景不同訓練規模下可以提升 1~10 倍的訓練性能。同時, AIACC 和各 AI 計算框架是解耦的,一方面可以輕鬆支持各 AI 計算框架社區版本的向前迭代,另一方面,用戶使用各 AI 計算框架實現的模型、算法代碼基本上不用修改,就可以很輕鬆的獲得性能加速。

image.png

FaaS 舜天可以支持 FPGA 芯片高速互聯 (最高可達 600G)

阿里雲與 AIS 聯合研發的業界第一款單卡雙芯片的 FPGA 板卡,AliFPGAx2,兩塊 FPGA 之間的 Serdes 的帶寬可以高達 600G,在一臺服務器上的兩塊 AliFPGAx2 的板卡,還可以通過光纜互聯與高速 Serdes 互聯。於此同時 FaaS F3 提供給用戶強大的互聯拓撲結構,方便用戶搭建 FPGA 集群,實現 FPGA 互聯,並且通過 FaaS 舜天的 Shell 提供高速 DMA 的軟硬件支持。可以支持單卡 2 芯片互聯,雙卡 4 芯片互聯和 8 卡 16 芯片互聯,並且互聯的通道可以通過軟件靈活配置硬件的隔離分割,在雲用戶不同的拓撲需求之間進行互聯和隔離。下圖是典型的 2 卡 4 芯片互聯拓撲結構。

image.png

在此基礎上,阿里巴巴開發了適合不同應用場景的異構超算集群。

SCC:通用和異構超算集群

image.png

高性能計算是採用低延遲高帶寬的計算節點構成並行計算集群,通過並行計算(Parallel computing)實現對浮點密集型科學和工程模型包括AI深度模型的求解。作為計算節點的神龍裸金屬服務器通過 RoCE 網卡實現節點間計算的高速 MPI 通信,通過神龍 MOC 卡實現和 VPC,IO 和網絡,雲盤的互聯。從而在輸出超算水平的超級算力的同時,保持所有節點的“雲原生”的彈性和統一運維。我們還開發了彈性高性能計算 E-HPC PaaS 平臺,作為高性能計算軟件棧創建和管理 SCC 集群,同時對有能力自建 HPC 平臺的客戶直接輸出 SCC 集群。

SCC-訓練集群:大規模 AI 訓練集群

針對 AI 大規模訓練的算力需求,阿里巴巴開展了從硬件到算法的一體化設計。從性能角度,集群設計的核心之一就是通過提升加速器間數據交互的能力,降低非計算開銷佔比,進而實現算力的規模線性擴展。因此,異構集群系統以優化通信為突破口,對服務器和整機網絡架構進行重新定義,先從硬件上解除通信瓶頸,再通過軟硬件協同,將增強的通信能力發揮出來,該部分的工作內部代號 EFlops,實現了 AI 訓練的線性加速,相關成果在頂級學術會議 HPCA2020 上發佈 點擊查看,目前建設的系統單集群 AI 算力可達 500 PFlops(FP16 性能)。

image.png

此外,液冷是推動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 技術等等。

image.png

在通用計算時代,虛擬化的引入主要是為了提高 CPU 利用率,但是隨著熱升級,熱遷移技術的引入,把計算資源的安全性,可靠性推到新的高度。在 GPU 資源利用率提升,計算資源碎片整理上,GPU 虛擬化技術也扮演著重要的角色。

在公有云 GPU 服務器的監控方面,阿里雲異構 IaaS 層做了 GPU 相關的雲監控方案,可以實時取得當前 GPU 的運行狀態與溫度,顯存用量等信息,並可以自定義多種監控模式。GPU 自定義監控與 GPU 雲監控插件。

在公有云 GPU 服務器的高可用性方面,阿里雲異構 IaaS 層開發並部署了特有的 GPU 服務器熱升級與熱遷移功能。使得當實例所在宿主機需要系統軟件更新/硬件維修等運維操作時,可以讓客戶無感的完成升級更新,從而保障了客戶業務的穩定性與連續性。基於 SRIOV 和 GRID vGPU 的熱遷移能力上,阿里雲都作為業界第一梯隊領先競對。

異構 GPU 容器支持(cGPU 容器 AI 算力隔離技術)

雲原生已經成為業內雲服務的一個趨勢,如何能夠在雲原生上支持異構計算,同時在單個 GPU 上可以運行多個容器並進行隔離,對此業界也做了很多探索。Nvidia vGPU, Nvidia MPS, 友商的 vCUDA 方案,都為用戶更小顆粒度的使用 GPU 提供了可能。
阿里雲 GPU 團隊推出了昊天 cGPU 方案,相比其他方案,這是一個顛覆性的創新。業內常用方案是通過替換 CUDA 庫實現攔截,需要對靜態鏈接的程序重新編譯,同時 CUDA 升級時也需要適配新版本;而昊天 cGPU 在做到算力調度與顯存隔離的同時,也做到了無需替換 CUDA 靜態庫,動態庫,無需重新編譯,CUDA,cuDNN 等版本隨時升級無需適配。

image.png

cGPU 為自主研發的宿主機內核驅動。它的好處在於:

  • 適配開源標準的 Kubernetes 和 NVidia Docker 方案
  • 用戶側透明。AI 應用無需重編譯,執行無需 cuda 庫替換
  • 針對 Nvidia 設備的底層操作更加穩定和收斂,而 CUDA 層的 API 變化多端,同時一些 Cudnn 非開放的 API 也不容易捕獲。
  • 同時支持 GPU 的顯存和算力隔離

現在基於阿里雲 GPU 團隊的 cGPU 昊天方案和容器服務的 GPU 共享調度雙劍合璧, 可以打造低成本,可靠,用戶友好的規模化 GPU 調度和隔離方案。

軟件池化

EAIS.EI:資源調度層池化

EAIS 通過軟件池化的方式將 CPU 核心數和後端異構加速設備解耦,前端的純 CPU ECS可以動態掛載或者卸載後端異構加速設備,前端 ECS 和後端異構加速設備間通過加密的 gRPC 協議通信。後端加速設備可以包括 GPU,FPGA,NPU 等異構加速器,並且通過軟件池化的方式進行統一調度和管理。

image.png

HARP:Runtime 層池化

做加速機群池化的主要目的,是想提高機群資源利用率。機群管理如 K8s 對加速資源管理手段非常有限,一般都是以直通(pass-through)的方式,以整卡的力度來分配。再者 CPU 和加速資源以整機形式,綁定資源分配,在實際應用中有很大資源浪費。而數據中心呈現去中心化發展趨勢(disaggregation),從物理機到虛擬機,到虛擬網卡,到分佈式存儲,整機的各個部件逐漸以專用機櫃的形式,以虛擬化,可配置(configurable)的方式通過網絡組裝。對比磁盤,加速資源跟通用計算之間聯繫更緊密,但是隨著技術的進步,加速資源單獨組機櫃,通過網絡或者其他互聯(interconnect)的形式,對通用計算(CPU)加速,成為一個技術趨勢。

Heterogenous accelerator resource pooling (HARP),目前以 GPU 為主要加速資源,將來會擴展到 NPU 和其他加速硬件。通過在用戶程序和 driver 之間,加一箇中間層(目前為軟件,將來可擴展為硬件),來實現加速資源的虛擬化,動態地為用戶分配本地或者遠程的加速資源,從而更好的管理和利用加速資源。

HARP 實現方式的優勢為:

  • 對上層應用透明,對運行環境無要求(物理機、容器、VM)均可
  • 同時支持本地和遠程的加速資源,本地模式下與直接使用 GPU 性能無差異
  • 可以通過控制 API 來比較輕量化地在單卡複用情形下顯存、計算資源控制
  • 可以對上層應用隱藏底層硬件細節,自動化一些底層配置(本地物理 GPU/由 PCIE-switch 連接的另一臺 host 上的物理機/vGPU/下一代 GPU 支持/Compute Instance)
  • 可以實現一些額外的 profiling 功能,甚至生成一些可以 replay 的 trace

HARP 資源池需要支持其他各種加速芯片,因此希望能建立統一的接口。支持該接口的芯片只需要花少量的工作,就能接入資源池調度系統。因此我們聯合上海交大和清華大學,以及寒武紀等芯片廠商,建立中國異構資源池技術標準產業聯盟。

硬件層池化

作為軟件池化技術的升級,利用自研或者三方的硬件插卡,通過機架或小規模跨機架的高速總線互聯技術,對通用計算器與多種加速器進行配比解耦,達到中等規模加速器池化和任意的加速器的靈活組合。同時在可靠性,可運維性,加速卡硬件故障處理 SLA 上提供更好的服務。

image.png

遠程資源 - 本地訪問

最後,基於在“核高基”領域的技術研發,奠定了今天阿里雲的 IaaS 及 PaaS 服務具備了以下特點:

  • 以產品多樣性,打造性價比極致的算力供給的硬件算力基礎設施為設計目標。
  • 以軟硬協同為主的技術研發和佈局形成我們的差異化競爭力和技術抓手。
  • 從單加速器分片算力共享到大規模集群算力的彈性算力能力的交付能力是一個核心需要打造的能力。
  • SLA 服務能力具備差異性,高可靠性。

image.png

原文鏈接:https://mp.weixin.qq.com/s/SJUO7yj-8sHvOHYBDZXPwQ

Leave a Reply

Your email address will not be published. Required fields are marked *