diff --git a/core/device_hooks/common_kernels.inc.cpp b/core/device_hooks/common_kernels.inc.cpp index 615fdceb0db..b4d28d42702 100644 --- a/core/device_hooks/common_kernels.inc.cpp +++ b/core/device_hooks/common_kernels.inc.cpp @@ -79,44 +79,93 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #endif // GKO_HOOK_MODULE +#define GKO_STUB(_macro) _macro GKO_NOT_COMPILED(GKO_HOOK_MODULE) + +#define GKO_STUB_VALUE_CONVERSION(_macro) \ + template \ + _macro(SourceType, TargetType) GKO_NOT_COMPILED(GKO_HOOK_MODULE); \ + GKO_INSTANTIATE_FOR_EACH_VALUE_CONVERSION(_macro) + +#define GKO_STUB_NON_COMPLEX_VALUE_TYPE(_macro) \ + template \ + _macro(ValueType) GKO_NOT_COMPILED(GKO_HOOK_MODULE); \ + GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(_macro) + +#define GKO_STUB_VALUE_TYPE(_macro) \ + template \ + _macro(ValueType) GKO_NOT_COMPILED(GKO_HOOK_MODULE); \ + GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(_macro) + +#define GKO_STUB_VALUE_AND_SCALAR_TYPE(_macro) \ + template \ + _macro(ValueType, ScalarType) GKO_NOT_COMPILED(GKO_HOOK_MODULE); \ + GKO_INSTANTIATE_FOR_EACH_VALUE_AND_SCALAR_TYPE(_macro) + +#define GKO_STUB_INDEX_TYPE(_macro) \ + template \ + _macro(IndexType) GKO_NOT_COMPILED(GKO_HOOK_MODULE); \ + GKO_INSTANTIATE_FOR_EACH_INDEX_TYPE(_macro) + +#define GKO_STUB_NON_COMPLEX_VALUE_AND_INDEX_TYPE(_macro) \ + template \ + _macro(ValueType, IndexType) GKO_NOT_COMPILED(GKO_HOOK_MODULE); \ + GKO_INSTANTIATE_FOR_EACH_NON_COMPLEX_VALUE_AND_INDEX_TYPE(_macro) + +#define GKO_STUB_VALUE_AND_INDEX_TYPE(_macro) \ + template \ + _macro(ValueType, IndexType) GKO_NOT_COMPILED(GKO_HOOK_MODULE); \ + GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE(_macro) + +#define GKO_STUB_MIXED_VALUE_AND_INDEX_TYPE(_macro) \ + template \ + _macro(InputValueType, MatrixValueType, OutputValueType, IndexType) \ + GKO_NOT_COMPILED(GKO_HOOK_MODULE); \ + GKO_INSTANTIATE_FOR_EACH_MIXED_VALUE_AND_INDEX_TYPE(_macro); + +#define GKO_STUB_TEMPLATE_TYPE(_macro) \ + template \ + _macro(IndexType) GKO_NOT_COMPILED(GKO_HOOK_MODULE); \ + GKO_INSTANTIATE_FOR_EACH_TEMPLATE_TYPE(_macro) + +#define GKO_STUB_VALUE_CONVERSION(_macro) \ + template \ + _macro(SourceType, TargetType) GKO_NOT_COMPILED(GKO_HOOK_MODULE); \ + GKO_INSTANTIATE_FOR_EACH_VALUE_CONVERSION(_macro) + +#define GKO_STUB_VALUE_CONVERSION_OR_COPY(_macro) \ + template \ + _macro(SourceType, TargetType) GKO_NOT_COMPILED(GKO_HOOK_MODULE); \ + GKO_INSTANTIATE_FOR_EACH_VALUE_CONVERSION_OR_COPY(_macro) + +#define GKO_STUB_CB_GMRES(_macro) \ + template \ + _macro(ValueType, ValueTypeKrylovBases) GKO_NOT_COMPILED(GKO_HOOK_MODULE); \ + GKO_INSTANTIATE_FOR_EACH_CB_GMRES_TYPE(_macro) + +#define GKO_STUB_CB_GMRES_CONST(_macro) \ + template \ + _macro(ValueType, ValueTypeKrylovBases) GKO_NOT_COMPILED(GKO_HOOK_MODULE); \ + GKO_INSTANTIATE_FOR_EACH_CB_GMRES_CONST_TYPE(_macro) + namespace gko { namespace kernels { namespace GKO_HOOK_MODULE { namespace components { -template -GKO_DECLARE_CONVERT_PRECISION_KERNEL(SourceType, TargetType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_CONVERSION(GKO_DECLARE_CONVERT_PRECISION_KERNEL); - -template -GKO_DECLARE_PREFIX_SUM_KERNEL(IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_INDEX_TYPE(GKO_DECLARE_PREFIX_SUM_KERNEL); -// explicitly instantiate for size_type, as this is used in the SellP format +GKO_STUB_VALUE_CONVERSION(GKO_DECLARE_CONVERT_PRECISION_KERNEL); +GKO_STUB_INDEX_TYPE(GKO_DECLARE_PREFIX_SUM_KERNEL); +// explicitly instantiate for size_type, as this is +// used in the SellP format template GKO_DECLARE_PREFIX_SUM_KERNEL(size_type); -template -GKO_DECLARE_FILL_ARRAY_KERNEL(IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_TEMPLATE_TYPE(GKO_DECLARE_FILL_ARRAY_KERNEL); +GKO_STUB_TEMPLATE_TYPE(GKO_DECLARE_FILL_ARRAY_KERNEL); template GKO_DECLARE_FILL_ARRAY_KERNEL(bool); -template -GKO_DECLARE_FILL_SEQ_ARRAY_KERNEL(IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_TEMPLATE_TYPE(GKO_DECLARE_FILL_SEQ_ARRAY_KERNEL); - -template -GKO_DECLARE_INPLACE_ABSOLUTE_ARRAY_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_INPLACE_ABSOLUTE_ARRAY_KERNEL); - -template -GKO_DECLARE_OUTPLACE_ABSOLUTE_ARRAY_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_OUTPLACE_ABSOLUTE_ARRAY_KERNEL); +GKO_STUB_TEMPLATE_TYPE(GKO_DECLARE_FILL_SEQ_ARRAY_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_INPLACE_ABSOLUTE_ARRAY_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_OUTPLACE_ABSOLUTE_ARRAY_KERNEL); } // namespace components @@ -125,209 +174,43 @@ GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_OUTPLACE_ABSOLUTE_ARRAY_KERNEL); namespace dense { -template -GKO_DECLARE_DENSE_SIMPLE_APPLY_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_DENSE_SIMPLE_APPLY_KERNEL); - -template -GKO_DECLARE_DENSE_APPLY_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_DENSE_APPLY_KERNEL); - -template -GKO_DECLARE_DENSE_COPY_KERNEL(InValueType, OutValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_CONVERSION_OR_COPY( - GKO_DECLARE_DENSE_COPY_KERNEL); - -template -GKO_DECLARE_DENSE_FILL_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_DENSE_FILL_KERNEL); - -template -GKO_DECLARE_DENSE_SCALE_KERNEL(ValueType, ScalarType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_SCALAR_TYPE(GKO_DECLARE_DENSE_SCALE_KERNEL); - -template -GKO_DECLARE_DENSE_INV_SCALE_KERNEL(ValueType, ScalarType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_SCALAR_TYPE( - GKO_DECLARE_DENSE_INV_SCALE_KERNEL); - -template -GKO_DECLARE_DENSE_ADD_SCALED_KERNEL(ValueType, ScalarType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_SCALAR_TYPE( - GKO_DECLARE_DENSE_ADD_SCALED_KERNEL); - -template -GKO_DECLARE_DENSE_SUB_SCALED_KERNEL(ValueType, ScalarType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_SCALAR_TYPE( - GKO_DECLARE_DENSE_SUB_SCALED_KERNEL); - -template -GKO_DECLARE_DENSE_ADD_SCALED_DIAG_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_DENSE_ADD_SCALED_DIAG_KERNEL); - -template -GKO_DECLARE_DENSE_SUB_SCALED_DIAG_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_DENSE_SUB_SCALED_DIAG_KERNEL); - -template -GKO_DECLARE_DENSE_COMPUTE_DOT_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_DENSE_COMPUTE_DOT_KERNEL); - -template -GKO_DECLARE_DENSE_COMPUTE_CONJ_DOT_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_DENSE_COMPUTE_CONJ_DOT_KERNEL); - -template -GKO_DECLARE_DENSE_COMPUTE_NORM2_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_DENSE_COMPUTE_NORM2_KERNEL); - -template -GKO_DECLARE_DENSE_CONVERT_TO_COO_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_DENSE_CONVERT_TO_COO_KERNEL); - -template -GKO_DECLARE_DENSE_CONVERT_TO_CSR_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_DENSE_CONVERT_TO_CSR_KERNEL); - -template -GKO_DECLARE_DENSE_CONVERT_TO_ELL_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_DENSE_CONVERT_TO_ELL_KERNEL); - -template -GKO_DECLARE_DENSE_CONVERT_TO_HYBRID_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_DENSE_CONVERT_TO_HYBRID_KERNEL); - -template -GKO_DECLARE_DENSE_CONVERT_TO_SELLP_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_DENSE_CONVERT_TO_SELLP_KERNEL); - -template -GKO_DECLARE_DENSE_CONVERT_TO_SPARSITY_CSR_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_DENSE_CONVERT_TO_SPARSITY_CSR_KERNEL); - -template -GKO_DECLARE_DENSE_COUNT_NONZEROS_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_DENSE_COUNT_NONZEROS_KERNEL); - -template -GKO_DECLARE_DENSE_CALCULATE_MAX_NNZ_PER_ROW_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE( - GKO_DECLARE_DENSE_CALCULATE_MAX_NNZ_PER_ROW_KERNEL); - -template -GKO_DECLARE_DENSE_CALCULATE_NONZEROS_PER_ROW_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE( - GKO_DECLARE_DENSE_CALCULATE_NONZEROS_PER_ROW_KERNEL); - -template -GKO_DECLARE_DENSE_CALCULATE_TOTAL_COLS_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE( - GKO_DECLARE_DENSE_CALCULATE_TOTAL_COLS_KERNEL); - -template -GKO_DECLARE_DENSE_TRANSPOSE_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_DENSE_TRANSPOSE_KERNEL); - -template -GKO_DECLARE_DENSE_CONJ_TRANSPOSE_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_DENSE_CONJ_TRANSPOSE_KERNEL); - -template -GKO_DECLARE_DENSE_SYMM_PERMUTE_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_DENSE_SYMM_PERMUTE_KERNEL); - -template -GKO_DECLARE_DENSE_INV_SYMM_PERMUTE_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_DENSE_INV_SYMM_PERMUTE_KERNEL); - -template -GKO_DECLARE_DENSE_ROW_GATHER_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_DENSE_ROW_GATHER_KERNEL); - -template -GKO_DECLARE_DENSE_COLUMN_PERMUTE_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_DENSE_COLUMN_PERMUTE_KERNEL); - -template -GKO_DECLARE_DENSE_INV_ROW_PERMUTE_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_DENSE_INV_ROW_PERMUTE_KERNEL); - -template -GKO_DECLARE_DENSE_INV_COLUMN_PERMUTE_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_DENSE_INV_COLUMN_PERMUTE_KERNEL); - -template -GKO_DECLARE_DENSE_EXTRACT_DIAGONAL_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_DENSE_EXTRACT_DIAGONAL_KERNEL); - -template -GKO_DECLARE_INPLACE_ABSOLUTE_DENSE_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_INPLACE_ABSOLUTE_DENSE_KERNEL); - -template -GKO_DECLARE_OUTPLACE_ABSOLUTE_DENSE_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_OUTPLACE_ABSOLUTE_DENSE_KERNEL); - -template -GKO_DECLARE_MAKE_COMPLEX_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_MAKE_COMPLEX_KERNEL); - -template -GKO_DECLARE_GET_REAL_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_GET_REAL_KERNEL); - -template -GKO_DECLARE_GET_IMAG_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_GET_IMAG_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_DENSE_SIMPLE_APPLY_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_DENSE_APPLY_KERNEL); +GKO_STUB_VALUE_CONVERSION_OR_COPY(GKO_DECLARE_DENSE_COPY_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_DENSE_FILL_KERNEL); +GKO_STUB_VALUE_AND_SCALAR_TYPE(GKO_DECLARE_DENSE_SCALE_KERNEL); +GKO_STUB_VALUE_AND_SCALAR_TYPE(GKO_DECLARE_DENSE_INV_SCALE_KERNEL); +GKO_STUB_VALUE_AND_SCALAR_TYPE(GKO_DECLARE_DENSE_ADD_SCALED_KERNEL); +GKO_STUB_VALUE_AND_SCALAR_TYPE(GKO_DECLARE_DENSE_SUB_SCALED_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_DENSE_ADD_SCALED_DIAG_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_DENSE_SUB_SCALED_DIAG_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_DENSE_COMPUTE_DOT_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_DENSE_COMPUTE_CONJ_DOT_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_DENSE_COMPUTE_NORM2_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_DENSE_CONVERT_TO_COO_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_DENSE_CONVERT_TO_CSR_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_DENSE_CONVERT_TO_ELL_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_DENSE_CONVERT_TO_HYBRID_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_DENSE_CONVERT_TO_SELLP_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_DENSE_CONVERT_TO_SPARSITY_CSR_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_DENSE_COUNT_NONZEROS_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_DENSE_CALCULATE_MAX_NNZ_PER_ROW_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_DENSE_CALCULATE_NONZEROS_PER_ROW_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_DENSE_CALCULATE_TOTAL_COLS_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_DENSE_TRANSPOSE_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_DENSE_CONJ_TRANSPOSE_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_DENSE_SYMM_PERMUTE_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_DENSE_INV_SYMM_PERMUTE_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_DENSE_ROW_GATHER_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_DENSE_COLUMN_PERMUTE_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_DENSE_INV_ROW_PERMUTE_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_DENSE_INV_COLUMN_PERMUTE_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_DENSE_EXTRACT_DIAGONAL_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_INPLACE_ABSOLUTE_DENSE_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_OUTPLACE_ABSOLUTE_DENSE_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_MAKE_COMPLEX_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_GET_REAL_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_GET_IMAG_KERNEL); } // namespace dense @@ -336,39 +219,12 @@ GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_GET_IMAG_KERNEL); namespace diagonal { -template -GKO_DECLARE_DIAGONAL_APPLY_TO_DENSE_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_DIAGONAL_APPLY_TO_DENSE_KERNEL); - -template -GKO_DECLARE_DIAGONAL_RIGHT_APPLY_TO_DENSE_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE( - GKO_DECLARE_DIAGONAL_RIGHT_APPLY_TO_DENSE_KERNEL); - -template -GKO_DECLARE_DIAGONAL_APPLY_TO_CSR_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_DIAGONAL_APPLY_TO_CSR_KERNEL); - -template -GKO_DECLARE_DIAGONAL_RIGHT_APPLY_TO_CSR_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_DIAGONAL_RIGHT_APPLY_TO_CSR_KERNEL); - -template -GKO_DECLARE_DIAGONAL_CONVERT_TO_CSR_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_DIAGONAL_CONVERT_TO_CSR_KERNEL); - -template -GKO_DECLARE_DIAGONAL_CONJ_TRANSPOSE_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_DIAGONAL_CONJ_TRANSPOSE_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_DIAGONAL_APPLY_TO_DENSE_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_DIAGONAL_RIGHT_APPLY_TO_DENSE_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_DIAGONAL_APPLY_TO_CSR_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_DIAGONAL_RIGHT_APPLY_TO_CSR_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_DIAGONAL_CONVERT_TO_CSR_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_DIAGONAL_CONJ_TRANSPOSE_KERNEL); } // namespace diagonal @@ -377,20 +233,9 @@ GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_DIAGONAL_CONJ_TRANSPOSE_KERNEL); namespace cg { -template -GKO_DECLARE_CG_INITIALIZE_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_CG_INITIALIZE_KERNEL); - -template -GKO_DECLARE_CG_STEP_1_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_CG_STEP_1_KERNEL); - -template -GKO_DECLARE_CG_STEP_2_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_CG_STEP_2_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_CG_INITIALIZE_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_CG_STEP_1_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_CG_STEP_2_KERNEL); } // namespace cg @@ -399,20 +244,9 @@ GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_CG_STEP_2_KERNEL); namespace bicg { -template -GKO_DECLARE_BICG_INITIALIZE_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_BICG_INITIALIZE_KERNEL); - -template -GKO_DECLARE_BICG_STEP_1_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_BICG_STEP_1_KERNEL); - -template -GKO_DECLARE_BICG_STEP_2_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_BICG_STEP_2_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_BICG_INITIALIZE_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_BICG_STEP_1_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_BICG_STEP_2_KERNEL); } // namespace bicg @@ -421,23 +255,10 @@ GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_BICG_STEP_2_KERNEL); namespace lower_trs { -GKO_DECLARE_LOWER_TRS_SHOULD_PERFORM_TRANSPOSE_KERNEL() -GKO_NOT_COMPILED(GKO_HOOK_MODULE); - -GKO_DECLARE_LOWER_TRS_INIT_STRUCT_KERNEL() -GKO_NOT_COMPILED(GKO_HOOK_MODULE); - -template -GKO_DECLARE_LOWER_TRS_GENERATE_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_LOWER_TRS_GENERATE_KERNEL); - -template -GKO_DECLARE_LOWER_TRS_SOLVE_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_LOWER_TRS_SOLVE_KERNEL); +GKO_STUB(GKO_DECLARE_LOWER_TRS_SHOULD_PERFORM_TRANSPOSE_KERNEL); +GKO_STUB(GKO_DECLARE_LOWER_TRS_INIT_STRUCT_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_LOWER_TRS_GENERATE_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_LOWER_TRS_SOLVE_KERNEL); } // namespace lower_trs @@ -446,23 +267,10 @@ GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( namespace upper_trs { -GKO_DECLARE_UPPER_TRS_SHOULD_PERFORM_TRANSPOSE_KERNEL() -GKO_NOT_COMPILED(GKO_HOOK_MODULE); - -GKO_DECLARE_UPPER_TRS_INIT_STRUCT_KERNEL() -GKO_NOT_COMPILED(GKO_HOOK_MODULE); - -template -GKO_DECLARE_UPPER_TRS_GENERATE_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_UPPER_TRS_GENERATE_KERNEL); - -template -GKO_DECLARE_UPPER_TRS_SOLVE_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_UPPER_TRS_SOLVE_KERNEL); +GKO_STUB(GKO_DECLARE_UPPER_TRS_SHOULD_PERFORM_TRANSPOSE_KERNEL); +GKO_STUB(GKO_DECLARE_UPPER_TRS_INIT_STRUCT_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_UPPER_TRS_GENERATE_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_UPPER_TRS_SOLVE_KERNEL); } // namespace upper_trs @@ -471,20 +279,9 @@ GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( namespace fcg { -template -GKO_DECLARE_FCG_INITIALIZE_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_FCG_INITIALIZE_KERNEL); - -template -GKO_DECLARE_FCG_STEP_1_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_FCG_STEP_1_KERNEL); - -template -GKO_DECLARE_FCG_STEP_2_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_FCG_STEP_2_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_FCG_INITIALIZE_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_FCG_STEP_1_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_FCG_STEP_2_KERNEL); } // namespace fcg @@ -493,30 +290,11 @@ GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_FCG_STEP_2_KERNEL); namespace bicgstab { -template -GKO_DECLARE_BICGSTAB_INITIALIZE_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_BICGSTAB_INITIALIZE_KERNEL); - -template -GKO_DECLARE_BICGSTAB_STEP_1_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_BICGSTAB_STEP_1_KERNEL); - -template -GKO_DECLARE_BICGSTAB_STEP_2_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_BICGSTAB_STEP_2_KERNEL); - -template -GKO_DECLARE_BICGSTAB_STEP_3_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_BICGSTAB_STEP_3_KERNEL); - -template -GKO_DECLARE_BICGSTAB_FINALIZE_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_BICGSTAB_FINALIZE_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_BICGSTAB_INITIALIZE_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_BICGSTAB_STEP_1_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_BICGSTAB_STEP_2_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_BICGSTAB_STEP_3_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_BICGSTAB_FINALIZE_KERNEL); } // namespace bicgstab @@ -525,30 +303,11 @@ GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_BICGSTAB_FINALIZE_KERNEL); namespace idr { -template -GKO_DECLARE_IDR_INITIALIZE_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_IDR_INITIALIZE_KERNEL); - -template -GKO_DECLARE_IDR_STEP_1_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_IDR_STEP_1_KERNEL); - -template -GKO_DECLARE_IDR_STEP_2_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_IDR_STEP_2_KERNEL); - -template -GKO_DECLARE_IDR_STEP_3_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_IDR_STEP_3_KERNEL); - -template -GKO_DECLARE_IDR_COMPUTE_OMEGA_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_IDR_COMPUTE_OMEGA_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_IDR_INITIALIZE_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_IDR_STEP_1_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_IDR_STEP_2_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_IDR_STEP_3_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_IDR_COMPUTE_OMEGA_KERNEL); } // namespace idr @@ -557,25 +316,10 @@ GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_IDR_COMPUTE_OMEGA_KERNEL); namespace cgs { -template -GKO_DECLARE_CGS_INITIALIZE_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_CGS_INITIALIZE_KERNEL); - -template -GKO_DECLARE_CGS_STEP_1_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_CGS_STEP_1_KERNEL); - -template -GKO_DECLARE_CGS_STEP_2_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_CGS_STEP_2_KERNEL); - -template -GKO_DECLARE_CGS_STEP_3_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_CGS_STEP_3_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_CGS_INITIALIZE_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_CGS_STEP_1_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_CGS_STEP_2_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_CGS_STEP_3_KERNEL); } // namespace cgs @@ -584,25 +328,10 @@ GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_CGS_STEP_3_KERNEL); namespace gmres { -template -GKO_DECLARE_GMRES_INITIALIZE_1_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_GMRES_INITIALIZE_1_KERNEL); - -template -GKO_DECLARE_GMRES_INITIALIZE_2_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_GMRES_INITIALIZE_2_KERNEL); - -template -GKO_DECLARE_GMRES_STEP_1_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_GMRES_STEP_1_KERNEL); - -template -GKO_DECLARE_GMRES_STEP_2_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_GMRES_STEP_2_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_GMRES_INITIALIZE_1_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_GMRES_INITIALIZE_2_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_GMRES_STEP_1_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_GMRES_STEP_2_KERNEL); } // namespace gmres @@ -611,27 +340,10 @@ GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_GMRES_STEP_2_KERNEL); namespace cb_gmres { -template -GKO_DECLARE_CB_GMRES_INITIALIZE_1_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_CB_GMRES_INITIALIZE_1_KERNEL); - -template -GKO_DECLARE_CB_GMRES_INITIALIZE_2_KERNEL(ValueType, ValueTypeKrylovBases) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_CB_GMRES_TYPE( - GKO_DECLARE_CB_GMRES_INITIALIZE_2_KERNEL); - -template -GKO_DECLARE_CB_GMRES_STEP_1_KERNEL(ValueType, ValueTypeKrylovBases) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_CB_GMRES_TYPE(GKO_DECLARE_CB_GMRES_STEP_1_KERNEL); - -template -GKO_DECLARE_CB_GMRES_STEP_2_KERNEL(ValueType, ValueTypeKrylovBases) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_CB_GMRES_CONST_TYPE( - GKO_DECLARE_CB_GMRES_STEP_2_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_CB_GMRES_INITIALIZE_1_KERNEL); +GKO_STUB_CB_GMRES(GKO_DECLARE_CB_GMRES_INITIALIZE_2_KERNEL); +GKO_STUB_CB_GMRES(GKO_DECLARE_CB_GMRES_STEP_1_KERNEL); +GKO_STUB_CB_GMRES_CONST(GKO_DECLARE_CB_GMRES_STEP_2_KERNEL); } // namespace cb_gmres @@ -640,8 +352,7 @@ GKO_INSTANTIATE_FOR_EACH_CB_GMRES_CONST_TYPE( namespace ir { -GKO_DECLARE_IR_INITIALIZE_KERNEL -GKO_NOT_COMPILED(GKO_HOOK_MODULE); +GKO_STUB(GKO_DECLARE_IR_INITIALIZE_KERNEL); } // namespace ir @@ -650,21 +361,9 @@ GKO_NOT_COMPILED(GKO_HOOK_MODULE); namespace multigrid { -template -GKO_DECLARE_MULTIGRID_KCYCLE_STEP_1_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_MULTIGRID_KCYCLE_STEP_1_KERNEL); - -template -GKO_DECLARE_MULTIGRID_KCYCLE_STEP_2_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_MULTIGRID_KCYCLE_STEP_2_KERNEL); - -template -GKO_DECLARE_MULTIGRID_KCYCLE_CHECK_STOP_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_NON_COMPLEX_VALUE_TYPE( - GKO_DECLARE_MULTIGRID_KCYCLE_CHECK_STOP_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_MULTIGRID_KCYCLE_STEP_1_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_MULTIGRID_KCYCLE_STEP_2_KERNEL); +GKO_STUB_NON_COMPLEX_VALUE_TYPE(GKO_DECLARE_MULTIGRID_KCYCLE_CHECK_STOP_KERNEL); } // namespace multigrid @@ -673,47 +372,15 @@ GKO_INSTANTIATE_FOR_EACH_NON_COMPLEX_VALUE_TYPE( namespace sparsity_csr { -template -GKO_DECLARE_SPARSITY_CSR_SPMV_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_SPARSITY_CSR_SPMV_KERNEL); - -template -GKO_DECLARE_SPARSITY_CSR_ADVANCED_SPMV_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_SPARSITY_CSR_ADVANCED_SPMV_KERNEL); - -template -GKO_DECLARE_SPARSITY_CSR_COUNT_NUM_DIAGONAL_ELEMENTS_KERNEL(ValueType, - IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_SPARSITY_CSR_SPMV_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_SPARSITY_CSR_ADVANCED_SPMV_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE( GKO_DECLARE_SPARSITY_CSR_COUNT_NUM_DIAGONAL_ELEMENTS_KERNEL); - -template -GKO_DECLARE_SPARSITY_CSR_REMOVE_DIAGONAL_ELEMENTS_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( +GKO_STUB_VALUE_AND_INDEX_TYPE( GKO_DECLARE_SPARSITY_CSR_REMOVE_DIAGONAL_ELEMENTS_KERNEL); - -template -GKO_DECLARE_SPARSITY_CSR_TRANSPOSE_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_SPARSITY_CSR_TRANSPOSE_KERNEL); - -template -GKO_DECLARE_SPARSITY_CSR_SORT_BY_COLUMN_INDEX(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_SPARSITY_CSR_SORT_BY_COLUMN_INDEX); - -template -GKO_DECLARE_SPARSITY_CSR_IS_SORTED_BY_COLUMN_INDEX(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_SPARSITY_CSR_TRANSPOSE_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_SPARSITY_CSR_SORT_BY_COLUMN_INDEX); +GKO_STUB_VALUE_AND_INDEX_TYPE( GKO_DECLARE_SPARSITY_CSR_IS_SORTED_BY_COLUMN_INDEX); @@ -723,137 +390,30 @@ GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( namespace csr { -template -GKO_DECLARE_CSR_SPMV_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE(GKO_DECLARE_CSR_SPMV_KERNEL); - -template -GKO_DECLARE_CSR_ADVANCED_SPMV_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_CSR_ADVANCED_SPMV_KERNEL); - -template -GKO_DECLARE_CSR_SPGEMM_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE(GKO_DECLARE_CSR_SPGEMM_KERNEL); - -template -GKO_DECLARE_CSR_ADVANCED_SPGEMM_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_CSR_ADVANCED_SPGEMM_KERNEL); - -template -GKO_DECLARE_CSR_SPGEAM_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE(GKO_DECLARE_CSR_SPGEAM_KERNEL); - -template -GKO_DECLARE_CSR_CONVERT_TO_DENSE_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_CSR_CONVERT_TO_DENSE_KERNEL); - -template -GKO_DECLARE_CSR_CONVERT_TO_COO_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_CSR_CONVERT_TO_COO_KERNEL); - -template -GKO_DECLARE_CSR_CONVERT_TO_ELL_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_CSR_CONVERT_TO_ELL_KERNEL); - -template -GKO_DECLARE_CSR_CONVERT_TO_HYBRID_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_CSR_CONVERT_TO_HYBRID_KERNEL); - -template -GKO_DECLARE_CSR_CONVERT_TO_SELLP_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_CSR_CONVERT_TO_SELLP_KERNEL); - -template -GKO_DECLARE_CSR_CALCULATE_TOTAL_COLS_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_CSR_CALCULATE_TOTAL_COLS_KERNEL); - -template -GKO_DECLARE_CSR_TRANSPOSE_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE(GKO_DECLARE_CSR_TRANSPOSE_KERNEL); - -template -GKO_DECLARE_CSR_CONJ_TRANSPOSE_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_CSR_CONJ_TRANSPOSE_KERNEL); - -template -GKO_DECLARE_CSR_INV_SYMM_PERMUTE_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_CSR_INV_SYMM_PERMUTE_KERNEL); - -template -GKO_DECLARE_CSR_ROW_PERMUTE_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_CSR_ROW_PERMUTE_KERNEL); - -template -GKO_DECLARE_CSR_INVERSE_COLUMN_PERMUTE_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_CSR_INVERSE_COLUMN_PERMUTE_KERNEL); - -template -GKO_DECLARE_CSR_INVERSE_ROW_PERMUTE_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_CSR_INVERSE_ROW_PERMUTE_KERNEL); - -template -GKO_DECLARE_INVERT_PERMUTATION_KERNEL(IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_INDEX_TYPE(GKO_DECLARE_INVERT_PERMUTATION_KERNEL); - -template -GKO_DECLARE_CSR_CALCULATE_MAX_NNZ_PER_ROW_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_CSR_CALCULATE_MAX_NNZ_PER_ROW_KERNEL); - -template -GKO_DECLARE_CSR_CALCULATE_NONZEROS_PER_ROW_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_CSR_SPMV_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_CSR_ADVANCED_SPMV_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_CSR_SPGEMM_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_CSR_ADVANCED_SPGEMM_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_CSR_SPGEAM_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_CSR_CONVERT_TO_DENSE_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_CSR_CONVERT_TO_COO_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_CSR_CONVERT_TO_ELL_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_CSR_CONVERT_TO_HYBRID_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_CSR_CONVERT_TO_SELLP_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_CSR_CALCULATE_TOTAL_COLS_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_CSR_TRANSPOSE_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_CSR_CONJ_TRANSPOSE_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_CSR_INV_SYMM_PERMUTE_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_CSR_ROW_PERMUTE_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_CSR_INVERSE_COLUMN_PERMUTE_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_CSR_INVERSE_ROW_PERMUTE_KERNEL); +GKO_STUB_INDEX_TYPE(GKO_DECLARE_INVERT_PERMUTATION_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_CSR_CALCULATE_MAX_NNZ_PER_ROW_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE( GKO_DECLARE_CSR_CALCULATE_NONZEROS_PER_ROW_KERNEL); - -template -GKO_DECLARE_CSR_SORT_BY_COLUMN_INDEX(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_CSR_SORT_BY_COLUMN_INDEX); - -template -GKO_DECLARE_CSR_IS_SORTED_BY_COLUMN_INDEX(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_CSR_IS_SORTED_BY_COLUMN_INDEX); - -template -GKO_DECLARE_CSR_EXTRACT_DIAGONAL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE(GKO_DECLARE_CSR_EXTRACT_DIAGONAL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_CSR_SORT_BY_COLUMN_INDEX); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_CSR_IS_SORTED_BY_COLUMN_INDEX); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_CSR_EXTRACT_DIAGONAL); } // namespace csr @@ -862,70 +422,19 @@ GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE(GKO_DECLARE_CSR_EXTRACT_DIAGONAL); namespace fbcsr { -template -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 -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 -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 -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 -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 -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 -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_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_FBCSR_SPMV_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_FBCSR_ADVANCED_SPMV_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_FBCSR_CONVERT_TO_DENSE_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_FBCSR_CONVERT_TO_CSR_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_FBCSR_TRANSPOSE_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_FBCSR_CONJ_TRANSPOSE_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE( GKO_DECLARE_FBCSR_CALCULATE_MAX_NNZ_PER_ROW_KERNEL); - -template -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_STUB_VALUE_AND_INDEX_TYPE( GKO_DECLARE_FBCSR_CALCULATE_NONZEROS_PER_ROW_KERNEL); - -template -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 -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 -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); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_FBCSR_IS_SORTED_BY_COLUMN_INDEX); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_FBCSR_SORT_BY_COLUMN_INDEX); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_FBCSR_EXTRACT_DIAGONAL); } // namespace fbcsr @@ -934,45 +443,13 @@ GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( namespace coo { -template -GKO_DECLARE_COO_SPMV_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE(GKO_DECLARE_COO_SPMV_KERNEL); - -template -GKO_DECLARE_COO_ADVANCED_SPMV_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_COO_ADVANCED_SPMV_KERNEL); - -template -GKO_DECLARE_COO_SPMV2_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE(GKO_DECLARE_COO_SPMV2_KERNEL); - -template -GKO_DECLARE_COO_ADVANCED_SPMV2_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_COO_ADVANCED_SPMV2_KERNEL); - -template -GKO_DECLARE_COO_CONVERT_TO_CSR_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_COO_CONVERT_TO_CSR_KERNEL); - -template -GKO_DECLARE_COO_CONVERT_TO_DENSE_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_COO_CONVERT_TO_DENSE_KERNEL); - -template -GKO_DECLARE_COO_EXTRACT_DIAGONAL_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_COO_EXTRACT_DIAGONAL_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_COO_SPMV_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_COO_ADVANCED_SPMV_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_COO_SPMV2_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_COO_ADVANCED_SPMV2_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_COO_CONVERT_TO_CSR_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_COO_CONVERT_TO_DENSE_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_COO_EXTRACT_DIAGONAL_KERNEL); } // namespace coo @@ -981,51 +458,14 @@ GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( namespace ell { -template -GKO_DECLARE_ELL_SPMV_KERNEL(InputValueType, MatrixValueType, OutputValueType, - IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_MIXED_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_ELL_SPMV_KERNEL); - -template -GKO_DECLARE_ELL_ADVANCED_SPMV_KERNEL(InputValueType, MatrixValueType, - OutputValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_MIXED_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_ELL_ADVANCED_SPMV_KERNEL); - -template -GKO_DECLARE_ELL_CONVERT_TO_DENSE_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_ELL_CONVERT_TO_DENSE_KERNEL); - -template -GKO_DECLARE_ELL_CONVERT_TO_CSR_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_ELL_CONVERT_TO_CSR_KERNEL); - -template -GKO_DECLARE_ELL_COUNT_NONZEROS_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_ELL_COUNT_NONZEROS_KERNEL); - -template -GKO_DECLARE_ELL_CALCULATE_NONZEROS_PER_ROW_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( +GKO_STUB_MIXED_VALUE_AND_INDEX_TYPE(GKO_DECLARE_ELL_SPMV_KERNEL); +GKO_STUB_MIXED_VALUE_AND_INDEX_TYPE(GKO_DECLARE_ELL_ADVANCED_SPMV_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_ELL_CONVERT_TO_DENSE_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_ELL_CONVERT_TO_CSR_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_ELL_COUNT_NONZEROS_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE( GKO_DECLARE_ELL_CALCULATE_NONZEROS_PER_ROW_KERNEL); - -template -GKO_DECLARE_ELL_EXTRACT_DIAGONAL_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_ELL_EXTRACT_DIAGONAL_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_ELL_EXTRACT_DIAGONAL_KERNEL); } // namespace ell @@ -1034,23 +474,9 @@ GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( namespace hybrid { -template -GKO_DECLARE_HYBRID_CONVERT_TO_DENSE_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_HYBRID_CONVERT_TO_DENSE_KERNEL); - -template -GKO_DECLARE_HYBRID_CONVERT_TO_CSR_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_HYBRID_CONVERT_TO_CSR_KERNEL); - -template -GKO_DECLARE_HYBRID_COUNT_NONZEROS_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_HYBRID_COUNT_NONZEROS_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_HYBRID_CONVERT_TO_DENSE_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_HYBRID_CONVERT_TO_CSR_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_HYBRID_COUNT_NONZEROS_KERNEL); } // namespace hybrid @@ -1059,40 +485,12 @@ GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( namespace sellp { -template -GKO_DECLARE_SELLP_SPMV_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE(GKO_DECLARE_SELLP_SPMV_KERNEL); - -template -GKO_DECLARE_SELLP_ADVANCED_SPMV_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_SELLP_ADVANCED_SPMV_KERNEL); - -template -GKO_DECLARE_SELLP_CONVERT_TO_DENSE_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_SELLP_CONVERT_TO_DENSE_KERNEL); - -template -GKO_DECLARE_SELLP_CONVERT_TO_CSR_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_SELLP_CONVERT_TO_CSR_KERNEL); - -template -GKO_DECLARE_SELLP_COUNT_NONZEROS_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_SELLP_COUNT_NONZEROS_KERNEL); - -template -GKO_DECLARE_SELLP_EXTRACT_DIAGONAL_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_SELLP_EXTRACT_DIAGONAL_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_SELLP_SPMV_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_SELLP_ADVANCED_SPMV_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_SELLP_CONVERT_TO_DENSE_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_SELLP_CONVERT_TO_CSR_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_SELLP_COUNT_NONZEROS_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_SELLP_EXTRACT_DIAGONAL_KERNEL); } // namespace sellp @@ -1101,76 +499,19 @@ GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( namespace jacobi { -template -GKO_DECLARE_JACOBI_FIND_BLOCKS_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_JACOBI_FIND_BLOCKS_KERNEL); - -template -GKO_DECLARE_JACOBI_GENERATE_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_JACOBI_GENERATE_KERNEL); - -template -GKO_DECLARE_JACOBI_APPLY_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE(GKO_DECLARE_JACOBI_APPLY_KERNEL); - -template -GKO_DECLARE_JACOBI_SIMPLE_APPLY_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_JACOBI_SIMPLE_APPLY_KERNEL); - -template -GKO_DECLARE_JACOBI_SCALAR_APPLY_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_JACOBI_SCALAR_APPLY_KERNEL); - -template -GKO_DECLARE_JACOBI_SIMPLE_SCALAR_APPLY_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE( - GKO_DECLARE_JACOBI_SIMPLE_SCALAR_APPLY_KERNEL); - -template -GKO_DECLARE_JACOBI_TRANSPOSE_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_JACOBI_TRANSPOSE_KERNEL); - -template -GKO_DECLARE_JACOBI_CONJ_TRANSPOSE_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_JACOBI_CONJ_TRANSPOSE_KERNEL); - -template -GKO_DECLARE_JACOBI_SCALAR_CONVERT_TO_DENSE_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE( - GKO_DECLARE_JACOBI_SCALAR_CONVERT_TO_DENSE_KERNEL); - -template -GKO_DECLARE_JACOBI_SCALAR_CONJ_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_JACOBI_SCALAR_CONJ_KERNEL); - -template -GKO_DECLARE_JACOBI_INVERT_DIAGONAL_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_JACOBI_INVERT_DIAGONAL_KERNEL); - -template -GKO_DECLARE_JACOBI_CONVERT_TO_DENSE_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_JACOBI_CONVERT_TO_DENSE_KERNEL); - -GKO_DECLARE_JACOBI_INITIALIZE_PRECISIONS_KERNEL() -GKO_NOT_COMPILED(GKO_HOOK_MODULE); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_JACOBI_FIND_BLOCKS_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_JACOBI_GENERATE_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_JACOBI_APPLY_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_JACOBI_SIMPLE_APPLY_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_JACOBI_SCALAR_APPLY_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_JACOBI_SIMPLE_SCALAR_APPLY_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_JACOBI_TRANSPOSE_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_JACOBI_CONJ_TRANSPOSE_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_JACOBI_SCALAR_CONVERT_TO_DENSE_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_JACOBI_SCALAR_CONJ_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_JACOBI_INVERT_DIAGONAL_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_JACOBI_CONVERT_TO_DENSE_KERNEL); +GKO_STUB(GKO_DECLARE_JACOBI_INITIALIZE_PRECISIONS_KERNEL); } // namespace jacobi @@ -1179,36 +520,11 @@ GKO_NOT_COMPILED(GKO_HOOK_MODULE); namespace isai { -template -GKO_DECLARE_ISAI_GENERATE_TRI_INVERSE_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_ISAI_GENERATE_TRI_INVERSE_KERNEL); - - -template -GKO_DECLARE_ISAI_GENERATE_GENERAL_INVERSE_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_ISAI_GENERATE_GENERAL_INVERSE_KERNEL); - -template -GKO_DECLARE_ISAI_GENERATE_EXCESS_SYSTEM_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_ISAI_GENERATE_EXCESS_SYSTEM_KERNEL); - -template -GKO_DECLARE_ISAI_SCALE_EXCESS_SOLUTION_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_ISAI_SCALE_EXCESS_SOLUTION_KERNEL); - -template -GKO_DECLARE_ISAI_SCATTER_EXCESS_SOLUTION_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_ISAI_SCATTER_EXCESS_SOLUTION_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_ISAI_GENERATE_TRI_INVERSE_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_ISAI_GENERATE_GENERAL_INVERSE_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_ISAI_GENERATE_EXCESS_SYSTEM_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_ISAI_SCALE_EXCESS_SOLUTION_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_ISAI_SCATTER_EXCESS_SOLUTION_KERNEL); } // namespace isai @@ -1217,35 +533,14 @@ GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( namespace factorization { -template -GKO_DECLARE_FACTORIZATION_ADD_DIAGONAL_ELEMENTS_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( +GKO_STUB_VALUE_AND_INDEX_TYPE( GKO_DECLARE_FACTORIZATION_ADD_DIAGONAL_ELEMENTS_KERNEL); - -template -GKO_DECLARE_FACTORIZATION_INITIALIZE_ROW_PTRS_L_U_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( +GKO_STUB_VALUE_AND_INDEX_TYPE( GKO_DECLARE_FACTORIZATION_INITIALIZE_ROW_PTRS_L_U_KERNEL); - -template -GKO_DECLARE_FACTORIZATION_INITIALIZE_L_U_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_FACTORIZATION_INITIALIZE_L_U_KERNEL); - -template -GKO_DECLARE_FACTORIZATION_INITIALIZE_ROW_PTRS_L_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_FACTORIZATION_INITIALIZE_L_U_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE( GKO_DECLARE_FACTORIZATION_INITIALIZE_ROW_PTRS_L_KERNEL); - -template -GKO_DECLARE_FACTORIZATION_INITIALIZE_L_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_FACTORIZATION_INITIALIZE_L_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_FACTORIZATION_INITIALIZE_L_KERNEL); } // namespace factorization @@ -1254,10 +549,7 @@ GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( namespace ic_factorization { -template -GKO_DECLARE_IC_COMPUTE_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE(GKO_DECLARE_IC_COMPUTE_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_IC_COMPUTE_KERNEL); } // namespace ic_factorization @@ -1266,11 +558,7 @@ GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE(GKO_DECLARE_IC_COMPUTE_KERNEL); namespace ilu_factorization { -template -GKO_DECLARE_ILU_COMPUTE_LU_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_ILU_COMPUTE_LU_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_ILU_COMPUTE_LU_KERNEL); } // namespace ilu_factorization @@ -1279,17 +567,8 @@ GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( namespace par_ic_factorization { -template -GKO_DECLARE_PAR_IC_INIT_FACTOR_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_PAR_IC_INIT_FACTOR_KERNEL); - -template -GKO_DECLARE_PAR_IC_COMPUTE_FACTOR_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_PAR_IC_COMPUTE_FACTOR_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_PAR_IC_INIT_FACTOR_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_PAR_IC_COMPUTE_FACTOR_KERNEL); } // namespace par_ic_factorization @@ -1298,17 +577,8 @@ GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( namespace par_ict_factorization { -template -GKO_DECLARE_PAR_ICT_ADD_CANDIDATES_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_PAR_ICT_ADD_CANDIDATES_KERNEL); - -template -GKO_DECLARE_PAR_ICT_COMPUTE_FACTOR_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_PAR_ICT_COMPUTE_FACTOR_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_PAR_ICT_ADD_CANDIDATES_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_PAR_ICT_COMPUTE_FACTOR_KERNEL); } // namespace par_ict_factorization @@ -1317,11 +587,7 @@ GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( namespace par_ilu_factorization { -template -GKO_DECLARE_PAR_ILU_COMPUTE_L_U_FACTORS_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_PAR_ILU_COMPUTE_L_U_FACTORS_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_PAR_ILU_COMPUTE_L_U_FACTORS_KERNEL); } // namespace par_ilu_factorization @@ -1330,34 +596,11 @@ GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( namespace par_ilut_factorization { -template -GKO_DECLARE_PAR_ILUT_ADD_CANDIDATES_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_PAR_ILUT_ADD_CANDIDATES_KERNEL); - -template -GKO_DECLARE_PAR_ILUT_COMPUTE_LU_FACTORS_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_PAR_ILUT_COMPUTE_LU_FACTORS_KERNEL); - -template -GKO_DECLARE_PAR_ILUT_THRESHOLD_SELECT_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_PAR_ILUT_THRESHOLD_SELECT_KERNEL); - -template -GKO_DECLARE_PAR_ILUT_THRESHOLD_FILTER_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( - GKO_DECLARE_PAR_ILUT_THRESHOLD_FILTER_KERNEL); - -template -GKO_DECLARE_PAR_ILUT_THRESHOLD_FILTER_APPROX_KERNEL(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_PAR_ILUT_ADD_CANDIDATES_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_PAR_ILUT_COMPUTE_LU_FACTORS_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_PAR_ILUT_THRESHOLD_SELECT_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE(GKO_DECLARE_PAR_ILUT_THRESHOLD_FILTER_KERNEL); +GKO_STUB_VALUE_AND_INDEX_TYPE( GKO_DECLARE_PAR_ILUT_THRESHOLD_FILTER_APPROX_KERNEL); @@ -1365,16 +608,8 @@ GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( namespace rcm { -template -GKO_DECLARE_RCM_GET_PERMUTATION_KERNEL(IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_INDEX_TYPE(GKO_DECLARE_RCM_GET_PERMUTATION_KERNEL); - - -template -GKO_DECLARE_RCM_GET_DEGREE_OF_NODES_KERNEL(IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_INDEX_TYPE(GKO_DECLARE_RCM_GET_DEGREE_OF_NODES_KERNEL); +GKO_STUB_INDEX_TYPE(GKO_DECLARE_RCM_GET_PERMUTATION_KERNEL); +GKO_STUB_INDEX_TYPE(GKO_DECLARE_RCM_GET_DEGREE_OF_NODES_KERNEL); } // namespace rcm @@ -1383,31 +618,12 @@ GKO_INSTANTIATE_FOR_EACH_INDEX_TYPE(GKO_DECLARE_RCM_GET_DEGREE_OF_NODES_KERNEL); namespace amgx_pgm { -template -GKO_DECLARE_AMGX_PGM_MATCH_EDGE_KERNEL(IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_INDEX_TYPE(GKO_DECLARE_AMGX_PGM_MATCH_EDGE_KERNEL); - -template -GKO_DECLARE_AMGX_PGM_COUNT_UNAGG_KERNEL(IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_INDEX_TYPE(GKO_DECLARE_AMGX_PGM_COUNT_UNAGG_KERNEL); - -template -GKO_DECLARE_AMGX_PGM_RENUMBER_KERNEL(IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_INDEX_TYPE(GKO_DECLARE_AMGX_PGM_RENUMBER_KERNEL); - -template -GKO_DECLARE_AMGX_PGM_FIND_STRONGEST_NEIGHBOR(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_NON_COMPLEX_VALUE_AND_INDEX_TYPE( +GKO_STUB_INDEX_TYPE(GKO_DECLARE_AMGX_PGM_MATCH_EDGE_KERNEL); +GKO_STUB_INDEX_TYPE(GKO_DECLARE_AMGX_PGM_COUNT_UNAGG_KERNEL); +GKO_STUB_INDEX_TYPE(GKO_DECLARE_AMGX_PGM_RENUMBER_KERNEL); +GKO_STUB_NON_COMPLEX_VALUE_AND_INDEX_TYPE( GKO_DECLARE_AMGX_PGM_FIND_STRONGEST_NEIGHBOR); - -template -GKO_DECLARE_AMGX_PGM_ASSIGN_TO_EXIST_AGG(ValueType, IndexType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_NON_COMPLEX_VALUE_AND_INDEX_TYPE( +GKO_STUB_NON_COMPLEX_VALUE_AND_INDEX_TYPE( GKO_DECLARE_AMGX_PGM_ASSIGN_TO_EXIST_AGG); @@ -1417,8 +633,7 @@ GKO_INSTANTIATE_FOR_EACH_NON_COMPLEX_VALUE_AND_INDEX_TYPE( namespace set_all_statuses { -GKO_DECLARE_SET_ALL_STATUSES_KERNEL() -GKO_NOT_COMPILED(GKO_HOOK_MODULE); +GKO_STUB(GKO_DECLARE_SET_ALL_STATUSES_KERNEL); } // namespace set_all_statuses @@ -1427,11 +642,7 @@ GKO_NOT_COMPILED(GKO_HOOK_MODULE); namespace residual_norm { -template -GKO_DECLARE_RESIDUAL_NORM_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_NON_COMPLEX_VALUE_TYPE( - GKO_DECLARE_RESIDUAL_NORM_KERNEL); +GKO_STUB_NON_COMPLEX_VALUE_TYPE(GKO_DECLARE_RESIDUAL_NORM_KERNEL); } // namespace residual_norm @@ -1440,10 +651,7 @@ GKO_INSTANTIATE_FOR_EACH_NON_COMPLEX_VALUE_TYPE( namespace implicit_residual_norm { -template -GKO_DECLARE_IMPLICIT_RESIDUAL_NORM_KERNEL(ValueType) -GKO_NOT_COMPILED(GKO_HOOK_MODULE); -GKO_INSTANTIATE_FOR_EACH_VALUE_TYPE(GKO_DECLARE_IMPLICIT_RESIDUAL_NORM_KERNEL); +GKO_STUB_VALUE_TYPE(GKO_DECLARE_IMPLICIT_RESIDUAL_NORM_KERNEL); } // namespace implicit_residual_norm diff --git a/core/preconditioner/jacobi_kernels.hpp b/core/preconditioner/jacobi_kernels.hpp index 4725f146843..5e80724e913 100644 --- a/core/preconditioner/jacobi_kernels.hpp +++ b/core/preconditioner/jacobi_kernels.hpp @@ -145,7 +145,7 @@ namespace kernels { storage_scheme, \ ValueType* result_values, size_type result_stride) -#define GKO_DECLARE_JACOBI_INITIALIZE_PRECISIONS_KERNEL() \ +#define GKO_DECLARE_JACOBI_INITIALIZE_PRECISIONS_KERNEL \ void initialize_precisions(std::shared_ptr exec, \ const Array& source, \ Array& precisions) @@ -175,7 +175,7 @@ namespace kernels { GKO_DECLARE_JACOBI_SCALAR_CONVERT_TO_DENSE_KERNEL(ValueType); \ template \ GKO_DECLARE_JACOBI_CONVERT_TO_DENSE_KERNEL(ValueType, IndexType); \ - GKO_DECLARE_JACOBI_INITIALIZE_PRECISIONS_KERNEL() + GKO_DECLARE_JACOBI_INITIALIZE_PRECISIONS_KERNEL namespace omp { diff --git a/core/solver/lower_trs_kernels.hpp b/core/solver/lower_trs_kernels.hpp index fabb3463e05..53c15277202 100644 --- a/core/solver/lower_trs_kernels.hpp +++ b/core/solver/lower_trs_kernels.hpp @@ -50,12 +50,12 @@ namespace kernels { namespace lower_trs { -#define GKO_DECLARE_LOWER_TRS_SHOULD_PERFORM_TRANSPOSE_KERNEL() \ +#define GKO_DECLARE_LOWER_TRS_SHOULD_PERFORM_TRANSPOSE_KERNEL \ void should_perform_transpose(std::shared_ptr exec, \ bool& do_transpose) -#define GKO_DECLARE_LOWER_TRS_INIT_STRUCT_KERNEL() \ +#define GKO_DECLARE_LOWER_TRS_INIT_STRUCT_KERNEL \ void init_struct(std::shared_ptr exec, \ std::shared_ptr& solve_struct) @@ -76,8 +76,8 @@ namespace lower_trs { #define GKO_DECLARE_ALL_AS_TEMPLATES \ - GKO_DECLARE_LOWER_TRS_SHOULD_PERFORM_TRANSPOSE_KERNEL(); \ - GKO_DECLARE_LOWER_TRS_INIT_STRUCT_KERNEL(); \ + GKO_DECLARE_LOWER_TRS_SHOULD_PERFORM_TRANSPOSE_KERNEL; \ + GKO_DECLARE_LOWER_TRS_INIT_STRUCT_KERNEL; \ template \ GKO_DECLARE_LOWER_TRS_SOLVE_KERNEL(ValueType, IndexType); \ template \ diff --git a/core/solver/upper_trs_kernels.hpp b/core/solver/upper_trs_kernels.hpp index f9f3facd924..7737116e1b1 100644 --- a/core/solver/upper_trs_kernels.hpp +++ b/core/solver/upper_trs_kernels.hpp @@ -50,12 +50,12 @@ namespace kernels { namespace upper_trs { -#define GKO_DECLARE_UPPER_TRS_SHOULD_PERFORM_TRANSPOSE_KERNEL() \ +#define GKO_DECLARE_UPPER_TRS_SHOULD_PERFORM_TRANSPOSE_KERNEL \ void should_perform_transpose(std::shared_ptr exec, \ bool& do_transpose) -#define GKO_DECLARE_UPPER_TRS_INIT_STRUCT_KERNEL() \ +#define GKO_DECLARE_UPPER_TRS_INIT_STRUCT_KERNEL \ void init_struct(std::shared_ptr exec, \ std::shared_ptr& solve_struct) @@ -76,8 +76,8 @@ namespace upper_trs { #define GKO_DECLARE_ALL_AS_TEMPLATES \ - GKO_DECLARE_UPPER_TRS_SHOULD_PERFORM_TRANSPOSE_KERNEL(); \ - GKO_DECLARE_UPPER_TRS_INIT_STRUCT_KERNEL(); \ + GKO_DECLARE_UPPER_TRS_SHOULD_PERFORM_TRANSPOSE_KERNEL; \ + GKO_DECLARE_UPPER_TRS_INIT_STRUCT_KERNEL; \ template \ GKO_DECLARE_UPPER_TRS_SOLVE_KERNEL(ValueType, IndexType); \ template \ diff --git a/core/stop/criterion_kernels.hpp b/core/stop/criterion_kernels.hpp index f3473d9c415..dc1fbcda789 100644 --- a/core/stop/criterion_kernels.hpp +++ b/core/stop/criterion_kernels.hpp @@ -44,7 +44,7 @@ namespace kernels { namespace set_all_statuses { -#define GKO_DECLARE_SET_ALL_STATUSES_KERNEL() \ +#define GKO_DECLARE_SET_ALL_STATUSES_KERNEL \ void set_all_statuses(std::shared_ptr exec, \ uint8 stoppingId, bool setFinalized, \ Array* stop_status) @@ -56,7 +56,7 @@ namespace set_all_statuses { namespace omp { namespace set_all_statuses { -GKO_DECLARE_SET_ALL_STATUSES_KERNEL(); +GKO_DECLARE_SET_ALL_STATUSES_KERNEL; } // namespace set_all_statuses } // namespace omp @@ -65,7 +65,7 @@ GKO_DECLARE_SET_ALL_STATUSES_KERNEL(); namespace cuda { namespace set_all_statuses { -GKO_DECLARE_SET_ALL_STATUSES_KERNEL(); +GKO_DECLARE_SET_ALL_STATUSES_KERNEL; } // namespace set_all_statuses } // namespace cuda @@ -74,7 +74,7 @@ GKO_DECLARE_SET_ALL_STATUSES_KERNEL(); namespace reference { namespace set_all_statuses { -GKO_DECLARE_SET_ALL_STATUSES_KERNEL(); +GKO_DECLARE_SET_ALL_STATUSES_KERNEL; } // namespace set_all_statuses } // namespace reference @@ -83,7 +83,7 @@ GKO_DECLARE_SET_ALL_STATUSES_KERNEL(); namespace hip { namespace set_all_statuses { -GKO_DECLARE_SET_ALL_STATUSES_KERNEL(); +GKO_DECLARE_SET_ALL_STATUSES_KERNEL; } // namespace set_all_statuses } // namespace hip @@ -92,7 +92,7 @@ GKO_DECLARE_SET_ALL_STATUSES_KERNEL(); namespace dpcpp { namespace set_all_statuses { -GKO_DECLARE_SET_ALL_STATUSES_KERNEL(); +GKO_DECLARE_SET_ALL_STATUSES_KERNEL; } // namespace set_all_statuses } // namespace dpcpp