文档
注册
评分
提单
论坛
小AI

build

功能说明

对schedule对象进行编译生成算子二进制文件与算子描述文件。

函数原型

build(sch, config_map=None)

参数说明

  • sch:计算schedule对象。
  • config_map:build的参数配置,是一个字典,默认是None,则直接使用默认配置,包含如下key。
    • print_ir:是否打印lower IR code,默认值:False。
    • need_build:是否进行build,默认是True。
    • name:算子的名字,默认是`cce_op`。

      只能是大小写字母、数字、“_”的组合,且必须是字母或者“_”开头,长度小于或等于200个字符。

    • tensor_list:算子的输入和输出tensor列表,输入是placeholder接口返回的tensor对象,输出是经过计算后的tensor对象,必填值,否则会报错。而且这个列表决定了生成算子的kernel函数的参数的顺序,和此list中的输入和输出的顺序是一致的。
    • bool_storage_as_1bit:Bool类型存储时是否按照1 bit存储。
      • True:按照1bit存储。
      • False:按照8bit存储。

      默认值是True。

    • kernel_meta_parent_dir:设置算子编译过程中存储调试文件的“kernel_meta”文件夹的父路径。其中调试过程文件包括算子.o(算子二进制文件)、.json(算子描述文件)、.cce等文件。

      取值:数据类型为string,配置为执行编译命令所在路径的相对路径。

      默认值为“.”,即调试过程文件存储在执行编译命令当前路径的./kernel_meta文件夹中。

    • tbe_debug_level:debug等级设置。
      有以下几种取值:
      • 0:不开启debug功能,仅在kernel_meta文件夹中生成.o(算子二进制文件)和.json文件(算子描述文件)。
      • 1:单算子调试时,开启算子debug功能,AI Core指令串行执行,会导致执行性能下降,并在kernel_meta文件夹中生成TBE指令映射文件(算子cce文件*.cce、python-cce映射文件*_loc.json、.o和.json文件)。
      • 2:单算子调试时,开启算子debug功能,AI Core指令串行执行,会导致执行性能下降,并在kernel_meta文件夹中生成TBE指令映射文件(算子cce文件*.cce、python-cce映射文件*_loc.json、.o和.json文件),并关闭CCEC编译器的编译优化开关且打开CCEC调试功能(CCEC编译器选项设置为-O0-g)。

      默认值为“0”。

      • 若执行ATC模型转换或者执行训练脚本时配置了“op_debug_level”参数,则以“op_debug_level”参数的值为准。
      • 配置为2,即开启ccec调试功能的场景下,会增大算子Kernel(*.o文件)的大小。动态shape场景下,由于算子编译时会遍历可能存在的所有场景,最终可能会导致由于算子Kernel文件过大而无法进行编译的情况,此种场景下,建议不要配置为2。

        由于算子kernel文件过大而无法编译的日志显示如下:

        message:link error ld.lld: error: InputSection too large for range extension thunk ./kernel_meta_xxxxx.o:(xxxx)

返回值

无。

支持的型号

Atlas 200/300/500 推理产品

Atlas 训练系列产品

Atlas 推理系列产品(Ascend 310P处理器)

Atlas 200/500 A2推理产品

Atlas A2训练系列产品/Atlas 800I A2推理产品

调用示例

from tbe import tvm
from tbe import dsl

# 定义输入占位符
data = tvm.placeholder(shape, name="data", dtype=dtype)
with tvm.target.cce():
    # 描述算子计算过程
    res = tbe.vabs(data)
    # 生成schedule对象
    sch = dsl.auto_schedule(res)
# 定义build配置参数
config = {"print_ir" : True,
        "need_build" : True,
        "name" : "abs_28_28_float16",
        "tensor_list" : [data,res]
    }
# build算子
dsl.build(sch, config)
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词