mskpp.get_kernel_from_binary
功能说明
生成一个可以调用用户Kernel函数的实例。
 - 需要保证调用get_kernel_from_binary的函数的入参和调用Kernel时的入参一致。
 - 调用get_kernel_from_binary函数时,会在当前目录生成_mskpp_gen_binary_launch.cpp和_mskpp_gen_binary_module.so文件,该文件仅用于开发问题定位,用户无需关注。
 
函数原型
def get_kernel_from_binary(kernel_binary_file: str, kernel_type: str = None, tiling_key: int = None) -> CompiledKernel
参数说明
参数名  | 
输入/输出  | 
说明  | 
|---|---|---|
kernel_binary_file  | 
输入  | 
算子kernel.o路径,可以在工程目录下执行find . -name '*.o'命令进行查找。 数据类型:str。 必选参数。  | 
kernel_type  | 
输入  | 
算子类型。可设置为vec、cube或mix。 若不配置该参数,msKPP工具可能会获取失败。因此,建议手动赋值。 数据类型:str。 可选参数。  | 
tiling_key  | 
输入  | 
调用用户Kernel函数时使用的tiling_key。若不配置该参数,msKPP工具将会使用最近一次调用mskpp.tiling_func的结果。 数据类型:int。 可选参数。  | 
返回值说明
可运行的Kernel对象。
参数名  | 
输入/输出  | 
说明  | 
|---|---|---|
device_id  | 
输入  | 
NPU设备ID,设置运行ST测试用例的昇腾AI处理器的ID。 数据类型:int。 若未设置此参数,默认为0。  | 
timeout  | 
输入  | 
camodel仿真场景需要默认设置较长超时时间,设置为-1时表示不限制。 数据类型:int。 单位: ms,默认值为300000。  | 
repeat  | 
输入  | 
重复运行次数,默认值为1。 数据类型:int。  | 
stream  | 
输入  | 
预留参数。  | 
kernel_name  | 
输入  | 
预留参数。  | 
 Kernel对象类型为CompiledKernel,支持如下方式调用kernel:kernel[blockdim](arg1, arg2, ..., timeout=-1, device_id=0, repeat=1)。
调用示例
- 示例一:
def run_kernel(input_a, input_b, input_bias, output, workspace, tiling_data): kernel_binary_file = "MatmulLeakyreluCustom.o" #不同的硬件和操作系统展示的.o文件的名称稍有不同 kernel = mskpp.get_kernel_from_binary(kernel_binary_file) return kernel(input_a, input_b, input_bias, output, workspace, tiling_data) - 示例二:
def run_kernel(input_a, input_b, input_bias, output, workspace, tiling_data, tiling_key, blockdim): kernel_binary_file = "MatmulLeakyreluCustom.o" #不同的硬件和操作系统展示的.o文件的名称稍有不同 kernel = mskpp.get_kernel_from_binary(kernel_binary_file, kernel_type='mix', tiling_key=tiling_key) return kernel[blockdim](input_a, input_b, input_bias, output, workspace, tiling_data, device_id=1, timeout=-1) #运行仿真时,需要手动将timeout参数设置为-1 
父主题: 接口列表