def test_threads(self): import sys sys.path.append("..") from utils.device import get_adb_devices config = dict() config["benchmark_platform"] = ["android-armv7", "android-armv8"] config["model_names"] = ["caffe_mobilenetv1", "caffe_mobilenetv2"] config["support_backend"] = ["ARM"] device_serials = list(map(lambda t: t, get_adb_devices())) logger.info(device_serials) device_threads = dict() for didx in range(len(device_serials)): thread_idx = didx ser = device_serials[didx] logger.info("didx(from1):{}/{}".format(didx, len(device_serials))) device_threads[ser] = MyThread( func=run_bench_for_test, func_args_tuple=(config, ser, thread_idx), device_serial=ser, thread_idx=thread_idx, ) assert len(device_serials) == len(device_threads) for didx in range(len(device_threads)): ser = device_serials[didx] device_threads[ser].start() for didx in range(len(device_threads)): ser = device_serials[didx] device_threads[ser].join() bench_dict = dict() for didx in range(len(device_serials)): ser = device_serials[didx] t = device_threads[ser] t_bench_dict = t.get_result() bench_dict[ser] = t_bench_dict[ser] return bench_dict
def prepare_devices(self): logger.info("==== {} ====".format(self.prepare_devices.__name__)) device_status_dict = get_adb_devices(True) serial_num_list = list(device_status_dict.keys()) logger.debug(serial_num_list) device_dict = dict() for sidx in range(len(serial_num_list)): ser = serial_num_list[sidx] device_status = device_status_dict[ser] if device_status != "device": logger.info("device {} status is {}, skipped".format( # noqa ser, device_status) # noqa ) continue device_dict[ser] = dict() device_dict[ser]["status"] = device_status device_dict[ser]["cpu_max_freqs"] = get_cpu_max_freqs(ser) # noqa cpu_max_freqs = get_cpu_max_freqs(ser) cpu_valid_freqs = list( filter(lambda freq: freq is not None, cpu_max_freqs)) # noqa big_cores_idx = get_target_freq_idx(max(cpu_valid_freqs), ser, cpu_max_freqs) big_cores_idx_str = ",".join(big_cores_idx) little_cores_idx = get_target_freq_idx(min(cpu_valid_freqs), ser, cpu_max_freqs) little_cores_idx_str = ",".join(little_cores_idx) device_dict[ser]["big_cores_idx"] = big_cores_idx_str device_dict[ser]["little_cores_idx"] = little_cores_idx_str # noqa if self.config["power_mode"] == "big_cores": device_dict[ser]["bind_cpu_idx"] = big_cores_idx_str # noqa elif self.config["power_mode"] == "little_cores": device_dict[ser]["bind_cpu_idx"] = little_cores_idx_str # noqa elif self.config["power_mode"] == "no_bind": device_dict[ser]["bind_cpu_idx"] = ",".join( map(str, range(len(cpu_max_freqs)))) else: logger.info("Unsupported power_mode:{}".format( self.config["power_mode"]) # noqa ) exit(1) # battery level device_dict[ser]["battery_level"] = get_battery_level(ser) # noqa # system version device_dict[ser]["system_version"] = get_system_version( ser) # noqa # imie device_dict[ser]["imei"] = get_imei(ser) # noqa # ro.board.platform, ro.board.chiptype, ro.board.hardware device_dict[ser]["soc_code"] = get_soc_code(ser) # noqa # soc info device_dict[ser]["soc_info"] = get_soc_info_from_soc_code( device_dict[ser]["soc_code"]) # product device_dict[ser]["product"] = get_product(ser) # noqa logger.debug(device_dict) logger.info("len(device_dict):{}".format(len(device_dict))) return device_dict
def prepare_devices(self): logger.info("==== {} ====".format(self.prepare_devices.__name__)) device_status_dict = get_adb_devices(True) serial_num_list = list(device_status_dict.keys()) logger.debug(serial_num_list) device_dict = dict() for sidx in range(len(serial_num_list)): device_serial_num = serial_num_list[sidx] device_status = device_status_dict[device_serial_num] if device_status != "device": logger.info( "device {} status is {}, skipped".format( device_serial_num, device_status ) ) continue device_dict[device_serial_num] = dict() device_dict[device_serial_num]["status"] = device_status device_dict[device_serial_num]["cpu_max_freqs"] = get_cpu_max_freqs( # noqa device_serial_num ) cpu_max_freqs = get_cpu_max_freqs(device_serial_num) cpu_valid_freqs = list( filter(lambda freq: freq is not None, cpu_max_freqs) ) # noqa big_cores_idx = get_target_freq_idx( max(cpu_valid_freqs), device_serial_num, cpu_max_freqs ) big_cores_idx_str = ",".join(big_cores_idx) little_cores_idx = get_target_freq_idx( min(cpu_valid_freqs), device_serial_num, cpu_max_freqs ) little_cores_idx_str = ",".join(little_cores_idx) device_dict[device_serial_num]["big_cores_idx"] = big_cores_idx_str device_dict[device_serial_num][ "little_cores_idx" ] = little_cores_idx_str # noqa if self.config["power_mode"] == "big_cores": device_dict[device_serial_num][ "bind_cpu_idx" ] = big_cores_idx_str # noqa elif self.config["power_mode"] == "little_cores": device_dict[device_serial_num][ "bind_cpu_idx" ] = little_cores_idx_str # noqa elif self.config["power_mode"] == "no_bind": device_dict[device_serial_num]["bind_cpu_idx"] = ",".join( map(str, range(len(cpu_max_freqs))) ) else: logger.info( "Unsupported power_mode:{}".format( self.config["power_mode"] ) # noqa ) exit(1) # battery level device_dict[device_serial_num]["battery_level"] = get_battery_level( # noqa device_serial_num ) # system version device_dict[device_serial_num][ "system_version" ] = get_system_version( # noqa device_serial_num ) # imie device_dict[device_serial_num]["imei"] = get_imei(device_serial_num) # noqa # ro.board.platform, ro.board.chiptype, ro.board.hardware device_soc_cmd = ( "adb -s {} shell getprop |" " grep 'ro.board.platform'".format(device_serial_num) ) cmd_handls = run_cmds([device_soc_cmd]) soc = cmd_handls[device_soc_cmd][0] soc = soc.split(": ")[1].strip().replace("[", "").replace("]", "") # noqa device_dict[device_serial_num]["soc"] = soc logger.debug(soc) # product device_product_cmd = ( "adb -s {} shell getprop | " "grep 'ro.product.model'".format(device_serial_num) ) cmd_handle = run_cmd(device_product_cmd) product = cmd_handle[0] product = ( product.split(": ")[1].strip().replace("[", "").replace("]", "") # noqa ) # noqa device_dict[device_serial_num]["product"] = product logger.debug(product) logger.debug(device_dict) logger.info("len(device_dict):{}".format(len(device_dict))) return device_dict