更新时间:2021-03-18 GMT+08:00
分享

InputScalar

功能说明

定义InputScalar变量。InputScalar只作为BuildCCE的inputs参数,用于支持int,uint,float基本数据类型作为参数传入。

函数原型

InputScalar(dtype="int64", name="input_scalar")

参数说明

表1 参数说明

参数名称

输入/输出

含义

dtype

输入

指定InputScalar对象的数据类型,取值:

int8,uint8,int16,uint16,int32,uint32,int64, uint64,float16,float32

默认值:int64

name

输入

InputScalar名字,支持string类型。名字支持数字0-9,A-Z,a-z及下划线组成的字符串。

默认值:input_scalar,请每次进行命名以确保InputScalar没有重名。

注意事项

  1. 目前InputScalar可用于支持某变量支持Expr的场景使用。
        如在vec_abs中的repeat_times可支持使用Expr,则可写代码如下:
        from te import tik
        tik_instance = tik.Tik()
        data_A = tik_instance.Tensor("float16", (128,), name="data_A", scope=tik.scope_gm)
        data_B = tik_instance.Tensor("float16", (128,), name="data_B", scope=tik.scope_gm)
        src_ub = tik_instance.Tensor("float16", (128,), name="src_ub", scope=tik.scope_ubuf)
        dst_ub = tik_instance.Tensor("float16", (128,), name="dst_ub", scope=tik.scope_ubuf)
        inputscalar = tik_instance.InputScalar(dtype="int16", name="inputscalar")
        tik_instance.vec_abs(128, dst_ub, src_ub, inputscalar, 8, 8)
        tik_instance.BuildCCE(kernel_name="simple_add",inputs=[data_A,data_B,inputscalar],outputs=[])
  2. 请确保InputScalar中命名无重名。

调用示例

from te import tik
tik_instance = tik.Tik()
data_A = tik_instance.Tensor("float16", (128,), name="data_A", scope=tik.scope_gm)
data_B = tik_instance.Tensor("float16", (128,), name="data_B", scope=tik.scope_gm)
abc = tik_instance.InputScalar(dtype="int16", name="abc")
src_ub = tik_instance.Tensor("float16", (128,), name="src_ub", scope=tik.scope_ubuf)
dst_ub = tik_instance.Tensor("float16", (128,), name="dst_ub", scope=tik.scope_ubuf)
tik_instance.vec_abs(128, dst_ub, src_ub, abc, 8, 8)
tik_instance.BuildCCE(kernel_name="simple_add",inputs=[data_A,data_B,abc],outputs=[])
分享:

    相关文档

    相关产品

close