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

提交评论