Element-wise计算接口
对输入数据进行逐个元素对应运算的操作,这种操作的输出往往具有与输入相同的形状。
vadd
功能说明
两个tensor按元素相加。
您可以在ATC安装目录下的“python/site-packages/te/lang/cce/te_compute/elewise_compute.py”查看接口定义。
约束说明
两个tensor中元素的数据类型需要一致, shape需要相同。
昇腾310 AI处理器:支持的数据类型有float16、float32、int32
函数原型
te.lang.cce.vadd(lhs, rhs)
参数说明
- lhs:左tensor,tvm.tensor类型。
- rhs:右tensor,tvm.tensor类型。
返回值
res_tensor:表示lhs + rhs,tvm.tensor类型
调用示例
shape = (1024,1024) input_dtype = "float16" data1 = tvm.placeholder(shape, name="data1", dtype=input_dtype) data2 = tvm.placeholder(shape, name="data2", dtype=input_dtype) res = te.lang.cce.vadd(data1, data2)
vsub
功能说明
两个tensor按元素相减。
您可以在ATC安装目录下的“python/site-packages/te/lang/cce/te_compute/elewise_compute.py”查看接口定义。
约束说明
两个tensor中元素的数据类型需要一致, shape需要相同。
昇腾310 AI处理器:支持的数据类型有float16、float32、int32
函数原型
te.lang.cce.vsub(lhs, rhs)
参数说明
- lhs:左tensor,tvm.tensor类型。
- rhs:右tensor,tvm.tensor类型。
返回值
res_tensor:表示lhs - rhs,tvm.tensor类型
调用示例
shape = (1024,1024) input_dtype = "float16" data1 = tvm.placeholder(shape, name="data1", dtype=input_dtype) data2 = tvm.placeholder(shape, name="data2", dtype=input_dtype) res = te.lang.cce.vsub(data1, data2)
vmul
功能说明
两个tensor按元素相乘。
您可以在ATC安装目录下的“python/site-packages/te/lang/cce/te_compute/elewise_compute.py”查看接口定义。
约束说明
两个tensor中元素的数据类型需要一致, shape需要相同。
昇腾310 AI处理器:支持的数据类型有float16、float32、int32
函数原型
te.lang.cce.vmul(lhs, rhs)
参数说明
- lhs:左tensor,tvm.tensor类型。
- rhs:右tensor,tvm.tensor类型。
返回值
res_tensor:表示lhs * rhs,tvm.tensor类型
调用示例
shape = (1024,1024) input_dtype = "float16" data1 = tvm.placeholder(shape, name="data1", dtype=input_dtype) data2 = tvm.placeholder(shape, name="data2", dtype=input_dtype) res = te.lang.cce.vmul(data1, data2)
vdiv
功能说明
两个tensor按元素相除。
您可以在ATC安装目录下的“python/site-packages/te/lang/cce/te_compute/elewise_compute.py”查看接口定义。
约束说明
两个tensor中元素的数据类型需要一致,shape需要相同。
昇腾310 AI处理器:支持的数据类型有float16、float32、int32
函数原型
te.lang.cce.vdiv(lhs, rhs)
参数说明
- lhs:左tensor,tvm.tensor类型。
- rhs:右tensor,tvm.tensor类型。
返回值
res_tensor:表示lhs / rhs,tvm.tensor类型。
调用示例
shape = (1024,1024) input_dtype = "float16" data1 = tvm.placeholder(shape, name="data1", dtype=input_dtype) data2 = tvm.placeholder(shape, name="data2", dtype=input_dtype) res = te.lang.cce.vdiv(data1, data2)
vmod
功能说明
两个tensor按元素取模运算。
您可以在ATC安装目录下的“python/site-packages/te/lang/cce/te_compute/elewise_compute.py”查看接口定义。
约束说明
两个Tensor中元素的数据类型需要一致,shape需要相同。
昇腾310 AI处理器:支持的数据类型有float16
函数原型
te.lang.cce.vmod(lhs, rhs)
参数说明
- lhs:左tensor,tvm.tensor类型。
- rhs:右tensor,tvm.tensor类型。
返回值
res_tensor:结果tensor,tvm.tensor类型。
调用示例
shape = (1024,1024) input_dtype = "float16" data1 = tvm.placeholder(shape, name="data1", dtype=input_dtype) data2 = tvm.placeholder(shape, name="data2", dtype=input_dtype) res = te.lang.cce.vmod(data1, data2)
vmin
功能说明
两个tensor按元素比较并取较小值。
您可以在ATC安装目录下的“python/site-packages/te/lang/cce/te_compute/elewise_compute.py”查看接口定义。
约束说明
两个tensor中元素的数据类型需要一致,shape需要相同。
昇腾310 AI处理器:支持的数据类型有float16、float32、int32
函数原型
te.lang.cce.vmin(lhs, rhs)
参数说明
- lhs:左tensor,tvm.tensor类型。
- rhs:右tensor,tvm.tensor类型。
返回值
res_tensor:结果tensor,tvm.tensor类型。
调用示例
shape = (1024,1024) input_dtype = "float16" data1 = tvm.placeholder(shape, name="data1", dtype=input_dtype) data2 = tvm.placeholder(shape, name="data2", dtype=input_dtype) res = te.lang.cce.vmin(data1, data2)
vmax
功能说明
两个tensor按元素比较并取较大值。
您可以在ATC安装目录下的“python/site-packages/te/lang/cce/te_compute/elewise_compute.py”查看接口定义。
约束说明
两个Tensor中元素的数据类型需要一致,shape需要相同。
昇腾310 AI处理器:支持的数据类型有float16、float32、int32
函数原型
te.lang.cce.vmax(lhs, rhs)
参数说明
- lhs:左tensor,tvm.tensor类型。
- rhs:右tensor,tvm.tensor类型。
返回值
res_tensor:结果tensor,tvm.tensor类型。
调用示例
shape = (1024,1024) input_dtype = "float16" data1 = tvm.placeholder(shape, name="data1", dtype=input_dtype) data2 = tvm.placeholder(shape, name="data2", dtype=input_dtype) res = te.lang.cce.vmax(data1, data2)
vor
功能说明
两个tensor元素按位取或。
您可以在ATC安装目录下的“python/site-packages/te/lang/cce/te_compute/elewise_compute.py”查看接口定义。
约束说明
两个Tensor中元素的数据类型需要一致,shape需要相同。
支持的类型有int16,uint16。
函数原型
te.lang.cce.vor(lhs, rhs)
参数说明
- lhs:左tensor,tvm.tensor类型。
- rhs:右tensor,tvm.tensor类型。
返回值
res_tensor:表示lhs按位或rhs,tvm.tensor类型。
调用示例
shape = (1024,1024) input_dtype = "int16" data1 = tvm.placeholder(shape, name="data1", dtype=input_dtype) data2 = tvm.placeholder(shape, name="data2", dtype=input_dtype) res = te.lang.cce.vor(data1, data2)
vand
功能说明
两个tensor元素按位取与。
您可以在ATC安装目录下的“python/site-packages/te/lang/cce/te_compute/elewise_compute.py”查看接口定义。
约束说明
两个Tensor中元素的数据类型需要一致,shape需要相同。
支持的类型有int16,uint16。
函数原型
te.lang.cce.vand(lhs, rhs)
参数说明
- lhs:左tensor,tvm.tensor类型。
- rhs:右tensor,tvm.tensor类型。
返回值
res_tensor:表示lhs按位与rhs,tvm.tensor类型。
调用示例
shape = (1024,1024) input_dtype = "int16" data1 = tvm.placeholder(shape, name="data1", dtype=input_dtype) data2 = tvm.placeholder(shape, name="data2", dtype=input_dtype) res = te.lang.cce.vand(data1, data2)
vadds
功能说明
将tensor中每个元素加上标量scalar。
您可以在ATC安装目录下的“python/site-packages/te/lang/cce/te_compute/elewise_compute.py”查看接口定义。
约束说明
如果scalar数据类型与tensor数据类型不一致,计算中会转换为对应tensor数据类型。
昇腾310 AI处理器:支持的数据类型有float16、float32、int32
函数原型
te.lang.cce.vadds(raw_tensor, scalar)
参数说明
- raw_tensor:输入tensor,tvm.tensor类型。
- scalar:raw_tensor中元素要加的系数,标量类型。
返回值
res_tensor:表示raw_tensor + scalar,tvm.tensor类型
调用示例
shape = (1024,1024) input_dtype = "float16" data = tvm.placeholder(shape, name="data", dtype=input_dtype) scalar = tvm.const(2, dtype =input_dtype) res = te.lang.cce.vadds(data, scalar)
vmins
功能说明
将raw_tensor中每个元素与标量scalar进行比较,结果取两者间的最小者。
您可以在ATC安装目录下的“python/site-packages/te/lang/cce/te_compute/elewise_compute.py”查看接口定义。
约束说明
scalar数据类型与raw_tensor数据类型需要一致,如果不一致计算中会把scalar转换为raw_tensor对应数据类型。
昇腾310 AI处理器:支持的数据类型有float16、float32、int32
函数原型
te.lang.cce.vmins(raw_tensor, scalar)
参数说明
- raw_tensor:输入tensor,tvm.tensor类型。
- scalar:raw_tensor中元素要比较的系数,标量类型。
返回值
res_tensor:结果tensor,tvm.tensor类型
调用示例
shape = (1024,1024) input_dtype = "float16" data = tvm.placeholder(shape, name="data", dtype=input_dtype) scalar = tvm.const(2, dtype =input_dtype) res = te.lang.cce.vmins(data, scalar)
vmaxs
功能说明
将raw_tensor中每个元素与标量scalar进行比较,结果取两者间的最大者。
您可以在ATC安装目录下的“python/site-packages/te/lang/cce/te_compute/elewise_compute.py”查看接口定义。
约束说明
scalar数据类型与raw_tensor数据类型需要一致,如果不一致计算中会把scalar转换为raw_tensor对应数据类型。
昇腾310 AI处理器:支持的数据类型有float16、float32、int32
函数原型
te.lang.cce.vmaxs(raw_tensor, scalar)
参数说明
- raw_tensor:输入tensor,tvm.tensor类型。
- scalar:raw_tensor中元素要比较的系数,标量类型。
返回值
res_tensor:结果tensor,tvm.tensor类型。
调用示例
shape = (1024,1024) input_dtype = "float16" data = tvm.placeholder(shape, name="data", dtype=input_dtype) scalar = tvm.const(2, dtype =input_dtype) res = te.lang.cce.vmaxs(data, scalar)
vmuls
功能说明
将raw_tensor中每个元素乘上标量scalar。
您可以在ATC安装目录下的“python/site-packages/te/lang/cce/te_compute/elewise_compute.py”查看接口定义。
约束说明
scalar数据类型与raw_tensor数据类型需要一致,如果不一致计算中会把scalar转换为raw_tensor对应数据类型。
昇腾310 AI处理器:支持的数据类型有float16、float32、int32
函数原型
te.lang.cce.vmuls(raw_tensor, scalar)
参数说明
- raw_tensor:输入tensor,tvm.tensor类型。
- scalar:raw_tensor中元素要乘的系数,标量类型。
返回值
res_tensor:结果tensor,tvm.tensor类型。
调用示例
shape = (1024,1024) input_dtype = "float16" data = tvm.placeholder(shape, name="data", dtype=input_dtype) scalar = tvm.const(2, dtype =input_dtype) res = te.lang.cce.vmuls(data, scalar)
vcmp
功能说明
lhs tensor中的元素与rhs按operation指定的操作进行比较,operation指定的操作包括eq、ne、lt、gt、le、ge,依次表示==、!=、<、>、<=、>=。如果表达式成立,mode为bool时返回True,mode为bit时返回1;如果表达式不成立,mode为bool时返回False,mode为bit时返回0。
以下通过表达式的方式来解释各操作的含义,其中,x表示lhs中的元素,y表示rhs中的元素,z表示结果tensor的元素,n(取值0~7)表示结果tensor的元素的bit位index,表达式如下:
- mode=='bool':
- lt: z = True (x < y) or False (x >= y)
- gt: z = True (x > y) or False (x <= y)
- le: z = True (x <= y) or False (x > y)
- ge: z = True (x >= y) or False (x < y)
- eq: z = True (x == y) or False (x != y)
- ne: z = True (x != y) or False (x == y)
- mode=='bit':
- lt: z[n] = 1 (x < y) or 0 (x >= y)
- gt: z[n] = 1 (x > y) or 0 (x <= y)
- le: z[n] = 1 (x <= y) or 0 (x > y)
- ge: z[n] = 1 (x >= y) or 0 (x < y)
- eq: z[n] = 1 (x == y) or 0 (x != y)
- ne: z[n] = 1 (x != y) or 0 (x == y)
您可以在ATC安装目录下的“python/site-packages/te/lang/cce/te_compute/elewise_compute.py”查看接口定义。
约束说明
- 进行比较操作的左操作数和右操作数的数据类型需要一致。
- 当mode为bool时,调用te.lang.cce.cce_build_code接口进行编译时,传入的config参数中需要设置bool_storage_as_1bit为False。否则会出现某些shape的输出结果不符合预期。
因为bool_storage_as_1bit的默认值为True,表示按照1 bit进行存储。
编译配置config如下所示:
with tvm.target.cce(): schedule = generic.auto_schedule(res) config = {"name": kernel_name, "tensor_list": [data_x, data_y, res], "bool_storage_as_1bit": False} te.lang.cce.cce_build_code(schedule, config)
- 当mode为bit时,左操作数的shape的最后一维必须被8整除。
- 如果右操作数也为tensor,那么两个tensor的shape需要相同。
- 昇腾310 AI处理器:支持的数据类型有float16
函数原型
te.lang.cce.vcmp(lhs, rhs, operation='lt', mode='bool')
参数说明
- lhs:进行比较操作的左操作数,tvm.tensor类型。
- rhs:进行比较操作的右操作数,tvm.tensor或者 scalar类型。
- operation : 操作类型,支持eq, ne, lt, gt, ge, le,默认为lt。
- mode:模式类型,支持bool和bit,默认为bool。
返回值
res_tensor:结果tensor,tvm.tensor类型。mode为bool时数据类型为bool,mode为bit时数据类型为uint8。
调用示例
shape = (1024,1024) input_dtype = "float16" data1 = tvm.placeholder(shape, name="data1", dtype=input_dtype) data2 = tvm.placeholder(shape, name="data2", dtype=input_dtype) res = te.lang.cce.vcmp(data1, data2, 'lt', 'bit')
vlogic
功能说明
两个tensor按元素进行逻辑and/or操作,或者一个tensor进行逻辑not操作。
您可以在ATC安装目录下的“python/site-packages/te/lang/cce/te_compute/elewise_compute.py”查看接口定义。
约束说明
支持的数据类型为bool,两个tensor元素的数据类型需要一致。
函数原型
te.lang.cce.vlogic(lhs, rhs=None, operation='logic_and')
参数说明
- lhs:左tensor,tvm.tensor类型。
- rhs:右tensor,tvm.tensor类型。
- operation : 操作类型,支持logic_and, logic_or, logic_not,默认为logic_and。若执行logic_not操作,则需要将rhs设置为None。
返回值
res_tensor:结果tensor,tvm.tensor类型
调用示例
shape = (1024,1024) input_dtype = "bool" data1 = tvm.placeholder(shape, name="data1", dtype=input_dtype) data2 = tvm.placeholder(shape, name="data2", dtype=input_dtype) res = te.lang.cce.vlogic(data1, data2, 'logic_and')
vsel
功能说明
根据condition的数据类型,将condition中的元素与True或1比较,如果表达式成立返回x对应的值,否则返回y对应的值。
- condition的数据类型为bool时,将condition元素的值和True比较,如果表达式成立返回x对应的值,否则返回y对应的值;
- condition的数据类型为uint8时,将condition元素按bit位和1比较,如果表达式成立返回x对应的值,否则返回y对应的值。
以下通过表达式的方式来解释如何比较,其中,i是表示condition中的元素,x'表示x的元素或者x,y'表示y的元素或者y,z表示结果tensor的元素,n(取值0~7)表示condition元素的bit位index,表达式如下:
- condition数据类型为bool:
z = (i==True)?x':y'
- condition数据类型为uint8:
z = (i[n]==1)?x':y'
您可以在ATC安装目录下的“python/site-packages/te/lang/cce/te_compute/elewise_compute.py”查看接口定义。
约束说明
- x、y元素的数据类型需要一致。
- 当condition的数据类型为uint8时,x、y的shape最后一维要能被8整除。
- 当condition的数据类型为bool时,调用te.lang.cce.cce_build_code接口进行编译时,传入的config参数中需要设置bool_storage_as_1bit为False。否则会出现某些shape的输出结果不符合预期。
因为bool_storage_as_1bit的默认值为True,表示按照1 bit进行存储。
编译配置config如下所示:
with tvm.target.cce(): schedule = generic.auto_schedule(res) config = {"name": kernel_name, "tensor_list": [data_x, data_y, res], "bool_storage_as_1bit": False} te.lang.cce.cce_build_code(schedule, config)
昇腾310 AI处理器:支持的数据类型有float16
函数原型
te.lang.cce.vsel(condition, x, y)
参数说明
- condition:条件tensor,tvm.tensor类型,数据类型为bool、uint8。
- x:可能的返回值,数据类型支持tvm.tensor、scalar。
- y:可能的返回值,数据类型支持tvm.tensor、scalar。
返回值
res_tensor: 结果tensor,tvm.tensor类型
vcmpsel
功能说明
tensor lhs中的元素和rhs按operation处的操作进行比较,operation处的操作包括eq、ne、lt、gt、le、ge,依次表示==、!=、<、>、<=、>=。如果表达式成立,返回slhs对应的值,否则返回srhs对应的值。
- lt: res = c (a < b) or d (a >= b)
- gt: res = c (a > b) or d (a <= b)
- le: res = c (a <= b) or d (a > b)
- ge: res = c (a >= b) or d (a < b)
- eq: res = c (a == b) or d (a != b)
- ne: res = c (a != b) or d (a == b)
- 如果rhs为None,tensor lhs中的元素会与float数2.0进行比较。
- 如果slhs为None,表达式成立时,返回lhs对应的值。
- 如果srhs为None并且rhs类型为tensor,表达式不成立时,返回rhs对应的值。
如果srhs为None并且rhs类型为scalar,表达式不成立时,返回float数0.0。
您可以在ATC安装目录下的“python/site-packages/te/lang/cce/te_compute/elewise_compute.py”查看接口定义。
约束说明
所有参数的数据类型需要一致。
昇腾310 AI处理器:支持的数据类型有float16
函数原型
te.lang.cce.vcmpsel(lhs,rhs=None,operation='lt', slhs=None, srhs=None)
参数说明
- lhs:进行比较操作的左操作数,tvm.tensor类型。
- rhs:进行比较操作的右操作数,tvm.tensor 或者 scalar类型,默认为None。
- slhs:比较表达式成立时返回的值,tvm.tensor或者 scalar类型,默认为None。
- srhs:比较表达式不成立时返回的值,tvm.tensor或者 scalar类型,默认为None。
- operation : 操作类型,支持eq, ne, lt, gt, ge, le,默认为lt。
返回值
res_tensor:结果tensor ,tvm.tensor类型
调用示例
shape = (1024,1024) input_dtype = "float16" data1 = tvm.placeholder(shape, name="data1", dtype=input_dtype) data2 = tvm.placeholder(shape, name="data2", dtype=input_dtype) data3 = tvm.placeholder(shape, name="data3", dtype=input_dtype) data4 = tvm.placeholder(shape, name="data4", dtype=input_dtype) res = te.lang.cce.vcmpsel(data1, data2, 'gt', data3, data4)
vlog
功能说明
对raw_tensor中的每个元素做对数ln(x)运算。
您可以在ATC安装目录下的“python/site-packages/te/lang/cce/te_compute/elewise_compute.py”查看接口定义。
约束说明
昇腾310 AI处理器:支持的数据类型有float16
函数原型
te.lang.cce.vlog(raw_tensor, priority_flag=0)
参数说明
- raw_tensor:输入tensor,tvm.tensor类型。
- priority_flag:优先级标记,scalar类型。
- 1表示精度优先:精度优先时,由于计算过程复杂,性能会有所下降。
- 0表示性能优先:性能优先时,精度会有所下降。
默认值为0。
返回值
res_tensor:结果tensor,tvm.tensor类型。
调用示例
shape = (1024,1024) input_dtype = "float16" data = tvm.placeholder(shape, name="data", dtype=input_dtype) res = te.lang.cce.vlog(data)
vexp
功能说明
对tensor中的每个元素做自然指数运算e^x。
您可以在ATC安装目录下的“python/site-packages/te/lang/cce/te_compute/elewise_compute.py”查看接口定义。
约束说明
昇腾310 AI处理器:支持的数据类型有float16
函数原型
te.lang.cce.vexp(raw_tensor)
参数说明
raw_tensor:输入tensor,tvm.tensor类型。
返回值
res_tensor:结果tensor,tvm.tensor类型。
调用示例
shape = (1024,1024) input_dtype = "float16" data = tvm.placeholder(shape, name="data", dtype=input_dtype) res = te.lang.cce.vexp(data)
vabs
功能说明
对tensor中的每个元素做绝对值运算|x|。
您可以在ATC安装目录下的“python/site-packages/te/lang/cce/te_compute/elewise_compute.py”查看接口定义。
约束说明
昇腾310 AI处理器:支持的数据类型有float16、float32
函数原型
te.lang.cce.vabs(raw_tensor)
参数说明
raw_tensor:输入tensor,tvm.tensor类型。
返回值
res_tensor:表示|raw_tensor|,tvm.tensor类型。
调用示例
shape = (1024,1024) input_dtype = "float16" data = tvm.placeholder(shape, name="data", dtype=input_dtype) res = te.lang.cce.vabs(data)
vrec
功能说明
对tensor中的每个元素做倒数运算 1 / x。
您可以在ATC安装目录下的“python/site-packages/te/lang/cce/te_compute/elewise_compute.py”查看接口定义。
约束说明
昇腾310 AI处理器:支持的数据类型有float16、float32
函数原型
te.lang.cce.vrec(raw_tensor)
参数说明
raw_tensor:输入tensor,tvm.tensor类型。
返回值
res_tensor:表示1 / raw_tensor,tvm.tensor类型。
调用示例
shape = (1024,1024) input_dtype = "float16" data = tvm.placeholder(shape, name="data", dtype=input_dtype) res = te.lang.cce.vrec(data)
vrelu
功能说明
对tensor中的每个元素做线性整流运算relu。
您可以在ATC安装目录下的“python/site-packages/te/lang/cce/te_compute/elewise_compute.py”查看接口定义。
约束说明
昇腾310 AI处理器:支持的数据类型有float16
函数原型
te.lang.cce.vrelu(raw_tensor)
参数说明
raw_tensor:输入tensor,tvm.tensor类型。
返回值
res_tensor:表示relu(raw_tensor),tvm.tensor类型。
调用示例
shape = (1024,1024) input_dtype = "float16" data = tvm.placeholder(shape, name="data", dtype=input_dtype) res = te.lang.cce.vrelu(data)
vnot
功能说明
对tensor中的每个元素按位取反。
您可以在ATC安装目录下的“python/site-packages/te/lang/cce/te_compute/elewise_compute.py”查看接口定义。
约束说明
支持的类型有int16,uint16。
函数原型
te.lang.cce.vnot(raw_tensor)
参数说明
raw_tensor:输入tensor,tvm.tensor类型。
返回值
res_tensor:表示raw_tensor按位取反,tvm.tensor类型。
调用示例
shape = (1024,1024) input_dtype = "int16" data = tvm.placeholder(shape, name="data", dtype=input_dtype) res = te.lang.cce.vnot(data)
vsqrt
功能说明
对tensor中的每个元素取平方根。
您可以在ATC安装目录下的“python/site-packages/te/lang/cce/te_compute/elewise_compute.py”查看接口定义。
约束说明
昇腾310 AI处理器:支持的数据类型有float16、float32
函数原型
te.lang.cce.vsqrt(raw_tensor, priority_flag=0)
参数说明
- raw_tensor:输入tensor,tvm.tensor类型。
- priority_flag:优先级标记,scalar类型。
- 1表示精度优先:精度优先时,由于计算过程复杂,性能会有所下降。
- 0表示性能优先:性能优先时,精度会有所下降。
默认值为0。
返回值
res_tensor:表示raw_tensor取平方根,tvm.tensor类型
调用示例
shape = (1024,1024) input_dtype = "float 16" data = tvm.placeholder(shape, name="data", dtype=input_dtype) res = te.lang.cce.vsqrt(data)
vrsqrt
功能说明
对tensor中的每个元素求平方根倒数。
您可以在ATC安装目录下的“python/site-packages/te/lang/cce/te_compute/elewise_compute.py”查看接口定义。
约束说明
昇腾310 AI处理器:支持的数据类型有float16、float32
函数原型
te.lang.cce.vrsqrt(raw_tensor, priority_flag=0)
参数说明
- raw_tensor:输入tensor,tvm.tensor类型。
- priority_flag:优先级标记,scalar类型。
- 1表示精度优先:精度优先时,由于计算过程复杂,性能会有所下降。
- 0表示性能优先:性能优先时,精度会有所下降。
默认值为0。
返回值
res_tensor:表示raw_tensor取平方根倒数,tvm.tensor类型。
调用示例
shape = (1024,1024) input_dtype = "float 16" data = tvm.placeholder(shape, name="data", dtype=input_dtype) res = te.lang.cce.vrsqrt(data)
vaxpy
功能说明
将lhs中每个元素乘上标量scalar,再加上rhs中的对应元素。
您可以在ATC安装目录下的“python/site-packages/te/lang/cce/te_compute/elewise_compute.py”查看接口定义。
约束说明
- lhs和rhs tensor的数据类型要求一致,shape一致。
- scalar的数据类型如果跟tensor不一致,会被转换成tensor的数据类型。
昇腾310 AI处理器:支持的数据类型有float16、float32
函数原型
te.lang.cce.vaxpy(lhs, rhs, scalar)
参数说明
- lhs:左tensor,tvm.tensor类型。
- rhs:右tensor,tvm.tensor类型。
- scalar:lhs中元素要乘的系数,标量类型。
返回值
res_tensor:表示lhs * scalar + rhs,tvm.tensor类型。
调用示例
shape = (1024,1024) input_dtype = "float16" data1 = tvm.placeholder(shape, name="data1", dtype=input_dtype) data2 = tvm.placeholder(shape, name="data2", dtype=input_dtype) scalar = tvm.const(2, dtype =input_dtype) res = te.lang.cce.vaxpy(data1, data2, scalar)
vmla
功能说明
将tensor_0中每个元素乘上tensor_1中的对应元素,再加上tensor_2中的对应元素,对应的计算为tensor_0 * tensor_1 + tensor_2。
您可以在ATC安装目录下的“python/site-packages/te/lang/cce/te_compute/elewise_compute.py”查看接口定义。
约束说明
三个tensor的数据类型要求一致,shape需相同。
昇腾310 AI处理器:支持的数据类型有float16、float32
函数原型
te.lang.cce.vmla(tensor_0, tensor_1, tensor_2)
参数说明
- tensor_0:tensor,tvm.tensor类型。
- tensor_1:tensor,tvm.tensor类型。
- tensor_2:tensor,tvm.tensor类型。
返回值
res_tensor:表示tensor_0 * tensor_1 + tensor_2,tvm.tensor类型。
调用示例
shape = (1024,1024) input_dtype = "float16" data1 = tvm.placeholder(shape, name="data1", dtype=input_dtype) data2 = tvm.placeholder(shape, name="data2", dtype=input_dtype) data3 = tvm.placeholder(shape, name="data3", dtype=input_dtype) res = te.lang.cce.vmla(data1, data2, data3)
vmadd
功能说明
将tensor_0中每个元素乘上tensor_2中的对应元素,再加上tensor_1中的对应元素,对应的计算为tensor_0 * tensor_2 + tensor_1。
您可以在ATC安装目录下的“python/site-packages/te/lang/cce/te_compute/elewise_compute.py”查看接口定义。
约束说明
三个tensor的数据类型要求一致,shape需相同。
昇腾310 AI处理器:支持的数据类型有float16、float32
函数原型
te.lang.cce.vmadd(tensor_0, tensor_1, tensor_2)
参数说明
- tensor_0:tensor,tvm.tensor类型。
- tensor_1:tensor,tvm.tensor类型。
- tensor_2:tensor,tvm.tensor类型。
返回值
res_tensor:表示tensor_0 * tensor_2 + tensor_1,tvm.tensor类型。
调用示例
shape = (1024,1024) input_dtype = "float16" data1 = tvm.placeholder(shape, name="data1", dtype=input_dtype) data2 = tvm.placeholder(shape, name="data2", dtype=input_dtype) data3 = tvm.placeholder(shape, name="data3", dtype=input_dtype) res = te.lang.cce.vmadd(data1, data2, data3)
vmaddrelu
功能说明
将tensor_0中每个元素乘上tensor_2中的对应元素,再加上tensor_1中的对应元素,然后做线性整流,对应的计算为relu(tensor_0 * tensor_2 + tensor_1)。
您可以在ATC安装目录下的“python/site-packages/te/lang/cce/te_compute/elewise_compute.py”查看接口定义。
约束说明
三个tensor的数据类型要求一致。
昇腾310 AI处理器:支持的数据类型有float16、float32
函数原型
te.lang.cce.vmaddrelu(tensor_0, tensor_1, tensor_2)
参数说明
- tensor_0:tensor,tvm.tensor类型。
- tensor_1:tensor,tvm.tensor类型。
- tensor_2:tensor,tvm.tensor类型。
返回值
res_tensor:结果tensor,tvm.tensor类型。
调用示例
shape = (1024,1024) input_dtype = "float16" data1 = tvm.placeholder(shape, name="data1", dtype=input_dtype) data2 = tvm.placeholder(shape, name="data2", dtype=input_dtype) data3 = tvm.placeholder(shape, name="data3", dtype=input_dtype) res = te.lang.cce.vmaddrelu(data1, data2, data3)
vlrelu
功能说明
对tensor中每个元素做leaky relu的计算,当元素大于等于0则结果是其本身,否则要乘上一个常量alpha。
您可以在ATC安装目录下的“python/site-packages/te/lang/cce/te_compute/elewise_compute.py”查看接口定义。
约束说明
三个tensor的数据类型要求一致。
昇腾310 AI处理器:支持的数据类型有float16、float32、int32
函数原型
te.lang.cce.vlrelu(raw_tensor, alpha=0)
参数说明
- raw_tensor:输入tensor,tvm.tensor类型。
- alpha:输入scalar。
返回值
res_tensor:结果tensor,tvm.tensor类型。
调用示例
shape = (1024,1024) input_dtype = "float16" data = tvm.placeholder(shape, name="data", dtype=input_dtype) res = te.lang.cce.vlrelu(data, alpha=0.01)
vaddrelu
功能说明
将tensor_0中每个元素加上tensor_1中的对应元素,然后做线性整流,对应的计算为relu(tensor_0 + tensor_1)。
您可以在ATC安装目录下的“python/site-packages/te/lang/cce/te_compute/elewise_compute.py”查看接口定义。
约束说明
三个tensor的数据类型要求一致。
昇腾310 AI处理器:支持的数据类型有float16
函数原型
te.lang.cce.vaddrelu(lhs, rhs)
参数说明
- lhs:输入tensor,tvm.tensor类型。
- rhs:输入tensor,tvm.tensor类型。
返回值
res_tensor:表示relu(lhs+rhs),tvm.tensor类型。
调用示例
shape = (1024,1024) input_dtype = "float16" data = tvm.placeholder(shape, name="data", dtype=input_dtype) data1 = tvm.placeholder(shape, name="data1", dtype=input_dtype) res = te.lang.cce.vaddrelu(data, data1)
vsubrelu
功能说明
将tensor_0中每个元素减tensor_1中的对应元素,然后做线性整流,对应的计算为relu(tensor_0 - tensor_1)。
您可以在ATC安装目录下的“python/site-packages/te/lang/cce/te_compute/elewise_compute.py”查看接口定义。
约束说明
三个tensor的数据类型要求一致。
昇腾310 AI处理器:支持的数据类型有float16
函数原型
te.lang.cce.vsubrelu(lhs, rhs)
参数说明
- lhs:输入tensor,tvm.tensor类型。
- rhs:输入tensor,tvm.tensor类型。
返回值
res_tensor:表示relu(lhs-rhs),tvm.tensor类型。
调用示例
shape = (1024,1024) input_dtype = "float16" data = tvm.placeholder(shape, name="data", dtype=input_dtype) data1 = tvm.placeholder(shape, name="data1", dtype=input_dtype) res = te.lang.cce.vsubrelu(data, data1)