下载
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
昇腾小AI

API接口概述

Ascend C定义了计算类、数据搬运类、内存管理及任务同步等API,接口功能描述如下表。

表1 接口总览

接口类别

功能描述

矢量计算

调用Vector计算资源执行计算。

矩阵计算

调用Cube计算资源执行计算。

数据转换

将数据格式进行转换,如转置,2d到3d转换等。

数据搬移

计算接口基于Local Memory数据进行计算,所以数据需要先从Global Memory搬运至Local Memory,再使用计算接口完成计算,最后再从Local Memory搬出至Global Memory。执行搬运过程的接口称之为数据搬移接口。

内存管理及任务同步

任务同步类API,完成任务间的通信和同步,简化流水并行的处理。

Ascend C对于内存资源进行了抽象,用于管理片上内存资源,避免硬件结构变化导致的算子代码修改。内存管理类API用于计算任务之间的数据传递。

数据填充

实现数据填充到向量的功能。

目标识别

使用Region proposal格式进行计算,通常用于目标识别功能。

Ascend C提供了多层级的0-3级API,随着级别增高,API使用的自由度降低,易用性增强。您可以根据需要选择合适的API,使用最通俗易懂的高级接口快速搭建算子逻辑,使用自由灵活的低级接口进行复杂的逻辑实现和性能调优。以矢量计算类API为例:

表2 多级矢量计算类API定义

接口级别

接口说明

0级

功能灵活的计算API,充分发挥硬件优势,支持对每个操作数的Block stride,Repeat stride,Mask的操作。Block stride,Repeat stride,Mask参数的详细介绍请参见0级接口通用参数说明

1级

slice计算API,解决多维数据中的切片计算问题。该版本暂不支持1级接口。

2级

针对源操作数的连续数据进行计算并连续写入目的操作数,解决一维tensor的连续计算问题。

3级

运算符重载,支持+, -, *, /, |, &, <, >, <=, >=, ==, !=,实现2级指令的简化表达。

下图以矢量加法计算为例,展示了不同级别矢量计算类API的特点。

图1 不同级别矢量计算类API的特点
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词