MCPcopy Create free account
hub / github.com/MegEngine/MegCC / auto_check

Function auto_check

script/test_model.py:213–342  ·  view source on GitHub ↗
(model_name_2_all, eps, target_arch, target_host, env, mdl_str, user_input_dir, enable_fp16, enable_aarch32_dot, enable_aarch64_i8mm)

Source from the content-addressed store, hash-verified

211
212
213def 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 (

Callers 1

mainFunction · 0.85

Calls 9

read_jsonFunction · 0.85
parse_model_infoFunction · 0.85
gen_inputFunction · 0.85
target_callFunction · 0.85
copy2targetFunction · 0.85
copyftargetFunction · 0.85
local_callFunction · 0.85
compare_file_or_dirFunction · 0.85
runMethod · 0.80

Tested by

no test coverage detected