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
No related merge requests 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