CESA-2021-3-019《信息技術 人工智能 計算設備調度與協同 第1部分:虛擬化與調度》團體標準(征求意見稿)_第1頁
CESA-2021-3-019《信息技術 人工智能 計算設備調度與協同 第1部分:虛擬化與調度》團體標準(征求意見稿)_第2頁
CESA-2021-3-019《信息技術 人工智能 計算設備調度與協同 第1部分:虛擬化與調度》團體標準(征求意見稿)_第3頁
CESA-2021-3-019《信息技術 人工智能 計算設備調度與協同 第1部分:虛擬化與調度》團體標準(征求意見稿)_第4頁
CESA-2021-3-019《信息技術 人工智能 計算設備調度與協同 第1部分:虛擬化與調度》團體標準(征求意見稿)_第5頁
已閱讀5頁,還剩31頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

ICS35.240

CCSL70

團體標準

T/CESAXXXX—202X

信息技術人工智能計算設備調度與協同

第1部分:虛擬化與調度

Informationtechnology—Artificialintelligence-Computation

schedulingandcooperation—Part1:VirtualizationandScheduling

(征求意見稿)

在提交反饋意見時,請將您知道的相關專利連同支持性文件一并附上。

已授權的專利證明材料為專利證書復印件或扉頁,已公開但尚未授權的專利申

請證明材料為專利公開通知書復印件或扉頁,未公開的專利申請的證明材料為專利

申請號和申請日期。

202X-XX-XX發布202X-XX-XX實施

中國電子工業標準化技術協會發布

T/CESAXXX—202X

前言

本文件按照GB/T1.1-2020《標準化工作導則第1部分:標準化文件的結構和起草規則》的規定

起草。

本文件由中國電子技術標準化研究院提出。

本文件由中國電子工業標準化技術協會歸口。

本文件起草單位:。

本文件主要起草人:。

III

T/CESAXXX—202X

引言

人工智能計算設備種類、形態多樣。在使用時,計算設備的虛擬化是常用的技術手段,有利于屏蔽

各異構計算設備的差異,降低應用實現、維護復雜度。在各行業應用中,基于云,邊和終端的部署已成

為協同計算的基礎。為向應用提供相對一致的虛擬化過程和實例使用方法,支持分布式應用需求,應建

立計算虛擬化與分布式協同標準,規定基本的過程、方法和架構,提出基礎要求和關鍵指標。為此,提

出《信息技術人工智能計算設備調度與協同》系列標準。擬由兩部分構成。

——第1部分:虛擬化與調度。目的在于為產業界提供相對統一的規則,實施計算設備虛擬化過程,

為上層應用對計算設備的使用創造一致性標準基礎。

——第2部分:分布式計算框架。目的在于連接產業中中心、邊、端側各研究機構和企業產品,遵

循統一的運算、調度模式,有利于降低因個例的計算模式差異而導致的研發和維護成本。

本文件為第1部分。

IV

T/CESAXXX—202X

信息技術人工智能計算設備調度與協同

第1部分:虛擬化與調度

1范圍

本文件規定了人工智能計算設備虛擬化與調度系統的技術要求,關于人工智能計算設備虛擬化與

調度系統的測試方法與測試指標。

本文件適用于指導人工智能計算設備虛擬化與調度系統的設計、研發、測試。

2規范性引用文件

本文件沒有規范性引用文件。

3術語和定義

下列術語和定義適用于本文件。

3.1

人工智能計算單元artificialintelligencecomputingunit

可執行完整的AI計算任務所必要部件的最小集合。

注:人工智能計算單元一般封裝在AI處理器或加速卡中。

3.2

人工智能加速卡artificialintelligenceacceleratingcard

專為人工智能計算設計、符合人工智能服務器硬件接口的擴展加速設備。

注1:本文件中,在不至于誤解的語境中,將人工智能加速卡簡稱為AI加速卡。

注2:人工智能加速卡按功能可分為人工智能訓練加速卡,人工智能推理加速卡等。

[來源:GB/TBBBBB.BBBB,3.7]

3.3

人工智能計算實例artificialintelligencecomputinginstance

可執行完整機器學習訓練或推理計算任務的虛擬化對象,可以是AI計算單元的組合。

3.4

[異構]資源池[heterogeneous]resourcepool

1

T/CESAXXX—202X

一種將不同架構、不同實現方式的人工智能計算資源組織起來,自動按需滿足不同計算需求的統一

調度軟件集合。

注1:異構資源池提供一種可伸縮計算架構,有利于合理分配計算資源,為不同運行環境(例如云、集群、移動設

備、物聯網)的人工智能應用系統的開發和部署提供計算能力、存儲、帶寬和延時保障。

注2:人工智能計算資源包括中央處理單元(CPU),圖形處理單元(GPU),神經網絡處理單元(NPU),現場可編程邏

輯門陣列(FPGA),數字信號處理器(DSP),專用集成電路(ASIC)等。

[來源:GB/TAAAAA—AAAA,3.1.9]

3.5

計算能力computingcapability

產品或系統參數能夠滿足計算需求的最大程度。

注1:參數指能處理的作業數量,能服務的最大用戶數量或事務吞吐量等。

注2:標稱計算能力是特定產品或系統在單位時間內理論上能完成的計算操作次數。

3.6

神經網絡處理器Neural-networkProcessingUnit

一種專門針對神經網絡計算進行特殊優化設計的集成電路元件。

注:該類集成電路元件擅長處理視頻、圖像、語音類多媒體數據。

3.7

人工智能[計算]任務artificialintelligencecomputingtask

為取得特定人工智能計算目標所需的活動。

注:本文件中,在不至于誤解的語境中,人工智能計算任務一般指推理或訓練任務。

[來源:ISO/IEC25062—2006,4.9,有修改]

3.8

性能performance

人工智能加速卡在運行計算任務時,可被測量的特性,在評估AI任務的性能時,一般采用吞吐率特

性。

注1:可包含定性及定量的特征;

注2:性能可基于一個或多個參數(如能耗、流量、吞吐率、運行時間以及速率等)的測量或計算獲得,以表征在

某機器中運行的某技術過程的行為、特性以及效率。

[來源:ISO/IEC20000.10—2018,3.1.16,有修改]

3.9

人工智能集群artificialintelligencecluster

遵循統一控制的,人工智能計算功能單元的集合。

注1:人工智能計算功能單元可包含:人工智能加速處理器,人工智能服務器,人工智能加速模組等。

2

T/CESAXXX—202X

注2:當由人工智能服務器組成時,人工智能集群可稱為人工智能服務器集群。

[來源:GB/TAAAAA—AAAA,3.1.4,有修改]

3.10

節點node

由網絡連接的,能完成特定人工智能計算任務的物理或邏輯AI計算設備。

[來源:ISO/IEC14575—2000,3.2.27,有修改]

4縮略語

下列縮略語適用于本文件:

AI人工智能(ArtificialIntelligence)

ALU算術邏輯單元(ArithmeticLogicUnit)

BAR基址寄存器(BaseAddressRegister)

CPU中央處理器(CenterProcessingUnits)

DDR雙倍速率傳輸率(DoubleDataRate)

DMA直接存儲器訪問(DirectMemoryAccess)

DoS拒絕服務(DenialofService)

FPGA現場可編程邏輯門陣列(FieldProgrammableGateArray)

GDDR圖形雙倍速率傳輸存儲器(GraphicsDDRSDRAM)

GPU圖形處理器(GraphicsProcessingUnits)

HBM高帶寬存儲器(HighBandwidthMemory)

HRP硬件資源池(HardwareResourcesPool)

MLU機器學習單元(MachineLearningUnit)

NIC網絡接口控制(NetworkInterfaceController)

NPU神經網絡處理器(Neural-networkProcessingUnits)

PCIE外設部件互聯高速通道(PeripheralComponentInterconnectExpress)

QEMU快速模擬器(QuickEmulator)

QoS服務質量(QualityofService)

SDM空分復用(Space-DivisionMultiplexing)

TDM分時復用(Time-DivisionMultiplexing)

USB通用串行總線(UniversalSerialBus)

VFIO虛擬功能輸入/輸出(VirtualFunctionInputOutput)

VM虛擬機(VirtualMachine)

VMX虛擬機擴展(VirtualMachineExtension)

VMM虛擬機監視器(VirtualMachineMonitor)

5人工智能計算虛擬化系統架構

3

T/CESAXXX—202X

注:本文件涉及圖中實線框起部分的標準化,虛線框起的部分不屬于本文件的標準化范疇。

圖1人工智能計算資源虛擬化參考架構

人工智能計算虛擬化是通過虛擬化人工智能計算資源和資源調度實現異構資源池,以一致的方式

使用人工智能計算物理資源。圖1中,算法應用層的開發者和用戶在深度學習框架上設計實現算法,

再下發給資源調度層。后者執行算法所要求計算。資源調度層根據下發的計算任務和資源池的情況,

完成任務的分配,選擇虛擬化的AI計算實例。虛擬化方案包含對基于CPU,GPU,NPU,FPGA的物理

AI加速卡的虛擬化,形成資源池。

6虛擬化技術要求

6.1概述

AI系統的虛擬化技術是一種計算資源管理的方法,將用于AI任務的含有異構加速器的不同AI加速

卡,切分,調配或整合,目的是提高利用率,減少AI加速卡計算資源的浪費。

注:本文件中計算資源虛擬化規定的范圍不包含其它計算資源,如網絡、存儲等。

6.2基本要求

人工智能加速卡的虛擬化,符合以下要求:

a)AI加速卡的虛擬化,應符合以下要求:

1)支持單個AI加速卡虛擬化為多個AI計算實例;

2)支持多個AI加速卡虛擬化為單個AI計算實例;

3)虛擬化技術得到的AI計算實例,滿足物理機、虛擬機和容器的使用場景;

4)支持算AI加速卡的靈活切分、隔離;

5)支持PCIE、HCCS、USB連接部署;

b)虛擬化組件或系統,宜支持對AI計算實例的監控,包括:

1)資源的利用率,包括計算資源的利用率;

2)算子時延的統計;

3)各虛擬機的帶寬可觀測;

4)計算實例的算力波動:即所有計算實例部署運行,所有計算實例中最大執行時長平均與最

小時長平均的比值;

4

T/CESAXXX—202X

5)虛擬化后,AI加速卡的算力損耗;

c)應支持資源復用機制來提高計算資源利用率,如分時復用或分區復用,滿足AI任務具有的動態

負載特性與資源可變特性。

d)應符合以下關于隔離功能的規定:

1)虛擬化得到的AI計算實例滿足隔離要求,以確保用戶和硬件設備的安全。

2)故障隔離:

——計算實例的業務故障隔離,計算實例內的單點故障只上報給該虛擬機;

——計算實例之間不干擾;

——計算實例的業務故障可以通過用戶API返回;

——支持以下類型設備故障隔離:,PCIE故障、DDR故障、內存總線掛死等;

——整體設備的單點故障上報給所有的計算實例。

3)用戶間的性能隔離,滿足每個用戶使用計算資源的性能不被并發執行的多個用戶所破壞。

4)安全隔離,支持以下功能,包含但不限于:

——防止仿冒;

——防止篡改;

——防止信息泄露;

——防止DoS攻擊;

——防止權限提升;

——防止抵賴。

e)可支持計算能力重新配置,即在多個用戶和動態工作負載的情況下,可最大限度的提高整個系

統的性能。

f)應具有QoS保證,使單個AI任務單獨運行。

g)應支持公平性保證,可多個任務同時運行。

h)虛擬化宜支持以下技術,包含但不限于:

——支持高可用集群技術;

——支持負載均衡,它將特定的業務(網絡服務、網絡流量等)分擔給多臺網絡設備(包括服

務器、防火墻等)或多條鏈路,從而提高了業務處理能力,保證了業務的高可靠性;

——支持內存復用技術,方式包括內存氣泡、內存置換、內存共享等;

——支持易擴容技術。

6.3資源抽象

人工智能計算資源抽象,符合以下要求:

a)AI加速器的虛擬化應抽象資源,為資源調度層提供可調度的屬性及相關狀態信息,包含:

1)物理資源的抽象,可為資源調度層提供重新分配的資源;

2)虛擬化技術抽象出的AI計算實例可以是全部的物理資源或部分物理資源;

3)虛擬化技術抽象出的每個AI計算實例應能執行完整的神經網絡計算:

——完整的卷積計算;

——完整的向量計算;

——完整的標量計算;

——數據傳輸和交換能力;

4)虛擬化技術得到的AI計算實例應包含以下部件并作為可調度的屬性:

——計算部件;

5

T/CESAXXX—202X

——緩存部件;

——寄存器;

——存儲器;

——數據通信部件;

5)虛擬化技術得到的AI計算實例,應具有以下狀態信息:

——實例使用狀態;

——空閑可使用;

——已占用;

——待使用;

——待釋放;

——損壞;

6)AI計算實例規格,如計算能力、內存空間、數據傳輸率等;

7)AI計算實例的拓撲信息,如AI計算實例所屬的AI加速卡,AI加速卡所在的服務器位置,服務

器在集群中的位置等;

b)AI計算圖資源是對AI任務的抽象,包含:

1)數據流圖:

——用有向圖由點和邊構成,表示神經網絡的計算流程,是一種邏輯流圖,在硬件上轉換

為物理流圖;

——有向圖中的點表示計算;

——有向圖中的邊表示數據依賴;

——數據流連接線以外出箭頭表示將數據寫入數據存儲;

——數據流連接線以輸入箭頭表示從數據存儲中讀取數據;

——輸入和輸出數據流必須在數據流圖之間保存一致。

2)設備(Device)是用于執行數據流圖的虛擬設備。

3)計算流(Stream)是數據流圖中可以并行處理任務或切分后的子圖,計算流是任務的集合:

——計算流的同步:一個計算流中的任務依賴于另一個計算流中的任務。

——計算流可并行處理,一般硬件資源約束。

4)任務(Task)包括,如算子計算、數據同步、數據遷移等;

5)事件(Event)可用來標記計算流,用于計算流的同步,操控設備的運行步調。

6)標識(Notify)可用于表示任務同步,用于實現集合通信時不同設備間的任務同步。

7)核心(Kernel),如二進制指令的注冊,內核函數的注冊,Kernel的啟動等;

8)上下文(Context)用于表示任務的上下文,包括defaultstream、若干用戶stream、屬

性(如調度策略);

9)任務、事件、標識可以時硬件實現,也可軟件實現;

c)借助虛擬化技術,單塊AI加速卡所具備的硬件資源能夠被劃分和映射為多塊。需要對硬件和內

存等資源進行切分,映射成不同的設備,會受到硬件資源總數限制;

d)若事件、標識和任務等抽象概念可以以軟件形式實現,則不受硬件資源總數的限制。

6.4CPU虛擬化

6.4.1概述

a)CPU虛擬化分為基于軟件的虛擬化和硬件輔助虛擬化;

6

T/CESAXXX—202X

b)CPU宜用于AI推理任務;

c)虛擬機(guestVM)所使用的多個CPU計算實例(vCPU)可以是:

1)來自同一個物理CPU;

2)由多個物理CPU提供;

d)CPU虛擬化的參考架構可見附錄A.2;

e)CPU虛擬化技術應滿足6.2節中的基本要求。

6.4.2CPU計算實例

a)CPU虛擬化后的計算實例(vCPU),應符合以下要求:

1)能完成機器學習的推理作業;

2)能避免宿主機上CPU資源的浪費;

3)能通過vCPU的熱插拔特性動態的為虛擬機添加vCPU;

4)能配置vCPU的親和性;

b)CPU計算實例的規格,應使用以下指標衡量:

1)處理器內核數;

2)每個內核的線程數;

3)CPU劃分的比例;

4)內存大小;

5)緩存大小。

6.5GPU虛擬化

6.5.1概述

對于計算集群中的GPU,宜提供虛擬化的方法,保證算力的按需應用,提高利用率。一般通過分時

復用或空分復用的方式得到GPU計算實例。GPU提供向量計算,能用于游戲渲染、媒體編解碼、深度學習

計算、加解密(明確如算法)等場景。

6.5.2GPU計算實例

a)GPU計算實例(vGPU),應滿足以下要求:

1)支持虛擬化前GPU可執行的機器學習算法;

2)滿足6.2中的基本要求;

3)通過時分復用或空分復用的方式得到;

4)GPU計算實例,應包含以下部件:

——計算部件:執行計算的單元,即流處理器,完成整形和浮點型計算;

——視頻編解碼部件;

——內存,包括DDR、GDDR和HBM等),其容量單位為MB、GB;其帶寬為GB/s

——各級緩存,其容量單位為MB或GB,其帶寬單位為GB/s;

——共享存儲;

——支持負載均衡;

5)GPU計算實例的規格,應由以下指標統一衡量:

——計算能力(單位:GOPS或GFOPS);

7

T/CESAXXX—202X

——視頻編解碼能力(單位:1路1080P,30FPS);

——內存/顯存容量(單位:GB);

——緩存容量(單位:MB);

——網絡寬帶能力和收發包能力(注GPU間);

6)GPU虛擬化技術應提供最小規格計算實例(即最小調度單元)。

6.6NPU虛擬化

6.6.1概述

圖2NPU虛擬化架構圖

NPU的虛擬化架構見圖2。NPU的虛擬化,符合以下規定:

a)根據計算任務需要,NPU虛擬化應能對1個或多個NPU組成的計算單元,實施時間和空間切片,再

將這些NPU時間片或空間片分配給虛擬機,供虛擬機調度使用;

b)NPU虛擬化,應滿足5.1節的基本要求。

c)NPU虛擬化的參考方案,見附錄A.1;

d)能夠支持對NPU計算QoS的控制;

e)NPU的計算單元,應:

1)支持獨立完成一次完整的神經網絡計算;

2)具備以下單元:

——AI核心:執行神經網絡類算子的計算;

——向量核心:執行非神經網絡類的向量算子計算;

——協處理CPU:流水線調度及邏輯、標量運算執行;

——宿主機CPU:NPU設備所掛載主機的CPU,執行訓練過程中模型和數據的讀寫;

f)NPU的屬性包括功耗和算力;

g)應能按人工智能計算任務量,動態分配計算實例規格,實現加速卡的虛擬化;

h)虛擬化的NPU應支持AI推理和訓練;

i)應支持NPU與CPU(或協處理CPU)的協同處理完成特定任務。

6.6.2NPU計算實例

8

T/CESAXXX—202X

a)NPU虛擬化后得到的AI計算實例,應滿足:

1)提供矩陣乘的計算部件,執行卷積與全連接的計算:

——具有執行矩陣計算的計算核心;

——具備緩存矩陣分別存儲中間過程數據和結果數據;

——具備數據寄存器,寄存矩陣運算的過程數據與結果;

2)提供向量運算的部件,以執行池化、激活函數以及批正則化等運算:

——具備執行向量計算的核心單元;

——具備相關的存儲單元;

3)提供控制和標量運算的計算部件:

——具備執行標量運算的單元;

——具備通用寄存器;

——具備專用寄存器;

4)數據的存儲部件;

5)數據通路部件,保證計算部件與存儲部件之間的數據供應。

b)NPU虛擬化得到的計算實例規格,應由以下指標衡量:

1)計算能力;

2)吞吐量;

3)內存;

4)緩存;

5)剩余帶寬。

6.7FPGA虛擬化

6.7.1概述

a)FPGA虛擬化是在時間和空間維度上,對多個FPGA的各類資源的調度與使用。FPGA虛擬化滿足以

下要求:;

1)應符合6.2節的規定;

2)支持深度學習加速,并具備性能隔離;

3)支持多路計算;

b)支持FPGAOverlay,在FPGA硬件之上,形成虛擬可編程架構,支持上層使用;

c)支持FPGA動態重構和配置。

6.7.2FPGA計算實例

a)FPGA計算實例(vFPGA)應滿足以下要求:

1)支持其非虛擬化版本所能執行的機器學習任務;

2)支持部分可重構技術,將FPGA劃分為多個vFPGA;

3)為一個或多個動態重構的FPGA區域;

4)對特定vFPGA實施動態重構時,其他vFPGA的運行不受影響;

5)合理進行可重構區域的劃分,避免FPGA資源的空置和浪費;

b)FPGA虛擬化得到的計算實例規格,應由以下指標衡量:

1)算力;

2)吞吐量;

9

T/CESAXXX—202X

3)延遲;

4)功耗;

5)靈活性。

6.8虛擬化接口

6.8.1概述

虛擬化接口是包括調度層與CPU,GPU,FPGA,NPU等計算資源的接口以及調度層與深度學習框架

層的接口。

6.8.2計算實例的發現

人工智能虛擬化技術或方案對虛擬化后的計算實例提供必要的接口,以滿足資源調度需要,包括如

下信息的API接口:

a)對于一個物理AI加速卡,虛擬化技術應提供:

1)AI加速卡虛擬后可用計算實例的最大數量;

2)已經在執行計算任務的計算實例數量;

3)卡的占用情況:

——執行任務的計算實例資源占比;

——剩余可虛擬化的資源占比;

b)計算實例的規格信息接口,應滿足6.3a)6)的要求;

c)計算實例的狀態應包含:

1)已使用:當前的計算實例正在執行相關的計算任務;

2)未使用:當前的計算實例應處于空閑狀態;

3)損壞:當前的計算實例已經被損壞,無法執行相關的計算任務;

4)等待:計算實例沒有執行計算任務,但已經被分配;

d)應支持資源池在以下情況時的更新:

1)加入新的計算實例;

2)計算實例被釋放;

3)空閑計算實例被占用;

4)計算實例進入等待隊列;

5)計算實例被損壞;

6)損壞的計算實例修復;

e)對單個AI加速卡的虛擬化,宜提供以下接口信息:

1)創建的AI虛擬計算資源,指定其歸屬的父設備,即AI虛擬計算資源所在的物理AI加速器,

并提供相關的查詢方式,包括但不限于:Python編程接口,Sysfs接口,或命令行接口;

2)虛擬化后計算節點的類型(如GPU、NPU、FPGA、CPU及其型號),提供對該類型的操作接口;

3)用于創建虛擬化節點的信息,只提供可寫的接口;

4)廠商對設備的描述信息;

5)每個虛擬化計算節點的驅動接口信息,即驅動API;

6)指向每個虛擬化計算節點的軟鏈接。

6.8.3計算實例的刪除

10

T/CESAXXX—202X

a)應支持對虛擬化計算資源的刪除與恢復的接口:

1)支持計算資源的非物理刪除;

2)支持將刪除資源恢復的能力,即對計算資源的重新發現。

6.8.4計算實例的監控

應支持對計算實例的實時監控接口:

a)狀態監控,包含是否已使用、未使用、損壞和等待等;

b)算力監控,即資源調度層所管理的物理算力的總和;

c)計算實例所在的AI加速卡;

d)計算實例的規格信息,包括內存、可觀測帶寬等;

e)計算實例的頻率、溫度、功率以及電壓;

f)每個計算實例的算子時延剖析、時延統計信息。

6.8.5計算資源的分配

應提供相應的接口:

a)單個AI加速器或處理器的分配;

b)多個AI加速器的整體分配,且在此狀態下保證分配的原子性,即全部分配成功,或者全部都分

配失敗。

6.8.6計算實例的回收

應提供對AI計算實例回收的接口:

a)對于一次回收單個計算實例;

b)對于一次回收多個計算實例,保證操作的原子性。

6.8.7接口的形式

虛擬化提供給資源調度層的接口形式,可以是:

a)API接口;

b)命令行接口;

c)SDK接口。

7計算資源調度

7.1概述

7.1.1任務流程框架

11

T/CESAXXX—202X

圖3AI任務流程框架

計算資源調度的任務流程(如圖3所示),包含以下步驟:

a)用戶提出訓練或推理請求,作為AI任務放入任務池;

b)資源調度層從AI任務池中取任務,根據任務的規格(需要的算力、內存等)和可用的AI加

速卡,申請符合AI任務要求的計算實例;

c)資源調度層對所有的異構計算資源和AI計算實例監控,完成任務的調度。

7.1.2訓練場景

訓練場景中,計算資源調度,任務池中含有訓練任務請求。訓練任務的吞吐量大,對單塊AI加速卡

的資源利用較高。單個訓練任務對AI加速卡資源的占用情況包括如下情形:

a)僅在單塊AI加速卡上運行,該卡資源被全部占用,見圖4;

b)僅在單塊AI加速卡上運行,該卡資源未被全部占用,見圖5;

c)在多塊AI加速卡上運行,全部加速卡資源均被占用,見圖6;

d)在多塊AI加速卡上運行,部分加速卡存在空閑資源,見圖7;

圖4訓練任務占滿一塊卡

圖5訓練任務占用一塊卡,有空閑

12

T/CESAXXX—202X

圖6訓練任務占用多塊卡

圖7訓練任務占滿多塊卡

7.1.3推理場景

場景1:模型推理需要異構的AI計算資源,但大多數場景吞吐量較小,資源使用率較低。計算資源

的調度需要更細粒度的劃分(如以單塊卡中的塊或片作為調度單位,使得多個推理任務共用特定計算資

源,即單芯片多任務模式)。部署時可以根據模型的計算任務申請所需的計算資源,優先在單芯片上安

排推理任務,盡可能的使單塊芯片滿載。一種單個芯片上的任務劃分情況實例見圖8。

圖8單芯片上的推理任務劃分示意圖

場景2:大規模的AI推理任務計算層數繁多(如至少1000層以上),任務吞吐量大,包含多個推理模

型。單一推理模型內的主要工作是數據搬運,在單芯片內數據搬運速度最快,跨卡調度會影響計算速度。

對于大規模的推理任務通常選擇多芯片單任務模式,不會對推理模型進行拆分。計算資源的調度以卡為

單位分配。調度時資源管理器根據推理任務做出判斷,將推理任務按照模型進行拆分,在單AI加速卡上

優先安排同一推理模型,當一個推理模型計算完成后資源管理器分配剩余模型給卡計算。使推理任務計

算總時間最短,計算資源空閑時間最短。一種多芯片上的推理任務劃分情況實例見圖9。

13

T/CESAXXX—202X

圖9多芯片上的推理任務劃分示意圖

7.2資源調度技術要求

實現計算資源調度的人工智能計算系統,符合以下要求:

a)應支持的計算資源調度,包含:

1)對整塊AI加速卡(處理器)的調度;

2)對在資源池中的多個AI加速卡的調度;

3)對單個AI加速卡的計算單元調度;

4)對單個AI加速卡中的計算實例(多個計算單元)調度;

5)對多個AI加速卡中的多個計算單元的調度;

b)對于多個計算單元或多個AI加速卡的調度應保證調度操作的原子性;

c)對于調度策略,宜考慮如下的因素:

1)全局資源的利用率,使全局利用率最高;

2)資源的全局平均使用率;

3)調度的計算資源涉及到多個AI加速器時,根據加速卡的拓撲來制定調度策略,如親和性調

度;

d)對多卡的虛擬化和調度,宜支持計算設備內部和計算設備間的集合通信,提升通信帶寬利用率;

e)任務拆分能力:一些任務是多個神經網絡模型組合而成,將這若干個神經網絡模型合理地分配

給不同計算實例的能力;

f)模型切換能力:支持計算實例的模型切換。即在某一塊上某神經網絡運行完成后可以快速切換

成另一個神經網絡運行的能力;

g)負載均衡能力:支持任務的合理分配,避免單卡或單片或單塊負載過大,以提高整體效率;

h)宜提供AI任務在異構計算設備上的系統性能分析工具,幫助用戶識別性能瓶頸:

1)支持對硬件和軟件性能數據的采集、分析和匯總:

——硬件的性能數據,包括但不限于:控制CPU、調度CPU、AI芯片(NPU中的AI計算單元)、

外圍設備、DDR等設備;

——軟件性能數據;

i)性能分析工具宜支持向調度層和用戶展示預測或監控的信息,包括但不限于以下形式:

1)時序信息圖方式,以時間線的形式展示Host設備和Device設備上AI任務的性能信息:

——計算圖相關信息:計算圖執行時間、推理時間、圖像等數據的預處理時間;

14

T/CESAXXX—202X

——算子的執行時間:每個算子的起止時間、可支持每個算子的耗時,幫助推理任務確定

性能瓶頸;

——每個線程調用運行時API的時序信息;

——AI計算單元上內核函數的運行時序信息;

——任務調度的任務運行時序信息;

2)硬件視圖方式,展示數據傳輸的帶寬信息,可幫助用戶或調度器找出數據處理和傳輸的瓶

頸,如讀寫帶寬過低可能是算子編寫的數據搬運過程有問題;

3)AI處理器函數和CPU函數視圖:

——采集各形式處理器上的熱點函數(執行頻率較高的函數),調度層或用戶可以根據熱

點函數進行優化,提高性能;

——展示的信息應包含但不限于:模塊名、函數名、調用堆棧、指令數、指令數耗時占比、

對應子項的循環次數等;

4)概括性視圖,對采集的信息以匯總的形式展示,應包含:

——采集的的性能數據大小、性能采集耗時以及性能采集的起止時間;

——性能采集的Host側基本信息,包括Host側的操作系統和CPU信息;

——呈現本次性能數據采集的Device側信息(如GPU信息、NPU信息、FPGA信息),如CPU的

核數、AI計算單元數量等;

——DDR及高級緩存信息:整個采集過程中內存讀寫帶寬的平均值;

——CPU的利用率;

——系統信息,包含但不限于:系統總內存、空閑空間、內存緩沖區大小、高速緩沖存儲

器使用大小、共享內存、虛擬內存限值等;

——控制CPU的信息,包括但不限于:運行的函數名稱、此函數關聯的模塊、此函數運行的

時鐘周期數、虛擬環境中操作系統消耗占比、內核態進程時長占比、空閑狀態時長占比等;

——AI計算單元的信息;

——算子統計信息,包括但不限于:算子的個數、名稱、耗時、對應的起止調度時間、輸

入輸出張量的內存大小、權重大小等;

——對于圖像視頻任務的信息,包括但不限于:任務的時間、任務的幀數、利用率信息等;

——模型的數據輸入、執行AI任務的過程(推理或訓練)、數據輸出的耗時。

7.3運維監控

運維監控的對象包括對計算實例、AI加速卡、AI任務、日志的收集與處理等的監控:

a)對計算實例的監控,應滿足以下要求:

1)支持對計算實例狀態的監控,具體指標參考5.8.4節“計算實例的監控”;

2)支持對計算實例的異常檢測,并對用戶開放定制化的檢測項;

3)支持計算實例的異常警告,并支持用戶自定義警告的閾值和警告的方式;

4)支對計算實例的日志收集、分析和可視化展示的功能。

b)對AI加速卡的監控,應滿足以下要求:

1)AI加速卡的屬性監控:

——算力;

——帶寬;

——內存。

2)AI加速卡虛擬化后的計算實例數:

15

T/CESAXXX—202X

——計算實例的總數;

——可用的計算實例數;

——占用的計算實例數。

3)一個AI加速卡上各計算實例的性能偏移的情況;

注:對于一個AI加速卡,虛擬化N個相同規格的計算實例,每個實例的參考性能應是1/N,實際性能與參考

性能的絕對值就是性能偏移。

4)一個AI加速卡的狀態:

——資源占用比例;

——可用比例;

——是否損壞。

c)應支持以下關于AI任務的監控:

1)一個訓練任務或推理任務的吞吐量;

2)一個訓練任務或推理任務所占用的計算實例信息,以及計算實例所處的AI加速卡。

d)對于日志的收集與處理,應滿足以下要求:

1)支持設備(Device)的管理,如Device設備的增加、刪除、修改功能;

2)對用戶,提供日志查詢功能,按關鍵字搜索日志內容;

3)提供清除顯示的功能;

4)提供和日志下載和保存的功能。

e)應提供以下級別的日志:

1)提供一般級別錯誤的日志(ERROR):

——非預期的數據或事件;

——影響面較大但是內部模塊可處理的錯誤;

——限制在模塊內的錯誤;

——對其他模塊有影響但較輕微的錯誤,如統計任務創建失敗;

——引起調用失敗的錯誤。

2)提供警告級別的日志(WARNING),如設備狀態與預期不一致,但不影響系統的運行。

3)提供正常級別的日志(INFO),設備正常運行的信息;

4)提供調式級別日志(DEBUG),記錄調式信息,協助開發維護人員定位問題;

5)提供關鍵事件的日志(EVENT),如:

——整網運算啟動\完成\異常終止;

——內存耗盡;

——設備溫度超出正常閾值。

f)日志的記錄格式至少應包含以下信息:

1)日志的級別;

2)產生日志的模塊名稱;

3)進程的ID;

4)進程的名稱;

5)日志打印的時間;

6)各模塊具體的日志內容。

8測試

8.1虛擬化測試

16

T/CESAXXX—202X

8.1.1性能隔離測試

性能隔離的測試,符合以下要求:

a)要求

1)單個AI加速卡通過虛擬化切分為多個計算實例的情況,同時用分配給多個用戶使用,可兼

顧性能和利用率;

2)對于每個AI任務或用戶,要求虛擬化技術具備良好的性能隔離能力,即每個計算實例按需

分配,并且同一塊加速卡上的計算實例性能間不相互干擾,如,一個用戶或任務獨占用單

塊AI加速卡時,訓練或推理的性能是?,當給計算實例分配25%的計算資源時,其性能理論

上應該為?=?*25%。虛擬化方案應該盡可能接近理論值,偏離越大,性能隔離效果越差。

′′

可以用實際值?理論值?的偏差來衡量性能隔離的效?????=|???|;

b)測試規則

1)測試場景:對于被測的AI任務,虛擬化技術分配一塊AI加速卡一部分(比例為a)計算資

源,如:單個AI加速卡的計算資源總量為C,對于一個AI推理或訓練任務可以分配給的計

算資源為s=C×a;

注:a∈(0,1],可以取0.1,0.2,0.3,0.4,0.5,0.6,…,1.0。

2)任務分配:需明確單個AI加速器上執行的最大任務數量n(用戶數量),被測任務使用C×a

的計算資源,剩余n-1個任務(用戶)分配剩余的計算資源;

3)對于被測任務(用戶),需要得到其基準性能,即在獨占一個AI加速卡時,其性能值?;

4)測試指標計算見8.1.1a)2)。

c)性能隔離的測試模式,可從下面兩個維度進行劃分:

1)訓練或推理;

2)單一模型或多模型負載;

3)是否滿載。

d)測試負載:

1)基準性能測試:一個模型負載獨占(滿)一個AI加速卡(無虛擬化),得到基準性能p(單

位:FPS),見圖10。負載見表1;

圖10基準性能測試

表1基準負載測試

測試項序號模型分配資源占比數據集

1MobileNet100%(無虛擬化)ImageNet2012

2ResNet50100%(無虛擬化)ImageNet2012

3VGG16100%(無虛擬化)ImageNet2012

4InceptionV3100%(無虛擬化)ImageNet2012

2)單模型滿載測試:將一個AI加速卡按比例虛擬化得到不同規格的多份實例,比例不一,每

個計算實例運行相同的AI任務,見圖11。負載見表2;

圖11單模型滿載測試

17

T/CESAXXX—202X

表2單模型滿載訓練

測試項序號模型負載個數數據集分配比例

1MobileNet2ImageNet20121:2

2MobileNet4ImageNet20121:1:2:4

3ResNet502ImageNet20121:1

4ResNet504ImageNet20121:1:2:4

5InceptionV32ImageNet20121:1

6InceptionV34ImageNet20121:1:2:4

7VGG162ImageNet20121:1

8VGG164ImageNet20121:1:2:4

3)多模型滿載測試:將一個加速卡按比例虛擬化為多份AI計算實例,規格不一,每個計算實

例運行不同的模型,見圖12。負載見表3:

圖12單一模型滿載測試

表3多模型滿載訓練

模型1/分配計算實例模型2/分配計算實例模型3/分配計算實例的

測試項序號數據集

占比占比占比

1MobileNet/25%ResNet50/25%VGG16/50%ImageNet2012

2MobileNet/50%MobileNet/25%VGG16/25%ImageNet2012

3MobileNet/25%Resnet50/25%InceptionV3/50%ImageNet2012

4)多模型非滿載測試:將一個加速卡按比例虛擬化為多份AI計算實例且留有空余,規格大小,

每個計算實例運行不同的模型,見圖13。負載見表3:

圖13多模型非滿載測試

5)單模型非滿載測試:將一個加速卡按比例虛擬化為多份AI計算實例且有空余資源,規格不

一,每個計算實例運行相同的模型,見圖14。負載見表4:

圖14單模型非滿載測試

表4單模型非滿載訓練

測試項序號模型負載個數數據集分配比例

1MobileNet2ImageNet201225%,50%

2MobileNet

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論