Implementation and optimization of the geometric multigrid method using the GPU and OpenCL / eingereicht von Simon Hoffmann, M.Sc. Wuppertal, 18.02.2026
Inhalt
- Acknowledgments
- Contents
- Introduction
- Fundamental Elements
- Problem Definition and Discretization
- Iterative Methods
- Geometric Multigrid Method
- High Performance Computing
- Other Implementations
- GPU Architecture and OpenCL
- OpenCL Overview
- History of OpenCL
- OpenCL Programming Model
- Hardware Implementation / GPU Architecture
- OpenCL Workflow
- OpenCL C Kernel Language
- OpenCL Under the Hood
- Best Practices
- Saturating the Device
- TLP and ILP
- Execution Parameters
- Host-Device Communication and Kernel Streamlining
- Memory Access Patterns
- Local Memory Usage
- Miscellaneous
- Profiling Methods
- Implementation of Multigrid Components on Single-GPU and its Optimizations
- Implementation Overview
- Jacobi's Method and Residual Calculation With Varying Coefficients
- Basic Residual Kernel
- Coefficients Data Layout
- Kernel Granularity
- Exploiting Data Locality
- Jacobi Split Versus Fused
- Multiple Jacobi Iterations Without Intermediate Ghost Update
- Blocking Techniques
- Jacobi's Method and Residual Calculation With Fixed Coefficients
- Ghost Update
- Inter-Grid Transfer
- Residual Sum
- Coarse Grid Operator
- Matrix-based Approach (Stencil Arithmetic)
- Galerkin via Stencil Arithmetic
- Operating Directly on the Coarse Grid
- Miscellaneous
- Multi-GPU Optimizations
- Grid Hierarchy
- Coarse Grid Operator Computation
- Ghost Update
- Multiple Jacobi Iterations Without Intermediate Ghost Update Revisited
- Overlapped Jacobi's Method
- Blockstencil Implementation
- Evaluation
- Conclusion and Outlook
- Appendix
- Data Access Patterns
- Residual Kernel Profiling Data
- Jacobi Blocking
- Residual With Fixed Coefficients
- Conversion Between Matrix and Stencil Notations
- Overlapped Jacobi's method
- Blockstencil Residual
- List of Figures
- List of Tables
- Bibliography
