Skip to main content
Fig. 14 | Advanced Structural and Chemical Imaging

Fig. 14

From: Efficient implementation of a local tomography reconstruction algorithm

Fig. 14

Illustration of the GPU LUT-based point-projector. The memory range \([p_k, p_{k+1}-1]\) in LUT J (top, shaded orange) contains all the indexes needed to be accessed in the coefficients vector to compute \(\mathrm {sino}[k]\). In this illustration, each thread reads \(m = 2\) values in the LUT (red rectangles). The threads are grouped in blocks of n threads (blue rectangles). In the block 1, threads \(t_{1, 1}, \ldots , t_{1, n}\) update a temporary shared array with their contribution. The same is done in block 2, where another temporary shared array is used. Then, one thread per block accumulates the results of the shared array and adds the results to \(\mathrm {sino}[k]\). The addition has to be atomic, as threads from several groups might access \(\mathrm {sino}[k]\) at the same time.

Back to article page