(model_name_2_all, eps, target_arch, target_host, env, mdl_str, user_input_dir, enable_fp16, enable_aarch32_dot, enable_aarch64_i8mm)
| 211 | |
| 212 | |
| 213 | def auto_check(model_name_2_all, eps, target_arch, target_host, env, mdl_str, user_input_dir, enable_fp16, enable_aarch32_dot, enable_aarch64_i8mm): |
| 214 | build_script = env["build_script"] |
| 215 | mgb_runner_path = env["mgb_runner_path"] |
| 216 | mgb_to_tinynn_path = env["mgb_to_tinynn_path"] |
| 217 | model_dir = env["model_dir"] |
| 218 | kern_dir = env["kern_dir"] |
| 219 | build_dir = env["build_dir"] |
| 220 | model_info_dir = env["model_info_dir"] |
| 221 | work_dir = os.path.join(os.path.curdir, "megcc_check_workdir") |
| 222 | if os.path.exists(work_dir): |
| 223 | shutil.rmtree(work_dir) |
| 224 | os.mkdir(work_dir) |
| 225 | tinynn_test_lite_path = os.path.join(build_dir, "tinynn_test_lite") |
| 226 | if not os.path.exists(build_dir): |
| 227 | print("build not exit!!") |
| 228 | os.mkdir(build_dir) |
| 229 | build_runtime_cmd = [ |
| 230 | build_script, |
| 231 | "--cross_build", |
| 232 | "--remove_old_build", |
| 233 | "--kernel_dir", |
| 234 | kern_dir, |
| 235 | "--cross_build_target_arch", |
| 236 | target_arch, |
| 237 | "--specify_build_dir", |
| 238 | build_dir, |
| 239 | ] |
| 240 | if enable_fp16: |
| 241 | build_runtime_cmd.append("--enable_fp16") |
| 242 | if enable_aarch32_dot: |
| 243 | build_runtime_cmd.append("--enable_aarch32_dot") |
| 244 | if enable_aarch64_i8mm: |
| 245 | build_runtime_cmd.append("--enable_aarch64_i8mm") |
| 246 | subprocess.run(build_runtime_cmd) |
| 247 | |
| 248 | for model_file in os.listdir(model_dir): |
| 249 | if model_file.endswith(".tiny"): |
| 250 | model_name = model_file[:-5] |
| 251 | if model_name_2_all and model_name not in model_name_2_all.keys(): |
| 252 | continue |
| 253 | model_path = os.path.join(model_dir, model_file) |
| 254 | model_info_path = os.path.join(model_info_dir, model_file + ".txt") |
| 255 | assert os.path.exists(model_info_path) |
| 256 | model_infos = read_json(model_info_path) |
| 257 | input_dir = None |
| 258 | if user_input_dir is None: |
| 259 | input_dir = os.path.join(work_dir, model_name + "_input") |
| 260 | os.mkdir(input_dir) |
| 261 | is_user_input_dir = False |
| 262 | else: |
| 263 | input_dir = user_input_dir |
| 264 | is_user_input_dir = True |
| 265 | assert os.path.exists(user_input_dir), "Specified input directory {} DO NOT exist".format( |
| 266 | user_input_dir) |
| 267 | assert input_dir |
| 268 | local_run_dir = os.path.join(work_dir, model_name + "_rundir") |
| 269 | os.mkdir(local_run_dir) |
| 270 | ( |
no test coverage detected