コード例 #1
0
ファイル: builder.py プロジェクト: sirius93123/polymage
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
コード例 #2
0
ファイル: builder.py プロジェクト: bollu/polymage
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
コード例 #3
0
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
コード例 #4
0
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)
コード例 #5
0
ファイル: app_tuner.py プロジェクト: bollu/polymage
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)