1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
\begin{table}[htb]
\caption{\label{table:vars} List of variables used in code snippets}
\begin{tabularx}{\columnwidth} { llX }
\hline
Var & Type & Description \\
\hline
$n_p$ & int & Number of projections \\
$\vdata{n}_t$ & int2 & Dimensions of thread block \\
$n_q$ & int & Number of pixels assigned per GPU thread \\
$n_s$ & int & Size of an area assigned to a thread block \\
$s_d$ & int & Size of data cache in projections \\
$s_t$ & int & Caching threads per projection row \\
$\vdata{v}_a$ & float2 & The position of rotation axis \\
\hline
%$c_*$ & float[] & Projection constants: $\cdot_c$ - cosines, $\cdot_s$ - sines, $\cdot_a$ - offsets of rotational axis, $\cdot_m$ - coefficients to find bins required by a block \\
$c_c$ & float[] & Cosine values of the projection angles \\
$c_s$ & float[] & Sine values of the projection angles \\
$c_a$ & float[] & Coordinates of the rotational axis \\
$c_m$ & float[] & Coefficients to find bins required by a block \\
\hline
$m_p$ & int & Projection index in a group \\
$m_d$ & int & Mapping to select an offset in the cache \\
$\vdata{m}_b$ & int2 & Index of a thread block within the grid \\
$\vdata{m}_t$ & int2 & Index of a thread within the block \\
$\vdata{m}_g$ & int2 & Index of a thread within the grid \\
$\vdata{m}_*'$ & int2 & Re-mapped index \\
$\vdata{f}_*^*$ & float2 & Pixel coordinate according to the mapping \\
\hline
$\vfloat{d}$ & float[][]& The cache storing a subset of sinogram \\
$\vfloat{s}$ & float[] & Accumulator of a resulting pixel value \\
$\vfloat{r}$ & float[][]& The reconstructed slice \\
\hline
$p_*$ & int & Projection number; iterators ($p_b$, $p_i$) \\
$q_*$ & int & Pixel block iterators \\
$h_*$ & various & Positions in cache/sinogram \\
%$h_i$ & int & The position of the required projection bin in the cache \\
%$h_f$ & float & The floating-point representation of $h_i$ \\
%$h_l$ & float & The offset from the center of bin (i.e. coefficient for linear interpolation) \\
%$h_b$ & float & The bin required by the first thread of the block \\
%$h_m$ & float[] & The smallest bin required by a thread block in the selected projection row \\
\hline
\end{tabularx}
\end{table}
%
%\begin{table}[htb]
%\caption{\label{table:alg_ss} Memory Domains}
%\begin{tabularx}{\columnwidth} { S{l}X }
%\hline
%Superscript & Domain \\
%\hline
%$\gmem{\cdot}$ & Variable in global GPU memory \\
%$\cmem{\cdot}$ & Variable in constant memory \\
%$\shmem{\cdot}$ & Variable in shared memory \\
%\hline
%\end{tabularx}
%\end{table}
|