CESA-2022-040-《人工智能 异构人工智能加速器统一接口》团体标准(征求意见稿)_第1页
CESA-2022-040-《人工智能 异构人工智能加速器统一接口》团体标准(征求意见稿)_第2页
CESA-2022-040-《人工智能 异构人工智能加速器统一接口》团体标准(征求意见稿)_第3页
CESA-2022-040-《人工智能 异构人工智能加速器统一接口》团体标准(征求意见稿)_第4页
CESA-2022-040-《人工智能 异构人工智能加速器统一接口》团体标准(征求意见稿)_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ICS35.240

CCSL70

团体标准

T/CESAXXXX—202X

人工智能异构人工智能加速器统一接口

Artificialintelligence―Unifiedinterfaceforheterogeneous

artificialintelligenceacceleratingunits

(征求意见稿)

在提交反馈意见时,请将您知道的相关专利连同支持性文件一并附上。

已授权的专利证明材料为专利证书复印件或扉页,已公开但尚未授权的专利申请

证明材料为专利公开通知书复印件或扉页,未公开的专利申请的证明材料为专利申请

号和申请日期。

202X-XX-XX发布202X-XX-XX实施

中国电子工业标准化技术协会发布

T/CESAXXX—202X

前  言

本文件按照GB/T1.1-2020《标准化工作导则第1部分:标准化文件的结构和起草规则》的规定

起草。

本文件由中国电子技术标准化研究院提出。

本文件由中国电子工业标准化技术协会归口。

本文件起草单位:。

本文件主要起草人:。

3

T/CESAXXX—202X

人工智能异构人工智能加速器统一接口

1范围

本文件定义了异构人工智能加速器的统一接口及其语义和使用方法,给出了各加速器为实现此接口

所需的接入方法和试验方法。

本文件适用于人工智能加速器接口的设计和实现,也可为人工智能加速器应用提供参考。

2规范性引用文件

下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文件,

仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于本

文件。

GB/T41867-2022信息技术人工智能术语

T/CESA1169—2021信息技术人工智能服务器系统性能测试规范

IEEE547-2019IEEE浮点数计算标准(IEEEStandardforFloating-PointArithmetic)

3术语和定义

GB/T41867界定的以及下列术语和定义适用于本文件。

3.1

[应用编程]接口[applicationprogramming]interface

<人工智能>用来使用人工智能加速器功能的语法和语义定义

[来源:ISO/IEC/IEEE9945:2009,3.19,有修改]

3.2

[人工智能]加速[处理]器[artificialintelligence]acceleratingprocessor

[人工智能]加速芯片[artificialintelligence]acceleratingchip

具备适配人工智能算法的运算微架构,能够完成人工智能应用运算处理的集成电路元件

3.3

计算图computationalgraph

用来表示数学函数,由节点和连接构成的有向图

注1:节点表示数学运算,即算子。

注2:连接表示数学运算之间的依赖关系。

注3:一个连接联通起始节点和终止节点。

[来源:ISO/IEC/IEEE24765:2017,3.1762.1,有修改]

4

T/CESAXXX—202X

3.4

算子operator

函数的名字,或表示行动的数学或逻辑符号

注:算子由硬件定义,由软件封装。

[来源:ISO/IECTR17903:2023,3.18,有修改]

3.5

算子端口operatorport

计算图中,用以指定连接关联算子输入与输出中数据对应关系的索引值

4缩略语

API应用编程接口(ApplicationProgrammingInterface)

CPU中央处理单元(CentralProcessingUnit)

FP1616位半精度浮点(16-bithalf-precisionFloatingPoint)

FP3232位单精度浮点(32-bitsingle-precisionFloatingPoint)

GPU图形处理单元(GraphicProcessingUnit)

INT88位四分之一精度整型(8-bitquarter-precisionINTeger)

JPG联合图像专家组(JointPhotographicexpertsGroup)

NCHW批通道高宽模式(Batch-Channel-Height-Widthmode)

NDnumpyndarry对象(NumpynDarryobject)

NHWC批高宽通道模式(Batch-Height-Width-Channelmode)

NPU神经网络处理单元(Neural-networkProcessingUnit)

ONNX开放神经网络交换(OpenNeuralNetworkExchange)

5概述

5.1接口

5.1.1功能

异构人工智能加速器的使用,以调用接口的方式完成。接口定义支持以下功能:

a)供以下组件使用加速器,或运行在加速器上:

1)机器学习软件框架;

2)机器学习模型;

3)直接使用接口编制的领域业务应用;

b)用户自定义的操作及其注册、运行;

c)如人工智能加速器提供的功能在本文件所提供接口的范围内,应实现本文件定义的接口。

5.1.2架构

异构人工智能加速器统一接口架构及组件关系见图1。

5

T/CESAXXX—202X

图1异构人工智能加速器统一接口架构

注1:图中实线框起的部分对应本文件规定的范畴,虚线框起的部分仅表明本文件定义的统一编程接口所处的位置

及与其它部件或组件的关系,不属于本文件规定的范畴。

注2:途中统一编程接口含有编译部分,对应本文件定义编译器接口,供各类人工智能加速器自身的编译组件对接,

以实现通过本接口执行模型编译。

图中:

a)计算图表示:定义模型相关的计算流程构建,解析,编译和运行;

b)算子表示:定义数据抽象、存储格式、数据布局形状信息和运算操作;

c)运行时:定义异构人工智能加速器设备管理、事件管理、内存管理、执行控制、上下文管理及

模型加载、执行、卸载等功能。

5.1.3同步和异步

本文件定义的接口包含同步接口和异步接口,本文件中:

a)标注为“异步”的接口,是异步接口;

b)未做标注的接口,是同步接口;

c)对同步接口,调用者进程或线程在接口执行完毕后才能执行后续计算;

d)对异步接口,调用者进程或线程在接口调用后立即执行后续计算,并接受事件通知。

5.1.4接口执行状态

本文件定义的接口的执行状态码,见附录B。

接口执行返回错误码(非执行成功码)时,由使用接口的程序定义和实现处理策略。

人工智能加速器实现本文件定义的接口,应满足以下要求:

6

T/CESAXXX—202X

a)定义超时的时限值;

b)调用执行超时,返回超时码;

c)根据调用语义,实现处理方法。

5.1.5上下文

上下文是人工智能加速器执行相关对象(数据结构)的封装,管理对象的生命周期。特定加速

器实现本文件定义的接口时,可按需构造上下文数据结构。不采用上下文封装、管理时,也应构造、保

存、使用、管理执行相关的对象(数据结构)。上下文的性质包含:

a)1个上下文仅属于1个计算设备,即人工智能加速器。1个加速器可对应多个上下文;

b)1个上下文与1个用户线程绑定;

c)1个进程可创建多个上下文,在某些加速器上1个线程同一时刻使用1个上下文;

d)线程中创建多个上下文时,在某些加速器上线程缺省使用最后创建的上下文。

执行相关对象,包含:

a)流;

b)事件;

c)内存。

5.1.6流

流是由特定人工智能加速器执行的操作序列,确保按应用程序中的代码调用顺序在加速器

上执行。特定加速器实现本文件定义的接口时,可按需构造并管理流的结构。不采用流时,

异步操作维护,操作保序等,应由该实现自行按需实现并管理。

流是加速器上的实际执行体。

1个线程中可包含多个流,不同的流上的计算任务可并行执行。

多个线程的流在人工智能加速器上相互独立。

5.1.7事件

事件用于同步多个任务的执行,包含:

a)不同流的任务;

b)主机CPU与人工智能加速器间的任务;

c)不同人工智能加速器间的任务。

特定人工智能加速器实现本文件定义的接口时,可按需构造并管理事件的数据结构。不采

用基于事件的同步机制时,应由该实现自行按需实现同步机制。

当同步两个任务的执行顺序时,在先执行的任务后,触发事件,通知另一个任务执行。

5.1.8内存

本文件中的内存指用于人工智能任务执行的内存。因人工智能服务器的体系机构差异,可

包含:

a)人工智能加速器的内存;

7

T/CESAXXX—202X

b)人工智能加速器的片外内存(如人工智能加速卡上内存);

c)主存。

本文件并不特别规定特定内存的使用或共享机制,该机制由实现本文件定义的接口的人工

智能加速器及其适配的计算系统定义和实现。

5.2接入方法

5.2.1加速器

加速器研制机构,为通过统一接口使用异构人工智能加速器,接入统一接口,应实施以下工作:

a)基于已有的加速器模型描述实现库,实现本文件规定的模型操作接口(见6.1);

b)基于已有的数据预处理、集合通信和运行时库等,实现本文件规定的运行时接口(见6.2);

c)基于已有的算子库,实现本文件规定的运算接口(见6.3)。

5.2.2机器学习框架

机器学习框架,如使用本文件规定的统一接口时,应实现框架产出模型格式到本文件定义的统一接

口的解析器。

5.3精度

5.3.1各类人工智能加速器在实现、对接本文件定义的接口时,可根据实际情况调整所支持的精度。

5.3.2本文件涉及的加速器所使用的精度(含附录A中的测试负载),应符合IEEE547-2019的定义。

IEEE547-2019定义之外的精度,由实现者按需自行选择或定义。

5.3.3接口定义中的数据类型(如表25,表26和表82等)是编程时所使用的类型,他们在不同加速

器上可用不同精度来映射和表示(如布尔在特定加速器上可用INT8精度来承载),由加速器的设计决

定。

5.4接口参数

输入参数的可选或必选约束,含义如下:

a)必选:为实现接口功能所必须的参数,当无法提供该参数时,接口无法运行或给出期望的结果;

b)可选:为实现接口功能可能需要的附加参数,当无法提供该参数或使用其它方式提供参数值时,

接口仍能运行并给出期望的结果。

6接口定义

6.1模型操作接口

6.1.1模型解析

异构加速器执行特定格式的模型文件,应使用表1规定的接口。格式包含机器学习软件框架(如

TensorFlow,Caffe,PyTorch等)的训练结果模型格式或使用特定中间表示(如ONNX)的模型的格式。

表1解析特定格式模型文件

名称功能语义描述参数输入/输出备注

8

T/CESAXXX—202X

a

模型文件内存(首)地址输入可选

a

模型文件内存长度输入可选

b

解析特定格式模型文件,模型文件路径输入可选

解析特定的格式模

以便提供对后端硬件的部解析后的模型文件输出必选

型文件

署、优化能力名字对照表输入可选

参数数组输入必选

框架类型输入可选

a

适用于模型在内存中的情况。

b

适用于模型文件在硬盘中的情况。

6.1.2计算流程定义

计算流程定义,提供目标模型文件构建接口(如增、删加计算图中节点,增、删计算图中节点间的

连接等),包含表2~表36规定的操作。算子的定义见附录C。

表2构建模型描述

名称功能语义描述参数输入/输出可选/必选

构建模型描述构建给定名字的模型模型描述名字字符串输入必选

描述

表3从算子构建模型描述

名称功能语义描述参数输入/输出可选/必选

从算子构建模型从算子构建给定名字模型描述名字字符串输入必选

描述的模型描述。该算子序算子向量,向量的元素是算子输入必选

列作为模型描述的输

表4设置模型描述的输出算子

名称功能语义描述参数输入/输出可选/必选

设置模型描述的设置模型描述的输出对的序列,每1对包含输出算子及其输入必选

输出算子算子名字

表5设置模型描述的终止节点a列表

名称功能语义描述参数输入/输出可选/必选

设置模型描述的设置模型描述的终止终止节点序列输入必选

a

终止节点列表节点列表

a

终止节点需要被执行,但不返回其输出。

表6判断模型描述合法性或能否被执行

名称功能语义描述参数输入/输出可选/必选

判断模型描述的判断模型描述是否能TRUE:合法,能被执行;FALSE:不输出

合法性,是否能被执行,返回布尔值合法,不能被执行

被执行

9

T/CESAXXX—202X

表7按算子名字在模型描述中查找算子

名称功能语义描述参数输入/输出可选/必选

基于算子名称,按算子名称,查找模型算子名字输入必选

查找模型描述中描述中的对象操作对象输出

的相应对象

执行状态码(见附录B)输出

表8按算子类型在模型描述中查找算子

名称功能语义描述参数输入/输出可选/必选

基于算子类型,按算子类型,查找模型算子类型输入必选

查找模型描述中描述中的对象序列操作对象序列输出

的相应对象序列

执行状态码(见附录B)输出

表9获取模型描述中所有已注册的算子

名称功能语义描述参数输入/输出可选/必选

返回模型描述中返回模型描述中所有算子名字序列输出

所有已注册的算已注册的算子。执行状态码(见附录B)输出

表10自定义算子注册

名称功能语义描述参数输入/输出可选/必选

自定义算子的规定义算子的要素声明:算子名称输入必选

格定义完整的算子包含算子输入输入可选

名称、输入、输出、属

可选输入输入可选

性等等信息

动态输入输入可选

输出输入可选

可选输出输入可选

动态输出输入可选

必选属性输入必选

可选属性输入可选

数据类型限制约束输入可选

类型和维度推断函数输入可选

文档说明输入可选

版本信息输入可选

执行状态码输出

表11返回模型描述的名字

名称功能语义描述参数输入/输出可选/必选

返回模型描述的返回模型描述的名字模型描述的名字输出

10

T/CESAXXX—202X

名字执行状态码(见附录B)输出

表12拷贝模型描述

名称功能语义描述参数输入/输出可选/必选

拷贝模型描述拷贝模型描述,填充一新模型描述数据结构的引用输出必选

个新的模型描述数据

结构

表13获取算子类型

名称功能语义描述参数输入/输出可选/必选

获取算子类型获取算子类型算子输入必选

算子类型字符串输出

执行状态码(见附录B)输出

表14获取算子名字

名称功能语义描述参数输入/输出可选/必选

获取算子类型获取算子类型算子输入必选

算子类型字符串输出

执行状态码(见附录B)输出

表15获取算子指定输入端口对应的对端算子及其输出端口

名称功能语义描述参数输入/输出可选/必选

获取对端算子及获取对端算子及其输算子输入必选

其输出端口出端口算子输入端口号输入必选

对端算子及其输出端口号值对的序输出

表16获取算子指定输出端口对应的对端算子及其输入端口

名称功能语义描述参数输入/输出可选/必选

获取对端算子及获取对端算子及其输算子输入必选

其输入端口入端口算子输出端口号输入必选

对端算子及其输入端口号值对的序输出

表17获取算子的控制输入节点

名称功能语义描述参数输入/输出可选/必选

获取算子的控制获取算子的控制输入算子输入必选

输入节点节点输入控制节点序列输出

表18获取算子的控制输出节点

名称功能语义描述参数输入/输出可选/必选

11

T/CESAXXX—202X

获取算子的控制获取算子的控制输出算子输入必选

输出节点节点输出控制节点序列输出

表19获取算子输入个数

名称功能语义描述参数输入/输出可选/必选

获取算子输入个返回节点的有效输入算子输入必选

数个数,即算子的实际输算子的输入个数输出

入个数

表20获取算子输出个数

名称功能语义描述参数输入/输出可选/必选

获取算子输出个返回有效输出个数,即算子输入必选

数算子定义时的输出个算子的输出个数输出

表21获取算子中指定输入端口的张量格式

名称功能语义描述参数输入/输出可选/必选

获取算子中指定获取算子中指定输入算子输入必选

输入端口个的张端口个的张量格式端口号输入必须

量格式

张量格式数据接口的引用输出

表22获取算子中指定输出端口的张量格式

名称功能语义描述参数输入/输出可选/必选

获取算子中指定获取算子中指定输出算子输入必选

输出端口个的张端口个的张量格式端口号输入必须

量格式

张量格式数据结构的引用输出

执行状态码(见附录B)输出

表23更新算子中指定输入端口的张量格式

名称功能语义描述参数输入/输出可选/必选

获取算子中指定获取算子中指定输入算子输入必选

输入端口个的张端口个的张量格式,其端口号输入必须

量格式中形状信息的某个维

形状信息输入可选

度可以为-1,支持运行

时动态形状输入张量格式数据结构的引用输出

执行状态码(见附录B)输出

表24更新算子中指定输出端口的张量格式

名称功能语义描述参数输入/输出可选/必选

获取算子中指定获取算子中指定输出算子输入必选

输出端口个的张端口个的张量格式,其端口号输入必须

12

T/CESAXXX—202X

量格式中形状信息的某个维形状信息输入可选

度可以为-1,支持运行新张量格式数据结构的引用输出

时动态形状输入

执行状态码(见附录B)输出

表25设置节点属性的属性值

名称功能语义描述参数输入/输出可选/必选

设置节点属性的设置节点属性的属性算子输入必选

属性值值属性名输入必须

属性值,属性值的类型,包含:双精输入必选

度整型,单精度整型,单精度无符号

整型,单精度浮点,字符串,布尔,

张量,以上类型数据的数组等

执行状态码(见附录B)输出

表26设置节点属性的属性名的值

名称功能语义描述参数输入/输出可选/必选

设置节点属性的设置节点属性的属性算子输入必选

属性名的值名的值属性名输入必须

属性名的值,类型包含:双精度整型,输入必选

单精度整型,单精度无符号整型,浮

点,字符串,布尔,张量,以上类型

数据的数组等

执行状态码输出

表27查询属性是否存在

名称功能语义描述参数输入/输出可选/必选

查询属性是否存查询属性是否存在算子输入必选

在属性名输入必须

TRUE:存在;FALSE:不存在输出

表28向计算图增加算子

名称功能语义描述参数输入/输出可选/必选

向计算图增加算向计算图增加算子,所原计算图输入必选

子增加的算子在所描述模要增加的算子输入必选

型的尾部出现新计算图输出

表29从计算图删除节点

名称功能语义描述参数输入/输出可选/必选

从计算图删除节从计算图删除节点,删特定待删除的节点输入必选

点除后,所关联的连接消新计算图输出

13

T/CESAXXX—202X

除。节点的删除,可使

计算图无效

表30从计算图删除连接

名称功能语义描述参数输入/输出可选/必选

连接的起始节点输入必选

连接的起始节点使用的端口输入必选

从计算图中删除

从计算图删除连接连接的终止节点输入必选

连接

连接的终止节点使用的端口输入必选

新计算图输出

表31向计算图增加算子作为节点

名称功能语义描述参数输入/输出可选/必选

向计算图增加算向计算图增加算子,作待增加算子输入必选

子,作为节点为节点。增加后,新节新计算图输出

点在计算图的尾部

表32向计算图增加数据连接

名称功能语义描述参数输入/输出可选/必选

向计算图增加数向计算图增加数据连接待增加连接的起始节点输入必选

据连接待增加连接的起始节点使用的输入必选

端口

待增加连接的终止节点输入必选

待增加连接的终止节点使用的输入必选

端口

新计算图输出

表33向计算图增加控制连接

名称功能语义描述参数输入/输出可选/必选

向计算图增加控向计算图增加控制连接待增加连接的起始节点输入必选

制连接待增加连接的终止节点输入必选

新计算图输出

表34从文件读取计算图到内存

名称功能语义描述参数输入/输出可选/必选

从文件读取计算从文件读取计算图到内文件路径输入必选

图到内存存计算图对象输出

表35将内存中的计算图保存到文件

名称功能语义描述参数输入/输出可选/必选

将内存中的计算将内存中的计算图保存保存文件的路径输入必选

图保存到文件到文件保存后的计算图对象输出

14

T/CESAXXX—202X

表36切分计算图(可选)

名称功能语义描述参数输入/输出可选/必选

切分计算图将整个计算图切整个计算图的指针输入必选

分为若干子图切图结果中每个子图包含算子的最小数量输入可选

切图结果中包含的最小子图数量输入可选

切图规则名字字符串指针数组输入可选

切分得到的子图的指针数组输出必选

6.1.3编译

编译过程,将计算图编译至能在特定硬件后端运行的模型文件,包含表37~表40的接口。

表37编译为特定硬件后端模型

名称功能语义描述参数输入/输出可选/必选

编译为后端模型将计算图编译至能在特计算图输入必选

定硬件后端运行的模型名字对照表输入可选

文件输出模型文件(内存)地址输出

表38保存特定硬件后端模型

名称功能语义描述参数输入/输出可选/必选

保存模型保存特定硬件后端模型模型文件(内存)地址输入必选

文件路径输入必选

表39编译指定算子

名称功能语义描述参数输入/输出可选/必选

编译指定算子编译

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论