xref: /libCEED/doc/img/libCEEDBackends.tex (revision 9ba83ac0e4b1fca39d6fa6737a318a9f0cbc172d)
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