Skip to content
Snippets Groups Projects
Commit 15230c69 authored by Ben Cumming's avatar Ben Cumming Committed by Sam Yates
Browse files

block-interleaved gpu matrix solver (#208)

Fixes #185.

Add a new back end GPU Hines matrix solver that uses a block-interleaved storage pattern to improve memory coalescing during the matrix solve.

  * Refactor the `src/backends` path into `src/backends/gpu` and `src/backends/multicore` paths that contain `gpu` and `multicore` implementations.
  * Refactor the matrix state and threshold detection members that were declared inline in the back end specifications to separate files.
  * Add a new interleaved matrix state back end.
  * Refactor all of the GPU kernels that were originally in the one back end header file into their own header files.
  * Write more comprehensive unit tests for the GPU matrix solver back end to test the `interleave` and `reverse_interleave` operations in isolation, as well as ensure that the flat and interleaved back ends produce identical results.
  * Add the GPU versions of the kinetic scheme validation tests.
parent ca328a21
No related branches found
No related tags found
Showing
with 1196 additions and 768 deletions
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment