Book contents
- Frontmatter
- Dedication
- Contents
- Figures
- Tables
- Examples
- Preface
- 1 Introduction to GPU Kernels and Hardware
- 2 Thinking and Coding in Parallel
- 3 Warps and Cooperative Groups
- 4 Parallel Stencils
- 5 Textures
- 6 Monte Carlo Applications
- 7 Concurrency Using CUDA Streams and Events
- 8 Application to PET Scanners
- 9 Scaling Up
- 10 Tools for Profiling and Debugging
- 11 Tensor Cores
- Appendix A A Brief History of CUDA
- Appendix B Atomic Operations
- Appendix C The NVCC Compiler
- Appendix D AVX and the Intel Compiler
- Appendix E Number Formats
- Appendix F CUDA Documentation and Libraries
- Appendix G The CX Header Files
- Appendix H AI and Python
- Appendix I Topics in C++
- Index
8 - Application to PET Scanners
Published online by Cambridge University Press: 04 May 2022
- Frontmatter
- Dedication
- Contents
- Figures
- Tables
- Examples
- Preface
- 1 Introduction to GPU Kernels and Hardware
- 2 Thinking and Coding in Parallel
- 3 Warps and Cooperative Groups
- 4 Parallel Stencils
- 5 Textures
- 6 Monte Carlo Applications
- 7 Concurrency Using CUDA Streams and Events
- 8 Application to PET Scanners
- 9 Scaling Up
- 10 Tools for Profiling and Debugging
- 11 Tensor Cores
- Appendix A A Brief History of CUDA
- Appendix B Atomic Operations
- Appendix C The NVCC Compiler
- Appendix D AVX and the Intel Compiler
- Appendix E Number Formats
- Appendix F CUDA Documentation and Libraries
- Appendix G The CX Header Files
- Appendix H AI and Python
- Appendix I Topics in C++
- Index
Summary
Chapter 8 demonstrates in detail the simulation of data acquisition and analysis in a large experiment. The case chosen is simulation of event detection in a clinical PET scanner and the subsequent reconstruction of activity distribution in the subject. This is directly relevant to people working in medical imaging but also more generally it is an example of how to approach a large simulation.We present examples illustrating random event generation, ray tracing in both simple and more complex geometries and the subsequent analysis to find the detector response in the form of a system matrix. Reconstruction of simulated patient data is then performed using the MLEM algorithm. Numerous optimisation details are discussed including the use of polar coordinates to fully exploit the symmetry of the detector system. The calculations involved are substantial and the GPU is very effective with speed-ups of over 1000 for simulation and the MLEM, iteration time is reduced to a few seconds. At the end of the chapter, Richardson–Lucy deconvolution of some blurred text is demonstrated as a different application of the MLEM method. The method converges slowly and we find that deblurring continues to improve even after 1000000 iterations.
Keywords
- Type
- Chapter
- Information
- Programming in Parallel with CUDAA Practical Guide, pp. 239 - 292Publisher: Cambridge University PressPrint publication year: 2022