diff --git a/benchmark/utils/overhead_linop.hpp b/benchmark/utils/overhead_linop.hpp index b03de5f2f15..de8a7066179 100644 --- a/benchmark/utils/overhead_linop.hpp +++ b/benchmark/utils/overhead_linop.hpp @@ -73,49 +73,7 @@ namespace overhead { } // namespace overhead -namespace omp { -namespace overhead { - -GKO_DECLARE_ALL; - -} // namespace overhead -} // namespace omp - - -namespace cuda { -namespace overhead { - -GKO_DECLARE_ALL; - -} // namespace overhead -} // namespace cuda - - -namespace reference { -namespace overhead { - -GKO_DECLARE_ALL; - -} // namespace overhead -} // namespace reference - - -namespace hip { -namespace overhead { - -GKO_DECLARE_ALL; - -} // namespace overhead -} // namespace hip - - -namespace dpcpp { -namespace overhead { - -GKO_DECLARE_ALL; - -} // namespace overhead -} // namespace dpcpp +GKO_DECLARE_FOR_ALL_EXECUTOR_NAMESPACES(overhead, GKO_DECLARE_ALL); #undef GKO_DECLARE_ALL diff --git a/core/base/kernel_declaration.hpp b/core/base/kernel_declaration.hpp new file mode 100644 index 00000000000..9f55f58ac5a --- /dev/null +++ b/core/base/kernel_declaration.hpp @@ -0,0 +1,69 @@ +/************************************************************* +Copyright (c) 2017-2021, the Ginkgo authors +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*************************************************************/ + +#ifndef GKO_CORE_BASE_KERNEL_DECLARATION_HPP_ +#define GKO_CORE_BASE_KERNEL_DECLARATION_HPP_ + + +#define GKO_DECLARE_FOR_ALL_EXECUTOR_NAMESPACES(_kernel_namespace, ...) \ + \ + namespace omp { \ + namespace _kernel_namespace { \ + __VA_ARGS__; \ + } \ + } \ + namespace cuda { \ + namespace _kernel_namespace { \ + __VA_ARGS__; \ + } \ + } \ + namespace reference { \ + namespace _kernel_namespace { \ + __VA_ARGS__; \ + } \ + } \ + namespace hip { \ + namespace _kernel_namespace { \ + __VA_ARGS__; \ + } \ + } \ + namespace dpcpp { \ + namespace _kernel_namespace { \ + __VA_ARGS__; \ + } \ + } \ + static_assert(true, \ + "This assert is used to counter the false positive extra " \ + "semi-colon warnings") + + +#endif // GKO_CORE_BASE_KERNEL_DECLARATION_HPP_ diff --git a/core/components/absolute_array.hpp b/core/components/absolute_array.hpp index 122b5464d55..c4762857747 100644 --- a/core/components/absolute_array.hpp +++ b/core/components/absolute_array.hpp @@ -42,6 +42,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include +#include "core/base/kernel_declaration.hpp" + + namespace gko { namespace kernels { @@ -63,49 +66,8 @@ namespace kernels { GKO_DECLARE_OUTPLACE_ABSOLUTE_ARRAY_KERNEL(ValueType) -namespace omp { -namespace components { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace components -} // namespace omp - - -namespace cuda { -namespace components { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace components -} // namespace cuda - - -namespace reference { -namespace components { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace components -} // namespace reference - - -namespace hip { -namespace components { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace components -} // namespace hip - - -namespace dpcpp { -namespace components { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace components -} // namespace dpcpp +GKO_DECLARE_FOR_ALL_EXECUTOR_NAMESPACES(components, + GKO_DECLARE_ALL_AS_TEMPLATES); #undef GKO_DECLARE_ALL_AS_TEMPLATES diff --git a/core/components/fill_array.hpp b/core/components/fill_array.hpp index 0faf19d1bae..f462da92067 100644 --- a/core/components/fill_array.hpp +++ b/core/components/fill_array.hpp @@ -41,6 +41,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include +#include "core/base/kernel_declaration.hpp" + + namespace gko { namespace kernels { @@ -61,49 +64,8 @@ namespace kernels { GKO_DECLARE_FILL_SEQ_ARRAY_KERNEL(ValueType) -namespace omp { -namespace components { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace components -} // namespace omp - - -namespace cuda { -namespace components { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace components -} // namespace cuda - - -namespace reference { -namespace components { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace components -} // namespace reference - - -namespace hip { -namespace components { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace components -} // namespace hip - - -namespace dpcpp { -namespace components { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace components -} // namespace dpcpp +GKO_DECLARE_FOR_ALL_EXECUTOR_NAMESPACES(components, + GKO_DECLARE_ALL_AS_TEMPLATES); #undef GKO_DECLARE_ALL_AS_TEMPLATES diff --git a/core/components/precision_conversion.hpp b/core/components/precision_conversion.hpp index cc69d25cfd4..d8d91cf22ee 100644 --- a/core/components/precision_conversion.hpp +++ b/core/components/precision_conversion.hpp @@ -42,6 +42,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include +#include "core/base/kernel_declaration.hpp" + + namespace gko { namespace kernels { @@ -57,49 +60,8 @@ namespace kernels { GKO_DECLARE_CONVERT_PRECISION_KERNEL(SourceType, TargetType) -namespace omp { -namespace components { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace components -} // namespace omp - - -namespace cuda { -namespace components { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace components -} // namespace cuda - - -namespace reference { -namespace components { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace components -} // namespace reference - - -namespace hip { -namespace components { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace components -} // namespace hip - - -namespace dpcpp { -namespace components { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace components -} // namespace dpcpp +GKO_DECLARE_FOR_ALL_EXECUTOR_NAMESPACES(components, + GKO_DECLARE_ALL_AS_TEMPLATES); #undef GKO_DECLARE_ALL_AS_TEMPLATES diff --git a/core/components/prefix_sum.hpp b/core/components/prefix_sum.hpp index 557ce0c358b..45a95818f1b 100644 --- a/core/components/prefix_sum.hpp +++ b/core/components/prefix_sum.hpp @@ -41,6 +41,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include +#include "core/base/kernel_declaration.hpp" + + namespace gko { namespace kernels { @@ -71,49 +74,8 @@ namespace kernels { GKO_DECLARE_PREFIX_SUM_KERNEL(IndexType) -namespace omp { -namespace components { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace components -} // namespace omp - - -namespace cuda { -namespace components { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace components -} // namespace cuda - - -namespace reference { -namespace components { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace components -} // namespace reference - - -namespace hip { -namespace components { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace components -} // namespace hip - - -namespace dpcpp { -namespace components { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace components -} // namespace dpcpp +GKO_DECLARE_FOR_ALL_EXECUTOR_NAMESPACES(components, + GKO_DECLARE_ALL_AS_TEMPLATES); #undef GKO_DECLARE_ALL_AS_TEMPLATES diff --git a/core/factorization/factorization_kernels.hpp b/core/factorization/factorization_kernels.hpp index f206b822dd3..56727733b3d 100644 --- a/core/factorization/factorization_kernels.hpp +++ b/core/factorization/factorization_kernels.hpp @@ -42,6 +42,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include +#include "core/base/kernel_declaration.hpp" + + namespace gko { namespace kernels { @@ -96,49 +99,8 @@ namespace kernels { GKO_DECLARE_FACTORIZATION_INITIALIZE_L_KERNEL(ValueType, IndexType) -namespace omp { -namespace factorization { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace factorization -} // namespace omp - - -namespace cuda { -namespace factorization { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace factorization -} // namespace cuda - - -namespace reference { -namespace factorization { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace factorization -} // namespace reference - - -namespace hip { -namespace factorization { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace factorization -} // namespace hip - - -namespace dpcpp { -namespace factorization { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace factorization -} // namespace dpcpp +GKO_DECLARE_FOR_ALL_EXECUTOR_NAMESPACES(factorization, + GKO_DECLARE_ALL_AS_TEMPLATES); #undef GKO_DECLARE_ALL_AS_TEMPLATES diff --git a/core/factorization/ic_kernels.hpp b/core/factorization/ic_kernels.hpp index e6626bed4e6..1373e86941c 100644 --- a/core/factorization/ic_kernels.hpp +++ b/core/factorization/ic_kernels.hpp @@ -44,6 +44,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include +#include "core/base/kernel_declaration.hpp" + + namespace gko { namespace kernels { @@ -57,49 +60,8 @@ namespace kernels { GKO_DECLARE_IC_COMPUTE_KERNEL(ValueType, IndexType) -namespace omp { -namespace ic_factorization { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace ic_factorization -} // namespace omp - - -namespace cuda { -namespace ic_factorization { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace ic_factorization -} // namespace cuda - - -namespace reference { -namespace ic_factorization { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace ic_factorization -} // namespace reference - - -namespace hip { -namespace ic_factorization { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace ic_factorization -} // namespace hip - - -namespace dpcpp { -namespace ic_factorization { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace ic_factorization -} // namespace dpcpp +GKO_DECLARE_FOR_ALL_EXECUTOR_NAMESPACES(ic_factorization, + GKO_DECLARE_ALL_AS_TEMPLATES); #undef GKO_DECLARE_ALL_AS_TEMPLATES diff --git a/core/factorization/ilu_kernels.hpp b/core/factorization/ilu_kernels.hpp index d631f9e5484..61961d50466 100644 --- a/core/factorization/ilu_kernels.hpp +++ b/core/factorization/ilu_kernels.hpp @@ -45,6 +45,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include +#include "core/base/kernel_declaration.hpp" + + namespace gko { namespace kernels { @@ -59,49 +62,8 @@ namespace kernels { GKO_DECLARE_ILU_COMPUTE_LU_KERNEL(ValueType, IndexType) -namespace omp { -namespace ilu_factorization { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace ilu_factorization -} // namespace omp - - -namespace cuda { -namespace ilu_factorization { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace ilu_factorization -} // namespace cuda - - -namespace reference { -namespace ilu_factorization { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace ilu_factorization -} // namespace reference - - -namespace hip { -namespace ilu_factorization { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace ilu_factorization -} // namespace hip - - -namespace dpcpp { -namespace ilu_factorization { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace ilu_factorization -} // namespace dpcpp +GKO_DECLARE_FOR_ALL_EXECUTOR_NAMESPACES(ilu_factorization, + GKO_DECLARE_ALL_AS_TEMPLATES); #undef GKO_DECLARE_ALL_AS_TEMPLATES diff --git a/core/factorization/par_ic_kernels.hpp b/core/factorization/par_ic_kernels.hpp index 332b297469b..f1752e2303e 100644 --- a/core/factorization/par_ic_kernels.hpp +++ b/core/factorization/par_ic_kernels.hpp @@ -46,6 +46,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include +#include "core/base/kernel_declaration.hpp" + + namespace gko { namespace kernels { @@ -67,49 +70,8 @@ namespace kernels { GKO_DECLARE_PAR_IC_COMPUTE_FACTOR_KERNEL(ValueType, IndexType) -namespace omp { -namespace par_ic_factorization { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace par_ic_factorization -} // namespace omp - - -namespace cuda { -namespace par_ic_factorization { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace par_ic_factorization -} // namespace cuda - - -namespace reference { -namespace par_ic_factorization { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace par_ic_factorization -} // namespace reference - - -namespace hip { -namespace par_ic_factorization { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace par_ic_factorization -} // namespace hip - - -namespace dpcpp { -namespace par_ic_factorization { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace par_ic_factorization -} // namespace dpcpp +GKO_DECLARE_FOR_ALL_EXECUTOR_NAMESPACES(par_ic_factorization, + GKO_DECLARE_ALL_AS_TEMPLATES); #undef GKO_DECLARE_ALL_AS_TEMPLATES diff --git a/core/factorization/par_ict_kernels.hpp b/core/factorization/par_ict_kernels.hpp index b42cd9bdc28..6133588fc0a 100644 --- a/core/factorization/par_ict_kernels.hpp +++ b/core/factorization/par_ict_kernels.hpp @@ -46,6 +46,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include +#include "core/base/kernel_declaration.hpp" + + namespace gko { namespace kernels { @@ -70,49 +73,8 @@ namespace kernels { GKO_DECLARE_PAR_ICT_COMPUTE_FACTOR_KERNEL(ValueType, IndexType) -namespace omp { -namespace par_ict_factorization { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace par_ict_factorization -} // namespace omp - - -namespace cuda { -namespace par_ict_factorization { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace par_ict_factorization -} // namespace cuda - - -namespace reference { -namespace par_ict_factorization { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace par_ict_factorization -} // namespace reference - - -namespace hip { -namespace par_ict_factorization { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace par_ict_factorization -} // namespace hip - - -namespace dpcpp { -namespace par_ict_factorization { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace par_ict_factorization -} // namespace dpcpp +GKO_DECLARE_FOR_ALL_EXECUTOR_NAMESPACES(par_ict_factorization, + GKO_DECLARE_ALL_AS_TEMPLATES); #undef GKO_DECLARE_ALL_AS_TEMPLATES diff --git a/core/factorization/par_ilu_kernels.hpp b/core/factorization/par_ilu_kernels.hpp index bde424f8e07..8b8ff4b33f7 100644 --- a/core/factorization/par_ilu_kernels.hpp +++ b/core/factorization/par_ilu_kernels.hpp @@ -45,6 +45,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include +#include "core/base/kernel_declaration.hpp" + + namespace gko { namespace kernels { @@ -61,49 +64,8 @@ namespace kernels { GKO_DECLARE_PAR_ILU_COMPUTE_L_U_FACTORS_KERNEL(ValueType, IndexType) -namespace omp { -namespace par_ilu_factorization { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace par_ilu_factorization -} // namespace omp - - -namespace cuda { -namespace par_ilu_factorization { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace par_ilu_factorization -} // namespace cuda - - -namespace reference { -namespace par_ilu_factorization { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace par_ilu_factorization -} // namespace reference - - -namespace hip { -namespace par_ilu_factorization { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace par_ilu_factorization -} // namespace hip - - -namespace dpcpp { -namespace par_ilu_factorization { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace par_ilu_factorization -} // namespace dpcpp +GKO_DECLARE_FOR_ALL_EXECUTOR_NAMESPACES(par_ilu_factorization, + GKO_DECLARE_ALL_AS_TEMPLATES); #undef GKO_DECLARE_ALL_AS_TEMPLATES diff --git a/core/factorization/par_ilut_kernels.hpp b/core/factorization/par_ilut_kernels.hpp index 578325f5e94..570420a3abe 100644 --- a/core/factorization/par_ilut_kernels.hpp +++ b/core/factorization/par_ilut_kernels.hpp @@ -46,6 +46,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include +#include "core/base/kernel_declaration.hpp" + + namespace gko { namespace kernels { @@ -107,49 +110,8 @@ namespace kernels { GKO_DECLARE_PAR_ILUT_THRESHOLD_FILTER_APPROX_KERNEL(ValueType, IndexType) -namespace omp { -namespace par_ilut_factorization { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace par_ilut_factorization -} // namespace omp - - -namespace cuda { -namespace par_ilut_factorization { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace par_ilut_factorization -} // namespace cuda - - -namespace reference { -namespace par_ilut_factorization { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace par_ilut_factorization -} // namespace reference - - -namespace hip { -namespace par_ilut_factorization { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace par_ilut_factorization -} // namespace hip - - -namespace dpcpp { -namespace par_ilut_factorization { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace par_ilut_factorization -} // namespace dpcpp +GKO_DECLARE_FOR_ALL_EXECUTOR_NAMESPACES(par_ilut_factorization, + GKO_DECLARE_ALL_AS_TEMPLATES); #undef GKO_DECLARE_ALL_AS_TEMPLATES diff --git a/core/matrix/coo_kernels.hpp b/core/matrix/coo_kernels.hpp index f63f26f3dc4..c48006224ec 100644 --- a/core/matrix/coo_kernels.hpp +++ b/core/matrix/coo_kernels.hpp @@ -43,6 +43,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include +#include "core/base/kernel_declaration.hpp" + + namespace gko { namespace kernels { @@ -104,49 +107,7 @@ namespace kernels { GKO_DECLARE_COO_EXTRACT_DIAGONAL_KERNEL(ValueType, IndexType) -namespace omp { -namespace coo { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace coo -} // namespace omp - - -namespace cuda { -namespace coo { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace coo -} // namespace cuda - - -namespace reference { -namespace coo { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace coo -} // namespace reference - - -namespace hip { -namespace coo { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace coo -} // namespace hip - - -namespace dpcpp { -namespace coo { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace coo -} // namespace dpcpp +GKO_DECLARE_FOR_ALL_EXECUTOR_NAMESPACES(coo, GKO_DECLARE_ALL_AS_TEMPLATES); #undef GKO_DECLARE_ALL_AS_TEMPLATES diff --git a/core/matrix/csr_kernels.hpp b/core/matrix/csr_kernels.hpp index e0922f3ac84..cfe0ea947ee 100644 --- a/core/matrix/csr_kernels.hpp +++ b/core/matrix/csr_kernels.hpp @@ -48,6 +48,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include +#include "core/base/kernel_declaration.hpp" + + namespace gko { namespace kernels { @@ -234,49 +237,7 @@ namespace kernels { GKO_DECLARE_CSR_EXTRACT_DIAGONAL(ValueType, IndexType) -namespace omp { -namespace csr { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace csr -} // namespace omp - - -namespace cuda { -namespace csr { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace csr -} // namespace cuda - - -namespace reference { -namespace csr { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace csr -} // namespace reference - - -namespace hip { -namespace csr { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace csr -} // namespace hip - - -namespace dpcpp { -namespace csr { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace csr -} // namespace dpcpp +GKO_DECLARE_FOR_ALL_EXECUTOR_NAMESPACES(csr, GKO_DECLARE_ALL_AS_TEMPLATES); #undef GKO_DECLARE_ALL_AS_TEMPLATES diff --git a/core/matrix/dense_kernels.hpp b/core/matrix/dense_kernels.hpp index bbf136f41dc..83ae2a38ac4 100644 --- a/core/matrix/dense_kernels.hpp +++ b/core/matrix/dense_kernels.hpp @@ -45,6 +45,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include +#include "core/base/kernel_declaration.hpp" + + namespace gko { namespace kernels { @@ -322,49 +325,7 @@ namespace kernels { GKO_DECLARE_GET_IMAG_KERNEL(ValueType) -namespace omp { -namespace dense { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace dense -} // namespace omp - - -namespace cuda { -namespace dense { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace dense -} // namespace cuda - - -namespace reference { -namespace dense { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace dense -} // namespace reference - - -namespace hip { -namespace dense { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace dense -} // namespace hip - - -namespace dpcpp { -namespace dense { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace dense -} // namespace dpcpp +GKO_DECLARE_FOR_ALL_EXECUTOR_NAMESPACES(dense, GKO_DECLARE_ALL_AS_TEMPLATES); #undef GKO_DECLARE_ALL_AS_TEMPLATES diff --git a/core/matrix/diagonal_kernels.hpp b/core/matrix/diagonal_kernels.hpp index c31f2f61b8d..92db5b4ac4a 100644 --- a/core/matrix/diagonal_kernels.hpp +++ b/core/matrix/diagonal_kernels.hpp @@ -42,6 +42,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include +#include "core/base/kernel_declaration.hpp" + + namespace gko { namespace kernels { @@ -99,49 +102,7 @@ namespace kernels { GKO_DECLARE_DIAGONAL_CONJ_TRANSPOSE_KERNEL(ValueType) -namespace omp { -namespace diagonal { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace diagonal -} // namespace omp - - -namespace cuda { -namespace diagonal { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace diagonal -} // namespace cuda - - -namespace reference { -namespace diagonal { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace diagonal -} // namespace reference - - -namespace hip { -namespace diagonal { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace diagonal -} // namespace hip - - -namespace dpcpp { -namespace diagonal { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace diagonal -} // namespace dpcpp +GKO_DECLARE_FOR_ALL_EXECUTOR_NAMESPACES(diagonal, GKO_DECLARE_ALL_AS_TEMPLATES); #undef GKO_DECLARE_ALL_AS_TEMPLATES diff --git a/core/matrix/ell_kernels.hpp b/core/matrix/ell_kernels.hpp index 8c25f9cb18f..c0bf17aafc4 100644 --- a/core/matrix/ell_kernels.hpp +++ b/core/matrix/ell_kernels.hpp @@ -42,6 +42,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include +#include "core/base/kernel_declaration.hpp" + + namespace gko { namespace kernels { @@ -110,49 +113,7 @@ namespace kernels { GKO_DECLARE_ELL_EXTRACT_DIAGONAL_KERNEL(ValueType, IndexType) -namespace omp { -namespace ell { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace ell -} // namespace omp - - -namespace cuda { -namespace ell { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace ell -} // namespace cuda - - -namespace reference { -namespace ell { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace ell -} // namespace reference - - -namespace hip { -namespace ell { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace ell -} // namespace hip - - -namespace dpcpp { -namespace ell { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace ell -} // namespace dpcpp +GKO_DECLARE_FOR_ALL_EXECUTOR_NAMESPACES(ell, GKO_DECLARE_ALL_AS_TEMPLATES); #undef GKO_DECLARE_ALL_AS_TEMPLATES diff --git a/core/matrix/fbcsr_kernels.hpp b/core/matrix/fbcsr_kernels.hpp index 90d40276948..b80da50df0f 100644 --- a/core/matrix/fbcsr_kernels.hpp +++ b/core/matrix/fbcsr_kernels.hpp @@ -45,6 +45,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include +#include "core/base/kernel_declaration.hpp" + + namespace gko { namespace kernels { @@ -134,49 +137,7 @@ namespace kernels { GKO_DECLARE_FBCSR_EXTRACT_DIAGONAL(ValueType, IndexType) -namespace omp { -namespace fbcsr { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace fbcsr -} // namespace omp - - -namespace cuda { -namespace fbcsr { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace fbcsr -} // namespace cuda - - -namespace reference { -namespace fbcsr { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace fbcsr -} // namespace reference - - -namespace hip { -namespace fbcsr { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace fbcsr -} // namespace hip - - -namespace dpcpp { -namespace fbcsr { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace fbcsr -} // namespace dpcpp +GKO_DECLARE_FOR_ALL_EXECUTOR_NAMESPACES(fbcsr, GKO_DECLARE_ALL_AS_TEMPLATES); #undef GKO_DECLARE_ALL_AS_TEMPLATES diff --git a/core/matrix/hybrid_kernels.hpp b/core/matrix/hybrid_kernels.hpp index de01017631b..bff3fcdaa5d 100644 --- a/core/matrix/hybrid_kernels.hpp +++ b/core/matrix/hybrid_kernels.hpp @@ -40,6 +40,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include +#include "core/base/kernel_declaration.hpp" + + namespace gko { namespace kernels { @@ -68,49 +71,7 @@ namespace kernels { GKO_DECLARE_HYBRID_COUNT_NONZEROS_KERNEL(ValueType, IndexType) -namespace omp { -namespace hybrid { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace hybrid -} // namespace omp - - -namespace cuda { -namespace hybrid { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace hybrid -} // namespace cuda - - -namespace reference { -namespace hybrid { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace hybrid -} // namespace reference - - -namespace hip { -namespace hybrid { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace hybrid -} // namespace hip - - -namespace dpcpp { -namespace hybrid { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace hybrid -} // namespace dpcpp +GKO_DECLARE_FOR_ALL_EXECUTOR_NAMESPACES(hybrid, GKO_DECLARE_ALL_AS_TEMPLATES); #undef GKO_DECLARE_ALL_AS_TEMPLATES diff --git a/core/matrix/sellp_kernels.hpp b/core/matrix/sellp_kernels.hpp index fd3f369694c..36d4ef83d03 100644 --- a/core/matrix/sellp_kernels.hpp +++ b/core/matrix/sellp_kernels.hpp @@ -42,6 +42,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include +#include "core/base/kernel_declaration.hpp" + + namespace gko { namespace kernels { @@ -94,49 +97,7 @@ namespace kernels { GKO_DECLARE_SELLP_EXTRACT_DIAGONAL_KERNEL(ValueType, IndexType) -namespace omp { -namespace sellp { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace sellp -} // namespace omp - - -namespace cuda { -namespace sellp { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace sellp -} // namespace cuda - - -namespace reference { -namespace sellp { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace sellp -} // namespace reference - - -namespace hip { -namespace sellp { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace sellp -} // namespace hip - - -namespace dpcpp { -namespace sellp { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace sellp -} // namespace dpcpp +GKO_DECLARE_FOR_ALL_EXECUTOR_NAMESPACES(sellp, GKO_DECLARE_ALL_AS_TEMPLATES); #undef GKO_DECLARE_ALL_AS_TEMPLATES diff --git a/core/matrix/sparsity_csr_kernels.hpp b/core/matrix/sparsity_csr_kernels.hpp index e4ebcee8564..06eb7b96150 100644 --- a/core/matrix/sparsity_csr_kernels.hpp +++ b/core/matrix/sparsity_csr_kernels.hpp @@ -41,6 +41,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include +#include "core/base/kernel_declaration.hpp" + + namespace gko { namespace kernels { @@ -108,49 +111,8 @@ namespace kernels { GKO_DECLARE_SPARSITY_CSR_IS_SORTED_BY_COLUMN_INDEX(ValueType, IndexType) -namespace omp { -namespace sparsity_csr { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace sparsity_csr -} // namespace omp - - -namespace cuda { -namespace sparsity_csr { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace sparsity_csr -} // namespace cuda - - -namespace reference { -namespace sparsity_csr { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace sparsity_csr -} // namespace reference - - -namespace hip { -namespace sparsity_csr { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace sparsity_csr -} // namespace hip - - -namespace dpcpp { -namespace sparsity_csr { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace sparsity_csr -} // namespace dpcpp +GKO_DECLARE_FOR_ALL_EXECUTOR_NAMESPACES(sparsity_csr, + GKO_DECLARE_ALL_AS_TEMPLATES); #undef GKO_DECLARE_ALL_AS_TEMPLATES diff --git a/core/multigrid/amgx_pgm_kernels.hpp b/core/multigrid/amgx_pgm_kernels.hpp index ab02b7a87d1..7fa560fe1bc 100644 --- a/core/multigrid/amgx_pgm_kernels.hpp +++ b/core/multigrid/amgx_pgm_kernels.hpp @@ -46,6 +46,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include +#include "core/base/kernel_declaration.hpp" + + namespace gko { namespace kernels { namespace amgx_pgm { @@ -94,49 +97,7 @@ namespace amgx_pgm { } // namespace amgx_pgm -namespace omp { -namespace amgx_pgm { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace amgx_pgm -} // namespace omp - - -namespace cuda { -namespace amgx_pgm { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace amgx_pgm -} // namespace cuda - - -namespace reference { -namespace amgx_pgm { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace amgx_pgm -} // namespace reference - - -namespace hip { -namespace amgx_pgm { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace amgx_pgm -} // namespace hip - - -namespace dpcpp { -namespace amgx_pgm { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace amgx_pgm -} // namespace dpcpp +GKO_DECLARE_FOR_ALL_EXECUTOR_NAMESPACES(amgx_pgm, GKO_DECLARE_ALL_AS_TEMPLATES); #undef GKO_DECLARE_ALL_AS_TEMPLATES diff --git a/core/preconditioner/isai_kernels.hpp b/core/preconditioner/isai_kernels.hpp index aa9f8f561be..a336771a27a 100644 --- a/core/preconditioner/isai_kernels.hpp +++ b/core/preconditioner/isai_kernels.hpp @@ -40,6 +40,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include +#include "core/base/kernel_declaration.hpp" + + namespace gko { namespace kernels { @@ -96,49 +99,7 @@ namespace kernels { GKO_DECLARE_ISAI_SCATTER_EXCESS_SOLUTION_KERNEL(ValueType, IndexType) -namespace omp { -namespace isai { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace isai -} // namespace omp - - -namespace cuda { -namespace isai { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace isai -} // namespace cuda - - -namespace reference { -namespace isai { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace isai -} // namespace reference - - -namespace hip { -namespace isai { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace isai -} // namespace hip - - -namespace dpcpp { -namespace isai { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace isai -} // namespace dpcpp +GKO_DECLARE_FOR_ALL_EXECUTOR_NAMESPACES(isai, GKO_DECLARE_ALL_AS_TEMPLATES); #undef GKO_DECLARE_ALL_AS_TEMPLATES diff --git a/core/preconditioner/jacobi_kernels.hpp b/core/preconditioner/jacobi_kernels.hpp index 5e80724e913..dfe7fa81dda 100644 --- a/core/preconditioner/jacobi_kernels.hpp +++ b/core/preconditioner/jacobi_kernels.hpp @@ -40,6 +40,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include +#include "core/base/kernel_declaration.hpp" + + namespace gko { namespace kernels { @@ -178,49 +181,7 @@ namespace kernels { GKO_DECLARE_JACOBI_INITIALIZE_PRECISIONS_KERNEL -namespace omp { -namespace jacobi { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace jacobi -} // namespace omp - - -namespace cuda { -namespace jacobi { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace jacobi -} // namespace cuda - - -namespace reference { -namespace jacobi { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace jacobi -} // namespace reference - - -namespace hip { -namespace jacobi { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace jacobi -} // namespace hip - - -namespace dpcpp { -namespace jacobi { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace jacobi -} // namespace dpcpp +GKO_DECLARE_FOR_ALL_EXECUTOR_NAMESPACES(jacobi, GKO_DECLARE_ALL_AS_TEMPLATES); #undef GKO_DECLARE_ALL_AS_TEMPLATES diff --git a/core/reorder/rcm_kernels.hpp b/core/reorder/rcm_kernels.hpp index 2b1575af732..0a87253c004 100644 --- a/core/reorder/rcm_kernels.hpp +++ b/core/reorder/rcm_kernels.hpp @@ -48,6 +48,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include +#include "core/base/kernel_declaration.hpp" + + namespace gko { namespace kernels { @@ -71,49 +74,7 @@ namespace kernels { GKO_DECLARE_RCM_GET_PERMUTATION_KERNEL(IndexType) -namespace omp { -namespace rcm { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace rcm -} // namespace omp - - -namespace cuda { -namespace rcm { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace rcm -} // namespace cuda - - -namespace hip { -namespace rcm { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace rcm -} // namespace hip - - -namespace dpcpp { -namespace rcm { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace rcm -} // namespace dpcpp - - -namespace reference { -namespace rcm { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace rcm -} // namespace reference +GKO_DECLARE_FOR_ALL_EXECUTOR_NAMESPACES(rcm, GKO_DECLARE_ALL_AS_TEMPLATES); #undef GKO_DECLARE_ALL_AS_TEMPLATES diff --git a/core/solver/bicg_kernels.hpp b/core/solver/bicg_kernels.hpp index c2f113e49a2..69e4137e0c2 100644 --- a/core/solver/bicg_kernels.hpp +++ b/core/solver/bicg_kernels.hpp @@ -44,6 +44,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include +#include "core/base/kernel_declaration.hpp" + + namespace gko { namespace kernels { namespace bicg { @@ -91,49 +94,7 @@ namespace bicg { } // namespace bicg -namespace omp { -namespace bicg { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace bicg -} // namespace omp - - -namespace cuda { -namespace bicg { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace bicg -} // namespace cuda - - -namespace reference { -namespace bicg { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace bicg -} // namespace reference - - -namespace hip { -namespace bicg { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace bicg -} // namespace hip - - -namespace dpcpp { -namespace bicg { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace bicg -} // namespace dpcpp +GKO_DECLARE_FOR_ALL_EXECUTOR_NAMESPACES(bicg, GKO_DECLARE_ALL_AS_TEMPLATES); #undef GKO_DECLARE_ALL_AS_TEMPLATES diff --git a/core/solver/bicgstab_kernels.hpp b/core/solver/bicgstab_kernels.hpp index 136dcabc391..4c0713bdcce 100644 --- a/core/solver/bicgstab_kernels.hpp +++ b/core/solver/bicgstab_kernels.hpp @@ -44,6 +44,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include +#include "core/base/kernel_declaration.hpp" + + namespace gko { namespace kernels { namespace bicgstab { @@ -115,49 +118,7 @@ namespace bicgstab { } // namespace bicgstab -namespace omp { -namespace bicgstab { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace bicgstab -} // namespace omp - - -namespace cuda { -namespace bicgstab { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace bicgstab -} // namespace cuda - - -namespace reference { -namespace bicgstab { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace bicgstab -} // namespace reference - - -namespace hip { -namespace bicgstab { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace bicgstab -} // namespace hip - - -namespace dpcpp { -namespace bicgstab { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace bicgstab -} // namespace dpcpp +GKO_DECLARE_FOR_ALL_EXECUTOR_NAMESPACES(bicgstab, GKO_DECLARE_ALL_AS_TEMPLATES); #undef GKO_DECLARE_ALL_AS_TEMPLATES diff --git a/core/solver/cb_gmres_kernels.hpp b/core/solver/cb_gmres_kernels.hpp index 18b942476fb..e20d9c03a8c 100644 --- a/core/solver/cb_gmres_kernels.hpp +++ b/core/solver/cb_gmres_kernels.hpp @@ -44,6 +44,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "accessor/reduced_row_major.hpp" #include "accessor/scaled_reduced_row_major.hpp" #include "core/base/extended_float.hpp" +#include "core/base/kernel_declaration.hpp" // TODO Find way around using it! @@ -177,49 +178,7 @@ namespace kernels { GKO_DECLARE_CB_GMRES_STEP_2_KERNEL(ValueType, Accessor3d) -namespace omp { -namespace cb_gmres { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace cb_gmres -} // namespace omp - - -namespace cuda { -namespace cb_gmres { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace cb_gmres -} // namespace cuda - - -namespace reference { -namespace cb_gmres { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace cb_gmres -} // namespace reference - - -namespace hip { -namespace cb_gmres { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace cb_gmres -} // namespace hip - - -namespace dpcpp { -namespace cb_gmres { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace cb_gmres -} // namespace dpcpp +GKO_DECLARE_FOR_ALL_EXECUTOR_NAMESPACES(cb_gmres, GKO_DECLARE_ALL_AS_TEMPLATES); #undef GKO_DECLARE_ALL_AS_TEMPLATES diff --git a/core/solver/cg_kernels.hpp b/core/solver/cg_kernels.hpp index a455348fae4..fee546cfce1 100644 --- a/core/solver/cg_kernels.hpp +++ b/core/solver/cg_kernels.hpp @@ -43,6 +43,10 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include #include + +#include "core/base/kernel_declaration.hpp" + + namespace gko { namespace kernels { namespace cg { @@ -86,49 +90,7 @@ namespace cg { } // namespace cg -namespace omp { -namespace cg { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace cg -} // namespace omp - - -namespace cuda { -namespace cg { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace cg -} // namespace cuda - - -namespace reference { -namespace cg { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace cg -} // namespace reference - - -namespace hip { -namespace cg { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace cg -} // namespace hip - - -namespace dpcpp { -namespace cg { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace cg -} // namespace dpcpp +GKO_DECLARE_FOR_ALL_EXECUTOR_NAMESPACES(cg, GKO_DECLARE_ALL_AS_TEMPLATES); #undef GKO_DECLARE_ALL_AS_TEMPLATES diff --git a/core/solver/cgs_kernels.hpp b/core/solver/cgs_kernels.hpp index 5f977e672f8..0f8a1591595 100644 --- a/core/solver/cgs_kernels.hpp +++ b/core/solver/cgs_kernels.hpp @@ -44,6 +44,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include +#include "core/base/kernel_declaration.hpp" + + namespace gko { namespace kernels { namespace cgs { @@ -102,49 +105,7 @@ namespace cgs { } // namespace cgs -namespace omp { -namespace cgs { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace cgs -} // namespace omp - - -namespace cuda { -namespace cgs { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace cgs -} // namespace cuda - - -namespace reference { -namespace cgs { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace cgs -} // namespace reference - - -namespace hip { -namespace cgs { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace cgs -} // namespace hip - - -namespace dpcpp { -namespace cgs { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace cgs -} // namespace dpcpp +GKO_DECLARE_FOR_ALL_EXECUTOR_NAMESPACES(cgs, GKO_DECLARE_ALL_AS_TEMPLATES); #undef GKO_DECLARE_ALL_AS_TEMPLATES diff --git a/core/solver/fcg_kernels.hpp b/core/solver/fcg_kernels.hpp index 0ac74f78287..05ef757e894 100644 --- a/core/solver/fcg_kernels.hpp +++ b/core/solver/fcg_kernels.hpp @@ -43,6 +43,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include +#include "core/base/kernel_declaration.hpp" + + namespace gko { namespace kernels { namespace fcg { @@ -87,49 +90,7 @@ namespace fcg { } // namespace fcg -namespace omp { -namespace fcg { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace fcg -} // namespace omp - - -namespace cuda { -namespace fcg { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace fcg -} // namespace cuda - - -namespace reference { -namespace fcg { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace fcg -} // namespace reference - - -namespace hip { -namespace fcg { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace fcg -} // namespace hip - - -namespace dpcpp { -namespace fcg { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace fcg -} // namespace dpcpp +GKO_DECLARE_FOR_ALL_EXECUTOR_NAMESPACES(fcg, GKO_DECLARE_ALL_AS_TEMPLATES); #undef GKO_DECLARE_ALL_AS_TEMPLATES diff --git a/core/solver/gmres_kernels.hpp b/core/solver/gmres_kernels.hpp index f6651564185..c010645137c 100644 --- a/core/solver/gmres_kernels.hpp +++ b/core/solver/gmres_kernels.hpp @@ -41,6 +41,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include +#include "core/base/kernel_declaration.hpp" + + namespace gko { namespace kernels { namespace gmres { @@ -99,49 +102,7 @@ namespace gmres { } // namespace gmres -namespace omp { -namespace gmres { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace gmres -} // namespace omp - - -namespace cuda { -namespace gmres { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace gmres -} // namespace cuda - - -namespace reference { -namespace gmres { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace gmres -} // namespace reference - - -namespace hip { -namespace gmres { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace gmres -} // namespace hip - - -namespace dpcpp { -namespace gmres { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace gmres -} // namespace dpcpp +GKO_DECLARE_FOR_ALL_EXECUTOR_NAMESPACES(gmres, GKO_DECLARE_ALL_AS_TEMPLATES); #undef GKO_DECLARE_ALL_AS_TEMPLATES diff --git a/core/solver/idr_kernels.hpp b/core/solver/idr_kernels.hpp index 8812d23ddb6..098c1a0148a 100644 --- a/core/solver/idr_kernels.hpp +++ b/core/solver/idr_kernels.hpp @@ -41,6 +41,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include +#include "core/base/kernel_declaration.hpp" + + namespace gko { namespace kernels { namespace idr { @@ -107,49 +110,7 @@ namespace idr { } // namespace idr -namespace omp { -namespace idr { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace idr -} // namespace omp - - -namespace cuda { -namespace idr { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace idr -} // namespace cuda - - -namespace reference { -namespace idr { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace idr -} // namespace reference - - -namespace hip { -namespace idr { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace idr -} // namespace hip - - -namespace dpcpp { -namespace idr { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace idr -} // namespace dpcpp +GKO_DECLARE_FOR_ALL_EXECUTOR_NAMESPACES(idr, GKO_DECLARE_ALL_AS_TEMPLATES); #undef GKO_DECLARE_ALL_AS_TEMPLATES diff --git a/core/solver/ir_kernels.hpp b/core/solver/ir_kernels.hpp index afded9d369b..aea41e11e96 100644 --- a/core/solver/ir_kernels.hpp +++ b/core/solver/ir_kernels.hpp @@ -43,6 +43,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include +#include "core/base/kernel_declaration.hpp" + + namespace gko { namespace kernels { namespace ir { @@ -59,49 +62,7 @@ namespace ir { } // namespace ir -namespace omp { -namespace ir { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace ir -} // namespace omp - - -namespace cuda { -namespace ir { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace ir -} // namespace cuda - - -namespace reference { -namespace ir { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace ir -} // namespace reference - - -namespace hip { -namespace ir { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace ir -} // namespace hip - - -namespace dpcpp { -namespace ir { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace ir -} // namespace dpcpp +GKO_DECLARE_FOR_ALL_EXECUTOR_NAMESPACES(ir, GKO_DECLARE_ALL_AS_TEMPLATES); #undef GKO_DECLARE_ALL_AS_TEMPLATES diff --git a/core/solver/lower_trs_kernels.hpp b/core/solver/lower_trs_kernels.hpp index 53c15277202..1aeb09918ab 100644 --- a/core/solver/lower_trs_kernels.hpp +++ b/core/solver/lower_trs_kernels.hpp @@ -45,6 +45,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include +#include "core/base/kernel_declaration.hpp" + + namespace gko { namespace kernels { namespace lower_trs { @@ -87,49 +90,8 @@ namespace lower_trs { } // namespace lower_trs -namespace omp { -namespace lower_trs { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace lower_trs -} // namespace omp - - -namespace cuda { -namespace lower_trs { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace lower_trs -} // namespace cuda - - -namespace reference { -namespace lower_trs { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace lower_trs -} // namespace reference - - -namespace hip { -namespace lower_trs { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace lower_trs -} // namespace hip - - -namespace dpcpp { -namespace lower_trs { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace lower_trs -} // namespace dpcpp +GKO_DECLARE_FOR_ALL_EXECUTOR_NAMESPACES(lower_trs, + GKO_DECLARE_ALL_AS_TEMPLATES); #undef GKO_DECLARE_ALL_AS_TEMPLATES diff --git a/core/solver/multigrid_kernels.hpp b/core/solver/multigrid_kernels.hpp index 64c236aebd2..024bfb5677b 100644 --- a/core/solver/multigrid_kernels.hpp +++ b/core/solver/multigrid_kernels.hpp @@ -40,6 +40,10 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include #include + +#include "core/base/kernel_declaration.hpp" + + namespace gko { namespace kernels { namespace multigrid { @@ -47,24 +51,24 @@ namespace multigrid { #define GKO_DECLARE_MULTIGRID_KCYCLE_STEP_1_KERNEL(_type) \ void kcycle_step_1(std::shared_ptr exec, \ - const matrix::Dense<_type> *alpha, \ - const matrix::Dense<_type> *rho, \ - const matrix::Dense<_type> *v, matrix::Dense<_type> *g, \ - matrix::Dense<_type> *d, matrix::Dense<_type> *e) + const matrix::Dense<_type>* alpha, \ + const matrix::Dense<_type>* rho, \ + const matrix::Dense<_type>* v, matrix::Dense<_type>* g, \ + matrix::Dense<_type>* d, matrix::Dense<_type>* e) #define GKO_DECLARE_MULTIGRID_KCYCLE_STEP_2_KERNEL(_type) \ void kcycle_step_2( \ std::shared_ptr exec, \ - const matrix::Dense<_type> *alpha, const matrix::Dense<_type> *rho, \ - const matrix::Dense<_type> *gamma, const matrix::Dense<_type> *beta, \ - const matrix::Dense<_type> *zeta, const matrix::Dense<_type> *d, \ - matrix::Dense<_type> *e) + const matrix::Dense<_type>* alpha, const matrix::Dense<_type>* rho, \ + const matrix::Dense<_type>* gamma, const matrix::Dense<_type>* beta, \ + const matrix::Dense<_type>* zeta, const matrix::Dense<_type>* d, \ + matrix::Dense<_type>* e) #define GKO_DECLARE_MULTIGRID_KCYCLE_CHECK_STOP_KERNEL(_type) \ void kcycle_check_stop(std::shared_ptr exec, \ - const matrix::Dense<_type> *old_norm, \ - const matrix::Dense<_type> *new_norm, \ - const _type rel_tol, bool &is_stop) + const matrix::Dense<_type>* old_norm, \ + const matrix::Dense<_type>* new_norm, \ + const _type rel_tol, bool& is_stop) #define GKO_DECLARE_ALL_AS_TEMPLATES \ @@ -79,49 +83,8 @@ namespace multigrid { } // namespace multigrid -namespace omp { -namespace multigrid { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace multigrid -} // namespace omp - - -namespace cuda { -namespace multigrid { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace multigrid -} // namespace cuda - - -namespace reference { -namespace multigrid { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace multigrid -} // namespace reference - - -namespace hip { -namespace multigrid { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace multigrid -} // namespace hip - - -namespace dpcpp { -namespace multigrid { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace multigrid -} // namespace dpcpp +GKO_DECLARE_FOR_ALL_EXECUTOR_NAMESPACES(multigrid, + GKO_DECLARE_ALL_AS_TEMPLATES); #undef GKO_DECLARE_ALL_AS_TEMPLATES diff --git a/core/solver/upper_trs_kernels.hpp b/core/solver/upper_trs_kernels.hpp index 7737116e1b1..ba35eb6373b 100644 --- a/core/solver/upper_trs_kernels.hpp +++ b/core/solver/upper_trs_kernels.hpp @@ -45,6 +45,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include +#include "core/base/kernel_declaration.hpp" + + namespace gko { namespace kernels { namespace upper_trs { @@ -87,49 +90,8 @@ namespace upper_trs { } // namespace upper_trs -namespace omp { -namespace upper_trs { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace upper_trs -} // namespace omp - - -namespace cuda { -namespace upper_trs { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace upper_trs -} // namespace cuda - - -namespace reference { -namespace upper_trs { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace upper_trs -} // namespace reference - - -namespace hip { -namespace upper_trs { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace upper_trs -} // namespace hip - - -namespace dpcpp { -namespace upper_trs { - -GKO_DECLARE_ALL_AS_TEMPLATES; - -} // namespace upper_trs -} // namespace dpcpp +GKO_DECLARE_FOR_ALL_EXECUTOR_NAMESPACES(upper_trs, + GKO_DECLARE_ALL_AS_TEMPLATES); #undef GKO_DECLARE_ALL_AS_TEMPLATES diff --git a/core/stop/criterion_kernels.hpp b/core/stop/criterion_kernels.hpp index dc1fbcda789..85ecc08bb4a 100644 --- a/core/stop/criterion_kernels.hpp +++ b/core/stop/criterion_kernels.hpp @@ -39,6 +39,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include +#include "core/base/kernel_declaration.hpp" + + namespace gko { namespace kernels { namespace set_all_statuses { @@ -53,49 +56,8 @@ namespace set_all_statuses { } // namespace set_all_statuses -namespace omp { -namespace set_all_statuses { - -GKO_DECLARE_SET_ALL_STATUSES_KERNEL; - -} // namespace set_all_statuses -} // namespace omp - - -namespace cuda { -namespace set_all_statuses { - -GKO_DECLARE_SET_ALL_STATUSES_KERNEL; - -} // namespace set_all_statuses -} // namespace cuda - - -namespace reference { -namespace set_all_statuses { - -GKO_DECLARE_SET_ALL_STATUSES_KERNEL; - -} // namespace set_all_statuses -} // namespace reference - - -namespace hip { -namespace set_all_statuses { - -GKO_DECLARE_SET_ALL_STATUSES_KERNEL; - -} // namespace set_all_statuses -} // namespace hip - - -namespace dpcpp { -namespace set_all_statuses { - -GKO_DECLARE_SET_ALL_STATUSES_KERNEL; - -} // namespace set_all_statuses -} // namespace dpcpp +GKO_DECLARE_FOR_ALL_EXECUTOR_NAMESPACES(set_all_statuses, + GKO_DECLARE_SET_ALL_STATUSES_KERNEL); } // namespace kernels } // namespace gko