昇腾社区首页
中文
注册

Multiply

函数功能

图像处理类算法,张量乘法Multiply,支持float16、float32、uint8。支持异步调用。不支持inplace操作。

当前支持Atlas 推理系列产品Atlas 200I/500 A2 推理产品

Atlas 200I/500 A2 推理产品上,支持预加载(在原型2预加载时需要添加attr属性,示例请参见初始化算子预加载文件实例”章节)。

使用时需满足以下条件:

  • 接口中的输入输出Tensor必须在Device或DVPP侧且各参数(stream及数据内存)需位于同一Device中。
  • 同步场景下,数据内存所在Device需与初始化的Device一致。
  • 请注意处理数据类型越界问题。
  • 该接口为饱和计算,即当dst数据类型为uint8,数据值超过uint8最大值(或小于uint8最小值)时,dst值为255(或0),不发生回绕。
  • 各输入、输出参数对应Tensor的形状(Shape)相等且不超过4维。
  • 当调用原型1时,输入、输出各数据类型需保持一致;当调用原型2时,支持不同输入数据类型,输出dst数据类型与精度高的输入Tensor保持一致。
  • Atlas 推理系列产品产品上:对于原型1,当输入尺寸在720P(1280*720)以上,计算性能优于cv::multiply在CPU上的性能;对于原型2,当输入尺寸在480P(640*480)以上,计算性能优于cv::multiply在CPU上的性能。
  • Atlas 200I/500 A2 推理产品产品上,当输入尺寸在720P(720*1280)时,计算性能优于cv::multiply在CPU上的性能。

函数原型

原型1:

APP_ERROR Multiply(const Tensor &src1, const Tensor &src2, Tensor &dst, AscendStream &stream = AscendStream::DefaultStream());

原型2:

APP_ERROR Multiply(const Tensor &src1, const Tensor &src2, Tensor &dst, double scale, AscendStream& stream = AscendStream::DefaultStream());

参数说明

参数名

输入/输出

说明

src1

输入

Tensor类,乘数,输入张量,支持float16、float32、uint8类型输入。

src2

输入

Tensor类,乘数,输入张量,支持float16、float32、uint8类型输入。

dst

输出

Tensor类,输出张量,支持float16、float32、uint8类型输出,支持传入空Tensor,如果dst不为空Tensor,需要调用Tensor.Malloc()接口提前分配内存。

scale

输入

double类型,输入标量,输入Tensor src1和src2相乘后的结果Tensor再与标量相乘。

stream

输入

AscendStream类型,默认值为“AscendStream::DefaultStream()”。当参数值为默认值时,接口为同步操作,其他情况下,接口为异步操作。

返回参数说明

数据结构

说明

APP_ERROR

程序执行返回的错误码,请参考APP_ERROR说明