Welcome    Usage    Browse    Find CID    Search     Log in
Exploration of program/architecture choices

 
Exploration scenario
Exploration scenario module
Max number of coarse-grain iterations (green color)
Max number of fine-grain iterations (red color)
Save results in repository
Aggregate results in one entry
Manual aggregated entry UOA (keep empty to detect automatically)
Repository to save results (can be remote)
Skip exploration if entry already exists
General parameters
Random seed to reproduce experiment sequence (number or text)
Universal exploration
Module for statistical analysis
Continue fine-grain exploration indefinitely
Force repeat number for program kernel
Number of statistical repeatitions (if more than 7, R will be used to check normality of a distribution)
Aggregate all statistical results in one point
Reuse calibration number (turn off if dataset is changing)
Pipeline color legend:
Characteristics
Properties
State
Cost
Coarse-grain choices
Fine-grain choices
 
cTuning space (reproducibility and graphs)
Save pipeline input and output in cTuning space
Input
Select existing cTuning space
Enter (existing) cTuning space UOA
Exploration pipeline
Init pipeline
Input
Working repository
Collective tuning setup
Host OS
Target OS
Target processor
Prune program by class
Program
Explore
choices:
Command line
Explore
choices:
Dataset UOA
Explore
choices:
Compiler
Explore
choices:
CTuning compiler description
Compilation type
Build script name
Tuning objective
Notes
User-friendly system name
Accelerator in the system
Target accelerator processor
Accelerator compiler
Explore
choices:
CTuning accelerator compiler description
Benchmark internal execution ID
Detected system information
Turn on this pipeline section
Input
System description
Processor description
OS description
Initialize parameters
Output
Program
Dataset name
Dataset UID
Program name
Program UID
Prepare dataset
Turn on this pipeline section
Input
Clean program
Turn on this pipeline section
Input
Build script type
Cleaning script name
Skip target file check
Refresh from templates if exist
Use likwid for hardware counters
Turn on this pipeline section
Input
Likwid installation
Use kernel/codelet instrumentation
Use sudo
Processor pinning (0; 0-1; 1,2-3,4; etc)
Measure performance group (DATA, ENERGY, FLOPS_DP, L2, L2CACHE, MEM, TLB, BRANCH, etc)
Measure using event set (INSTR_RETIRED_ANY:FIXC0,CPU_CLK_UNHALTED_CORE:FIXC1)
Source to source polyhedral transformation (by PLUTO)
Turn on this pipeline section
Input
PLUTO compiler
Parallelize (OpenMP)?
Explore
choices:
Tile?
Explore
choices:
Tile factor
Explore
choices:
Start:
Stop:
Step:
Tile factors topology (dim1;dim2;dim3;;...)
Unroll?
Explore
choices:
Unroll factor
Explore
choices:
Start:
Stop:
Step:
Prepare compiler flags
Turn on this pipeline section
Input
Use only base flag
Use OpenMP parallelization flag
All compiler flags
Compiler flag: -O3
Explore
choices:
Compiler flag: openmp
Compiler flag: -fsched-stalled-insns-dep=
-fsched-stalled-insns-dep=
Explore
choices:
Start:
Stop:
Step:
Compiler flag: -fsched-stalled-insns=
-fsched-stalled-insns=
Explore
choices:
Start:
Stop:
Step:
Compiler flag: -finline-limit=
-finline-limit=
Explore
choices:
Start:
Stop:
Step:
Compiler flag: -falign-functions=
-falign-functions=
Explore
choices:
Start:
Stop:
Step:
Compiler flag: -falign-jumps=
-falign-jumps=
Explore
choices:
Start:
Stop:
Step:
Compiler flag: -falign-labels=
-falign-labels=
Explore
choices:
Start:
Stop:
Step:
Compiler flag: -falign-loops=
-falign-loops=
Explore
choices:
Start:
Stop:
Step:
Compiler flag: --param max-gcse-passes=
--param max-gcse-passes=
Explore
choices:
Start:
Stop:
Step:
Compiler flag: --param max-inline-insns-auto=
--param max-inline-insns-auto=
Explore
choices:
Start:
Stop:
Step:
Compiler flag: --param large-function-insns=
--param large-function-insns=
Explore
choices:
Start:
Stop:
Step:
Compiler flag: --param large-function-growth=
--param large-function-growth=
Explore
choices:
Start:
Stop:
Step:
Compiler flag: --param large-unit-insns=
--param large-unit-insns=
Explore
choices:
Start:
Stop:
Step:
Compiler flag: --param inline-unit-growth=
--param inline-unit-growth=
Explore
choices:
Start:
Stop:
Step:
Compiler flag: --param inline-call-cost=
--param inline-call-cost=
Explore
choices:
Start:
Stop:
Step:
Compiler flag: --param max-unroll-times=
--param max-unroll-times=
Explore
choices:
Start:
Stop:
Step:
Compiler flag: --param max-unrolled-insns=
--param max-unrolled-insns=
Explore
choices:
Start:
Stop:
Step:
Compiler flag: -fbranch-count-reg
Explore
choices:
Compiler flag: -fbranch-target-load-optimize
Explore
choices:
Compiler flag: -fbtr-bb-exclusive
Explore
choices:
Compiler flag: -fcaller-saves
Explore
choices:
Compiler flag: -fcprop-registers
Explore
choices:
Compiler flag: -fcrossjumping
Explore
choices:
Compiler flag: -fcse-follow-jumps
Explore
choices:
Compiler flag: -fcse-skip-blocks
Explore
choices:
Compiler flag: -fcx-limited-range
Explore
choices:
Compiler flag: -fdefer-pop
Explore
choices:
Compiler flag: -fdelete-null-pointer-checks
Explore
choices:
Compiler flag: -fearly-inlining
Explore
choices:
Compiler flag: -fexpensive-optimizations
Explore
choices:
Compiler flag: -ffunction-cse
Explore
choices:
Compiler flag: -fgcse-after-reload
Explore
choices:
Compiler flag: -fgcse-las
Explore
choices:
Compiler flag: -fgcse-lm
Explore
choices:
Compiler flag: -fgcse-sm
Explore
choices:
Compiler flag: -fgcse
Explore
choices:
Compiler flag: -fguess-branch-probability
Explore
choices:
Compiler flag: -fif-conversion
Explore
choices:
Compiler flag: -fif-conversion2
Explore
choices:
Compiler flag: -finline-functions
Explore
choices:
Compiler flag: -fivopts
Explore
choices:
Compiler flag: -floop-optimize
Explore
choices:
Compiler flag: -fmath-errno
Explore
choices:
Compiler flag: -fmerge-constants
Explore
choices:
Compiler flag: -fmodulo-sched
Explore
choices:
Compiler flag: -fmove-loop-invariants
Explore
choices:
Compiler flag: -fomit-frame-pointer
Explore
choices:
Compiler flag: -foptimize-register-move
Explore
choices:
Compiler flag: -foptimize-sibling-calls
Explore
choices:
Compiler flag: -fpeel-loops
Explore
choices:
Compiler flag: -fpeephole
Explore
choices:
Compiler flag: -fpeephole2
Explore
choices:
Compiler flag: -fprefetch-loop-arrays
Explore
choices:
Compiler flag: -fregmove
Explore
choices:
Compiler flag: -frename-registers
Explore
choices:
Compiler flag: -freorder-blocks
Explore
choices:
Compiler flag: -freorder-functions
Explore
choices:
Compiler flag: -frerun-cse-after-loop
Explore
choices:
Compiler flag: -frerun-loop-opt
Explore
choices:
Compiler flag: -freschedule-modulo-scheduled-loops
Explore
choices:
Compiler flag: -fsched-interblock
Explore
choices:
Compiler flag: -fsched-spec-load-dangerous
Explore
choices:
Compiler flag: -fsched-spec-load
Explore
choices:
Compiler flag: -fsched-spec
Explore
choices:
Compiler flag: -fsched2-use-superblocks
Explore
choices:
Compiler flag: -fschedule-insns
Explore
choices:
Compiler flag: -fschedule-insns2
Explore
choices:
Compiler flag: -fsignaling-nans
Explore
choices:
Compiler flag: -fsingle-precision-constant
Explore
choices:
Compiler flag: -fsplit-ivs-in-unroller
Explore
choices:
Compiler flag: -fstrength-reduce
Explore
choices:
Compiler flag: -fstrict-aliasing
Explore
choices:
Compiler flag: -fthread-jumps
Explore
choices:
Compiler flag: -ftracer
Explore
choices:
Compiler flag: -ftree-ccp
Explore
choices:
Compiler flag: -ftree-ch
Explore
choices:
Compiler flag: -ftree-copyrename
Explore
choices:
Compiler flag: -ftree-dce
Explore
choices:
Compiler flag: -ftree-dominator-opts
Explore
choices:
Compiler flag: -ftree-dse
Explore
choices:
Compiler flag: -ftree-fre
Explore
choices:
Compiler flag: -ftree-loop-im
Explore
choices:
Compiler flag: -ftree-loop-ivcanon
Explore
choices:
Compiler flag: -ftree-loop-linear
Explore
choices:
Compiler flag: -ftree-loop-optimize
Explore
choices:
Compiler flag: -ftree-lrs
Explore
choices:
Compiler flag: -ftree-pre
Explore
choices:
Compiler flag: -ftree-sra
Explore
choices:
Compiler flag: -ftree-ter
Explore
choices:
Compiler flag: -ftree-vect-loop-version
Explore
choices:
Compiler flag: -ftree-vectorize
Explore
choices:
Compiler flag: -funroll-all-loops
Explore
choices:
Compiler flag: -funswitch-loops
Explore
choices:
Compiler flag: -fvariable-expansion-in-unroller
Explore
choices:
Additional compiler flags
Output
Prepared compiler flags
Use compiler profiling
Turn on this pipeline section
Use cTuning CC/MILEPOST GCC for fine-grain program analysis and tuning
Turn on this pipeline section
Input
MILEPOST GCC Compiler
Extract after this pass in MILEPOST GCC
CTuning CC Compiler
CTuning CC Plugins
Mode
Use universal Alchemist plugin (with any OpenME-compatible compiler or tool)
Turn on this pipeline section
Input
Universal Alchemist plugin
Mode
Force output file
Force input file
Fine-grain transformations: force unroll factor
Individual factors can be selected through a json file.
Explore
choices:
Start:
Stop:
Step:
Use Alchemist plugin (currently for GCC)
Turn on this pipeline section
Input
Alchemist plugin
Alchemist sub-plugin
Mode
Build program
Turn on this pipeline section
Input
Dependencies on other code
Build script type
Compilation type
Compilation type of linked libraries
Build script name
Program build properties (compiler vars)
New key:
Output
Build exit code
Program binary size (bytes)
Program compilation time (with module overhead) (sec.)
Get objdump and md5sum (if supported)
Turn on this pipeline section
Input
Output
Use OpenME for fine-grain program analysis and online tuning (build & run)
Turn on this pipeline section
Input
OpenME library
OpenME cTuning plugin
CJSON library
Use 'Intel VTune Amplifier' to collect hardware counters
Turn on this pipeline section
Input
Intel VTune
Use 'perf' to collect hardware counters
Turn on this pipeline section
Input
Installed perf supports output to file?
Set frequency (in Unix, if supported)
Turn on this pipeline section
Input
Use sudo
Frequency (Hz)
Explore
choices:
Frequency string (Hz)
Explore
choices:
Start:
Stop:
Step:
Get system state before execution
Turn on this pipeline section
Output
System state
All properties
Measured CPU frequency
Run program
Turn on this pipeline section
Input
Program run-time environment variables
New key:
If OpenMP is used, number of threads
Explore
choices:
Start:
Stop:
Step:
Prefix command line
Calibrate
Calibrate until max iterations
Calibrate to time (sec.)
Output
Benchmark score
Number of kernel repetitions (if supported)
Program execution time (with module overhead) (sec.)
Program execution time normalized (with module overhead) (sec.)
Run exit code
Check output for correctness (use dataset UID to save different outputs)
Turn on this pipeline section
Input
Output
Output correct?
Finish OpenME
Output
Kernel execution time in seconds
Misc info
User
Date/time started
Date/time finished
Dissemination of results
Publications
0
1
2
Observed characteristics
Program execution CPI
Program execution instructions retired
Observed statistical characteristics
Run program
Output
Program execution time (with module overhead) (sec.)
Statistical characteristic: Program execution time (with module overhead) (NUM)
Statistical characteristic: Program execution time (with module overhead) (sec.) (MIN)
Statistical characteristic: Program execution time (with module overhead) (sec.) (MAX)
Statistical characteristic: Program execution time variation (DELTA)
Statistical characteristic: Program execution time variation (DELTA PERCENT / 100)
Normality test through R (CVM)
CVM P value
Normality test through R (Lillie)
Lillie P value
Normality test through R (Person)
Pearson P value
Aggregation
Program execution time normalized (with module overhead) (sec.)
Statistical characteristic: Program execution time normalized (with module overhead) (sec.) (MIN)
Statistical characteristic: Program execution time normalized (with module overhead) (sec.) (MAX)
Statistical characteristic: Program execution time normalized (with module overhead) variation (DELTA)
Statistical characteristic: Program execution time normalized (with module overhead) variation (DELTA PERCENT / 100)
Aggregation
Build program
Output
Program compilation time (with module overhead) (sec.)
Statistical characteristic: Program compilation time (with module overhead) (sec.) (MIN)
Statistical characteristic: Program compilation time (with module overhead) (sec.) (MAX)
Statistical characteristic: Program compilation time (with module overhead) variation (DELTA)
Statistical characteristic: Program compilation time (with module overhead) variation (DELTA PERCENT / 100)
Aggregation
Finalize pipeline
Input
Output
Pipeline failed?
 
Debug/Developer mode
Show input json (without running pipeline to prepare for off-line tuning)
Save input json to file (for reproducibility/off-line tuning) - pipeline will not run!
Show output json
Save output json to file
Keep all produced files