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/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)
