//@HEADER // ************************************************************************ // // Kokkos v. 4.0 // Copyright (2022) National Technology & Engineering // Solutions of Sandia, LLC (NTESS). // // Under the terms of Contract DE-NA0003525 with NTESS, // the U.S. Government retains certain rights in this software. // // Part of Kokkos, under the Apache License v2.0 with LLVM Exceptions. // See https://kokkos.org/LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //@HEADER template struct RunGather { static void run(int N, int K, int D, int R, int F); }; #define UNROLL 1 #include "gather_unroll.hpp" #undef UNROLL #define UNROLL 2 #include "gather_unroll.hpp" #undef UNROLL #define UNROLL 3 #include "gather_unroll.hpp" #undef UNROLL #define UNROLL 4 #include "gather_unroll.hpp" #undef UNROLL #define UNROLL 5 #include "gather_unroll.hpp" #undef UNROLL #define UNROLL 6 #include "gather_unroll.hpp" #undef UNROLL #define UNROLL 7 #include "gather_unroll.hpp" #undef UNROLL #define UNROLL 8 #include "gather_unroll.hpp" #undef UNROLL template void run_gather_test(int N, int K, int D, int R, int U, int F) { if (U == 1) RunGather::run(N, K, D, R, F); if (U == 2) RunGather::run(N, K, D, R, F); if (U == 3) RunGather::run(N, K, D, R, F); if (U == 4) RunGather::run(N, K, D, R, F); if (U == 5) RunGather::run(N, K, D, R, F); if (U == 6) RunGather::run(N, K, D, R, F); if (U == 7) RunGather::run(N, K, D, R, F); if (U == 8) RunGather::run(N, K, D, R, F); }