1*ebfb1ab3SJeremy L Thompson\documentclass[tikz]{standalone} 2*ebfb1ab3SJeremy L Thompson\usepackage{tikz} 3*ebfb1ab3SJeremy L Thompson\usepackage{pgfplots} 4*ebfb1ab3SJeremy L Thompson\usepackage{pgfmath} 5*ebfb1ab3SJeremy L Thompson\usepackage{libertine} 6*ebfb1ab3SJeremy L Thompson\usetikzlibrary{calc} 7*ebfb1ab3SJeremy L Thompson 8*ebfb1ab3SJeremy L Thompson\renewcommand{\familydefault}{\sfdefault} 9*ebfb1ab3SJeremy L Thompson 10*ebfb1ab3SJeremy L Thompson\definecolor{ceed@blue}{RGB}{100,150,230} 11*ebfb1ab3SJeremy L Thompson\definecolor{ceed@green}{RGB}{75,200,75} 12*ebfb1ab3SJeremy L Thompson\definecolor{ceed@red}{RGB}{200,75,75} 13*ebfb1ab3SJeremy L Thompson\definecolor{ceed@orange}{RGB}{252,186,3} 14*ebfb1ab3SJeremy L Thompson 15*ebfb1ab3SJeremy L Thompson\pgfplotsset{compat=1.18} 16*ebfb1ab3SJeremy L Thompson 17*ebfb1ab3SJeremy L Thompson\begin{document} 18*ebfb1ab3SJeremy L Thompson 19*ebfb1ab3SJeremy L Thompson\begin{tikzpicture} 20*ebfb1ab3SJeremy L Thompson 21*ebfb1ab3SJeremy L Thompson\begin{scope}[shift={(0,-0.6)}] 22*ebfb1ab3SJeremy L Thompson \node at (1.0,6.1) {\large Application}; 23*ebfb1ab3SJeremy L Thompson 24*ebfb1ab3SJeremy L Thompson % PETSc 25*ebfb1ab3SJeremy L Thompson \draw[ 26*ebfb1ab3SJeremy L Thompson top color=ceed@red!10!white, 27*ebfb1ab3SJeremy L Thompson bottom color=ceed@red!40!white, 28*ebfb1ab3SJeremy L Thompson ceed@red!60!black, 29*ebfb1ab3SJeremy L Thompson ] (0.0,3.0) rectangle ++(1.6,0.8) 30*ebfb1ab3SJeremy L Thompson node[pos=.5,align=center,color=black] {PETSc}; 31*ebfb1ab3SJeremy L Thompson \draw[-stealth, line width=0.5pt] (1.6, 3.0+0.4) -- ++(1.6,-1.2-0.4); 32*ebfb1ab3SJeremy L Thompson 33*ebfb1ab3SJeremy L Thompson % Ratel 34*ebfb1ab3SJeremy L Thompson \draw[ 35*ebfb1ab3SJeremy L Thompson top color=ceed@red!10!white, 36*ebfb1ab3SJeremy L Thompson bottom color=ceed@red!40!white, 37*ebfb1ab3SJeremy L Thompson ceed@red!60!black, 38*ebfb1ab3SJeremy L Thompson ] (0.0,1.8) rectangle ++(1.6,0.8) 39*ebfb1ab3SJeremy L Thompson node[pos=.5,align=center,color=black] {Ratel}; 40*ebfb1ab3SJeremy L Thompson \draw[-stealth, line width=0.5pt] (1.6, 1.8+0.4) -- ++(1.6,0.0-0.55); 41*ebfb1ab3SJeremy L Thompson 42*ebfb1ab3SJeremy L Thompson % HONEE 43*ebfb1ab3SJeremy L Thompson \draw[ 44*ebfb1ab3SJeremy L Thompson top color=ceed@red!10!white, 45*ebfb1ab3SJeremy L Thompson bottom color=ceed@red!40!white, 46*ebfb1ab3SJeremy L Thompson ceed@red!60!black, 47*ebfb1ab3SJeremy L Thompson ] (0.0,0.6) rectangle ++(1.6,0.8) 48*ebfb1ab3SJeremy L Thompson node[pos=.5,align=center,color=black] {HONEE}; 49*ebfb1ab3SJeremy L Thompson \draw[-stealth, line width=0.5pt] (1.6, 0.6+0.4) -- ++(1.6,1.2-0.65); 50*ebfb1ab3SJeremy L Thompson 51*ebfb1ab3SJeremy L Thompson % MFEM 52*ebfb1ab3SJeremy L Thompson \draw[ 53*ebfb1ab3SJeremy L Thompson top color=ceed@red!10!white, 54*ebfb1ab3SJeremy L Thompson bottom color=ceed@red!40!white, 55*ebfb1ab3SJeremy L Thompson ceed@red!60!black, 56*ebfb1ab3SJeremy L Thompson ] (0.0,-0.6) rectangle ++(1.6,0.8) 57*ebfb1ab3SJeremy L Thompson node[pos=.5,align=center,color=black] {MFEM}; 58*ebfb1ab3SJeremy L Thompson \draw[-stealth, line width=0.5pt] (1.6, -0.6+0.4) -- ++(1.6,2.4-0.8); 59*ebfb1ab3SJeremy L Thompson\end{scope} 60*ebfb1ab3SJeremy L Thompson 61*ebfb1ab3SJeremy L Thompson\begin{scope}[shift={(3.2,0)}] 62*ebfb1ab3SJeremy L Thompson \begin{scope}[shift={(0,-0.6)}] 63*ebfb1ab3SJeremy L Thompson \node at (0.8,6.1) {\large Library}; 64*ebfb1ab3SJeremy L Thompson \draw[ 65*ebfb1ab3SJeremy L Thompson top color=ceed@blue!10!white, 66*ebfb1ab3SJeremy L Thompson bottom color=ceed@blue!40!white, 67*ebfb1ab3SJeremy L Thompson ceed@blue!60!black, 68*ebfb1ab3SJeremy L Thompson ] (0.0,1.2) rectangle ++(1.6,0.8) 69*ebfb1ab3SJeremy L Thompson node[pos=.5,align=center,color=black] {libCEED}; 70*ebfb1ab3SJeremy L Thompson 71*ebfb1ab3SJeremy L Thompson \draw[-stealth, line width=0.5pt] (1.6, 1.6) -- ++(1.6,3.6); 72*ebfb1ab3SJeremy L Thompson \draw[-stealth, line width=0.5pt] (1.6, 1.6) -- ++(1.6,2.4); 73*ebfb1ab3SJeremy L Thompson \draw[-stealth, line width=0.5pt] (1.6, 1.6) -- ++(1.6,1.2); 74*ebfb1ab3SJeremy L Thompson \draw[-stealth, line width=0.5pt] (1.6, 1.6) -- ++(1.6,0.0); 75*ebfb1ab3SJeremy L Thompson \draw[-stealth, line width=0.5pt] (1.6, 1.6) -- ++(1.6,-1.2); 76*ebfb1ab3SJeremy L Thompson \draw[-stealth, line width=0.5pt] (1.6, 1.6) -- ++(1.6,-2.4); 77*ebfb1ab3SJeremy L Thompson \draw[-stealth, line width=0.5pt] (1.6, 1.6) -- ++(1.6,-3.6); 78*ebfb1ab3SJeremy L Thompson \end{scope} 79*ebfb1ab3SJeremy L Thompson\end{scope} 80*ebfb1ab3SJeremy L Thompson 81*ebfb1ab3SJeremy L Thompson\begin{scope}[shift={(6.4,0)}] 82*ebfb1ab3SJeremy L Thompson \begin{scope}[shift={(0,-0.6)}] 83*ebfb1ab3SJeremy L Thompson \node at (0.95,6.1) {\large Backends}; 84*ebfb1ab3SJeremy L Thompson 85*ebfb1ab3SJeremy L Thompson % C 86*ebfb1ab3SJeremy L Thompson \draw[ 87*ebfb1ab3SJeremy L Thompson top color=black!5!white, 88*ebfb1ab3SJeremy L Thompson bottom color=black!20!white, 89*ebfb1ab3SJeremy L Thompson black!80!white, 90*ebfb1ab3SJeremy L Thompson ] (0.0,4.8) rectangle ++(2.0,0.8) 91*ebfb1ab3SJeremy L Thompson node[pos=.5,align=center,color=black] {Pure C}; 92*ebfb1ab3SJeremy L Thompson \draw[-stealth, line width=0.5pt] (2.0, 5.2) -- ++(1.2,-1.2+0.15); 93*ebfb1ab3SJeremy L Thompson 94*ebfb1ab3SJeremy L Thompson % AVX 95*ebfb1ab3SJeremy L Thompson \draw[ 96*ebfb1ab3SJeremy L Thompson top color=black!5!white, 97*ebfb1ab3SJeremy L Thompson bottom color=black!20!white, 98*ebfb1ab3SJeremy L Thompson black!80!white, 99*ebfb1ab3SJeremy L Thompson ] (0.0,3.6) rectangle ++(2.0,0.8) 100*ebfb1ab3SJeremy L Thompson node[pos=.5,align=center,color=black] {AVX}; 101*ebfb1ab3SJeremy L Thompson \draw[-stealth, line width=0.5pt] (2.0, 4.0) -- ++(1.2,+0.0+0.025); 102*ebfb1ab3SJeremy L Thompson 103*ebfb1ab3SJeremy L Thompson % LIBXSMM 104*ebfb1ab3SJeremy L Thompson \draw[ 105*ebfb1ab3SJeremy L Thompson top color=black!5!white, 106*ebfb1ab3SJeremy L Thompson bottom color=black!20!white, 107*ebfb1ab3SJeremy L Thompson black!80!white, 108*ebfb1ab3SJeremy L Thompson ] (0.0,2.4) rectangle ++(2.0,0.8) 109*ebfb1ab3SJeremy L Thompson node[pos=.5,align=center,color=black] {LIBXSMM}; 110*ebfb1ab3SJeremy L Thompson \draw[-stealth, line width=0.5pt] (2.0, 2.8) -- ++(1.2,1.1-0.025); 111*ebfb1ab3SJeremy L Thompson 112*ebfb1ab3SJeremy L Thompson % CUDA 113*ebfb1ab3SJeremy L Thompson \draw[ 114*ebfb1ab3SJeremy L Thompson top color=black!5!white, 115*ebfb1ab3SJeremy L Thompson bottom color=black!20!white, 116*ebfb1ab3SJeremy L Thompson black!80!white, 117*ebfb1ab3SJeremy L Thompson ] (0.0,1.2) rectangle ++(2.0,0.8) 118*ebfb1ab3SJeremy L Thompson node[pos=.5,align=center,color=black] {CUDA}; 119*ebfb1ab3SJeremy L Thompson \draw[-stealth, line width=0.5pt] (2.0, 1.6) -- ++(1.2,0.0+0.025); 120*ebfb1ab3SJeremy L Thompson 121*ebfb1ab3SJeremy L Thompson % HIP 122*ebfb1ab3SJeremy L Thompson \draw[ 123*ebfb1ab3SJeremy L Thompson top color=black!5!white, 124*ebfb1ab3SJeremy L Thompson bottom color=black!20!white, 125*ebfb1ab3SJeremy L Thompson black!80!white, 126*ebfb1ab3SJeremy L Thompson ] (0.0,0.0) rectangle ++(2.0,0.8) 127*ebfb1ab3SJeremy L Thompson node[pos=.5,align=center,color=black] {HIP}; 128*ebfb1ab3SJeremy L Thompson \draw[-stealth, line width=0.5pt] (2.0, 0.4) -- ++(1.2,0.0+0.025); 129*ebfb1ab3SJeremy L Thompson 130*ebfb1ab3SJeremy L Thompson % SYCL 131*ebfb1ab3SJeremy L Thompson \draw[ 132*ebfb1ab3SJeremy L Thompson top color=black!5!white, 133*ebfb1ab3SJeremy L Thompson bottom color=black!20!white, 134*ebfb1ab3SJeremy L Thompson black!80!white, 135*ebfb1ab3SJeremy L Thompson ] (0.0,-1.2) rectangle ++(2.0,0.8) 136*ebfb1ab3SJeremy L Thompson node[pos=.5,align=center,color=black] {SYCL}; 137*ebfb1ab3SJeremy L Thompson \draw[-stealth, line width=0.5pt] (2.0, -0.8) -- ++(1.2,0.0+0.025); 138*ebfb1ab3SJeremy L Thompson 139*ebfb1ab3SJeremy L Thompson % MAGMA 140*ebfb1ab3SJeremy L Thompson \draw[ 141*ebfb1ab3SJeremy L Thompson top color=black!5!white, 142*ebfb1ab3SJeremy L Thompson bottom color=black!20!white, 143*ebfb1ab3SJeremy L Thompson black!80!white, 144*ebfb1ab3SJeremy L Thompson ] (0.0,-2.4) rectangle ++(2.0,0.8) 145*ebfb1ab3SJeremy L Thompson node[pos=.5,align=center,color=black] {MAGMA}; 146*ebfb1ab3SJeremy L Thompson \draw[-stealth, line width=0.5pt] (2.0, -2.0) -- ++(1.2,3.7-0.15); 147*ebfb1ab3SJeremy L Thompson \draw[-stealth, line width=0.5pt] (2.0, -2.0) -- ++(1.2,2.5-0.15); 148*ebfb1ab3SJeremy L Thompson 149*ebfb1ab3SJeremy L Thompson \end{scope} 150*ebfb1ab3SJeremy L Thompson\end{scope} 151*ebfb1ab3SJeremy L Thompson 152*ebfb1ab3SJeremy L Thompson\begin{scope}[shift={(9.6,0)}] 153*ebfb1ab3SJeremy L Thompson \begin{scope}[shift={(0,-0.6)}] 154*ebfb1ab3SJeremy L Thompson \node at (1.1,6.1) {\large Hardware}; 155*ebfb1ab3SJeremy L Thompson 156*ebfb1ab3SJeremy L Thompson % CPU 157*ebfb1ab3SJeremy L Thompson \draw[ 158*ebfb1ab3SJeremy L Thompson top color=ceed@green!20!white, 159*ebfb1ab3SJeremy L Thompson bottom color=ceed@green!60!white, 160*ebfb1ab3SJeremy L Thompson ceed@green!60!black, 161*ebfb1ab3SJeremy L Thompson ] (0.0,3.6) rectangle ++(2.2,0.8) 162*ebfb1ab3SJeremy L Thompson node[pos=.5,align=center,color=black] {CPU}; 163*ebfb1ab3SJeremy L Thompson 164*ebfb1ab3SJeremy L Thompson % CUDA GPU 165*ebfb1ab3SJeremy L Thompson \draw[ 166*ebfb1ab3SJeremy L Thompson top color=ceed@green!20!white, 167*ebfb1ab3SJeremy L Thompson bottom color=ceed@green!60!white, 168*ebfb1ab3SJeremy L Thompson ceed@green!60!black, 169*ebfb1ab3SJeremy L Thompson ] (0.0,1.2) rectangle ++(2.2,0.8) 170*ebfb1ab3SJeremy L Thompson node[pos=.5,align=center,color=black] {NVIDIA GPU}; 171*ebfb1ab3SJeremy L Thompson 172*ebfb1ab3SJeremy L Thompson % ROCm GPU 173*ebfb1ab3SJeremy L Thompson \draw[ 174*ebfb1ab3SJeremy L Thompson top color=ceed@green!20!white, 175*ebfb1ab3SJeremy L Thompson bottom color=ceed@green!60!white, 176*ebfb1ab3SJeremy L Thompson ceed@green!60!black, 177*ebfb1ab3SJeremy L Thompson ] (0.0,-0.0) rectangle ++(2.2,0.8) 178*ebfb1ab3SJeremy L Thompson node[pos=.5,align=center,color=black] {AMD GPU}; 179*ebfb1ab3SJeremy L Thompson 180*ebfb1ab3SJeremy L Thompson % Intel GPU 181*ebfb1ab3SJeremy L Thompson \draw[ 182*ebfb1ab3SJeremy L Thompson top color=ceed@green!20!white, 183*ebfb1ab3SJeremy L Thompson bottom color=ceed@green!60!white, 184*ebfb1ab3SJeremy L Thompson ceed@green!60!black, 185*ebfb1ab3SJeremy L Thompson ] (0.0,-1.2) rectangle ++(2.2,0.8) 186*ebfb1ab3SJeremy L Thompson node[pos=.5,align=center,color=black] {Intel GPU}; 187*ebfb1ab3SJeremy L Thompson 188*ebfb1ab3SJeremy L Thompson \end{scope} 189*ebfb1ab3SJeremy L Thompson\end{scope} 190*ebfb1ab3SJeremy L Thompson 191*ebfb1ab3SJeremy L Thompson\end{tikzpicture} 192*ebfb1ab3SJeremy L Thompson\end{document} 193