函数:create_handle_for_s8gemm
函数:create_handle_for_hgemm
| C函数原型 | aclError **aclblasCreateHandleForHgemm(**aclTransType transA, aclTransType transB, aclTransType transC, int m, int n, int k, aclComputeType type, aclopHandle **handle) |
|---|---|
| Python函数 | handle, ret = acl.blas.create_handle_for_hgemm(trans_a, trans_b, trans_c, m, n, k, type) |
| 函数功能 | 创建矩阵-矩阵乘的handle,输入数据和输出数据的数据类型为aclFloat16,同步接口。 创建handle成功后,需调用acl.op.execute_with_handle接口执行算子。 |
| 输入说明 | trans_a:int,矩阵A是否转置的标记。 trans_b:int,B矩阵是否转置的标记。 trans_c:int,C矩阵的标记,当前仅支持aclTrans_N。 m:int,矩阵A的行数与矩阵C的行数。 n:int,矩阵B的列数与矩阵C的列数。 k:int,矩阵A的列数与矩阵B的行数。 type:int,计算精度。 |
| 返回值说明 | handle:int,执行算子的handle数据的指针地址。 ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | 无 |
父主题: CBLAS接口(blas)
函数:s8gemm
| C函数原型 | aclError **aclblasS8gemm(**aclTransType transA, aclTransType transB, aclTransType transC, int m, int n, int k, const int32_t *alpha, const int8_t *matrixA, int lda, const int8_t *matrixB, int ldb, const int32_t *beta, int32_t *matrixC, int ldc, aclComputeType type, aclrtStream stream) |
|---|---|
| Python函数 | **ret = acl.blas.**s8gemm(trans_a, trans_b, trans_c, m, n, k, alpha, matrix_a, lda, matrix_b, ldb, beta, matrix_c, ldc, type, stream) |
| 函数功能 | 执行矩阵-矩阵的乘法,C = αAB + βC,输入数据的数据类型为int8_t,输出数据的数据类型为int32_t,异步接口。 |
| 输入说明 | trans_a:int,矩阵A是否转置的标记。 trans_b:int,B矩阵是否转置的标记。 trans_c:int,C矩阵的标记,当前仅支持aclTrans_N。 m:int,矩阵A的行数与矩阵C的行数。 n:int,矩阵B的列数与矩阵C的列数。 k:int,矩阵A的列数与矩阵B的行数。 alpha:int, 用于执行乘操作的标量alpha数据指针地址。 matrix_a:int,矩阵A的数据指针地址。 lda:int,A矩阵的主维,此时选择转置,按行优先,则lda为A的列数。 matrix_b:int,矩阵B的数据指针地址。 ldb:int,B矩阵的主维,此时选择转置,按行优先,则leading dimension为B的列数。 beta:int,用于执行乘操作的标量beta的数据指针地址。 matrix_c:int,矩阵C的数据指针地址。 ldc:int,C矩阵的主维,当前预留。 type:int,计算精度。 stream:int,执行算子所在的Stream。 |
| 返回值说明 | ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | 无 |
| 参考资源 | 接口调用流程,参见接口调用流程。 |
父主题: CBLAS接口(blas)
函数:create_handle_for_s8gemm
| C函数原型 | aclError **aclblasCreateHandleForS8gemm(**aclTransType transA, aclTransType transB, aclTransType transC, int m, int n, int k, aclComputeType type, aclopHandle **handle) |
|---|---|
| Python函数 | handle, ret = acl.blas.create_handle_for_s8gemm(trans_a, trans_b, trans_c, m, n, k, type) |
| 函数功能 | 创建矩阵-矩阵乘的handle,输入数据的数据类型为int8_t,输出数据的数据类型为int32_t,同步接口。 创建handle成功后,需调用acl.op.execute_with_handle接口执行算子。 |
| 输入说明 | trans_a:int,矩阵A是否转置的标记。 trans_b:int,B矩阵是否转置的标记。 trans_c:int,C矩阵的标记,当前仅支持aclTrans_N。 m:int,矩阵A的行数与矩阵C的行数。 n:int,矩阵B的列数与矩阵C的列数。 k:int,矩阵A的列数与矩阵B的行数。 type:int,计算精度。 |
| 返回值说明 | handle:int,执行算子的handle数据的指针地址。 ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | 无 |
父主题: CBLAS接口(blas)
函数:register_compile_func
| C函数原型 | aclError aclopRegisterCompileFunc(const char *opType, aclopCompileFunc func) |
|---|---|
| Python函数 | ret = acl.op.register_compile_func(op_type, func) |
| 函数功能 | 动态Shape场景下,注册算子选择器,用于在算子执行时,能针对不同shape,选择相应的Tiling策略。 如果某算子已注册算子选择器,则不允许重新注册,如果需要变更算子选择器,必须先调用acl.op.unregister_compile_func接口取消注册,然后再调用acl.op.register_compile_func接口重新注册。 |
| 输入说明 | op_type:str,算子类型。 func:python函数对象,算子选择器回调函数,函数定义: Python侧格式如下: python<br>def call_back_func(num_inputs, input_desc, num_outputs, output_desc, op_attr, aclop_kernel_desc):<br>pass<br> |
| 返回值说明 | ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | 无 |
父主题: 算子编译
函数:unregister_compile_func
| C函数原型 | aclError aclopUnregisterCompileFunc**(const char *opType)** |
|---|---|
| Python函数 | ret = acl.op.unregister_compile_func(op_type) |
| 函数功能 | 动态Shape场景下,取消注册算子选择器。 |
| 输入说明 | op_type:str,算子类型。 |
| 返回值说明 | ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | 无 |
父主题: 算子编译
函数:create_kernel
| C函数原型 | aclError aclopCreateKernel(const char *opType, const char *kernelId, const char *kernelName, void *binData, int binSize, aclopEngineType enginetype, aclDataDeallocator deallocator) |
|---|---|
| Python函数 | ret = acl.op.create_kernel(op_type, kernel_id, kernel_name, bin_data, bin_size, enginetype, deallocator) |
| 函数功能 | 动态Shape场景下,将算子注册到系统内部,运行算子时使用。 |
| 输入说明 | op_type:str,算子类型。 kernel_id:str,算子执行时要指定的Kernel ID。 kernel_name:str,算子Kernel名称,和算子二进制文件中的kernelName保持一致。 bin_data:int,算子Kernel文件的内存地址。 bin_size:int,算子Kernel文件的内存大小,单位为byte。 enginetype:int,表示算子执行引擎,该参数只有acl.op.update.params接口的compile_flag参数值为ACL_COMPILE_SYS时有效。 - 0:ACL_ENGINE_SYS,不关心具体执行引擎时填写。 - 1:ACL_ENGINE_AICORE,将算子编译成AI Core算子。 - 2:ACL_ENGINE_VECTOR,将算子编译成Vector Core算子。 **deallocator:**int,指定是否自动释放bin_data内存。 - 0:不自动释放,数据由调用者自行编写代码进行释放。 - 1:自动释放,内部会设置回调函数释放bin_data内存。 |
| 返回值说明 | ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | 无 |
父主题: 算子编译
在线提单