aclnnAddcdiv&aclnnInplaceAddcdiv
支持的产品型号
- Atlas 训练系列产品。
- Atlas A2训练系列产品。
接口原型
aclnnAddcdiv和aclnnInplaceAddcdiv实现相同的功能,使用区别如下,请根据自身实际场景选择合适的算子。
- aclnnAddcdiv:需新建一个输出张量对象存储计算结果。
- aclnnInplaceAddcdiv:无需新建输出张量对象,直接在输入张量的内存中存储计算结果。
每个算子分为,必须先调用 “aclnnAddcdivGetWorkspaceSize” 或者 “aclnnInplaceAddcdivGetWorkspaceSize” 接口获取入参并根据计算流程计算所需workspace大小,再调用 “aclnnAddcdiv” 或者 “aclnnInplaceAddcdiv” 接口执行计算。
aclnnStatus aclnnAddcdivGetWorkspaceSize(const aclTensor *self, const aclTensor *tensor1, const aclTensor *tensor2, const aclScalar *value, const aclTensor *out, uint64_t *workspaceSize, aclOpExecutor **executor)
aclnnStatus aclnnAddcdiv(void *workspace, uint64_t workspaceSize, aclOpExecutor *executor, aclrtStream stream)
aclnnStatus aclnnInplaceAddcdivGetWorkspaceSize(const aclTensor *selfRef, const aclTensor *tensor1, const aclTensor *tensor2, const aclScalar *value, uint64_t *workspaceSize, aclOpExecutor **executor)
aclnnStatus aclnnInplaceAddcdiv(void *workspace, uint64_t workspaceSize, aclOpExecutor *executor, aclrtStream stream)
功能描述
算子功能:执行
tensor1
除以tensor2
的元素除法,将结果乘以标量value
并将其添加到self
。计算公式:
aclnnAddcdivGetWorkspaceSize
参数说明:
- self:需要累加的张量,Device侧的aclTensor,数据类型支持BFLOAT16(仅Atlas A2训练系列产品支持)、FLOAT16、FLOAT、DOUBLE、INT64,数据类型要和tensor1、tensor2支持可推导关系,shape要与tensor1、tensor2除过之后的tensor满足,支持,支持ND。
- tensor1:分子张量,Device侧的aclTensor,数据类型支持BFLOAT16(仅Atlas A2训练系列产品支持)、FLOAT16、FLOAT、DOUBLE、INT64,数据类型要和self、tensor2支持可推导关系,shape要与tensor2满足,支持,支持ND。
- tensor2:分母张量,Device侧的aclTensor,数据类型支持BFLOAT16(仅Atlas A2训练系列产品支持)、FLOAT16、FLOAT、DOUBLE、INT64, 数据类型要和self、tensor1支持可推导关系,shape要与tensor1满足,支持,支持ND。
- value:host侧的aclScalar,数据类型与self、tensor1、tensor2数据类型保持一致,不一致时需要强转成一致。
- out:输出张量,Device侧的aclTensor,数据类型支持BFLOAT16(仅Atlas A2训练系列产品支持)、FLOAT16、FLOAT、DOUBLE、INT64,数据类型要满足和self、tensor1、tensor2推导关系,shape是self、tensor1、tensor2 broadcast之后的shape,支持,支持ND。
- workspaceSize:返回用户需要在Device侧申请的workspace大小。
- executor:返回op执行器,包含了算子计算流程。
返回值:
[object Object]
aclnnAddcdiv
参数说明:
- workspace:在Device侧申请的workspace内存地址。
- workspaceSize:在Device侧申请的workspace大小,由第一段接口aclnnAddcdivGetWorkspaceSize获取。
- executor:op执行器,包含了算子计算流程。
- stream:指定执行任务的 AscendCL Stream流。
返回值:
aclnnInplaceAddcdivGetWorkspaceSize
参数说明:
- selfRef:需要累加的张量,Device侧的aclTensor,数据类型支持BFLOAT16(仅Atlas A2训练系列产品支持)、FLOAT16、FLOAT、DOUBLE、INT64,数据类型要和tensor1、tensor2支持可推导关系,shape要与tensor1、tensor2除过之后的tensor满足,支持,支持ND。
- tensor1:分子张量,Device侧的aclTensor,数据类型支持BFLOAT16(仅Atlas A2训练系列产品支持)、FLOAT16、FLOAT、DOUBLE、INT64,数据类型要和selfRef、tensor2支持可推导关系,shape要与tensor2满足,支持,支持ND。
- tensor2:分母张量,Device侧的aclTensor,数据类型支持BFLOAT16(仅Atlas A2训练系列产品支持)、FLOAT16、FLOAT、DOUBLE、INT64, 数据类型要和selfRef、tensor1支持可推导关系,shape要与tensor1满足,支持,支持ND。
- value:host侧的aclScalar,数据类型与selfRef、tensor1、tensor2数据类型保持一致,不一致时需要强转成一致。
- workspaceSize:返回用户需要在Device侧申请的workspace大小。
- executor:返回op执行器,包含了算子计算流程。
返回值:
[object Object]
aclnnInplaceAddcdiv
参数说明:
- workspace:在Device侧申请的workspace内存地址。
- workspaceSize:在Device侧申请的workspace大小,由第一段接口aclnnInplaceAddcdivGetWorkspaceSize获取。
- executor:op执行器,包含了算子计算流程。
- stream:指定执行任务的 AscendCL Stream流。
返回值:
约束与限制
无
调用示例
[object Object]