" Input: { (host_os) - host OS (detect, if omitted) (target_os) - OS module to check (if omitted, analyze host) (device_id) - device id if remote (such as adb) (once) - if 'yes', run scenario once (useful for autotuning a given program) (iterations) - limit number of iterations, otherwise infinite (default=30) if -1, infinite (or until all choices are explored) (repetitions) - statistical repetitions of a given experiment (compiler_description_uoa) - force compiler description UOA (see module "compiler") (flag_tags) - extra flag tags (must have) (any_flag_tags) - extra flag tags (any of these) (quiet) - do not ask questions, but select random ... (skip_welcome) - if 'yes', do not print welcome header (skip_exchange) - if 'yes', do not exchange platform info (development mode) (user) - user email/ID to record solutions (attribute found good solutions) (local) - if 'yes', use local repo for exchange (local autotuning/benchmarking) (exchange_repo) - which repo to record/update info (remote-ck by default) (exchange_subrepo) - if remote, remote repo UOA (record_repo) - repo where to search/record local experiments ("local" by default, to avoid polluting other repos) (local_autotuning) - if 'yes', do not crowdtune, i.e. find local experiment and do not exchnage results (force_platform_name) - if !='', use this for platform name (scenario) - module UOA of crowdsourcing scenario (scenario_cfg) - cfg of a scenario (seed) - autotuning seed (program_tags) - force selection of programs by tags (program_uoa) - force program UOA (cmd_key) - CMD key (cmd_keys) - Select only from this list of available CMD keys (dataset_uoa) - dataset UOA (dataset_file) - dataset filename (if more than one inside one entry - suggest to have a UID in name) (extra_dataset_tags) - list of extra data set tags (useful to set "small" during mobile phone crowdtuning) (calibration_time) - change calibration time (deafult 10 sec.) (objective) - extension to flat characteristics (min,exp,mean,center) to tune on Pareto (default: min - to see what we can squeeze from a given architecture) (keep_tmp) - if 'yes', do not remove run batch (ask_pipeline_choices) - if 'yes', ask for each pipeline choice, otherwise random selection (platform_info) - detected platform info (experiment_meta) - meta when recording experiment (experiment_meta_extra) - extra meta such as platform UIDs (record_failed) - if 'yes', record even failed experiments (for debugging, buildbots, detecting designed architecture failures, etc) (record_only_failed) - if 'yes', record only failed experiments (useful to crowdsource experiments when searching only for compiler/program/architecture bugs (for example fuzzing via random compiler flags))... (record_uoa) - use this UOA to recrod experiments instead of randomly generated ones (solution_conditions) - list of conditions: ["first key", "extra key", "condition", value] (pause_if_fail) - if pipeline fails, ask to press Enter (useful to analyze which flags fail during compiler flag autotuning) (omit_probability) - probability to omit optimization (for example, compiler flags during exploration/crowdtuning) (parametric_flags) - if 'yes', also tune parametric flags (cpu_flags) - if 'yes', also tune cpu-specific flags (base_flags) - if 'yes', also tune base flag (compiler_env_uoa) - fix compiler environment (new) - if 'yes', do not search for existing experiment, but start new (solutions) - list of solutions (solutions_info) - info (repo_uoa, module_uoa, data_uoa) (solution_module_uoa) - if !='' use it to reuse shared optimization cases (solution_data_uoa) - force specific solution entry (solution_repo_uoa) - force repo where to search existing solutions (solution_remote_repo_uoa) - force sub-repo (if above repo is remote) (prune) - prune solution (find minimal choices that give the same result) (reduce) - the same as above (reduce_bug) - reduce choices to localize bug (pipeline fail) (prune_md5) - if 'yes', check if MD5 doesn't change (prune_invert) - prune all (turn off even swiched off) (replay) - if 'yes', replay (record_reactions) - if 'yes', record optimization reaction (record_reactions_file) - file to record reaction table for graph ... (record_solutions) - if 'yes', record solutions (solutions_file) - output solutions to a file (skip_pruning) - if 'yes', do not prune best found result during crowdtuning (skip_collaborative) - do not check collaborative solutions (useful for "clean" autotuning) (no_run) - if 'yes', do not run program - useful for generating experiments pack for crowtuning using Android mobile phones } Output: { return - return code = 0, if successful > 0, if error (error) - error text if return > 0 (solutions) - if 'solutions' present in input, possibly updated ones will present in output too (replay) } "