Ascend C API列表

Ascend C API列表

矢量计算

BilinearInterpolation

双线性插值操作,分为垂直迭代和水平迭代。

GetCmpMask

获取Compare(结果存入寄存器)指令的比较结果。

GetAccVal

获取ReduceSum(针对tensor前n个数据计算)接口的计算结果。

GetReduceMaxMinCount

获取ReduceMax、ReduceMin连续场景下的最大/最小值以及相应的索引值。

ProposalConcat

将连续元素合入Region Proposal内对应位置,每次迭代会将16个连续元素合入到16个Region Proposals的对应位置里。

ProposalExtract

与ProposalConcat功能相反,从Region Proposals内将相应位置的单个元素抽取后重排,每次迭代处理16个Region Proposals,抽取16个元素后连续排列。

RpSort16

根据Region Proposals中的score域对其进行排序(score大的排前面),每次排16个Region Proposals。

MrgSort4

将已经排好序的最多4 条region proposals队列,排列并合并成1条队列,结果按照score域由大到小排序。

Sort32

排序函数,一次迭代可以完成32个数的排序。

MrgSort

将已经排好序的最多4 条队列,合并排列成 1 条队列,结果按照score域由大到小排序。

GetMrgSortResult

获取MrgSort或MrgSort4已经处理过的队列里的Region Proposal个数,并依次存储在四个List入参中。

Gatherb

给定一个输入的张量和一个地址偏移张量,Gatherb指令根据偏移地址将输入张量收集到结果张量中。

Scatter

给定一个连续的输入张量和一个目的地址偏移张量,Scatter指令根据偏移地址生成新的结果张量后将输入张量分散到结果张量中。

矩阵计算

InitConstValue

初始化LocalTensor(TPosition为A1/A2/B1/B2)为某一个具体的数值。

LoadData

LoadData包括Load2D和Load3D数据加载功能。

LoadDataWithTranspose

该接口实现带转置的2D格式数据从A1/B1到A2/B2的加载。

SetAippFunctions

设置图片预处理(AIPP,AI core pre-process)相关参数。

LoadImageToLocal

将图像数据从GM搬运到A1/B1。 搬运过程中可以完成图像预处理操作:包括图像翻转,改变图像尺寸(抠图,裁边,缩放,伸展),以及色域转换,类型转换等。

LoadUnZipIndex

加载GM上的压缩索引表到内部寄存器。

LoadDataUnzip

将GM上的数据解压并搬运到A1/B1/B2上。

LoadDataWithSparse

用于搬运存放在B1里的512B的稠密权重矩阵到B2里,同时读取128B的索引矩阵用于稠密矩阵的稀疏化。

SetFmatrix

用于调用Load3Dv1/Load3Dv2时设置FeatureMap的属性描述。

SetLoadDataBoundary

设置Load3D时A1/B1边界值。

SetLoadDataRepeat

用于设置Load3Dv2接口的repeat参数。设置repeat参数后,可以通过调用一次Load3Dv2接口完成多个迭代的数据搬运。

SetLoadDataPaddingValue

设置padValue,用于Load3Dv1/Load3Dv2。

Mmad

完成矩阵乘加操作。

MmadWithSparse

完成矩阵乘加操作,传入的左矩阵A为稀疏矩阵, 右矩阵B为稠密矩阵 。

Fixpipe

矩阵计算完成后,对结果进行处理,例如对计算结果进行量化操作,并把数据从CO1搬迁到Global Memory中。

SetFixPipeConfig

在Fixpipe的流程中,会涉及到relu (通过将FixpipeParams.reluEn设置为true)和quant(FixpipeParams.QuantParams设置为非NoQuant)的流程,分别用于relu和quant计算。通过该接口设置relu和quant的源操作数。

SetFixpipeNz2ndFlag

在Fixpipe的流程中,会涉及到nz2nd的流程(FixpipeParams.Nz2NdParams.nz2ndEn设置为true)该接口用于设置FixpipeNz2nd相关的配置。

SetFixpipePreQuantFlag

在Fixpipe的流程中,会涉及到quant量化流程,该接口用于设置量化流程中deq scalar(量化参数)。

SetHF32Mode

此接口同SetHF32TransMode与SetMMLayoutTransform一样,都用于设置寄存器的值。SetHF32Mode接口用于设置MMAD的HF32模式。

SetHF32TransMode

此接口同SetHF32Mode与SetMMLayoutTransform一样,都用于设置寄存器的值。SetHF32TransMode用于设置MMAD的HF32取整模式,仅在MMAD的HF32模式生效时有效。

SetMMLayoutTransform

此接口同SetHF32Mode与SetHF32TransMode一样,都用于设置寄存器的值,其中SetMMLayoutTransform接口用于设置MMAD的M/N方向。

CheckLocalMemoryIA

监视设定范围内的UB读写行为,如果监视到有设定范围的读写行为则会出现EXCEPTION报错,未监视到设定范围的读写行为则不会报错。

Conv2D

计算给定输入张量和权重张量的2-D卷积,输出结果张量。Conv2d卷积层多用于图像识别,使用过滤器提取图像中的特征。

Gemm

根据输入的切分规则,将给定的两个输入张量做矩阵乘,输出至结果张量。将A和B两个输入矩阵乘法在一起,得到一个输出矩阵C。

数据搬运

DataCopyPad

该接口提供数据非对齐搬运的功能。

SetPadValue

设置DataCopyPad接口填充的数值。

同步控制

SetFlag/WaitFlag

同一核内不同流水线之间的同步指令。具有数据依赖的不同流水指令之间需要插此同步。

PipeBarrier

阻塞相同流水,具有数据依赖的相同流水之间需要插此同步。

DataSyncBarrier

用于阻塞后续的指令执行,直到所有之前的内存访问指令(需要等待的内存位置可通过参数控制)执行结束。

CrossCoreSetFlag

针对分离架构,AI Core上的Cube核(AIC)与Vector核(AIV)之间的同步设置指令。

CrossCoreWaitFlag

针对分离架构,AI Core上的Cube核(AIC)与Vector核(AIV)之间的同步等待指令。

缓存处理

ICachePreLoad

从指令所在DDR地址预加载指令到ICache中。

GetICachePreloadStatus

获取ICACHE的PreLoad的状态。

系统变量访问

GetProgramCounter

获取程序计数器的指针,程序计数器用于记录当前程序执行的位置。

GetSubBlockNum

获取AI Core上Vector核的数量。

GetSubBlockIdx

获取AI Core上Vector核的ID。

GetSystemCycle

获取当前系统cycle数,若换算成时间需要按照50MHz的频率,时间单位为us,换算公式为:time = (cycle数/50) us 。

原子操作

SetAtomicMax

原子操作函数,设置后续从VECOUT传输到GM的数据是否执行原子比较,将待拷贝的内容和GM已有内容进行比较,将最大值写入GM。

SetAtomicMin

原子操作函数,设置后续从VECOUT传输到GM的数据是否执行原子比较,将待拷贝的内容和GM已有内容进行比较,将最小值写入GM。

SetStoreAtomicConfig

设置原子操作使能位与原子操作类型。

GetStoreAtomicConfig

获取原子操作使能位与原子操作类型的值。

相关推荐

泛微软件工资福利待遇怎么样?从9方面为你解读
beat365中国在线体育

泛微软件工资福利待遇怎么样?从9方面为你解读

📅 07-10 👀 1065
1匹的空调适合多少平方米
www365bet娱乐场

1匹的空调适合多少平方米

📅 10-02 👀 123
作者:夏天又来了
百特365平台可靠吗

作者:夏天又来了

📅 07-02 👀 9424
行善的意思
beat365中国在线体育

行善的意思

📅 12-28 👀 5106