Hi everyone,
I’m working on brae, a GPU-resident CFD solver for OpenFOAM-style cases. The goal is to run existing OpenFOAM cases on one GPU while avoiding the usual CPU-GPU transfer loop every iteration.
The current implementation focuses on a simpleFoam-compatible path: matrix assembly, pressure correction, turbulence updates, and linear solves are designed to stay resident on the GPU. In our current benchmark, brae is around ~5× faster than a GPU-accelerated OpenFOAM setup on the same GPU, with validation error under 1%.
I’m looking for technical feedback from CUDA/HPC developers, especially around:
- sparse linear solver design for CFD workloads
- memory layout for finite-volume meshes
- LDU/CSR representation on GPU
- reducing synchronization and host-device transfers
- whether grid-stride kernels are enough here, or where more specialized CUDA patterns would help
The repo is here:
I’d appreciate any feedback on the CUDA architecture, benchmarking approach, or solver design. This is still early, but the goal is to make existing OpenFOAM-style cases run faster on modern NVIDIA GPUs without forcing users to rewrite their workflows.