对schedule对象进行编译生成算子二进制文件与算子描述文件。
函数原型
build(sch, config_map=None)
参数说明
- sch:计算schedule对象。
- config_map:build的参数配置,是一个字典,默认是None,则直接使用默认配置,包含如下key。
- print_ir:是否打印lower IR code,默认是True。
- 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”参数的值为准。
支持的芯片型号
Atlas 200/300/500 推理产品
Atlas 训练系列产品
调用示例
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)