80 lines
4.4 KiB
TeX
80 lines
4.4 KiB
TeX
|
\definecolor{col_bench_gen}{HTML}{5a7eff}
|
||
|
\definecolor{col_bench_gen_bg}{HTML}{dbeeff}
|
||
|
\definecolor{col_bench_harness}{HTML}{ffa673}
|
||
|
\definecolor{col_results}{HTML}{000000}
|
||
|
|
||
|
\centering
|
||
|
\begin{tikzpicture}[
|
||
|
hiddennode/.style={rectangle,draw=normal text.bg, very thick, minimum size=5mm, align=center, font=\footnotesize},
|
||
|
normnode/.style={rectangle,draw=black, very thick, minimum size=5mm, align=center, font=\footnotesize},
|
||
|
resultnode/.style={rectangle,draw=col_results, fill=black!2, very thick, minimum size=5mm, align=center, font=\footnotesize},
|
||
|
bluenode/.style={rectangle, draw=col_bench_gen, fill=col_bench_gen_bg, very thick, minimum height=5mm, minimum width=4cm, align=center, font=\footnotesize},
|
||
|
rednode/.style={rectangle, draw=col_bench_harness, fill=orange!5, very thick, minimum size=5mm, align=center, font=\footnotesize},
|
||
|
bencher/.style={rednode, minimum width=2.5cm, minimum height=5mm},
|
||
|
genarrow/.style={draw=col_bench_gen},
|
||
|
harnarrow/.style={draw=col_bench_harness},
|
||
|
]
|
||
|
\centering
|
||
|
%Nodes
|
||
|
\node[bluenode] (bench) {Benchmark suite \figref{ssec:bench_suite}};
|
||
|
\node[bluenode] (pocc) [below=of bench] {Loop nest optimizers \figref{ssec:loop_nest_optimizer}};
|
||
|
\node[bluenode] (kernel) [below=of pocc] {Constraining utility \figref{ssec:kernelify}};
|
||
|
\node[bluenode] (gcc) [below=of kernel] {Compilations \figref{ssec:compile}};
|
||
|
\node[rednode] (gdb) [right=0.1\textwidth of gcc] {Basic block \\extraction \figref{ssec:bb_extr}};
|
||
|
\node[bencher] (ithemal) [right=4cm of gdb] {Ithemal};
|
||
|
\node[bencher] (iaca) [above=0.5em of ithemal] {IACA};
|
||
|
\node[bencher] (uica) [above=0.5em of iaca] {uiCA};
|
||
|
\node[bencher] (llvm) [above=0.5em of uica] {llvm-mca};
|
||
|
\node[bencher] (bhive) [above=0.5em of llvm] {BHive (measure)};
|
||
|
\node[rednode] (ppapi) [left=1cm of bhive] {perf (measure)};
|
||
|
\node[rednode] (gus) [below=0.5em of ppapi] {Gus};
|
||
|
%% \node[rednode] (uica) [below=of gdb] {uiCA};
|
||
|
\node[rednode] (lifting) [below right=1em and 0.2cm of gdb] {
|
||
|
Prediction lifting};
|
||
|
\node[
|
||
|
draw=black,
|
||
|
very thick,
|
||
|
dotted,
|
||
|
fit=(ppapi) (gus) (bhive) (llvm) (uica) (iaca) (ithemal)
|
||
|
] (comps) {};
|
||
|
\node (throughput_label) [above=0.2em of comps,align=center] {
|
||
|
\footnotesize Throughput predictions \\\footnotesize \& measures
|
||
|
\figref{ssec:throughput_pred_meas}};
|
||
|
\node[draw=black,
|
||
|
very thick,
|
||
|
dotted,
|
||
|
%% label={below:\footnotesize Variations},
|
||
|
label={[above,xshift=1cm]\footnotesize Variations},
|
||
|
fit=(pocc) (kernel) (gcc)
|
||
|
] (vars) {};
|
||
|
\node[resultnode] (bench2) [right=of lifting] {Evaluation metrics \\ for
|
||
|
code analyzers};
|
||
|
|
||
|
% Key
|
||
|
\node[] (keyblue1) [below left=0.7cm and 0cm of vars] {};
|
||
|
\node[hiddennode] (keyblue2) [right=0.5cm of keyblue1] {Generating microbenchmarks};
|
||
|
\node[] (keyred1) [below=.5em of keyblue1] {};
|
||
|
\node[hiddennode] (keyred2) [right=0.5cm of keyred1] {Benchmarking harness};
|
||
|
\node[] (keyresult1) [below=.5em of keyred1] {};
|
||
|
\node[hiddennode] (keyresult2) [right=0.5cm of keyresult1]
|
||
|
{Results analysis};
|
||
|
|
||
|
%Lines
|
||
|
\draw[-, very thick, harnarrow] (keyred1.east) -- (keyred2.west);
|
||
|
\draw[-, very thick, genarrow] (keyblue1.east) -- (keyblue2.west);
|
||
|
\draw[-, very thick] (keyresult1.east) -- (keyresult2.west);
|
||
|
\draw[->, very thick, genarrow] (bench.south) -- (pocc.north);
|
||
|
\draw[->, very thick, genarrow] (pocc.south) -- (kernel.north);
|
||
|
\draw[->, very thick, genarrow] (kernel.south) -- (gcc.north);
|
||
|
\draw[->, very thick, genarrow] (gcc.east) -- (gdb.west);
|
||
|
\draw[->, very thick, genarrow] (gcc.east) -- (ppapi.west);
|
||
|
\draw[->, very thick, genarrow] (gcc.east) -- (gus.west);
|
||
|
\draw[->, very thick, harnarrow] (gdb.east) -- (uica.west);
|
||
|
\draw[->, very thick, harnarrow] (gdb.east) -- (iaca.west);
|
||
|
\draw[->, very thick, harnarrow] (gdb.east) -- (ithemal.west);
|
||
|
\draw[->, very thick, harnarrow] (gdb.east) -- (bhive.west);
|
||
|
\draw[->, very thick, harnarrow] (gdb.east) -- (llvm.west);
|
||
|
\draw[->, very thick, harnarrow] (comps.south-|lifting) -- (lifting.north);
|
||
|
\draw[->, very thick] (lifting.east) -- (bench2.west);
|
||
|
\end{tikzpicture}
|