CANN/pyasc:add_deq_relu API文档
2026/5/10 5:14:37 网站建设 项目流程

asc.language.basic.add_deq_relu

【免费下载链接】pyasc本项目为Python用户提供算子编程接口,支持在昇腾AI处理器上加速计算,接口与Ascend C一一对应并遵守Python原生语法。项目地址: https://gitcode.com/cann/pyasc

asc.language.basic.add_deq_relu(dst: LocalTensor, src0: LocalTensor, src1: LocalTensor, count: int, is_set_mask: bool = True) → None

asc.language.basic.add_deq_relu(dst: LocalTensor, src0: LocalTensor, src1: LocalTensor, mask: int, repeat_times: int, repeat_params: BinaryRepeatParams, is_set_mask: bool = True) → None

asc.language.basic.add_deq_relu(dst: LocalTensor, src0: LocalTensor, src1: LocalTensor, mask: List[int], repeat_times: int, repeat_params: BinaryRepeatParams, is_set_mask: bool = True) → None

依次计算按元素求和、结果进行deq量化后再进行relu计算(结果和0对比取较大值)。

对应的Ascend C函数原型

template <typename T> __aicore__ inline void AddDeqRelu(const LocalTensor<T>& dst, const LocalTensor<T>& src0, const LocalTensor<T>& src1, const int32_t& count);
template <typename T, bool isSetMask = true> __aicore__ inline void AddDeqRelu(const LocalTensor<T>& dst, const LocalTensor<T>& src0, const LocalTensor<T>& src1, uint64_t mask[], const uint8_t repeatTimes, const BinaryRepeatParams& repeatParams);
template <typename T, bool isSetMask = true> __aicore__ inline void AddDeqRelu(const LocalTensor<T>& dst, const LocalTensor<T>& src0, const LocalTensor<T>& src1, uint64_t mask, const uint8_t repeatTimes, const BinaryRepeatParams& repeatParams);

参数说明

  • dst:目的操作数。类型为LocalTensor,支持的TPosition为VECIN/VECCALC/VECOUT。
  • src0, src1:源操作数。类型为LocalTensor,支持的TPosition为VECIN/VECCALC/VECOUT。
  • count:参与计算的元素个数。
  • mask:用于控制每次迭代内参与计算的元素。
  • repeat_times:重复迭代次数。
  • params:控制操作数地址步长的参数。
  • is_set_mask: 是否在接口内部设置mask。

约束说明

  • 操作数地址对齐要求请参见 《Ascend C算子开发接口》 中的“通用说明和约束-通用地址对齐约束”。
  • 操作数地址重叠约束请参考 《Ascend C算子开发接口》 中的“通用说明和约束-通用地址重叠约束”。
  • 使用整个tensor参与计算接口符号重载时,运算量为目的LocalTensor的总长度。

调用示例

  • tensor高维切分计算样例-mask连续模式
    mask = 128 # repeat_times = 4,一次迭代计算128个数,共计算512个数 # dst_blk_stride, src0_blk_stride, src1_blk_stride = 1,单次迭代内数据连续读取和写入 # dst_rep_stride, src0_rep_stride, src1_rep_stride = 8,相邻迭代间数据连续读取和写入 params = asc.BinaryRepeatParams(1, 1, 1, 8, 8, 8) scale = 0.1 asc.set_deq_scale(scale) asc.add_deq_relu(dst, src0, src1, mask=mask, repeat_times=4, repeat_params=params)
  • tensor高维切分计算样例-mask逐bit模式
    mask = [uint64_max, uint64_max] # repeat_times = 4,一次迭代计算128个数,共计算512个数 # dst_blk_stride, src0_blk_stride, src1_blk_stride = 1,单次迭代内数据连续读取和写入 # dst_rep_stride, src0_rep_stride, src1_rep_stride = 8,相邻迭代间数据连续读取和写入 params = asc.BinaryRepeatParams(1, 1, 1, 8, 8, 8) scale = 0.1 asc.set_deq_scale(scale) asc.add_deq_relu(dst, src0, src1, mask=mask, repeat_times=4, repeat_params=params)
  • tensor前n个数据计算样例
    scale = 0.1 asc.set_deq_scale(scale) asc.add_deq_relu(dst, src0, src1, count=512)

【免费下载链接】pyasc本项目为Python用户提供算子编程接口,支持在昇腾AI处理器上加速计算,接口与Ascend C一一对应并遵守Python原生语法。项目地址: https://gitcode.com/cann/pyasc

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询