def build_campipe(app_data): pipe_data = app_data['pipe_data'] # construct the camera pipeline out_campipe = camera_pipe(pipe_data) R = pipe_data['R'] C = pipe_data['C'] live_outs = [out_campipe] pipe_name = app_data['app'] p_estimates = [(R, app_data['rows']), (C, app_data['cols'])] p_constraints = [ Condition(R, "==", app_data['rows']), \ Condition(C, "==", app_data['cols']) ] t_size = [64, 256] g_size = 5 opts = [] if app_data['early_free']: opts += ['early_free'] if app_data['optimize_storage']: opts += ['optimize_storage'] if app_data['pool_alloc']: opts += ['pool_alloc'] pipe = buildPipeline(live_outs, param_estimates=p_estimates, param_constraints=p_constraints, tile_sizes=t_size, group_size=g_size, options=opts, pipe_name=pipe_name) return pipe
def build_campipe(app_data): pipe_data = app_data['pipe_data'] # construct the camera pipeline out_campipe = camera_pipe(pipe_data) R = pipe_data['R'] C = pipe_data['C'] live_outs = [out_campipe] pipe_name = app_data['app'] p_estimates = [(R, app_data['rows']), (C, app_data['cols'])] p_constraints = [ Condition(R, "==", app_data['rows']), \ Condition(C, "==", app_data['cols']) ] t_size = [64, 256] g_size = 5 opts = [] if app_data['early_free']: opts += ['early_free'] if app_data['optimize_storage']: opts += ['optimize_storage'] if app_data['pool_alloc']: opts += ['pool_alloc'] pipe = buildPipeline(live_outs, param_estimates=p_estimates, param_constraints=p_constraints, tile_sizes = t_size, group_size = g_size, options = opts, pipe_name = pipe_name) return pipe
def build_campipe(app_data, g_size=None, t_size=None): pipe_data = app_data['pipe_data'] # construct the camera pipeline out_campipe, to_inline = camera_pipe(pipe_data) R = pipe_data['R'] C = pipe_data['C'] live_outs = [out_campipe] pipe_name = app_data['app'] p_estimates = [(R, app_data['rows']), (C, app_data['cols'])] p_constraints = [ Condition(R, "==", app_data['rows']), \ Condition(C, "==", app_data['cols']) ] if (t_size == None): t_size = [64, 256] if (g_size == None): g_size = 5 opts = [] if app_data['early_free']: opts += ['early_free'] if app_data['optimize_storage']: opts += ['optimize_storage'] if app_data['pool_alloc']: opts += ['pool_alloc'] if app_data['inline']: opts += ['inline'] if app_data['multi-level-tiling']: opts += ['multi-level-tiling'] if app_data['dpfuse']: opts += ['dpfuse'] if app_data['logdpchoices']: opts += ['logdpchoices'] if app_data['logmaxchildren']: logmaxchildren = app_data['logmaxchildren'] pipe = buildPipeline(live_outs, param_estimates=p_estimates, param_constraints=p_constraints, tile_sizes=t_size, group_size=g_size, options=opts, pipe_name=pipe_name, logMaxChildren=logmaxchildren) return pipe
def auto_tune(app_data): pipe_data = app_data['pipe_data'] app_name = app_data['app'] pipe_name = app_data['app'] out_campipe, iniline_fn = camera_pipe(pipe_data) live_outs = [out_campipe] R = pipe_data['R'] C = pipe_data['C'] rows = app_data['rows'] cols = app_data['cols'] param_estimates = [(R, rows), (C, cols)] param_constraints = [ Condition(R, "==", rows), \ Condition(C, "==", cols) ] dst_path = "/tmp" group_size_configs = [4, 8, 12, 16, 100] tile_size_configs = [] tile_size_configs.append([64, 256]) tile_size_configs.append([64, 128]) tile_size_configs.append([32, 512]) tile_size_configs.append([32, 256]) tile_size_configs.append([32, 128]) tile_size_configs.append([32, 64]) tile_size_configs.append([16, 512]) tile_size_configs.append([16, 256]) tile_size_configs.append([16, 128]) tile_size_configs.append([16, 64]) tile_size_configs.append([8, 512]) tile_size_configs.append([8, 256]) tile_size_configs.append([8, 128]) tile_size_configs.append([8, 64]) tile_size_configs.append([8, 32]) # relative path to root directory from app dir ROOT = app_data['ROOT'] opts = [] if app_data['early_free']: opts += ['early_free'] if app_data['optimize_storage']: opts += ['optimize_storage'] if app_data['pool_alloc']: opts += ['pool_alloc'] gen_compile_string(app_data) cxx_string = app_data['cxx_string'] # Generate Variants for Tuning # ============================ gen_config = { "_tuner_app_name": app_name, "_tuner_pipe_name": pipe_name, # optional "_tuner_live_outs": live_outs, "_tuner_param_constraints": param_constraints, #optional "_tuner_param_estimates": param_estimates, #optional "_tuner_tile_size_configs": tile_size_configs, #optional "_tuner_group_size_configs": group_size_configs, #optional "_tuner_opts": opts, #optional "_tuner_dst_path": dst_path, # optional "_tuner_cxx_string": cxx_string, # optional "_tuner_root_path": ROOT, # needed if pool_alloc is set "_tuner_debug_flag": True, # optional "_tuner_opt_datadict": app_data } _tuner_src_path, _tuner_configs_count, _tuner_pipe = \ tuner.generate(gen_config) ''' _tuner_src_path = '/tmp/PolyEzSz1jRLRPMage/' _tuner_configs_count = 75 _tuner_pipe = buildPipeline(live_outs) ''' img_data = app_data['img_data'] IN = img_data['IN'] OUT = img_data['OUT'] M3200 = img_data['M3200'] M7000 = img_data['M7000'] app_args = app_data['app_args'] colour_temp = float(app_args.colour_temp) contrast = float(app_args.contrast) gamma = float(app_args.gamma) pipe_args = {} pipe_args['R'] = rows pipe_args['C'] = cols pipe_args['colour_temp'] = colour_temp pipe_args['contrast'] = contrast pipe_args['gamma'] = gamma pipe_args['matrix_3200'] = M3200 pipe_args['matrix_7000'] = M7000 pipe_args['img'] = IN pipe_args['process'] = OUT # Execute the generated variants # ============================== exec_config = { "_tuner_app_name": app_name, "_tuner_pipe_name": pipe_name, # optional "_tuner_pipe": _tuner_pipe, "_tuner_pipe_arg_data": pipe_args, "_tuner_src_path": _tuner_src_path, # optional "_tuner_configs_count": _tuner_configs_count, # optional "_tuner_omp_threads": 4, # optional "_tuner_nruns": 1, # optional "_tuner_debug_flag": True, # optional #"_tuner_custom_executor": minimal_exec_mg, "_tuner_app_data": app_data } tuner.execute(exec_config)
def auto_tune(app_data): pipe_data = app_data['pipe_data'] app_name = app_data['app'] pipe_name = app_data['app'] out_campipe = camera_pipe(pipe_data) live_outs = [out_campipe] R = pipe_data['R'] C = pipe_data['C'] rows = app_data['rows'] cols = app_data['cols'] param_estimates = [(R, rows), (C, cols)] param_constraints = [ Condition(R, "==", rows), \ Condition(C, "==", cols) ] dst_path = "/tmp" group_size_configs = [4, 8, 12, 16, 100] tile_size_configs = [] tile_size_configs.append([64, 256]) tile_size_configs.append([64, 128]) tile_size_configs.append([32, 512]) tile_size_configs.append([32, 256]) tile_size_configs.append([32, 128]) tile_size_configs.append([32, 64]) tile_size_configs.append([16, 512]) tile_size_configs.append([16, 256]) tile_size_configs.append([16, 128]) tile_size_configs.append([16, 64]) tile_size_configs.append([8, 512]) tile_size_configs.append([8, 256]) tile_size_configs.append([8, 128]) tile_size_configs.append([8, 64]) tile_size_configs.append([8, 32]) # relative path to root directory from app dir ROOT = app_data['ROOT'] opts = [] if app_data['early_free']: opts += ['early_free'] if app_data['optimize_storage']: opts += ['optimize_storage'] if app_data['pool_alloc']: opts += ['pool_alloc'] gen_compile_string(app_data) cxx_string = app_data['cxx_string'] # Generate Variants for Tuning # ============================ gen_config = {"_tuner_app_name": app_name, "_tuner_pipe_name": pipe_name, # optional "_tuner_live_outs": live_outs, "_tuner_param_constraints": param_constraints, #optional "_tuner_param_estimates": param_estimates, #optional "_tuner_tile_size_configs": tile_size_configs, #optional "_tuner_group_size_configs": group_size_configs, #optional "_tuner_opts": opts, #optional "_tuner_dst_path" : dst_path, # optional "_tuner_cxx_string" : cxx_string, # optional "_tuner_root_path" : ROOT, # needed if pool_alloc is set "_tuner_debug_flag": True, # optional "_tuner_opt_datadict": app_data } _tuner_src_path, _tuner_configs_count, _tuner_pipe = \ tuner.generate(gen_config) ''' _tuner_src_path = '/tmp/PolyEzSz1jRLRPMage/' _tuner_configs_count = 75 _tuner_pipe = buildPipeline(live_outs) ''' img_data = app_data['img_data'] IN = img_data['IN'] OUT = img_data['OUT'] M3200 = img_data['M3200'] M7000 = img_data['M7000'] app_args = app_data['app_args'] colour_temp = float(app_args.colour_temp) contrast = float(app_args.contrast) gamma = float(app_args.gamma) pipe_args = {} pipe_args['R'] = rows pipe_args['C'] = cols pipe_args['colour_temp'] = colour_temp pipe_args['contrast'] = contrast pipe_args['gamma'] = gamma pipe_args['matrix_3200'] = M3200 pipe_args['matrix_7000'] = M7000 pipe_args['img'] = IN pipe_args['process'] = OUT # Execute the generated variants # ============================== exec_config = {"_tuner_app_name": app_name, "_tuner_pipe_name": pipe_name, # optional "_tuner_pipe": _tuner_pipe, "_tuner_pipe_arg_data": pipe_args, "_tuner_src_path": _tuner_src_path, # optional "_tuner_configs_count": _tuner_configs_count, # optional "_tuner_omp_threads": 4, # optional "_tuner_nruns": 1, # optional "_tuner_debug_flag": True, # optional #"_tuner_custom_executor": minimal_exec_mg, "_tuner_app_data": app_data } tuner.execute(exec_config)