Skip to content

Commit

Permalink
Public interface and basic reference kernels for fixed-size block CSR
Browse files Browse the repository at this point in the history
Merge pull request #671
  • Loading branch information
Slaedr authored Mar 29, 2021
2 parents 4544de7 + b2ea21f commit 3ab51db
Show file tree
Hide file tree
Showing 30 changed files with 4,567 additions and 0 deletions.
1 change: 1 addition & 0 deletions contributors.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ Grützmacher Thomas <thogru.kit@gmx.de> Karlsruhe Institute of Technology
Heroux Mike <maherou@sandia.gov> Sandia National Laboratories
Hoemmen Mark <mhoemme@sandia.gov> Sandia National Laboratories
Holeksa Claudius <mail@keldu.de> Karlsruhe Institute of Technology
Kashi Aditya <aditya.kashi@kit.edu> Karlsruhe Institute of Technology
Maier Matthias <matthias@43-1.org> Texas A&M University
Nayak Pratik <pratik.nayak@kit.edu> Karlsruhe Institute of Technology
Olenik Gregor <go@hpsim.de> HPSim
Expand Down
1 change: 1 addition & 0 deletions core/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ target_sources(ginkgo
matrix/dense.cpp
matrix/diagonal.cpp
matrix/ell.cpp
matrix/fbcsr.cpp
matrix/hybrid.cpp
matrix/identity.cpp
matrix/permutation.cpp
Expand Down
73 changes: 73 additions & 0 deletions core/device_hooks/common_kernels.inc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "core/matrix/dense_kernels.hpp"
#include "core/matrix/diagonal_kernels.hpp"
#include "core/matrix/ell_kernels.hpp"
#include "core/matrix/fbcsr_kernels.hpp"
#include "core/matrix/hybrid_kernels.hpp"
#include "core/matrix/sellp_kernels.hpp"
#include "core/matrix/sparsity_csr_kernels.hpp"
Expand Down Expand Up @@ -803,6 +804,78 @@ GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE(GKO_DECLARE_CSR_EXTRACT_DIAGONAL);
} // namespace csr


namespace fbcsr {


template <typename ValueType, typename IndexType>
GKO_DECLARE_FBCSR_SPMV_KERNEL(ValueType, IndexType)
GKO_NOT_COMPILED(GKO_HOOK_MODULE);
GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE(GKO_DECLARE_FBCSR_SPMV_KERNEL);

template <typename ValueType, typename IndexType>
GKO_DECLARE_FBCSR_ADVANCED_SPMV_KERNEL(ValueType, IndexType)
GKO_NOT_COMPILED(GKO_HOOK_MODULE);
GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE(
GKO_DECLARE_FBCSR_ADVANCED_SPMV_KERNEL);

template <typename ValueType, typename IndexType>
GKO_DECLARE_FBCSR_CONVERT_TO_DENSE_KERNEL(ValueType, IndexType)
GKO_NOT_COMPILED(GKO_HOOK_MODULE);
GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE(
GKO_DECLARE_FBCSR_CONVERT_TO_DENSE_KERNEL);

template <typename ValueType, typename IndexType>
GKO_DECLARE_FBCSR_CONVERT_TO_CSR_KERNEL(ValueType, IndexType)
GKO_NOT_COMPILED(GKO_HOOK_MODULE);
GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE(
GKO_DECLARE_FBCSR_CONVERT_TO_CSR_KERNEL);

template <typename ValueType, typename IndexType>
GKO_DECLARE_FBCSR_TRANSPOSE_KERNEL(ValueType, IndexType)
GKO_NOT_COMPILED(GKO_HOOK_MODULE);
GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE(
GKO_DECLARE_FBCSR_TRANSPOSE_KERNEL);

template <typename ValueType, typename IndexType>
GKO_DECLARE_FBCSR_CONJ_TRANSPOSE_KERNEL(ValueType, IndexType)
GKO_NOT_COMPILED(GKO_HOOK_MODULE);
GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE(
GKO_DECLARE_FBCSR_CONJ_TRANSPOSE_KERNEL);

template <typename ValueType, typename IndexType>
GKO_DECLARE_FBCSR_CALCULATE_MAX_NNZ_PER_ROW_KERNEL(ValueType, IndexType)
GKO_NOT_COMPILED(GKO_HOOK_MODULE);
GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE(
GKO_DECLARE_FBCSR_CALCULATE_MAX_NNZ_PER_ROW_KERNEL);

template <typename ValueType, typename IndexType>
GKO_DECLARE_FBCSR_CALCULATE_NONZEROS_PER_ROW_KERNEL(ValueType, IndexType)
GKO_NOT_COMPILED(GKO_HOOK_MODULE);
GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE(
GKO_DECLARE_FBCSR_CALCULATE_NONZEROS_PER_ROW_KERNEL);

template <typename ValueType, typename IndexType>
GKO_DECLARE_FBCSR_IS_SORTED_BY_COLUMN_INDEX(ValueType, IndexType)
GKO_NOT_COMPILED(GKO_HOOK_MODULE);
GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE(
GKO_DECLARE_FBCSR_IS_SORTED_BY_COLUMN_INDEX);

template <typename ValueType, typename IndexType>
GKO_DECLARE_FBCSR_SORT_BY_COLUMN_INDEX(ValueType, IndexType)
GKO_NOT_COMPILED(GKO_HOOK_MODULE);
GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE(
GKO_DECLARE_FBCSR_SORT_BY_COLUMN_INDEX);

template <typename ValueType, typename IndexType>
GKO_DECLARE_FBCSR_EXTRACT_DIAGONAL(ValueType, IndexType)
GKO_NOT_COMPILED(GKO_HOOK_MODULE);
GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE(
GKO_DECLARE_FBCSR_EXTRACT_DIAGONAL);


} // namespace fbcsr


namespace coo {


Expand Down
Loading

0 comments on commit 3ab51db

Please sign in to comment.