Background:
I have been working on and have completed a first pass at enabling the GPU offload of Atlas's matrix-based interpolation routines.
This work was initially submitted as 2 PR's:
However, after discussion with Willem it was decided to break-up the second PR into 4 smaller PRs based on the above breakdown (see ecmwf#239 (comment)).
Current State:
Below I've presented the current state broken down by branch
-
branch: feature/hicsparse (merged into Atlas - no further actions requried):
-
branch: feature/sparse-linalg-multiply-add (merged into Atlas - no further actions requried):
-
branch: feature/add-gpu-offload-capable-sparse-matrix (superseded by feature/sparse_storage_with_view):
-
branch: feature/add-hicsparse-backend-to-linalg-sparse (merged into Atlas - no further actions requried):
-
branch: feature/update-interpolation-to-support-sparse-linalg-hicsparse-backend (waiting on dependencies to merge):
- updates interpolation to support use of linalg sparse hicsparse backend
- currently based on
feature/sparse_storage_with_view and depends on feature/add-hicsparse-backend-to-linalg-sparse.
- No PR submitted yet. Once all of this branches dependencies are merged this branch should be rebased onto develop (and any fixes made dues to changes in dependencies). If one wants to test this branch it is straight-forward to simply merge in its dependencies.
-
Note: on rebasing this branch onto
feature/sparse_storage_with_view I made some simplifications along side necessary changes.
Background:
I have been working on and have completed a first pass at enabling the GPU offload of Atlas's matrix-based interpolation routines.
This work was initially submitted as 2 PR's:
feature/hicsparse): adds wrappers for cuSparse/hipSparse into hicfeature/hicsparse-sparse-linalg-backend):However, after discussion with Willem it was decided to break-up the second PR into 4 smaller PRs based on the above breakdown (see ecmwf#239 (comment)).
Current State:
Below I've presented the current state broken down by branch
branch:
feature/hicsparse(merged into Atlas - no further actions requried):0.40.0PR submitted, Add wrappers for cu/hipsparse to hic ecmwf/atlas#237, and has been reviewed. It is just waiting on Willem to test on an AMD platform. This PR has no dependencies.branch:
feature/sparse-linalg-multiply-add(merged into Atlas - no further actions requried):0.40.0PR submitted, Extend sparse linear algebra interface with multiply-add ecmwf/atlas#240, and has not yet been reviewed. This PR has no dependencies, however, there is a slight overlap in scope withfeature/add-gpu-offload-capable-sparse-matrixwhich also makes modification to files within atlas/linalg/sparse, although the only merge conflict might be in atlas/test/linalg/CMakeLists.txt where 2 tests have been added in the same place.branch:(superseded byfeature/add-gpu-offload-capable-sparse-matrixfeature/sparse_storage_with_view):branch:
feature/add-hicsparse-backend-to-linalg-sparse(merged into Atlas - no further actions requried):feature/sparse_storage_with_view, and depends on no other branches.branch:
feature/update-interpolation-to-support-sparse-linalg-hicsparse-backend(waiting on dependencies to merge):feature/sparse_storage_with_viewand depends onfeature/add-hicsparse-backend-to-linalg-sparse.feature/sparse_storage_with_viewI made some simplifications along side necessary changes.