DOI: https://doi.org/10.15368/theses.2021.27
Available at: https://digitalcommons.calpoly.edu/theses/2284
Date of Award
3-2021
Degree Name
MS in Computer Science
Department/Program
Computer Science
College
College of Engineering
Advisor
Zoe Wood
Advisor Department
Computer Science
Advisor College
College of Engineering
Abstract
Within computational continuum mechanics there exists a large category of simulation methods which operate by tracking Lagrangian particles over an Eulerian background grid. These Lagrangian/Eulerian hybrid methods, descendants of the Particle-In-Cell method (PIC), have proven highly effective at simulating a broad range of materials and mechanics including fluids, solids, granular materials, and plasma. These methods remain an area of active research after several decades, and their applications can be found across scientific, engineering, and entertainment disciplines.
This thesis presents a GPU driven PIC-like simulation framework created using the Vulkan® API. Vulkan is a cross-platform and open-standard explicit API for graphics and GPU compute programming. Compared to its predecessors, Vulkan offers lower overhead, support for host parallelism, and finer grain control over both device resources and scheduling. This thesis harnesses those advantages to create a programmable GPU compute pipeline backed by a Vulkan adaptation of the SPgrid data-structure and multi-buffered particle arrays. The CPU host system works asynchronously with the GPU to maximize utilization of both the host and device. The framework is demonstrated to be capable of supporting Particle-in-Cell like simulation methods, making it viable for GPU acceleration of many Lagrangian particle on Eulerian grid hybrid methods. This novel framework is the first of its kind to be created using Vulkan® and to take advantage of GPU sparse memory features for grid sparsity.
Animated illustration of asynchronous particle data-flow under idealized circumstances
toyseq.mp4 (65718 kB)
Exploding dino simulation
vkseq_512Redux_30fps.mp4 (6622 kB)
Vulkan logo drop simulated animation (512 grid resolution)
vkseq_512Redux_Grid_30fps.mp4 (10448 kB)
Vulkan logo drop simulated animation w/ grid visualization (512 grid resolution)
vkseq_1024Redux_30fps.mp4 (9913 kB)
Vulkan logo drop simulated animation (1024 grid resolution)
vkseq_1024Redux_Grid_30fps.mp4 (11470 kB)
Vulkan logo drop simulated animation w/ grid visualization (1024 grid resolution)