用途:指导使用 AISS-TilingSolver CLI 为 Ascend C 算子自动求解最优 tiling 参数,不手动计算或给出通用 GPU tiling 建议,只负责正确调用工具并解读输出。
获取与要求:从 gitcode.com/HIT1920/TilingSolver 的 latest 发布下载 tiling_solver 与 platform_info(aarch64/x86_64 两种架构),重命名后执行 chmod +x tiling_solver platform_info。环境需 aarch64 或 x86_64 架构,glibc ≥ 2.38。
使用流程:先运行 ./platform_info 采集核心数、各级缓存与带宽等硬件参数;将硬件参数、算子形状与数据类型填入输入 JSON;再运行 ./tiling_solver input.json,输出 JSON 形式的最优 tiling 参数。
算子类型:MatMul 需填 type、M、N、K,可选 a_dtype、b_dtype、c_dtype、has_bias、各级缓存与带宽等参数;输出含 base_m/base_n/base_k、single_core_m/single_core_n、step_ka/step_kb、depth_a1/depth_b1、db_l0a/db_l0b/db_l0c、iterate_order、solve_time_ms、status。Vector 需填 type、total_length,输出 block_dim、tile_num、buf_num、tile_length 等。
可选参数:optimize 默认 true,是否用 cost model 搜索最优解;timeout_ms 默认 10000,为 Z3 求解超时时间。支持 float16/float32/bfloat16 与多种整型、bool 及对应别名。
限制与排错:status 为 ok 表示可直接应用,unsat 表示当前 shape/dtype 无可行解,timeout 可增大 timeout_ms 或关闭 optimize,error 为输入非法或内部异常;二进制架构错误用 uname -m 确认,glibc 过旧需升级或使用容器。未提供算子类型和维度时应先询问用户。