autotune
功能说明
遍历搜索空间,尝试不同参数组合,展示每个组合的运行耗时与最优组合。
函数原型
def autotune(configs: List[Dict], warmup: int = 300, repeat: int = 1, device_ids = [0]):
参数说明
参数名  | 
输入/输出  | 
说明  | 
|---|---|---|
configs  | 
输入  | 
搜索空间定义。 数据类型:list[dict]。 必选参数。  说明:  
configs数量需小于等于16。  | 
warmup  | 
输入  | 
采集性能前的设备预热时间。通常情况下,预热时间越长,采集到的算子性能越稳定。 单位:微秒。 可选参数,默认值:1000,取值范围为1~100000之间的整数。  | 
repeat  | 
输入  | 
重放次数,会根据多次重放取运行耗时的平均值作为算子耗时。 可选参数,默认值:1,取值范围为1~10000之间的整数。  | 
device_ids  | 
输入  | 
Device ID列表,目前仅支持单Device模式,如果填写多个Device ID,只有第一个会生效。 可选参数,默认值:[0]。  | 
返回值说明
无。
调用示例
@mskpp.autotune(configs=[
    {'L1TileShape': 'MatmulShape<64, 64, 64>', 'L0TileShape': 'MatmulShape<128, 256, 64>'},
    {'L1TileShape': 'MatmulShape<64, 64, 128>', 'L0TileShape': 'MatmulShape<128, 256, 64>'},
    {'L1TileShape': 'MatmulShape<64, 128, 128>', 'L0TileShape': 'MatmulShape<128, 256, 64>'},
    {'L1TileShape': 'MatmulShape<64, 128, 128>', 'L0TileShape': 'MatmulShape<64, 256, 64>'},
    {'L1TileShape': 'MatmulShape<128, 128, 128>', 'L0TileShape': 'MatmulShape<128, 256, 64>'},
], warmup=500, repeat=10, device_ids=[0])
def basic_matmul(problem_shape, a, layout_a, b, layout_b, c, layout_c):
    kernel = get_kernel()
    blockdim = 20
    return kernel[blockdim](problem_shape, a, layout_a, b, layout_b, c, layout_c)
父主题: 接口列表