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