From f6b453f5294425c285618188a62de87a5b6d6143 Mon Sep 17 00:00:00 2001 From: Stephane Del Pino <stephane.delpino44@gmail.com> Date: Thu, 28 Jan 2021 11:31:11 +0100 Subject: [PATCH] git subrepo pull (merge) packages/kokkos subrepo: subdir: "packages/kokkos" merged: "265063b45" upstream: origin: "git@github.com:kokkos/kokkos.git" branch: "master" commit: "1fb0c284d" git-subrepo: version: "0.4.3" origin: "git@github.com:ingydotnet/git-subrepo.git" commit: "2f68596" --- packages/kokkos/.clang-tidy | 3 + packages/kokkos/.gitignore | 1 + packages/kokkos/.gitrepo | 4 +- packages/kokkos/.jenkins | 239 +- packages/kokkos/.travis.yml | 6 +- packages/kokkos/BUILD.md | 94 +- packages/kokkos/CHANGELOG.md | 233 +- packages/kokkos/CMakeLists.txt | 56 +- packages/kokkos/Makefile.kokkos | 446 +-- packages/kokkos/Makefile.targets | 37 +- packages/kokkos/README.md | 64 +- packages/kokkos/Spack.md | 267 ++ packages/kokkos/algorithms/CMakeLists.txt | 4 +- packages/kokkos/algorithms/src/CMakeLists.txt | 16 +- .../kokkos/algorithms/src/Kokkos_Random.hpp | 214 +- .../kokkos/algorithms/src/Kokkos_Sort.hpp | 76 +- .../algorithms/unit_tests/CMakeLists.txt | 16 +- .../kokkos/algorithms/unit_tests/Makefile | 16 +- .../algorithms/unit_tests/TestRandom.hpp | 52 +- .../kokkos/algorithms/unit_tests/TestSort.hpp | 32 +- packages/kokkos/appveyor.yml | 2 +- packages/kokkos/benchmarks/atomic/Makefile | 43 +- packages/kokkos/benchmarks/atomic/main.cpp | 14 +- .../benchmark_suite/scripts/run_tests.bash | 2 +- .../benchmarks/bytes_and_flops/Makefile | 4 +- .../benchmarks/bytes_and_flops/main.cpp | 18 +- packages/kokkos/benchmarks/gather/Makefile | 33 +- packages/kokkos/benchmarks/gather/main.cpp | 14 +- packages/kokkos/benchmarks/gups/Makefile | 50 +- .../kokkos/benchmarks/gups/gups-kokkos.cc | 200 -- .../kokkos/benchmarks/gups/gups-kokkos.cpp | 201 ++ .../benchmarks/policy_performance/Makefile | 47 +- .../benchmarks/policy_performance/main.cpp | 34 +- .../policy_performance/policy_perf_test.hpp | 4 +- packages/kokkos/benchmarks/stream/Makefile | 50 +- .../kokkos/benchmarks/stream/stream-kokkos.cc | 266 -- .../benchmarks/stream/stream-kokkos.cpp | 271 ++ packages/kokkos/bin/kokkos_launch_compiler | 87 + packages/kokkos/bin/nvcc_wrapper | 80 +- packages/kokkos/cmake/KokkosConfig.cmake.in | 21 + .../kokkos/cmake/KokkosConfigCommon.cmake.in | 73 +- .../KokkosCore_Config_HeaderSet.in} | 8 +- packages/kokkos/cmake/KokkosCore_config.h.in | 17 +- .../kokkos/cmake/Modules/CudaToolkit.cmake | 958 +++++ .../kokkos/cmake/Modules/FindTPLCUDA.cmake | 46 +- packages/kokkos/cmake/README.md | 10 +- .../compile_tests/cuda_compute_capability.cc} | 54 +- packages/kokkos/cmake/deps/CUDA.cmake | 35 +- packages/kokkos/cmake/deps/CUSPARSE.cmake | 35 +- packages/kokkos/cmake/deps/HWLOC.cmake | 35 +- packages/kokkos/cmake/deps/Pthread.cmake | 35 +- packages/kokkos/cmake/fake_tribits.cmake | 102 +- packages/kokkos/cmake/intel.cmake | 20 +- packages/kokkos/cmake/kokkos_arch.cmake | 247 +- .../kokkos/cmake/kokkos_compiler_id.cmake | 144 +- .../kokkos/cmake/kokkos_corner_cases.cmake | 8 +- .../kokkos/cmake/kokkos_enable_devices.cmake | 82 +- .../kokkos/cmake/kokkos_enable_options.cmake | 7 +- packages/kokkos/cmake/kokkos_functions.cmake | 212 +- packages/kokkos/cmake/kokkos_install.cmake | 2 +- .../kokkos/cmake/kokkos_pick_cxx_std.cmake | 12 +- .../kokkos/cmake/kokkos_test_cxx_std.cmake | 44 +- packages/kokkos/cmake/kokkos_tpls.cmake | 41 +- packages/kokkos/cmake/kokkos_tribits.cmake | 218 +- .../kokkos/cmake/tpls/FindTPLCUSPARSE.cmake | 35 +- packages/kokkos/cmake/tpls/FindTPLHWLOC.cmake | 35 +- .../kokkos/cmake/tpls/FindTPLPthread.cmake | 35 +- packages/kokkos/config/yaml/volta.yaml | 4 + packages/kokkos/containers/CMakeLists.txt | 4 +- .../performance_tests/CMakeLists.txt | 58 +- .../containers/performance_tests/Makefile | 16 +- .../containers/performance_tests/TestCuda.cpp | 22 +- .../performance_tests/TestDynRankView.hpp | 28 +- .../performance_tests/TestGlobal2LocalIds.hpp | 44 +- .../{TestROCm.cpp => TestHIP.cpp} | 45 +- .../containers/performance_tests/TestHPX.cpp | 26 +- .../containers/performance_tests/TestMain.cpp | 8 +- .../performance_tests/TestOpenMP.cpp | 27 +- .../performance_tests/TestScatterView.hpp | 6 +- .../performance_tests/TestThreads.cpp | 35 +- .../TestUnorderedMapPerformance.hpp | 6 +- packages/kokkos/containers/src/CMakeLists.txt | 5 + .../kokkos/containers/src/Kokkos_Bitset.hpp | 36 +- .../kokkos/containers/src/Kokkos_DualView.hpp | 288 +- .../containers/src/Kokkos_DynRankView.hpp | 353 +- .../containers/src/Kokkos_DynamicView.hpp | 170 +- .../containers/src/Kokkos_ErrorReporter.hpp | 12 +- .../containers/src/Kokkos_Functional.hpp | 56 +- .../containers/src/Kokkos_OffsetView.hpp | 194 +- .../containers/src/Kokkos_ScatterView.hpp | 796 +++-- .../containers/src/Kokkos_StaticCrsGraph.hpp | 113 +- .../containers/src/Kokkos_UnorderedMap.hpp | 137 +- .../kokkos/containers/src/Kokkos_Vector.hpp | 31 +- .../src/impl/Kokkos_Bitset_impl.hpp | 10 +- .../src/impl/Kokkos_Functional_impl.hpp | 8 +- .../impl/Kokkos_StaticCrsGraph_factory.hpp | 78 +- .../src/impl/Kokkos_UnorderedMap_impl.hpp | 34 +- .../containers/unit_tests/CMakeLists.txt | 12 +- .../kokkos/containers/unit_tests/Makefile | 2 +- .../containers/unit_tests/TestBitset.hpp | 48 +- .../containers/unit_tests/TestDualView.hpp | 86 +- .../containers/unit_tests/TestDynViewAPI.hpp | 256 +- .../unit_tests/TestDynViewAPI_generic.hpp | 3 - .../unit_tests/TestDynViewAPI_rank12345.hpp | 3 - .../containers/unit_tests/TestDynamicView.hpp | 34 +- .../unit_tests/TestErrorReporter.hpp | 33 +- .../containers/unit_tests/TestOffsetView.hpp | 77 +- .../unit_tests/TestSYCL_Category.hpp | 51 + .../containers/unit_tests/TestScatterView.hpp | 397 ++- .../unit_tests/TestStaticCrsGraph.hpp | 74 +- .../unit_tests/TestUnorderedMap.hpp | 42 +- .../containers/unit_tests/TestVector.hpp | 57 +- .../TestViewCtorPropEmbeddedDim.hpp | 32 +- packages/kokkos/core/CMakeLists.txt | 4 +- .../kokkos/core/cmake/KokkosCore_config.h.in | 11 +- packages/kokkos/core/perf_test/CMakeLists.txt | 40 +- packages/kokkos/core/perf_test/Makefile | 14 +- .../core/perf_test/PerfTestBlasKernels.hpp | 20 +- .../core/perf_test/PerfTestGramSchmidt.cpp | 29 +- .../kokkos/core/perf_test/PerfTestHexGrad.cpp | 22 +- .../kokkos/core/perf_test/PerfTestMDRange.hpp | 58 +- .../perf_test/PerfTest_CustomReduction.cpp | 6 +- .../PerfTest_ExecSpacePartitioning.cpp | 2 +- .../core/perf_test/PerfTest_ViewResize.hpp | 10 +- .../kokkos/core/perf_test/test_atomic.cpp | 38 +- .../perf_test/test_atomic_minmax_simple.cpp | 244 ++ .../kokkos/core/perf_test/test_mempool.cpp | 22 +- .../kokkos/core/perf_test/test_taskdag.cpp | 10 +- packages/kokkos/core/src/CMakeLists.txt | 40 +- .../src/Cuda/KokkosExp_Cuda_IterateTile.hpp | 1392 -------- .../KokkosExp_Cuda_IterateTile_Refactor.hpp | 3067 ---------------- .../kokkos/core/src/Cuda/Kokkos_CudaSpace.cpp | 264 +- .../Cuda/Kokkos_Cuda_BlockSize_Deduction.hpp | 633 +--- .../core/src/Cuda/Kokkos_Cuda_Error.hpp | 9 +- .../src/Cuda/Kokkos_Cuda_GraphNodeKernel.hpp | 210 ++ .../Kokkos_Cuda_GraphNode_Impl.hpp} | 73 +- .../core/src/Cuda/Kokkos_Cuda_Graph_Impl.hpp | 219 ++ .../kokkos/core/src/Cuda/Kokkos_Cuda_Half.hpp | 710 ++++ .../core/src/Cuda/Kokkos_Cuda_Instance.cpp | 353 +- .../core/src/Cuda/Kokkos_Cuda_Instance.hpp | 83 +- .../src/Cuda/Kokkos_Cuda_KernelLaunch.hpp | 742 ++-- .../core/src/Cuda/Kokkos_Cuda_Locks.cpp | 5 +- .../core/src/Cuda/Kokkos_Cuda_Locks.hpp | 4 - .../core/src/Cuda/Kokkos_Cuda_Parallel.hpp | 939 ++--- .../core/src/Cuda/Kokkos_Cuda_ReduceScan.hpp | 78 +- .../kokkos/core/src/Cuda/Kokkos_Cuda_Task.hpp | 9 +- .../kokkos/core/src/Cuda/Kokkos_Cuda_Team.hpp | 80 +- .../core/src/Cuda/Kokkos_Cuda_UniqueToken.hpp | 27 +- .../src/Cuda/Kokkos_Cuda_Vectorization.hpp | 2 +- .../kokkos/core/src/Cuda/Kokkos_Cuda_View.hpp | 4 +- .../src/Cuda/Kokkos_Cuda_WorkGraphPolicy.hpp | 8 +- .../core/src/Cuda/Kokkos_Cuda_abort.hpp | 26 +- .../kokkos/core/src/HIP/Kokkos_HIP_Abort.hpp | 21 +- .../kokkos/core/src/HIP/Kokkos_HIP_Atomic.hpp | 93 +- .../HIP/Kokkos_HIP_BlockSize_Deduction.hpp | 196 +- .../kokkos/core/src/HIP/Kokkos_HIP_Error.hpp | 4 +- .../core/src/HIP/Kokkos_HIP_Instance.cpp | 221 +- .../core/src/HIP/Kokkos_HIP_Instance.hpp | 39 +- .../core/src/HIP/Kokkos_HIP_KernelLaunch.hpp | 103 +- .../kokkos/core/src/HIP/Kokkos_HIP_Locks.cpp | 29 +- .../kokkos/core/src/HIP/Kokkos_HIP_Locks.hpp | 29 +- .../src/HIP/Kokkos_HIP_Parallel_MDRange.hpp | 77 +- .../src/HIP/Kokkos_HIP_Parallel_Range.hpp | 223 +- .../core/src/HIP/Kokkos_HIP_Parallel_Team.hpp | 787 ++++- .../core/src/HIP/Kokkos_HIP_ReduceScan.hpp | 249 +- .../src/HIP/Kokkos_HIP_Shuffle_Reduce.hpp | 339 ++ .../kokkos/core/src/HIP/Kokkos_HIP_Space.cpp | 418 ++- .../kokkos/core/src/HIP/Kokkos_HIP_Team.hpp | 302 +- .../core/src/HIP/Kokkos_HIP_UniqueToken.hpp | 129 + .../core/src/HIP/Kokkos_HIP_Vectorization.hpp | 121 +- .../Kokkos_HIP_WorkGraphPolicy.hpp} | 77 +- packages/kokkos/core/src/HPX/Kokkos_HPX.cpp | 63 +- .../kokkos/core/src/HPX/Kokkos_HPX_Task.hpp | 18 +- .../src/HPX/Kokkos_HPX_ViewCopyETIAvail.hpp | 57 - .../src/HPX/Kokkos_HPX_WorkGraphPolicy.hpp | 6 +- .../core/src/KokkosExp_MDRangePolicy.hpp | 580 +-- ....cpp => Kokkos_AcquireUniqueTokenImpl.hpp} | 45 +- .../kokkos/core/src/Kokkos_AnonymousSpace.hpp | 26 +- packages/kokkos/core/src/Kokkos_Array.hpp | 76 +- packages/kokkos/core/src/Kokkos_Atomic.hpp | 57 +- packages/kokkos/core/src/Kokkos_Complex.hpp | 273 +- packages/kokkos/core/src/Kokkos_Concepts.hpp | 84 +- packages/kokkos/core/src/Kokkos_CopyViews.hpp | 1036 ++---- packages/kokkos/core/src/Kokkos_Core.hpp | 100 +- packages/kokkos/core/src/Kokkos_Core_fwd.hpp | 177 +- packages/kokkos/core/src/Kokkos_Crs.hpp | 45 +- packages/kokkos/core/src/Kokkos_Cuda.hpp | 81 +- packages/kokkos/core/src/Kokkos_CudaSpace.hpp | 175 +- .../kokkos/core/src/Kokkos_ExecPolicy.hpp | 390 +- packages/kokkos/core/src/Kokkos_Extents.hpp | 2 + packages/kokkos/core/src/Kokkos_Future.hpp | 2 +- packages/kokkos/core/src/Kokkos_Graph.hpp | 191 + packages/kokkos/core/src/Kokkos_GraphNode.hpp | 462 +++ ...ewCopyETIDecl.hpp => Kokkos_Graph_fwd.hpp} | 26 +- packages/kokkos/core/src/Kokkos_HBWSpace.hpp | 61 +- packages/kokkos/core/src/Kokkos_HIP.hpp | 1 + packages/kokkos/core/src/Kokkos_HIP_Space.hpp | 148 +- packages/kokkos/core/src/Kokkos_HPX.hpp | 494 ++- packages/kokkos/core/src/Kokkos_Half.hpp | 119 + packages/kokkos/core/src/Kokkos_HostSpace.hpp | 57 +- packages/kokkos/core/src/Kokkos_Layout.hpp | 75 +- .../kokkos/core/src/Kokkos_LogicalSpaces.hpp | 428 +++ packages/kokkos/core/src/Kokkos_Macros.hpp | 269 +- .../kokkos/core/src/Kokkos_MemoryPool.hpp | 40 +- .../kokkos/core/src/Kokkos_MemoryTraits.hpp | 21 +- .../kokkos/core/src/Kokkos_NumericTraits.hpp | 1 + packages/kokkos/core/src/Kokkos_OpenMP.hpp | 85 +- .../kokkos/core/src/Kokkos_OpenMPTarget.hpp | 33 +- .../core/src/Kokkos_OpenMPTargetSpace.hpp | 12 +- packages/kokkos/core/src/Kokkos_Pair.hpp | 20 +- packages/kokkos/core/src/Kokkos_Parallel.hpp | 206 +- .../core/src/Kokkos_Parallel_Reduce.hpp | 402 +-- .../src/Kokkos_Profiling_ProfileSection.hpp | 11 +- packages/kokkos/core/src/Kokkos_ROCm.hpp | 242 -- packages/kokkos/core/src/Kokkos_ROCmSpace.hpp | 637 ---- packages/kokkos/core/src/Kokkos_SYCL.hpp | 190 + .../kokkos/core/src/Kokkos_SYCL_Space.hpp | 181 + .../kokkos/core/src/Kokkos_ScratchSpace.hpp | 47 +- packages/kokkos/core/src/Kokkos_Serial.hpp | 416 +-- .../kokkos/core/src/Kokkos_TaskScheduler.hpp | 6 +- .../core/src/Kokkos_TaskScheduler_fwd.hpp | 1 + packages/kokkos/core/src/Kokkos_Threads.hpp | 74 +- packages/kokkos/core/src/Kokkos_Timer.hpp | 1 + packages/kokkos/core/src/Kokkos_Tuners.hpp | 477 +++ .../kokkos/core/src/Kokkos_UniqueToken.hpp | 91 + .../kokkos/core/src/Kokkos_Vectorization.hpp | 2 + packages/kokkos/core/src/Kokkos_View.hpp | 789 +---- .../core/src/Kokkos_WorkGraphPolicy.hpp | 7 + packages/kokkos/core/src/Kokkos_hwloc.hpp | 2 + .../core/src/OpenMP/Kokkos_OpenMP_Exec.cpp | 78 +- .../core/src/OpenMP/Kokkos_OpenMP_Exec.hpp | 125 +- .../src/OpenMP/Kokkos_OpenMP_Parallel.hpp | 241 +- .../core/src/OpenMP/Kokkos_OpenMP_Task.hpp | 18 +- .../core/src/OpenMP/Kokkos_OpenMP_Team.hpp | 228 +- .../OpenMP/Kokkos_OpenMP_ViewCopyETIAvail.hpp | 57 - .../OpenMP/Kokkos_OpenMP_ViewCopyETIDecl.hpp | 57 - .../OpenMP/Kokkos_OpenMP_WorkGraphPolicy.hpp | 8 +- .../OpenMPTarget/Kokkos_OpenMPTargetSpace.cpp | 24 +- .../Kokkos_OpenMPTarget_Abort.hpp} | 16 +- .../OpenMPTarget/Kokkos_OpenMPTarget_Exec.cpp | 7 +- .../OpenMPTarget/Kokkos_OpenMPTarget_Exec.hpp | 848 ++++- .../Kokkos_OpenMPTarget_Instance.cpp | 104 +- .../Kokkos_OpenMPTarget_Instance.hpp | 51 +- .../Kokkos_OpenMPTarget_Parallel.hpp | 720 +--- .../Kokkos_OpenMPTarget_Parallel_MDRange.hpp | 274 +- .../OpenMPTarget/Kokkos_OpenMPTarget_Task.hpp | 1 - .../KokkosExp_ROCm_IterateTile_Refactor.hpp | 3134 ----------------- .../core/src/ROCm/Kokkos_ROCm_Atomic.hpp | 534 --- .../kokkos/core/src/ROCm/Kokkos_ROCm_Exec.cpp | 129 - .../kokkos/core/src/ROCm/Kokkos_ROCm_Exec.hpp | 265 -- .../kokkos/core/src/ROCm/Kokkos_ROCm_Impl.cpp | 729 ---- .../core/src/ROCm/Kokkos_ROCm_Parallel.hpp | 1793 ---------- .../core/src/ROCm/Kokkos_ROCm_Reduce.hpp | 184 - .../core/src/ROCm/Kokkos_ROCm_ReduceScan.hpp | 690 ---- .../kokkos/core/src/ROCm/Kokkos_ROCm_Scan.hpp | 250 -- .../core/src/ROCm/Kokkos_ROCm_Space.cpp | 648 ---- .../kokkos/core/src/ROCm/Kokkos_ROCm_Task.cpp | 168 - .../kokkos/core/src/ROCm/Kokkos_ROCm_Task.hpp | 448 --- .../kokkos/core/src/ROCm/Kokkos_ROCm_Tile.hpp | 452 --- .../src/ROCm/Kokkos_ROCm_Vectorization.hpp | 350 -- packages/kokkos/core/src/ROCm/hc_math_std.hpp | 371 -- packages/kokkos/core/src/SYCL/Kokkos_SYCL.cpp | 274 ++ .../core/src/SYCL/Kokkos_SYCL_DeepCopy.hpp | 137 + .../core/src/SYCL/Kokkos_SYCL_Instance.cpp | 127 + .../core/src/SYCL/Kokkos_SYCL_Instance.hpp | 102 + .../src/SYCL/Kokkos_SYCL_Parallel_Range.hpp | 133 + .../src/SYCL/Kokkos_SYCL_Parallel_Reduce.hpp | 300 ++ .../src/SYCL/Kokkos_SYCL_Parallel_Scan.hpp | 324 ++ .../core/src/SYCL/Kokkos_SYCL_Space.cpp | 438 +++ .../Serial/Kokkos_Serial_ViewCopyETIAvail.hpp | 57 - .../Serial/Kokkos_Serial_ViewCopyETIDecl.hpp | 57 - .../core/src/Threads/Kokkos_ThreadsExec.cpp | 96 +- .../core/src/Threads/Kokkos_ThreadsExec.hpp | 173 +- .../core/src/Threads/Kokkos_ThreadsTeam.hpp | 352 +- .../src/Threads/Kokkos_Threads_Parallel.hpp | 281 +- .../Kokkos_Threads_WorkGraphPolicy.hpp | 10 +- .../core/src/decl/Kokkos_Declare_CUDA.hpp | 52 + .../core/src/decl/Kokkos_Declare_HBWSpace.hpp | 52 + .../decl/Kokkos_Declare_HIP.hpp} | 13 +- .../core/src/decl/Kokkos_Declare_HPX.hpp | 52 + .../core/src/decl/Kokkos_Declare_OPENMP.hpp | 52 + .../decl/Kokkos_Declare_OPENMPTARGET.hpp} | 15 +- .../core/src/decl/Kokkos_Declare_SERIAL.hpp | 52 + .../core/src/decl/Kokkos_Declare_SYCL.hpp | 56 + .../core/src/decl/Kokkos_Declare_THREADS.hpp | 52 + packages/kokkos/core/src/eti/CMakeLists.txt | 25 - .../kokkos/core/src/eti/Cuda/CMakeLists.txt | 148 - ...TIInst_int64_t_double_LayoutLeft_Rank1.cpp | 55 - ...TIInst_int64_t_double_LayoutLeft_Rank2.cpp | 55 - ...TIInst_int64_t_double_LayoutLeft_Rank3.cpp | 56 - ...TIInst_int64_t_double_LayoutLeft_Rank4.cpp | 57 - ...TIInst_int64_t_double_LayoutLeft_Rank5.cpp | 58 - ...TIInst_int64_t_double_LayoutLeft_Rank8.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank1.cpp | 55 - ...IInst_int64_t_double_LayoutRight_Rank2.cpp | 56 - ...IInst_int64_t_double_LayoutRight_Rank3.cpp | 57 - ...IInst_int64_t_double_LayoutRight_Rank4.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank5.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank8.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank1.cpp | 56 - ...Inst_int64_t_double_LayoutStride_Rank2.cpp | 57 - ...Inst_int64_t_double_LayoutStride_Rank3.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank4.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank5.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank8.cpp | 58 - ...ETIInst_int64_t_float_LayoutLeft_Rank1.cpp | 55 - ...ETIInst_int64_t_float_LayoutLeft_Rank2.cpp | 55 - ...ETIInst_int64_t_float_LayoutLeft_Rank3.cpp | 55 - ...ETIInst_int64_t_float_LayoutLeft_Rank4.cpp | 56 - ...ETIInst_int64_t_float_LayoutLeft_Rank5.cpp | 57 - ...ETIInst_int64_t_float_LayoutLeft_Rank8.cpp | 58 - ...TIInst_int64_t_float_LayoutRight_Rank1.cpp | 55 - ...TIInst_int64_t_float_LayoutRight_Rank2.cpp | 55 - ...TIInst_int64_t_float_LayoutRight_Rank3.cpp | 56 - ...TIInst_int64_t_float_LayoutRight_Rank4.cpp | 57 - ...TIInst_int64_t_float_LayoutRight_Rank5.cpp | 58 - ...TIInst_int64_t_float_LayoutRight_Rank8.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank1.cpp | 55 - ...IInst_int64_t_float_LayoutStride_Rank2.cpp | 56 - ...IInst_int64_t_float_LayoutStride_Rank3.cpp | 57 - ...IInst_int64_t_float_LayoutStride_Rank4.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank5.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank8.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank1.cpp | 55 - ...IInst_int64_t_int64_t_LayoutLeft_Rank2.cpp | 56 - ...IInst_int64_t_int64_t_LayoutLeft_Rank3.cpp | 57 - ...IInst_int64_t_int64_t_LayoutLeft_Rank4.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank5.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank8.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank1.cpp | 56 - ...Inst_int64_t_int64_t_LayoutRight_Rank2.cpp | 57 - ...Inst_int64_t_int64_t_LayoutRight_Rank3.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank4.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank5.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank8.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank1.cpp | 57 - ...nst_int64_t_int64_t_LayoutStride_Rank2.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank3.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank4.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank5.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank8.cpp | 58 - ...pyETIInst_int64_t_int_LayoutLeft_Rank1.cpp | 55 - ...pyETIInst_int64_t_int_LayoutLeft_Rank2.cpp | 55 - ...pyETIInst_int64_t_int_LayoutLeft_Rank3.cpp | 55 - ...pyETIInst_int64_t_int_LayoutLeft_Rank4.cpp | 55 - ...pyETIInst_int64_t_int_LayoutLeft_Rank5.cpp | 55 - ...pyETIInst_int64_t_int_LayoutLeft_Rank8.cpp | 58 - ...yETIInst_int64_t_int_LayoutRight_Rank1.cpp | 55 - ...yETIInst_int64_t_int_LayoutRight_Rank2.cpp | 55 - ...yETIInst_int64_t_int_LayoutRight_Rank3.cpp | 55 - ...yETIInst_int64_t_int_LayoutRight_Rank4.cpp | 55 - ...yETIInst_int64_t_int_LayoutRight_Rank5.cpp | 56 - ...yETIInst_int64_t_int_LayoutRight_Rank8.cpp | 58 - ...ETIInst_int64_t_int_LayoutStride_Rank2.cpp | 55 - ...ETIInst_int64_t_int_LayoutStride_Rank3.cpp | 55 - ...ETIInst_int64_t_int_LayoutStride_Rank4.cpp | 56 - ...ETIInst_int64_t_int_LayoutStride_Rank5.cpp | 57 - ...ETIInst_int64_t_int_LayoutStride_Rank8.cpp | 58 - ...opyETIInst_int_double_LayoutLeft_Rank1.cpp | 55 - ...opyETIInst_int_double_LayoutLeft_Rank2.cpp | 55 - ...opyETIInst_int_double_LayoutLeft_Rank3.cpp | 55 - ...opyETIInst_int_double_LayoutLeft_Rank4.cpp | 55 - ...opyETIInst_int_double_LayoutLeft_Rank5.cpp | 55 - ...opyETIInst_int_double_LayoutLeft_Rank8.cpp | 57 - ...pyETIInst_int_double_LayoutRight_Rank1.cpp | 55 - ...pyETIInst_int_double_LayoutRight_Rank2.cpp | 55 - ...pyETIInst_int_double_LayoutRight_Rank3.cpp | 55 - ...pyETIInst_int_double_LayoutRight_Rank4.cpp | 55 - ...pyETIInst_int_double_LayoutRight_Rank5.cpp | 55 - ...pyETIInst_int_double_LayoutRight_Rank8.cpp | 58 - ...yETIInst_int_double_LayoutStride_Rank1.cpp | 55 - ...yETIInst_int_double_LayoutStride_Rank2.cpp | 55 - ...yETIInst_int_double_LayoutStride_Rank3.cpp | 55 - ...yETIInst_int_double_LayoutStride_Rank4.cpp | 55 - ...yETIInst_int_double_LayoutStride_Rank5.cpp | 56 - ...yETIInst_int_double_LayoutStride_Rank8.cpp | 58 - ...CopyETIInst_int_float_LayoutLeft_Rank1.cpp | 55 - ...CopyETIInst_int_float_LayoutLeft_Rank2.cpp | 55 - ...CopyETIInst_int_float_LayoutLeft_Rank3.cpp | 55 - ...CopyETIInst_int_float_LayoutLeft_Rank4.cpp | 55 - ...CopyETIInst_int_float_LayoutLeft_Rank5.cpp | 55 - ...CopyETIInst_int_float_LayoutLeft_Rank8.cpp | 56 - ...opyETIInst_int_float_LayoutRight_Rank1.cpp | 55 - ...opyETIInst_int_float_LayoutRight_Rank2.cpp | 55 - ...opyETIInst_int_float_LayoutRight_Rank3.cpp | 55 - ...opyETIInst_int_float_LayoutRight_Rank4.cpp | 55 - ...opyETIInst_int_float_LayoutRight_Rank5.cpp | 55 - ...opyETIInst_int_float_LayoutRight_Rank8.cpp | 57 - ...pyETIInst_int_float_LayoutStride_Rank1.cpp | 55 - ...pyETIInst_int_float_LayoutStride_Rank2.cpp | 55 - ...pyETIInst_int_float_LayoutStride_Rank3.cpp | 55 - ...pyETIInst_int_float_LayoutStride_Rank4.cpp | 55 - ...pyETIInst_int_float_LayoutStride_Rank5.cpp | 55 - ...pyETIInst_int_float_LayoutStride_Rank8.cpp | 58 - ...pyETIInst_int_int64_t_LayoutLeft_Rank1.cpp | 55 - ...pyETIInst_int_int64_t_LayoutLeft_Rank2.cpp | 55 - ...pyETIInst_int_int64_t_LayoutLeft_Rank3.cpp | 55 - ...pyETIInst_int_int64_t_LayoutLeft_Rank4.cpp | 55 - ...pyETIInst_int_int64_t_LayoutLeft_Rank5.cpp | 55 - ...pyETIInst_int_int64_t_LayoutLeft_Rank8.cpp | 58 - ...yETIInst_int_int64_t_LayoutRight_Rank1.cpp | 55 - ...yETIInst_int_int64_t_LayoutRight_Rank2.cpp | 55 - ...yETIInst_int_int64_t_LayoutRight_Rank3.cpp | 55 - ...yETIInst_int_int64_t_LayoutRight_Rank4.cpp | 55 - ...yETIInst_int_int64_t_LayoutRight_Rank5.cpp | 56 - ...yETIInst_int_int64_t_LayoutRight_Rank8.cpp | 58 - ...ETIInst_int_int64_t_LayoutStride_Rank1.cpp | 55 - ...ETIInst_int_int64_t_LayoutStride_Rank2.cpp | 55 - ...ETIInst_int_int64_t_LayoutStride_Rank3.cpp | 55 - ...ETIInst_int_int64_t_LayoutStride_Rank4.cpp | 56 - ...ETIInst_int_int64_t_LayoutStride_Rank5.cpp | 57 - ...ETIInst_int_int64_t_LayoutStride_Rank8.cpp | 58 - ...ewCopyETIInst_int_int_LayoutLeft_Rank1.cpp | 55 - ...ewCopyETIInst_int_int_LayoutLeft_Rank2.cpp | 55 - ...ewCopyETIInst_int_int_LayoutLeft_Rank3.cpp | 55 - ...ewCopyETIInst_int_int_LayoutLeft_Rank4.cpp | 55 - ...ewCopyETIInst_int_int_LayoutLeft_Rank5.cpp | 55 - ...ewCopyETIInst_int_int_LayoutLeft_Rank8.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank1.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank2.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank3.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank4.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank5.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank8.cpp | 55 - ...CopyETIInst_int_int_LayoutStride_Rank1.cpp | 55 - ...CopyETIInst_int_int_LayoutStride_Rank2.cpp | 55 - ...CopyETIInst_int_int_LayoutStride_Rank3.cpp | 55 - ...CopyETIInst_int_int_LayoutStride_Rank4.cpp | 55 - ...CopyETIInst_int_int_LayoutStride_Rank5.cpp | 55 - ...CopyETIInst_int_int_LayoutStride_Rank8.cpp | 56 - .../core/src/eti/Cuda/Makefile.eti_Cuda | 288 -- .../kokkos/core/src/eti/HPX/CMakeLists.txt | 148 - ...TIInst_int64_t_double_LayoutLeft_Rank1.cpp | 58 - ...TIInst_int64_t_double_LayoutLeft_Rank2.cpp | 58 - ...TIInst_int64_t_double_LayoutLeft_Rank3.cpp | 58 - ...TIInst_int64_t_double_LayoutLeft_Rank4.cpp | 59 - ...TIInst_int64_t_double_LayoutLeft_Rank5.cpp | 59 - ...TIInst_int64_t_double_LayoutLeft_Rank8.cpp | 59 - ...IInst_int64_t_double_LayoutRight_Rank1.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank2.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank3.cpp | 59 - ...IInst_int64_t_double_LayoutRight_Rank4.cpp | 59 - ...IInst_int64_t_double_LayoutRight_Rank5.cpp | 59 - ...IInst_int64_t_double_LayoutRight_Rank8.cpp | 59 - ...Inst_int64_t_double_LayoutStride_Rank1.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank2.cpp | 59 - ...Inst_int64_t_double_LayoutStride_Rank3.cpp | 59 - ...Inst_int64_t_double_LayoutStride_Rank4.cpp | 59 - ...Inst_int64_t_double_LayoutStride_Rank5.cpp | 59 - ...Inst_int64_t_double_LayoutStride_Rank8.cpp | 59 - ...ETIInst_int64_t_float_LayoutLeft_Rank1.cpp | 58 - ...ETIInst_int64_t_float_LayoutLeft_Rank2.cpp | 58 - ...ETIInst_int64_t_float_LayoutLeft_Rank3.cpp | 58 - ...ETIInst_int64_t_float_LayoutLeft_Rank4.cpp | 58 - ...ETIInst_int64_t_float_LayoutLeft_Rank5.cpp | 59 - ...ETIInst_int64_t_float_LayoutLeft_Rank8.cpp | 59 - ...TIInst_int64_t_float_LayoutRight_Rank1.cpp | 58 - ...TIInst_int64_t_float_LayoutRight_Rank2.cpp | 58 - ...TIInst_int64_t_float_LayoutRight_Rank3.cpp | 58 - ...TIInst_int64_t_float_LayoutRight_Rank4.cpp | 59 - ...TIInst_int64_t_float_LayoutRight_Rank5.cpp | 59 - ...TIInst_int64_t_float_LayoutRight_Rank8.cpp | 59 - ...IInst_int64_t_float_LayoutStride_Rank1.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank2.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank3.cpp | 59 - ...IInst_int64_t_float_LayoutStride_Rank4.cpp | 59 - ...IInst_int64_t_float_LayoutStride_Rank5.cpp | 59 - ...IInst_int64_t_float_LayoutStride_Rank8.cpp | 59 - ...IInst_int64_t_int64_t_LayoutLeft_Rank1.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank2.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank3.cpp | 59 - ...IInst_int64_t_int64_t_LayoutLeft_Rank4.cpp | 59 - ...IInst_int64_t_int64_t_LayoutLeft_Rank5.cpp | 59 - ...IInst_int64_t_int64_t_LayoutLeft_Rank8.cpp | 59 - ...Inst_int64_t_int64_t_LayoutRight_Rank1.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank2.cpp | 59 - ...Inst_int64_t_int64_t_LayoutRight_Rank3.cpp | 59 - ...Inst_int64_t_int64_t_LayoutRight_Rank4.cpp | 59 - ...Inst_int64_t_int64_t_LayoutRight_Rank5.cpp | 59 - ...Inst_int64_t_int64_t_LayoutRight_Rank8.cpp | 59 - ...nst_int64_t_int64_t_LayoutStride_Rank1.cpp | 59 - ...nst_int64_t_int64_t_LayoutStride_Rank2.cpp | 59 - ...nst_int64_t_int64_t_LayoutStride_Rank3.cpp | 59 - ...nst_int64_t_int64_t_LayoutStride_Rank4.cpp | 59 - ...nst_int64_t_int64_t_LayoutStride_Rank5.cpp | 59 - ...nst_int64_t_int64_t_LayoutStride_Rank8.cpp | 59 - ...pyETIInst_int64_t_int_LayoutLeft_Rank1.cpp | 58 - ...pyETIInst_int64_t_int_LayoutLeft_Rank2.cpp | 58 - ...pyETIInst_int64_t_int_LayoutLeft_Rank3.cpp | 58 - ...pyETIInst_int64_t_int_LayoutLeft_Rank4.cpp | 58 - ...pyETIInst_int64_t_int_LayoutLeft_Rank5.cpp | 58 - ...pyETIInst_int64_t_int_LayoutLeft_Rank8.cpp | 59 - ...yETIInst_int64_t_int_LayoutRight_Rank1.cpp | 58 - ...yETIInst_int64_t_int_LayoutRight_Rank2.cpp | 58 - ...yETIInst_int64_t_int_LayoutRight_Rank3.cpp | 58 - ...yETIInst_int64_t_int_LayoutRight_Rank4.cpp | 58 - ...yETIInst_int64_t_int_LayoutRight_Rank5.cpp | 58 - ...yETIInst_int64_t_int_LayoutRight_Rank8.cpp | 59 - ...ETIInst_int64_t_int_LayoutStride_Rank1.cpp | 58 - ...ETIInst_int64_t_int_LayoutStride_Rank2.cpp | 58 - ...ETIInst_int64_t_int_LayoutStride_Rank3.cpp | 58 - ...ETIInst_int64_t_int_LayoutStride_Rank4.cpp | 58 - ...ETIInst_int64_t_int_LayoutStride_Rank5.cpp | 59 - ...ETIInst_int64_t_int_LayoutStride_Rank8.cpp | 59 - ...opyETIInst_int_double_LayoutLeft_Rank1.cpp | 58 - ...opyETIInst_int_double_LayoutLeft_Rank2.cpp | 58 - ...opyETIInst_int_double_LayoutLeft_Rank3.cpp | 58 - ...opyETIInst_int_double_LayoutLeft_Rank4.cpp | 58 - ...opyETIInst_int_double_LayoutLeft_Rank5.cpp | 58 - ...opyETIInst_int_double_LayoutLeft_Rank8.cpp | 59 - ...pyETIInst_int_double_LayoutRight_Rank1.cpp | 58 - ...pyETIInst_int_double_LayoutRight_Rank2.cpp | 58 - ...pyETIInst_int_double_LayoutRight_Rank3.cpp | 58 - ...pyETIInst_int_double_LayoutRight_Rank4.cpp | 58 - ...pyETIInst_int_double_LayoutRight_Rank5.cpp | 58 - ...pyETIInst_int_double_LayoutRight_Rank8.cpp | 59 - ...yETIInst_int_double_LayoutStride_Rank1.cpp | 58 - ...yETIInst_int_double_LayoutStride_Rank2.cpp | 58 - ...yETIInst_int_double_LayoutStride_Rank3.cpp | 58 - ...yETIInst_int_double_LayoutStride_Rank4.cpp | 58 - ...yETIInst_int_double_LayoutStride_Rank5.cpp | 58 - ...yETIInst_int_double_LayoutStride_Rank8.cpp | 59 - ...CopyETIInst_int_float_LayoutLeft_Rank1.cpp | 58 - ...CopyETIInst_int_float_LayoutLeft_Rank2.cpp | 58 - ...CopyETIInst_int_float_LayoutLeft_Rank3.cpp | 58 - ...CopyETIInst_int_float_LayoutLeft_Rank4.cpp | 58 - ...CopyETIInst_int_float_LayoutLeft_Rank5.cpp | 58 - ...CopyETIInst_int_float_LayoutLeft_Rank8.cpp | 58 - ...opyETIInst_int_float_LayoutRight_Rank1.cpp | 58 - ...opyETIInst_int_float_LayoutRight_Rank2.cpp | 58 - ...opyETIInst_int_float_LayoutRight_Rank3.cpp | 58 - ...opyETIInst_int_float_LayoutRight_Rank4.cpp | 58 - ...opyETIInst_int_float_LayoutRight_Rank5.cpp | 58 - ...opyETIInst_int_float_LayoutRight_Rank8.cpp | 59 - ...pyETIInst_int_float_LayoutStride_Rank1.cpp | 58 - ...pyETIInst_int_float_LayoutStride_Rank2.cpp | 58 - ...pyETIInst_int_float_LayoutStride_Rank3.cpp | 58 - ...pyETIInst_int_float_LayoutStride_Rank4.cpp | 58 - ...pyETIInst_int_float_LayoutStride_Rank5.cpp | 58 - ...pyETIInst_int_float_LayoutStride_Rank8.cpp | 59 - ...pyETIInst_int_int64_t_LayoutLeft_Rank1.cpp | 58 - ...pyETIInst_int_int64_t_LayoutLeft_Rank2.cpp | 58 - ...pyETIInst_int_int64_t_LayoutLeft_Rank3.cpp | 58 - ...pyETIInst_int_int64_t_LayoutLeft_Rank4.cpp | 58 - ...pyETIInst_int_int64_t_LayoutLeft_Rank5.cpp | 58 - ...pyETIInst_int_int64_t_LayoutLeft_Rank8.cpp | 59 - ...yETIInst_int_int64_t_LayoutRight_Rank1.cpp | 58 - ...yETIInst_int_int64_t_LayoutRight_Rank2.cpp | 58 - ...yETIInst_int_int64_t_LayoutRight_Rank3.cpp | 58 - ...yETIInst_int_int64_t_LayoutRight_Rank4.cpp | 58 - ...yETIInst_int_int64_t_LayoutRight_Rank5.cpp | 58 - ...yETIInst_int_int64_t_LayoutRight_Rank8.cpp | 59 - ...ETIInst_int_int64_t_LayoutStride_Rank1.cpp | 58 - ...ETIInst_int_int64_t_LayoutStride_Rank2.cpp | 58 - ...ETIInst_int_int64_t_LayoutStride_Rank3.cpp | 58 - ...ETIInst_int_int64_t_LayoutStride_Rank4.cpp | 58 - ...ETIInst_int_int64_t_LayoutStride_Rank5.cpp | 59 - ...ETIInst_int_int64_t_LayoutStride_Rank8.cpp | 59 - ...ewCopyETIInst_int_int_LayoutLeft_Rank1.cpp | 58 - ...ewCopyETIInst_int_int_LayoutLeft_Rank2.cpp | 58 - ...ewCopyETIInst_int_int_LayoutLeft_Rank3.cpp | 58 - ...ewCopyETIInst_int_int_LayoutLeft_Rank4.cpp | 58 - ...ewCopyETIInst_int_int_LayoutLeft_Rank5.cpp | 58 - ...ewCopyETIInst_int_int_LayoutLeft_Rank8.cpp | 58 - ...wCopyETIInst_int_int_LayoutRight_Rank1.cpp | 58 - ...wCopyETIInst_int_int_LayoutRight_Rank2.cpp | 58 - ...wCopyETIInst_int_int_LayoutRight_Rank3.cpp | 58 - ...wCopyETIInst_int_int_LayoutRight_Rank4.cpp | 58 - ...wCopyETIInst_int_int_LayoutRight_Rank5.cpp | 58 - ...wCopyETIInst_int_int_LayoutRight_Rank8.cpp | 58 - ...CopyETIInst_int_int_LayoutStride_Rank1.cpp | 58 - ...CopyETIInst_int_int_LayoutStride_Rank2.cpp | 58 - ...CopyETIInst_int_int_LayoutStride_Rank3.cpp | 58 - ...CopyETIInst_int_int_LayoutStride_Rank4.cpp | 58 - ...CopyETIInst_int_int_LayoutStride_Rank5.cpp | 58 - ...CopyETIInst_int_int_LayoutStride_Rank8.cpp | 58 - .../kokkos/core/src/eti/HPX/Makefile.eti_HPX | 288 -- .../kokkos/core/src/eti/OpenMP/CMakeLists.txt | 148 - ...TIInst_int64_t_double_LayoutLeft_Rank1.cpp | 56 - ...TIInst_int64_t_double_LayoutLeft_Rank2.cpp | 57 - ...TIInst_int64_t_double_LayoutLeft_Rank3.cpp | 58 - ...TIInst_int64_t_double_LayoutLeft_Rank4.cpp | 58 - ...TIInst_int64_t_double_LayoutLeft_Rank5.cpp | 58 - ...TIInst_int64_t_double_LayoutLeft_Rank8.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank1.cpp | 57 - ...IInst_int64_t_double_LayoutRight_Rank2.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank3.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank4.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank5.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank8.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank1.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank2.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank3.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank4.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank5.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank8.cpp | 58 - ...ETIInst_int64_t_float_LayoutLeft_Rank1.cpp | 55 - ...ETIInst_int64_t_float_LayoutLeft_Rank2.cpp | 56 - ...ETIInst_int64_t_float_LayoutLeft_Rank3.cpp | 57 - ...ETIInst_int64_t_float_LayoutLeft_Rank4.cpp | 58 - ...ETIInst_int64_t_float_LayoutLeft_Rank5.cpp | 58 - ...ETIInst_int64_t_float_LayoutLeft_Rank8.cpp | 58 - ...TIInst_int64_t_float_LayoutRight_Rank1.cpp | 56 - ...TIInst_int64_t_float_LayoutRight_Rank2.cpp | 57 - ...TIInst_int64_t_float_LayoutRight_Rank3.cpp | 58 - ...TIInst_int64_t_float_LayoutRight_Rank4.cpp | 58 - ...TIInst_int64_t_float_LayoutRight_Rank5.cpp | 58 - ...TIInst_int64_t_float_LayoutRight_Rank8.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank1.cpp | 57 - ...IInst_int64_t_float_LayoutStride_Rank2.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank3.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank4.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank5.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank8.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank1.cpp | 57 - ...IInst_int64_t_int64_t_LayoutLeft_Rank2.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank3.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank4.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank5.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank8.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank1.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank2.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank3.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank4.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank5.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank8.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank1.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank2.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank3.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank4.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank8.cpp | 58 - ...pyETIInst_int64_t_int_LayoutLeft_Rank1.cpp | 55 - ...pyETIInst_int64_t_int_LayoutLeft_Rank2.cpp | 55 - ...pyETIInst_int64_t_int_LayoutLeft_Rank3.cpp | 55 - ...pyETIInst_int64_t_int_LayoutLeft_Rank4.cpp | 56 - ...pyETIInst_int64_t_int_LayoutLeft_Rank5.cpp | 57 - ...pyETIInst_int64_t_int_LayoutLeft_Rank8.cpp | 58 - ...yETIInst_int64_t_int_LayoutRight_Rank1.cpp | 55 - ...yETIInst_int64_t_int_LayoutRight_Rank2.cpp | 55 - ...yETIInst_int64_t_int_LayoutRight_Rank3.cpp | 56 - ...yETIInst_int64_t_int_LayoutRight_Rank4.cpp | 57 - ...yETIInst_int64_t_int_LayoutRight_Rank5.cpp | 58 - ...yETIInst_int64_t_int_LayoutRight_Rank8.cpp | 58 - ...ETIInst_int64_t_int_LayoutStride_Rank1.cpp | 55 - ...ETIInst_int64_t_int_LayoutStride_Rank2.cpp | 56 - ...ETIInst_int64_t_int_LayoutStride_Rank3.cpp | 57 - ...ETIInst_int64_t_int_LayoutStride_Rank4.cpp | 58 - ...ETIInst_int64_t_int_LayoutStride_Rank5.cpp | 58 - ...ETIInst_int64_t_int_LayoutStride_Rank8.cpp | 58 - ...opyETIInst_int_double_LayoutLeft_Rank1.cpp | 55 - ...opyETIInst_int_double_LayoutLeft_Rank2.cpp | 55 - ...opyETIInst_int_double_LayoutLeft_Rank3.cpp | 55 - ...opyETIInst_int_double_LayoutLeft_Rank4.cpp | 55 - ...opyETIInst_int_double_LayoutLeft_Rank5.cpp | 56 - ...opyETIInst_int_double_LayoutLeft_Rank8.cpp | 58 - ...pyETIInst_int_double_LayoutRight_Rank1.cpp | 55 - ...pyETIInst_int_double_LayoutRight_Rank2.cpp | 55 - ...pyETIInst_int_double_LayoutRight_Rank3.cpp | 55 - ...pyETIInst_int_double_LayoutRight_Rank4.cpp | 56 - ...pyETIInst_int_double_LayoutRight_Rank5.cpp | 57 - ...pyETIInst_int_double_LayoutRight_Rank8.cpp | 58 - ...yETIInst_int_double_LayoutStride_Rank1.cpp | 55 - ...yETIInst_int_double_LayoutStride_Rank2.cpp | 55 - ...yETIInst_int_double_LayoutStride_Rank3.cpp | 56 - ...yETIInst_int_double_LayoutStride_Rank4.cpp | 57 - ...yETIInst_int_double_LayoutStride_Rank5.cpp | 58 - ...yETIInst_int_double_LayoutStride_Rank8.cpp | 58 - ...CopyETIInst_int_float_LayoutLeft_Rank1.cpp | 55 - ...CopyETIInst_int_float_LayoutLeft_Rank2.cpp | 55 - ...CopyETIInst_int_float_LayoutLeft_Rank3.cpp | 55 - ...CopyETIInst_int_float_LayoutLeft_Rank4.cpp | 55 - ...CopyETIInst_int_float_LayoutLeft_Rank5.cpp | 55 - ...CopyETIInst_int_float_LayoutLeft_Rank8.cpp | 58 - ...opyETIInst_int_float_LayoutRight_Rank1.cpp | 55 - ...opyETIInst_int_float_LayoutRight_Rank2.cpp | 55 - ...opyETIInst_int_float_LayoutRight_Rank3.cpp | 55 - ...opyETIInst_int_float_LayoutRight_Rank4.cpp | 55 - ...opyETIInst_int_float_LayoutRight_Rank5.cpp | 56 - ...opyETIInst_int_float_LayoutRight_Rank8.cpp | 58 - ...pyETIInst_int_float_LayoutStride_Rank1.cpp | 55 - ...pyETIInst_int_float_LayoutStride_Rank2.cpp | 55 - ...pyETIInst_int_float_LayoutStride_Rank3.cpp | 55 - ...pyETIInst_int_float_LayoutStride_Rank4.cpp | 56 - ...pyETIInst_int_float_LayoutStride_Rank5.cpp | 57 - ...pyETIInst_int_float_LayoutStride_Rank8.cpp | 58 - ...pyETIInst_int_int64_t_LayoutLeft_Rank1.cpp | 55 - ...pyETIInst_int_int64_t_LayoutLeft_Rank2.cpp | 55 - ...pyETIInst_int_int64_t_LayoutLeft_Rank3.cpp | 55 - ...pyETIInst_int_int64_t_LayoutLeft_Rank4.cpp | 56 - ...pyETIInst_int_int64_t_LayoutLeft_Rank5.cpp | 57 - ...pyETIInst_int_int64_t_LayoutLeft_Rank8.cpp | 58 - ...yETIInst_int_int64_t_LayoutRight_Rank1.cpp | 55 - ...yETIInst_int_int64_t_LayoutRight_Rank2.cpp | 55 - ...yETIInst_int_int64_t_LayoutRight_Rank3.cpp | 56 - ...yETIInst_int_int64_t_LayoutRight_Rank4.cpp | 57 - ...yETIInst_int_int64_t_LayoutRight_Rank5.cpp | 58 - ...yETIInst_int_int64_t_LayoutRight_Rank8.cpp | 58 - ...ETIInst_int_int64_t_LayoutStride_Rank1.cpp | 55 - ...ETIInst_int_int64_t_LayoutStride_Rank2.cpp | 56 - ...ETIInst_int_int64_t_LayoutStride_Rank3.cpp | 57 - ...ETIInst_int_int64_t_LayoutStride_Rank4.cpp | 58 - ...ETIInst_int_int64_t_LayoutStride_Rank5.cpp | 58 - ...ETIInst_int_int64_t_LayoutStride_Rank8.cpp | 58 - ...ewCopyETIInst_int_int_LayoutLeft_Rank1.cpp | 55 - ...ewCopyETIInst_int_int_LayoutLeft_Rank2.cpp | 55 - ...ewCopyETIInst_int_int_LayoutLeft_Rank3.cpp | 55 - ...ewCopyETIInst_int_int_LayoutLeft_Rank4.cpp | 55 - ...ewCopyETIInst_int_int_LayoutLeft_Rank5.cpp | 55 - ...ewCopyETIInst_int_int_LayoutLeft_Rank8.cpp | 56 - ...wCopyETIInst_int_int_LayoutRight_Rank1.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank2.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank3.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank4.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank5.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank8.cpp | 57 - ...CopyETIInst_int_int_LayoutStride_Rank1.cpp | 55 - ...CopyETIInst_int_int_LayoutStride_Rank2.cpp | 55 - ...CopyETIInst_int_int_LayoutStride_Rank3.cpp | 55 - ...CopyETIInst_int_int_LayoutStride_Rank4.cpp | 55 - ...CopyETIInst_int_int_LayoutStride_Rank5.cpp | 55 - ...CopyETIInst_int_int_LayoutStride_Rank8.cpp | 58 - .../core/src/eti/OpenMP/Makefile.eti_OpenMP | 288 -- .../kokkos/core/src/eti/ROCm/CMakeLists.txt | 148 - ...TIInst_int64_t_double_LayoutLeft_Rank1.cpp | 58 - ...TIInst_int64_t_double_LayoutLeft_Rank2.cpp | 58 - ...TIInst_int64_t_double_LayoutLeft_Rank3.cpp | 59 - ...TIInst_int64_t_double_LayoutLeft_Rank4.cpp | 59 - ...TIInst_int64_t_double_LayoutLeft_Rank5.cpp | 59 - ...TIInst_int64_t_double_LayoutLeft_Rank8.cpp | 59 - ...IInst_int64_t_double_LayoutRight_Rank1.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank2.cpp | 59 - ...IInst_int64_t_double_LayoutRight_Rank3.cpp | 59 - ...IInst_int64_t_double_LayoutRight_Rank4.cpp | 59 - ...IInst_int64_t_double_LayoutRight_Rank5.cpp | 59 - ...IInst_int64_t_double_LayoutRight_Rank8.cpp | 59 - ...Inst_int64_t_double_LayoutStride_Rank1.cpp | 59 - ...Inst_int64_t_double_LayoutStride_Rank2.cpp | 59 - ...Inst_int64_t_double_LayoutStride_Rank3.cpp | 59 - ...Inst_int64_t_double_LayoutStride_Rank4.cpp | 59 - ...Inst_int64_t_double_LayoutStride_Rank5.cpp | 59 - ...Inst_int64_t_double_LayoutStride_Rank8.cpp | 59 - ...ETIInst_int64_t_float_LayoutLeft_Rank1.cpp | 58 - ...ETIInst_int64_t_float_LayoutLeft_Rank2.cpp | 58 - ...ETIInst_int64_t_float_LayoutLeft_Rank3.cpp | 58 - ...ETIInst_int64_t_float_LayoutLeft_Rank5.cpp | 59 - ...ETIInst_int64_t_float_LayoutLeft_Rank8.cpp | 59 - ...TIInst_int64_t_float_LayoutRight_Rank1.cpp | 58 - ...TIInst_int64_t_float_LayoutRight_Rank2.cpp | 58 - ...TIInst_int64_t_float_LayoutRight_Rank3.cpp | 59 - ...TIInst_int64_t_float_LayoutRight_Rank4.cpp | 59 - ...TIInst_int64_t_float_LayoutRight_Rank5.cpp | 59 - ...TIInst_int64_t_float_LayoutRight_Rank8.cpp | 59 - ...IInst_int64_t_float_LayoutStride_Rank1.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank2.cpp | 59 - ...IInst_int64_t_float_LayoutStride_Rank3.cpp | 59 - ...IInst_int64_t_float_LayoutStride_Rank4.cpp | 59 - ...IInst_int64_t_float_LayoutStride_Rank5.cpp | 59 - ...IInst_int64_t_float_LayoutStride_Rank8.cpp | 59 - ...IInst_int64_t_int64_t_LayoutLeft_Rank1.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank2.cpp | 59 - ...IInst_int64_t_int64_t_LayoutLeft_Rank3.cpp | 59 - ...IInst_int64_t_int64_t_LayoutLeft_Rank4.cpp | 59 - ...IInst_int64_t_int64_t_LayoutLeft_Rank5.cpp | 59 - ...IInst_int64_t_int64_t_LayoutLeft_Rank8.cpp | 59 - ...Inst_int64_t_int64_t_LayoutRight_Rank1.cpp | 59 - ...Inst_int64_t_int64_t_LayoutRight_Rank2.cpp | 59 - ...Inst_int64_t_int64_t_LayoutRight_Rank3.cpp | 59 - ...Inst_int64_t_int64_t_LayoutRight_Rank4.cpp | 59 - ...Inst_int64_t_int64_t_LayoutRight_Rank5.cpp | 59 - ...Inst_int64_t_int64_t_LayoutRight_Rank8.cpp | 59 - ...nst_int64_t_int64_t_LayoutStride_Rank1.cpp | 59 - ...nst_int64_t_int64_t_LayoutStride_Rank2.cpp | 59 - ...nst_int64_t_int64_t_LayoutStride_Rank3.cpp | 59 - ...nst_int64_t_int64_t_LayoutStride_Rank4.cpp | 59 - ...nst_int64_t_int64_t_LayoutStride_Rank5.cpp | 59 - ...nst_int64_t_int64_t_LayoutStride_Rank8.cpp | 59 - ...pyETIInst_int64_t_int_LayoutLeft_Rank1.cpp | 58 - ...pyETIInst_int64_t_int_LayoutLeft_Rank2.cpp | 58 - ...pyETIInst_int64_t_int_LayoutLeft_Rank3.cpp | 58 - ...pyETIInst_int64_t_int_LayoutLeft_Rank4.cpp | 58 - ...pyETIInst_int64_t_int_LayoutLeft_Rank5.cpp | 58 - ...pyETIInst_int64_t_int_LayoutLeft_Rank8.cpp | 59 - ...yETIInst_int64_t_int_LayoutRight_Rank1.cpp | 58 - ...yETIInst_int64_t_int_LayoutRight_Rank2.cpp | 58 - ...yETIInst_int64_t_int_LayoutRight_Rank3.cpp | 58 - ...yETIInst_int64_t_int_LayoutRight_Rank4.cpp | 58 - ...yETIInst_int64_t_int_LayoutRight_Rank5.cpp | 59 - ...yETIInst_int64_t_int_LayoutRight_Rank8.cpp | 59 - ...ETIInst_int64_t_int_LayoutStride_Rank1.cpp | 58 - ...ETIInst_int64_t_int_LayoutStride_Rank2.cpp | 58 - ...ETIInst_int64_t_int_LayoutStride_Rank3.cpp | 58 - ...ETIInst_int64_t_int_LayoutStride_Rank4.cpp | 59 - ...ETIInst_int64_t_int_LayoutStride_Rank5.cpp | 59 - ...ETIInst_int64_t_int_LayoutStride_Rank8.cpp | 59 - ...opyETIInst_int_double_LayoutLeft_Rank1.cpp | 58 - ...opyETIInst_int_double_LayoutLeft_Rank2.cpp | 58 - ...opyETIInst_int_double_LayoutLeft_Rank3.cpp | 58 - ...opyETIInst_int_double_LayoutLeft_Rank4.cpp | 58 - ...opyETIInst_int_double_LayoutLeft_Rank5.cpp | 58 - ...opyETIInst_int_double_LayoutLeft_Rank8.cpp | 59 - ...pyETIInst_int_double_LayoutRight_Rank1.cpp | 58 - ...pyETIInst_int_double_LayoutRight_Rank2.cpp | 58 - ...pyETIInst_int_double_LayoutRight_Rank3.cpp | 58 - ...pyETIInst_int_double_LayoutRight_Rank4.cpp | 58 - ...pyETIInst_int_double_LayoutRight_Rank5.cpp | 58 - ...pyETIInst_int_double_LayoutRight_Rank8.cpp | 59 - ...yETIInst_int_double_LayoutStride_Rank1.cpp | 58 - ...yETIInst_int_double_LayoutStride_Rank2.cpp | 58 - ...yETIInst_int_double_LayoutStride_Rank4.cpp | 58 - ...yETIInst_int_double_LayoutStride_Rank5.cpp | 59 - ...yETIInst_int_double_LayoutStride_Rank8.cpp | 59 - ...CopyETIInst_int_float_LayoutLeft_Rank1.cpp | 58 - ...CopyETIInst_int_float_LayoutLeft_Rank2.cpp | 58 - ...CopyETIInst_int_float_LayoutLeft_Rank3.cpp | 58 - ...CopyETIInst_int_float_LayoutLeft_Rank4.cpp | 58 - ...CopyETIInst_int_float_LayoutLeft_Rank5.cpp | 58 - ...CopyETIInst_int_float_LayoutLeft_Rank8.cpp | 59 - ...opyETIInst_int_float_LayoutRight_Rank1.cpp | 58 - ...opyETIInst_int_float_LayoutRight_Rank2.cpp | 58 - ...opyETIInst_int_float_LayoutRight_Rank3.cpp | 58 - ...opyETIInst_int_float_LayoutRight_Rank4.cpp | 58 - ...opyETIInst_int_float_LayoutRight_Rank5.cpp | 58 - ...opyETIInst_int_float_LayoutRight_Rank8.cpp | 59 - ...pyETIInst_int_float_LayoutStride_Rank1.cpp | 58 - ...pyETIInst_int_float_LayoutStride_Rank2.cpp | 58 - ...pyETIInst_int_float_LayoutStride_Rank3.cpp | 58 - ...pyETIInst_int_float_LayoutStride_Rank4.cpp | 58 - ...pyETIInst_int_float_LayoutStride_Rank5.cpp | 58 - ...pyETIInst_int_float_LayoutStride_Rank8.cpp | 59 - ...pyETIInst_int_int64_t_LayoutLeft_Rank1.cpp | 58 - ...pyETIInst_int_int64_t_LayoutLeft_Rank2.cpp | 58 - ...pyETIInst_int_int64_t_LayoutLeft_Rank3.cpp | 58 - ...pyETIInst_int_int64_t_LayoutLeft_Rank4.cpp | 58 - ...pyETIInst_int_int64_t_LayoutLeft_Rank5.cpp | 58 - ...pyETIInst_int_int64_t_LayoutLeft_Rank8.cpp | 59 - ...yETIInst_int_int64_t_LayoutRight_Rank1.cpp | 58 - ...yETIInst_int_int64_t_LayoutRight_Rank2.cpp | 58 - ...yETIInst_int_int64_t_LayoutRight_Rank3.cpp | 58 - ...yETIInst_int_int64_t_LayoutRight_Rank4.cpp | 58 - ...yETIInst_int_int64_t_LayoutRight_Rank5.cpp | 59 - ...yETIInst_int_int64_t_LayoutRight_Rank8.cpp | 59 - ...ETIInst_int_int64_t_LayoutStride_Rank1.cpp | 58 - ...ETIInst_int_int64_t_LayoutStride_Rank2.cpp | 58 - ...ETIInst_int_int64_t_LayoutStride_Rank3.cpp | 58 - ...ETIInst_int_int64_t_LayoutStride_Rank4.cpp | 59 - ...ETIInst_int_int64_t_LayoutStride_Rank5.cpp | 59 - ...ETIInst_int_int64_t_LayoutStride_Rank8.cpp | 59 - ...ewCopyETIInst_int_int_LayoutLeft_Rank1.cpp | 58 - ...ewCopyETIInst_int_int_LayoutLeft_Rank2.cpp | 58 - ...ewCopyETIInst_int_int_LayoutLeft_Rank4.cpp | 58 - ...ewCopyETIInst_int_int_LayoutLeft_Rank5.cpp | 58 - ...ewCopyETIInst_int_int_LayoutLeft_Rank8.cpp | 58 - ...wCopyETIInst_int_int_LayoutRight_Rank1.cpp | 58 - ...wCopyETIInst_int_int_LayoutRight_Rank2.cpp | 58 - ...wCopyETIInst_int_int_LayoutRight_Rank3.cpp | 58 - ...wCopyETIInst_int_int_LayoutRight_Rank4.cpp | 58 - ...wCopyETIInst_int_int_LayoutRight_Rank5.cpp | 58 - ...wCopyETIInst_int_int_LayoutRight_Rank8.cpp | 58 - ...CopyETIInst_int_int_LayoutStride_Rank1.cpp | 58 - ...CopyETIInst_int_int_LayoutStride_Rank2.cpp | 58 - ...CopyETIInst_int_int_LayoutStride_Rank3.cpp | 58 - ...CopyETIInst_int_int_LayoutStride_Rank4.cpp | 58 - ...CopyETIInst_int_int_LayoutStride_Rank5.cpp | 58 - ...CopyETIInst_int_int_LayoutStride_Rank8.cpp | 59 - .../core/src/eti/ROCm/Makefile.eti_ROCm | 288 -- .../kokkos/core/src/eti/Serial/CMakeLists.txt | 148 - ...TIInst_int64_t_double_LayoutLeft_Rank1.cpp | 56 - ...TIInst_int64_t_double_LayoutLeft_Rank3.cpp | 58 - ...TIInst_int64_t_double_LayoutLeft_Rank4.cpp | 58 - ...TIInst_int64_t_double_LayoutLeft_Rank5.cpp | 58 - ...TIInst_int64_t_double_LayoutLeft_Rank8.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank1.cpp | 57 - ...IInst_int64_t_double_LayoutRight_Rank2.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank3.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank4.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank5.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank8.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank1.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank2.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank3.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank4.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank5.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank8.cpp | 58 - ...ETIInst_int64_t_float_LayoutLeft_Rank1.cpp | 55 - ...ETIInst_int64_t_float_LayoutLeft_Rank2.cpp | 56 - ...ETIInst_int64_t_float_LayoutLeft_Rank3.cpp | 57 - ...ETIInst_int64_t_float_LayoutLeft_Rank4.cpp | 58 - ...ETIInst_int64_t_float_LayoutLeft_Rank5.cpp | 58 - ...ETIInst_int64_t_float_LayoutLeft_Rank8.cpp | 58 - ...TIInst_int64_t_float_LayoutRight_Rank1.cpp | 56 - ...TIInst_int64_t_float_LayoutRight_Rank2.cpp | 57 - ...TIInst_int64_t_float_LayoutRight_Rank3.cpp | 58 - ...TIInst_int64_t_float_LayoutRight_Rank4.cpp | 58 - ...TIInst_int64_t_float_LayoutRight_Rank5.cpp | 58 - ...TIInst_int64_t_float_LayoutRight_Rank8.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank1.cpp | 57 - ...IInst_int64_t_float_LayoutStride_Rank2.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank3.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank4.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank5.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank8.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank1.cpp | 57 - ...IInst_int64_t_int64_t_LayoutLeft_Rank2.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank3.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank4.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank5.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank8.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank1.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank2.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank3.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank4.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank5.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank8.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank1.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank2.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank3.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank4.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank5.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank8.cpp | 58 - ...pyETIInst_int64_t_int_LayoutLeft_Rank1.cpp | 55 - ...pyETIInst_int64_t_int_LayoutLeft_Rank2.cpp | 55 - ...pyETIInst_int64_t_int_LayoutLeft_Rank3.cpp | 55 - ...pyETIInst_int64_t_int_LayoutLeft_Rank4.cpp | 56 - ...pyETIInst_int64_t_int_LayoutLeft_Rank5.cpp | 57 - ...pyETIInst_int64_t_int_LayoutLeft_Rank8.cpp | 58 - ...yETIInst_int64_t_int_LayoutRight_Rank1.cpp | 55 - ...yETIInst_int64_t_int_LayoutRight_Rank2.cpp | 55 - ...yETIInst_int64_t_int_LayoutRight_Rank3.cpp | 56 - ...yETIInst_int64_t_int_LayoutRight_Rank4.cpp | 57 - ...yETIInst_int64_t_int_LayoutRight_Rank5.cpp | 58 - ...yETIInst_int64_t_int_LayoutRight_Rank8.cpp | 58 - ...ETIInst_int64_t_int_LayoutStride_Rank1.cpp | 55 - ...ETIInst_int64_t_int_LayoutStride_Rank2.cpp | 56 - ...ETIInst_int64_t_int_LayoutStride_Rank3.cpp | 57 - ...ETIInst_int64_t_int_LayoutStride_Rank5.cpp | 58 - ...ETIInst_int64_t_int_LayoutStride_Rank8.cpp | 58 - ...opyETIInst_int_double_LayoutLeft_Rank1.cpp | 55 - ...opyETIInst_int_double_LayoutLeft_Rank2.cpp | 55 - ...opyETIInst_int_double_LayoutLeft_Rank3.cpp | 55 - ...opyETIInst_int_double_LayoutLeft_Rank4.cpp | 55 - ...opyETIInst_int_double_LayoutLeft_Rank5.cpp | 56 - ...opyETIInst_int_double_LayoutLeft_Rank8.cpp | 58 - ...pyETIInst_int_double_LayoutRight_Rank1.cpp | 55 - ...pyETIInst_int_double_LayoutRight_Rank2.cpp | 55 - ...pyETIInst_int_double_LayoutRight_Rank3.cpp | 55 - ...pyETIInst_int_double_LayoutRight_Rank4.cpp | 56 - ...pyETIInst_int_double_LayoutRight_Rank5.cpp | 57 - ...pyETIInst_int_double_LayoutRight_Rank8.cpp | 58 - ...yETIInst_int_double_LayoutStride_Rank1.cpp | 55 - ...yETIInst_int_double_LayoutStride_Rank2.cpp | 55 - ...yETIInst_int_double_LayoutStride_Rank3.cpp | 56 - ...yETIInst_int_double_LayoutStride_Rank4.cpp | 57 - ...yETIInst_int_double_LayoutStride_Rank5.cpp | 58 - ...yETIInst_int_double_LayoutStride_Rank8.cpp | 58 - ...CopyETIInst_int_float_LayoutLeft_Rank1.cpp | 55 - ...CopyETIInst_int_float_LayoutLeft_Rank2.cpp | 55 - ...CopyETIInst_int_float_LayoutLeft_Rank3.cpp | 55 - ...CopyETIInst_int_float_LayoutLeft_Rank4.cpp | 55 - ...CopyETIInst_int_float_LayoutLeft_Rank5.cpp | 55 - ...CopyETIInst_int_float_LayoutLeft_Rank8.cpp | 58 - ...opyETIInst_int_float_LayoutRight_Rank1.cpp | 55 - ...opyETIInst_int_float_LayoutRight_Rank2.cpp | 55 - ...opyETIInst_int_float_LayoutRight_Rank3.cpp | 55 - ...opyETIInst_int_float_LayoutRight_Rank4.cpp | 55 - ...opyETIInst_int_float_LayoutRight_Rank5.cpp | 56 - ...opyETIInst_int_float_LayoutRight_Rank8.cpp | 58 - ...pyETIInst_int_float_LayoutStride_Rank1.cpp | 55 - ...pyETIInst_int_float_LayoutStride_Rank2.cpp | 55 - ...pyETIInst_int_float_LayoutStride_Rank3.cpp | 55 - ...pyETIInst_int_float_LayoutStride_Rank4.cpp | 56 - ...pyETIInst_int_float_LayoutStride_Rank5.cpp | 57 - ...pyETIInst_int_float_LayoutStride_Rank8.cpp | 58 - ...pyETIInst_int_int64_t_LayoutLeft_Rank1.cpp | 55 - ...pyETIInst_int_int64_t_LayoutLeft_Rank2.cpp | 55 - ...pyETIInst_int_int64_t_LayoutLeft_Rank3.cpp | 55 - ...pyETIInst_int_int64_t_LayoutLeft_Rank4.cpp | 56 - ...pyETIInst_int_int64_t_LayoutLeft_Rank5.cpp | 57 - ...pyETIInst_int_int64_t_LayoutLeft_Rank8.cpp | 58 - ...yETIInst_int_int64_t_LayoutRight_Rank1.cpp | 55 - ...yETIInst_int_int64_t_LayoutRight_Rank2.cpp | 55 - ...yETIInst_int_int64_t_LayoutRight_Rank3.cpp | 56 - ...yETIInst_int_int64_t_LayoutRight_Rank4.cpp | 57 - ...yETIInst_int_int64_t_LayoutRight_Rank5.cpp | 58 - ...yETIInst_int_int64_t_LayoutRight_Rank8.cpp | 58 - ...ETIInst_int_int64_t_LayoutStride_Rank1.cpp | 55 - ...ETIInst_int_int64_t_LayoutStride_Rank2.cpp | 56 - ...ETIInst_int_int64_t_LayoutStride_Rank3.cpp | 57 - ...ETIInst_int_int64_t_LayoutStride_Rank4.cpp | 58 - ...ETIInst_int_int64_t_LayoutStride_Rank5.cpp | 58 - ...ETIInst_int_int64_t_LayoutStride_Rank8.cpp | 58 - ...ewCopyETIInst_int_int_LayoutLeft_Rank1.cpp | 55 - ...ewCopyETIInst_int_int_LayoutLeft_Rank2.cpp | 55 - ...ewCopyETIInst_int_int_LayoutLeft_Rank3.cpp | 55 - ...ewCopyETIInst_int_int_LayoutLeft_Rank4.cpp | 55 - ...ewCopyETIInst_int_int_LayoutLeft_Rank5.cpp | 55 - ...ewCopyETIInst_int_int_LayoutLeft_Rank8.cpp | 56 - ...wCopyETIInst_int_int_LayoutRight_Rank1.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank2.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank3.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank4.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank5.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank8.cpp | 57 - ...CopyETIInst_int_int_LayoutStride_Rank1.cpp | 55 - ...CopyETIInst_int_int_LayoutStride_Rank2.cpp | 55 - ...CopyETIInst_int_int_LayoutStride_Rank3.cpp | 55 - ...CopyETIInst_int_int_LayoutStride_Rank4.cpp | 55 - ...CopyETIInst_int_int_LayoutStride_Rank5.cpp | 55 - ...CopyETIInst_int_int_LayoutStride_Rank8.cpp | 58 - .../core/src/eti/Serial/Makefile.eti_Serial | 288 -- .../core/src/eti/Threads/CMakeLists.txt | 148 - ...TIInst_int64_t_double_LayoutLeft_Rank1.cpp | 57 - ...TIInst_int64_t_double_LayoutLeft_Rank2.cpp | 58 - ...TIInst_int64_t_double_LayoutLeft_Rank3.cpp | 58 - ...TIInst_int64_t_double_LayoutLeft_Rank4.cpp | 58 - ...TIInst_int64_t_double_LayoutLeft_Rank5.cpp | 58 - ...TIInst_int64_t_double_LayoutLeft_Rank8.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank1.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank2.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank3.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank4.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank5.cpp | 58 - ...IInst_int64_t_double_LayoutRight_Rank8.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank1.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank2.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank3.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank4.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank5.cpp | 58 - ...Inst_int64_t_double_LayoutStride_Rank8.cpp | 58 - ...ETIInst_int64_t_float_LayoutLeft_Rank1.cpp | 56 - ...ETIInst_int64_t_float_LayoutLeft_Rank2.cpp | 57 - ...ETIInst_int64_t_float_LayoutLeft_Rank3.cpp | 58 - ...ETIInst_int64_t_float_LayoutLeft_Rank4.cpp | 58 - ...ETIInst_int64_t_float_LayoutLeft_Rank5.cpp | 58 - ...ETIInst_int64_t_float_LayoutLeft_Rank8.cpp | 58 - ...TIInst_int64_t_float_LayoutRight_Rank1.cpp | 57 - ...TIInst_int64_t_float_LayoutRight_Rank2.cpp | 58 - ...TIInst_int64_t_float_LayoutRight_Rank3.cpp | 58 - ...TIInst_int64_t_float_LayoutRight_Rank4.cpp | 58 - ...TIInst_int64_t_float_LayoutRight_Rank5.cpp | 58 - ...TIInst_int64_t_float_LayoutRight_Rank8.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank1.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank2.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank3.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank4.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank5.cpp | 58 - ...IInst_int64_t_float_LayoutStride_Rank8.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank1.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank2.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank3.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank4.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank5.cpp | 58 - ...IInst_int64_t_int64_t_LayoutLeft_Rank8.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank1.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank2.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank3.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank4.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank5.cpp | 58 - ...Inst_int64_t_int64_t_LayoutRight_Rank8.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank1.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank2.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank3.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank4.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank5.cpp | 58 - ...nst_int64_t_int64_t_LayoutStride_Rank8.cpp | 58 - ...pyETIInst_int64_t_int_LayoutLeft_Rank1.cpp | 55 - ...pyETIInst_int64_t_int_LayoutLeft_Rank2.cpp | 55 - ...pyETIInst_int64_t_int_LayoutLeft_Rank3.cpp | 56 - ...pyETIInst_int64_t_int_LayoutLeft_Rank4.cpp | 57 - ...pyETIInst_int64_t_int_LayoutLeft_Rank5.cpp | 58 - ...pyETIInst_int64_t_int_LayoutLeft_Rank8.cpp | 58 - ...yETIInst_int64_t_int_LayoutRight_Rank1.cpp | 55 - ...yETIInst_int64_t_int_LayoutRight_Rank2.cpp | 56 - ...yETIInst_int64_t_int_LayoutRight_Rank3.cpp | 57 - ...yETIInst_int64_t_int_LayoutRight_Rank4.cpp | 58 - ...yETIInst_int64_t_int_LayoutRight_Rank5.cpp | 58 - ...yETIInst_int64_t_int_LayoutRight_Rank8.cpp | 58 - ...ETIInst_int64_t_int_LayoutStride_Rank1.cpp | 56 - ...ETIInst_int64_t_int_LayoutStride_Rank2.cpp | 57 - ...ETIInst_int64_t_int_LayoutStride_Rank3.cpp | 58 - ...ETIInst_int64_t_int_LayoutStride_Rank4.cpp | 58 - ...ETIInst_int64_t_int_LayoutStride_Rank5.cpp | 58 - ...ETIInst_int64_t_int_LayoutStride_Rank8.cpp | 58 - ...opyETIInst_int_double_LayoutLeft_Rank1.cpp | 55 - ...opyETIInst_int_double_LayoutLeft_Rank2.cpp | 55 - ...opyETIInst_int_double_LayoutLeft_Rank3.cpp | 55 - ...opyETIInst_int_double_LayoutLeft_Rank4.cpp | 56 - ...opyETIInst_int_double_LayoutLeft_Rank5.cpp | 57 - ...opyETIInst_int_double_LayoutLeft_Rank8.cpp | 58 - ...pyETIInst_int_double_LayoutRight_Rank1.cpp | 55 - ...pyETIInst_int_double_LayoutRight_Rank2.cpp | 55 - ...pyETIInst_int_double_LayoutRight_Rank3.cpp | 56 - ...pyETIInst_int_double_LayoutRight_Rank4.cpp | 57 - ...pyETIInst_int_double_LayoutRight_Rank5.cpp | 58 - ...pyETIInst_int_double_LayoutRight_Rank8.cpp | 58 - ...yETIInst_int_double_LayoutStride_Rank1.cpp | 55 - ...yETIInst_int_double_LayoutStride_Rank2.cpp | 56 - ...yETIInst_int_double_LayoutStride_Rank3.cpp | 57 - ...yETIInst_int_double_LayoutStride_Rank4.cpp | 58 - ...yETIInst_int_double_LayoutStride_Rank5.cpp | 58 - ...yETIInst_int_double_LayoutStride_Rank8.cpp | 58 - ...CopyETIInst_int_float_LayoutLeft_Rank1.cpp | 55 - ...CopyETIInst_int_float_LayoutLeft_Rank2.cpp | 55 - ...CopyETIInst_int_float_LayoutLeft_Rank3.cpp | 55 - ...CopyETIInst_int_float_LayoutLeft_Rank4.cpp | 55 - ...CopyETIInst_int_float_LayoutLeft_Rank5.cpp | 56 - ...CopyETIInst_int_float_LayoutLeft_Rank8.cpp | 58 - ...opyETIInst_int_float_LayoutRight_Rank1.cpp | 55 - ...opyETIInst_int_float_LayoutRight_Rank2.cpp | 55 - ...opyETIInst_int_float_LayoutRight_Rank3.cpp | 55 - ...opyETIInst_int_float_LayoutRight_Rank4.cpp | 56 - ...opyETIInst_int_float_LayoutRight_Rank5.cpp | 57 - ...opyETIInst_int_float_LayoutRight_Rank8.cpp | 58 - ...pyETIInst_int_float_LayoutStride_Rank1.cpp | 55 - ...pyETIInst_int_float_LayoutStride_Rank2.cpp | 55 - ...pyETIInst_int_float_LayoutStride_Rank3.cpp | 56 - ...pyETIInst_int_float_LayoutStride_Rank4.cpp | 57 - ...pyETIInst_int_float_LayoutStride_Rank5.cpp | 58 - ...pyETIInst_int_float_LayoutStride_Rank8.cpp | 58 - ...pyETIInst_int_int64_t_LayoutLeft_Rank1.cpp | 55 - ...pyETIInst_int_int64_t_LayoutLeft_Rank2.cpp | 55 - ...pyETIInst_int_int64_t_LayoutLeft_Rank3.cpp | 56 - ...pyETIInst_int_int64_t_LayoutLeft_Rank4.cpp | 57 - ...pyETIInst_int_int64_t_LayoutLeft_Rank5.cpp | 58 - ...pyETIInst_int_int64_t_LayoutLeft_Rank8.cpp | 58 - ...yETIInst_int_int64_t_LayoutRight_Rank1.cpp | 55 - ...yETIInst_int_int64_t_LayoutRight_Rank2.cpp | 56 - ...yETIInst_int_int64_t_LayoutRight_Rank3.cpp | 57 - ...yETIInst_int_int64_t_LayoutRight_Rank4.cpp | 58 - ...yETIInst_int_int64_t_LayoutRight_Rank5.cpp | 58 - ...yETIInst_int_int64_t_LayoutRight_Rank8.cpp | 58 - ...ETIInst_int_int64_t_LayoutStride_Rank1.cpp | 56 - ...ETIInst_int_int64_t_LayoutStride_Rank2.cpp | 57 - ...ETIInst_int_int64_t_LayoutStride_Rank3.cpp | 58 - ...ETIInst_int_int64_t_LayoutStride_Rank4.cpp | 58 - ...ETIInst_int_int64_t_LayoutStride_Rank5.cpp | 58 - ...ETIInst_int_int64_t_LayoutStride_Rank8.cpp | 58 - ...ewCopyETIInst_int_int_LayoutLeft_Rank1.cpp | 55 - ...ewCopyETIInst_int_int_LayoutLeft_Rank2.cpp | 55 - ...ewCopyETIInst_int_int_LayoutLeft_Rank3.cpp | 55 - ...ewCopyETIInst_int_int_LayoutLeft_Rank4.cpp | 55 - ...ewCopyETIInst_int_int_LayoutLeft_Rank5.cpp | 55 - ...ewCopyETIInst_int_int_LayoutLeft_Rank8.cpp | 57 - ...wCopyETIInst_int_int_LayoutRight_Rank1.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank2.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank3.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank4.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank5.cpp | 55 - ...wCopyETIInst_int_int_LayoutRight_Rank8.cpp | 58 - ...CopyETIInst_int_int_LayoutStride_Rank1.cpp | 55 - ...CopyETIInst_int_int_LayoutStride_Rank2.cpp | 55 - ...CopyETIInst_int_int_LayoutStride_Rank3.cpp | 55 - ...CopyETIInst_int_int_LayoutStride_Rank4.cpp | 55 - ...CopyETIInst_int_int_LayoutStride_Rank5.cpp | 56 - ...CopyETIInst_int_int_LayoutStride_Rank8.cpp | 58 - .../core/src/eti/Threads/Makefile.eti_Threads | 288 -- .../Kokkos_ViewFillCopyETIAvail_Macros.hpp | 1440 -------- .../Kokkos_ViewFillCopyETIDecl_Macros.hpp | 1152 ------ .../Kokkos_Fwd_CUDA.hpp} | 0 .../Kokkos_Fwd_HBWSpace.hpp} | 16 +- .../Kokkos_Fwd_HIP.hpp} | 17 +- .../kokkos/core/src/fwd/Kokkos_Fwd_HPX.hpp | 55 + .../kokkos/core/src/fwd/Kokkos_Fwd_OPENMP.hpp | 53 + .../Kokkos_Fwd_OPENMPTARGET.hpp} | 17 +- .../kokkos/core/src/fwd/Kokkos_Fwd_SERIAL.hpp | 53 + .../Kokkos_Fwd_SYCL.hpp} | 17 +- .../core/src/fwd/Kokkos_Fwd_THREADS.hpp | 53 + packages/kokkos/core/src/impl/CMakeLists.txt | 2 +- .../src/impl/KokkosExp_Host_IterateTile.hpp | 113 +- .../KokkosExp_IterateTileGPU.hpp} | 965 +++-- .../core/src/impl/Kokkos_AnalyzePolicy.hpp | 213 +- .../Kokkos_Atomic_Compare_Exchange_Strong.hpp | 24 +- .../Kokkos_Atomic_Compare_Exchange_Weak.hpp | 10 +- .../core/src/impl/Kokkos_Atomic_Exchange.hpp | 19 +- .../core/src/impl/Kokkos_Atomic_Fetch_Add.hpp | 15 +- .../core/src/impl/Kokkos_Atomic_Fetch_And.hpp | 26 + .../core/src/impl/Kokkos_Atomic_Fetch_Or.hpp | 27 + .../core/src/impl/Kokkos_Atomic_Fetch_Sub.hpp | 15 +- .../core/src/impl/Kokkos_Atomic_Generic.hpp | 77 +- .../impl/Kokkos_Atomic_Generic_Secondary.hpp | 10 + .../core/src/impl/Kokkos_Atomic_View.hpp | 10 +- .../core/src/impl/Kokkos_Atomic_Windows.hpp | 19 +- .../kokkos/core/src/impl/Kokkos_BitOps.hpp | 28 +- .../core/src/impl/Kokkos_CPUDiscovery.cpp | 28 +- .../kokkos/core/src/impl/Kokkos_ClockTic.hpp | 13 +- .../core/src/impl/Kokkos_Combined_Reducer.hpp | 704 ++++ .../core/src/impl/Kokkos_ConcurrentBitset.hpp | 11 +- packages/kokkos/core/src/impl/Kokkos_Core.cpp | 554 +-- .../impl/Kokkos_Default_GraphNodeKernel.hpp | 125 + .../impl/Kokkos_Default_GraphNode_Impl.hpp | 170 + .../src/impl/Kokkos_Default_Graph_Impl.hpp | 197 ++ .../Kokkos_Default_Graph_fwd.hpp} | 21 +- packages/kokkos/core/src/impl/Kokkos_EBO.hpp | 72 + .../kokkos/core/src/impl/Kokkos_Error.cpp | 19 + .../kokkos/core/src/impl/Kokkos_Error.hpp | 38 +- .../core/src/impl/Kokkos_ExecPolicy.cpp | 11 + .../Kokkos_ExecSpaceInitializer.hpp} | 29 +- .../core/src/impl/Kokkos_FunctorAdapter.hpp | 221 +- .../core/src/impl/Kokkos_FunctorAnalysis.hpp | 42 +- .../kokkos/core/src/impl/Kokkos_GraphImpl.hpp | 156 + .../src/impl/Kokkos_GraphImpl_Utilities.hpp | 119 + .../core/src/impl/Kokkos_GraphImpl_fwd.hpp | 87 + .../Kokkos_GraphNodeCustomization.hpp} | 104 +- .../core/src/impl/Kokkos_GraphNodeImpl.hpp | 298 ++ .../kokkos/core/src/impl/Kokkos_HBWSpace.cpp | 88 +- .../kokkos/core/src/impl/Kokkos_HostSpace.cpp | 82 +- .../src/impl/Kokkos_HostSpace_deepcopy.cpp | 2 +- .../core/src/impl/Kokkos_HostThreadTeam.hpp | 13 - .../core/src/impl/Kokkos_MemoryPool.cpp | 27 +- .../Kokkos_MemorySpace.cpp} | 67 +- .../core/src/impl/Kokkos_MemorySpace.hpp | 44 +- .../core/src/impl/Kokkos_Memory_Fence.hpp | 6 +- .../kokkos/core/src/impl/Kokkos_OldMacros.hpp | 526 --- .../kokkos/core/src/impl/Kokkos_Profiling.cpp | 969 +++++ .../kokkos/core/src/impl/Kokkos_Profiling.hpp | 595 ++++ .../src/impl/Kokkos_Profiling_C_Interface.h | 259 ++ .../src/impl/Kokkos_Profiling_DeviceInfo.hpp | 8 +- .../src/impl/Kokkos_Profiling_Interface.cpp | 387 -- .../src/impl/Kokkos_Profiling_Interface.hpp | 204 +- .../kokkos/core/src/impl/Kokkos_Serial.cpp | 80 +- .../impl/Kokkos_Serial_WorkGraphPolicy.hpp | 2 +- .../core/src/impl/Kokkos_SharedAlloc.cpp | 50 +- .../core/src/impl/Kokkos_SharedAlloc.hpp | 125 +- .../src/impl/Kokkos_SimpleTaskScheduler.hpp | 88 +- packages/kokkos/core/src/impl/Kokkos_Tags.hpp | 6 +- .../kokkos/core/src/impl/Kokkos_TaskBase.hpp | 2 +- .../core/src/impl/Kokkos_TaskQueueCommon.hpp | 4 +- .../src/impl/Kokkos_TaskQueueMultiple.hpp | 2 +- .../core/src/impl/Kokkos_TaskQueue_impl.hpp | 4 +- .../Kokkos_Tools.hpp} | 12 +- .../kokkos/core/src/impl/Kokkos_Traits.hpp | 122 +- .../kokkos/core/src/impl/Kokkos_Utilities.hpp | 160 +- .../core/src/impl/Kokkos_VLAEmulation.hpp | 3 +- .../kokkos/core/src/impl/Kokkos_ViewArray.hpp | 213 +- .../kokkos/core/src/impl/Kokkos_ViewCtor.hpp | 127 +- .../src/impl/Kokkos_ViewFillCopyETIAvail.hpp | 126 - .../src/impl/Kokkos_ViewFillCopyETIDecl.hpp | 140 - .../core/src/impl/Kokkos_ViewLayoutTiled.hpp | 467 +-- .../core/src/impl/Kokkos_ViewMapping.hpp | 627 ++-- .../kokkos/core/src/impl/Kokkos_ViewTile.hpp | 222 -- .../core/src/impl/Kokkos_ViewTracker.hpp | 130 + .../core/src/impl/Kokkos_ViewUniformType.hpp | 84 +- .../core/src/impl/Kokkos_Volatile_Load.hpp | 26 +- .../core/src/setup/Kokkos_Setup_Cuda.hpp | 138 + .../Kokkos_Setup_HIP.hpp} | 41 +- packages/kokkos/core/unit_test/CMakeLists.txt | 513 ++- packages/kokkos/core/unit_test/Makefile | 126 +- .../kokkos/core/unit_test/TestAggregate.hpp | 18 +- .../core/unit_test/TestAtomicOperations.hpp | 60 +- .../kokkos/core/unit_test/TestAtomicViews.hpp | 238 +- .../{TestAtomic.hpp => TestAtomics.hpp} | 30 +- .../TestBlockSizeDeduction.hpp} | 45 +- packages/kokkos/core/unit_test/TestCXX11.hpp | 52 +- .../core/unit_test/TestCXX11Deduction.hpp | 2 +- .../core/unit_test/TestCompilerMacros.hpp | 8 +- .../kokkos/core/unit_test/TestComplex.hpp | 88 +- .../kokkos/core/unit_test/TestConcepts.hpp | 6 + .../core/unit_test/TestConcurrentBitset.hpp | 10 +- packages/kokkos/core/unit_test/TestCrs.hpp | 2 +- ...bView_c04.cpp => TestCudaUVM_Category.hpp} | 14 +- ..._SubView_c01.cpp => TestCuda_Category.hpp} | 15 +- ...DeepCopy.hpp => TestDeepCopyAlignment.hpp} | 15 +- .../unit_test/TestDefaultDeviceTypeInit.hpp | 154 +- .../core/unit_test/TestFunctorAnalysis.hpp | 26 +- packages/kokkos/core/unit_test/TestGraph.hpp | 253 ++ ...ory.hpp => TestHIPHostPinned_Category.hpp} | 9 +- .../core/unit_test/TestHIP_Category.hpp | 54 + ...nned_Category.hpp => TestHPX_Category.hpp} | 11 +- ...TeamScratch.cpp => TestHalfConversion.hpp} | 67 +- .../core/unit_test/TestHalfOperators.hpp | 361 ++ packages/kokkos/core/unit_test/TestInit.hpp | 3 + .../core/unit_test/TestIrregularLayout.hpp | 264 ++ .../core/unit_test/TestLocalDeepCopy.hpp | 44 +- .../kokkos/core/unit_test/TestMDRange.hpp | 954 ++--- .../kokkos/core/unit_test/TestMDRange_a.hpp | 3 - .../kokkos/core/unit_test/TestMDRange_b.hpp | 3 - .../kokkos/core/unit_test/TestMDRange_c.hpp | 3 - .../kokkos/core/unit_test/TestMDRange_d.hpp | 3 - .../kokkos/core/unit_test/TestMDRange_e.hpp | 3 - ..._MDRangeReduce_c.cpp => TestMDRange_f.hpp} | 7 +- .../kokkos/core/unit_test/TestMemoryPool.hpp | 54 +- .../unit_test/TestNonTrivialScalarTypes.hpp | 338 ++ .../unit_test/TestOpenMPTarget_Category.hpp | 55 + .../core/unit_test/TestOpenMP_Category.hpp | 56 + .../TestCuda_Other.cpp => TestOther.hpp} | 6 +- .../core/unit_test/TestPolicyConstruction.hpp | 867 +++-- packages/kokkos/core/unit_test/TestRange.hpp | 60 +- ...da_RangePolicy.cpp => TestRangePolicy.hpp} | 5 +- ...Require.hpp => TestRangePolicyRequire.hpp} | 46 +- packages/kokkos/core/unit_test/TestReduce.hpp | 156 +- .../unit_test/TestReduceCombinatorical.hpp | 217 +- .../kokkos/core/unit_test/TestReducers.hpp | 100 +- .../kokkos/core/unit_test/TestReducers_d.hpp | 9 + ...enMP_Reductions.cpp => TestReductions.hpp} | 7 +- ...View.hpp => TestReductions_DeviceView.hpp} | 4 +- packages/kokkos/core/unit_test/TestResize.hpp | 38 +- .../core/unit_test/TestSYCL_Category.hpp | 53 + packages/kokkos/core/unit_test/TestScan.hpp | 42 +- .../core/unit_test/TestSerial_Category.hpp | 56 + .../kokkos/core/unit_test/TestSharedAlloc.hpp | 38 +- ...estHIP_SubView_a.cpp => TestSubView_a.hpp} | 6 +- ...estHIP_SubView_b.cpp => TestSubView_b.hpp} | 4 +- ...IP_SubView_c01.cpp => TestSubView_c01.hpp} | 4 +- ...IP_SubView_c02.cpp => TestSubView_c02.hpp} | 4 +- ...da_SubView_c03.cpp => TestSubView_c03.hpp} | 4 +- ...IP_SubView_c04.cpp => TestSubView_c04.hpp} | 4 +- ...da_SubView_c05.cpp => TestSubView_c05.hpp} | 4 +- ...IP_SubView_c06.cpp => TestSubView_c06.hpp} | 4 +- ...IP_SubView_c07.cpp => TestSubView_c07.hpp} | 4 +- ...da_SubView_c08.cpp => TestSubView_c08.hpp} | 4 +- ...IP_SubView_c09.cpp => TestSubView_c09.hpp} | 4 +- ...da_SubView_c10.cpp => TestSubView_c10.hpp} | 4 +- ...PX_SubView_c11.cpp => TestSubView_c11.hpp} | 4 +- ...IP_SubView_c12.cpp => TestSubView_c12.hpp} | 4 +- ...da_SubView_c13.cpp => TestSubView_c13.hpp} | 4 +- .../core/unit_test/TestTaskScheduler.hpp | 32 +- packages/kokkos/core/unit_test/TestTeam.hpp | 229 +- .../kokkos/core/unit_test/TestTeamBasic.hpp | 225 ++ ...tionScan.cpp => TestTeamReductionScan.hpp} | 68 +- .../kokkos/core/unit_test/TestTeamScan.hpp | 182 + ...ds_TeamScratch.cpp => TestTeamScratch.hpp} | 31 +- .../core/unit_test/TestTeamTeamSize.hpp | 23 +- .../kokkos/core/unit_test/TestTeamVector.hpp | 319 +- .../core/unit_test/TestTeamVectorRange.hpp | 44 +- .../unit_test/TestTemplateMetaFunctions.hpp | 30 +- .../core/unit_test/TestThreads_Category.hpp | 55 + packages/kokkos/core/unit_test/TestTile.hpp | 181 - .../kokkos/core/unit_test/TestUniqueToken.hpp | 161 +- .../kokkos/core/unit_test/TestUtilities.hpp | 36 + .../kokkos/core/unit_test/TestViewAPI.hpp | 302 +- .../kokkos/core/unit_test/TestViewAPI_c.hpp | 3 + .../kokkos/core/unit_test/TestViewAPI_e.hpp | 27 +- .../{TestViewCopy.hpp => TestViewCopy_a.hpp} | 200 +- .../kokkos/core/unit_test/TestViewCopy_b.hpp | 268 ++ .../unit_test/TestViewCtorPropEmbeddedDim.hpp | 22 +- .../TestViewLayoutStrideAssignment.hpp | 34 +- .../core/unit_test/TestViewLayoutTiled.hpp | 108 +- .../core/unit_test/TestViewMapping_a.hpp | 171 +- .../core/unit_test/TestViewMapping_b.hpp | 76 +- .../unit_test/TestViewMapping_subview.hpp | 36 +- .../kokkos/core/unit_test/TestViewResize.hpp | 2 +- .../kokkos/core/unit_test/TestViewSubview.hpp | 1025 +++--- .../kokkos/core/unit_test/TestWorkGraph.hpp | 5 + .../core/unit_test/Test_InterOp_Streams.hpp | 144 + .../kokkos/core/unit_test/UnitTestConfig.make | 52 - .../UnitTest_CMakePassCmdLineArgs.cpp | 11 + .../core/unit_test/config/bin/hcc-config | 2 - packages/kokkos/core/unit_test/config/clang | 5 - .../unit_test/config/cmaketest/CMakeLists.txt | 79 - packages/kokkos/core/unit_test/config/cxx | 5 - packages/kokkos/core/unit_test/config/mpic++ | 5 - packages/kokkos/core/unit_test/config/nvcc | 5 - .../results/AMDAVX_Cuda_KokkosCore_config.h | 18 - .../results/AMDAVX_OpenMP_KokkosCore_config.h | 17 - .../AMDAVX_Pthread_KokkosCore_config.h | 17 - .../results/AMDAVX_ROCm_KokkosCore_config.h | 18 - .../results/AMDAVX_Serial_KokkosCore_config.h | 17 - .../ARMv8-ThunderX_Cuda_KokkosCore_config.h | 19 - .../ARMv8-ThunderX_OpenMP_KokkosCore_config.h | 18 - ...ARMv8-ThunderX_Pthread_KokkosCore_config.h | 18 - .../ARMv8-ThunderX_ROCm_KokkosCore_config.h | 19 - .../ARMv8-ThunderX_Serial_KokkosCore_config.h | 18 - .../results/ARMv80_Cuda_KokkosCore_config.h | 18 - .../results/ARMv80_OpenMP_KokkosCore_config.h | 17 - .../ARMv80_Pthread_KokkosCore_config.h | 17 - .../results/ARMv80_ROCm_KokkosCore_config.h | 18 - .../results/ARMv80_Serial_KokkosCore_config.h | 17 - .../results/ARMv81_Cuda_KokkosCore_config.h | 18 - .../results/ARMv81_OpenMP_KokkosCore_config.h | 17 - .../ARMv81_Pthread_KokkosCore_config.h | 17 - .../results/ARMv81_ROCm_KokkosCore_config.h | 18 - .../results/ARMv81_Serial_KokkosCore_config.h | 17 - .../results/BDW_Cuda_KokkosCore_config.h | 24 - .../results/BDW_OpenMP_KokkosCore_config.h | 23 - .../results/BDW_Pthread_KokkosCore_config.h | 23 - .../results/BDW_ROCm_KokkosCore_config.h | 24 - .../results/BDW_Serial_KokkosCore_config.h | 23 - .../results/BGQ_Cuda_KokkosCore_config.h | 17 - .../results/BGQ_OpenMP_KokkosCore_config.h | 16 - .../results/BGQ_Pthread_KokkosCore_config.h | 16 - .../results/BGQ_ROCm_KokkosCore_config.h | 17 - .../results/BGQ_Serial_KokkosCore_config.h | 16 - .../results/HSW_Cuda_KokkosCore_config.h | 21 - .../results/HSW_OpenMP_KokkosCore_config.h | 20 - .../results/HSW_Pthread_KokkosCore_config.h | 20 - .../results/HSW_ROCm_KokkosCore_config.h | 21 - .../results/HSW_Serial_KokkosCore_config.h | 20 - .../results/KNC_Cuda_KokkosCore_config.h | 21 - .../results/KNC_OpenMP_KokkosCore_config.h | 20 - .../results/KNC_Pthread_KokkosCore_config.h | 20 - .../results/KNC_ROCm_KokkosCore_config.h | 21 - .../results/KNC_Serial_KokkosCore_config.h | 20 - .../results/KNL_Cuda_KokkosCore_config.h | 21 - .../results/KNL_OpenMP_KokkosCore_config.h | 20 - .../results/KNL_Pthread_KokkosCore_config.h | 20 - .../results/KNL_ROCm_KokkosCore_config.h | 21 - .../results/KNL_Serial_KokkosCore_config.h | 20 - .../results/Kepler30_Cuda_KokkosCore_config.h | 19 - .../Kepler30_OpenMP_KokkosCore_config.h | 16 - .../Kepler30_Pthread_KokkosCore_config.h | 16 - .../results/Kepler30_ROCm_KokkosCore_config.h | 17 - .../Kepler30_Serial_KokkosCore_config.h | 16 - .../results/Kepler32_Cuda_KokkosCore_config.h | 19 - .../Kepler32_OpenMP_KokkosCore_config.h | 16 - .../Kepler32_Pthread_KokkosCore_config.h | 16 - .../results/Kepler32_ROCm_KokkosCore_config.h | 17 - .../Kepler32_Serial_KokkosCore_config.h | 16 - .../results/Kepler35_Cuda_KokkosCore_config.h | 19 - .../Kepler35_OpenMP_KokkosCore_config.h | 16 - .../Kepler35_Pthread_KokkosCore_config.h | 16 - .../results/Kepler35_ROCm_KokkosCore_config.h | 17 - .../Kepler35_Serial_KokkosCore_config.h | 16 - .../results/Kepler37_Cuda_KokkosCore_config.h | 19 - .../Kepler37_OpenMP_KokkosCore_config.h | 16 - .../Kepler37_Pthread_KokkosCore_config.h | 16 - .../results/Kepler37_ROCm_KokkosCore_config.h | 17 - .../Kepler37_Serial_KokkosCore_config.h | 16 - .../results/Kepler_Cuda_KokkosCore_config.h | 19 - .../results/Kepler_OpenMP_KokkosCore_config.h | 16 - .../Kepler_Pthread_KokkosCore_config.h | 16 - .../results/Kepler_ROCm_KokkosCore_config.h | 17 - .../results/Kepler_Serial_KokkosCore_config.h | 16 - .../Maxwell50_Cuda_KokkosCore_config.h | 19 - .../Maxwell50_OpenMP_KokkosCore_config.h | 16 - .../Maxwell50_Pthread_KokkosCore_config.h | 16 - .../Maxwell50_ROCm_KokkosCore_config.h | 17 - .../Maxwell50_Serial_KokkosCore_config.h | 16 - .../Maxwell52_Cuda_KokkosCore_config.h | 19 - .../Maxwell52_OpenMP_KokkosCore_config.h | 16 - .../Maxwell52_Pthread_KokkosCore_config.h | 16 - .../Maxwell52_ROCm_KokkosCore_config.h | 17 - .../Maxwell52_Serial_KokkosCore_config.h | 16 - .../Maxwell53_Cuda_KokkosCore_config.h | 19 - .../Maxwell53_OpenMP_KokkosCore_config.h | 16 - .../Maxwell53_Pthread_KokkosCore_config.h | 16 - .../Maxwell53_ROCm_KokkosCore_config.h | 17 - .../Maxwell53_Serial_KokkosCore_config.h | 16 - .../results/Maxwell_Cuda_KokkosCore_config.h | 19 - .../Maxwell_OpenMP_KokkosCore_config.h | 16 - .../Maxwell_Pthread_KokkosCore_config.h | 16 - .../results/Maxwell_ROCm_KokkosCore_config.h | 17 - .../Maxwell_Serial_KokkosCore_config.h | 16 - .../results/None_Cuda_KokkosCore_config.h | 17 - .../results/None_OpenMP_KokkosCore_config.h | 16 - .../results/None_Pthread_KokkosCore_config.h | 16 - .../results/None_ROCm_KokkosCore_config.h | 17 - .../results/None_Serial_KokkosCore_config.h | 16 - .../results/Pascal60_Cuda_KokkosCore_config.h | 19 - .../Pascal60_OpenMP_KokkosCore_config.h | 16 - .../Pascal60_Pthread_KokkosCore_config.h | 16 - .../results/Pascal60_ROCm_KokkosCore_config.h | 17 - .../Pascal60_Serial_KokkosCore_config.h | 16 - .../results/Pascal61_Cuda_KokkosCore_config.h | 19 - .../Pascal61_OpenMP_KokkosCore_config.h | 16 - .../Pascal61_Pthread_KokkosCore_config.h | 16 - .../results/Pascal61_ROCm_KokkosCore_config.h | 17 - .../Pascal61_Serial_KokkosCore_config.h | 16 - .../results/Power7_Cuda_KokkosCore_config.h | 21 - .../results/Power7_OpenMP_KokkosCore_config.h | 20 - .../Power7_Pthread_KokkosCore_config.h | 20 - .../results/Power7_ROCm_KokkosCore_config.h | 21 - .../results/Power7_Serial_KokkosCore_config.h | 20 - .../results/Power8_Cuda_KokkosCore_config.h | 21 - .../results/Power8_OpenMP_KokkosCore_config.h | 20 - .../Power8_Pthread_KokkosCore_config.h | 20 - .../results/Power8_ROCm_KokkosCore_config.h | 21 - .../results/Power8_Serial_KokkosCore_config.h | 20 - .../results/Power9_Cuda_KokkosCore_config.h | 21 - .../results/Power9_OpenMP_KokkosCore_config.h | 20 - .../Power9_Pthread_KokkosCore_config.h | 20 - .../results/Power9_ROCm_KokkosCore_config.h | 21 - .../results/Power9_Serial_KokkosCore_config.h | 20 - .../results/SKX_Cuda_KokkosCore_config.h | 24 - .../results/SKX_OpenMP_KokkosCore_config.h | 23 - .../results/SKX_Pthread_KokkosCore_config.h | 23 - .../results/SKX_ROCm_KokkosCore_config.h | 24 - .../results/SKX_Serial_KokkosCore_config.h | 23 - .../results/SNB_Cuda_KokkosCore_config.h | 21 - .../results/SNB_OpenMP_KokkosCore_config.h | 20 - .../results/SNB_Pthread_KokkosCore_config.h | 20 - .../results/SNB_ROCm_KokkosCore_config.h | 21 - .../results/SNB_Serial_KokkosCore_config.h | 20 - .../results/WSM_Cuda_KokkosCore_config.h | 21 - .../results/WSM_OpenMP_KokkosCore_config.h | 20 - .../results/WSM_Pthread_KokkosCore_config.h | 20 - .../results/WSM_ROCm_KokkosCore_config.h | 21 - .../results/WSM_Serial_KokkosCore_config.h | 20 - .../configuration/test-code/CMakeLists.txt | 4 +- .../test-code/test_config_arch_list.bash | 2 +- .../test-code/test_config_options_list.bash | 3 +- .../cuda/TestCudaHostPinned_SharedAlloc.cpp | 8 - ....cpp => TestCudaHostPinned_ViewCopy_a.cpp} | 2 +- ....cpp => TestCudaHostPinned_ViewCopy_b.cpp} | 4 +- .../cuda/TestCudaUVM_SharedAlloc.cpp | 8 - ...iewCopy.cpp => TestCudaUVM_ViewCopy_a.cpp} | 2 +- ...icViews.cpp => TestCudaUVM_ViewCopy_b.cpp} | 5 +- ...estCuda_AtomicOperations_complexdouble.cpp | 46 - ...TestCuda_AtomicOperations_complexfloat.cpp | 46 - .../cuda/TestCuda_AtomicOperations_double.cpp | 46 - .../cuda/TestCuda_AtomicOperations_float.cpp | 46 - .../TestCuda_AtomicOperations_longint.cpp | 46 - .../TestCuda_AtomicOperations_longlongint.cpp | 46 - .../TestCuda_AtomicOperations_unsignedint.cpp | 46 - ...tCuda_AtomicOperations_unsignedlongint.cpp | 46 - .../core/unit_test/cuda/TestCuda_Category.hpp | 1 + .../core/unit_test/cuda/TestCuda_Concepts.cpp | 46 - .../core/unit_test/cuda/TestCuda_Crs.cpp | 46 - .../cuda/TestCuda_DeepCopyAlignment.cpp | 46 - .../{TestCuda_Scan.cpp => TestCuda_Graph.cpp} | 2 +- .../cuda/TestCuda_InterOp_Streams.cpp | 147 +- .../unit_test/cuda/TestCuda_LocalDeepCopy.cpp | 46 - .../unit_test/cuda/TestCuda_MDRange_a.cpp | 47 - .../unit_test/cuda/TestCuda_MDRange_b.cpp | 47 - .../unit_test/cuda/TestCuda_MDRange_c.cpp | 47 - .../unit_test/cuda/TestCuda_MDRange_d.cpp | 47 - .../unit_test/cuda/TestCuda_MDRange_e.cpp | 47 - .../cuda/TestCuda_RangePolicyRequire.cpp | 47 - .../unit_test/cuda/TestCuda_Reducers_a.cpp | 46 - .../unit_test/cuda/TestCuda_Reducers_b.cpp | 46 - .../unit_test/cuda/TestCuda_Reducers_c.cpp | 46 - .../unit_test/cuda/TestCuda_Reducers_d.cpp | 46 - .../unit_test/cuda/TestCuda_Reductions.cpp | 47 - .../cuda/TestCuda_Reductions_DeviceView.cpp | 46 - .../unit_test/cuda/TestCuda_SharedAlloc.cpp | 54 - .../unit_test/cuda/TestCuda_SubView_a.cpp | 102 - .../unit_test/cuda/TestCuda_SubView_b.cpp | 66 - .../unit_test/cuda/TestCuda_SubView_c02.cpp | 55 - .../unit_test/cuda/TestCuda_SubView_c06.cpp | 55 - .../unit_test/cuda/TestCuda_SubView_c07.cpp | 54 - .../unit_test/cuda/TestCuda_SubView_c09.cpp | 55 - .../unit_test/cuda/TestCuda_SubView_c11.cpp | 55 - .../unit_test/cuda/TestCuda_SubView_c12.cpp | 55 - .../unit_test/cuda/TestCuda_SubView_c_all.cpp | 13 - .../core/unit_test/cuda/TestCuda_Team.cpp | 180 - .../unit_test/cuda/TestCuda_TeamScratch.cpp | 80 - .../cuda/TestCuda_TeamScratchStreams.cpp | 147 + .../unit_test/cuda/TestCuda_TeamTeamSize.cpp | 46 - .../cuda/TestCuda_TeamVectorRange.cpp | 47 - .../unit_test/cuda/TestCuda_UniqueToken.cpp | 46 - .../unit_test/cuda/TestCuda_ViewAPI_a.cpp | 46 - .../unit_test/cuda/TestCuda_ViewAPI_b.cpp | 46 - .../unit_test/cuda/TestCuda_ViewAPI_c.cpp | 46 - .../unit_test/cuda/TestCuda_ViewAPI_d.cpp | 46 - .../unit_test/cuda/TestCuda_ViewAPI_e.cpp | 47 - .../TestCuda_ViewLayoutStrideAssignment.cpp | 46 - .../unit_test/cuda/TestCuda_ViewMapping_a.cpp | 46 - .../unit_test/cuda/TestCuda_ViewMapping_b.cpp | 46 - .../cuda/TestCuda_ViewMapping_subview.cpp | 46 - .../unit_test/cuda/TestCuda_ViewOfClass.cpp | 46 - .../unit_test/cuda/TestCuda_ViewResize.cpp | 46 - .../unit_test/cuda/TestCuda_View_64bit.cpp | 46 - .../unit_test/cuda/TestCuda_WorkGraph.cpp | 46 - .../TestDefaultDeviceDevelop.cpp} | 12 +- .../default/TestDefaultDeviceType.cpp | 10 +- .../default/TestDefaultDeviceTypeInit_17.cpp | 2 + .../default/TestDefaultDeviceTypeInit_18.cpp | 2 + .../default/TestDefaultDeviceTypeResize.cpp | 5 +- .../default/TestDefaultDeviceType_a1.cpp | 9 +- .../default/TestDefaultDeviceType_a2.cpp | 8 + .../default/TestDefaultDeviceType_a3.cpp | 3 + .../default/TestDefaultDeviceType_b1.cpp | 9 +- .../default/TestDefaultDeviceType_b2.cpp | 8 + .../default/TestDefaultDeviceType_b3.cpp | 3 + .../default/TestDefaultDeviceType_c1.cpp | 9 +- .../default/TestDefaultDeviceType_c2.cpp | 8 +- .../default/TestDefaultDeviceType_c3.cpp | 3 +- .../headers_self_contained/CMakeLists.txt | 25 + .../headers_self_contained/tstHeader.cpp | 15 + .../hip/TestHIPHostPinned_SharedAlloc.cpp | 54 - ...y.cpp => TestHIPHostPinned_ViewCopy_a.cpp} | 2 +- .../TestHIPHostPinned_ViewCopy_b.cpp} | 4 +- ...TestHIP_AtomicOperations_complexdouble.cpp | 46 - .../TestHIP_AtomicOperations_complexfloat.cpp | 46 - .../hip/TestHIP_AtomicOperations_double.cpp | 46 - .../hip/TestHIP_AtomicOperations_float.cpp | 46 - .../hip/TestHIP_AtomicOperations_int.cpp | 46 - .../hip/TestHIP_AtomicOperations_longint.cpp | 46 - .../TestHIP_AtomicOperations_longlongint.cpp | 46 - .../TestHIP_AtomicOperations_unsignedint.cpp | 46 - ...stHIP_AtomicOperations_unsignedlongint.cpp | 46 - .../unit_test/hip/TestHIP_AtomicViews.cpp | 47 - .../core/unit_test/hip/TestHIP_Atomics.cpp | 46 - .../core/unit_test/hip/TestHIP_Complex.cpp | 47 - .../core/unit_test/hip/TestHIP_Concepts.cpp | 46 - .../kokkos/core/unit_test/hip/TestHIP_Crs.cpp | 46 - .../hip/TestHIP_DeepCopyAlignment.cpp | 46 - .../unit_test/hip/TestHIP_FunctorAnalysis.cpp | 47 - .../core/unit_test/hip/TestHIP_Init.cpp | 49 - .../unit_test/hip/TestHIP_InterOp_Init.cpp | 8 +- .../unit_test/hip/TestHIP_InterOp_Streams.cpp | 115 + .../unit_test/hip/TestHIP_LocalDeepCopy.cpp | 46 - .../core/unit_test/hip/TestHIP_MDRange_a.cpp | 47 - .../core/unit_test/hip/TestHIP_MDRange_b.cpp | 47 - .../core/unit_test/hip/TestHIP_MDRange_c.cpp | 47 - .../core/unit_test/hip/TestHIP_MDRange_d.cpp | 47 - .../core/unit_test/hip/TestHIP_MDRange_e.cpp | 47 - .../unit_test/hip/TestHIP_RangePolicy.cpp | 47 - .../hip/TestHIP_RangePolicyRequire.cpp | 47 - .../core/unit_test/hip/TestHIP_Reducers_a.cpp | 46 - .../core/unit_test/hip/TestHIP_Reducers_b.cpp | 46 - .../core/unit_test/hip/TestHIP_Reducers_c.cpp | 46 - .../core/unit_test/hip/TestHIP_Reducers_d.cpp | 46 - .../core/unit_test/hip/TestHIP_Reductions.cpp | 47 - .../core/unit_test/hip/TestHIP_Scan.cpp | 47 - .../core/unit_test/hip/TestHIP_ScanUnit.cpp | 12 +- .../unit_test/hip/TestHIP_SharedAlloc.cpp | 55 - .../unit_test/hip/TestHIP_SubView_c03.cpp | 55 - .../unit_test/hip/TestHIP_SubView_c05.cpp | 55 - .../unit_test/hip/TestHIP_SubView_c08.cpp | 55 - .../unit_test/hip/TestHIP_SubView_c10.cpp | 54 - .../unit_test/hip/TestHIP_SubView_c11.cpp | 55 - .../unit_test/hip/TestHIP_SubView_c13.cpp | 54 - .../hip/TestHIP_TeamScratchStreams.cpp | 152 + .../core/unit_test/hip/TestHIP_ViewAPI_c.cpp | 46 - .../core/unit_test/hip/TestHIP_ViewAPI_d.cpp | 46 - .../unit_test/hip/TestHIP_ViewMapping_a.cpp | 46 - .../unit_test/hip/TestHIP_ViewMapping_b.cpp | 46 - .../hip/TestHIP_ViewMapping_subview.cpp | 46 - .../unit_test/hip/TestHIP_ViewOfClass.cpp | 46 - .../core/unit_test/hip/TestHIP_ViewResize.cpp | 46 - .../core/unit_test/hip/TestHIP_View_64bit.cpp | 46 - ...TestHPX_AtomicOperations_complexdouble.cpp | 46 - .../TestHPX_AtomicOperations_complexfloat.cpp | 46 - .../hpx/TestHPX_AtomicOperations_double.cpp | 46 - .../hpx/TestHPX_AtomicOperations_float.cpp | 46 - .../hpx/TestHPX_AtomicOperations_int.cpp | 46 - .../hpx/TestHPX_AtomicOperations_longint.cpp | 46 - .../TestHPX_AtomicOperations_longlongint.cpp | 46 - .../TestHPX_AtomicOperations_unsignedint.cpp | 46 - ...stHPX_AtomicOperations_unsignedlongint.cpp | 46 - .../unit_test/hpx/TestHPX_AtomicViews.cpp | 47 - .../core/unit_test/hpx/TestHPX_Atomics.cpp | 46 - .../core/unit_test/hpx/TestHPX_Complex.cpp | 47 - .../core/unit_test/hpx/TestHPX_Concepts.cpp | 46 - .../kokkos/core/unit_test/hpx/TestHPX_Crs.cpp | 46 - .../hpx/TestHPX_DeepCopyAlignment.cpp | 46 - .../unit_test/hpx/TestHPX_FunctorAnalysis.cpp | 47 - .../hpx/TestHPX_IndependentInstances.cpp | 188 + ..._IndependentInstancesDelayedExecution.cpp} | 39 +- ...stHPX_IndependentInstancesInstanceIds.cpp} | 79 +- ...stHPX_IndependentInstancesRefCounting.cpp} | 65 +- .../core/unit_test/hpx/TestHPX_Init.cpp | 49 - .../unit_test/hpx/TestHPX_LocalDeepCopy.cpp | 46 - .../core/unit_test/hpx/TestHPX_MDRange_a.cpp | 47 - .../core/unit_test/hpx/TestHPX_MDRange_b.cpp | 47 - .../core/unit_test/hpx/TestHPX_MDRange_c.cpp | 47 - .../core/unit_test/hpx/TestHPX_MDRange_d.cpp | 47 - .../core/unit_test/hpx/TestHPX_MDRange_e.cpp | 47 - .../core/unit_test/hpx/TestHPX_Other.cpp | 44 - .../unit_test/hpx/TestHPX_RangePolicy.cpp | 47 - .../hpx/TestHPX_RangePolicyRequire.cpp | 47 - .../core/unit_test/hpx/TestHPX_Reducers_a.cpp | 46 - .../core/unit_test/hpx/TestHPX_Reducers_b.cpp | 46 - .../core/unit_test/hpx/TestHPX_Reducers_c.cpp | 46 - .../core/unit_test/hpx/TestHPX_Reducers_d.cpp | 46 - .../core/unit_test/hpx/TestHPX_Reductions.cpp | 47 - .../hpx/TestHPX_Reductions_DeviceView.cpp | 46 - .../core/unit_test/hpx/TestHPX_Scan.cpp | 47 - .../core/unit_test/hpx/TestHPX_SubView_b.cpp | 66 - .../unit_test/hpx/TestHPX_SubView_c02.cpp | 55 - .../unit_test/hpx/TestHPX_SubView_c03.cpp | 55 - .../unit_test/hpx/TestHPX_SubView_c04.cpp | 54 - .../unit_test/hpx/TestHPX_SubView_c05.cpp | 55 - .../unit_test/hpx/TestHPX_SubView_c06.cpp | 55 - .../unit_test/hpx/TestHPX_SubView_c07.cpp | 54 - .../unit_test/hpx/TestHPX_SubView_c08.cpp | 55 - .../unit_test/hpx/TestHPX_SubView_c10.cpp | 54 - .../unit_test/hpx/TestHPX_SubView_c12.cpp | 55 - .../unit_test/hpx/TestHPX_SubView_c13.cpp | 54 - .../unit_test/hpx/TestHPX_SubView_c_all.cpp | 13 - .../core/unit_test/hpx/TestHPX_Team.cpp | 83 - .../hpx/TestHPX_TeamReductionScan.cpp | 81 - .../unit_test/hpx/TestHPX_TeamTeamSize.cpp | 46 - .../unit_test/hpx/TestHPX_TeamVectorRange.cpp | 47 - .../unit_test/hpx/TestHPX_UniqueToken.cpp | 46 - .../core/unit_test/hpx/TestHPX_ViewAPI_a.cpp | 46 - .../core/unit_test/hpx/TestHPX_ViewAPI_b.cpp | 46 - .../core/unit_test/hpx/TestHPX_ViewAPI_c.cpp | 46 - .../core/unit_test/hpx/TestHPX_ViewAPI_d.cpp | 46 - .../core/unit_test/hpx/TestHPX_ViewAPI_e.cpp | 46 - .../TestHPX_ViewLayoutStrideAssignment.cpp | 46 - .../unit_test/hpx/TestHPX_ViewMapping_a.cpp | 46 - .../unit_test/hpx/TestHPX_ViewMapping_b.cpp | 46 - .../hpx/TestHPX_ViewMapping_subview.cpp | 46 - .../unit_test/hpx/TestHPX_ViewOfClass.cpp | 46 - .../core/unit_test/hpx/TestHPX_ViewResize.cpp | 46 - .../core/unit_test/hpx/TestHPX_View_64bit.cpp | 46 - .../core/unit_test/hpx/TestHPX_WorkGraph.cpp | 46 - .../incremental/Test01_execspace.hpp | 6 +- .../incremental/Test02_atomic_host.hpp | 3 +- .../Test04_ParallelFor_RangePolicy.hpp | 23 +- .../Test05_ParallelReduce_RangePolicy.hpp | 88 +- .../Test06_ParallelFor_MDRangePolicy.hpp | 36 +- .../incremental/Test10_HierarchicalBasics.hpp | 9 + .../Test11a_ParallelFor_TeamThreadRange.hpp | 12 +- .../Test11b_ParallelFor_TeamVectorRange.hpp | 12 +- .../Test11c_ParallelFor_ThreadVectorRange.hpp | 6 +- .../incremental/Test12a_ThreadScratch.hpp | 2 +- .../incremental/Test12b_TeamScratch.hpp | 2 +- .../Test13a_ParallelRed_TeamThreadRange.hpp | 8 +- .../Test13b_ParallelRed_TeamVectorRange.hpp | 8 +- .../Test13c_ParallelRed_ThreadVectorRange.hpp | 8 +- .../incremental/Test14_MDRangeReduce.hpp | 182 + .../incremental/Test16_ParallelScan.hpp} | 75 +- .../incremental/Test17_CompleteAtomic.hpp | 126 + .../core/unit_test/openmp/TestOpenMP.hpp | 2 - ...tOpenMP_AtomicOperations_complexdouble.cpp | 46 - ...stOpenMP_AtomicOperations_complexfloat.cpp | 46 - .../TestOpenMP_AtomicOperations_double.cpp | 46 - .../TestOpenMP_AtomicOperations_float.cpp | 46 - .../TestOpenMP_AtomicOperations_int.cpp | 46 - .../TestOpenMP_AtomicOperations_longint.cpp | 46 - ...estOpenMP_AtomicOperations_longlongint.cpp | 46 - ...estOpenMP_AtomicOperations_unsignedint.cpp | 46 - ...penMP_AtomicOperations_unsignedlongint.cpp | 46 - .../openmp/TestOpenMP_AtomicViews.cpp | 47 - .../unit_test/openmp/TestOpenMP_Atomics.cpp | 46 - .../unit_test/openmp/TestOpenMP_Category.hpp | 1 + .../unit_test/openmp/TestOpenMP_Complex.cpp | 47 - .../unit_test/openmp/TestOpenMP_Concepts.cpp | 46 - .../core/unit_test/openmp/TestOpenMP_Crs.cpp | 46 - .../openmp/TestOpenMP_DeepCopyAlignment.cpp | 46 - .../openmp/TestOpenMP_FunctorAnalysis.cpp | 47 - ...P_RangePolicy.cpp => TestOpenMP_Graph.cpp} | 2 +- .../core/unit_test/openmp/TestOpenMP_Init.cpp | 49 - .../openmp/TestOpenMP_LocalDeepCopy.cpp | 46 - .../unit_test/openmp/TestOpenMP_MDRange_a.cpp | 47 - .../unit_test/openmp/TestOpenMP_MDRange_b.cpp | 47 - .../unit_test/openmp/TestOpenMP_MDRange_c.cpp | 47 - .../unit_test/openmp/TestOpenMP_MDRange_d.cpp | 47 - .../unit_test/openmp/TestOpenMP_MDRange_e.cpp | 47 - ...her.cpp => TestOpenMP_PartitionMaster.cpp} | 28 +- .../openmp/TestOpenMP_RangePolicyRequire.cpp | 47 - .../openmp/TestOpenMP_Reducers_a.cpp | 46 - .../openmp/TestOpenMP_Reducers_b.cpp | 46 - .../openmp/TestOpenMP_Reducers_c.cpp | 46 - .../openmp/TestOpenMP_Reducers_d.cpp | 46 - .../TestOpenMP_Reductions_DeviceView.cpp | 46 - .../core/unit_test/openmp/TestOpenMP_Scan.cpp | 47 - .../openmp/TestOpenMP_SharedAlloc.cpp | 54 - .../unit_test/openmp/TestOpenMP_SubView_a.cpp | 102 - .../unit_test/openmp/TestOpenMP_SubView_b.cpp | 66 - .../openmp/TestOpenMP_SubView_c01.cpp | 54 - .../openmp/TestOpenMP_SubView_c02.cpp | 55 - .../openmp/TestOpenMP_SubView_c03.cpp | 55 - .../openmp/TestOpenMP_SubView_c04.cpp | 54 - .../openmp/TestOpenMP_SubView_c05.cpp | 55 - .../openmp/TestOpenMP_SubView_c06.cpp | 55 - .../openmp/TestOpenMP_SubView_c07.cpp | 54 - .../openmp/TestOpenMP_SubView_c08.cpp | 55 - .../openmp/TestOpenMP_SubView_c09.cpp | 55 - .../openmp/TestOpenMP_SubView_c10.cpp | 54 - .../openmp/TestOpenMP_SubView_c11.cpp | 55 - .../openmp/TestOpenMP_SubView_c12.cpp | 55 - .../openmp/TestOpenMP_SubView_c13.cpp | 54 - .../openmp/TestOpenMP_SubView_c_all.cpp | 13 - .../core/unit_test/openmp/TestOpenMP_Team.cpp | 105 - .../openmp/TestOpenMP_TeamReductionScan.cpp | 81 - .../openmp/TestOpenMP_TeamScratch.cpp | 79 - .../openmp/TestOpenMP_TeamTeamSize.cpp | 46 - .../openmp/TestOpenMP_TeamVectorRange.cpp | 47 - .../openmp/TestOpenMP_UniqueToken.cpp | 46 - .../unit_test/openmp/TestOpenMP_ViewAPI_a.cpp | 46 - .../unit_test/openmp/TestOpenMP_ViewAPI_b.cpp | 46 - .../unit_test/openmp/TestOpenMP_ViewAPI_c.cpp | 46 - .../unit_test/openmp/TestOpenMP_ViewAPI_d.cpp | 46 - .../unit_test/openmp/TestOpenMP_ViewAPI_e.cpp | 47 - .../TestOpenMP_ViewLayoutStrideAssignment.cpp | 46 - .../openmp/TestOpenMP_ViewMapping_a.cpp | 46 - .../openmp/TestOpenMP_ViewMapping_b.cpp | 46 - .../openmp/TestOpenMP_ViewMapping_subview.cpp | 46 - .../openmp/TestOpenMP_ViewOfClass.cpp | 46 - .../openmp/TestOpenMP_ViewResize.cpp | 46 - .../openmp/TestOpenMP_View_64bit.cpp | 46 - .../unit_test/openmp/TestOpenMP_WorkGraph.cpp | 46 - .../openmptarget/TestOpenMPTarget.hpp | 2 - ...PTarget_AtomicOperations_complexdouble.cpp | 46 - ...MPTarget_AtomicOperations_complexfloat.cpp | 46 - ...stOpenMPTarget_AtomicOperations_double.cpp | 46 - ...estOpenMPTarget_AtomicOperations_float.cpp | 46 - .../TestOpenMPTarget_AtomicOperations_int.cpp | 46 - ...tOpenMPTarget_AtomicOperations_longint.cpp | 46 - ...nMPTarget_AtomicOperations_longlongint.cpp | 46 - ...nMPTarget_AtomicOperations_unsignedint.cpp | 46 - ...arget_AtomicOperations_unsignedlongint.cpp | 46 - .../TestOpenMPTarget_AtomicViews.cpp | 47 - .../openmptarget/TestOpenMPTarget_Atomics.cpp | 46 - .../openmptarget/TestOpenMPTarget_Complex.cpp | 47 - .../TestOpenMPTarget_Concepts.cpp | 46 - .../openmptarget/TestOpenMPTarget_Crs.cpp | 0 .../TestOpenMPTarget_DeepCopyAlignment.cpp | 46 - .../TestOpenMPTarget_FunctorAnalysis.cpp | 0 .../openmptarget/TestOpenMPTarget_Init.cpp | 49 - .../TestOpenMPTarget_LocalDeepCopy.cpp | 0 .../TestOpenMPTarget_MDRange_a.cpp | 47 - .../TestOpenMPTarget_MDRange_b.cpp | 47 - .../TestOpenMPTarget_MDRange_c.cpp | 47 - .../TestOpenMPTarget_MDRange_d.cpp | 47 - .../TestOpenMPTarget_MDRange_e.cpp | 47 - .../openmptarget/TestOpenMPTarget_Other.cpp | 51 - .../TestOpenMPTarget_RangePolicy.cpp | 47 - .../TestOpenMPTarget_RangePolicyRequire.cpp | 0 .../TestOpenMPTarget_Reducers_a.cpp | 46 - .../TestOpenMPTarget_Reducers_b.cpp | 46 - .../TestOpenMPTarget_Reducers_c.cpp | 46 - .../TestOpenMPTarget_Reducers_d.cpp | 46 - .../TestOpenMPTarget_Reductions.cpp | 47 - ...TestOpenMPTarget_Reductions_DeviceView.cpp | 0 .../openmptarget/TestOpenMPTarget_Scan.cpp | 47 - .../TestOpenMPTarget_SharedAlloc.cpp | 55 - .../TestOpenMPTarget_SubView_a.cpp | 102 - .../TestOpenMPTarget_SubView_b.cpp | 66 - .../TestOpenMPTarget_SubView_c01.cpp | 54 - .../TestOpenMPTarget_SubView_c02.cpp | 55 - .../TestOpenMPTarget_SubView_c03.cpp | 55 - .../TestOpenMPTarget_SubView_c04.cpp | 54 - .../TestOpenMPTarget_SubView_c05.cpp | 55 - .../TestOpenMPTarget_SubView_c06.cpp | 55 - .../TestOpenMPTarget_SubView_c07.cpp | 54 - .../TestOpenMPTarget_SubView_c08.cpp | 55 - .../TestOpenMPTarget_SubView_c09.cpp | 55 - .../TestOpenMPTarget_SubView_c10.cpp | 54 - .../TestOpenMPTarget_SubView_c11.cpp | 55 - .../TestOpenMPTarget_SubView_c12.cpp | 55 - .../TestOpenMPTarget_SubView_c13.cpp | 0 .../openmptarget/TestOpenMPTarget_Team.cpp | 83 - .../TestOpenMPTarget_TeamReductionScan.cpp | 81 - .../TestOpenMPTarget_TeamScratch.cpp | 78 - .../TestOpenMPTarget_TeamTeamSize.cpp | 0 .../TestOpenMPTarget_TeamVectorRange.cpp | 0 .../TestOpenMPTarget_UniqueToken.cpp | 0 .../TestOpenMPTarget_ViewAPI_a.cpp | 46 - .../TestOpenMPTarget_ViewAPI_b.cpp | 46 - .../TestOpenMPTarget_ViewAPI_c.cpp | 46 - .../TestOpenMPTarget_ViewAPI_d.cpp | 46 - .../TestOpenMPTarget_ViewAPI_e.cpp | 46 - ...penMPTarget_ViewLayoutStrideAssignment.cpp | 0 .../TestOpenMPTarget_ViewMapping_a.cpp | 46 - .../TestOpenMPTarget_ViewMapping_b.cpp | 46 - .../TestOpenMPTarget_ViewMapping_subview.cpp | 46 - .../TestOpenMPTarget_ViewOfClass.cpp | 46 - .../TestOpenMPTarget_ViewResize.cpp | 0 .../TestOpenMPTarget_View_64bit.cpp | 0 .../TestOpenMPTarget_WorkGraph.cpp | 0 .../rocm/TestROCmHostPinned_SharedAlloc.cpp | 54 - .../rocm/TestROCmHostPinned_ViewAPI_a.cpp | 46 - .../rocm/TestROCmHostPinned_ViewAPI_b.cpp | 46 - .../rocm/TestROCmHostPinned_ViewAPI_c.cpp | 46 - .../rocm/TestROCmHostPinned_ViewAPI_d.cpp | 46 - .../rocm/TestROCmHostPinned_ViewAPI_e.cpp | 46 - .../rocm/TestROCmHostPinned_ViewCopy.cpp | 46 - .../rocm/TestROCmHostPinned_ViewMapping_a.cpp | 46 - .../rocm/TestROCmHostPinned_ViewMapping_b.cpp | 46 - ...TestROCmHostPinned_ViewMapping_subview.cpp | 46 - .../rocm/TestROCmHostPinned_View_64bit.cpp | 46 - .../core/unit_test/rocm/TestROCm_All.cpp | 33 - .../rocm/TestROCm_AtomicOperations_double.cpp | 46 - .../rocm/TestROCm_AtomicOperations_float.cpp | 46 - .../rocm/TestROCm_AtomicOperations_int.cpp | 46 - .../TestROCm_AtomicOperations_longint.cpp | 46 - .../TestROCm_AtomicOperations_longlongint.cpp | 46 - .../TestROCm_AtomicOperations_unsignedint.cpp | 46 - ...tROCm_AtomicOperations_unsignedlongint.cpp | 46 - .../unit_test/rocm/TestROCm_AtomicViews.cpp | 47 - .../core/unit_test/rocm/TestROCm_Atomics.cpp | 46 - .../core/unit_test/rocm/TestROCm_Complex.cpp | 47 - .../core/unit_test/rocm/TestROCm_Crs.cpp | 47 - .../rocm/TestROCm_DeepCopyAlignment.cpp | 46 - .../core/unit_test/rocm/TestROCm_Init.cpp | 49 - .../rocm/TestROCm_MDRangeReduce_a.cpp | 54 - .../rocm/TestROCm_MDRangeReduce_b.cpp | 54 - .../rocm/TestROCm_MDRangeReduce_d.cpp | 54 - .../rocm/TestROCm_MDRangeReduce_e.cpp | 54 - .../unit_test/rocm/TestROCm_MDRange_a.cpp | 47 - .../unit_test/rocm/TestROCm_MDRange_b.cpp | 47 - .../unit_test/rocm/TestROCm_MDRange_c.cpp | 47 - .../unit_test/rocm/TestROCm_MDRange_d.cpp | 47 - .../unit_test/rocm/TestROCm_MDRange_e.cpp | 47 - .../core/unit_test/rocm/TestROCm_Other.cpp | 53 - .../unit_test/rocm/TestROCm_RangePolicy.cpp | 47 - .../unit_test/rocm/TestROCm_Reducers_a.cpp | 46 - .../unit_test/rocm/TestROCm_Reducers_b.cpp | 46 - .../unit_test/rocm/TestROCm_Reducers_c.cpp | 46 - .../unit_test/rocm/TestROCm_Reducers_d.cpp | 46 - .../unit_test/rocm/TestROCm_Reductions.cpp | 47 - .../core/unit_test/rocm/TestROCm_Scan.cpp | 47 - .../unit_test/rocm/TestROCm_SharedAlloc.cpp | 55 - .../core/unit_test/rocm/TestROCm_Spaces.cpp | 237 -- .../unit_test/rocm/TestROCm_SubView_a.cpp | 102 - .../unit_test/rocm/TestROCm_SubView_b.cpp | 66 - .../unit_test/rocm/TestROCm_SubView_c01.cpp | 54 - .../unit_test/rocm/TestROCm_SubView_c02.cpp | 55 - .../unit_test/rocm/TestROCm_SubView_c03.cpp | 55 - .../unit_test/rocm/TestROCm_SubView_c04.cpp | 54 - .../unit_test/rocm/TestROCm_SubView_c05.cpp | 55 - .../unit_test/rocm/TestROCm_SubView_c06.cpp | 55 - .../unit_test/rocm/TestROCm_SubView_c07.cpp | 54 - .../unit_test/rocm/TestROCm_SubView_c08.cpp | 55 - .../unit_test/rocm/TestROCm_SubView_c09.cpp | 55 - .../unit_test/rocm/TestROCm_SubView_c10.cpp | 54 - .../unit_test/rocm/TestROCm_SubView_c11.cpp | 55 - .../unit_test/rocm/TestROCm_SubView_c12.cpp | 55 - .../unit_test/rocm/TestROCm_SubView_c13.cpp | 54 - .../core/unit_test/rocm/TestROCm_Team.cpp | 83 - .../rocm/TestROCm_TeamReductionScan.cpp | 81 - .../unit_test/rocm/TestROCm_TeamTeamSize.cpp | 50 - .../unit_test/rocm/TestROCm_ViewAPI_a.cpp | 46 - .../unit_test/rocm/TestROCm_ViewAPI_b.cpp | 46 - .../unit_test/rocm/TestROCm_ViewAPI_c.cpp | 46 - .../unit_test/rocm/TestROCm_ViewAPI_d.cpp | 46 - .../unit_test/rocm/TestROCm_ViewAPI_e.cpp | 46 - .../unit_test/rocm/TestROCm_ViewMapping_a.cpp | 46 - .../unit_test/rocm/TestROCm_ViewMapping_b.cpp | 46 - .../rocm/TestROCm_ViewMapping_subview.cpp | 46 - .../unit_test/rocm/TestROCm_ViewOfClass.cpp | 46 - ...tSerial_AtomicOperations_complexdouble.cpp | 46 - ...stSerial_AtomicOperations_complexfloat.cpp | 46 - .../TestSerial_AtomicOperations_double.cpp | 46 - .../TestSerial_AtomicOperations_float.cpp | 46 - .../TestSerial_AtomicOperations_int.cpp | 46 - .../TestSerial_AtomicOperations_longint.cpp | 46 - ...estSerial_AtomicOperations_longlongint.cpp | 46 - ...estSerial_AtomicOperations_unsignedint.cpp | 46 - ...erial_AtomicOperations_unsignedlongint.cpp | 46 - .../serial/TestSerial_AtomicViews.cpp | 47 - .../unit_test/serial/TestSerial_Atomics.cpp | 46 - .../unit_test/serial/TestSerial_Category.hpp | 1 + .../unit_test/serial/TestSerial_Complex.cpp | 47 - .../unit_test/serial/TestSerial_Concepts.cpp | 46 - .../core/unit_test/serial/TestSerial_Crs.cpp | 46 - .../serial/TestSerial_DeepCopyAlignment.cpp | 46 - .../serial/TestSerial_FunctorAnalysis.cpp | 47 - ...l_RangePolicy.cpp => TestSerial_Graph.cpp} | 2 +- .../core/unit_test/serial/TestSerial_Init.cpp | 49 - .../serial/TestSerial_LocalDeepCopy.cpp | 46 - .../unit_test/serial/TestSerial_MDRange_a.cpp | 47 - .../unit_test/serial/TestSerial_MDRange_b.cpp | 47 - .../unit_test/serial/TestSerial_MDRange_c.cpp | 47 - .../unit_test/serial/TestSerial_MDRange_d.cpp | 47 - .../unit_test/serial/TestSerial_MDRange_e.cpp | 47 - .../unit_test/serial/TestSerial_Other.cpp | 54 - .../serial/TestSerial_RangePolicyRequire.cpp | 47 - .../serial/TestSerial_Reducers_a.cpp | 46 - .../serial/TestSerial_Reducers_b.cpp | 46 - .../serial/TestSerial_Reducers_c.cpp | 46 - .../serial/TestSerial_Reducers_d.cpp | 46 - .../serial/TestSerial_Reductions.cpp | 47 - .../TestSerial_Reductions_DeviceView.cpp | 46 - .../core/unit_test/serial/TestSerial_Scan.cpp | 47 - .../serial/TestSerial_SharedAlloc.cpp | 54 - .../unit_test/serial/TestSerial_SubView_a.cpp | 102 - .../unit_test/serial/TestSerial_SubView_b.cpp | 66 - .../serial/TestSerial_SubView_c01.cpp | 54 - .../serial/TestSerial_SubView_c02.cpp | 55 - .../serial/TestSerial_SubView_c03.cpp | 55 - .../serial/TestSerial_SubView_c04.cpp | 54 - .../serial/TestSerial_SubView_c05.cpp | 55 - .../serial/TestSerial_SubView_c06.cpp | 55 - .../serial/TestSerial_SubView_c07.cpp | 54 - .../serial/TestSerial_SubView_c08.cpp | 55 - .../serial/TestSerial_SubView_c09.cpp | 55 - .../serial/TestSerial_SubView_c10.cpp | 54 - .../serial/TestSerial_SubView_c11.cpp | 55 - .../serial/TestSerial_SubView_c12.cpp | 55 - .../serial/TestSerial_SubView_c13.cpp | 54 - .../serial/TestSerial_SubView_c_all.cpp | 13 - .../core/unit_test/serial/TestSerial_Team.cpp | 166 - .../serial/TestSerial_TeamReductionScan.cpp | 81 - .../serial/TestSerial_TeamScratch.cpp | 80 - .../serial/TestSerial_TeamTeamSize.cpp | 46 - .../serial/TestSerial_TeamVectorRange.cpp | 47 - .../serial/TestSerial_UniqueToken.cpp | 46 - .../unit_test/serial/TestSerial_ViewAPI_a.cpp | 46 - .../unit_test/serial/TestSerial_ViewAPI_b.cpp | 46 - .../unit_test/serial/TestSerial_ViewAPI_c.cpp | 46 - .../unit_test/serial/TestSerial_ViewAPI_d.cpp | 46 - .../unit_test/serial/TestSerial_ViewAPI_e.cpp | 47 - .../TestSerial_ViewLayoutStrideAssignment.cpp | 46 - .../serial/TestSerial_ViewMapping_a.cpp | 46 - .../serial/TestSerial_ViewMapping_b.cpp | 46 - .../serial/TestSerial_ViewMapping_subview.cpp | 46 - .../serial/TestSerial_ViewOfClass.cpp | 46 - .../serial/TestSerial_ViewResize.cpp | 46 - .../serial/TestSerial_View_64bit.cpp | 46 - .../unit_test/serial/TestSerial_WorkGraph.cpp | 46 - .../unit_test/standalone/UnitTestMainInit.cpp | 3 - ...Threads_AtomicOperations_complexdouble.cpp | 46 - ...tThreads_AtomicOperations_complexfloat.cpp | 46 - .../TestThreads_AtomicOperations_double.cpp | 46 - .../TestThreads_AtomicOperations_float.cpp | 46 - .../TestThreads_AtomicOperations_int.cpp | 46 - .../TestThreads_AtomicOperations_longint.cpp | 46 - ...stThreads_AtomicOperations_longlongint.cpp | 46 - ...stThreads_AtomicOperations_unsignedint.cpp | 46 - ...reads_AtomicOperations_unsignedlongint.cpp | 46 - .../threads/TestThreads_AtomicViews.cpp | 47 - .../unit_test/threads/TestThreads_Atomics.cpp | 46 - .../unit_test/threads/TestThreads_Complex.cpp | 47 - .../threads/TestThreads_Concepts.cpp | 46 - .../unit_test/threads/TestThreads_Crs.cpp | 46 - .../threads/TestThreads_DeepCopyAlignment.cpp | 46 - .../threads/TestThreads_FunctorAnalysis.cpp | 47 - .../unit_test/threads/TestThreads_Init.cpp | 49 - .../threads/TestThreads_LocalDeepCopy.cpp | 46 - .../threads/TestThreads_MDRange_a.cpp | 47 - .../threads/TestThreads_MDRange_b.cpp | 47 - .../threads/TestThreads_MDRange_c.cpp | 47 - .../threads/TestThreads_MDRange_d.cpp | 47 - .../threads/TestThreads_MDRange_e.cpp | 47 - .../unit_test/threads/TestThreads_Other.cpp | 54 - .../threads/TestThreads_RangePolicy.cpp | 47 - .../TestThreads_RangePolicyRequire.cpp | 47 - .../threads/TestThreads_Reducers_a.cpp | 46 - .../threads/TestThreads_Reducers_b.cpp | 46 - .../threads/TestThreads_Reducers_c.cpp | 46 - .../threads/TestThreads_Reducers_d.cpp | 46 - .../threads/TestThreads_Reductions.cpp | 47 - .../TestThreads_Reductions_DeviceView.cpp | 46 - .../unit_test/threads/TestThreads_Scan.cpp | 47 - .../threads/TestThreads_SharedAlloc.cpp | 54 - .../threads/TestThreads_SubView_a.cpp | 102 - .../threads/TestThreads_SubView_b.cpp | 66 - .../threads/TestThreads_SubView_c01.cpp | 54 - .../threads/TestThreads_SubView_c02.cpp | 55 - .../threads/TestThreads_SubView_c03.cpp | 55 - .../threads/TestThreads_SubView_c04.cpp | 54 - .../threads/TestThreads_SubView_c05.cpp | 55 - .../threads/TestThreads_SubView_c06.cpp | 55 - .../threads/TestThreads_SubView_c07.cpp | 54 - .../threads/TestThreads_SubView_c08.cpp | 55 - .../threads/TestThreads_SubView_c09.cpp | 55 - .../threads/TestThreads_SubView_c10.cpp | 54 - .../threads/TestThreads_SubView_c11.cpp | 55 - .../threads/TestThreads_SubView_c12.cpp | 55 - .../threads/TestThreads_SubView_c13.cpp | 54 - .../unit_test/threads/TestThreads_Team.cpp | 105 - .../threads/TestThreads_TeamReductionScan.cpp | 81 - .../threads/TestThreads_TeamTeamSize.cpp | 46 - .../threads/TestThreads_TeamVectorRange.cpp | 47 - .../threads/TestThreads_UniqueToken.cpp | 46 - .../threads/TestThreads_ViewAPI_a.cpp | 46 - .../threads/TestThreads_ViewAPI_b.cpp | 46 - .../threads/TestThreads_ViewAPI_c.cpp | 46 - .../threads/TestThreads_ViewAPI_d.cpp | 46 - .../threads/TestThreads_ViewAPI_e.cpp | 47 - ...TestThreads_ViewLayoutStrideAssignment.cpp | 46 - .../threads/TestThreads_ViewMapping_a.cpp | 46 - .../threads/TestThreads_ViewMapping_b.cpp | 46 - .../TestThreads_ViewMapping_subview.cpp | 46 - .../threads/TestThreads_ViewOfClass.cpp | 46 - .../threads/TestThreads_ViewResize.cpp | 46 - .../threads/TestThreads_View_64bit.cpp | 46 - .../threads/TestThreads_WorkGraph.cpp | 46 - .../tools/TestAllCalls.cpp} | 59 +- .../core/unit_test/tools/TestCInterface.c | 2 + .../TestLogicalSpaces.cpp} | 8 +- .../unit_test/tools/TestLogicalSpaces.hpp | 198 ++ .../core/unit_test/tools/TestTuning.cpp | 194 + .../core/unit_test/tools/printing-tool.cpp | 118 + packages/kokkos/doc/TuningDesign.md | 221 ++ packages/kokkos/doc/develop_builds.md | 20 - packages/kokkos/example/CMakeLists.txt | 5 +- .../build_cmake_in_tree/CMakeLists.txt | 53 +- .../build_cmake_in_tree/cmake_example.cpp | 4 - .../kokkos/example/build_cmake_in_tree/foo.f | 4 - .../build_cmake_installed/CMakeLists.txt | 54 +- .../build_cmake_installed/cmake_example.cpp | 11 +- .../kokkos/example/make_buildlink/main.cpp | 6 +- .../tutorial/01_hello_world/hello_world.cpp | 6 +- .../tutorial/02_simple_reduce/Makefile | 11 +- .../02_simple_reduce/simple_reduce.cpp | 4 +- .../tutorial/02_simple_reduce_lambda/Makefile | 11 +- .../example/tutorial/03_simple_view/Makefile | 11 +- .../tutorial/03_simple_view/simple_view.cpp | 6 +- .../03_simple_view_lambda/CMakeLists.txt | 13 +- .../tutorial/03_simple_view_lambda/Makefile | 11 +- .../simple_view_lambda.cpp | 2 +- .../tutorial/04_simple_memoryspaces/Makefile | 11 +- .../simple_memoryspaces.cpp | 6 +- .../tutorial/05_simple_atomics/Makefile | 11 +- .../05_simple_atomics/simple_atomics.cpp | 10 +- .../simple_mdrangepolicy.cpp | 24 +- .../Advanced_Views/01_data_layouts/Makefile | 11 +- .../01_data_layouts/data_layouts.cpp | 8 +- .../Advanced_Views/02_memory_traits/Makefile | 11 +- .../02_memory_traits/memory_traits.cpp | 10 +- .../Advanced_Views/03_subviews/Makefile | 11 +- .../Advanced_Views/03_subviews/subviews.cpp | 16 +- .../Advanced_Views/04_dualviews/Makefile | 11 +- .../Advanced_Views/04_dualviews/dual_view.cpp | 18 +- .../05_NVIDIA_UVM/uvm_example.cpp | 10 +- .../Advanced_Views/06_AtomicViews/Makefile | 11 +- .../overlapping_deepcopy.cpp | 2 +- .../Algorithms/01_random_numbers/Makefile | 11 +- .../01_random_numbers/random_numbers.cpp | 6 +- .../01_thread_teams/Makefile | 11 +- .../01_thread_teams/thread_teams.cpp | 6 +- .../01_thread_teams_lambda/Makefile | 11 +- .../thread_teams_lambda.cpp | 4 +- .../02_nested_parallel_for/Makefile | 11 +- .../nested_parallel_for.cpp | 6 +- .../03_vectorization/Makefile | 11 +- .../03_vectorization/vectorization.cpp | 12 +- .../04_team_scan/Makefile | 11 +- .../04_team_scan/team_scan.cpp | 8 +- .../example/tutorial/launch_bounds/Makefile | 11 +- .../launch_bounds/launch_bounds_reduce.cpp | 2 +- packages/kokkos/generate_makefile.bash | 152 +- packages/kokkos/gnu_generate_makefile.bash | 116 +- packages/kokkos/master_history.txt | 5 +- packages/kokkos/scripts/apply-clang-format | 17 +- .../kokkos/scripts/docker/Dockerfile.clang | 4 +- packages/kokkos/scripts/docker/Dockerfile.gcc | 6 +- .../kokkos/scripts/docker/Dockerfile.hipcc | 7 +- .../docker/Dockerfile.kokkosllvmproject | 53 + .../kokkos/scripts/docker/Dockerfile.nvcc | 7 +- .../scripts/docker/Dockerfile.openmptarget | 67 + .../kokkos/scripts/docker/Dockerfile.sycl | 28 + .../scripts/eti/generate_view_copy_cpp_files | 13 - .../eti/generate_view_copy_cpp_files_iterate | 21 - .../eti/generate_view_copy_cpp_files_rank | 17 - .../eti/generate_view_copy_cpp_files_write | 41 - .../testing_scripts/generate_makefile.bash | 7 +- .../testing_scripts/gnu_test_all_sandia | 4 +- .../scripts/testing_scripts/test_all_sandia | 219 +- .../scripts/testing_scripts/update_lib.sh | 30 +- .../configure-atdm-cuda-depoff-dbg.sh | 1 - .../configure-atdm-cuda-depoff.sh | 1 - .../configure-atdm-cuda-depon-dbg.sh | 1 - .../configure-atdm-cuda-depon.sh | 1 - .../configure-atdm-cuda-ride-rdc-depoff.sh | 1 - .../configure-atdm-cuda-ride-rdc-depon.sh | 1 - .../ATDM_configurations/configure-atdm-env.sh | 1 - packages/kokkos/tpls/.clang-format | 3 + 2133 files changed, 37556 insertions(+), 117597 deletions(-) create mode 100644 packages/kokkos/.clang-tidy create mode 100644 packages/kokkos/Spack.md delete mode 100644 packages/kokkos/benchmarks/gups/gups-kokkos.cc create mode 100644 packages/kokkos/benchmarks/gups/gups-kokkos.cpp delete mode 100644 packages/kokkos/benchmarks/stream/stream-kokkos.cc create mode 100644 packages/kokkos/benchmarks/stream/stream-kokkos.cpp create mode 100755 packages/kokkos/bin/kokkos_launch_compiler rename packages/kokkos/{core/unit_test/cuda/TestCuda_Complex.cpp => cmake/KokkosCore_Config_HeaderSet.in} (96%) create mode 100644 packages/kokkos/cmake/Modules/CudaToolkit.cmake rename packages/kokkos/{core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp => cmake/compile_tests/cuda_compute_capability.cc} (54%) create mode 100644 packages/kokkos/config/yaml/volta.yaml rename packages/kokkos/containers/performance_tests/{TestROCm.cpp => TestHIP.cpp} (67%) create mode 100644 packages/kokkos/containers/unit_tests/TestSYCL_Category.hpp create mode 100644 packages/kokkos/core/perf_test/test_atomic_minmax_simple.cpp delete mode 100644 packages/kokkos/core/src/Cuda/KokkosExp_Cuda_IterateTile.hpp delete mode 100644 packages/kokkos/core/src/Cuda/KokkosExp_Cuda_IterateTile_Refactor.hpp create mode 100644 packages/kokkos/core/src/Cuda/Kokkos_Cuda_GraphNodeKernel.hpp rename packages/kokkos/core/src/{eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp => Cuda/Kokkos_Cuda_GraphNode_Impl.hpp} (52%) create mode 100644 packages/kokkos/core/src/Cuda/Kokkos_Cuda_Graph_Impl.hpp create mode 100644 packages/kokkos/core/src/Cuda/Kokkos_Cuda_Half.hpp create mode 100644 packages/kokkos/core/src/HIP/Kokkos_HIP_Shuffle_Reduce.hpp create mode 100644 packages/kokkos/core/src/HIP/Kokkos_HIP_UniqueToken.hpp rename packages/kokkos/core/src/{eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp => HIP/Kokkos_HIP_WorkGraphPolicy.hpp} (52%) delete mode 100644 packages/kokkos/core/src/HPX/Kokkos_HPX_ViewCopyETIAvail.hpp rename packages/kokkos/core/src/{HIP/Kokkos_HIP_KernelLaunch.cpp => Kokkos_AcquireUniqueTokenImpl.hpp} (70%) create mode 100644 packages/kokkos/core/src/Kokkos_Graph.hpp create mode 100644 packages/kokkos/core/src/Kokkos_GraphNode.hpp rename packages/kokkos/core/src/{HPX/Kokkos_HPX_ViewCopyETIDecl.hpp => Kokkos_Graph_fwd.hpp} (82%) create mode 100644 packages/kokkos/core/src/Kokkos_Half.hpp create mode 100644 packages/kokkos/core/src/Kokkos_LogicalSpaces.hpp delete mode 100644 packages/kokkos/core/src/Kokkos_ROCm.hpp delete mode 100644 packages/kokkos/core/src/Kokkos_ROCmSpace.hpp create mode 100644 packages/kokkos/core/src/Kokkos_SYCL.hpp create mode 100644 packages/kokkos/core/src/Kokkos_SYCL_Space.hpp create mode 100644 packages/kokkos/core/src/Kokkos_Tuners.hpp delete mode 100644 packages/kokkos/core/src/OpenMP/Kokkos_OpenMP_ViewCopyETIAvail.hpp delete mode 100644 packages/kokkos/core/src/OpenMP/Kokkos_OpenMP_ViewCopyETIDecl.hpp rename packages/kokkos/core/src/{Threads/Kokkos_Threads_ViewCopyETIAvail.hpp => OpenMPTarget/Kokkos_OpenMPTarget_Abort.hpp} (88%) delete mode 100644 packages/kokkos/core/src/ROCm/KokkosExp_ROCm_IterateTile_Refactor.hpp delete mode 100644 packages/kokkos/core/src/ROCm/Kokkos_ROCm_Atomic.hpp delete mode 100644 packages/kokkos/core/src/ROCm/Kokkos_ROCm_Exec.cpp delete mode 100644 packages/kokkos/core/src/ROCm/Kokkos_ROCm_Exec.hpp delete mode 100644 packages/kokkos/core/src/ROCm/Kokkos_ROCm_Impl.cpp delete mode 100644 packages/kokkos/core/src/ROCm/Kokkos_ROCm_Parallel.hpp delete mode 100644 packages/kokkos/core/src/ROCm/Kokkos_ROCm_Reduce.hpp delete mode 100644 packages/kokkos/core/src/ROCm/Kokkos_ROCm_ReduceScan.hpp delete mode 100644 packages/kokkos/core/src/ROCm/Kokkos_ROCm_Scan.hpp delete mode 100644 packages/kokkos/core/src/ROCm/Kokkos_ROCm_Space.cpp delete mode 100644 packages/kokkos/core/src/ROCm/Kokkos_ROCm_Task.cpp delete mode 100644 packages/kokkos/core/src/ROCm/Kokkos_ROCm_Task.hpp delete mode 100644 packages/kokkos/core/src/ROCm/Kokkos_ROCm_Tile.hpp delete mode 100644 packages/kokkos/core/src/ROCm/Kokkos_ROCm_Vectorization.hpp delete mode 100644 packages/kokkos/core/src/ROCm/hc_math_std.hpp create mode 100644 packages/kokkos/core/src/SYCL/Kokkos_SYCL.cpp create mode 100644 packages/kokkos/core/src/SYCL/Kokkos_SYCL_DeepCopy.hpp create mode 100644 packages/kokkos/core/src/SYCL/Kokkos_SYCL_Instance.cpp create mode 100644 packages/kokkos/core/src/SYCL/Kokkos_SYCL_Instance.hpp create mode 100644 packages/kokkos/core/src/SYCL/Kokkos_SYCL_Parallel_Range.hpp create mode 100644 packages/kokkos/core/src/SYCL/Kokkos_SYCL_Parallel_Reduce.hpp create mode 100644 packages/kokkos/core/src/SYCL/Kokkos_SYCL_Parallel_Scan.hpp create mode 100644 packages/kokkos/core/src/SYCL/Kokkos_SYCL_Space.cpp delete mode 100644 packages/kokkos/core/src/Serial/Kokkos_Serial_ViewCopyETIAvail.hpp delete mode 100644 packages/kokkos/core/src/Serial/Kokkos_Serial_ViewCopyETIDecl.hpp create mode 100644 packages/kokkos/core/src/decl/Kokkos_Declare_CUDA.hpp create mode 100644 packages/kokkos/core/src/decl/Kokkos_Declare_HBWSpace.hpp rename packages/kokkos/core/{unit_test/cuda/TestCuda_Init.cpp => src/decl/Kokkos_Declare_HIP.hpp} (93%) create mode 100644 packages/kokkos/core/src/decl/Kokkos_Declare_HPX.hpp create mode 100644 packages/kokkos/core/src/decl/Kokkos_Declare_OPENMP.hpp rename packages/kokkos/core/{unit_test/hpx/TestHPX_SubView_c01.cpp => src/decl/Kokkos_Declare_OPENMPTARGET.hpp} (90%) create mode 100644 packages/kokkos/core/src/decl/Kokkos_Declare_SERIAL.hpp create mode 100644 packages/kokkos/core/src/decl/Kokkos_Declare_SYCL.hpp create mode 100644 packages/kokkos/core/src/decl/Kokkos_Declare_THREADS.hpp delete mode 100644 packages/kokkos/core/src/eti/CMakeLists.txt delete mode 100644 packages/kokkos/core/src/eti/Cuda/CMakeLists.txt delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Cuda/Makefile.eti_Cuda delete mode 100644 packages/kokkos/core/src/eti/HPX/CMakeLists.txt delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/HPX/Makefile.eti_HPX delete mode 100644 packages/kokkos/core/src/eti/OpenMP/CMakeLists.txt delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/OpenMP/Makefile.eti_OpenMP delete mode 100644 packages/kokkos/core/src/eti/ROCm/CMakeLists.txt delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/ROCm/Makefile.eti_ROCm delete mode 100644 packages/kokkos/core/src/eti/Serial/CMakeLists.txt delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Serial/Makefile.eti_Serial delete mode 100644 packages/kokkos/core/src/eti/Threads/CMakeLists.txt delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp delete mode 100644 packages/kokkos/core/src/eti/Threads/Makefile.eti_Threads delete mode 100644 packages/kokkos/core/src/eti/common/Kokkos_ViewFillCopyETIAvail_Macros.hpp delete mode 100644 packages/kokkos/core/src/eti/common/Kokkos_ViewFillCopyETIDecl_Macros.hpp rename packages/kokkos/core/src/{Cuda/Kokkos_Cuda_fwd.hpp => fwd/Kokkos_Fwd_CUDA.hpp} (100%) rename packages/kokkos/core/src/{Cuda/Kokkos_Cuda_ViewCopyETIDecl.hpp => fwd/Kokkos_Fwd_HBWSpace.hpp} (87%) rename packages/kokkos/core/src/{ROCm/Kokkos_ROCm_ViewCopyETIDecl.hpp => fwd/Kokkos_Fwd_HIP.hpp} (87%) create mode 100644 packages/kokkos/core/src/fwd/Kokkos_Fwd_HPX.hpp create mode 100644 packages/kokkos/core/src/fwd/Kokkos_Fwd_OPENMP.hpp rename packages/kokkos/core/src/{ROCm/Kokkos_ROCm_ViewCopyETIAvail.hpp => fwd/Kokkos_Fwd_OPENMPTARGET.hpp} (87%) create mode 100644 packages/kokkos/core/src/fwd/Kokkos_Fwd_SERIAL.hpp rename packages/kokkos/core/src/{Cuda/Kokkos_Cuda_ViewCopyETIAvail.hpp => fwd/Kokkos_Fwd_SYCL.hpp} (87%) create mode 100644 packages/kokkos/core/src/fwd/Kokkos_Fwd_THREADS.hpp rename packages/kokkos/core/src/{HIP/KokkosExp_HIP_IterateTile.hpp => impl/KokkosExp_IterateTileGPU.hpp} (77%) create mode 100644 packages/kokkos/core/src/impl/Kokkos_Combined_Reducer.hpp create mode 100644 packages/kokkos/core/src/impl/Kokkos_Default_GraphNodeKernel.hpp create mode 100644 packages/kokkos/core/src/impl/Kokkos_Default_GraphNode_Impl.hpp create mode 100644 packages/kokkos/core/src/impl/Kokkos_Default_Graph_Impl.hpp rename packages/kokkos/core/src/{Threads/Kokkos_Threads_ViewCopyETIDecl.hpp => impl/Kokkos_Default_Graph_fwd.hpp} (85%) rename packages/kokkos/core/src/{eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp => impl/Kokkos_ExecSpaceInitializer.hpp} (79%) create mode 100644 packages/kokkos/core/src/impl/Kokkos_GraphImpl.hpp create mode 100644 packages/kokkos/core/src/impl/Kokkos_GraphImpl_Utilities.hpp create mode 100644 packages/kokkos/core/src/impl/Kokkos_GraphImpl_fwd.hpp rename packages/kokkos/core/src/{ROCm/Kokkos_ROCm_Invoke.hpp => impl/Kokkos_GraphNodeCustomization.hpp} (51%) create mode 100644 packages/kokkos/core/src/impl/Kokkos_GraphNodeImpl.hpp rename packages/kokkos/core/src/{eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp => impl/Kokkos_MemorySpace.cpp} (53%) delete mode 100644 packages/kokkos/core/src/impl/Kokkos_OldMacros.hpp create mode 100644 packages/kokkos/core/src/impl/Kokkos_Profiling.cpp create mode 100644 packages/kokkos/core/src/impl/Kokkos_Profiling.hpp create mode 100644 packages/kokkos/core/src/impl/Kokkos_Profiling_C_Interface.h delete mode 100644 packages/kokkos/core/src/impl/Kokkos_Profiling_Interface.cpp rename packages/kokkos/core/src/{ROCm/Kokkos_ROCm_Config.hpp => impl/Kokkos_Tools.hpp} (91%) delete mode 100644 packages/kokkos/core/src/impl/Kokkos_ViewFillCopyETIAvail.hpp delete mode 100644 packages/kokkos/core/src/impl/Kokkos_ViewFillCopyETIDecl.hpp delete mode 100644 packages/kokkos/core/src/impl/Kokkos_ViewTile.hpp create mode 100644 packages/kokkos/core/src/impl/Kokkos_ViewTracker.hpp create mode 100644 packages/kokkos/core/src/setup/Kokkos_Setup_Cuda.hpp rename packages/kokkos/core/src/{ROCm/Kokkos_ROCm_Join.hpp => setup/Kokkos_Setup_HIP.hpp} (70%) rename packages/kokkos/core/unit_test/{TestAtomic.hpp => TestAtomics.hpp} (94%) rename packages/kokkos/core/{src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp => unit_test/TestBlockSizeDeduction.hpp} (71%) rename packages/kokkos/core/unit_test/{cuda/TestCuda_SubView_c04.cpp => TestCudaUVM_Category.hpp} (90%) rename packages/kokkos/core/unit_test/{cuda/TestCuda_SubView_c01.cpp => TestCuda_Category.hpp} (89%) rename packages/kokkos/core/unit_test/{TestDeepCopy.hpp => TestDeepCopyAlignment.hpp} (95%) create mode 100644 packages/kokkos/core/unit_test/TestGraph.hpp rename packages/kokkos/core/unit_test/{rocm/TestROCm_Category.hpp => TestHIPHostPinned_Category.hpp} (91%) create mode 100644 packages/kokkos/core/unit_test/TestHIP_Category.hpp rename packages/kokkos/core/unit_test/{rocm/TestROCmHostPinned_Category.hpp => TestHPX_Category.hpp} (89%) rename packages/kokkos/core/unit_test/{rocm/TestROCm_TeamScratch.cpp => TestHalfConversion.hpp} (56%) create mode 100644 packages/kokkos/core/unit_test/TestHalfOperators.hpp create mode 100644 packages/kokkos/core/unit_test/TestIrregularLayout.hpp rename packages/kokkos/core/unit_test/{rocm/TestROCm_MDRangeReduce_c.cpp => TestMDRange_f.hpp} (93%) create mode 100644 packages/kokkos/core/unit_test/TestNonTrivialScalarTypes.hpp create mode 100644 packages/kokkos/core/unit_test/TestOpenMPTarget_Category.hpp create mode 100644 packages/kokkos/core/unit_test/TestOpenMP_Category.hpp rename packages/kokkos/core/unit_test/{cuda/TestCuda_Other.cpp => TestOther.hpp} (97%) rename packages/kokkos/core/unit_test/{cuda/TestCuda_RangePolicy.cpp => TestRangePolicy.hpp} (96%) rename packages/kokkos/core/unit_test/{TestRangeRequire.hpp => TestRangePolicyRequire.hpp} (93%) rename packages/kokkos/core/unit_test/{openmp/TestOpenMP_Reductions.cpp => TestReductions.hpp} (93%) rename packages/kokkos/core/unit_test/{TestReduceDeviceView.hpp => TestReductions_DeviceView.hpp} (98%) create mode 100644 packages/kokkos/core/unit_test/TestSYCL_Category.hpp create mode 100644 packages/kokkos/core/unit_test/TestSerial_Category.hpp rename packages/kokkos/core/unit_test/{hip/TestHIP_SubView_a.cpp => TestSubView_a.hpp} (97%) rename packages/kokkos/core/unit_test/{hip/TestHIP_SubView_b.cpp => TestSubView_b.hpp} (97%) rename packages/kokkos/core/unit_test/{hip/TestHIP_SubView_c01.cpp => TestSubView_c01.hpp} (96%) rename packages/kokkos/core/unit_test/{hip/TestHIP_SubView_c02.cpp => TestSubView_c02.hpp} (96%) rename packages/kokkos/core/unit_test/{cuda/TestCuda_SubView_c03.cpp => TestSubView_c03.hpp} (96%) rename packages/kokkos/core/unit_test/{hip/TestHIP_SubView_c04.cpp => TestSubView_c04.hpp} (96%) rename packages/kokkos/core/unit_test/{cuda/TestCuda_SubView_c05.cpp => TestSubView_c05.hpp} (96%) rename packages/kokkos/core/unit_test/{hip/TestHIP_SubView_c06.cpp => TestSubView_c06.hpp} (96%) rename packages/kokkos/core/unit_test/{hip/TestHIP_SubView_c07.cpp => TestSubView_c07.hpp} (96%) rename packages/kokkos/core/unit_test/{cuda/TestCuda_SubView_c08.cpp => TestSubView_c08.hpp} (96%) rename packages/kokkos/core/unit_test/{hip/TestHIP_SubView_c09.cpp => TestSubView_c09.hpp} (96%) rename packages/kokkos/core/unit_test/{cuda/TestCuda_SubView_c10.cpp => TestSubView_c10.hpp} (96%) rename packages/kokkos/core/unit_test/{hpx/TestHPX_SubView_c11.cpp => TestSubView_c11.hpp} (96%) rename packages/kokkos/core/unit_test/{hip/TestHIP_SubView_c12.cpp => TestSubView_c12.hpp} (96%) rename packages/kokkos/core/unit_test/{cuda/TestCuda_SubView_c13.cpp => TestSubView_c13.hpp} (96%) create mode 100644 packages/kokkos/core/unit_test/TestTeamBasic.hpp rename packages/kokkos/core/unit_test/{cuda/TestCuda_TeamReductionScan.cpp => TestTeamReductionScan.hpp} (58%) create mode 100644 packages/kokkos/core/unit_test/TestTeamScan.hpp rename packages/kokkos/core/unit_test/{threads/TestThreads_TeamScratch.cpp => TestTeamScratch.hpp} (74%) create mode 100644 packages/kokkos/core/unit_test/TestThreads_Category.hpp delete mode 100644 packages/kokkos/core/unit_test/TestTile.hpp rename packages/kokkos/core/unit_test/{TestViewCopy.hpp => TestViewCopy_a.hpp} (65%) create mode 100644 packages/kokkos/core/unit_test/TestViewCopy_b.hpp create mode 100644 packages/kokkos/core/unit_test/Test_InterOp_Streams.hpp delete mode 100644 packages/kokkos/core/unit_test/UnitTestConfig.make create mode 100644 packages/kokkos/core/unit_test/UnitTest_CMakePassCmdLineArgs.cpp delete mode 100755 packages/kokkos/core/unit_test/config/bin/hcc-config delete mode 100755 packages/kokkos/core/unit_test/config/clang delete mode 100644 packages/kokkos/core/unit_test/config/cmaketest/CMakeLists.txt delete mode 100755 packages/kokkos/core/unit_test/config/cxx delete mode 100755 packages/kokkos/core/unit_test/config/mpic++ delete mode 100755 packages/kokkos/core/unit_test/config/nvcc delete mode 100644 packages/kokkos/core/unit_test/config/results/AMDAVX_Cuda_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/AMDAVX_OpenMP_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/AMDAVX_Pthread_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/AMDAVX_ROCm_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/AMDAVX_Serial_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/ARMv8-ThunderX_Cuda_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/ARMv8-ThunderX_OpenMP_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/ARMv8-ThunderX_Pthread_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/ARMv8-ThunderX_ROCm_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/ARMv8-ThunderX_Serial_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/ARMv80_Cuda_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/ARMv80_OpenMP_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/ARMv80_Pthread_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/ARMv80_ROCm_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/ARMv80_Serial_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/ARMv81_Cuda_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/ARMv81_OpenMP_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/ARMv81_Pthread_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/ARMv81_ROCm_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/ARMv81_Serial_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/BDW_Cuda_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/BDW_OpenMP_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/BDW_Pthread_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/BDW_ROCm_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/BDW_Serial_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/BGQ_Cuda_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/BGQ_OpenMP_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/BGQ_Pthread_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/BGQ_ROCm_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/BGQ_Serial_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/HSW_Cuda_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/HSW_OpenMP_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/HSW_Pthread_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/HSW_ROCm_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/HSW_Serial_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/KNC_Cuda_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/KNC_OpenMP_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/KNC_Pthread_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/KNC_ROCm_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/KNC_Serial_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/KNL_Cuda_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/KNL_OpenMP_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/KNL_Pthread_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/KNL_ROCm_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/KNL_Serial_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Kepler30_Cuda_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Kepler30_OpenMP_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Kepler30_Pthread_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Kepler30_ROCm_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Kepler30_Serial_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Kepler32_Cuda_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Kepler32_OpenMP_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Kepler32_Pthread_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Kepler32_ROCm_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Kepler32_Serial_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Kepler35_Cuda_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Kepler35_OpenMP_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Kepler35_Pthread_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Kepler35_ROCm_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Kepler35_Serial_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Kepler37_Cuda_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Kepler37_OpenMP_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Kepler37_Pthread_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Kepler37_ROCm_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Kepler37_Serial_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Kepler_Cuda_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Kepler_OpenMP_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Kepler_Pthread_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Kepler_ROCm_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Kepler_Serial_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Maxwell50_Cuda_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Maxwell50_OpenMP_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Maxwell50_Pthread_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Maxwell50_ROCm_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Maxwell50_Serial_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Maxwell52_Cuda_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Maxwell52_OpenMP_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Maxwell52_Pthread_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Maxwell52_ROCm_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Maxwell52_Serial_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Maxwell53_Cuda_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Maxwell53_OpenMP_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Maxwell53_Pthread_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Maxwell53_ROCm_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Maxwell53_Serial_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Maxwell_Cuda_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Maxwell_OpenMP_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Maxwell_Pthread_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Maxwell_ROCm_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Maxwell_Serial_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/None_Cuda_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/None_OpenMP_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/None_Pthread_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/None_ROCm_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/None_Serial_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Pascal60_Cuda_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Pascal60_OpenMP_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Pascal60_Pthread_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Pascal60_ROCm_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Pascal60_Serial_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Pascal61_Cuda_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Pascal61_OpenMP_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Pascal61_Pthread_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Pascal61_ROCm_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Pascal61_Serial_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Power7_Cuda_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Power7_OpenMP_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Power7_Pthread_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Power7_ROCm_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Power7_Serial_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Power8_Cuda_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Power8_OpenMP_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Power8_Pthread_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Power8_ROCm_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Power8_Serial_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Power9_Cuda_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Power9_OpenMP_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Power9_Pthread_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Power9_ROCm_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/Power9_Serial_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/SKX_Cuda_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/SKX_OpenMP_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/SKX_Pthread_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/SKX_ROCm_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/SKX_Serial_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/SNB_Cuda_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/SNB_OpenMP_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/SNB_Pthread_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/SNB_ROCm_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/SNB_Serial_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/WSM_Cuda_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/WSM_OpenMP_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/WSM_Pthread_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/WSM_ROCm_KokkosCore_config.h delete mode 100644 packages/kokkos/core/unit_test/config/results/WSM_Serial_KokkosCore_config.h rename packages/kokkos/core/unit_test/cuda/{TestCudaHostPinned_ViewCopy.cpp => TestCudaHostPinned_ViewCopy_a.cpp} (98%) rename packages/kokkos/core/unit_test/cuda/{TestCuda_AtomicOperations_int.cpp => TestCudaHostPinned_ViewCopy_b.cpp} (96%) rename packages/kokkos/core/unit_test/cuda/{TestCudaUVM_ViewCopy.cpp => TestCudaUVM_ViewCopy_a.cpp} (98%) rename packages/kokkos/core/unit_test/cuda/{TestCuda_AtomicViews.cpp => TestCudaUVM_ViewCopy_b.cpp} (96%) delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_AtomicOperations_complexdouble.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_AtomicOperations_complexfloat.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_AtomicOperations_double.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_AtomicOperations_float.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_AtomicOperations_longint.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_AtomicOperations_longlongint.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_AtomicOperations_unsignedint.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_AtomicOperations_unsignedlongint.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_Concepts.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_Crs.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_DeepCopyAlignment.cpp rename packages/kokkos/core/unit_test/cuda/{TestCuda_Scan.cpp => TestCuda_Graph.cpp} (98%) delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_LocalDeepCopy.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_MDRange_a.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_MDRange_b.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_MDRange_c.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_MDRange_d.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_MDRange_e.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_RangePolicyRequire.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_Reducers_a.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_Reducers_b.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_Reducers_c.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_Reducers_d.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_Reductions.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_Reductions_DeviceView.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_SharedAlloc.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_SubView_a.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_SubView_b.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c02.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c06.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c07.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c09.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c11.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c12.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c_all.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_Team.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_TeamScratch.cpp create mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_TeamScratchStreams.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_TeamTeamSize.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_TeamVectorRange.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_UniqueToken.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_ViewAPI_a.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_ViewAPI_b.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_ViewAPI_c.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_ViewAPI_d.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_ViewAPI_e.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_ViewLayoutStrideAssignment.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_ViewMapping_a.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_ViewMapping_b.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_ViewMapping_subview.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_ViewOfClass.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_ViewResize.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_View_64bit.cpp delete mode 100644 packages/kokkos/core/unit_test/cuda/TestCuda_WorkGraph.cpp rename packages/kokkos/core/unit_test/{hpx/TestHPX_SharedAlloc.cpp => default/TestDefaultDeviceDevelop.cpp} (92%) create mode 100644 packages/kokkos/core/unit_test/default/TestDefaultDeviceTypeInit_17.cpp create mode 100644 packages/kokkos/core/unit_test/default/TestDefaultDeviceTypeInit_18.cpp create mode 100644 packages/kokkos/core/unit_test/headers_self_contained/CMakeLists.txt create mode 100644 packages/kokkos/core/unit_test/headers_self_contained/tstHeader.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIPHostPinned_SharedAlloc.cpp rename packages/kokkos/core/unit_test/hip/{TestHIPHostPinned_ViewCopy.cpp => TestHIPHostPinned_ViewCopy_a.cpp} (98%) rename packages/kokkos/core/unit_test/{cuda/TestCuda_Atomics.cpp => hip/TestHIPHostPinned_ViewCopy_b.cpp} (96%) delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_complexdouble.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_complexfloat.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_double.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_float.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_int.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_longint.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_longlongint.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_unsignedint.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_unsignedlongint.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_AtomicViews.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_Atomics.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_Complex.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_Concepts.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_Crs.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_DeepCopyAlignment.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_FunctorAnalysis.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_Init.cpp create mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_InterOp_Streams.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_LocalDeepCopy.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_MDRange_a.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_MDRange_b.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_MDRange_c.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_MDRange_d.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_MDRange_e.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_RangePolicy.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_RangePolicyRequire.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_Reducers_a.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_Reducers_b.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_Reducers_c.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_Reducers_d.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_Reductions.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_Scan.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_SharedAlloc.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_SubView_c03.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_SubView_c05.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_SubView_c08.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_SubView_c10.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_SubView_c11.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_SubView_c13.cpp create mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_TeamScratchStreams.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_ViewAPI_c.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_ViewAPI_d.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_ViewMapping_a.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_ViewMapping_b.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_ViewMapping_subview.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_ViewOfClass.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_ViewResize.cpp delete mode 100644 packages/kokkos/core/unit_test/hip/TestHIP_View_64bit.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_AtomicOperations_complexdouble.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_AtomicOperations_complexfloat.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_AtomicOperations_double.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_AtomicOperations_float.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_AtomicOperations_int.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_AtomicOperations_longint.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_AtomicOperations_longlongint.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_AtomicOperations_unsignedint.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_AtomicOperations_unsignedlongint.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_AtomicViews.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_Atomics.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_Complex.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_Concepts.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_Crs.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_DeepCopyAlignment.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_FunctorAnalysis.cpp create mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_IndependentInstances.cpp rename packages/kokkos/core/unit_test/hpx/{TestHPX_SubView_c09.cpp => TestHPX_IndependentInstancesDelayedExecution.cpp} (68%) rename packages/kokkos/core/unit_test/hpx/{TestHPX_SubView_a.cpp => TestHPX_IndependentInstancesInstanceIds.cpp} (51%) rename packages/kokkos/core/unit_test/hpx/{TestHPX_TeamScratch.cpp => TestHPX_IndependentInstancesRefCounting.cpp} (62%) delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_Init.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_LocalDeepCopy.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_MDRange_a.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_MDRange_b.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_MDRange_c.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_MDRange_d.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_MDRange_e.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_Other.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_RangePolicy.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_RangePolicyRequire.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_Reducers_a.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_Reducers_b.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_Reducers_c.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_Reducers_d.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_Reductions.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_Reductions_DeviceView.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_Scan.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_SubView_b.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c02.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c03.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c04.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c05.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c06.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c07.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c08.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c10.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c12.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c13.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c_all.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_Team.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_TeamReductionScan.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_TeamTeamSize.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_TeamVectorRange.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_UniqueToken.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_ViewAPI_a.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_ViewAPI_b.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_ViewAPI_c.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_ViewAPI_d.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_ViewAPI_e.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_ViewLayoutStrideAssignment.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_ViewMapping_a.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_ViewMapping_b.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_ViewMapping_subview.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_ViewOfClass.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_ViewResize.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_View_64bit.cpp delete mode 100644 packages/kokkos/core/unit_test/hpx/TestHPX_WorkGraph.cpp create mode 100644 packages/kokkos/core/unit_test/incremental/Test14_MDRangeReduce.hpp rename packages/kokkos/{algorithms/unit_tests/TestROCm.cpp => core/unit_test/incremental/Test16_ParallelScan.hpp} (61%) create mode 100644 packages/kokkos/core/unit_test/incremental/Test17_CompleteAtomic.hpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_AtomicOperations_complexdouble.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_AtomicOperations_complexfloat.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_AtomicOperations_double.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_AtomicOperations_float.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_AtomicOperations_int.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_AtomicOperations_longint.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_AtomicOperations_longlongint.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_AtomicOperations_unsignedint.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_AtomicOperations_unsignedlongint.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_AtomicViews.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_Atomics.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_Complex.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_Concepts.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_Crs.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_DeepCopyAlignment.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_FunctorAnalysis.cpp rename packages/kokkos/core/unit_test/openmp/{TestOpenMP_RangePolicy.cpp => TestOpenMP_Graph.cpp} (98%) delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_Init.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_LocalDeepCopy.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_MDRange_a.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_MDRange_b.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_MDRange_c.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_MDRange_d.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_MDRange_e.cpp rename packages/kokkos/core/unit_test/openmp/{TestOpenMP_Other.cpp => TestOpenMP_PartitionMaster.cpp} (86%) delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_RangePolicyRequire.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_Reducers_a.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_Reducers_b.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_Reducers_c.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_Reducers_d.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_Reductions_DeviceView.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_Scan.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_SharedAlloc.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_a.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_b.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c01.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c02.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c03.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c04.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c05.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c06.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c07.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c08.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c09.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c10.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c11.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c12.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c13.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c_all.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_Team.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_TeamReductionScan.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_TeamScratch.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_TeamTeamSize.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_TeamVectorRange.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_UniqueToken.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewAPI_a.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewAPI_b.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewAPI_c.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewAPI_d.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewAPI_e.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewLayoutStrideAssignment.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewMapping_a.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewMapping_b.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewMapping_subview.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewOfClass.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewResize.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_View_64bit.cpp delete mode 100644 packages/kokkos/core/unit_test/openmp/TestOpenMP_WorkGraph.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_AtomicOperations_complexdouble.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_AtomicOperations_complexfloat.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_AtomicOperations_double.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_AtomicOperations_float.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_AtomicOperations_int.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_AtomicOperations_longint.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_AtomicOperations_longlongint.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_AtomicOperations_unsignedint.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_AtomicOperations_unsignedlongint.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_AtomicViews.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Atomics.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Complex.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Concepts.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Crs.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_DeepCopyAlignment.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_FunctorAnalysis.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Init.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_LocalDeepCopy.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_MDRange_a.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_MDRange_b.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_MDRange_c.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_MDRange_d.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_MDRange_e.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Other.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_RangePolicy.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_RangePolicyRequire.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Reducers_a.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Reducers_b.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Reducers_c.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Reducers_d.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Reductions.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Reductions_DeviceView.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Scan.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SharedAlloc.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_a.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_b.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c01.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c02.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c03.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c04.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c05.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c06.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c07.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c08.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c09.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c10.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c11.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c12.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c13.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Team.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_TeamReductionScan.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_TeamScratch.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_TeamTeamSize.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_TeamVectorRange.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_UniqueToken.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewAPI_a.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewAPI_b.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewAPI_c.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewAPI_d.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewAPI_e.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewLayoutStrideAssignment.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewMapping_a.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewMapping_b.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewMapping_subview.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewOfClass.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewResize.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_View_64bit.cpp delete mode 100644 packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_WorkGraph.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_SharedAlloc.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_ViewAPI_a.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_ViewAPI_b.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_ViewAPI_c.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_ViewAPI_d.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_ViewAPI_e.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_ViewCopy.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_ViewMapping_a.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_ViewMapping_b.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_ViewMapping_subview.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_View_64bit.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_All.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_AtomicOperations_double.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_AtomicOperations_float.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_AtomicOperations_int.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_AtomicOperations_longint.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_AtomicOperations_longlongint.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_AtomicOperations_unsignedint.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_AtomicOperations_unsignedlongint.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_AtomicViews.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_Atomics.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_Complex.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_Crs.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_DeepCopyAlignment.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_Init.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_MDRangeReduce_a.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_MDRangeReduce_b.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_MDRangeReduce_d.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_MDRangeReduce_e.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_MDRange_a.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_MDRange_b.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_MDRange_c.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_MDRange_d.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_MDRange_e.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_Other.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_RangePolicy.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_Reducers_a.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_Reducers_b.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_Reducers_c.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_Reducers_d.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_Reductions.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_Scan.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_SharedAlloc.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_Spaces.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_SubView_a.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_SubView_b.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c01.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c02.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c03.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c04.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c05.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c06.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c07.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c08.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c09.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c10.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c11.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c12.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c13.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_Team.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_TeamReductionScan.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_TeamTeamSize.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_ViewAPI_a.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_ViewAPI_b.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_ViewAPI_c.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_ViewAPI_d.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_ViewAPI_e.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_ViewMapping_a.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_ViewMapping_b.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_ViewMapping_subview.cpp delete mode 100644 packages/kokkos/core/unit_test/rocm/TestROCm_ViewOfClass.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_AtomicOperations_complexdouble.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_AtomicOperations_complexfloat.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_AtomicOperations_double.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_AtomicOperations_float.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_AtomicOperations_int.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_AtomicOperations_longint.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_AtomicOperations_longlongint.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_AtomicOperations_unsignedint.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_AtomicOperations_unsignedlongint.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_AtomicViews.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_Atomics.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_Complex.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_Concepts.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_Crs.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_DeepCopyAlignment.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_FunctorAnalysis.cpp rename packages/kokkos/core/unit_test/serial/{TestSerial_RangePolicy.cpp => TestSerial_Graph.cpp} (98%) delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_Init.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_LocalDeepCopy.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_MDRange_a.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_MDRange_b.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_MDRange_c.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_MDRange_d.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_MDRange_e.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_Other.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_RangePolicyRequire.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_Reducers_a.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_Reducers_b.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_Reducers_c.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_Reducers_d.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_Reductions.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_Reductions_DeviceView.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_Scan.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_SharedAlloc.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_SubView_a.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_SubView_b.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_SubView_c01.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_SubView_c02.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_SubView_c03.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_SubView_c04.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_SubView_c05.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_SubView_c06.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_SubView_c07.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_SubView_c08.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_SubView_c09.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_SubView_c10.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_SubView_c11.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_SubView_c12.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_SubView_c13.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_SubView_c_all.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_Team.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_TeamReductionScan.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_TeamScratch.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_TeamTeamSize.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_TeamVectorRange.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_UniqueToken.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_ViewAPI_a.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_ViewAPI_b.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_ViewAPI_c.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_ViewAPI_d.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_ViewAPI_e.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_ViewLayoutStrideAssignment.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_ViewMapping_a.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_ViewMapping_b.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_ViewMapping_subview.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_ViewOfClass.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_ViewResize.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_View_64bit.cpp delete mode 100644 packages/kokkos/core/unit_test/serial/TestSerial_WorkGraph.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_AtomicOperations_complexdouble.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_AtomicOperations_complexfloat.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_AtomicOperations_double.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_AtomicOperations_float.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_AtomicOperations_int.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_AtomicOperations_longint.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_AtomicOperations_longlongint.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_AtomicOperations_unsignedint.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_AtomicOperations_unsignedlongint.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_AtomicViews.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_Atomics.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_Complex.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_Concepts.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_Crs.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_DeepCopyAlignment.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_FunctorAnalysis.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_Init.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_LocalDeepCopy.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_MDRange_a.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_MDRange_b.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_MDRange_c.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_MDRange_d.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_MDRange_e.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_Other.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_RangePolicy.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_RangePolicyRequire.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_Reducers_a.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_Reducers_b.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_Reducers_c.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_Reducers_d.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_Reductions.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_Reductions_DeviceView.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_Scan.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_SharedAlloc.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_SubView_a.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_SubView_b.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_SubView_c01.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_SubView_c02.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_SubView_c03.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_SubView_c04.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_SubView_c05.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_SubView_c06.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_SubView_c07.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_SubView_c08.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_SubView_c09.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_SubView_c10.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_SubView_c11.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_SubView_c12.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_SubView_c13.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_Team.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_TeamReductionScan.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_TeamTeamSize.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_TeamVectorRange.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_UniqueToken.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_ViewAPI_a.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_ViewAPI_b.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_ViewAPI_c.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_ViewAPI_d.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_ViewAPI_e.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_ViewLayoutStrideAssignment.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_ViewMapping_a.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_ViewMapping_b.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_ViewMapping_subview.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_ViewOfClass.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_ViewResize.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_View_64bit.cpp delete mode 100644 packages/kokkos/core/unit_test/threads/TestThreads_WorkGraph.cpp rename packages/kokkos/core/{src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp => unit_test/tools/TestAllCalls.cpp} (50%) create mode 100644 packages/kokkos/core/unit_test/tools/TestCInterface.c rename packages/kokkos/core/unit_test/{cuda/TestCuda_FunctorAnalysis.cpp => tools/TestLogicalSpaces.cpp} (94%) create mode 100644 packages/kokkos/core/unit_test/tools/TestLogicalSpaces.hpp create mode 100644 packages/kokkos/core/unit_test/tools/TestTuning.cpp create mode 100644 packages/kokkos/core/unit_test/tools/printing-tool.cpp create mode 100644 packages/kokkos/doc/TuningDesign.md delete mode 100644 packages/kokkos/example/build_cmake_in_tree/foo.f create mode 100644 packages/kokkos/scripts/docker/Dockerfile.kokkosllvmproject create mode 100644 packages/kokkos/scripts/docker/Dockerfile.openmptarget create mode 100644 packages/kokkos/scripts/docker/Dockerfile.sycl delete mode 100755 packages/kokkos/scripts/eti/generate_view_copy_cpp_files delete mode 100755 packages/kokkos/scripts/eti/generate_view_copy_cpp_files_iterate delete mode 100755 packages/kokkos/scripts/eti/generate_view_copy_cpp_files_rank delete mode 100755 packages/kokkos/scripts/eti/generate_view_copy_cpp_files_write create mode 100644 packages/kokkos/tpls/.clang-format diff --git a/packages/kokkos/.clang-tidy b/packages/kokkos/.clang-tidy new file mode 100644 index 000000000..207a105c5 --- /dev/null +++ b/packages/kokkos/.clang-tidy @@ -0,0 +1,3 @@ +Checks: '-*,kokkos-*,modernize-use-using,modernize-use-nullptr' +FormatStyle: file +HeaderFilterRegex: '.*/*.hpp' diff --git a/packages/kokkos/.gitignore b/packages/kokkos/.gitignore index d67eb0f8f..ec6f3487c 100644 --- a/packages/kokkos/.gitignore +++ b/packages/kokkos/.gitignore @@ -11,3 +11,4 @@ testing/ /.vs /out/build /CMakeSettings.json +/out/mytest diff --git a/packages/kokkos/.gitrepo b/packages/kokkos/.gitrepo index d9131b0c8..deecc77ed 100644 --- a/packages/kokkos/.gitrepo +++ b/packages/kokkos/.gitrepo @@ -6,7 +6,7 @@ [subrepo] remote = git@github.com:kokkos/kokkos.git branch = master - commit = 953d7968e8fc5908af954f883e2e38d02c279cf2 + commit = 1fb0c284d458c75370094921d9f202c287502325 parent = 55da1f845ac4f9ea049f2d6a97c7edef95a887ab - cmdver = 0.4.1 + cmdver = 0.4.3 method = merge diff --git a/packages/kokkos/.jenkins b/packages/kokkos/.jenkins index c23bd8ac1..889abe33f 100644 --- a/packages/kokkos/.jenkins +++ b/packages/kokkos/.jenkins @@ -7,33 +7,84 @@ pipeline { CCACHE_CPP2 = 'true' } stages { + stage('Clang-Format') { + agent { + dockerfile { + filename 'Dockerfile.clang' + dir 'scripts/docker' + label 'nvidia-docker || docker' + args '-v /tmp/ccache.kokkos:/tmp/ccache' + } + } + steps { + sh './scripts/docker/check_format_cpp.sh' + } + } + stage('Build') { parallel { - stage('HIP-3.1-HCC') { + stage('SYCL-OneAPI') { + agent { + dockerfile { + filename 'Dockerfile.sycl' + dir 'scripts/docker' + additionalBuildArgs '--build-arg BASE=intel/oneapi-basekit:devel-ubuntu18.04' + label 'docker' + args '-v /tmp/ccache.kokkos:/tmp/ccache' + } + } + steps { + sh 'ccache --zero-stats' + sh '''rm -rf build && mkdir -p build && cd build && \ + cmake \ + -DCMAKE_BUILD_TYPE=Debug \ + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ + -DCMAKE_CXX_COMPILER=clang++ \ + -DCMAKE_CXX_FLAGS="-Werror" \ + -DKokkos_ENABLE_COMPILER_WARNINGS=ON \ + -DKokkos_ENABLE_TESTS=ON \ + -DKokkos_ENABLE_SYCL=ON \ + -DCMAKE_CXX_STANDARD=17 \ + .. && \ + make -j8 && ctest --verbose''' + } + post { + always { + sh 'ccache --show-stats' + } + } + } + stage('HIP-ROCm-3.8-C++14') { agent { dockerfile { filename 'Dockerfile.hipcc' dir 'scripts/docker' - additionalBuildArgs '--pull --build-arg BASE=rocm/dev-ubuntu-18.04:3.1' + additionalBuildArgs '--build-arg BASE=rocm/dev-ubuntu-20.04:3.8' label 'rocm-docker && vega' - args '-v /tmp/ccache.kokkos:/tmp/ccache --device=/dev/kfd --device=/dev/dri --security-opt seccomp=unconfined --group-add video' + args '-v /tmp/ccache.kokkos:/tmp/ccache --device=/dev/kfd --device=/dev/dri --security-opt seccomp=unconfined --group-add video --env HIP_VISIBLE_DEVICES=$HIP_VISIBLE_DEVICES' } } + environment { + OMP_NUM_THREADS = 8 + OMP_PLACES = 'threads' + OMP_PROC_BIND = 'spread' + } steps { sh 'ccache --zero-stats' + sh 'echo "/opt/rocm/llvm/lib" > /etc/ld.so.conf.d/llvm.conf && ldconfig' sh '''rm -rf build && mkdir -p build && cd build && \ cmake \ -DCMAKE_BUILD_TYPE=Debug \ - -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -DCMAKE_CXX_COMPILER=hipcc \ - -DCMAKE_CXX_FLAGS="-Werror -Wno-unused-command-line-argument -Wno-braced-scalar-init" \ + -DCMAKE_CXX_FLAGS="-Werror -Wno-unused-command-line-argument -DNDEBUG" \ + -DCMAKE_CXX_STANDARD=14 \ -DKokkos_ENABLE_COMPILER_WARNINGS=ON \ -DKokkos_ENABLE_TESTS=ON \ -DKokkos_ENABLE_HIP=ON \ - -DKokkos_ENABLE_LIBDL=OFF \ - -DKokkos_ENABLE_PROFILING=OFF \ + -DKokkos_ARCH_VEGA906=ON \ + -DKokkos_ENABLE_OPENMP=ON \ .. && \ - make -j8 && ctest --output-on-failure''' + make -j8 && ctest --verbose''' } post { always { @@ -41,31 +92,61 @@ pipeline { } } } - stage('CUDA-9.2-Clang') { + stage('HIP-ROCm-3.8-C++17') { agent { dockerfile { - filename 'Dockerfile.clang' + filename 'Dockerfile.hipcc' + dir 'scripts/docker' + additionalBuildArgs '--build-arg BASE=rocm/dev-ubuntu-20.04:3.8' + label 'rocm-docker && vega' + args '-v /tmp/ccache.kokkos:/tmp/ccache --device=/dev/kfd --device=/dev/dri --security-opt seccomp=unconfined --group-add video --env HIP_VISIBLE_DEVICES=$HIP_VISIBLE_DEVICES' + } + } + steps { + sh 'ccache --zero-stats' + sh '''rm -rf build && mkdir -p build && cd build && \ + cmake \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DCMAKE_CXX_COMPILER=hipcc \ + -DCMAKE_CXX_FLAGS="-Werror -Wno-unused-command-line-argument" \ + -DCMAKE_CXX_STANDARD=17 \ + -DKokkos_ENABLE_COMPILER_WARNINGS=ON \ + -DKokkos_ENABLE_TESTS=ON \ + -DKokkos_ENABLE_HIP=ON \ + -DKokkos_ARCH_VEGA906=ON \ + .. && \ + make -j8 && ctest --verbose''' + } + post { + always { + sh 'ccache --show-stats' + } + } + } + stage('OPENMPTARGET-Clang') { + agent { + dockerfile { + filename 'Dockerfile.openmptarget' dir 'scripts/docker' - additionalBuildArgs '--pull' label 'nvidia-docker && volta' - args '-v /tmp/ccache.kokkos:/tmp/ccache' + args '-v /tmp/ccache.kokkos:/tmp/ccache --env NVIDIA_VISIBLE_DEVICES=$NVIDIA_VISIBLE_DEVICES' } } steps { sh 'ccache --zero-stats' sh '''rm -rf build && mkdir -p build && cd build && \ cmake \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ + -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_CXX_COMPILER=clang++ \ - -DCMAKE_CXX_FLAGS=-Werror \ + -DCMAKE_CXX_FLAGS="-Wno-unknown-cuda-version -Werror" \ -DKokkos_ENABLE_COMPILER_WARNINGS=ON \ -DKokkos_ENABLE_TESTS=ON \ - -DKokkos_ENABLE_CUDA=ON \ - -DKokkos_ENABLE_CUDA_LAMBDA=ON \ + -DKokkos_ENABLE_TUNING=ON \ + -DKokkos_ENABLE_OPENMPTARGET=ON \ -DKokkos_ARCH_VOLTA70=ON \ + -DCMAKE_CXX_STANDARD=17 \ .. && \ - make -j8 && ctest --output-on-failure''' + make -j8 && ctest --verbose''' } post { always { @@ -73,14 +154,13 @@ pipeline { } } } - stage('CUDA-9.2-NVCC') { + stage('CUDA-10.1-Clang-Tidy') { agent { dockerfile { - filename 'Dockerfile.nvcc' + filename 'Dockerfile.kokkosllvmproject' dir 'scripts/docker' - additionalBuildArgs '--pull --build-arg BASE=nvidia/cuda:9.2-devel' label 'nvidia-docker && volta' - args '-v /tmp/ccache.kokkos:/tmp/ccache' + args '-v /tmp/ccache.kokkos:/tmp/ccache --env NVIDIA_VISIBLE_DEVICES=$NVIDIA_VISIBLE_DEVICES' } } steps { @@ -88,16 +168,19 @@ pipeline { sh '''rm -rf build && mkdir -p build && cd build && \ cmake \ -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_CXX_CLANG_TIDY="clang-tidy;-warnings-as-errors=*" \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ - -DCMAKE_CXX_COMPILER=$WORKSPACE/bin/nvcc_wrapper \ + -DCMAKE_CXX_COMPILER=clang++ \ -DCMAKE_CXX_FLAGS=-Werror \ + -DCMAKE_CXX_STANDARD=14 \ -DKokkos_ENABLE_COMPILER_WARNINGS=ON \ -DKokkos_ENABLE_TESTS=ON \ -DKokkos_ENABLE_CUDA=ON \ -DKokkos_ENABLE_CUDA_LAMBDA=ON \ + -DKokkos_ENABLE_TUNING=ON \ -DKokkos_ARCH_VOLTA70=ON \ .. && \ - make -j8 && ctest --output-on-failure''' + make -j8 && ctest --verbose''' } post { always { @@ -105,34 +188,90 @@ pipeline { } } } - stage('CUDA-10.1-NVCC-RDC') { + stage('CUDA-9.2-NVCC') { agent { dockerfile { filename 'Dockerfile.nvcc' dir 'scripts/docker' - additionalBuildArgs '--pull --build-arg BASE=nvidia/cuda:10.1-devel' + additionalBuildArgs '--build-arg BASE=nvidia/cuda:9.2-devel' label 'nvidia-docker && volta' - args '-v /tmp/ccache.kokkos:/tmp/ccache' + args '-v /tmp/ccache.kokkos:/tmp/ccache --env NVIDIA_VISIBLE_DEVICES=$NVIDIA_VISIBLE_DEVICES' } } steps { sh 'ccache --zero-stats' sh '''rm -rf build && mkdir -p build && cd build && \ + ../gnu_generate_makefile.bash \ + --with-options=compiler_warnings \ + --cxxflags="-Werror" \ + --cxxstandard=c++14 \ + --with-cuda \ + --with-cuda-options=enable_lambda \ + --arch=Volta70 \ + .. && \ + make test -j8''' + } + post { + always { + sh 'ccache --show-stats' + } + } + } + stage('CUDA-11.0-NVCC-C++17-RDC') { + agent { + dockerfile { + filename 'Dockerfile.nvcc' + dir 'scripts/docker' + additionalBuildArgs '--build-arg BASE=nvidia/cuda:11.0-devel --build-arg ADDITIONAL_PACKAGES="g++-8 gfortran" --build-arg CMAKE_VERSION=3.17.3' + label 'nvidia-docker && volta' + args '-v /tmp/ccache.kokkos:/tmp/ccache --env NVIDIA_VISIBLE_DEVICES=$NVIDIA_VISIBLE_DEVICES' + } + } + environment { + OMP_NUM_THREADS = 8 + OMP_PLACES = 'threads' + OMP_PROC_BIND = 'spread' + NVCC_WRAPPER_DEFAULT_COMPILER = 'g++-8' + } + steps { + sh 'ccache --zero-stats' + sh '''rm -rf install && mkdir -p install && \ + rm -rf build && mkdir -p build && cd build && \ cmake \ -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ - -DCMAKE_CXX_COMPILER=$WORKSPACE/bin/nvcc_wrapper \ + -DCMAKE_CXX_COMPILER=g++-8 \ -DCMAKE_CXX_FLAGS=-Werror \ + -DCMAKE_CXX_STANDARD=17 \ -DKokkos_ENABLE_COMPILER_WARNINGS=ON \ - -DKokkos_ENABLE_TESTS=ON \ -DKokkos_ENABLE_OPENMP=ON \ -DKokkos_ENABLE_CUDA=ON \ - -DKokkos_ENABLE_CUDA_LAMBDA=ON \ + -DKokkos_ENABLE_CUDA_LAMBDA=OFF \ -DKokkos_ENABLE_CUDA_UVM=ON \ -DKokkos_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE=ON \ -DKokkos_ARCH_VOLTA70=ON \ + -DCMAKE_INSTALL_PREFIX=${PWD}/../install \ + .. && \ + make -j8 install && \ + cd .. && \ + rm -rf build-tests && mkdir -p build-tests && cd build-tests && \ + export CMAKE_PREFIX_PATH=${PWD}/../install && \ + cmake \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ + -DCMAKE_CXX_COMPILER=$WORKSPACE/bin/nvcc_wrapper \ + -DCMAKE_CXX_FLAGS=-Werror \ + -DCMAKE_CXX_STANDARD=17 \ + -DKokkos_INSTALL_TESTING=ON \ + .. && \ + make -j8 && ctest --verbose && \ + cd ../example/build_cmake_installed && \ + rm -rf build && mkdir -p build && cd build && \ + cmake \ + -DCMAKE_CXX_COMPILER=g++-8 \ + -DCMAKE_CXX_FLAGS=-Werror \ + -DCMAKE_CXX_STANDARD=17 \ .. && \ - make -j8 && ctest --output-on-failure''' + make -j8 && ctest --verbose''' } post { always { @@ -145,9 +284,9 @@ pipeline { dockerfile { filename 'Dockerfile.nvcc' dir 'scripts/docker' - additionalBuildArgs '--pull --build-arg BASE=nvidia/cuda:10.1-devel --build-arg CMAKE_VERSION=3.15.5' + additionalBuildArgs '--build-arg BASE=nvidia/cuda:10.1-devel --build-arg CMAKE_VERSION=3.15.5' label 'nvidia-docker && volta' - args '-v /tmp/ccache.kokkos:/tmp/ccache' + args '-v /tmp/ccache.kokkos:/tmp/ccache --env NVIDIA_VISIBLE_DEVICES=$NVIDIA_VISIBLE_DEVICES' } } steps { @@ -158,15 +297,19 @@ pipeline { -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -DCMAKE_CXX_COMPILER=$WORKSPACE/bin/nvcc_wrapper \ -DCMAKE_CXX_FLAGS=-Werror \ + -DCMAKE_CXX_STANDARD=14 \ -DKokkos_ENABLE_COMPILER_WARNINGS=ON \ -DKokkos_ENABLE_DEBUG=ON \ -DKokkos_ENABLE_DEBUG_BOUNDS_CHECK=ON \ -DKokkos_ENABLE_TESTS=ON \ -DKokkos_ENABLE_CUDA=ON \ -DKokkos_ENABLE_CUDA_LAMBDA=ON \ - -DKokkos_ARCH_VOLTA70=ON \ + -DKokkos_ENABLE_LIBDL=OFF \ .. && \ - make -j8 && ctest --output-on-failure''' + make -j8 && ctest --verbose && \ + cd ../example/build_cmake_in_tree && \ + rm -rf build && mkdir -p build && cd build && \ + cmake -DCMAKE_CXX_STANDARD=14 .. && make -j8 && ctest --verbose''' } post { always { @@ -174,44 +317,30 @@ pipeline { } } } - stage('GCC-4.8.4') { + stage('GCC-5.3.0') { agent { dockerfile { filename 'Dockerfile.gcc' dir 'scripts/docker' - additionalBuildArgs '--pull' label 'docker' } } environment { OMP_NUM_THREADS = 8 - OMP_PLACES = 'threads' - OMP_PROC_BIND = 'spread' + OMP_PROC_BIND = 'true' } steps { sh '''rm -rf build && mkdir -p build && cd build && \ cmake \ -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_CXX_STANDARD=14 \ -DCMAKE_CXX_FLAGS=-Werror \ -DKokkos_ENABLE_COMPILER_WARNINGS=ON \ -DKokkos_ENABLE_TESTS=ON \ -DKokkos_ENABLE_OPENMP=ON \ + -DKokkos_ENABLE_LIBDL=OFF \ .. && \ - make -j8 && ctest --output-on-failure''' - } - } - stage('Clang-Format') { - agent { - dockerfile { - filename 'Dockerfile.clang' - dir 'scripts/docker' - additionalBuildArgs '--pull' - label 'nvidia-docker || docker' - args '-v /tmp/ccache.kokkos:/tmp/ccache' - } - } - steps { - sh './scripts/docker/check_format_cpp.sh' + make -j8 && ctest --verbose && gcc -I$PWD/../core/src/ ../core/unit_test/tools/TestCInterface.c''' } } } diff --git a/packages/kokkos/.travis.yml b/packages/kokkos/.travis.yml index d1dca455b..d156e91ee 100644 --- a/packages/kokkos/.travis.yml +++ b/packages/kokkos/.travis.yml @@ -20,7 +20,7 @@ stages: jobs: include: - stage: canary - env: CMAKE_BUILD_TYPE=Release BACKEND="OPENMP" CXXFLAGS="-Werror" + env: CMAKE_BUILD_TYPE=Release BACKEND="OPENMP" os: linux branches: @@ -63,6 +63,7 @@ before_script: export HOMEBREW_NO_AUTO_UPDATE=1; brew ls --versions ccache > /dev/null || brew install ccache; export PATH=/usr/local/opt/ccache/libexec:$PATH; + export CXXFLAGS="${CXXFLAGS} -Wno-unused-command-line-argument"; if [[ ${BACKEND} == "OPENMP" ]]; then brew install libomp; fi fi - ccache -z @@ -84,6 +85,9 @@ script: pushd build && cmake .. ${BACKEND:+-DKokkos_ENABLE_${BACKEND}=On} + -DCMAKE_CXX_FLAGS="${CXXFLAGS} -Werror" + -DCMAKE_CXX_STANDARD=14 + -DKokkos_ENABLE_COMPILER_WARNINGS=ON -DKokkos_ENABLE_TESTS=On ${CMAKE_BUILD_TYPE:+-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}} && make VERBOSE=1 -j2 && diff --git a/packages/kokkos/BUILD.md b/packages/kokkos/BUILD.md index 63dbf7fdb..e1f0e3e47 100644 --- a/packages/kokkos/BUILD.md +++ b/packages/kokkos/BUILD.md @@ -10,56 +10,77 @@ for C++. Applications heavily leveraging Kokkos are strongly encouraged to use You can either use Kokkos as an installed package (encouraged) or use Kokkos in-tree in your project. Modern CMake is exceedingly simple at a high-level (with the devil in the details). Once Kokkos is installed In your `CMakeLists.txt` simply use: -```` +````cmake find_package(Kokkos REQUIRED) ```` Then for every executable or library in your project: -```` +````cmake target_link_libraries(myTarget Kokkos::kokkos) ```` That's it! There is no checking Kokkos preprocessor, compiler, or linker flags. Kokkos propagates all the necessary flags to your project. This means not only is linking to Kokkos easy, but Kokkos itself can actually configure compiler and linker flags for *your* -project. If building in-tree, there is no `find_package` and you link with `target_link_libraries(kokkos)`. +project. +When configuring your project just set: +````bash +> cmake ${srcdir} \ + -DKokkos_ROOT=${kokkos_install_prefix} \ + -DCMAKE_CXX_COMPILER=${compiler_used_to_build_kokkos} +```` +Note: You may need the following if using some versions of CMake (e.g. 3.12): +````cmake +cmake_policy(SET CMP0074 NEW) +```` +If building in-tree, there is no `find_package`. You can use `add_subdirectory(kokkos)` with the Kokkos source and again just link with `target_link_libraries(Kokkos::kokkos)`. +The examples in `examples/cmake_build_installed` and `examples/cmake_build_in_tree` can help get you started. ## Configuring CMake -A very basic installation is done with: -```` -cmake ${srcdir} \ +A very basic installation of Kokkos is done with: +````bash +> cmake ${srcdir} \ -DCMAKE_CXX_COMPILER=g++ \ - -DCMAKE_INSTALL_PREFIX=${my_install_folder} + -DCMAKE_INSTALL_PREFIX=${kokkos_install_folder} ```` which builds and installed a default Kokkos when you run `make install`. There are numerous device backends, options, and architecture-specific optimizations that can be configured, e.g. -```` -cmake ${srcdir} \ +````bash +> cmake ${srcdir} \ -DCMAKE_CXX_COMPILER=g++ \ - -DCMAKE_INSTALL_PREFIX=${my_install_folder} \ - -DKokkos_ENABLE_OPENMP=On + -DCMAKE_INSTALL_PREFIX=${kokkos_install_folder} \ + -DKokkos_ENABLE_OPENMP=ON ```` which activates the OpenMP backend. All of the options controlling device backends, options, architectures, and third-party libraries (TPLs) are given below. -## Platform-specific Problems +## Known Issues<a name="KnownIssues"></a> ### Cray * The Cray compiler wrappers do static linking by default. This seems to break the Kokkos build. You will likely need to set the environment variable `CRAYPE_LINK_TYPE=dynamic` in order to link correctly. Kokkos warns during configure if this is missing. * The Cray compiler identifies to CMake as Clang, but it sometimes has its own flags that differ from Clang. We try to include all exceptions, but flag errors may occur in which a Clang-specific flag is passed that the Cray compiler does not recognize. +### Fortran + +* In a mixed C++/Fortran code, CMake will use the C++ linker by default. If you override this behavior and use Fortran as the link language, the link may break because Kokkos adds linker flags expecting the linker to be C++. Prior to CMake 3.18, Kokkos has no way of detecting in downstream projects that the linker was changed to Fortran. From CMake 3.18, Kokkos can use generator expressions to avoid adding flags when the linker is not C++. Note: Kokkos will not add any linker flags in this Fortran case. The user will be entirely on their own to add the appropriate linker flags. + ## Spack An alternative to manually building with the CMake is to use the Spack package manager. -To do so, download the `kokkos-spack` git repo and add to the package list: -```` -spack repo add $path-to-kokkos-spack +Make sure you have downloaded [Spack](https://github.com/spack/spack). +The easiest way to configure the Spack environment is: +````bash +> source spack/share/spack/setup-env.sh ```` +with other scripts available for other shells. +You can display information about how to install packages with: +````bash +> spack info kokkos A basic installation would be done as: -```` -spack install kokkos +````bash +> spack install kokkos ```` Spack allows options and and compilers to be tuned in the install command. -```` -spack install kokkos@3.0 %gcc@7.3.0 +openmp +````bash +> spack install kokkos@3.0 %gcc@7.3.0 +openmp ```` This example illustrates the three most common parameters to Spack: * Variants: specified with, e.g. `+openmp`, this activates (or deactivates with, e.g. `~openmp`) certain options. @@ -67,17 +88,17 @@ This example illustrates the three most common parameters to Spack: * Compiler: a default compiler will be chosen if not specified, but an exact compiler version can be given with the `%`option. For a complete list of Kokkos options, run: +````bash +> spack info kokkos ```` -spack info kokkos -```` -More details can be found in the kokkos-spack repository [README](https://github.com/kokkos/kokkos-spack/blob/master/README.md). +More details can be found in the [Spack README](Spack.md) #### Spack Development Spack currently installs packages to a location determined by a unique hash. This hash name is not really "human readable". Generally, Spack usage should never really require you to reference the computer-generated unique install folder. If you must know, you can locate Spack Kokkos installations with: -```` -spack find -p kokkos ... +````bash +> spack find -p kokkos ... ```` where `...` is the unique spec identifying the particular Kokkos configuration and version. @@ -102,8 +123,14 @@ Device backends can be enabled by specifying `-DKokkos_ENABLE_X`. * Whether to build Pthread backend * BOOL Default: OFF * Kokkos_ENABLE_SERIAL - * Whether to build serial backend + * Whether to build serial backend * BOOL Default: ON +* Kokkos_ENABLE_HIP (Experimental) + * Whether to build HIP backend + * BOOL Default: OFF +* Kokkos_ENABLE_OPENMPTARGET (Experimental) + * Whether to build the OpenMP target backend + * BOOL Default: OFF ## Enable Options Options can be enabled by specifying `-DKokkos_ENABLE_X`. @@ -138,9 +165,6 @@ Options can be enabled by specifying `-DKokkos_ENABLE_X`. * Kokkos_ENABLE_DEBUG_DUALVIEW_MODIFY_CHECK * Debug check on dual views * BOOL Default: OFF -* Kokkos_ENABLE_DEPRECATED_CODE - * Whether to enable deprecated code - * BOOL Default: OFF * Kokkos_ENABLE_EXAMPLES * Whether to enable building examples * BOOL Default: OFF @@ -150,9 +174,6 @@ Options can be enabled by specifying `-DKokkos_ENABLE_X`. * Kokkos_ENABLE_LARGE_MEM_TESTS * Whether to perform extra large memory tests * BOOL_Default: OFF -* Kokkos_ENABLE_PROFILING - * Whether to create bindings for profiling tools - * BOOL Default: ON * Kokkos_ENABLE_PROFILING_LOAD_PRINT * Whether to print information about which profiling tools gotloaded * BOOL Default: OFF @@ -162,8 +183,8 @@ Options can be enabled by specifying `-DKokkos_ENABLE_X`. ## Other Options * Kokkos_CXX_STANDARD - * The C++ standard for Kokkos to use: c++11, c++14, c++17, or c++20. This should be given in CMake style as 11, 14, 17, or 20. - * STRING Default: 11 + * The C++ standard for Kokkos to use: c++14, c++17, or c++20. This should be given in CMake style as 14, 17, or 20. + * STRING Default: 14 ## Third-party Libraries (TPLs) The following options control enabling TPLs: @@ -235,8 +256,11 @@ Architecture-specific optimizations can be enabled by specifying `-DKokkos_ARCH_ * Kokkos_ARCH_BGQ * Whether to optimize for the BGQ architecture * BOOL Default: OFF -* Kokkos_ARCH_EPYC - * Whether to optimize for the EPYC architecture +* Kokkos_ARCH_ZEN + * Whether to optimize for the Zen architecture + * BOOL Default: OFF +* Kokkos_ARCH_ZEN2 + * Whether to optimize for the Zen2 architecture * BOOL Default: OFF * Kokkos_ARCH_HSW * Whether to optimize for the HSW architecture diff --git a/packages/kokkos/CHANGELOG.md b/packages/kokkos/CHANGELOG.md index 9595b03ff..c759181aa 100644 --- a/packages/kokkos/CHANGELOG.md +++ b/packages/kokkos/CHANGELOG.md @@ -1,6 +1,237 @@ # Change Log -## [3.1.1](https://github.com/kokkos/kokkos/tree/3.1.1) (2020-04-14) +## [3.3.01](https://github.com/kokkos/kokkos/tree/3.3.01) (2021-01-06) +[Full Changelog](https://github.com/kokkos/kokkos/compare/3.3.00...3.3.01) + +**Bug Fixes:** +- Fix severe performance bug in DualView which added memcpys for sync and modify [\#3693](https://github.com/kokkos/kokkos/issues/#3693) +- Fix performance bug in CUDA backend, where the cuda Cache config was not set correct. + +## [3.3.00](https://github.com/kokkos/kokkos/tree/3.3.00) (2020-12-16) +[Full Changelog](https://github.com/kokkos/kokkos/compare/3.2.01...3.3.00) + +**Features:** +- Require C++14 as minimum C++ standard. C++17 and C++20 are supported too. +- HIP backend is nearly feature complete. Kokkos Dynamic Task Graphs are missing. +- Major update for OpenMPTarget: many capabilities now work. For details contact us. +- Added DPC++/SYCL backend: primary capabilites are working. +- Added Kokkos Graph API analogous to CUDA Graphs. +- Added parallel_scan support with TeamThreadRange [\#3536](https://github.com/kokkos/kokkos/pull/#3536) +- Added Logical Memory Spaces [\#3546](https://github.com/kokkos/kokkos/pull/#3546) +- Added initial half precision support [\#3439](https://github.com/kokkos/kokkos/pull/#3439) +- Experimental feature: control cuda occupancy [\#3379](https://github.com/kokkos/kokkos/pull/#3379) + +**Implemented enhancements Backends and Archs:** +- Add a64fx and fujitsu Compiler support [\#3614](https://github.com/kokkos/kokkos/pull/#3614) +- Adding support for AMD gfx908 archictecture [\#3375](https://github.com/kokkos/kokkos/pull/#3375) +- SYCL parallel\_for MDRangePolicy [\#3583](https://github.com/kokkos/kokkos/pull/#3583) +- SYCL add parallel\_scan [\#3577](https://github.com/kokkos/kokkos/pull/#3577) +- SYCL custom reductions [\#3544](https://github.com/kokkos/kokkos/pull/#3544) +- SYCL Enable container unit tests [\#3550](https://github.com/kokkos/kokkos/pull/#3550) +- SYCL feature level 5 [\#3480](https://github.com/kokkos/kokkos/pull/#3480) +- SYCL Feature level 4 (parallel\_for) [\#3474](https://github.com/kokkos/kokkos/pull/#3474) +- SYCL feature level 3 [\#3451](https://github.com/kokkos/kokkos/pull/#3451) +- SYCL feature level 2 [\#3447](https://github.com/kokkos/kokkos/pull/#3447) +- OpenMPTarget: Hierarchial reduction for + operator on scalars [\#3504](https://github.com/kokkos/kokkos/pull/#3504) +- OpenMPTarget hierarchical [\#3411](https://github.com/kokkos/kokkos/pull/#3411) +- HIP Add Impl::atomic\_[store,load] [\#3440](https://github.com/kokkos/kokkos/pull/#3440) +- HIP enable global lock arrays [\#3418](https://github.com/kokkos/kokkos/pull/#3418) +- HIP Implement multiple occupancy paths for various HIP kernel launchers [\#3366](https://github.com/kokkos/kokkos/pull/#3366) + +**Implemented enhancements Policies:** +- MDRangePolicy: Let it be semiregular [\#3494](https://github.com/kokkos/kokkos/pull/#3494) +- MDRangePolicy: Check narrowing conversion in construction [\#3527](https://github.com/kokkos/kokkos/pull/#3527) +- MDRangePolicy: CombinedReducers support [\#3395](https://github.com/kokkos/kokkos/pull/#3395) +- Kokkos Graph: Interface and Default Implementation [\#3362](https://github.com/kokkos/kokkos/pull/#3362) +- Kokkos Graph: add Cuda Graph implementation [\#3369](https://github.com/kokkos/kokkos/pull/#3369) +- TeamPolicy: implemented autotuning of team sizes and vector lengths [\#3206](https://github.com/kokkos/kokkos/pull/#3206) +- RangePolicy: Initialize all data members in default constructor [\#3509](https://github.com/kokkos/kokkos/pull/#3509) + +**Implemented enhancements BuildSystem:** +- Auto-generate core test files for all backends [\#3488](https://github.com/kokkos/kokkos/pull/#3488) +- Avoid rewriting test files when calling cmake [\#3548](https://github.com/kokkos/kokkos/pull/#3548) +- RULE\_LAUNCH\_COMPILE and RULE\_LAUNCH\_LINK system for nvcc\_wrapper [\#3136](https://github.com/kokkos/kokkos/pull/#3136) +- Adding -include as a known argument to nvcc\_wrapper [\#3434](https://github.com/kokkos/kokkos/pull/#3434) +- Install hpcbind script [\#3402](https://github.com/kokkos/kokkos/pull/#3402) +- cmake/kokkos\_tribits.cmake: add parsing for args [\#3457](https://github.com/kokkos/kokkos/pull/#3457) + +**Implemented enhancements Tools:** +- Changed namespacing of Kokkos::Tools::Impl::Impl::tune\_policy [\#3455](https://github.com/kokkos/kokkos/pull/#3455) +- Delegate to an impl allocate/deallocate method to allow specifying a SpaceHandle for MemorySpaces [\#3530](https://github.com/kokkos/kokkos/pull/#3530) +- Use the Kokkos Profiling interface rather than the Impl interface [\#3518](https://github.com/kokkos/kokkos/pull/#3518) +- Runtime option for tuning [\#3459](https://github.com/kokkos/kokkos/pull/#3459) +- Dual View Tool Events [\#3326](https://github.com/kokkos/kokkos/pull/#3326) + +**Implemented enhancements Other:** +- Abort on errors instead of just printing [\#3528](https://github.com/kokkos/kokkos/pull/#3528) +- Enable C++14 macros unconditionally [\#3449](https://github.com/kokkos/kokkos/pull/#3449) +- Make ViewMapping trivially copyable [\#3436](https://github.com/kokkos/kokkos/pull/#3436) +- Rename struct ViewMapping to class [\#3435](https://github.com/kokkos/kokkos/pull/#3435) +- Replace enums in Kokkos\_ViewMapping.hpp (removes -Wextra) [\#3422](https://github.com/kokkos/kokkos/pull/#3422) +- Use bool for enums representing bools [\#3416](https://github.com/kokkos/kokkos/pull/#3416) +- Fence active instead of default execution space instances [\#3388](https://github.com/kokkos/kokkos/pull/#3388) +- Refactor parallel\_reduce fence usage [\#3359](https://github.com/kokkos/kokkos/pull/#3359) +- Moved Space EBO helpers to Kokkos\_EBO [\#3357](https://github.com/kokkos/kokkos/pull/#3357) +- Add remove\_cvref type trait [\#3340](https://github.com/kokkos/kokkos/pull/#3340) +- Adding identity type traits and update definition of identity\_t alias [\#3339](https://github.com/kokkos/kokkos/pull/#3339) +- Add is\_specialization\_of type trait [\#3338](https://github.com/kokkos/kokkos/pull/#3338) +- Make ScratchMemorySpace semi-regular [\#3309](https://github.com/kokkos/kokkos/pull/#3309) +- Optimize min/max atomics with early exit on no-op case [\#3265](https://github.com/kokkos/kokkos/pull/#3265) +- Refactor Backend Development [\#2941](https://github.com/kokkos/kokkos/pull/#2941) + +**Fixed bugs:** +- Fixup MDRangePolicy construction from Kokkos arrays [\#3591](https://github.com/kokkos/kokkos/pull/#3591) +- Add atomic functions for unsigned long long using gcc built-in [\#3588](https://github.com/kokkos/kokkos/pull/#3588) +- Fixup silent pointless comparison with zero in checked\_narrow\_cast (compiler workaround) [\#3566](https://github.com/kokkos/kokkos/pull/#3566) +- Fixes for ROCm 3.9 [\#3565](https://github.com/kokkos/kokkos/pull/#3565) +- Fix windows build issues which crept in for the CUDA build [\#3532](https://github.com/kokkos/kokkos/pull/#3532) +- HIP Fix atomics of large data types and clean up lock arrays [\#3529](https://github.com/kokkos/kokkos/pull/#3529) +- Pthreads fix exception resulting from 0 grain size [\#3510](https://github.com/kokkos/kokkos/pull/#3510) +- Fixup do not require atomic operation to be default constructible [\#3503](https://github.com/kokkos/kokkos/pull/#3503) +- Fix race condition in HIP backend [\#3467](https://github.com/kokkos/kokkos/pull/#3467) +- Replace KOKKOS\_DEBUG with KOKKOS\_ENABLE\_DEBUG [\#3458](https://github.com/kokkos/kokkos/pull/#3458) +- Fix multi-stream team scratch space definition for HIP [\#3398](https://github.com/kokkos/kokkos/pull/#3398) +- HIP fix template deduction [\#3393](https://github.com/kokkos/kokkos/pull/#3393) +- Fix compiling with HIP and C++17 [\#3390](https://github.com/kokkos/kokkos/pull/#3390) +- Fix sigFPE in HIP blocksize deduction [\#3378](https://github.com/kokkos/kokkos/pull/#3378) +- Type alias change: replace CS with CTS to avoid conflicts with NVSHMEM [\#3348](https://github.com/kokkos/kokkos/pull/#3348) +- Clang compilation of CUDA backend on Windows [\#3345](https://github.com/kokkos/kokkos/pull/#3345) +- Fix HBW support [\#3343](https://github.com/kokkos/kokkos/pull/#3343) +- Added missing fences to unique token [\#3260](https://github.com/kokkos/kokkos/pull/#3260) + +**Incompatibilities:** +- Remove unused utilities (forward, move, and expand\_variadic) from Kokkos::Impl [\#3535](https://github.com/kokkos/kokkos/pull/#3535) +- Remove unused traits [\#3534](https://github.com/kokkos/kokkos/pull/#3534) +- HIP: Remove old HCC code [\#3301](https://github.com/kokkos/kokkos/pull/#3301) +- Prepare for deprecation of ViewAllocateWithoutInitializing [\#3264](https://github.com/kokkos/kokkos/pull/#3264) +- Remove ROCm backend [\#3148](https://github.com/kokkos/kokkos/pull/#3148) + +## [3.2.01](https://github.com/kokkos/kokkos/tree/3.2.01) (2020-11-17) +[Full Changelog](https://github.com/kokkos/kokkos/compare/3.2.00...3.2.01) + +**Fixed bugs:** +- Disallow KOKKOS_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE in shared library builds [\#3332](https://github.com/kokkos/kokkos/pull/3332) +- Do not install libprinter-tool when testing is enabled [\#3313](https://github.com/kokkos/kokkos/pull/3313) +- Fix restrict/alignment following refactor [\#3373](https://github.com/kokkos/kokkos/pull/3373) + - Intel fix: workaround compiler issue with using statement [\#3383](https://github.com/kokkos/kokkos/pull/3383) +- Fix zero-length reductions [#\3364](https://github.com/kokkos/kokkos/pull/3364) + - Pthread zero-length reduction fix [\#3452](https://github.com/kokkos/kokkos/pull/3452) + - HPX zero-length reduction fix [\#3470](https://github.com/kokkos/kokkos/pull/3470) + - cuda/9.2 zero-length reduction fix [\#3580](https://github.com/kokkos/kokkos/pull/3580) +- Fix multi-stream scratch [#\3269](https://github.com/kokkos/kokkos/pull/3269) +- Guard KOKKOS_ALL_COMPILE_OPTIONS if Cuda is not enabled [\#3387](https://github.com/kokkos/kokkos/pull/3387) +- Do not include link flags for Fortran linkage [\#3384](https://github.com/kokkos/kokkos/pull/3384) +- Fix NVIDIA GPU arch macro with autodetection [\#3473](https://github.com/kokkos/kokkos/pull/3473) +- Fix libdl/test issues with Trilinos [\#3543](https://github.com/kokkos/kokkos/pull/3543) + - Register Pthread as Tribits option to be enabled with Trilinos [\#3558](https://github.com/kokkos/kokkos/pull/3558) + +**Implemented enhancements:** +- Separate Cuda timing-based tests into their own executable [\#3407](https://github.com/kokkos/kokkos/pull/3407) + +## [3.2.00](https://github.com/kokkos/kokkos/tree/3.2.00) (2020-08-19) +[Full Changelog](https://github.com/kokkos/kokkos/compare/3.1.01...3.2.00) + +**Implemented enhancements:** + +- HIP:Enable stream in HIP [\#3163](https://github.com/kokkos/kokkos/issues/3163) +- HIP:Add support for shuffle reduction for the HIP backend [\#3154](https://github.com/kokkos/kokkos/issues/3154) +- HIP:Add implementations of missing HIPHostPinnedSpace methods for LAMMPS [\#3137](https://github.com/kokkos/kokkos/issues/3137) +- HIP:Require HIP 3.5.0 or higher [\#3099](https://github.com/kokkos/kokkos/issues/3099) +- HIP:WorkGraphPolicy for HIP [\#3096](https://github.com/kokkos/kokkos/issues/3096) +- OpenMPTarget: Significant update to the new experimental backend. Requires C++17, works on Intel GPUs, reference counting fixes. [\#3169](https://github.com/kokkos/kokkos/issues/3169) +- Windows Cuda support [\#3018](https://github.com/kokkos/kokkos/issues/3018) +- Pass `-Wext-lambda-captures-this` to NVCC when support for `__host__ __device__` lambda is enabled from CUDA 11 [\#3241](https://github.com/kokkos/kokkos/issues/3241) +- Use explicit staging buffer for constant memory kernel launches and cleanup host/device synchronization [\#3234](https://github.com/kokkos/kokkos/issues/3234) +- Various fixup to policies including making TeamPolicy default constructible and making RangePolicy and TeamPolicy assignable: [\#3202](https://github.com/kokkos/kokkos/issues/3202) , [\#3203](https://github.com/kokkos/kokkos/issues/3203) , [\#3196](https://github.com/kokkos/kokkos/issues/3196) +- Annotations for `DefaultExectutionSpace` and `DefaultHostExectutionSpace` to use in static analysis [\#3189](https://github.com/kokkos/kokkos/issues/3189) +- Add documentation on using Spack to install Kokkos and developing packages that depend on Kokkos [\#3187](https://github.com/kokkos/kokkos/issues/3187) +- Add OpenMPTarget backend flags for NVC++ compiler [\#3185](https://github.com/kokkos/kokkos/issues/3185) +- Move deep\_copy/create\_mirror\_view on Experimental::OffsetView into Kokkos:: namespace [\#3166](https://github.com/kokkos/kokkos/issues/3166) +- Allow for larger block size in HIP [\#3165](https://github.com/kokkos/kokkos/issues/3165) +- View: Added names of Views to the different View initialize/free kernels [\#3159](https://github.com/kokkos/kokkos/issues/3159) +- Cuda: Caching cudaFunctorAttributes and whether L1/Shmem prefer was set [\#3151](https://github.com/kokkos/kokkos/issues/3151) +- BuildSystem: Improved performance in default configuration by defaulting to Release build [\#3131](https://github.com/kokkos/kokkos/issues/3131) +- Cuda: Update CUDA occupancy calculation [\#3124](https://github.com/kokkos/kokkos/issues/3124) +- Vector: Adding data() to Vector [\#3123](https://github.com/kokkos/kokkos/issues/3123) +- BuildSystem: Add CUDA Ampere configuration support [\#3122](https://github.com/kokkos/kokkos/issues/3122) +- General: Apply [[noreturn]] to Kokkos::abort when applicable [\#3106](https://github.com/kokkos/kokkos/issues/3106) +- TeamPolicy: Validate storage level argument passed to TeamPolicy::set\_scratch\_size() [\#3098](https://github.com/kokkos/kokkos/issues/3098) +- BuildSystem: Make kokkos\_has\_string() function in Makefile.kokkos case insensitive [\#3091](https://github.com/kokkos/kokkos/issues/3091) +- Modify KOKKOS\_FUNCTION macro for clang-tidy analysis [\#3087](https://github.com/kokkos/kokkos/issues/3087) +- Move allocation profiling to allocate/deallocate calls [\#3084](https://github.com/kokkos/kokkos/issues/3084) +- BuildSystem: FATAL\_ERROR when attempting in-source build [\#3082](https://github.com/kokkos/kokkos/issues/3082) +- Change enums in ScatterView to types [\#3076](https://github.com/kokkos/kokkos/issues/3076) +- HIP: Changes for new compiler/runtime [\#3067](https://github.com/kokkos/kokkos/issues/3067) +- Extract and use get\_gpu [\#3061](https://github.com/kokkos/kokkos/issues/3061) , [\#3048](https://github.com/kokkos/kokkos/issues/3048) +- Add is\_allocated to View-like containers [\#3059](https://github.com/kokkos/kokkos/issues/3059) +- Combined reducers for scalar references [\#3052](https://github.com/kokkos/kokkos/issues/3052) +- Add configurable capacity for UniqueToken [\#3051](https://github.com/kokkos/kokkos/issues/3051) +- Add installation testing [\#3034](https://github.com/kokkos/kokkos/issues/3034) +- HIP: Add UniqueToken [\#3020](https://github.com/kokkos/kokkos/issues/3020) +- Autodetect number of devices [\#3013](https://github.com/kokkos/kokkos/issues/3013) + + +**Fixed bugs:** + +- Check error code from `cudaStreamSynchronize` in CUDA fences [\#3255](https://github.com/kokkos/kokkos/issues/3255) +- Fix issue with C++ standard flags when using `nvcc\_wrapper` with PGI [\#3254](https://github.com/kokkos/kokkos/issues/3254) +- Add missing threadfence in lock-based atomics [\#3208](https://github.com/kokkos/kokkos/issues/3208) +- Fix dedup of linker flags for shared lib on CMake <=3.12 [\#3176](https://github.com/kokkos/kokkos/issues/3176) +- Fix memory leak with CUDA streams [\#3170](https://github.com/kokkos/kokkos/issues/3170) +- BuildSystem: Fix OpenMP Target flags for Cray [\#3161](https://github.com/kokkos/kokkos/issues/3161) +- ScatterView: fix for OpenmpTarget remove inheritance from reducers [\#3162](https://github.com/kokkos/kokkos/issues/3162) +- BuildSystem: Set OpenMP flags according to host compiler [\#3127](https://github.com/kokkos/kokkos/issues/3127) +- OpenMP: Fix logic for nested omp in partition\_master bug [\#3101](https://github.com/kokkos/kokkos/issues/3101) +- nvcc\_wrapper: send --cudart to nvcc instead of host compiler [\#3092](https://github.com/kokkos/kokkos/issues/3092) +- BuildSystem: Fixes for Cuda/11 and c++17 [\#3085](https://github.com/kokkos/kokkos/issues/3085) +- HIP: Fix print\_configuration [\#3080](https://github.com/kokkos/kokkos/issues/3080) +- Conditionally define get\_gpu [\#3072](https://github.com/kokkos/kokkos/issues/3072) +- Fix bounds for ranges in random number generator [\#3069](https://github.com/kokkos/kokkos/issues/3069) +- Fix Cuda minor arch check [\#3035](https://github.com/kokkos/kokkos/issues/3035) +- BuildSystem: Add -expt-relaxed-constexpr flag to nvcc\_wrapper [\#3021](https://github.com/kokkos/kokkos/issues/3021) + +**Incompatibilities:** + +- Remove ETI support [\#3157](https://github.com/kokkos/kokkos/issues/3157) +- Remove KOKKOS\_INTERNAL\_ENABLE\_NON\_CUDA\_BACKEND [\#3147](https://github.com/kokkos/kokkos/issues/3147) +- Remove core/unit\_test/config [\#3146](https://github.com/kokkos/kokkos/issues/3146) +- Removed the preprocessor branch for KOKKOS\_ENABLE\_PROFILING [\#3115](https://github.com/kokkos/kokkos/issues/3115) +- Disable profiling with MSVC [\#3066](https://github.com/kokkos/kokkos/issues/3066) + +**Closed issues:** + +- Silent error (Validate storage level arg to set_scratch_size) [\#3097](https://github.com/kokkos/kokkos/issues/3097) +- Remove KOKKKOS\_ENABLE\_PROFILING Option [\#3095](https://github.com/kokkos/kokkos/issues/3095) +- Cuda 11 -\> allow C++17 [\#3083](https://github.com/kokkos/kokkos/issues/3083) +- In source build failure not explained [\#3081](https://github.com/kokkos/kokkos/issues/3081) +- Allow naming of Views for initialization kernel [\#3070](https://github.com/kokkos/kokkos/issues/3070) +- DefaultInit tests failing when using CTest resource allocation feature [\#3040](https://github.com/kokkos/kokkos/issues/3040) +- Add installation testing. [\#3037](https://github.com/kokkos/kokkos/issues/3037) +- nvcc\_wrapper needs to handle `-expt-relaxed-constexpr` flag [\#3017](https://github.com/kokkos/kokkos/issues/3017) +- CPU core oversubscription warning on macOS with OpenMP backend [\#2996](https://github.com/kokkos/kokkos/issues/2996) +- Default behavior of KOKKOS\_NUM\_DEVICES to use all devices available [\#2975](https://github.com/kokkos/kokkos/issues/2975) +- Assert blocksize \> 0 [\#2974](https://github.com/kokkos/kokkos/issues/2974) +- Add ability to assign kokkos profile function from executable [\#2973](https://github.com/kokkos/kokkos/issues/2973) +- ScatterView Support for the pre/post increment operator [\#2967](https://github.com/kokkos/kokkos/issues/2967) + +- Compiler issue: Cuda build with clang 10 has errors with the atomic unit tests [\#3237](https://github.com/kokkos/kokkos/issues/3237) +- Incompatibility of flags for C++ standard with PGI v20.4 on Power9/NVIDIA V100 system [\#3252](https://github.com/kokkos/kokkos/issues/3252) +- Error configuring as subproject [\#3140](https://github.com/kokkos/kokkos/issues/3140) +- CMake fails with Nvidia compilers when the GPU architecture option is not supplied (Fix configure with OMPT and Cuda) [\#3207](https://github.com/kokkos/kokkos/issues/3207) +- PGI compiler being passed the gcc -fopenmp flag [\#3125](https://github.com/kokkos/kokkos/issues/3125) +- Cuda: Memory leak when using CUDA stream [\#3167](https://github.com/kokkos/kokkos/issues/3167) +- RangePolicy has an implicitly deleted assignment operator [\#3192](https://github.com/kokkos/kokkos/issues/3192) +- MemorySpace::allocate needs to have memory pool counting. [\#3064](https://github.com/kokkos/kokkos/issues/3064) +- Missing write fence for lock based atomics on CUDA [\#3038](https://github.com/kokkos/kokkos/issues/3038) +- CUDA compute capability version check problem [\#3026](https://github.com/kokkos/kokkos/issues/3026) +- Make DynRankView fencing consistent [\#3014](https://github.com/kokkos/kokkos/issues/3014) +- nvcc\_wrapper cant handle -Xcompiler -o out.o [\#2993](https://github.com/kokkos/kokkos/issues/2993) +- Reductions of non-trivial types of size 4 fail in CUDA shfl operations [\#2990](https://github.com/kokkos/kokkos/issues/2990) +- complex\_double misalignment in reduce, clang+CUDA [\#2989](https://github.com/kokkos/kokkos/issues/2989) +- Span of degenerated \(zero-length\) subviews is not zero in some special cases [\#2979](https://github.com/kokkos/kokkos/issues/2979) +- Rank 1 custom layouts dont work as expected. [\#2840](https://github.com/kokkos/kokkos/issues/2840) + +## [3.1.01](https://github.com/kokkos/kokkos/tree/3.1.1) (2020-04-14) [Full Changelog](https://github.com/kokkos/kokkos/compare/3.1.00...3.1.1) **Fixed bugs:** diff --git a/packages/kokkos/CMakeLists.txt b/packages/kokkos/CMakeLists.txt index 0e2aaa189..7bc3c7725 100644 --- a/packages/kokkos/CMakeLists.txt +++ b/packages/kokkos/CMakeLists.txt @@ -1,4 +1,9 @@ +# Disable in-source builds to prevent source tree corruption. +if( "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}" ) + message( FATAL_ERROR "FATAL: In-source builds are not allowed. You should create a separate directory for build files." ) +endif() + # We want to determine if options are given with the wrong case # In order to detect which arguments are given to compare against # the list of valid arguments, at the beginning here we need to @@ -34,6 +39,9 @@ IF(COMMAND TRIBITS_PACKAGE_DECL) ELSE() SET(KOKKOS_HAS_TRILINOS OFF) ENDIF() +# Is this build a subdirectory of another project +GET_DIRECTORY_PROPERTY(HAS_PARENT PARENT_DIRECTORY) + INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_functions.cmake) INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_pick_cxx_std.cmake) @@ -75,16 +83,17 @@ IF(NOT KOKKOS_HAS_TRILINOS) SET(CMAKE_CXX_COMPILER ${SPACK_CXX} CACHE STRING "the C++ compiler" FORCE) SET(ENV{CXX} ${SPACK_CXX}) ENDIF() - ENDif() - IF(NOT DEFINED ${PROJECT_NAME}) - # WORKAROUND FOR HIPCC - IF(Kokkos_ENABLE_HIP) - SET(KOKKOS_INTERNAL_CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --amdgpu-target=gfx906") - ENDIF() - PROJECT(Kokkos CXX) - IF(Kokkos_ENABLE_HIP) - SET(CMAKE_CXX_FLAGS ${KOKKOS_INTERNAL_CMAKE_CXX_FLAGS}) + ENDIF() + # Always call the project command to define Kokkos_ variables + # and to make sure that C++ is an enabled language + PROJECT(Kokkos CXX) + IF(NOT HAS_PARENT) + IF (NOT CMAKE_BUILD_TYPE) + SET(DEFAULT_BUILD_TYPE "RelWithDebInfo") + MESSAGE(STATUS "Setting build type to '${DEFAULT_BUILD_TYPE}' as none was specified.") + SET(CMAKE_BUILD_TYPE "${DEFAULT_BUILD_TYPE}" CACHE STRING + "Choose the type of build, options are: Debug, Release, RelWithDebInfo and MinSizeRel." + FORCE) ENDIF() ENDIF() ENDIF() @@ -102,7 +111,7 @@ ENDIF() set(Kokkos_VERSION_MAJOR 3) -set(Kokkos_VERSION_MINOR 1) +set(Kokkos_VERSION_MINOR 3) set(Kokkos_VERSION_PATCH 1) set(Kokkos_VERSION "${Kokkos_VERSION_MAJOR}.${Kokkos_VERSION_MINOR}.${Kokkos_VERSION_PATCH}") math(EXPR KOKKOS_VERSION "${Kokkos_VERSION_MAJOR} * 10000 + ${Kokkos_VERSION_MINOR} * 100 + ${Kokkos_VERSION_PATCH}") @@ -130,13 +139,15 @@ ENDIF() # I really wish these were regular variables # but scoping issues can make it difficult GLOBAL_SET(KOKKOS_COMPILE_OPTIONS) -GLOBAL_SET(KOKKOS_LINK_OPTIONS) +GLOBAL_SET(KOKKOS_LINK_OPTIONS -DKOKKOS_DEPENDENCE) GLOBAL_SET(KOKKOS_CUDA_OPTIONS) GLOBAL_SET(KOKKOS_CUDAFE_OPTIONS) GLOBAL_SET(KOKKOS_XCOMPILER_OPTIONS) # We need to append text here for making sure TPLs # we import are available for an installed Kokkos GLOBAL_SET(KOKKOS_TPL_EXPORTS) +# this could probably be scoped to project +GLOBAL_SET(KOKKOS_COMPILE_DEFINITIONS KOKKOS_DEPENDENCE) # Include a set of Kokkos-specific wrapper functions that # will either call raw CMake or TriBITS @@ -147,6 +158,7 @@ INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_tribits.cmake) # Check the environment and set certain variables # to allow platform-specific checks INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_check_env.cmake) + # The build environment setup goes in the following steps # 1) Check all the enable options. This includes checking Kokkos_DEVICES # 2) Check the compiler ID (type and version) @@ -169,7 +181,6 @@ SET(KOKKOS_EXT_LIBRARIES Kokkos::kokkos Kokkos::kokkoscore Kokkos::kokkoscontain SET(KOKKOS_INT_LIBRARIES kokkos kokkoscore kokkoscontainers kokkosalgorithms) SET_PROPERTY(GLOBAL PROPERTY KOKKOS_INT_LIBRARIES ${KOKKOS_INT_LIBRARIES}) -GET_DIRECTORY_PROPERTY(HAS_PARENT PARENT_DIRECTORY) IF (KOKKOS_HAS_TRILINOS) SET(TRILINOS_INCDIR ${CMAKE_INSTALL_PREFIX}/${${PROJECT_NAME}_INSTALL_INCLUDE_DIR}) SET(KOKKOS_HEADER_DIR ${TRILINOS_INCDIR}) @@ -182,8 +193,6 @@ ELSE() SET(KOKKOS_IS_SUBDIRECTORY FALSE) ENDIF() - - #------------------------------------------------------------------------------ # # A) Forward declare the package so that certain options are also defined for @@ -198,12 +207,14 @@ IF (KOKKOS_HAS_TRILINOS) # we have to match the annoying behavior STRING(REPLACE ";" " " KOKKOSCORE_COMPILE_OPTIONS "${KOKKOS_COMPILE_OPTIONS}") LIST(APPEND KOKKOS_ALL_COMPILE_OPTIONS ${KOKKOS_COMPILE_OPTIONS}) - LIST(APPEND KOKKOS_ALL_COMPILE_OPTIONS ${KOKKOS_CUDA_OPTIONS}) + IF (KOKKOS_ENABLE_CUDA) + LIST(APPEND KOKKOS_ALL_COMPILE_OPTIONS ${KOKKOS_CUDA_OPTIONS}) + ENDIF() FOREACH(XCOMP_FLAG ${KOKKOS_XCOMPILER_OPTIONS}) SET(KOKKOSCORE_XCOMPILER_OPTIONS "${KOKKOSCORE_XCOMPILER_OPTIONS} -Xcompiler ${XCOMP_FLAG}") LIST(APPEND KOKKOS_ALL_COMPILE_OPTIONS -Xcompiler ${XCOMP_FLAG}) ENDFOREACH() - SET(KOKKOSCORE_CXX_FLAGS "${KOKKOSCORE_COMPILE_OPTIONS} ${CMAKE_CXX${KOKKOS_CXX_STANDARD}_STANDARD_COMPILE_OPTION} ${KOKKOSCORE_XCOMPILER_OPTIONS}") + SET(KOKKOSCORE_CXX_FLAGS "${KOKKOSCORE_COMPILE_OPTIONS} ${KOKKOSCORE_XCOMPILER_OPTIONS}") IF (KOKKOS_ENABLE_CUDA) STRING(REPLACE ";" " " KOKKOSCORE_CUDA_OPTIONS "${KOKKOS_CUDA_OPTIONS}") FOREACH(CUDAFE_FLAG ${KOKKOS_CUDAFE_OPTIONS}) @@ -242,11 +253,9 @@ KOKKOS_PROCESS_SUBPACKAGES() KOKKOS_PACKAGE_DEF() KOKKOS_EXCLUDE_AUTOTOOLS_FILES() KOKKOS_PACKAGE_POSTPROCESS() +KOKKOS_CONFIGURE_CORE() -#We are ready to configure the header -CONFIGURE_FILE(cmake/KokkosCore_config.h.in KokkosCore_config.h @ONLY) - -IF (NOT KOKKOS_HAS_TRILINOS) +IF (NOT KOKKOS_HAS_TRILINOS AND NOT Kokkos_INSTALL_TESTING) ADD_LIBRARY(kokkos INTERFACE) #Make sure in-tree projects can reference this as Kokkos:: #to match the installed target names @@ -261,8 +270,9 @@ INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_install.cmake) # executables also need nvcc_wrapper. Thus, we need to install it. # If the argument of DESTINATION is a relative path, CMake computes it # as relative to ${CMAKE_INSTALL_PATH}. -INSTALL(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/bin/nvcc_wrapper DESTINATION ${CMAKE_INSTALL_BINDIR}) -INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/KokkosCore_config.h" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) +# KOKKOS_INSTALL_ADDITIONAL_FILES will install nvcc wrapper and other generated +# files +KOKKOS_INSTALL_ADDITIONAL_FILES() # Finally - if we are a subproject - make sure the enabled devices are visible diff --git a/packages/kokkos/Makefile.kokkos b/packages/kokkos/Makefile.kokkos index 320d398d9..3b6a5ff43 100644 --- a/packages/kokkos/Makefile.kokkos +++ b/packages/kokkos/Makefile.kokkos @@ -1,31 +1,29 @@ # Default settings common options. KOKKOS_VERSION_MAJOR = 3 -KOKKOS_VERSION_MINOR = 1 +KOKKOS_VERSION_MINOR = 3 KOKKOS_VERSION_PATCH = 1 KOKKOS_VERSION = $(shell echo $(KOKKOS_VERSION_MAJOR)*10000+$(KOKKOS_VERSION_MINOR)*100+$(KOKKOS_VERSION_PATCH) | bc) -# Options: Cuda,HIP,ROCm,OpenMP,Pthread,Serial +# Options: Cuda,HIP,OpenMP,Pthread,Serial #KOKKOS_DEVICES ?= "OpenMP" KOKKOS_DEVICES ?= "Pthread" # Options: # Intel: KNC,KNL,SNB,HSW,BDW,SKX -# NVIDIA: Kepler,Kepler30,Kepler32,Kepler35,Kepler37,Maxwell,Maxwell50,Maxwell52,Maxwell53,Pascal60,Pascal61,Volta70,Volta72,Turing75 -# ARM: ARMv80,ARMv81,ARMv8-ThunderX,ARMv8-TX2 +# NVIDIA: Kepler,Kepler30,Kepler32,Kepler35,Kepler37,Maxwell,Maxwell50,Maxwell52,Maxwell53,Pascal60,Pascal61,Volta70,Volta72,Turing75,Ampere80 +# ARM: ARMv80,ARMv81,ARMv8-ThunderX,ARMv8-TX2,A64FX # IBM: BGQ,Power7,Power8,Power9 -# AMD-GPUS: Vega900,Vega906 -# AMD-CPUS: AMDAVX,Ryzen,EPYC +# AMD-GPUS: Vega900,Vega906,Vega908 +# AMD-CPUS: AMDAVX,Zen,Zen2 KOKKOS_ARCH ?= "" # Options: yes,no KOKKOS_DEBUG ?= "no" # Options: hwloc,librt,experimental_memkind KOKKOS_USE_TPLS ?= "" -# Options: c++11,c++14,c++1y,c++17,c++1z,c++2a -KOKKOS_CXX_STANDARD ?= "c++11" -# Options: aggressive_vectorization,disable_profiling,enable_deprecated_code,disable_deprecated_code,enable_large_mem_tests,disable_complex_align +# Options: c++14,c++1y,c++17,c++1z,c++2a +KOKKOS_CXX_STANDARD ?= "c++14" +# Options: aggressive_vectorization,disable_profiling,enable_large_mem_tests,disable_complex_align KOKKOS_OPTIONS ?= "" -# Option for setting ETI path -KOKKOS_ETI_PATH ?= ${KOKKOS_PATH}/core/src/eti KOKKOS_CMAKE ?= "no" KOKKOS_TRIBITS ?= "no" KOKKOS_STANDALONE_CMAKE ?= "no" @@ -41,11 +39,15 @@ KOKKOS_HIP_OPTIONS ?= "" # Options: enable_async_dispatch KOKKOS_HPX_OPTIONS ?= "" +# Helper functions for conversion to upper case +uppercase_TABLE:=a,A b,B c,C d,D e,E f,F g,G h,H i,I j,J k,K l,L m,M n,N o,O p,P q,Q r,R s,S t,T u,U v,V w,W x,X y,Y z,Z +uppercase_internal=$(if $1,$$(subst $(firstword $1),$(call uppercase_internal,$(wordlist 2,$(words $1),$1),$2)),$2) +uppercase=$(eval uppercase_RESULT:=$(call uppercase_internal,$(uppercase_TABLE),$1))$(uppercase_RESULT) # Return a 1 if a string contains a substring and 0 if not # Note the search string should be without '"' # Example: $(call kokkos_has_string,"hwloc,librt",hwloc) # Will return a 1 -kokkos_has_string=$(if $(findstring $2,$1),1,0) +kokkos_has_string=$(if $(findstring $(call uppercase,$2),$(call uppercase,$1)),1,0) # Returns 1 if the path exists, 0 otherwise # Example: $(call kokkos_path_exists,/path/to/file) # Will return a 1 if /path/to/file exists @@ -54,12 +56,12 @@ kokkos_path_exists=$(if $(wildcard $1),1,0) # Check for general settings KOKKOS_INTERNAL_ENABLE_DEBUG := $(call kokkos_has_string,$(KOKKOS_DEBUG),yes) -KOKKOS_INTERNAL_ENABLE_CXX11 := $(call kokkos_has_string,$(KOKKOS_CXX_STANDARD),c++11) KOKKOS_INTERNAL_ENABLE_CXX14 := $(call kokkos_has_string,$(KOKKOS_CXX_STANDARD),c++14) KOKKOS_INTERNAL_ENABLE_CXX1Y := $(call kokkos_has_string,$(KOKKOS_CXX_STANDARD),c++1y) KOKKOS_INTERNAL_ENABLE_CXX17 := $(call kokkos_has_string,$(KOKKOS_CXX_STANDARD),c++17) KOKKOS_INTERNAL_ENABLE_CXX1Z := $(call kokkos_has_string,$(KOKKOS_CXX_STANDARD),c++1z) KOKKOS_INTERNAL_ENABLE_CXX2A := $(call kokkos_has_string,$(KOKKOS_CXX_STANDARD),c++2a) +KOKKOS_INTERNAL_ENABLE_CXX20 := $(call kokkos_has_string,$(KOKKOS_CXX_STANDARD),c++20) # Check for external libraries. KOKKOS_INTERNAL_USE_HWLOC := $(call kokkos_has_string,$(KOKKOS_USE_TPLS),hwloc) @@ -69,9 +71,7 @@ KOKKOS_INTERNAL_USE_MEMKIND := $(call kokkos_has_string,$(KOKKOS_USE_TPLS),exper # Check for advanced settings. KOKKOS_INTERNAL_ENABLE_COMPILER_WARNINGS := $(call kokkos_has_string,$(KOKKOS_OPTIONS),compiler_warnings) KOKKOS_INTERNAL_OPT_RANGE_AGGRESSIVE_VECTORIZATION := $(call kokkos_has_string,$(KOKKOS_OPTIONS),aggressive_vectorization) -KOKKOS_INTERNAL_DISABLE_PROFILING := $(call kokkos_has_string,$(KOKKOS_OPTIONS),disable_profiling) -KOKKOS_INTERNAL_DISABLE_DEPRECATED_CODE := $(call kokkos_has_string,$(KOKKOS_OPTIONS),disable_deprecated_code) -KOKKOS_INTERNAL_ENABLE_DEPRECATED_CODE := $(call kokkos_has_string,$(KOKKOS_OPTIONS),enable_deprecated_code) +KOKKOS_INTERNAL_ENABLE_TUNING := $(call kokkos_has_string,$(KOKKOS_OPTIONS),enable_tuning) KOKKOS_INTERNAL_DISABLE_COMPLEX_ALIGN := $(call kokkos_has_string,$(KOKKOS_OPTIONS),disable_complex_align) KOKKOS_INTERNAL_DISABLE_DUALVIEW_MODIFY_CHECK := $(call kokkos_has_string,$(KOKKOS_OPTIONS),disable_dualview_modify_check) KOKKOS_INTERNAL_ENABLE_PROFILING_LOAD_PRINT := $(call kokkos_has_string,$(KOKKOS_OPTIONS),enable_profile_load_print) @@ -82,7 +82,6 @@ KOKKOS_INTERNAL_CUDA_USE_RELOC := $(call kokkos_has_string,$(KOKKOS_CUDA_OPTIONS KOKKOS_INTERNAL_CUDA_USE_LAMBDA := $(call kokkos_has_string,$(KOKKOS_CUDA_OPTIONS),enable_lambda) KOKKOS_INTERNAL_CUDA_USE_CONSTEXPR := $(call kokkos_has_string,$(KOKKOS_CUDA_OPTIONS),enable_constexpr) KOKKOS_INTERNAL_HPX_ENABLE_ASYNC_DISPATCH := $(call kokkos_has_string,$(KOKKOS_HPX_OPTIONS),enable_async_dispatch) -KOKKOS_INTERNAL_ENABLE_ETI := $(call kokkos_has_string,$(KOKKOS_OPTIONS),enable_eti) KOKKOS_INTERNAL_HIP_USE_RELOC := $(call kokkos_has_string,$(KOKKOS_HIP_OPTIONS),rdc) @@ -126,6 +125,12 @@ ifeq ($(KOKKOS_INTERNAL_USE_HIP), 1) endif ifeq ($(KOKKOS_INTERNAL_USE_OPENMPTARGET), 1) KOKKOS_DEVICELIST += OPENMPTARGET + KOKKOS_INTERNAL_HAVE_CXX17_OR_NEWER := $(shell expr $(KOKKOS_INTERNAL_ENABLE_CXX17) \ + + $(KOKKOS_INTERNAL_ENABLE_CXX20) \ + + $(KOKKOS_INTERNAL_ENABLE_CXX2A)) + ifneq ($(KOKKOS_INTERNAL_HAVE_CXX17_OR_NEWER), 1) + $(error OpenMPTarget backend requires C++17 or newer) + endif endif ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1) @@ -263,14 +268,12 @@ else endif endif -# Set C++11 flags. +# Set C++ version flags. ifeq ($(KOKKOS_INTERNAL_COMPILER_PGI), 1) - KOKKOS_INTERNAL_CXX11_FLAG := --c++11 KOKKOS_INTERNAL_CXX14_FLAG := --c++14 - #KOKKOS_INTERNAL_CXX17_FLAG := --c++17 + KOKKOS_INTERNAL_CXX17_FLAG := --c++17 else ifeq ($(KOKKOS_INTERNAL_COMPILER_XL), 1) - KOKKOS_INTERNAL_CXX11_FLAG := -std=c++11 KOKKOS_INTERNAL_CXX14_FLAG := -std=c++14 KOKKOS_INTERNAL_CXX1Y_FLAG := -std=c++1y #KOKKOS_INTERNAL_CXX17_FLAG := -std=c++17 @@ -278,23 +281,17 @@ else #KOKKOS_INTERNAL_CXX2A_FLAG := -std=c++2a else ifeq ($(KOKKOS_INTERNAL_COMPILER_CRAY), 1) - KOKKOS_INTERNAL_CXX11_FLAG := -hstd=c++11 KOKKOS_INTERNAL_CXX14_FLAG := -hstd=c++14 #KOKKOS_INTERNAL_CXX1Y_FLAG := -hstd=c++1y #KOKKOS_INTERNAL_CXX17_FLAG := -hstd=c++17 #KOKKOS_INTERNAL_CXX1Z_FLAG := -hstd=c++1z #KOKKOS_INTERNAL_CXX2A_FLAG := -hstd=c++2a else - ifeq ($(KOKKOS_INTERNAL_COMPILER_HCC), 1) - KOKKOS_INTERNAL_CXX11_FLAG := - else - KOKKOS_INTERNAL_CXX11_FLAG := --std=c++11 - KOKKOS_INTERNAL_CXX14_FLAG := --std=c++14 - KOKKOS_INTERNAL_CXX1Y_FLAG := --std=c++1y - KOKKOS_INTERNAL_CXX17_FLAG := --std=c++17 - KOKKOS_INTERNAL_CXX1Z_FLAG := --std=c++1z - KOKKOS_INTERNAL_CXX2A_FLAG := --std=c++2a - endif + KOKKOS_INTERNAL_CXX14_FLAG := --std=c++14 + KOKKOS_INTERNAL_CXX1Y_FLAG := --std=c++1y + KOKKOS_INTERNAL_CXX17_FLAG := --std=c++17 + KOKKOS_INTERNAL_CXX1Z_FLAG := --std=c++1z + KOKKOS_INTERNAL_CXX2A_FLAG := --std=c++2a endif endif endif @@ -324,35 +321,27 @@ KOKKOS_INTERNAL_USE_ARCH_PASCAL60 := $(call kokkos_has_string,$(KOKKOS_ARCH),Pas KOKKOS_INTERNAL_USE_ARCH_VOLTA70 := $(call kokkos_has_string,$(KOKKOS_ARCH),Volta70) KOKKOS_INTERNAL_USE_ARCH_VOLTA72 := $(call kokkos_has_string,$(KOKKOS_ARCH),Volta72) KOKKOS_INTERNAL_USE_ARCH_TURING75 := $(call kokkos_has_string,$(KOKKOS_ARCH),Turing75) +KOKKOS_INTERNAL_USE_ARCH_AMPERE80 := $(call kokkos_has_string,$(KOKKOS_ARCH),Ampere80) KOKKOS_INTERNAL_USE_ARCH_NVIDIA := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_KEPLER30) \ + $(KOKKOS_INTERNAL_USE_ARCH_KEPLER32) \ + $(KOKKOS_INTERNAL_USE_ARCH_KEPLER35) \ + $(KOKKOS_INTERNAL_USE_ARCH_KEPLER37) \ - + $(KOKKOS_INTERNAL_USE_ARCH_PASCAL61) \ - + $(KOKKOS_INTERNAL_USE_ARCH_PASCAL60) \ - + $(KOKKOS_INTERNAL_USE_ARCH_VOLTA70) \ - + $(KOKKOS_INTERNAL_USE_ARCH_VOLTA72) \ - + $(KOKKOS_INTERNAL_USE_ARCH_TURING75) \ + $(KOKKOS_INTERNAL_USE_ARCH_MAXWELL50) \ + $(KOKKOS_INTERNAL_USE_ARCH_MAXWELL52) \ - + $(KOKKOS_INTERNAL_USE_ARCH_MAXWELL53)) + + $(KOKKOS_INTERNAL_USE_ARCH_MAXWELL53) \ + + $(KOKKOS_INTERNAL_USE_ARCH_PASCAL61) \ + + $(KOKKOS_INTERNAL_USE_ARCH_PASCAL60) \ + + $(KOKKOS_INTERNAL_USE_ARCH_VOLTA70) \ + + $(KOKKOS_INTERNAL_USE_ARCH_VOLTA72) \ + + $(KOKKOS_INTERNAL_USE_ARCH_TURING75) \ + + $(KOKKOS_INTERNAL_USE_ARCH_AMPERE80)) #SEK: This seems like a bug to me ifeq ($(KOKKOS_INTERNAL_USE_ARCH_NVIDIA), 0) KOKKOS_INTERNAL_USE_ARCH_MAXWELL50 := $(call kokkos_has_string,$(KOKKOS_ARCH),Maxwell) KOKKOS_INTERNAL_USE_ARCH_KEPLER35 := $(call kokkos_has_string,$(KOKKOS_ARCH),Kepler) - KOKKOS_INTERNAL_USE_ARCH_NVIDIA := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_KEPLER30) \ - + $(KOKKOS_INTERNAL_USE_ARCH_KEPLER32) \ - + $(KOKKOS_INTERNAL_USE_ARCH_KEPLER35) \ - + $(KOKKOS_INTERNAL_USE_ARCH_KEPLER37) \ - + $(KOKKOS_INTERNAL_USE_ARCH_PASCAL61) \ - + $(KOKKOS_INTERNAL_USE_ARCH_PASCAL60) \ - + $(KOKKOS_INTERNAL_USE_ARCH_VOLTA70) \ - + $(KOKKOS_INTERNAL_USE_ARCH_VOLTA72) \ - + $(KOKKOS_INTERNAL_USE_ARCH_TURING75) \ - + $(KOKKOS_INTERNAL_USE_ARCH_MAXWELL50) \ - + $(KOKKOS_INTERNAL_USE_ARCH_MAXWELL52) \ - + $(KOKKOS_INTERNAL_USE_ARCH_MAXWELL53)) + KOKKOS_INTERNAL_USE_ARCH_NVIDIA := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_KEPLER35) \ + + $(KOKKOS_INTERNAL_USE_ARCH_MAXWELL50)) endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_NVIDIA), 1) @@ -369,7 +358,8 @@ KOKKOS_INTERNAL_USE_ARCH_ARMV80 := $(call kokkos_has_string,$(KOKKOS_ARCH),ARMv8 KOKKOS_INTERNAL_USE_ARCH_ARMV81 := $(call kokkos_has_string,$(KOKKOS_ARCH),ARMv81) KOKKOS_INTERNAL_USE_ARCH_ARMV8_THUNDERX := $(call kokkos_has_string,$(KOKKOS_ARCH),ARMv8-ThunderX) KOKKOS_INTERNAL_USE_ARCH_ARMV8_THUNDERX2 := $(call kokkos_has_string,$(KOKKOS_ARCH),ARMv8-TX2) -KOKKOS_INTERNAL_USE_ARCH_ARM := $(strip $(shell echo $(KOKKOS_INTERNAL_USE_ARCH_ARMV80)+$(KOKKOS_INTERNAL_USE_ARCH_ARMV81)+$(KOKKOS_INTERNAL_USE_ARCH_ARMV8_THUNDERX)+$(KOKKOS_INTERNAL_USE_ARCH_ARMV8_THUNDERX2) | bc)) +KOKKOS_INTERNAL_USE_ARCH_A64FX := $(call kokkos_has_string,$(KOKKOS_ARCH),A64FX) +KOKKOS_INTERNAL_USE_ARCH_ARM := $(strip $(shell echo $(KOKKOS_INTERNAL_USE_ARCH_ARMV80)+$(KOKKOS_INTERNAL_USE_ARCH_ARMV81)+$(KOKKOS_INTERNAL_USE_ARCH_ARMV8_THUNDERX)+$(KOKKOS_INTERNAL_USE_ARCH_ARMV8_THUNDERX2)+$(KOKKOS_INTERNAL_USE_ARCH_A64FX) | bc)) # IBM based. KOKKOS_INTERNAL_USE_ARCH_BGQ := $(call kokkos_has_string,$(KOKKOS_ARCH),BGQ) @@ -380,20 +370,21 @@ KOKKOS_INTERNAL_USE_ARCH_IBM := $(strip $(shell echo $(KOKKOS_INTERNAL_USE_ARCH_ # AMD based. KOKKOS_INTERNAL_USE_ARCH_AMDAVX := $(call kokkos_has_string,$(KOKKOS_ARCH),AMDAVX) -KOKKOS_INTERNAL_USE_ARCH_RYZEN := $(call kokkos_has_string,$(KOKKOS_ARCH),Ryzen) -KOKKOS_INTERNAL_USE_ARCH_EPYC := $(call kokkos_has_string,$(KOKKOS_ARCH),EPYC) +KOKKOS_INTERNAL_USE_ARCH_ZEN2 := $(call kokkos_has_string,$(KOKKOS_ARCH),Zen2) +KOKKOS_INTERNAL_USE_ARCH_ZEN := $(call kokkos_has_string,$(KOKKOS_ARCH),Zen) KOKKOS_INTERNAL_USE_ARCH_VEGA900 := $(call kokkos_has_string,$(KOKKOS_ARCH),Vega900) KOKKOS_INTERNAL_USE_ARCH_VEGA906 := $(call kokkos_has_string,$(KOKKOS_ARCH),Vega906) +KOKKOS_INTERNAL_USE_ARCH_VEGA908 := $(call kokkos_has_string,$(KOKKOS_ARCH),Vega908) # Any AVX? KOKKOS_INTERNAL_USE_ARCH_SSE42 := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_WSM)) KOKKOS_INTERNAL_USE_ARCH_AVX := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_SNB) + $(KOKKOS_INTERNAL_USE_ARCH_AMDAVX)) -KOKKOS_INTERNAL_USE_ARCH_AVX2 := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_HSW) + $(KOKKOS_INTERNAL_USE_ARCH_BDW) + $(KOKKOS_INTERNAL_USE_ARCH_EPYC)) +KOKKOS_INTERNAL_USE_ARCH_AVX2 := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_HSW) + $(KOKKOS_INTERNAL_USE_ARCH_BDW) + $(KOKKOS_INTERNAL_USE_ARCH_ZEN) + $(KOKKOS_INTERNAL_USE_ARCH_ZEN2)) KOKKOS_INTERNAL_USE_ARCH_AVX512MIC := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_KNL)) KOKKOS_INTERNAL_USE_ARCH_AVX512XEON := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_SKX)) # Decide what ISA level we are able to support. -KOKKOS_INTERNAL_USE_ISA_X86_64 := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_WSM) + $(KOKKOS_INTERNAL_USE_ARCH_SNB) + $(KOKKOS_INTERNAL_USE_ARCH_HSW) + $(KOKKOS_INTERNAL_USE_ARCH_BDW) + $(KOKKOS_INTERNAL_USE_ARCH_KNL) + $(KOKKOS_INTERNAL_USE_ARCH_SKX) + $(KOKKOS_INTERNAL_USE_ARCH_EPYC)) +KOKKOS_INTERNAL_USE_ISA_X86_64 := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_WSM) + $(KOKKOS_INTERNAL_USE_ARCH_SNB) + $(KOKKOS_INTERNAL_USE_ARCH_HSW) + $(KOKKOS_INTERNAL_USE_ARCH_BDW) + $(KOKKOS_INTERNAL_USE_ARCH_KNL) + $(KOKKOS_INTERNAL_USE_ARCH_SKX) + $(KOKKOS_INTERNAL_USE_ARCH_ZEN) + $(KOKKOS_INTERNAL_USE_ARCH_ZEN2)) KOKKOS_INTERNAL_USE_ISA_KNC := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_KNC)) KOKKOS_INTERNAL_USE_ISA_POWERPCLE := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_POWER8) + $(KOKKOS_INTERNAL_USE_ARCH_POWER9)) KOKKOS_INTERNAL_USE_ISA_POWERPCBE := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_POWER7)) @@ -417,7 +408,7 @@ endif KOKKOS_CPPFLAGS = KOKKOS_LIBDIRS = ifneq ($(KOKKOS_CMAKE), yes) - KOKKOS_CPPFLAGS = -I./ -I$(KOKKOS_PATH)/core/src -I$(KOKKOS_PATH)/containers/src -I$(KOKKOS_PATH)/algorithms/src -I$(KOKKOS_ETI_PATH) + KOKKOS_CPPFLAGS = -I./ -I$(KOKKOS_PATH)/core/src -I$(KOKKOS_PATH)/containers/src -I$(KOKKOS_PATH)/algorithms/src endif KOKKOS_TPL_INCLUDE_DIRS = KOKKOS_TPL_LIBRARY_DIRS = @@ -445,124 +436,121 @@ KOKKOS_CONFIG_HEADER=KokkosCore_config.h # Functions for generating config header file kokkos_append_header = $(shell echo $1 >> $(KOKKOS_INTERNAL_CONFIG_TMP)) +# assign hash sign to variable for compat. with make 4.3 +H := \# + # Do not append first line tmp := $(shell echo "/* ---------------------------------------------" > KokkosCore_config.tmp) tmp := $(call kokkos_append_header,"Makefile constructed configuration:") -tmp := $(call kokkos_append_header,"$(shell date)") tmp := $(call kokkos_append_header,"----------------------------------------------*/") -tmp := $(call kokkos_append_header,'\#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H)') -tmp := $(call kokkos_append_header,'\#error "Do not include $(KOKKOS_CONFIG_HEADER) directly; include Kokkos_Macros.hpp instead."') -tmp := $(call kokkos_append_header,'\#else') -tmp := $(call kokkos_append_header,'\#define KOKKOS_CORE_CONFIG_H') -tmp := $(call kokkos_append_header,'\#endif') +tmp := $(call kokkos_append_header,'$H''if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H)') +tmp := $(call kokkos_append_header,'$H''error "Do not include $(KOKKOS_CONFIG_HEADER) directly; include Kokkos_Macros.hpp instead."') +tmp := $(call kokkos_append_header,'$H''else') +tmp := $(call kokkos_append_header,'$H''define KOKKOS_CORE_CONFIG_H') +tmp := $(call kokkos_append_header,'$H''endif') tmp := $(call kokkos_append_header,"") -tmp := $(call kokkos_append_header,"\#define KOKKOS_VERSION $(KOKKOS_VERSION)") +tmp := $(call kokkos_append_header,"$H""define KOKKOS_VERSION $(KOKKOS_VERSION)") tmp := $(call kokkos_append_header,"") tmp := $(call kokkos_append_header,"/* Execution Spaces */") ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_CUDA") - tmp := $(call kokkos_append_header,"\#define KOKKOS_COMPILER_CUDA_VERSION $(KOKKOS_INTERNAL_COMPILER_NVCC_VERSION)") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_CUDA") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_COMPILER_CUDA_VERSION $(KOKKOS_INTERNAL_COMPILER_NVCC_VERSION)") endif -ifeq ($(KOKKOS_INTERNAL_USE_ROCM), 1) - tmp := $(call kokkos_append_header,'\#define KOKKOS_ENABLE_ROCM') - tmp := $(call kokkos_append_header,'\#define KOKKOS_IMPL_ROCM_CLANG_WORKAROUND 1') -endif ifeq ($(KOKKOS_INTERNAL_USE_HIP), 1) - tmp := $(call kokkos_append_header,'\#define KOKKOS_ENABLE_HIP') + tmp := $(call kokkos_append_header,'$H''define KOKKOS_ENABLE_HIP') endif ifeq ($(KOKKOS_INTERNAL_USE_OPENMPTARGET), 1) - tmp := $(call kokkos_append_header,'\#define KOKKOS_ENABLE_OPENMPTARGET') + tmp := $(call kokkos_append_header,'$H''define KOKKOS_ENABLE_OPENMPTARGET') ifeq ($(KOKKOS_INTERNAL_COMPILER_GCC), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_WORKAROUND_OPENMPTARGET_GCC") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_WORKAROUND_OPENMPTARGET_GCC") endif endif ifeq ($(KOKKOS_INTERNAL_USE_OPENMP), 1) - tmp := $(call kokkos_append_header,'\#define KOKKOS_ENABLE_OPENMP') + tmp := $(call kokkos_append_header,'$H''define KOKKOS_ENABLE_OPENMP') endif ifeq ($(KOKKOS_INTERNAL_USE_PTHREADS), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_THREADS") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_THREADS") endif ifeq ($(KOKKOS_INTERNAL_USE_HPX), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_HPX") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_HPX") endif ifeq ($(KOKKOS_INTERNAL_USE_SERIAL), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_SERIAL") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_SERIAL") endif ifeq ($(KOKKOS_INTERNAL_USE_TM), 1) - tmp := $(call kokkos_append_header,"\#ifndef __CUDA_ARCH__") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_TM") - tmp := $(call kokkos_append_header,"\#endif") + tmp := $(call kokkos_append_header,"$H""ifndef __CUDA_ARCH__") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_TM") + tmp := $(call kokkos_append_header,"$H""endif") endif ifeq ($(KOKKOS_INTERNAL_USE_ISA_X86_64), 1) - tmp := $(call kokkos_append_header,"\#ifndef __CUDA_ARCH__") - tmp := $(call kokkos_append_header,"\#define KOKKOS_USE_ISA_X86_64") - tmp := $(call kokkos_append_header,"\#endif") + tmp := $(call kokkos_append_header,"$H""ifndef __CUDA_ARCH__") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_USE_ISA_X86_64") + tmp := $(call kokkos_append_header,"$H""endif") endif ifeq ($(KOKKOS_INTERNAL_USE_ISA_KNC), 1) - tmp := $(call kokkos_append_header,"\#ifndef __CUDA_ARCH__") - tmp := $(call kokkos_append_header,"\#define KOKKOS_USE_ISA_KNC") - tmp := $(call kokkos_append_header,"\#endif") + tmp := $(call kokkos_append_header,"$H""ifndef __CUDA_ARCH__") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_USE_ISA_KNC") + tmp := $(call kokkos_append_header,"$H""endif") endif ifeq ($(KOKKOS_INTERNAL_USE_ISA_POWERPCLE), 1) - tmp := $(call kokkos_append_header,"\#ifndef __CUDA_ARCH__") - tmp := $(call kokkos_append_header,"\#define KOKKOS_USE_ISA_POWERPCLE") - tmp := $(call kokkos_append_header,"\#endif") + tmp := $(call kokkos_append_header,"$H""ifndef __CUDA_ARCH__") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_USE_ISA_POWERPCLE") + tmp := $(call kokkos_append_header,"$H""endif") endif ifeq ($(KOKKOS_INTERNAL_USE_ISA_POWERPCBE), 1) - tmp := $(call kokkos_append_header,"\#ifndef __CUDA_ARCH__") - tmp := $(call kokkos_append_header,"\#define KOKKOS_USE_ISA_POWERPCBE") - tmp := $(call kokkos_append_header,"\#endif") + tmp := $(call kokkos_append_header,"$H""ifndef __CUDA_ARCH__") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_USE_ISA_POWERPCBE") + tmp := $(call kokkos_append_header,"$H""endif") endif #only add the c++ standard flags if this is not CMake tmp := $(call kokkos_append_header,"/* General Settings */") -ifeq ($(KOKKOS_INTERNAL_ENABLE_CXX11), 1) -ifneq ($(KOKKOS_STANDALONE_CMAKE), yes) - KOKKOS_CXXFLAGS += $(KOKKOS_INTERNAL_CXX11_FLAG) -endif - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_CXX11") -endif ifeq ($(KOKKOS_INTERNAL_ENABLE_CXX14), 1) ifneq ($(KOKKOS_STANDALONE_CMAKE), yes) KOKKOS_CXXFLAGS += $(KOKKOS_INTERNAL_CXX14_FLAG) endif - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_CXX14") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_CXX14") endif ifeq ($(KOKKOS_INTERNAL_ENABLE_CXX1Y), 1) #I cannot make CMake add this in a good way - so add it here KOKKOS_CXXFLAGS += $(KOKKOS_INTERNAL_CXX1Y_FLAG) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_CXX14") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_CXX14") endif ifeq ($(KOKKOS_INTERNAL_ENABLE_CXX17), 1) ifneq ($(KOKKOS_STANDALONE_CMAKE), yes) KOKKOS_CXXFLAGS += $(KOKKOS_INTERNAL_CXX17_FLAG) endif - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_CXX17") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_CXX17") endif ifeq ($(KOKKOS_INTERNAL_ENABLE_CXX1Z), 1) #I cannot make CMake add this in a good way - so add it here KOKKOS_CXXFLAGS += $(KOKKOS_INTERNAL_CXX1Z_FLAG) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_CXX17") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_CXX17") endif ifeq ($(KOKKOS_INTERNAL_ENABLE_CXX2A), 1) #I cannot make CMake add this in a good way - so add it here KOKKOS_CXXFLAGS += $(KOKKOS_INTERNAL_CXX2A_FLAG) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_CXX20") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_CXX20") +endif +ifeq ($(KOKKOS_INTERNAL_ENABLE_CXX20), 1) + #I cannot make CMake add this in a good way - so add it here + KOKKOS_CXXFLAGS += $(KOKKOS_INTERNAL_CXX20_FLAG) + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_CXX20") endif ifeq ($(KOKKOS_INTERNAL_ENABLE_DEBUG), 1) @@ -572,20 +560,26 @@ ifeq ($(KOKKOS_INTERNAL_ENABLE_DEBUG), 1) KOKKOS_CXXFLAGS += -g KOKKOS_LDFLAGS += -g - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_DEBUG_BOUNDS_CHECK") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_DEBUG") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_DEBUG_BOUNDS_CHECK") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_DEBUG") ifeq ($(KOKKOS_INTERNAL_DISABLE_DUALVIEW_MODIFY_CHECK), 0) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_DEBUG_DUALVIEW_MODIFY_CHECK") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_DEBUG_DUALVIEW_MODIFY_CHECK") endif endif ifeq ($(KOKKOS_INTERNAL_DISABLE_COMPLEX_ALIGN), 0) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_COMPLEX_ALIGN") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_COMPLEX_ALIGN") endif ifeq ($(KOKKOS_INTERNAL_ENABLE_PROFILING_LOAD_PRINT), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_PROFILING_LOAD_PRINT") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_PROFILING_LOAD_PRINT") +endif + +ifeq ($(KOKKOS_INTERNAL_ENABLE_TUNING), 1) + tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_TUNING") endif +tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_LIBDL") + ifeq ($(KOKKOS_INTERNAL_USE_HWLOC), 1) ifneq ($(KOKKOS_CMAKE), yes) ifneq ($(HWLOC_PATH),) @@ -598,11 +592,11 @@ ifeq ($(KOKKOS_INTERNAL_USE_HWLOC), 1) KOKKOS_LIBS += -lhwloc KOKKOS_TPL_LIBRARY_NAMES += hwloc endif - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_HWLOC") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_HWLOC") endif ifeq ($(KOKKOS_INTERNAL_USE_LIBRT), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_USE_LIBRT") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_USE_LIBRT") KOKKOS_LIBS += -lrt KOKKOS_TPL_LIBRARY_NAMES += rt endif @@ -619,50 +613,36 @@ ifeq ($(KOKKOS_INTERNAL_USE_MEMKIND), 1) KOKKOS_LIBS += -lmemkind -lnuma KOKKOS_TPL_LIBRARY_NAMES += memkind numa endif - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_HBWSPACE") -endif - -ifeq ($(KOKKOS_INTERNAL_DISABLE_PROFILING), 0) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_PROFILING") -endif - -ifeq ($(KOKKOS_INTERNAL_USE_HPX), 0) - ifeq ($(KOKKOS_INTERNAL_ENABLE_DEPRECATED_CODE), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_DEPRECATED_CODE") - endif -endif - -ifeq ($(KOKKOS_INTERNAL_ENABLE_ETI), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_ETI") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_HBWSPACE") endif ifeq ($(KOKKOS_INTERNAL_ENABLE_LARGE_MEM_TESTS), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_LARGE_MEM_TESTS") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_LARGE_MEM_TESTS") endif tmp := $(call kokkos_append_header,"/* Optimization Settings */") ifeq ($(KOKKOS_INTERNAL_OPT_RANGE_AGGRESSIVE_VECTORIZATION), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_OPT_RANGE_AGGRESSIVE_VECTORIZATION") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_OPT_RANGE_AGGRESSIVE_VECTORIZATION") endif tmp := $(call kokkos_append_header,"/* Cuda Settings */") ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1) ifeq ($(KOKKOS_INTERNAL_CUDA_USE_LDG), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_CUDA_LDG_INTRINSIC") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_CUDA_LDG_INTRINSIC") else ifeq ($(KOKKOS_INTERNAL_COMPILER_CLANG), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_CUDA_LDG_INTRINSIC") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_CUDA_LDG_INTRINSIC") endif endif ifeq ($(KOKKOS_INTERNAL_CUDA_USE_UVM), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_CUDA_UVM") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_CUDA_UVM") endif ifeq ($(KOKKOS_INTERNAL_CUDA_USE_RELOC), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE") ifeq ($(KOKKOS_INTERNAL_COMPILER_CLANG), 1) KOKKOS_CXXFLAGS += -fcuda-rdc KOKKOS_LDFLAGS += -fcuda-rdc @@ -683,7 +663,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1) ifeq ($(KOKKOS_INTERNAL_CUDA_USE_LAMBDA), 1) ifeq ($(KOKKOS_INTERNAL_COMPILER_NVCC), 1) ifeq ($(shell test $(KOKKOS_INTERNAL_COMPILER_NVCC_VERSION) -gt 70; echo $$?),0) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_CUDA_LAMBDA") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_CUDA_LAMBDA") KOKKOS_CXXFLAGS += -expt-extended-lambda else $(warning Warning: Cuda Lambda support was requested but NVCC version is too low. This requires NVCC for Cuda version 7.5 or higher. Disabling Lambda support now.) @@ -691,14 +671,14 @@ ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1) endif ifeq ($(KOKKOS_INTERNAL_COMPILER_CLANG), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_CUDA_LAMBDA") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_CUDA_LAMBDA") endif endif ifeq ($(KOKKOS_INTERNAL_CUDA_USE_CONSTEXPR), 1) ifeq ($(KOKKOS_INTERNAL_COMPILER_NVCC), 1) ifeq ($(shell test $(KOKKOS_INTERNAL_COMPILER_NVCC_VERSION) -ge 80; echo $$?),0) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_CUDA_CONSTEXPR") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_CUDA_CONSTEXPR") KOKKOS_CXXFLAGS += -expt-relaxed-constexpr else $(warning Warning: Cuda relaxed constexpr support was requested but NVCC version is too low. This requires NVCC for Cuda version 8.0 or higher. Disabling relaxed constexpr support now.) @@ -706,25 +686,25 @@ ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1) endif ifeq ($(KOKKOS_INTERNAL_COMPILER_CLANG), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_CUDA_CONSTEXPR") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_CUDA_CONSTEXPR") endif endif ifeq ($(KOKKOS_INTERNAL_COMPILER_CLANG), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_IMPL_CUDA_CLANG_WORKAROUND") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_IMPL_CUDA_CLANG_WORKAROUND") endif endif ifeq ($(KOKKOS_INTERNAL_USE_HPX), 1) ifeq ($(KOKKOS_INTERNAL_HPX_ENABLE_ASYNC_DISPATCH), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_HPX_ASYNC_DISPATCH") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_HPX_ASYNC_DISPATCH") endif endif # Add Architecture flags. ifeq ($(KOKKOS_INTERNAL_USE_ARCH_ARMV80), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_ARMV80") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_ARMV80") ifeq ($(KOKKOS_INTERNAL_COMPILER_CRAY), 1) KOKKOS_CXXFLAGS += @@ -741,7 +721,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_ARCH_ARMV80), 1) endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_ARMV81), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_ARMV81") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_ARMV81") ifeq ($(KOKKOS_INTERNAL_COMPILER_CRAY), 1) KOKKOS_CXXFLAGS += @@ -757,9 +737,16 @@ ifeq ($(KOKKOS_INTERNAL_USE_ARCH_ARMV81), 1) endif endif -ifeq ($(KOKKOS_INTERNAL_USE_ARCH_EPYC), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_AMD_EPYC") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_AMD_AVX2") +ifeq ($(KOKKOS_INTERNAL_USE_ARCH_A64FX), 1) + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_A64FX") + + KOKKOS_CXXFLAGS += -march=armv8.2-a+sve + KOKKOS_LDFLAGS += -march=armv8.2-a+sve +endif + +ifeq ($(KOKKOS_INTERNAL_USE_ARCH_ZEN), 1) + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_AMD_ZEN") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_AMD_AVX2") ifeq ($(KOKKOS_INTERNAL_COMPILER_INTEL), 1) KOKKOS_CXXFLAGS += -mavx2 @@ -770,9 +757,22 @@ ifeq ($(KOKKOS_INTERNAL_USE_ARCH_EPYC), 1) endif endif +ifeq ($(KOKKOS_INTERNAL_USE_ARCH_ZEN2), 1) + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_AMD_ZEN2") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_AMD_AVX2") + + ifeq ($(KOKKOS_INTERNAL_COMPILER_INTEL), 1) + KOKKOS_CXXFLAGS += -mavx2 + KOKKOS_LDFLAGS += -mavx2 + else + KOKKOS_CXXFLAGS += -march=znver2 -mtune=znver2 + KOKKOS_LDFLAGS += -march=znver2 -mtune=znver2 + endif +endif + ifeq ($(KOKKOS_INTERNAL_USE_ARCH_ARMV8_THUNDERX), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_ARMV80") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_ARMV8_THUNDERX") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_ARMV80") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_ARMV8_THUNDERX") ifeq ($(KOKKOS_INTERNAL_COMPILER_CRAY), 1) KOKKOS_CXXFLAGS += @@ -789,8 +789,8 @@ ifeq ($(KOKKOS_INTERNAL_USE_ARCH_ARMV8_THUNDERX), 1) endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_ARMV8_THUNDERX2), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_ARMV81") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_ARMV8_THUNDERX2") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_ARMV81") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_ARMV8_THUNDERX2") ifeq ($(KOKKOS_INTERNAL_COMPILER_CRAY), 1) KOKKOS_CXXFLAGS += @@ -807,7 +807,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_ARCH_ARMV8_THUNDERX2), 1) endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_SSE42), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_SSE42") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_SSE42") ifeq ($(KOKKOS_INTERNAL_COMPILER_INTEL), 1) KOKKOS_CXXFLAGS += -xSSE4.2 @@ -829,7 +829,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_ARCH_SSE42), 1) endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_AVX), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_AVX") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_AVX") ifeq ($(KOKKOS_INTERNAL_COMPILER_INTEL), 1) KOKKOS_CXXFLAGS += -mavx @@ -851,7 +851,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_ARCH_AVX), 1) endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_POWER7), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_POWER7") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_POWER7") ifeq ($(KOKKOS_INTERNAL_COMPILER_PGI), 1) @@ -863,7 +863,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_ARCH_POWER7), 1) endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_POWER8), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_POWER8") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_POWER8") ifeq ($(KOKKOS_INTERNAL_COMPILER_PGI), 1) @@ -884,7 +884,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_ARCH_POWER8), 1) endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_POWER9), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_POWER9") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_POWER9") ifeq ($(KOKKOS_INTERNAL_COMPILER_PGI), 1) @@ -905,7 +905,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_ARCH_POWER9), 1) endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_HSW), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_AVX2") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_AVX2") ifeq ($(KOKKOS_INTERNAL_COMPILER_INTEL), 1) KOKKOS_CXXFLAGS += -xCORE-AVX2 @@ -927,7 +927,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_ARCH_HSW), 1) endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_BDW), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_AVX2") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_AVX2") ifeq ($(KOKKOS_INTERNAL_COMPILER_INTEL), 1) KOKKOS_CXXFLAGS += -xCORE-AVX2 @@ -949,7 +949,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_ARCH_BDW), 1) endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_AVX512MIC), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_AVX512MIC") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_AVX512MIC") ifeq ($(KOKKOS_INTERNAL_COMPILER_INTEL), 1) KOKKOS_CXXFLAGS += -xMIC-AVX512 @@ -970,7 +970,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_ARCH_AVX512MIC), 1) endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_AVX512XEON), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_AVX512XEON") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_AVX512XEON") ifeq ($(KOKKOS_INTERNAL_COMPILER_INTEL), 1) KOKKOS_CXXFLAGS += -xCORE-AVX512 @@ -991,7 +991,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_ARCH_AVX512XEON), 1) endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_KNC), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_KNC") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_KNC") KOKKOS_CXXFLAGS += -mmic KOKKOS_LDFLAGS += -mmic endif @@ -1026,65 +1026,70 @@ endif ifeq ($(KOKKOS_INTERNAL_USE_CUDA_ARCH), 1) ifeq ($(KOKKOS_INTERNAL_USE_ARCH_KEPLER30), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_KEPLER") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_KEPLER30") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_KEPLER") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_KEPLER30") KOKKOS_INTERNAL_CUDA_ARCH_FLAG := $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG)=sm_30 endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_KEPLER32), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_KEPLER") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_KEPLER32") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_KEPLER") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_KEPLER32") KOKKOS_INTERNAL_CUDA_ARCH_FLAG := $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG)=sm_32 endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_KEPLER35), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_KEPLER") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_KEPLER35") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_KEPLER") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_KEPLER35") KOKKOS_INTERNAL_CUDA_ARCH_FLAG := $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG)=sm_35 endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_KEPLER37), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_KEPLER") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_KEPLER37") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_KEPLER") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_KEPLER37") KOKKOS_INTERNAL_CUDA_ARCH_FLAG := $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG)=sm_37 endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_MAXWELL50), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_MAXWELL") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_MAXWELL50") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_MAXWELL") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_MAXWELL50") KOKKOS_INTERNAL_CUDA_ARCH_FLAG := $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG)=sm_50 endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_MAXWELL52), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_MAXWELL") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_MAXWELL52") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_MAXWELL") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_MAXWELL52") KOKKOS_INTERNAL_CUDA_ARCH_FLAG := $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG)=sm_52 endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_MAXWELL53), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_MAXWELL") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_MAXWELL53") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_MAXWELL") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_MAXWELL53") KOKKOS_INTERNAL_CUDA_ARCH_FLAG := $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG)=sm_53 endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_PASCAL60), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_PASCAL") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_PASCAL60") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_PASCAL") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_PASCAL60") KOKKOS_INTERNAL_CUDA_ARCH_FLAG := $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG)=sm_60 endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_PASCAL61), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_PASCAL") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_PASCAL61") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_PASCAL") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_PASCAL61") KOKKOS_INTERNAL_CUDA_ARCH_FLAG := $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG)=sm_61 endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_VOLTA70), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_VOLTA") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_VOLTA70") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_VOLTA") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_VOLTA70") KOKKOS_INTERNAL_CUDA_ARCH_FLAG := $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG)=sm_70 endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_VOLTA72), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_VOLTA") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_VOLTA72") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_VOLTA") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_VOLTA72") KOKKOS_INTERNAL_CUDA_ARCH_FLAG := $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG)=sm_72 endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_TURING75), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_TURING") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_TURING75") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_TURING") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_TURING75") KOKKOS_INTERNAL_CUDA_ARCH_FLAG := $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG)=sm_75 endif + ifeq ($(KOKKOS_INTERNAL_USE_ARCH_AMPERE80), 1) + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_AMPERE") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_AMPERE80") + KOKKOS_INTERNAL_CUDA_ARCH_FLAG := $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG)=sm_80 + endif ifneq ($(KOKKOS_INTERNAL_USE_ARCH_NVIDIA), 0) KOKKOS_CXXFLAGS += $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG) @@ -1108,15 +1113,21 @@ endif ifeq ($(KOKKOS_INTERNAL_USE_HIP), 1) # Lets start with adding architecture defines ifeq ($(KOKKOS_INTERNAL_USE_ARCH_VEGA900), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_HIP 900") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_VEGA900") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_HIP 900") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_VEGA900") KOKKOS_INTERNAL_HIP_ARCH_FLAG := --amdgpu-target=gfx900 endif ifeq ($(KOKKOS_INTERNAL_USE_ARCH_VEGA906), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_HIP 906") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_VEGA906") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_HIP 906") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_VEGA906") KOKKOS_INTERNAL_HIP_ARCH_FLAG := --amdgpu-target=gfx906 endif + ifeq ($(KOKKOS_INTERNAL_USE_ARCH_VEGA908), 1) + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_HIP 908") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_VEGA908") + KOKKOS_INTERNAL_HIP_ARCH_FLAG := --amdgpu-target=gfx908 + endif + KOKKOS_SRC += $(wildcard $(KOKKOS_PATH)/core/src/HIP/*.cpp) KOKKOS_HEADERS += $(wildcard $(KOKKOS_PATH)/core/src/HIP/*.hpp) @@ -1125,7 +1136,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_HIP), 1) KOKKOS_LDFLAGS+=$(KOKKOS_INTERNAL_HIP_ARCH_FLAG) ifeq ($(KOKKOS_INTERNAL_HIP_USE_RELOC), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_HIP_RELOCATABLE_DEVICE_CODE") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_HIP_RELOCATABLE_DEVICE_CODE") KOKKOS_CXXFLAGS+=-fgpu-rdc KOKKOS_LDFLAGS+=-fgpu-rdc else @@ -1147,6 +1158,55 @@ ifneq ($(KOKKOS_INTERNAL_NEW_CONFIG), 0) tmp := $(shell cp KokkosCore_config.tmp KokkosCore_config.h) endif +# Functions for generating config header file +kokkos_start_config_header = $(shell sed 's~@INCLUDE_NEXT_FILE@~~g' $(KOKKOS_PATH)/cmake/KokkosCore_Config_HeaderSet.in > $1) +kokkos_update_config_header = $(shell sed 's~@HEADER_GUARD_TAG@~$1~g' $2 > $3) +kokkos_append_config_header = $(shell echo $1 >> $2)) +tmp := $(call kokkos_start_config_header, "KokkosCore_Config_FwdBackend.tmp") +tmp := $(call kokkos_start_config_header, "KokkosCore_Config_SetupBackend.tmp") +tmp := $(call kokkos_start_config_header, "KokkosCore_Config_DeclareBackend.tmp") +tmp := $(call kokkos_start_config_header, "KokkosCore_Config_PostInclude.tmp") +tmp := $(call kokkos_update_config_header, KOKKOS_FWD_HPP_, "KokkosCore_Config_FwdBackend.tmp", "KokkosCore_Config_FwdBackend.hpp") +tmp := $(call kokkos_update_config_header, KOKKOS_SETUP_HPP_, "KokkosCore_Config_SetupBackend.tmp", "KokkosCore_Config_SetupBackend.hpp") +tmp := $(call kokkos_update_config_header, KOKKOS_DECLARE_HPP_, "KokkosCore_Config_DeclareBackend.tmp", "KokkosCore_Config_DeclareBackend.hpp") +tmp := $(call kokkos_update_config_header, KOKKOS_POST_INCLUDE_HPP_, "KokkosCore_Config_PostInclude.tmp", "KokkosCore_Config_PostInclude.hpp") +ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1) + tmp := $(call kokkos_append_config_header,"\#include <fwd/Kokkos_Fwd_CUDA.hpp>","KokkosCore_Config_FwdBackend.hpp") + tmp := $(call kokkos_append_config_header,"\#include <decl/Kokkos_Declare_CUDA.hpp>","KokkosCore_Config_DeclareBackend.hpp") + tmp := $(call kokkos_append_config_header,"\#include <setup/Kokkos_Setup_Cuda.hpp>","KokkosCore_Config_SetupBackend.hpp") + ifeq ($(KOKKOS_INTERNAL_CUDA_USE_UVM), 1) + else + endif +endif +ifeq ($(KOKKOS_INTERNAL_USE_OPENMPTARGET), 1) + tmp := $(call kokkos_append_config_header,"\#include <fwd/Kokkos_Fwd_OPENMPTARGET.hpp>","KokkosCore_Config_FwdBackend.hpp") + tmp := $(call kokkos_append_config_header,"\#include <decl/Kokkos_Declare_OPENMPTARGET.hpp>","KokkosCore_Config_DeclareBackend.hpp") +endif +ifeq ($(KOKKOS_INTERNAL_USE_HIP), 1) + tmp := $(call kokkos_append_config_header,"\#include <fwd/Kokkos_Fwd_HIP.hpp>","KokkosCore_Config_FwdBackend.hpp") + tmp := $(call kokkos_append_config_header,"\#include <decl/Kokkos_Declare_HIP.hpp>","KokkosCore_Config_DeclareBackend.hpp") + tmp := $(call kokkos_append_config_header,"\#include <setup/Kokkos_Setup_HIP.hpp>","KokkosCore_Config_SetupBackend.hpp") +endif +ifeq ($(KOKKOS_INTERNAL_USE_OPENMP), 1) + tmp := $(call kokkos_append_config_header,"\#include <fwd/Kokkos_Fwd_OPENMP.hpp>","KokkosCore_Config_FwdBackend.hpp") + tmp := $(call kokkos_append_config_header,"\#include <decl/Kokkos_Declare_OPENMP.hpp>","KokkosCore_Config_DeclareBackend.hpp") +endif +ifeq ($(KOKKOS_INTERNAL_USE_PTHREADS), 1) + tmp := $(call kokkos_append_config_header,"\#include <fwd/Kokkos_Fwd_THREADS.hpp>","KokkosCore_Config_FwdBackend.hpp") + tmp := $(call kokkos_append_config_header,"\#include <decl/Kokkos_Declare_THREADS.hpp>","KokkosCore_Config_DeclareBackend.hpp") +endif +ifeq ($(KOKKOS_INTERNAL_USE_HPX), 1) + tmp := $(call kokkos_append_config_header,"\#include <fwd/Kokkos_Fwd_HPX.hpp>","KokkosCore_Config_FwdBackend.hpp") + tmp := $(call kokkos_append_config_header,"\#include <decl/Kokkos_Declare_HPX.hpp>","KokkosCore_Config_DeclareBackend.hpp") +endif +ifeq ($(KOKKOS_INTERNAL_USE_SERIAL), 1) + tmp := $(call kokkos_append_config_header,"\#include <fwd/Kokkos_Fwd_SERIAL.hpp>","KokkosCore_Config_FwdBackend.hpp") + tmp := $(call kokkos_append_config_header,"\#include <decl/Kokkos_Declare_SERIAL.hpp>","KokkosCore_Config_DeclareBackend.hpp") +endif +ifeq ($(KOKKOS_INTERNAL_USE_MEMKIND), 1) + tmp := $(call kokkos_append_config_header,"\#include <fwd/Kokkos_Fwd_HBWSpace.hpp>","KokkosCore_Config_FwdBackend.hpp") + tmp := $(call kokkos_append_config_header,"\#include <decl/Kokkos_Declare_HBWSpace.hpp>","KokkosCore_Config_DeclareBackend.hpp") +endif KOKKOS_HEADERS += $(wildcard $(KOKKOS_PATH)/core/src/*.hpp) KOKKOS_HEADERS += $(wildcard $(KOKKOS_PATH)/core/src/impl/*.hpp) KOKKOS_HEADERS += $(wildcard $(KOKKOS_PATH)/containers/src/*.hpp) @@ -1158,9 +1218,6 @@ KOKKOS_SRC += $(wildcard $(KOKKOS_PATH)/containers/src/impl/*.cpp) ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1) KOKKOS_SRC += $(wildcard $(KOKKOS_PATH)/core/src/Cuda/*.cpp) -ifeq ($(KOKKOS_INTERNAL_ENABLE_ETI), 1) - KOKKOS_SRC += $(wildcard $(KOKKOS_ETI_PATH)/Cuda/*.cpp) -endif KOKKOS_HEADERS += $(wildcard $(KOKKOS_PATH)/core/src/Cuda/*.hpp) ifneq ($(CUDA_PATH),) KOKKOS_CPPLAGS += -I$(CUDA_PATH)/include @@ -1198,9 +1255,6 @@ endif ifeq ($(KOKKOS_INTERNAL_USE_OPENMP), 1) KOKKOS_SRC += $(wildcard $(KOKKOS_PATH)/core/src/OpenMP/*.cpp) -ifeq ($(KOKKOS_INTERNAL_ENABLE_ETI), 1) - KOKKOS_SRC += $(wildcard $(KOKKOS_ETI_PATH)/OpenMP/*.cpp) -endif KOKKOS_HEADERS += $(wildcard $(KOKKOS_PATH)/core/src/OpenMP/*.hpp) ifeq ($(KOKKOS_INTERNAL_COMPILER_NVCC), 1) @@ -1215,9 +1269,6 @@ endif ifeq ($(KOKKOS_INTERNAL_USE_PTHREADS), 1) KOKKOS_SRC += $(wildcard $(KOKKOS_PATH)/core/src/Threads/*.cpp) -ifeq ($(KOKKOS_INTERNAL_ENABLE_ETI), 1) - KOKKOS_SRC += $(wildcard $(KOKKOS_ETI_PATH)/Threads/*.cpp) -endif KOKKOS_HEADERS += $(wildcard $(KOKKOS_PATH)/core/src/Threads/*.hpp) KOKKOS_LIBS += -lpthread KOKKOS_TPL_LIBRARY_NAMES += pthread @@ -1266,9 +1317,6 @@ endif # Don't include Kokkos_Serial.cpp or Kokkos_Serial_Task.cpp if not using Serial # device to avoid a link warning. ifeq ($(KOKKOS_INTERNAL_USE_SERIAL), 1) -ifeq ($(KOKKOS_INTERNAL_ENABLE_ETI), 1) - KOKKOS_SRC += $(wildcard $(KOKKOS_ETI_PATH)/Serial/*.cpp) -endif endif ifneq ($(KOKKOS_INTERNAL_USE_SERIAL), 1) KOKKOS_SRC := $(filter-out $(KOKKOS_PATH)/core/src/impl/Kokkos_Serial.cpp,$(KOKKOS_SRC)) @@ -1276,7 +1324,7 @@ ifneq ($(KOKKOS_INTERNAL_USE_SERIAL), 1) endif # With Cygwin functions such as fdopen and fileno are not defined -# when strict ansi is enabled. strict ansi gets enabled with --std=c++11 +# when strict ansi is enabled. strict ansi gets enabled with --std=c++14 # though. So we hard undefine it here. Not sure if that has any bad side effects # This is needed for gtest actually, not for Kokkos itself! ifeq ($(KOKKOS_INTERNAL_OS_CYGWIN), 1) @@ -1299,7 +1347,9 @@ KOKKOS_OBJ_LINK = $(notdir $(KOKKOS_OBJ)) include $(KOKKOS_PATH)/Makefile.targets kokkos-clean: - rm -f $(KOKKOS_OBJ_LINK) KokkosCore_config.h KokkosCore_config.tmp libkokkos.a + rm -f $(KOKKOS_OBJ_LINK) KokkosCore_config.h KokkosCore_config.tmp libkokkos.a KokkosCore_Config_SetupBackend.hpp \ + KokkosCore_Config_FwdBackend.hpp KokkosCore_Config_DeclareBackend.hpp KokkosCore_Config_DeclareBackend.tmp \ + KokkosCore_Config_FwdBackend.tmp KokkosCore_Config_PostInclude.hpp KokkosCore_Config_PostInclude.tmp KokkosCore_Config_SetupBackend.tmp libkokkos.a: $(KOKKOS_OBJ_LINK) $(KOKKOS_SRC) $(KOKKOS_HEADERS) ar cr libkokkos.a $(KOKKOS_OBJ_LINK) diff --git a/packages/kokkos/Makefile.targets b/packages/kokkos/Makefile.targets index 18e37a71f..5a03f7d17 100644 --- a/packages/kokkos/Makefile.targets +++ b/packages/kokkos/Makefile.targets @@ -26,21 +26,17 @@ Kokkos_Spinwait.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/impl/Kokkos_Spi $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/impl/Kokkos_Spinwait.cpp Kokkos_HostBarrier.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/impl/Kokkos_HostBarrier.cpp $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/impl/Kokkos_HostBarrier.cpp -Kokkos_Profiling_Interface.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/impl/Kokkos_Profiling_Interface.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/impl/Kokkos_Profiling_Interface.cpp +Kokkos_Profiling.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/impl/Kokkos_Profiling.cpp + $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/impl/Kokkos_Profiling.cpp Kokkos_SharedAlloc.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/impl/Kokkos_SharedAlloc.cpp $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/impl/Kokkos_SharedAlloc.cpp Kokkos_MemoryPool.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/impl/Kokkos_MemoryPool.cpp $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/impl/Kokkos_MemoryPool.cpp +Kokkos_MemorySpace.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/impl/Kokkos_MemorySpace.cpp + $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/impl/Kokkos_MemorySpace.cpp Kokkos_HostSpace_deepcopy.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/impl/Kokkos_HostSpace_deepcopy.cpp $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/impl/Kokkos_HostSpace_deepcopy.cpp -ifeq ($(KOKKOS_INTERNAL_USE_SERIAL), 1) -ifeq ($(KOKKOS_INTERNAL_ENABLE_ETI), 1) - include $(KOKKOS_ETI_PATH)/Serial/Makefile.eti_Serial -endif -endif - ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1) Kokkos_Cuda_Instance.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/Cuda/Kokkos_Cuda_Instance.cpp $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/Cuda/Kokkos_Cuda_Instance.cpp @@ -50,9 +46,6 @@ Kokkos_Cuda_Task.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/Cuda/Kokkos_Cu $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/Cuda/Kokkos_Cuda_Task.cpp Kokkos_Cuda_Locks.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/Cuda/Kokkos_Cuda_Locks.cpp $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/Cuda/Kokkos_Cuda_Locks.cpp -ifeq ($(KOKKOS_INTERNAL_ENABLE_ETI), 1) - include $(KOKKOS_ETI_PATH)/Cuda/Makefile.eti_Cuda -endif endif ifeq ($(KOKKOS_INTERNAL_USE_HIP), 1) @@ -60,34 +53,15 @@ Kokkos_HIP_Space.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/HIP/Kokkos_HIP $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/HIP/Kokkos_HIP_Space.cpp Kokkos_HIP_Instance.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/HIP/Kokkos_HIP_Instance.cpp $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/HIP/Kokkos_HIP_Instance.cpp -Kokkos_HIP_KernelLaunch.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/HIP/Kokkos_HIP_KernelLaunch.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/HIP/Kokkos_HIP_KernelLaunch.cpp Kokkos_HIP_Locks.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/HIP/Kokkos_HIP_Locks.cpp $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/HIP/Kokkos_HIP_Locks.cpp endif -ifeq ($(KOKKOS_INTERNAL_USE_ROCM), 1) -Kokkos_ROCm_Exec.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/ROCm/Kokkos_ROCm_Exec.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/ROCm/Kokkos_ROCm_Exec.cpp -Kokkos_ROCm_Space.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/ROCm/Kokkos_ROCm_Space.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/ROCm/Kokkos_ROCm_Space.cpp -Kokkos_ROCm_Task.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/ROCm/Kokkos_ROCm_Task.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/ROCm/Kokkos_ROCm_Task.cpp -Kokkos_ROCm_Impl.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/ROCm/Kokkos_ROCm_Impl.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/ROCm/Kokkos_ROCm_Impl.cpp -ifeq ($(KOKKOS_INTERNAL_ENABLE_ETI), 1) - include $(KOKKOS_ETI_PATH)/ROCm/Makefile.eti_ROCm -endif -endif - ifeq ($(KOKKOS_INTERNAL_USE_PTHREADS), 1) Kokkos_ThreadsExec_base.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/Threads/Kokkos_ThreadsExec_base.cpp $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/Threads/Kokkos_ThreadsExec_base.cpp Kokkos_ThreadsExec.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/Threads/Kokkos_ThreadsExec.cpp $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/Threads/Kokkos_ThreadsExec.cpp -ifeq ($(KOKKOS_INTERNAL_ENABLE_ETI), 1) - include $(KOKKOS_ETI_PATH)/Threads/Makefile.eti_Threads -endif endif ifeq ($(KOKKOS_INTERNAL_USE_OPENMP), 1) @@ -95,9 +69,6 @@ Kokkos_OpenMP_Exec.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/OpenMP/Kokko $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/OpenMP/Kokkos_OpenMP_Exec.cpp Kokkos_OpenMP_Task.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/OpenMP/Kokkos_OpenMP_Task.cpp $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/OpenMP/Kokkos_OpenMP_Task.cpp -ifeq ($(KOKKOS_INTERNAL_ENABLE_ETI), 1) - include $(KOKKOS_ETI_PATH)/OpenMP/Makefile.eti_OpenMP -endif endif ifeq ($(KOKKOS_INTERNAL_USE_HPX), 1) diff --git a/packages/kokkos/README.md b/packages/kokkos/README.md index a04df9eb9..d55ef2caa 100644 --- a/packages/kokkos/README.md +++ b/packages/kokkos/README.md @@ -54,24 +54,16 @@ For specifics see the LICENSE file contained in the repository or distribution. # Requirements ### Primary tested compilers on X86 are: -* GCC 4.8.4 -* GCC 4.9.3 -* GCC 5.1.0 +* GCC 5.3.0 * GCC 5.4.0 * GCC 5.5.0 * GCC 6.1.0 * GCC 7.2.0 * GCC 7.3.0 * GCC 8.1.0 -* Intel 15.0.2 -* Intel 16.0.1 * Intel 17.0.1 * Intel 17.4.196 * Intel 18.2.128 -* Clang 3.6.1 -* Clang 3.7.1 -* Clang 3.8.1 -* Clang 3.9.0 * Clang 4.0.0 * Clang 6.0.0 for CUDA (CUDA Toolkit 9.0) * Clang 7.0.0 for CUDA (CUDA Toolkit 9.1) @@ -81,6 +73,7 @@ For specifics see the LICENSE file contained in the repository or distribution. * NVCC 9.2 for CUDA (with gcc 7.2.0) * NVCC 10.0 for CUDA (with gcc 7.4.0) * NVCC 10.1 for CUDA (with gcc 7.4.0) +* NVCC 11.0 for CUDA (with gcc 8.4.0) ### Primary tested compilers on Power 8 are: * GCC 6.4.0 (OpenMP,Serial) @@ -89,9 +82,8 @@ For specifics see the LICENSE file contained in the repository or distribution. * NVCC 9.2.88 for CUDA (with gcc 7.2.0 and XL 16.1.0) ### Primary tested compilers on Intel KNL are: -* Intel 16.4.258 (with gcc 4.7.2) -* Intel 17.2.174 (with gcc 4.9.3) -* Intel 18.2.199 (with gcc 4.9.3) +* Intel 17.2.174 (with gcc 6.2.0 and 6.4.0) +* Intel 18.2.199 (with gcc 6.2.0 and 6.4.0) ### Primary tested compilers on ARM (Cavium ThunderX2) * GCC 7.2.0 @@ -108,6 +100,10 @@ For specifics see the LICENSE file contained in the repository or distribution. * ARM * Pthreads backend +### Build system: +* CMake >= 3.10: required +* CMake >= 3.13: recommended +* CMake >= 3.18: Fortran linkage. This does not affect most mixed Fortran/Kokkos builds. See [build issues](BUILD.md#KnownIssues). Primary tested compiler are passing in release mode with warnings as errors. They also are tested with a comprehensive set of @@ -151,7 +147,7 @@ Full details are given in the [build instructions](BUILD.md). Basic setups are s ## CMake The best way to install Kokkos is using the CMake build system. Assuming Kokkos lives in `$srcdir`: -```` +````bash cmake $srcdir \ -DCMAKE_CXX_COMPILER=$path_to_compiler \ -DCMAKE_INSTALL_PREFIX=$path_to_install \ @@ -170,7 +166,7 @@ and run `make test` after completing the build. For your CMake project using Kokkos, code such as the following: -```` +````cmake find_package(Kokkos) ... target_link_libraries(myTarget Kokkos::kokkos) @@ -187,17 +183,15 @@ for the install location given above. ## Spack An alternative to manually building with the CMake is to use the Spack package manager. -To do so, download the `kokkos-spack` git repo and add to the package list: -```` -spack repo add $path-to-kokkos-spack +To get started, download the Spack [repo](https://github.com/spack/spack). ```` A basic installation would be done as: -```` -spack install kokkos +````bash +> spack install kokkos ```` Spack allows options and and compilers to be tuned in the install command. -```` -spack install kokkos@3.0 %gcc@7.3.0 +openmp +````bash +> spack install kokkos@3.0 %gcc@7.3.0 +openmp ```` This example illustrates the three most common parameters to Spack: * Variants: specified with, e.g. `+openmp`, this activates (or deactivates with, e.g. `~openmp`) certain options. @@ -205,33 +199,33 @@ This example illustrates the three most common parameters to Spack: * Compiler: a default compiler will be chosen if not specified, but an exact compiler version can be given with the `%`option. For a complete list of Kokkos options, run: -```` -spack info kokkos +````bash +> spack info kokkos ```` Spack currently installs packages to a location determined by a unique hash. This hash name is not really "human readable". Generally, Spack usage should never really require you to reference the computer-generated unique install folder. More details are given in the [build instructions](BUILD.md). If you must know, you can locate Spack Kokkos installations with: -```` -spack find -p kokkos ... +````bash +> spack find -p kokkos ... ```` where `...` is the unique spec identifying the particular Kokkos configuration and version. - +Some more details can found in the Kokkos spack [documentation](Spack.md) or the Spack [website](https://spack.readthedocs.io/en/latest). ## Raw Makefile A bash script is provided to generate raw makefiles. To install Kokkos as a library create a build directory and run the following -```` -$KOKKOS_PATH/generate_makefile.bash --prefix=$path_to_install +````bash +> $KOKKOS_PATH/generate_makefile.bash --prefix=$path_to_install ```` Once the Makefile is generated, run: -```` -make kokkoslib -make install +````bash +> make kokkoslib +> make install ```` To additionally run the unit tests: -```` -make build-test -make test +````bash +> make build-test +> make test ```` Run `generate_makefile.bash --help` for more detailed options such as changing the device type for which to build. @@ -274,7 +268,7 @@ more than a single GPU is used by a single process. If you publish work which mentions Kokkos, please cite the following paper: -```` +````BibTeX @article{CarterEdwards20143202, title = "Kokkos: Enabling manycore performance portability through polymorphic memory access patterns ", journal = "Journal of Parallel and Distributed Computing ", diff --git a/packages/kokkos/Spack.md b/packages/kokkos/Spack.md new file mode 100644 index 000000000..31a07deb5 --- /dev/null +++ b/packages/kokkos/Spack.md @@ -0,0 +1,267 @@ + + +# Kokkos Spack + +This gives instructions for using Spack to install Kokkos and developing packages that depend on Kokkos. + +## Getting Started + +Make sure you have downloaded [Spack](https://github.com/spack/spack). +The easiest way to configure the Spack environment is: +````bash +> source spack/share/spack/setup-env.sh +```` +with other scripts available for other shells. +You can display information about how to install packages with: +````bash +> spack info kokkos +```` +This will print all the information about how to install Kokkos with Spack. +For detailed instructions on how to use Spack, see the [User Manual](https://spack.readthedocs.io). + +## Setting Up Spack: Avoiding the Package Cascade +By default, Spack doesn't 'see' anything on your system - including things like CMake and CUDA. +This can be limited by adding a `packages.yaml` to your `$HOME/.spack` folder that includes CMake (and CUDA, if applicable). For example, your `packages.yaml` file could be: +````yaml +packages: + cuda: + modules: + cuda@10.1.243: [cuda/10.1.243] + paths: + cuda@10.1.243: + /opt/local/ppc64le-pwr8-nvidia/cuda/10.1.243 + buildable: false + cmake: + modules: + cmake: [cmake/3.16.8] + paths: + cmake: + /opt/local/ppc64le/cmake/3.16.8 + buildable: false +```` +The `modules` entry is only necessary on systems that require loading Modules (i.e. most DOE systems). +The `buildable` flag is useful to make sure Spack crashes if there is a path error, +rather than having a type-o and Spack rebuilding everything because `cmake` isn't found. +You can verify your environment is set up correctly by running `spack graph` or `spack spec`. +For example: +````bash +> spack graph kokkos +cuda +o kokkos +|\ +o | cuda + / +o cmake +```` +Without the existing CUDA and CMake being identified in `packages.yaml`, a (subset!) of the output would be: +````bash +o kokkos +|\ +| o cmake +| |\ +| | | |\ +| | | | | |\ +| | | | | | | |\ +| | | | | | | | | |\ +| | | | | | | o | | | libarchive +| | | | | | | |\ \ \ \ +| | | | | | | | | |\ \ \ \ +| | | | | | | | | | | | |_|/ +| | | | | | | | | | | |/| | +| | | | | | | | | | | | | o curl +| | |_|_|_|_|_|_|_|_|_|_|/| +| |/| | | |_|_|_|_|_|_|_|/ +| | | | |/| | | | | | | | +| | | | o | | | | | | | | openssl +| |/| | | | | | | | | | | +| | | | | | | | | | o | | libxml2 +| | |_|_|_|_|_|_|_|/| | | +| | | | | | | | | | |\ \ \ +| o | | | | | | | | | | | | zlib +| / / / / / / / / / / / / +| o | | | | | | | | | | | xz +| / / / / / / / / / / / +| o | | | | | | | | | | rhash +| / / / / / / / / / / +| | | | o | | | | | | nettle +| | | | |\ \ \ \ \ \ \ +| | | o | | | | | | | | libuv +| | | | o | | | | | | | autoconf +| | |_|/| | | | | | | | +| | | | |/ / / / / / / +| o | | | | | | | | | perl +| o | | | | | | | | | gdbm +| o | | | | | | | | | readline +```` + +## Configuring Kokkos as a Project Dependency +Say you have a project "SuperScience" which needs to use Kokkos. +In your `package.py` file, you would generally include something like: +````python +class SuperScience(CMakePackage): + ... + depends_on("kokkos") +```` +Often projects want to tweak behavior when using certain features, e.g. +````python + depends_on("kokkos+cuda", when="+cuda") +```` +if your project needs CUDA-specific logic to configure and build. +This illustrates the general principle in Spack of "flowing-up". +A user requests a feature in the final app: +````bash +> spack install superscience+cuda +```` +This flows upstream to the Kokkos dependency, causing the `kokkos+cuda` variant to build. +The downstream app (SuperScience) tells the upstream app (Kokkos) how to build. + +Because Kokkos is a performance portability library, it somewhat inverts this principle. +Kokkos "flows-down", telling your application how best to configure for performance. +Rather than a downstream app (SuperScience) telling the upstream (Kokkos) what variants to build, +a pre-built Kokkos should be telling the downstream app SuperScience what variants to use. +Kokkos works best when there is an "expert" configuration installed on your system. +Your build should simply request `-DKokkos_ROOT=<BEST_KOKKOS_FOR_MY_SYSTEM>` and configure appropriately based on the Kokkos it finds. + +Kokkos has many, many build variants. +Where possible, projects should only depend on a general Kokkos, not specific variants. +We recommend instead adding for each system you build on a Kokkos configuration to your `packages.yaml` file (usually found in `~/.spack` for specific users). +For a Xeon + Volta system, this could look like: +````yaml + kokkos: + variants: +cuda +openmp +cuda_lambda +wrapper ^cuda@10.1 cuda_arch=70 + compiler: [gcc@7.2.0] +```` +which gives the "best" Kokkos configuration as CUDA+OpenMP optimized for a Volta 70 architecture using CUDA 10.1. +It also enables support for CUDA Lambdas. +The `+wrapper` option tells Kokkos to build with the special `nvcc_wrapper` (more below). +Note here that we use the built-in `cuda_arch` variant of Spack to specify the archicture. +For a Haswell system, we use +````yaml + kokkos: + variants: +openmp std=14 target=haswell + compiler: [intel@18] +```` +which uses the built-in microarchitecture variants of Spack. +Consult the Spack documentation for more details of Spack microarchitectures +and CUDA architectures. +Spack does not currently provide an AMD GPU microarchitecture option. +If building for HIP or an AMD GPU, Kokkos provides an `amd_gpu_arch` similar to `cuda_arch`. +````yaml + kokkos: + variants: +hip amd_gpu_arch=vega900 +```` + +Without an optimal default in your `packages.yaml` file, it is highly likely that the default Kokkos configuration you get will not be what you want. +For example, CUDA is not enabled by default (there is no easy logic to conditionally activate this for CUDA-enabled systems). +If you don't specify a CUDA build variant in a `packages.yaml` and you build your Kokkos-dependent project: +````bash +> spack install superscience +```` +you may end up just getting the default Kokkos (i.e. Serial). +Some examples are included in the `config/yaml` folder for common platforms. +Before running `spack install <package>` we recommend running `spack spec <package>` to confirm your dependency tree is correct. +For example, with Kokkos Kernels: +````bash +kokkos-kernels@3.0%gcc@8.3.0~blas build_type=RelWithDebInfo ~cblas~complex_double~complex_float~cublas~cuda cuda_arch=none ~cusparse~diy+double execspace_cuda=auto execspace_openmp=auto execspace_serial=auto execspace_threads=auto ~float~lapack~lapacke+layoutleft~layoutright memspace_cudaspace=auto memspace_cudauvmspace=auto +memspace_hostspace~mkl+offset_int+offset_size_t~openmp+ordinal_int~ordinal_int64_t~serial~superlu arch=linux-rhel7-skylake_avx512 + ^cmake@3.16.2%gcc@8.3.0~doc+ncurses+openssl+ownlibs~qt arch=linux-rhel7-skylake_avx512 + ^kokkos@3.0%gcc@8.3.0~aggressive_vectorization~amdavx~armv80~armv81~armv8_thunderx~armv8_tx2~bdw~bgq build_type=RelWithDebInfo ~carrizo~compiler_warnings+cuda cuda_arch=none +cuda_lambda~cuda_ldg_intrinsic~cuda_relocatable_device_code~cuda_uvm~debug~debug_bounds_check~debug_dualview_modify_check~deprecated_code~diy~epyc~examples~explicit_instantiation~fiji~gfx901~hpx~hpx_async_dispatch~hsw~hwloc~kaveri~kepler30~kepler32~kepler35~kepler37~knc~knl~maxwell50~maxwell52~maxwell53~memkind~numactl+openmp~pascal60~pascal61~power7~power8~power9+profiling~profiling_load_print~pthread~qthread~rocm~ryzen~serial~skx~snb std=14 ~tests~turing75~vega+volta70~volta72+wrapper~wsm arch=linux-rhel7-skylake_avx512 + ^cuda@10.1%gcc@8.3.0 arch=linux-rhel7-skylake_avx512 + ^kokkos-nvcc-wrapper@old%gcc@8.3.0 build_type=RelWithDebInfo +mpi arch=linux-rhel7-skylake_avx512 + ^openmpi@4.0.2%gcc@8.3.0~cuda+cxx_exceptions fabrics=none ~java~legacylaunchers~memchecker patches=073477a76bba780c67c36e959cd3ee6910743e2735c7e76850ffba6791d498e4 ~pmi schedulers=none ~sqlite3~thread_multiple+vt arch=linux-rhel7-skylake_avx512 +```` +The output can be very verbose, but we can verify the expected `kokkos`: +````bash +kokkos@3.0%gcc@8.3.0~aggressive_vectorization~amdavx~armv80~armv81~armv8_thunderx~armv8_tx2~bdw~bgq build_type=RelWithDebInfo ~carrizo~compiler_warnings+cuda cuda_arch=none +cuda_lambda~cuda_ldg_intrinsic~cuda_relocatable_device_code~cuda_uvm~debug~debug_bounds_check~debug_dualview_modify_check~deprecated_code~diy~epyc~examples~explicit_instantiation~fiji~gfx901~hpx~hpx_async_dispatch~hsw~hwloc~kaveri~kepler30~kepler32~kepler35~kepler37~knc~knl~maxwell50~maxwell52~maxwell53~memkind~numactl+openmp~pascal60~pascal61~power7~power8~power9+profiling~profiling_load_print~pthread~qthread~rocm~ryzen~serial~skx~snb std=11 ~tests~turing75~vega+volta70~volta72+wrapper~wsm arch=linux-rhel7-skylake_avx512 +```` +We see that we do have `+volta70` and `+wrapper`, e.g. + +### Spack Environments +The encouraged way to use Spack is with Spack environments ([more details here](https://spack-tutorial.readthedocs.io/en/latest/tutorial_environments.html#dealing-with-many-specs-at-once)). +Rather than installing packages one-at-a-time, you add packages to an environment. +After adding all packages, you concretize and install them all. +Using environments, one can explicitly add a desired Kokkos for the environment, e.g. +````bash +> spack add kokkos +cuda +cuda_lambda +volta70 +> spack add my_project +my_variant +> ... +> spack install +```` +All packages within the environment will build against the CUDA-enabled Kokkos, +even if they only request a default Kokkos. + +## NVCC Wrapper +Kokkos is a C++ project, but often builds for the CUDA backend. +This is particularly problematic with CMake. At this point, `nvcc` does not accept all the flags that normally get passed to a C++ compiler. +Kokkos provides `nvcc_wrapper` that identifies correctly as a C++ compiler to CMake and accepts C++ flags, but uses `nvcc` as the underlying compiler. +`nvcc` itself also uses an underlying host compiler, e.g. GCC. + +In Spack, the underlying host compiler is specified as below, e.g.: +````bash +> spack install package %gcc@8.0.0 +```` +This is still valid for Kokkos. To use the special wrapper for CUDA builds, request a desired compiler and simply add the `+wrapper` variant. +````bash +> spack install kokkos +cuda +wrapper %gcc@7.2.0 +```` +Downstream projects depending on Kokkos need to override their compiler. +Kokkos provides the compiler in a `kokkos_cxx` variable, +which points to either `nvcc_wrapper` when needed or the regular compiler otherwise. +Spack projects already do this to use MPI compiler wrappers. +````python +def cmake_args(self): + options = [] + ... + options.append("-DCMAKE_CXX_COMPILER=%s" % self.spec["kokkos"].kokkos_cxx) + ... + return options +```` +Note: `nvcc_wrapper` works with the MPI compiler wrappers. +If building your project with MPI, do NOT set your compiler to `nvcc_wrapper`. +Instead set your compiler to `mpicxx` and `nvcc_wrapper` will be used under the hood. +````python +def cmake_args(self): + options = [] + ... + options.append("-DCMAKE_CXX_COMPILER=%s" % self.spec["mpi"].mpicxx) + ... + return options +```` +To accomplish this, `nvcc_wrapper` must depend on MPI (even though it uses no MPI). +This has the unfortunate consequence that Kokkos CUDA projects not using MPI will implicitly depend on MPI anyway. +This behavior is necessary for now, but will hopefully be removed later. +When using environments, if MPI is not needed, you can remove the MPI dependency with: +````bash +> spack add kokkos-nvcc-wrapper ~mpi +```` + +## Developing With Spack + +Spack has historically been much more suited to *deployment* of mature packages than active testing or developing. +However, recent features have improved support for development. +Future releases are likely to make this even easier and incorporate Git integration. +The most common commands will do a full build and install of the packages. +If doing development, you may wish to merely set up a build environment. +This allows you to modify the source and re-build. +In this case, you can stop after configuring. +Suppose you have Kokkos checkout in the folder `kokkos-src`: +````bash +> spack dev-build -d kokkos-src -u cmake kokkos@develop +wrapper +openmp +```` +This sets up a development environment for you in `kokkos-src` which you can use (Bash example shown): +Note: Always specify `develop` as the version when doing `dev-build`, except in rare cases. +You are usually developing a feature branch that will merge into `develop`, +hence you are making a new `develop` branch. + +````bash +> cd kokko-src +> source spack-build-env.txt +> cd spack-build +> make +```` +Before sourcing the Spack development environment, you may wish to save your current environment: +````bash +> declare -px > myenv.sh +```` +When done with Spack, you can then restore your original environment: +````bash +> source myenv.sh +```` diff --git a/packages/kokkos/algorithms/CMakeLists.txt b/packages/kokkos/algorithms/CMakeLists.txt index 38747c152..fd099054b 100644 --- a/packages/kokkos/algorithms/CMakeLists.txt +++ b/packages/kokkos/algorithms/CMakeLists.txt @@ -2,7 +2,9 @@ KOKKOS_SUBPACKAGE(Algorithms) -ADD_SUBDIRECTORY(src) +IF (NOT Kokkos_INSTALL_TESTING) + ADD_SUBDIRECTORY(src) +ENDIF() KOKKOS_ADD_TEST_DIRECTORIES(unit_tests) diff --git a/packages/kokkos/algorithms/src/CMakeLists.txt b/packages/kokkos/algorithms/src/CMakeLists.txt index 5afd319fc..cf5564032 100644 --- a/packages/kokkos/algorithms/src/CMakeLists.txt +++ b/packages/kokkos/algorithms/src/CMakeLists.txt @@ -7,9 +7,15 @@ KOKKOS_INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) #----------------------------------------------------------------------------- -FILE(GLOB HEADERS *.hpp) -FILE(GLOB SOURCES *.cpp) -LIST(APPEND HEADERS ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}_config.h) +FILE(GLOB ALGO_HEADERS *.hpp) +FILE(GLOB ALGO_SOURCES *.cpp) +LIST(APPEND ALGO_HEADERS ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}_config.h) + +INSTALL ( + DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/" + DESTINATION ${KOKKOS_HEADER_DIR} + FILES_MATCHING PATTERN "*.hpp" +) #----------------------------------------------------------------------------- @@ -17,8 +23,8 @@ LIST(APPEND HEADERS ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}_config.h) # These will get ignored for standalone CMake and a true interface library made KOKKOS_ADD_INTERFACE_LIBRARY( kokkosalgorithms - HEADERS ${HEADERS} - SOURCES ${SOURCES} + HEADERS ${ALGO_HEADERS} + SOURCES ${ALGO_SOURCES} ) KOKKOS_LIB_INCLUDE_DIRECTORIES(kokkosalgorithms ${KOKKOS_TOP_BUILD_DIR} diff --git a/packages/kokkos/algorithms/src/Kokkos_Random.hpp b/packages/kokkos/algorithms/src/Kokkos_Random.hpp index 0a7967523..69d6cf8f3 100644 --- a/packages/kokkos/algorithms/src/Kokkos_Random.hpp +++ b/packages/kokkos/algorithms/src/Kokkos_Random.hpp @@ -94,9 +94,9 @@ namespace Kokkos { class Pool { public: //The Kokkos device type - typedef Device device_type; + using device_type = Device; //The actual generator type - typedef Generator<Device> generator_type; + using generator_type = Generator<Device>; //Default constructor: does not initialize a pool Pool(); @@ -124,7 +124,7 @@ namespace Kokkos { class Generator { public: //The Kokkos device type - typedef DeviceType device_type; + using device_type = DeviceType; //Max return values of respective [X]rand[S]() functions enum {MAX_URAND = 0xffffffffU}; @@ -138,75 +138,75 @@ namespace Kokkos { KOKKOS_INLINE_FUNCTION Generator (STATE_ARGUMENTS, int state_idx = 0); - //Draw a equidistributed uint32_t in the range (0,MAX_URAND] + //Draw a equidistributed uint32_t in the range [0,MAX_URAND) KOKKOS_INLINE_FUNCTION uint32_t urand(); - //Draw a equidistributed uint64_t in the range (0,MAX_URAND64] + //Draw a equidistributed uint64_t in the range [0,MAX_URAND64) KOKKOS_INLINE_FUNCTION uint64_t urand64(); - //Draw a equidistributed uint32_t in the range (0,range] + //Draw a equidistributed uint32_t in the range [0,range) KOKKOS_INLINE_FUNCTION uint32_t urand(const uint32_t& range); - //Draw a equidistributed uint32_t in the range (start,end] + //Draw a equidistributed uint32_t in the range [start,end) KOKKOS_INLINE_FUNCTION uint32_t urand(const uint32_t& start, const uint32_t& end ); - //Draw a equidistributed uint64_t in the range (0,range] + //Draw a equidistributed uint64_t in the range [0,range) KOKKOS_INLINE_FUNCTION uint64_t urand64(const uint64_t& range); - //Draw a equidistributed uint64_t in the range (start,end] + //Draw a equidistributed uint64_t in the range [start,end) KOKKOS_INLINE_FUNCTION uint64_t urand64(const uint64_t& start, const uint64_t& end ); - //Draw a equidistributed int in the range (0,MAX_RAND] + //Draw a equidistributed int in the range [0,MAX_RAND) KOKKOS_INLINE_FUNCTION int rand(); - //Draw a equidistributed int in the range (0,range] + //Draw a equidistributed int in the range [0,range) KOKKOS_INLINE_FUNCTION int rand(const int& range); - //Draw a equidistributed int in the range (start,end] + //Draw a equidistributed int in the range [start,end) KOKKOS_INLINE_FUNCTION int rand(const int& start, const int& end ); - //Draw a equidistributed int64_t in the range (0,MAX_RAND64] + //Draw a equidistributed int64_t in the range [0,MAX_RAND64) KOKKOS_INLINE_FUNCTION int64_t rand64(); - //Draw a equidistributed int64_t in the range (0,range] + //Draw a equidistributed int64_t in the range [0,range) KOKKOS_INLINE_FUNCTION int64_t rand64(const int64_t& range); - //Draw a equidistributed int64_t in the range (start,end] + //Draw a equidistributed int64_t in the range [start,end) KOKKOS_INLINE_FUNCTION int64_t rand64(const int64_t& start, const int64_t& end ); - //Draw a equidistributed float in the range (0,1.0] + //Draw a equidistributed float in the range [0,1.0) KOKKOS_INLINE_FUNCTION float frand(); - //Draw a equidistributed float in the range (0,range] + //Draw a equidistributed float in the range [0,range) KOKKOS_INLINE_FUNCTION float frand(const float& range); - //Draw a equidistributed float in the range (start,end] + //Draw a equidistributed float in the range [start,end) KOKKOS_INLINE_FUNCTION float frand(const float& start, const float& end ); - //Draw a equidistributed double in the range (0,1.0] + //Draw a equidistributed double in the range [0,1.0) KOKKOS_INLINE_FUNCTION double drand(); - //Draw a equidistributed double in the range (0,range] + //Draw a equidistributed double in the range [0,range) KOKKOS_INLINE_FUNCTION double drand(const double& range); - //Draw a equidistributed double in the range (start,end] + //Draw a equidistributed double in the range [start,end) KOKKOS_INLINE_FUNCTION double drand(const double& start, const double& end ); @@ -221,11 +221,11 @@ namespace Kokkos { //Additional Functions: - //Fills view with random numbers in the range (0,range] + //Fills view with random numbers in the range [0,range) template<class ViewType, class PoolType> void fill_random(ViewType view, PoolType pool, ViewType::value_type range); - //Fills view with random numbers in the range (start,end] + //Fills view with random numbers in the range [start,end) template<class ViewType, class PoolType> void fill_random(ViewType view, PoolType pool, ViewType::value_type start, ViewType::value_type end); @@ -381,7 +381,7 @@ struct rand<Generator, unsigned long> { // NOTE (mfh 26 oct 2014) This is a partial specialization for long // long, a C99 / C++11 signed type which is guaranteed to be at // least 64 bits. Do NOT write a partial specialization for -// int64_t!!! This is just a typedef! It could be either long or +// int64_t!!! This is just an alias! It could be either long or // long long. We don't know which a priori, and I've seen both. // The types long and long long are guaranteed to differ, so it's // always safe to specialize for both. @@ -413,7 +413,7 @@ struct rand<Generator, long long> { // NOTE (mfh 26 oct 2014) This is a partial specialization for // unsigned long long, a C99 / C++11 unsigned type which is // guaranteed to be at least 64 bits. Do NOT write a partial -// specialization for uint64_t!!! This is just a typedef! It could +// specialization for uint64_t!!! This is just an alias! It could // be either unsigned long or unsigned long long. We don't know // which a priori, and I've seen both. The types unsigned long and // unsigned long long are guaranteed to differ, so it's always safe @@ -604,11 +604,7 @@ struct Random_UniqueIndex { KOKKOS_FUNCTION static int get_state_idx(const locks_view_type) { #ifdef KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - const int i = ExecutionSpace::hardware_thread_id(); -#else const int i = ExecutionSpace::impl_hardware_thread_id(); -#endif return i; #else return 0; @@ -652,15 +648,13 @@ struct Random_UniqueIndex<Kokkos::Experimental::HIP> { static int get_state_idx(const locks_view_type& locks_) { #ifdef __HIP_DEVICE_COMPILE__ const int i_offset = - (hipThreadIdx_x * hipBlockDim_y + hipThreadIdx_y) * hipBlockDim_z + - hipThreadIdx_z; - int i = (((hipBlockIdx_x * hipGridDim_y + hipBlockIdx_y) * hipGridDim_z + - hipBlockIdx_z) * - hipBlockDim_x * hipBlockDim_y * hipBlockDim_z + + (threadIdx.x * blockDim.y + threadIdx.y) * blockDim.z + threadIdx.z; + int i = (((blockIdx.x * gridDim.y + blockIdx.y) * gridDim.z + blockIdx.z) * + blockDim.x * blockDim.y * blockDim.z + i_offset) % locks_.extent(0); while (Kokkos::atomic_compare_exchange(&locks_(i), 0, 1)) { - i += hipBlockDim_x * hipBlockDim_y * hipBlockDim_z; + i += blockDim.x * blockDim.y * blockDim.z; if (i >= static_cast<int>(locks_.extent(0))) { i = i_offset; } @@ -687,7 +681,7 @@ class Random_XorShift64 { friend class Random_XorShift64_Pool<DeviceType>; public: - typedef DeviceType device_type; + using device_type = DeviceType; constexpr static uint32_t MAX_URAND = std::numeric_limits<uint32_t>::max(); constexpr static uint64_t MAX_URAND64 = std::numeric_limits<uint64_t>::max(); @@ -805,11 +799,6 @@ class Random_XorShift64 { // number KOKKOS_INLINE_FUNCTION double normal() { -#ifndef __HIP_DEVICE_COMPILE__ // FIXME_HIP - using std::sqrt; -#else - using ::sqrt; -#endif double S = 2.0; double U; while (S >= 1.0) { @@ -817,7 +806,7 @@ class Random_XorShift64 { const double V = 2.0 * drand() - 1.0; S = U * U + V * V; } - return U * sqrt(-2.0 * log(S) / S); + return U * std::sqrt(-2.0 * std::log(S) / S); } KOKKOS_INLINE_FUNCTION @@ -830,15 +819,15 @@ template <class DeviceType = Kokkos::DefaultExecutionSpace> class Random_XorShift64_Pool { private: using execution_space = typename DeviceType::execution_space; - typedef View<int*, execution_space> locks_type; - typedef View<uint64_t*, DeviceType> state_data_type; + using locks_type = View<int*, execution_space>; + using state_data_type = View<uint64_t*, DeviceType>; locks_type locks_; state_data_type state_; int num_states_; public: - typedef Random_XorShift64<DeviceType> generator_type; - typedef DeviceType device_type; + using generator_type = Random_XorShift64<DeviceType>; + using device_type = DeviceType; KOKKOS_INLINE_FUNCTION Random_XorShift64_Pool() { num_states_ = 0; } @@ -923,8 +912,8 @@ class Random_XorShift1024 { friend class Random_XorShift1024_Pool<DeviceType>; public: - typedef Random_XorShift1024_Pool<DeviceType> pool_type; - typedef DeviceType device_type; + using pool_type = Random_XorShift1024_Pool<DeviceType>; + using device_type = DeviceType; constexpr static uint32_t MAX_URAND = std::numeric_limits<uint32_t>::max(); constexpr static uint64_t MAX_URAND64 = std::numeric_limits<uint64_t>::max(); @@ -1046,11 +1035,6 @@ class Random_XorShift1024 { // number KOKKOS_INLINE_FUNCTION double normal() { -#ifndef KOKKOS_ENABLE_HIP // FIXME_HIP - using std::sqrt; -#else - using ::sqrt; -#endif double S = 2.0; double U; while (S >= 1.0) { @@ -1058,7 +1042,7 @@ class Random_XorShift1024 { const double V = 2.0 * drand() - 1.0; S = U * U + V * V; } - return U * sqrt(-2.0 * log(S) / S); + return U * std::sqrt(-2.0 * std::log(S) / S); } KOKKOS_INLINE_FUNCTION @@ -1071,9 +1055,9 @@ template <class DeviceType = Kokkos::DefaultExecutionSpace> class Random_XorShift1024_Pool { private: using execution_space = typename DeviceType::execution_space; - typedef View<int*, execution_space> locks_type; - typedef View<int*, DeviceType> int_view_type; - typedef View<uint64_t * [16], DeviceType> state_data_type; + using locks_type = View<int*, execution_space>; + using int_view_type = View<int*, DeviceType>; + using state_data_type = View<uint64_t * [16], DeviceType>; locks_type locks_; state_data_type state_; @@ -1082,9 +1066,9 @@ class Random_XorShift1024_Pool { friend class Random_XorShift1024<DeviceType>; public: - typedef Random_XorShift1024<DeviceType> generator_type; + using generator_type = Random_XorShift1024<DeviceType>; - typedef DeviceType device_type; + using device_type = DeviceType; KOKKOS_INLINE_FUNCTION Random_XorShift1024_Pool() { num_states_ = 0; } @@ -1176,14 +1160,13 @@ struct fill_random_functor_begin_end; template <class ViewType, class RandomPool, int loops, class IndexType> struct fill_random_functor_range<ViewType, RandomPool, loops, 1, IndexType> { - typedef typename ViewType::execution_space execution_space; + using execution_space = typename ViewType::execution_space; ViewType a; RandomPool rand_pool; typename ViewType::const_value_type range; - typedef rand<typename RandomPool::generator_type, - typename ViewType::non_const_value_type> - Rand; + using Rand = rand<typename RandomPool::generator_type, + typename ViewType::non_const_value_type>; fill_random_functor_range(ViewType a_, RandomPool rand_pool_, typename ViewType::const_value_type range_) @@ -1203,14 +1186,13 @@ struct fill_random_functor_range<ViewType, RandomPool, loops, 1, IndexType> { template <class ViewType, class RandomPool, int loops, class IndexType> struct fill_random_functor_range<ViewType, RandomPool, loops, 2, IndexType> { - typedef typename ViewType::execution_space execution_space; + using execution_space = typename ViewType::execution_space; ViewType a; RandomPool rand_pool; typename ViewType::const_value_type range; - typedef rand<typename RandomPool::generator_type, - typename ViewType::non_const_value_type> - Rand; + using Rand = rand<typename RandomPool::generator_type, + typename ViewType::non_const_value_type>; fill_random_functor_range(ViewType a_, RandomPool rand_pool_, typename ViewType::const_value_type range_) @@ -1232,14 +1214,13 @@ struct fill_random_functor_range<ViewType, RandomPool, loops, 2, IndexType> { template <class ViewType, class RandomPool, int loops, class IndexType> struct fill_random_functor_range<ViewType, RandomPool, loops, 3, IndexType> { - typedef typename ViewType::execution_space execution_space; + using execution_space = typename ViewType::execution_space; ViewType a; RandomPool rand_pool; typename ViewType::const_value_type range; - typedef rand<typename RandomPool::generator_type, - typename ViewType::non_const_value_type> - Rand; + using Rand = rand<typename RandomPool::generator_type, + typename ViewType::non_const_value_type>; fill_random_functor_range(ViewType a_, RandomPool rand_pool_, typename ViewType::const_value_type range_) @@ -1262,14 +1243,13 @@ struct fill_random_functor_range<ViewType, RandomPool, loops, 3, IndexType> { template <class ViewType, class RandomPool, int loops, class IndexType> struct fill_random_functor_range<ViewType, RandomPool, loops, 4, IndexType> { - typedef typename ViewType::execution_space execution_space; + using execution_space = typename ViewType::execution_space; ViewType a; RandomPool rand_pool; typename ViewType::const_value_type range; - typedef rand<typename RandomPool::generator_type, - typename ViewType::non_const_value_type> - Rand; + using Rand = rand<typename RandomPool::generator_type, + typename ViewType::non_const_value_type>; fill_random_functor_range(ViewType a_, RandomPool rand_pool_, typename ViewType::const_value_type range_) @@ -1293,14 +1273,13 @@ struct fill_random_functor_range<ViewType, RandomPool, loops, 4, IndexType> { template <class ViewType, class RandomPool, int loops, class IndexType> struct fill_random_functor_range<ViewType, RandomPool, loops, 5, IndexType> { - typedef typename ViewType::execution_space execution_space; + using execution_space = typename ViewType::execution_space; ViewType a; RandomPool rand_pool; typename ViewType::const_value_type range; - typedef rand<typename RandomPool::generator_type, - typename ViewType::non_const_value_type> - Rand; + using Rand = rand<typename RandomPool::generator_type, + typename ViewType::non_const_value_type>; fill_random_functor_range(ViewType a_, RandomPool rand_pool_, typename ViewType::const_value_type range_) @@ -1326,14 +1305,13 @@ struct fill_random_functor_range<ViewType, RandomPool, loops, 5, IndexType> { template <class ViewType, class RandomPool, int loops, class IndexType> struct fill_random_functor_range<ViewType, RandomPool, loops, 6, IndexType> { - typedef typename ViewType::execution_space execution_space; + using execution_space = typename ViewType::execution_space; ViewType a; RandomPool rand_pool; typename ViewType::const_value_type range; - typedef rand<typename RandomPool::generator_type, - typename ViewType::non_const_value_type> - Rand; + using Rand = rand<typename RandomPool::generator_type, + typename ViewType::non_const_value_type>; fill_random_functor_range(ViewType a_, RandomPool rand_pool_, typename ViewType::const_value_type range_) @@ -1361,14 +1339,13 @@ struct fill_random_functor_range<ViewType, RandomPool, loops, 6, IndexType> { template <class ViewType, class RandomPool, int loops, class IndexType> struct fill_random_functor_range<ViewType, RandomPool, loops, 7, IndexType> { - typedef typename ViewType::execution_space execution_space; + using execution_space = typename ViewType::execution_space; ViewType a; RandomPool rand_pool; typename ViewType::const_value_type range; - typedef rand<typename RandomPool::generator_type, - typename ViewType::non_const_value_type> - Rand; + using Rand = rand<typename RandomPool::generator_type, + typename ViewType::non_const_value_type>; fill_random_functor_range(ViewType a_, RandomPool rand_pool_, typename ViewType::const_value_type range_) @@ -1398,14 +1375,13 @@ struct fill_random_functor_range<ViewType, RandomPool, loops, 7, IndexType> { template <class ViewType, class RandomPool, int loops, class IndexType> struct fill_random_functor_range<ViewType, RandomPool, loops, 8, IndexType> { - typedef typename ViewType::execution_space execution_space; + using execution_space = typename ViewType::execution_space; ViewType a; RandomPool rand_pool; typename ViewType::const_value_type range; - typedef rand<typename RandomPool::generator_type, - typename ViewType::non_const_value_type> - Rand; + using Rand = rand<typename RandomPool::generator_type, + typename ViewType::non_const_value_type>; fill_random_functor_range(ViewType a_, RandomPool rand_pool_, typename ViewType::const_value_type range_) @@ -1437,14 +1413,13 @@ struct fill_random_functor_range<ViewType, RandomPool, loops, 8, IndexType> { template <class ViewType, class RandomPool, int loops, class IndexType> struct fill_random_functor_begin_end<ViewType, RandomPool, loops, 1, IndexType> { - typedef typename ViewType::execution_space execution_space; + using execution_space = typename ViewType::execution_space; ViewType a; RandomPool rand_pool; typename ViewType::const_value_type begin, end; - typedef rand<typename RandomPool::generator_type, - typename ViewType::non_const_value_type> - Rand; + using Rand = rand<typename RandomPool::generator_type, + typename ViewType::non_const_value_type>; fill_random_functor_begin_end(ViewType a_, RandomPool rand_pool_, typename ViewType::const_value_type begin_, @@ -1466,14 +1441,13 @@ struct fill_random_functor_begin_end<ViewType, RandomPool, loops, 1, template <class ViewType, class RandomPool, int loops, class IndexType> struct fill_random_functor_begin_end<ViewType, RandomPool, loops, 2, IndexType> { - typedef typename ViewType::execution_space execution_space; + using execution_space = typename ViewType::execution_space; ViewType a; RandomPool rand_pool; typename ViewType::const_value_type begin, end; - typedef rand<typename RandomPool::generator_type, - typename ViewType::non_const_value_type> - Rand; + using Rand = rand<typename RandomPool::generator_type, + typename ViewType::non_const_value_type>; fill_random_functor_begin_end(ViewType a_, RandomPool rand_pool_, typename ViewType::const_value_type begin_, @@ -1497,14 +1471,13 @@ struct fill_random_functor_begin_end<ViewType, RandomPool, loops, 2, template <class ViewType, class RandomPool, int loops, class IndexType> struct fill_random_functor_begin_end<ViewType, RandomPool, loops, 3, IndexType> { - typedef typename ViewType::execution_space execution_space; + using execution_space = typename ViewType::execution_space; ViewType a; RandomPool rand_pool; typename ViewType::const_value_type begin, end; - typedef rand<typename RandomPool::generator_type, - typename ViewType::non_const_value_type> - Rand; + using Rand = rand<typename RandomPool::generator_type, + typename ViewType::non_const_value_type>; fill_random_functor_begin_end(ViewType a_, RandomPool rand_pool_, typename ViewType::const_value_type begin_, @@ -1529,14 +1502,13 @@ struct fill_random_functor_begin_end<ViewType, RandomPool, loops, 3, template <class ViewType, class RandomPool, int loops, class IndexType> struct fill_random_functor_begin_end<ViewType, RandomPool, loops, 4, IndexType> { - typedef typename ViewType::execution_space execution_space; + using execution_space = typename ViewType::execution_space; ViewType a; RandomPool rand_pool; typename ViewType::const_value_type begin, end; - typedef rand<typename RandomPool::generator_type, - typename ViewType::non_const_value_type> - Rand; + using Rand = rand<typename RandomPool::generator_type, + typename ViewType::non_const_value_type>; fill_random_functor_begin_end(ViewType a_, RandomPool rand_pool_, typename ViewType::const_value_type begin_, @@ -1562,14 +1534,13 @@ struct fill_random_functor_begin_end<ViewType, RandomPool, loops, 4, template <class ViewType, class RandomPool, int loops, class IndexType> struct fill_random_functor_begin_end<ViewType, RandomPool, loops, 5, IndexType> { - typedef typename ViewType::execution_space execution_space; + using execution_space = typename ViewType::execution_space; ViewType a; RandomPool rand_pool; typename ViewType::const_value_type begin, end; - typedef rand<typename RandomPool::generator_type, - typename ViewType::non_const_value_type> - Rand; + using Rand = rand<typename RandomPool::generator_type, + typename ViewType::non_const_value_type>; fill_random_functor_begin_end(ViewType a_, RandomPool rand_pool_, typename ViewType::const_value_type begin_, @@ -1597,14 +1568,13 @@ struct fill_random_functor_begin_end<ViewType, RandomPool, loops, 5, template <class ViewType, class RandomPool, int loops, class IndexType> struct fill_random_functor_begin_end<ViewType, RandomPool, loops, 6, IndexType> { - typedef typename ViewType::execution_space execution_space; + using execution_space = typename ViewType::execution_space; ViewType a; RandomPool rand_pool; typename ViewType::const_value_type begin, end; - typedef rand<typename RandomPool::generator_type, - typename ViewType::non_const_value_type> - Rand; + using Rand = rand<typename RandomPool::generator_type, + typename ViewType::non_const_value_type>; fill_random_functor_begin_end(ViewType a_, RandomPool rand_pool_, typename ViewType::const_value_type begin_, @@ -1634,14 +1604,13 @@ struct fill_random_functor_begin_end<ViewType, RandomPool, loops, 6, template <class ViewType, class RandomPool, int loops, class IndexType> struct fill_random_functor_begin_end<ViewType, RandomPool, loops, 7, IndexType> { - typedef typename ViewType::execution_space execution_space; + using execution_space = typename ViewType::execution_space; ViewType a; RandomPool rand_pool; typename ViewType::const_value_type begin, end; - typedef rand<typename RandomPool::generator_type, - typename ViewType::non_const_value_type> - Rand; + using Rand = rand<typename RandomPool::generator_type, + typename ViewType::non_const_value_type>; fill_random_functor_begin_end(ViewType a_, RandomPool rand_pool_, typename ViewType::const_value_type begin_, @@ -1673,14 +1642,13 @@ struct fill_random_functor_begin_end<ViewType, RandomPool, loops, 7, template <class ViewType, class RandomPool, int loops, class IndexType> struct fill_random_functor_begin_end<ViewType, RandomPool, loops, 8, IndexType> { - typedef typename ViewType::execution_space execution_space; + using execution_space = typename ViewType::execution_space; ViewType a; RandomPool rand_pool; typename ViewType::const_value_type begin, end; - typedef rand<typename RandomPool::generator_type, - typename ViewType::non_const_value_type> - Rand; + using Rand = rand<typename RandomPool::generator_type, + typename ViewType::non_const_value_type>; fill_random_functor_begin_end(ViewType a_, RandomPool rand_pool_, typename ViewType::const_value_type begin_, diff --git a/packages/kokkos/algorithms/src/Kokkos_Sort.hpp b/packages/kokkos/algorithms/src/Kokkos_Sort.hpp index 1c79a505b..d17c02776 100644 --- a/packages/kokkos/algorithms/src/Kokkos_Sort.hpp +++ b/packages/kokkos/algorithms/src/Kokkos_Sort.hpp @@ -95,9 +95,9 @@ class BinSort { public: template <class DstViewType, class SrcViewType> struct copy_functor { - typedef typename SrcViewType::const_type src_view_type; + using src_view_type = typename SrcViewType::const_type; - typedef Impl::CopyOp<DstViewType, src_view_type> copy_op; + using copy_op = Impl::CopyOp<DstViewType, src_view_type>; DstViewType dst_values; src_view_type src_values; @@ -120,17 +120,17 @@ class BinSort { // If a Kokkos::View then can generate constant random access // otherwise can only use the constant type. - typedef typename std::conditional< + using src_view_type = typename std::conditional< Kokkos::is_view<SrcViewType>::value, Kokkos::View<typename SrcViewType::const_data_type, typename SrcViewType::array_layout, typename SrcViewType::device_type, Kokkos::MemoryTraits<Kokkos::RandomAccess> >, - typename SrcViewType::const_type>::type src_view_type; + typename SrcViewType::const_type>::type; - typedef typename PermuteViewType::const_type perm_view_type; + using perm_view_type = typename PermuteViewType::const_type; - typedef Impl::CopyOp<DstViewType, src_view_type> copy_op; + using copy_op = Impl::CopyOp<DstViewType, src_view_type>; DstViewType dst_values; perm_view_type sort_order; @@ -151,8 +151,8 @@ class BinSort { } }; - typedef typename Space::execution_space execution_space; - typedef BinSortOp bin_op_type; + using execution_space = typename Space::execution_space; + using bin_op_type = BinSortOp; struct bin_count_tag {}; struct bin_offset_tag {}; @@ -160,30 +160,30 @@ class BinSort { struct bin_sort_bins_tag {}; public: - typedef SizeType size_type; - typedef size_type value_type; + using size_type = SizeType; + using value_type = size_type; - typedef Kokkos::View<size_type*, Space> offset_type; - typedef Kokkos::View<const int*, Space> bin_count_type; + using offset_type = Kokkos::View<size_type*, Space>; + using bin_count_type = Kokkos::View<const int*, Space>; - typedef typename KeyViewType::const_type const_key_view_type; + using const_key_view_type = typename KeyViewType::const_type; // If a Kokkos::View then can generate constant random access // otherwise can only use the constant type. - typedef typename std::conditional< + using const_rnd_key_view_type = typename std::conditional< Kokkos::is_view<KeyViewType>::value, Kokkos::View<typename KeyViewType::const_data_type, typename KeyViewType::array_layout, typename KeyViewType::device_type, Kokkos::MemoryTraits<Kokkos::RandomAccess> >, - const_key_view_type>::type const_rnd_key_view_type; + const_key_view_type>::type; - typedef typename KeyViewType::non_const_value_type non_const_key_scalar; - typedef typename KeyViewType::const_value_type const_key_scalar; + using non_const_key_scalar = typename KeyViewType::non_const_value_type; + using const_key_scalar = typename KeyViewType::const_value_type; - typedef Kokkos::View<int*, Space, Kokkos::MemoryTraits<Kokkos::Atomic> > - bin_count_atomic_type; + using bin_count_atomic_type = + Kokkos::View<int*, Space, Kokkos::MemoryTraits<Kokkos::Atomic> >; private: const_key_view_type keys; @@ -222,12 +222,12 @@ class BinSort { "Kokkos::SortImpl::BinSortFunctor::bin_count", bin_op.max_bins()); bin_count_const = bin_count_atomic; bin_offsets = - offset_type(ViewAllocateWithoutInitializing( - "Kokkos::SortImpl::BinSortFunctor::bin_offsets"), + offset_type(view_alloc(WithoutInitializing, + "Kokkos::SortImpl::BinSortFunctor::bin_offsets"), bin_op.max_bins()); sort_order = - offset_type(ViewAllocateWithoutInitializing( - "Kokkos::SortImpl::BinSortFunctor::sort_order"), + offset_type(view_alloc(WithoutInitializing, + "Kokkos::SortImpl::BinSortFunctor::sort_order"), range_end - range_begin); } @@ -266,10 +266,10 @@ class BinSort { template <class ValuesViewType> void sort(ValuesViewType const& values, int values_range_begin, int values_range_end) const { - typedef Kokkos::View<typename ValuesViewType::data_type, - typename ValuesViewType::array_layout, - typename ValuesViewType::device_type> - scratch_view_type; + using scratch_view_type = + Kokkos::View<typename ValuesViewType::data_type, + typename ValuesViewType::array_layout, + typename ValuesViewType::device_type>; const size_t len = range_end - range_begin; const size_t values_len = values_range_end - values_range_begin; @@ -278,16 +278,9 @@ class BinSort { "BinSort::sort: values range length != permutation vector length"); } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE scratch_view_type sorted_values( - ViewAllocateWithoutInitializing( - "Kokkos::SortImpl::BinSortFunctor::sorted_values"), - len, values.extent(1), values.extent(2), values.extent(3), - values.extent(4), values.extent(5), values.extent(6), values.extent(7)); -#else - scratch_view_type sorted_values( - ViewAllocateWithoutInitializing( - "Kokkos::SortImpl::BinSortFunctor::sorted_values"), + view_alloc(WithoutInitializing, + "Kokkos::SortImpl::BinSortFunctor::sorted_values"), values.rank_dynamic > 0 ? len : KOKKOS_IMPL_CTOR_DEFAULT_ARG, values.rank_dynamic > 1 ? values.extent(1) : KOKKOS_IMPL_CTOR_DEFAULT_ARG, @@ -303,7 +296,6 @@ class BinSort { : KOKKOS_IMPL_CTOR_DEFAULT_ARG, values.rank_dynamic > 7 ? values.extent(7) : KOKKOS_IMPL_CTOR_DEFAULT_ARG); -#endif { copy_permute_functor<scratch_view_type /* DstViewType */ @@ -511,8 +503,8 @@ bool try_std_sort(ViewType view) { template <class ViewType> struct min_max_functor { - typedef Kokkos::MinMaxScalar<typename ViewType::non_const_value_type> - minmax_scalar; + using minmax_scalar = + Kokkos::MinMaxScalar<typename ViewType::non_const_value_type>; ViewType view; min_max_functor(const ViewType& view_) : view(view_) {} @@ -531,7 +523,7 @@ void sort(ViewType const& view, bool const always_use_kokkos_sort = false) { if (!always_use_kokkos_sort) { if (Impl::try_std_sort(view)) return; } - typedef BinOp1D<ViewType> CompType; + using CompType = BinOp1D<ViewType>; Kokkos::MinMaxScalar<typename ViewType::non_const_value_type> result; Kokkos::MinMax<typename ViewType::non_const_value_type> reducer(result); @@ -548,8 +540,8 @@ void sort(ViewType const& view, bool const always_use_kokkos_sort = false) { template <class ViewType> void sort(ViewType view, size_t const begin, size_t const end) { - typedef Kokkos::RangePolicy<typename ViewType::execution_space> range_policy; - typedef BinOp1D<ViewType> CompType; + using range_policy = Kokkos::RangePolicy<typename ViewType::execution_space>; + using CompType = BinOp1D<ViewType>; Kokkos::MinMaxScalar<typename ViewType::non_const_value_type> result; Kokkos::MinMax<typename ViewType::non_const_value_type> reducer(result); diff --git a/packages/kokkos/algorithms/unit_tests/CMakeLists.txt b/packages/kokkos/algorithms/unit_tests/CMakeLists.txt index e3563a8b9..819c9e54b 100644 --- a/packages/kokkos/algorithms/unit_tests/CMakeLists.txt +++ b/packages/kokkos/algorithms/unit_tests/CMakeLists.txt @@ -20,14 +20,18 @@ KOKKOS_ADD_TEST_LIBRARY( HEADERS ${GTEST_SOURCE_DIR}/gtest/gtest.h SOURCES ${GTEST_SOURCE_DIR}/gtest/gtest-all.cc ) -# WORKAROUND FOR HIPCC -IF(Kokkos_ENABLE_HIP) - TARGET_COMPILE_DEFINITIONS(kokkosalgorithms_gtest PUBLIC "-DGTEST_HAS_PTHREAD=0 --amdgpu-target=gfx906") -ELSE() - TARGET_COMPILE_DEFINITIONS(kokkosalgorithms_gtest PUBLIC "-DGTEST_HAS_PTHREAD=0") -ENDIF() +# avoid deprecation warnings from MSVC +TARGET_COMPILE_DEFINITIONS(kokkosalgorithms_gtest PUBLIC GTEST_HAS_TR1_TUPLE=0 GTEST_HAS_PTHREAD=0) + +IF((NOT (Kokkos_ENABLE_CUDA AND WIN32)) AND (NOT ("${KOKKOS_CXX_COMPILER_ID}" STREQUAL "Fujitsu"))) TARGET_COMPILE_FEATURES(kokkosalgorithms_gtest PUBLIC cxx_std_11) +ENDIF() + +# Suppress clang-tidy diagnostics on code that we do not have control over +IF(CMAKE_CXX_CLANG_TIDY) + SET_TARGET_PROPERTIES(kokkosalgorithms_gtest PROPERTIES CXX_CLANG_TIDY "") +ENDIF() SET(SOURCES UnitTestMain.cpp diff --git a/packages/kokkos/algorithms/unit_tests/Makefile b/packages/kokkos/algorithms/unit_tests/Makefile index 4a192b08e..c112d7c6f 100644 --- a/packages/kokkos/algorithms/unit_tests/Makefile +++ b/packages/kokkos/algorithms/unit_tests/Makefile @@ -31,10 +31,10 @@ ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1) TEST_TARGETS += test-cuda endif -ifeq ($(KOKKOS_INTERNAL_USE_ROCM), 1) - OBJ_ROCM = TestROCm.o UnitTestMain.o gtest-all.o - TARGETS += KokkosAlgorithms_UnitTest_ROCm - TEST_TARGETS += test-rocm +ifeq ($(KOKKOS_INTERNAL_USE_HIP), 1) + OBJ_HIP = TestHIP.o UnitTestMain.o gtest-all.o + TARGETS += KokkosAlgorithms_UnitTest_HIP + TEST_TARGETS += test-hip endif ifeq ($(KOKKOS_INTERNAL_USE_PTHREADS), 1) @@ -64,8 +64,8 @@ endif KokkosAlgorithms_UnitTest_Cuda: $(OBJ_CUDA) $(KOKKOS_LINK_DEPENDS) $(LINK) $(EXTRA_PATH) $(OBJ_CUDA) $(KOKKOS_LIBS) $(LIB) $(KOKKOS_LDFLAGS) $(LDFLAGS) -o KokkosAlgorithms_UnitTest_Cuda -KokkosAlgorithms_UnitTest_ROCm: $(OBJ_ROCM) $(KOKKOS_LINK_DEPENDS) - $(LINK) $(EXTRA_PATH) $(OBJ_ROCM) $(KOKKOS_LIBS) $(LIB) $(KOKKOS_LDFLAGS) $(LDFLAGS) -o KokkosAlgorithms_UnitTest_ROCm +KokkosAlgorithms_UnitTest_HIP: $(OBJ_HIP) $(KOKKOS_LINK_DEPENDS) + $(LINK) $(EXTRA_PATH) $(OBJ_HIP) $(KOKKOS_LIBS) $(LIB) $(KOKKOS_LDFLAGS) $(LDFLAGS) -o KokkosAlgorithms_UnitTest_HIP KokkosAlgorithms_UnitTest_Threads: $(OBJ_THREADS) $(KOKKOS_LINK_DEPENDS) $(LINK) $(EXTRA_PATH) $(OBJ_THREADS) $(KOKKOS_LIBS) $(LIB) $(KOKKOS_LDFLAGS) $(LDFLAGS) -o KokkosAlgorithms_UnitTest_Threads @@ -82,8 +82,8 @@ KokkosAlgorithms_UnitTest_Serial: $(OBJ_SERIAL) $(KOKKOS_LINK_DEPENDS) test-cuda: KokkosAlgorithms_UnitTest_Cuda ./KokkosAlgorithms_UnitTest_Cuda -test-rocm: KokkosAlgorithms_UnitTest_ROCm - ./KokkosAlgorithms_UnitTest_ROCm +test-hip: KokkosAlgorithms_UnitTest_HIP + ./KokkosAlgorithms_UnitTest_HIP test-threads: KokkosAlgorithms_UnitTest_Threads ./KokkosAlgorithms_UnitTest_Threads diff --git a/packages/kokkos/algorithms/unit_tests/TestRandom.hpp b/packages/kokkos/algorithms/unit_tests/TestRandom.hpp index 10a496242..caba92c15 100644 --- a/packages/kokkos/algorithms/unit_tests/TestRandom.hpp +++ b/packages/kokkos/algorithms/unit_tests/TestRandom.hpp @@ -111,10 +111,10 @@ struct RandomProperties { template <class GeneratorPool, class Scalar> struct test_random_functor { - typedef typename GeneratorPool::generator_type rnd_type; + using rnd_type = typename GeneratorPool::generator_type; - typedef RandomProperties value_type; - typedef typename GeneratorPool::device_type device_type; + using value_type = RandomProperties; + using device_type = typename GeneratorPool::device_type; GeneratorPool rand_pool; const double mean; @@ -125,12 +125,12 @@ struct test_random_functor { // implementations might violate this upper bound, due to rounding // error. Just in case, we leave an extra space at the end of each // dimension, in the View types below. - typedef Kokkos::View<int[HIST_DIM1D + 1], typename GeneratorPool::device_type> - type_1d; + using type_1d = + Kokkos::View<int[HIST_DIM1D + 1], typename GeneratorPool::device_type>; type_1d density_1d; - typedef Kokkos::View<int[HIST_DIM3D + 1][HIST_DIM3D + 1][HIST_DIM3D + 1], - typename GeneratorPool::device_type> - type_3d; + using type_3d = + Kokkos::View<int[HIST_DIM3D + 1][HIST_DIM3D + 1][HIST_DIM3D + 1], + typename GeneratorPool::device_type>; type_3d density_3d; test_random_functor(GeneratorPool rand_pool_, type_1d d1d, type_3d d3d) @@ -200,9 +200,9 @@ struct test_random_functor { template <class DeviceType> struct test_histogram1d_functor { - typedef RandomProperties value_type; - typedef typename DeviceType::execution_space execution_space; - typedef typename DeviceType::memory_space memory_space; + using value_type = RandomProperties; + using execution_space = typename DeviceType::execution_space; + using memory_space = typename DeviceType::memory_space; // NOTE (mfh 03 Nov 2014): Kokkos::rand::max() is supposed to define // an exclusive upper bound on the range of random numbers that @@ -210,7 +210,7 @@ struct test_histogram1d_functor { // implementations might violate this upper bound, due to rounding // error. Just in case, we leave an extra space at the end of each // dimension, in the View type below. - typedef Kokkos::View<int[HIST_DIM1D + 1], memory_space> type_1d; + using type_1d = Kokkos::View<int[HIST_DIM1D + 1], memory_space>; type_1d density_1d; double mean; @@ -219,7 +219,7 @@ struct test_histogram1d_functor { KOKKOS_INLINE_FUNCTION void operator()( const typename memory_space::size_type i, RandomProperties& prop) const { - typedef typename memory_space::size_type size_type; + using size_type = typename memory_space::size_type; const double count = density_1d(i); prop.mean += count; prop.variance += 1.0 * (count - mean) * (count - mean); @@ -234,9 +234,9 @@ struct test_histogram1d_functor { template <class DeviceType> struct test_histogram3d_functor { - typedef RandomProperties value_type; - typedef typename DeviceType::execution_space execution_space; - typedef typename DeviceType::memory_space memory_space; + using value_type = RandomProperties; + using execution_space = typename DeviceType::execution_space; + using memory_space = typename DeviceType::memory_space; // NOTE (mfh 03 Nov 2014): Kokkos::rand::max() is supposed to define // an exclusive upper bound on the range of random numbers that @@ -244,9 +244,9 @@ struct test_histogram3d_functor { // implementations might violate this upper bound, due to rounding // error. Just in case, we leave an extra space at the end of each // dimension, in the View type below. - typedef Kokkos::View<int[HIST_DIM3D + 1][HIST_DIM3D + 1][HIST_DIM3D + 1], - memory_space> - type_3d; + using type_3d = + Kokkos::View<int[HIST_DIM3D + 1][HIST_DIM3D + 1][HIST_DIM3D + 1], + memory_space>; type_3d density_3d; double mean; @@ -255,7 +255,7 @@ struct test_histogram3d_functor { KOKKOS_INLINE_FUNCTION void operator()( const typename memory_space::size_type i, RandomProperties& prop) const { - typedef typename memory_space::size_type size_type; + using size_type = typename memory_space::size_type; const double count = density_3d( i / (HIST_DIM3D * HIST_DIM3D), (i % (HIST_DIM3D * HIST_DIM3D)) / HIST_DIM3D, i % HIST_DIM3D); @@ -276,7 +276,7 @@ struct test_histogram3d_functor { // template <class RandomGenerator, class Scalar> struct test_random_scalar { - typedef typename RandomGenerator::generator_type rnd_type; + using rnd_type = typename RandomGenerator::generator_type; int pass_mean, pass_var, pass_covar; int pass_hist1d_mean, pass_hist1d_var, pass_hist1d_covar; @@ -294,7 +294,7 @@ struct test_random_scalar { cout << " -- Testing randomness properties" << endl; RandomProperties result; - typedef test_random_functor<RandomGenerator, Scalar> functor_type; + using functor_type = test_random_functor<RandomGenerator, Scalar>; parallel_reduce(num_draws / 1024, functor_type(pool, density_1d, density_3d), result); @@ -325,8 +325,8 @@ struct test_random_scalar { cout << " -- Testing 1-D histogram" << endl; RandomProperties result; - typedef test_histogram1d_functor<typename RandomGenerator::device_type> - functor_type; + using functor_type = + test_histogram1d_functor<typename RandomGenerator::device_type>; parallel_reduce(HIST_DIM1D, functor_type(density_1d, num_draws), result); double tolerance = 6 * std::sqrt(1.0 / HIST_DIM1D); @@ -357,8 +357,8 @@ struct test_random_scalar { cout << " -- Testing 3-D histogram" << endl; RandomProperties result; - typedef test_histogram3d_functor<typename RandomGenerator::device_type> - functor_type; + using functor_type = + test_histogram3d_functor<typename RandomGenerator::device_type>; parallel_reduce(HIST_DIM1D, functor_type(density_3d, num_draws), result); double tolerance = 6 * std::sqrt(1.0 / HIST_DIM1D); diff --git a/packages/kokkos/algorithms/unit_tests/TestSort.hpp b/packages/kokkos/algorithms/unit_tests/TestSort.hpp index b6ff91c25..a3c362ec2 100644 --- a/packages/kokkos/algorithms/unit_tests/TestSort.hpp +++ b/packages/kokkos/algorithms/unit_tests/TestSort.hpp @@ -55,8 +55,8 @@ namespace Impl { template <class ExecutionSpace, class Scalar> struct is_sorted_struct { - typedef unsigned int value_type; - typedef ExecutionSpace execution_space; + using value_type = unsigned int; + using execution_space = ExecutionSpace; Kokkos::View<Scalar*, ExecutionSpace> keys; @@ -69,8 +69,8 @@ struct is_sorted_struct { template <class ExecutionSpace, class Scalar> struct sum { - typedef double value_type; - typedef ExecutionSpace execution_space; + using value_type = double; + using execution_space = ExecutionSpace; Kokkos::View<Scalar*, ExecutionSpace> keys; @@ -81,8 +81,8 @@ struct sum { template <class ExecutionSpace, class Scalar> struct bin3d_is_sorted_struct { - typedef unsigned int value_type; - typedef ExecutionSpace execution_space; + using value_type = unsigned int; + using execution_space = ExecutionSpace; Kokkos::View<Scalar * [3], ExecutionSpace> keys; @@ -115,8 +115,8 @@ struct bin3d_is_sorted_struct { template <class ExecutionSpace, class Scalar> struct sum3D { - typedef double value_type; - typedef ExecutionSpace execution_space; + using value_type = double; + using execution_space = ExecutionSpace; Kokkos::View<Scalar * [3], ExecutionSpace> keys; @@ -131,7 +131,7 @@ struct sum3D { template <class ExecutionSpace, typename KeyType> void test_1D_sort_impl(unsigned int n, bool force_kokkos) { - typedef Kokkos::View<KeyType*, ExecutionSpace> KeyViewType; + using KeyViewType = Kokkos::View<KeyType*, ExecutionSpace>; KeyViewType keys("Keys", n); // Test sorting array with all numbers equal @@ -166,7 +166,7 @@ void test_1D_sort_impl(unsigned int n, bool force_kokkos) { template <class ExecutionSpace, typename KeyType> void test_3D_sort_impl(unsigned int n) { - typedef Kokkos::View<KeyType * [3], ExecutionSpace> KeyViewType; + using KeyViewType = Kokkos::View<KeyType * [3], ExecutionSpace>; KeyViewType keys("Keys", n * n * n); @@ -186,7 +186,7 @@ void test_3D_sort_impl(unsigned int n) { typename KeyViewType::value_type min[3] = {0, 0, 0}; typename KeyViewType::value_type max[3] = {100, 100, 100}; - typedef Kokkos::BinOp3D<KeyViewType> BinOp; + using BinOp = Kokkos::BinOp3D<KeyViewType>; BinOp bin_op(bin_max, min, max); Kokkos::BinSort<KeyViewType, BinOp> Sorter(keys, bin_op, false); Sorter.create_permute_vector(); @@ -215,9 +215,9 @@ void test_3D_sort_impl(unsigned int n) { template <class ExecutionSpace, typename KeyType> void test_dynamic_view_sort_impl(unsigned int n) { - typedef Kokkos::Experimental::DynamicView<KeyType*, ExecutionSpace> - KeyDynamicViewType; - typedef Kokkos::View<KeyType*, ExecutionSpace> KeyViewType; + using KeyDynamicViewType = + Kokkos::Experimental::DynamicView<KeyType*, ExecutionSpace>; + using KeyViewType = Kokkos::View<KeyType*, ExecutionSpace>; const size_t upper_bound = 2 * n; const size_t min_chunk_size = 1024; @@ -305,8 +305,8 @@ void test_issue_1160_impl() { Kokkos::deep_copy(x_, h_x); Kokkos::deep_copy(v_, h_v); - typedef decltype(element_) KeyViewType; - typedef Kokkos::BinOp1D<KeyViewType> BinOp; + using KeyViewType = decltype(element_); + using BinOp = Kokkos::BinOp1D<KeyViewType>; int begin = 3; int end = 8; diff --git a/packages/kokkos/appveyor.yml b/packages/kokkos/appveyor.yml index 8f139ba6a..c40bf066b 100644 --- a/packages/kokkos/appveyor.yml +++ b/packages/kokkos/appveyor.yml @@ -5,6 +5,6 @@ build_script: - cmd: >- mkdir build && cd build && - cmake c:\projects\source -DKokkos_ENABLE_TESTS=ON -DKokkos_ENABLE_LIBDL=OFF -DKokkos_ENABLE_PROFILING=OFF && + cmake c:\projects\source -DKokkos_ENABLE_TESTS=ON && cmake --build . --target install && ctest -C Debug -V diff --git a/packages/kokkos/benchmarks/atomic/Makefile b/packages/kokkos/benchmarks/atomic/Makefile index 64b43917d..636c0ad4a 100644 --- a/packages/kokkos/benchmarks/atomic/Makefile +++ b/packages/kokkos/benchmarks/atomic/Makefile @@ -1,31 +1,38 @@ -KOKKOS_PATH = ${HOME}/kokkos -KOKKOS_DEVICES = "OpenMP" -KOKKOS_ARCH = "SNB" -EXE_NAME = "test" +KOKKOS_DEVICES=Cuda +KOKKOS_CUDA_OPTIONS=enable_lambda +KOKKOS_ARCH = "SNB,Volta70" -SRC = $(wildcard *.cpp) + +MAKEFILE_PATH := $(subst Makefile,,$(abspath $(lastword $(MAKEFILE_LIST)))) + +ifndef KOKKOS_PATH + KOKKOS_PATH = $(MAKEFILE_PATH)../.. +endif + +SRC = $(wildcard $(MAKEFILE_PATH)*.cpp) +HEADERS = $(wildcard $(MAKEFILE_PATH)*.hpp) + +vpath %.cpp $(sort $(dir $(SRC))) default: build echo "Start Build" - ifneq (,$(findstring Cuda,$(KOKKOS_DEVICES))) CXX = ${KOKKOS_PATH}/bin/nvcc_wrapper -EXE = ${EXE_NAME}.cuda -KOKKOS_CUDA_OPTIONS = "enable_lambda" +EXE = atomic_perf.cuda else CXX = g++ -EXE = ${EXE_NAME}.host +EXE = atomic_perf.exe endif -CXXFLAGS = -O3 - -LINK = ${CXX} -LINKFLAGS = -O3 +CXXFLAGS ?= -O3 -g +override CXXFLAGS += -I$(MAKEFILE_PATH) DEPFLAGS = -M +LINK = ${CXX} +LINKFLAGS = -OBJ = $(SRC:.cpp=.o) +OBJ = $(notdir $(SRC:.cpp=.o)) LIB = include $(KOKKOS_PATH)/Makefile.kokkos @@ -35,10 +42,10 @@ build: $(EXE) $(EXE): $(OBJ) $(KOKKOS_LINK_DEPENDS) $(LINK) $(KOKKOS_LDFLAGS) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(KOKKOS_LIBS) $(LIB) -o $(EXE) -clean: kokkos-clean - rm -f *.o *.cuda *.host +clean: kokkos-clean + rm -f *.o atomic_perf.cuda atomic_perf.exe # Compilation rules -%.o:%.cpp $(KOKKOS_CPP_DEPENDS) - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) $(EXTRA_INC) -c $< +%.o:%.cpp $(KOKKOS_CPP_DEPENDS) $(HEADERS) + $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) $(EXTRA_INC) -c $< -o $(notdir $@) diff --git a/packages/kokkos/benchmarks/atomic/main.cpp b/packages/kokkos/benchmarks/atomic/main.cpp index 5f0977f75..7b5caa1ae 100644 --- a/packages/kokkos/benchmarks/atomic/main.cpp +++ b/packages/kokkos/benchmarks/atomic/main.cpp @@ -69,13 +69,13 @@ int main(int argc, char* argv[]) { return 0; } - int L = atoi(argv[1]); - int N = atoi(argv[2]); - int M = atoi(argv[3]); - int D = atoi(argv[4]); - int K = atoi(argv[5]); - int R = atoi(argv[6]); - int type = atoi(argv[7]); + int L = std::stoi(argv[1]); + int N = std::stoi(argv[2]); + int M = std::stoi(argv[3]); + int D = std::stoi(argv[4]); + int K = std::stoi(argv[5]); + int R = std::stoi(argv[6]); + int type = std::stoi(argv[7]); Kokkos::View<int*> offsets("Offsets", L, M); Kokkos::Random_XorShift64_Pool<> pool(12371); diff --git a/packages/kokkos/benchmarks/benchmark_suite/scripts/run_tests.bash b/packages/kokkos/benchmarks/benchmark_suite/scripts/run_tests.bash index 9dded535e..4fcac3df9 100755 --- a/packages/kokkos/benchmarks/benchmark_suite/scripts/run_tests.bash +++ b/packages/kokkos/benchmarks/benchmark_suite/scripts/run_tests.bash @@ -9,7 +9,7 @@ if [[ ${USE_CUDA} > 0 ]]; then BAF_EXE=bytes_and_flops.cuda TEAM_SIZE=256 else - BAF_EXE=bytes_and_flops.host + BAF_EXE=bytes_and_flops.exe TEAM_SIZE=1 fi diff --git a/packages/kokkos/benchmarks/bytes_and_flops/Makefile b/packages/kokkos/benchmarks/bytes_and_flops/Makefile index 6cbef56ff..1aa4edddc 100644 --- a/packages/kokkos/benchmarks/bytes_and_flops/Makefile +++ b/packages/kokkos/benchmarks/bytes_and_flops/Makefile @@ -1,6 +1,6 @@ KOKKOS_DEVICES=Cuda KOKKOS_CUDA_OPTIONS=enable_lambda -KOKKOS_ARCH = "SNB,Kepler35" +KOKKOS_ARCH = "SNB,Volta70" MAKEFILE_PATH := $(subst Makefile,,$(abspath $(lastword $(MAKEFILE_LIST)))) @@ -22,7 +22,7 @@ CXX = ${KOKKOS_PATH}/bin/nvcc_wrapper EXE = bytes_and_flops.cuda else CXX = g++ -EXE = bytes_and_flops.host +EXE = bytes_and_flops.exe endif CXXFLAGS ?= -O3 -g diff --git a/packages/kokkos/benchmarks/bytes_and_flops/main.cpp b/packages/kokkos/benchmarks/bytes_and_flops/main.cpp index c21a16200..6da2407a0 100644 --- a/packages/kokkos/benchmarks/bytes_and_flops/main.cpp +++ b/packages/kokkos/benchmarks/bytes_and_flops/main.cpp @@ -73,15 +73,15 @@ int main(int argc, char* argv[]) { return 0; } - int P = atoi(argv[1]); - int N = atoi(argv[2]); - int K = atoi(argv[3]); - int R = atoi(argv[4]); - int D = atoi(argv[5]); - int U = atoi(argv[6]); - int F = atoi(argv[7]); - int T = atoi(argv[8]); - int S = atoi(argv[9]); + int P = std::stoi(argv[1]); + int N = std::stoi(argv[2]); + int K = std::stoi(argv[3]); + int R = std::stoi(argv[4]); + int D = std::stoi(argv[5]); + int U = std::stoi(argv[6]); + int F = std::stoi(argv[7]); + int T = std::stoi(argv[8]); + int S = std::stoi(argv[9]); if (U > 8) { printf("U must be 1-8\n"); diff --git a/packages/kokkos/benchmarks/gather/Makefile b/packages/kokkos/benchmarks/gather/Makefile index 0ea9fb1dd..6827995be 100644 --- a/packages/kokkos/benchmarks/gather/Makefile +++ b/packages/kokkos/benchmarks/gather/Makefile @@ -1,7 +1,18 @@ -KOKKOS_PATH = ${HOME}/kokkos -SRC = $(wildcard *.cpp) KOKKOS_DEVICES=Cuda KOKKOS_CUDA_OPTIONS=enable_lambda +KOKKOS_ARCH = "SNB,Volta70" + + +MAKEFILE_PATH := $(subst Makefile,,$(abspath $(lastword $(MAKEFILE_LIST)))) + +ifndef KOKKOS_PATH + KOKKOS_PATH = $(MAKEFILE_PATH)../.. +endif + +SRC = $(wildcard $(MAKEFILE_PATH)*.cpp) +HEADERS = $(wildcard $(MAKEFILE_PATH)*.hpp) + +vpath %.cpp $(sort $(dir $(SRC))) default: build echo "Start Build" @@ -9,36 +20,32 @@ default: build ifneq (,$(findstring Cuda,$(KOKKOS_DEVICES))) CXX = ${KOKKOS_PATH}/bin/nvcc_wrapper EXE = gather.cuda -KOKKOS_DEVICES = "Cuda,OpenMP" -KOKKOS_ARCH = "SNB,Kepler35" else CXX = g++ -EXE = gather.host -KOKKOS_DEVICES = "OpenMP" -KOKKOS_ARCH = "SNB" +EXE = gather.exe endif -CXXFLAGS = -O3 -g +CXXFLAGS ?= -O3 -g +override CXXFLAGS += -I$(MAKEFILE_PATH) DEPFLAGS = -M LINK = ${CXX} LINKFLAGS = -OBJ = $(SRC:.cpp=.o) +OBJ = $(notdir $(SRC:.cpp=.o)) LIB = include $(KOKKOS_PATH)/Makefile.kokkos -$(warning ${KOKKOS_CPPFLAGS}) build: $(EXE) $(EXE): $(OBJ) $(KOKKOS_LINK_DEPENDS) $(LINK) $(KOKKOS_LDFLAGS) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(KOKKOS_LIBS) $(LIB) -o $(EXE) clean: kokkos-clean - rm -f *.o *.cuda *.host + rm -f *.o gather.cuda gather.exe # Compilation rules -%.o:%.cpp $(KOKKOS_CPP_DEPENDS) gather_unroll.hpp gather.hpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) $(EXTRA_INC) -c $< +%.o:%.cpp $(KOKKOS_CPP_DEPENDS) $(HEADERS) + $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) $(EXTRA_INC) -c $< -o $(notdir $@) diff --git a/packages/kokkos/benchmarks/gather/main.cpp b/packages/kokkos/benchmarks/gather/main.cpp index 6a2db3e02..5f10e4dcc 100644 --- a/packages/kokkos/benchmarks/gather/main.cpp +++ b/packages/kokkos/benchmarks/gather/main.cpp @@ -72,13 +72,13 @@ int main(int argc, char* argv[]) { return 0; } - int S = atoi(argv[1]); - int N = atoi(argv[2]); - int K = atoi(argv[3]); - int D = atoi(argv[4]); - int R = atoi(argv[5]); - int U = atoi(argv[6]); - int F = atoi(argv[7]); + int S = std::stoi(argv[1]); + int N = std::stoi(argv[2]); + int K = std::stoi(argv[3]); + int D = std::stoi(argv[4]); + int R = std::stoi(argv[5]); + int U = std::stoi(argv[6]); + int F = std::stoi(argv[7]); if ((S != 1) && (S != 2) && (S != 4)) { printf("S must be one of 1,2,4\n"); diff --git a/packages/kokkos/benchmarks/gups/Makefile b/packages/kokkos/benchmarks/gups/Makefile index 717611166..2a90621d8 100644 --- a/packages/kokkos/benchmarks/gups/Makefile +++ b/packages/kokkos/benchmarks/gups/Makefile @@ -1,28 +1,38 @@ -#Set your Kokkos path to something appropriate -KOKKOS_PATH = ${HOME}/git/kokkos-github-repo -KOKKOS_DEVICES = "Cuda" -KOKKOS_ARCH = "Pascal60" -KOKKOS_CUDA_OPTIONS = enable_lambda -#KOKKOS_DEVICES = "OpenMP" -#KOKKOS_ARCH = "Power8" +KOKKOS_DEVICES=Cuda +KOKKOS_CUDA_OPTIONS=enable_lambda +KOKKOS_ARCH = "SNB,Volta70" -SRC = gups-kokkos.cc + +MAKEFILE_PATH := $(subst Makefile,,$(abspath $(lastword $(MAKEFILE_LIST)))) + +ifndef KOKKOS_PATH + KOKKOS_PATH = $(MAKEFILE_PATH)../.. +endif + +SRC = $(wildcard $(MAKEFILE_PATH)*.cpp) +HEADERS = $(wildcard $(MAKEFILE_PATH)*.hpp) + +vpath %.cpp $(sort $(dir $(SRC))) default: build echo "Start Build" - -CXXFLAGS = -O3 -CXX = ${HOME}/git/kokkos-github-repo/bin/nvcc_wrapper -#CXX = g++ -LINK = ${CXX} +ifneq (,$(findstring Cuda,$(KOKKOS_DEVICES))) +CXX = ${KOKKOS_PATH}/bin/nvcc_wrapper +EXE = gups.cuda +else +CXX = g++ +EXE = gups.exe +endif -LINKFLAGS = -EXE = gups-kokkos +CXXFLAGS ?= -O3 -g +override CXXFLAGS += -I$(MAKEFILE_PATH) DEPFLAGS = -M +LINK = ${CXX} +LINKFLAGS = -OBJ = $(SRC:.cc=.o) +OBJ = $(notdir $(SRC:.cpp=.o)) LIB = include $(KOKKOS_PATH)/Makefile.kokkos @@ -32,10 +42,10 @@ build: $(EXE) $(EXE): $(OBJ) $(KOKKOS_LINK_DEPENDS) $(LINK) $(KOKKOS_LDFLAGS) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(KOKKOS_LIBS) $(LIB) -o $(EXE) -clean: kokkos-clean - rm -f *.o $(EXE) +clean: kokkos-clean + rm -f *.o gups.cuda gups.exe # Compilation rules -%.o:%.cc $(KOKKOS_CPP_DEPENDS) - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) $(EXTRA_INC) -c $< +%.o:%.cpp $(KOKKOS_CPP_DEPENDS) $(HEADERS) + $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) $(EXTRA_INC) -c $< -o $(notdir $@) diff --git a/packages/kokkos/benchmarks/gups/gups-kokkos.cc b/packages/kokkos/benchmarks/gups/gups-kokkos.cc deleted file mode 100644 index 36fc36925..000000000 --- a/packages/kokkos/benchmarks/gups/gups-kokkos.cc +++ /dev/null @@ -1,200 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// ************************************************************************ -//@HEADER -*/ - -#include "Kokkos_Core.hpp" -#include <cstdio> -#include <cstdlib> -#include <cmath> - -#include <sys/time.h> - -#define HLINE "-------------------------------------------------------------\n" - -#if defined(KOKKOS_ENABLE_CUDA) -typedef Kokkos::View<int64_t*, Kokkos::CudaSpace>::HostMirror GUPSHostArray; -typedef Kokkos::View<int64_t*, Kokkos::CudaSpace> GUPSDeviceArray; -#else -typedef Kokkos::View<int64_t*, Kokkos::HostSpace>::HostMirror GUPSHostArray; -typedef Kokkos::View<int64_t*, Kokkos::HostSpace> GUPSDeviceArray; -#endif - -typedef int GUPSIndex; - -double now() { - struct timeval now; - gettimeofday(&now, nullptr); - - return (double) now.tv_sec + ((double) now.tv_usec * 1.0e-6); -} - -void randomize_indices(GUPSHostArray& indices, GUPSDeviceArray& dev_indices, const int64_t dataCount) { - for( GUPSIndex i = 0; i < indices.extent(0); ++i ) { - indices[i] = lrand48() % dataCount; - } - - Kokkos::deep_copy(dev_indices, indices); -} - -void run_gups(GUPSDeviceArray& indices, GUPSDeviceArray& data, const int64_t datum, - const bool performAtomics) { - - if( performAtomics ) { - Kokkos::parallel_for("bench-gups-atomic", indices.extent(0), KOKKOS_LAMBDA(const GUPSIndex i) { - Kokkos::atomic_fetch_xor( &data[indices[i]], datum ); - }); - } else { - Kokkos::parallel_for("bench-gups-non-atomic", indices.extent(0), KOKKOS_LAMBDA(const GUPSIndex i) { - data[indices[i]] ^= datum; - }); - } - - Kokkos::fence(); -} - -int run_benchmark(const GUPSIndex indicesCount, const GUPSIndex dataCount, const int repeats, - const bool useAtomics) { - - printf("Reports fastest timing per kernel\n"); - printf("Creating Views...\n"); - - printf("Memory Sizes:\n"); - printf("- Elements: %15" PRIu64 " (%12.4f MB)\n", static_cast<uint64_t>(dataCount), - 1.0e-6 * ((double) dataCount * (double) sizeof(int64_t))); - printf("- Indices: %15" PRIu64 " (%12.4f MB)\n", static_cast<uint64_t>(indicesCount), - 1.0e-6 * ((double) indicesCount * (double) sizeof(int64_t))); - printf(" - Atomics: %15s\n", (useAtomics ? "Yes" : "No") ); - printf("Benchmark kernels will be performed for %d iterations.\n", repeats); - - printf(HLINE); - - GUPSDeviceArray dev_indices("indices", indicesCount); - GUPSDeviceArray dev_data("data", dataCount); - int64_t datum = -1; - - GUPSHostArray indices = Kokkos::create_mirror_view(dev_indices); - GUPSHostArray data = Kokkos::create_mirror_view(dev_data); - - double gupsTime = 0.0; - - printf("Initializing Views...\n"); - -#if defined(KOKKOS_HAVE_OPENMP) - Kokkos::parallel_for("init-data", Kokkos::RangePolicy<Kokkos::OpenMP>(0, dataCount), -#else - Kokkos::parallel_for("init-data", Kokkos::RangePolicy<Kokkos::Serial>(0, dataCount), -#endif - KOKKOS_LAMBDA(const int i) { - - data[i] = 10101010101; - }); - -#if defined(KOKKOS_HAVE_OPENMP) - Kokkos::parallel_for("init-indices", Kokkos::RangePolicy<Kokkos::OpenMP>(0, indicesCount), -#else - Kokkos::parallel_for("init-indices", Kokkos::RangePolicy<Kokkos::Serial>(0, indicesCount), -#endif - KOKKOS_LAMBDA(const int i) { - - indices[i] = 0; - }); - - Kokkos::deep_copy(dev_data, data); - Kokkos::deep_copy(dev_indices, indices); - double start; - - printf("Starting benchmarking...\n"); - - for( GUPSIndex k = 0; k < repeats; ++k ) { - randomize_indices(indices, dev_indices, data.extent(0)); - - start = now(); - run_gups(dev_indices, dev_data, datum, useAtomics); - gupsTime += now() - start; - } - - Kokkos::deep_copy(indices, dev_indices); - Kokkos::deep_copy(data, dev_data); - - printf(HLINE); - printf("GUP/s Random: %18.6f\n", - (1.0e-9 * ((double) repeats) * (double) dev_indices.extent(0)) / gupsTime); - printf(HLINE); - - return 0; -} - -int main(int argc, char* argv[]) { - - printf(HLINE); - printf("Kokkos GUPS Benchmark\n"); - printf(HLINE); - - srand48(1010101); - - Kokkos::initialize(argc, argv); - - int64_t indices = 8192; - int64_t data = 33554432; - int64_t repeats = 10; - bool useAtomics = false; - - for( int i = 1; i < argc; ++i ) { - if( strcmp( argv[i], "--indices" ) == 0 ) { - indices = std::atoll(argv[i+1]); - ++i; - } else if( strcmp( argv[i], "--data" ) == 0 ) { - data = std::atoll(argv[i+1]); - ++i; - } else if( strcmp( argv[i], "--repeats" ) == 0 ) { - repeats = std::atoll(argv[i+1]); - ++i; - } else if( strcmp( argv[i], "--atomics" ) == 0 ) { - useAtomics = true; - } - } - - const int rc = run_benchmark(indices, data, repeats, useAtomics); - - Kokkos::finalize(); - - return rc; -} diff --git a/packages/kokkos/benchmarks/gups/gups-kokkos.cpp b/packages/kokkos/benchmarks/gups/gups-kokkos.cpp new file mode 100644 index 000000000..5a3ad2380 --- /dev/null +++ b/packages/kokkos/benchmarks/gups/gups-kokkos.cpp @@ -0,0 +1,201 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// ************************************************************************ +//@HEADER +*/ + +#include "Kokkos_Core.hpp" +#include <cstdio> +#include <cstdlib> +#include <cmath> + +#include <sys/time.h> + +#define HLINE "-------------------------------------------------------------\n" + +#if defined(KOKKOS_ENABLE_CUDA) +using GUPSHostArray = Kokkos::View<int64_t*, Kokkos::CudaSpace>::HostMirror; +using GUPSDeviceArray = Kokkos::View<int64_t*, Kokkos::CudaSpace>; +#else +using GUPSHostArray = Kokkos::View<int64_t*, Kokkos::HostSpace>::HostMirror; +using GUPSDeviceArray = Kokkos::View<int64_t*, Kokkos::HostSpace>; +#endif + +using GUPSIndex = int; + +double now() { + struct timeval now; + gettimeofday(&now, nullptr); + + return (double)now.tv_sec + ((double)now.tv_usec * 1.0e-6); +} + +void randomize_indices(GUPSHostArray& indices, GUPSDeviceArray& dev_indices, + const int64_t dataCount) { + for (GUPSIndex i = 0; i < indices.extent(0); ++i) { + indices[i] = lrand48() % dataCount; + } + + Kokkos::deep_copy(dev_indices, indices); +} + +void run_gups(GUPSDeviceArray& indices, GUPSDeviceArray& data, + const int64_t datum, const bool performAtomics) { + if (performAtomics) { + Kokkos::parallel_for( + "bench-gups-atomic", indices.extent(0), + KOKKOS_LAMBDA(const GUPSIndex i) { + Kokkos::atomic_fetch_xor(&data[indices[i]], datum); + }); + } else { + Kokkos::parallel_for( + "bench-gups-non-atomic", indices.extent(0), + KOKKOS_LAMBDA(const GUPSIndex i) { data[indices[i]] ^= datum; }); + } + + Kokkos::fence(); +} + +int run_benchmark(const GUPSIndex indicesCount, const GUPSIndex dataCount, + const int repeats, const bool useAtomics) { + printf("Reports fastest timing per kernel\n"); + printf("Creating Views...\n"); + + printf("Memory Sizes:\n"); + printf("- Elements: %15" PRIu64 " (%12.4f MB)\n", + static_cast<uint64_t>(dataCount), + 1.0e-6 * ((double)dataCount * (double)sizeof(int64_t))); + printf("- Indices: %15" PRIu64 " (%12.4f MB)\n", + static_cast<uint64_t>(indicesCount), + 1.0e-6 * ((double)indicesCount * (double)sizeof(int64_t))); + printf(" - Atomics: %15s\n", (useAtomics ? "Yes" : "No")); + printf("Benchmark kernels will be performed for %d iterations.\n", repeats); + + printf(HLINE); + + GUPSDeviceArray dev_indices("indices", indicesCount); + GUPSDeviceArray dev_data("data", dataCount); + int64_t datum = -1; + + GUPSHostArray indices = Kokkos::create_mirror_view(dev_indices); + GUPSHostArray data = Kokkos::create_mirror_view(dev_data); + + double gupsTime = 0.0; + + printf("Initializing Views...\n"); + +#if defined(KOKKOS_HAVE_OPENMP) + Kokkos::parallel_for( + "init-data", Kokkos::RangePolicy<Kokkos::OpenMP>(0, dataCount), +#else + Kokkos::parallel_for( + "init-data", Kokkos::RangePolicy<Kokkos::Serial>(0, dataCount), +#endif + KOKKOS_LAMBDA(const int i) { data[i] = 10101010101; }); + +#if defined(KOKKOS_HAVE_OPENMP) + Kokkos::parallel_for( + "init-indices", Kokkos::RangePolicy<Kokkos::OpenMP>(0, indicesCount), +#else + Kokkos::parallel_for( + "init-indices", Kokkos::RangePolicy<Kokkos::Serial>(0, indicesCount), +#endif + KOKKOS_LAMBDA(const int i) { indices[i] = 0; }); + + Kokkos::deep_copy(dev_data, data); + Kokkos::deep_copy(dev_indices, indices); + double start; + + printf("Starting benchmarking...\n"); + + for (GUPSIndex k = 0; k < repeats; ++k) { + randomize_indices(indices, dev_indices, data.extent(0)); + + start = now(); + run_gups(dev_indices, dev_data, datum, useAtomics); + gupsTime += now() - start; + } + + Kokkos::deep_copy(indices, dev_indices); + Kokkos::deep_copy(data, dev_data); + + printf(HLINE); + printf( + "GUP/s Random: %18.6f\n", + (1.0e-9 * ((double)repeats) * (double)dev_indices.extent(0)) / gupsTime); + printf(HLINE); + + return 0; +} + +int main(int argc, char* argv[]) { + printf(HLINE); + printf("Kokkos GUPS Benchmark\n"); + printf(HLINE); + + srand48(1010101); + + Kokkos::initialize(argc, argv); + + int64_t indices = 8192; + int64_t data = 33554432; + int64_t repeats = 10; + bool useAtomics = false; + + for (int i = 1; i < argc; ++i) { + if (strcmp(argv[i], "--indices") == 0) { + indices = std::atoll(argv[i + 1]); + ++i; + } else if (strcmp(argv[i], "--data") == 0) { + data = std::atoll(argv[i + 1]); + ++i; + } else if (strcmp(argv[i], "--repeats") == 0) { + repeats = std::atoll(argv[i + 1]); + ++i; + } else if (strcmp(argv[i], "--atomics") == 0) { + useAtomics = true; + } + } + + const int rc = run_benchmark(indices, data, repeats, useAtomics); + + Kokkos::finalize(); + + return rc; +} diff --git a/packages/kokkos/benchmarks/policy_performance/Makefile b/packages/kokkos/benchmarks/policy_performance/Makefile index 13aef3209..f50aea720 100644 --- a/packages/kokkos/benchmarks/policy_performance/Makefile +++ b/packages/kokkos/benchmarks/policy_performance/Makefile @@ -1,31 +1,38 @@ -KOKKOS_PATH = ../.. -SRC = $(wildcard *.cpp) +KOKKOS_DEVICES=Cuda +KOKKOS_CUDA_OPTIONS=enable_lambda +KOKKOS_ARCH = "SNB,Volta70" + + +MAKEFILE_PATH := $(subst Makefile,,$(abspath $(lastword $(MAKEFILE_LIST)))) + +ifndef KOKKOS_PATH + KOKKOS_PATH = $(MAKEFILE_PATH)../.. +endif + +SRC = $(wildcard $(MAKEFILE_PATH)*.cpp) +HEADERS = $(wildcard $(MAKEFILE_PATH)*.hpp) + +vpath %.cpp $(sort $(dir $(SRC))) default: build echo "Start Build" ifneq (,$(findstring Cuda,$(KOKKOS_DEVICES))) CXX = ${KOKKOS_PATH}/bin/nvcc_wrapper -CXXFLAGS = -O3 -g -LINK = ${CXX} -LINKFLAGS = -EXE = policy_performance.cuda -KOKKOS_DEVICES = "Cuda,OpenMP" -KOKKOS_ARCH = "SNB,Kepler35" -KOKKOS_CUDA_OPTIONS+=enable_lambda +EXE = policy_perf.cuda else CXX = g++ -CXXFLAGS = -O3 -g -Wall -Werror -LINK = ${CXX} -LINKFLAGS = -EXE = policy_performance.host -KOKKOS_DEVICES = "OpenMP" -KOKKOS_ARCH = "SNB" +EXE = policy_perf.exe endif +CXXFLAGS ?= -O3 -g +override CXXFLAGS += -I$(MAKEFILE_PATH) + DEPFLAGS = -M +LINK = ${CXX} +LINKFLAGS = -OBJ = $(SRC:.cpp=.o) +OBJ = $(notdir $(SRC:.cpp=.o)) LIB = include $(KOKKOS_PATH)/Makefile.kokkos @@ -35,10 +42,10 @@ build: $(EXE) $(EXE): $(OBJ) $(KOKKOS_LINK_DEPENDS) $(LINK) $(KOKKOS_LDFLAGS) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(KOKKOS_LIBS) $(LIB) -o $(EXE) -clean: kokkos-clean - rm -f *.o *.cuda *.host +clean: kokkos-clean + rm -f *.o policy_perf.cuda policy_perf.exe # Compilation rules -%.o:%.cpp $(KOKKOS_CPP_DEPENDS) main.cpp policy_perf_test.hpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) $(EXTRA_INC) -c $< +%.o:%.cpp $(KOKKOS_CPP_DEPENDS) $(HEADERS) + $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) $(EXTRA_INC) -c $< -o $(notdir $@) diff --git a/packages/kokkos/benchmarks/policy_performance/main.cpp b/packages/kokkos/benchmarks/policy_performance/main.cpp index 332e5574d..da49cdb01 100644 --- a/packages/kokkos/benchmarks/policy_performance/main.cpp +++ b/packages/kokkos/benchmarks/policy_performance/main.cpp @@ -94,22 +94,22 @@ int main(int argc, char* argv[]) { return 0; } - int team_range = atoi(argv[1]); - int thread_range = atoi(argv[2]); - int vector_range = atoi(argv[3]); + int team_range = std::stoi(argv[1]); + int thread_range = std::stoi(argv[2]); + int vector_range = std::stoi(argv[3]); - int outer_repeat = atoi(argv[4]); - int thread_repeat = atoi(argv[5]); - int vector_repeat = atoi(argv[6]); + int outer_repeat = std::stoi(argv[4]); + int thread_repeat = std::stoi(argv[5]); + int vector_repeat = std::stoi(argv[6]); - int team_size = atoi(argv[7]); - int vector_size = atoi(argv[8]); - int schedule = atoi(argv[9]); - int test_type = atoi(argv[10]); + int team_size = std::stoi(argv[7]); + int vector_size = std::stoi(argv[8]); + int schedule = std::stoi(argv[9]); + int test_type = std::stoi(argv[10]); int disable_verbose_output = 0; if (argc > 11) { - disable_verbose_output = atoi(argv[11]); + disable_verbose_output = std::stoi(argv[11]); } if (schedule != 1 && schedule != 2) { @@ -138,19 +138,19 @@ int main(int argc, char* argv[]) { double& lval) { lval += 1; }, result); - typedef Kokkos::View<double*, Kokkos::LayoutRight> view_type_1d; - typedef Kokkos::View<double**, Kokkos::LayoutRight> view_type_2d; - typedef Kokkos::View<double***, Kokkos::LayoutRight> view_type_3d; + using view_type_1d = Kokkos::View<double*, Kokkos::LayoutRight>; + using view_type_2d = Kokkos::View<double**, Kokkos::LayoutRight>; + using view_type_3d = Kokkos::View<double***, Kokkos::LayoutRight>; // Allocate view without initializing // Call a 'warmup' test with 1 repeat - this will initialize the corresponding // view appropriately for test and should obey first-touch etc Second call to // test is the one we actually care about and time - view_type_1d v_1(Kokkos::ViewAllocateWithoutInitializing("v_1"), + view_type_1d v_1(Kokkos::view_alloc(Kokkos::WithoutInitializing, "v_1"), team_range * team_size); - view_type_2d v_2(Kokkos::ViewAllocateWithoutInitializing("v_2"), + view_type_2d v_2(Kokkos::view_alloc(Kokkos::WithoutInitializing, "v_2"), team_range * team_size, thread_range); - view_type_3d v_3(Kokkos::ViewAllocateWithoutInitializing("v_3"), + view_type_3d v_3(Kokkos::view_alloc(Kokkos::WithoutInitializing, "v_3"), team_range * team_size, thread_range, vector_range); double result_computed = 0.0; diff --git a/packages/kokkos/benchmarks/policy_performance/policy_perf_test.hpp b/packages/kokkos/benchmarks/policy_performance/policy_perf_test.hpp index 7a1500891..8e6cd7447 100644 --- a/packages/kokkos/benchmarks/policy_performance/policy_perf_test.hpp +++ b/packages/kokkos/benchmarks/policy_performance/policy_perf_test.hpp @@ -68,8 +68,8 @@ void test_policy(int team_range, int thread_range, int vector_range, int team_size, int vector_size, int test_type, ViewType1& v1, ViewType2& v2, ViewType3& v3, double& result, double& result_expect, double& time) { - typedef Kokkos::TeamPolicy<ScheduleType, IndexType> t_policy; - typedef typename t_policy::member_type t_team; + using t_policy = Kokkos::TeamPolicy<ScheduleType, IndexType>; + using t_team = typename t_policy::member_type; Kokkos::Timer timer; for (int orep = 0; orep < outer_repeat; orep++) { diff --git a/packages/kokkos/benchmarks/stream/Makefile b/packages/kokkos/benchmarks/stream/Makefile index 04566b322..47a13838a 100644 --- a/packages/kokkos/benchmarks/stream/Makefile +++ b/packages/kokkos/benchmarks/stream/Makefile @@ -1,28 +1,38 @@ -#Set your Kokkos path to something appropriate -KOKKOS_PATH = ${HOME}/git/kokkos-github-repo -#KOKKOS_DEVICES = "Cuda" -#KOKKOS_ARCH = "Pascal60" -#KOKKOS_CUDA_OPTIONS = enable_lambda -KOKKOS_DEVICES = "OpenMP" -KOKKOS_ARCH = "Power8" +KOKKOS_DEVICES=Cuda +KOKKOS_CUDA_OPTIONS=enable_lambda +KOKKOS_ARCH = "SNB,Volta70" -SRC = stream-kokkos.cc + +MAKEFILE_PATH := $(subst Makefile,,$(abspath $(lastword $(MAKEFILE_LIST)))) + +ifndef KOKKOS_PATH + KOKKOS_PATH = $(MAKEFILE_PATH)../.. +endif + +SRC = $(wildcard $(MAKEFILE_PATH)*.cpp) +HEADERS = $(wildcard $(MAKEFILE_PATH)*.hpp) + +vpath %.cpp $(sort $(dir $(SRC))) default: build echo "Start Build" - -CXXFLAGS = -O3 -#CXX = ${HOME}/git/kokkos-github-repo/bin/nvcc_wrapper -CXX = g++ -LINK = ${CXX} +ifneq (,$(findstring Cuda,$(KOKKOS_DEVICES))) +CXX = ${KOKKOS_PATH}/bin/nvcc_wrapper +EXE = stream.cuda +else +CXX = g++ +EXE = stream.exe +endif -LINKFLAGS = -EXE = stream-kokkos +CXXFLAGS ?= -O3 -g +override CXXFLAGS += -I$(MAKEFILE_PATH) DEPFLAGS = -M +LINK = ${CXX} +LINKFLAGS = -OBJ = $(SRC:.cc=.o) +OBJ = $(notdir $(SRC:.cpp=.o)) LIB = include $(KOKKOS_PATH)/Makefile.kokkos @@ -32,10 +42,10 @@ build: $(EXE) $(EXE): $(OBJ) $(KOKKOS_LINK_DEPENDS) $(LINK) $(KOKKOS_LDFLAGS) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(KOKKOS_LIBS) $(LIB) -o $(EXE) -clean: kokkos-clean - rm -f *.o $(EXE) +clean: kokkos-clean + rm -f *.o stream.cuda stream.exe # Compilation rules -%.o:%.cc $(KOKKOS_CPP_DEPENDS) - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) $(EXTRA_INC) -c $< +%.o:%.cpp $(KOKKOS_CPP_DEPENDS) $(HEADERS) + $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) $(EXTRA_INC) -c $< -o $(notdir $@) diff --git a/packages/kokkos/benchmarks/stream/stream-kokkos.cc b/packages/kokkos/benchmarks/stream/stream-kokkos.cc deleted file mode 100644 index 8d604079d..000000000 --- a/packages/kokkos/benchmarks/stream/stream-kokkos.cc +++ /dev/null @@ -1,266 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// ************************************************************************ -//@HEADER -*/ - -#include "Kokkos_Core.hpp" -#include <cstdio> -#include <cstdlib> -#include <cmath> - -#include <sys/time.h> - -#define STREAM_ARRAY_SIZE 100000000 -#define STREAM_NTIMES 20 - -#define HLINE "-------------------------------------------------------------\n" - -#if defined(KOKKOS_ENABLE_CUDA) -typedef Kokkos::View<double*, Kokkos::CudaSpace>::HostMirror StreamHostArray; -typedef Kokkos::View<double*, Kokkos::CudaSpace> StreamDeviceArray; -#else -typedef Kokkos::View<double*, Kokkos::HostSpace>::HostMirror StreamHostArray; -typedef Kokkos::View<double*, Kokkos::HostSpace> StreamDeviceArray; -#endif - -typedef int StreamIndex; - -double now() { - struct timeval now; - gettimeofday(&now, nullptr); - - return (double) now.tv_sec + ((double) now.tv_usec * 1.0e-6); -} - -void perform_copy(StreamDeviceArray& a, StreamDeviceArray& b, StreamDeviceArray& c) { - - Kokkos::parallel_for("copy", a.extent(0), KOKKOS_LAMBDA(const StreamIndex i) { - c[i] = a[i]; - }); - - Kokkos::fence(); -} - -void perform_scale(StreamDeviceArray& a, StreamDeviceArray& b, StreamDeviceArray& c, - const double scalar) { - - Kokkos::parallel_for("copy", a.extent(0), KOKKOS_LAMBDA(const StreamIndex i) { - b[i] = scalar * c[i]; - }); - - Kokkos::fence(); -} - -void perform_add(StreamDeviceArray& a, StreamDeviceArray& b, StreamDeviceArray& c) { - Kokkos::parallel_for("add", a.extent(0), KOKKOS_LAMBDA(const StreamIndex i) { - c[i] = a[i] + b[i]; - }); - - Kokkos::fence(); -} - -void perform_triad(StreamDeviceArray& a, StreamDeviceArray& b, StreamDeviceArray& c, - const double scalar) { - - Kokkos::parallel_for("triad", a.extent(0), KOKKOS_LAMBDA(const StreamIndex i) { - a[i] = b[i] + scalar * c[i]; - }); - - Kokkos::fence(); -} - -int perform_validation(StreamHostArray& a, StreamHostArray& b, StreamHostArray& c, - const StreamIndex arraySize, const double scalar) { - - double ai = 1.0; - double bi = 2.0; - double ci = 0.0; - - for( StreamIndex i = 0; i < arraySize; ++i ) { - ci = ai; - bi = scalar * ci; - ci = ai + bi; - ai = bi + scalar * ci; - }; - - double aError = 0.0; - double bError = 0.0; - double cError = 0.0; - - for( StreamIndex i = 0; i < arraySize; ++i ) { - aError = std::abs( a[i] - ai ); - bError = std::abs( b[i] - bi ); - cError = std::abs( c[i] - ci ); - } - - double aAvgError = aError / (double) arraySize; - double bAvgError = bError / (double) arraySize; - double cAvgError = cError / (double) arraySize; - - const double epsilon = 1.0e-13; - int errorCount = 0; - - if( std::abs( aAvgError / ai ) > epsilon ) { - fprintf(stderr, "Error: validation check on View a failed.\n"); - errorCount++; - } - - if( std::abs( bAvgError / bi ) > epsilon ) { - fprintf(stderr, "Error: validation check on View b failed.\n"); - errorCount++; - } - - if( std::abs( cAvgError / ci ) > epsilon ) { - fprintf(stderr, "Error: validation check on View c failed.\n"); - errorCount++; - } - - if( errorCount == 0 ) { - printf("All solutions checked and verified.\n"); - } - - return errorCount; -} - -int run_benchmark() { - - printf("Reports fastest timing per kernel\n"); - printf("Creating Views...\n"); - - printf("Memory Sizes:\n"); - printf("- Array Size: %" PRIu64 "\n", static_cast<uint64_t>(STREAM_ARRAY_SIZE)); - printf("- Per Array: %12.2f MB\n", 1.0e-6 * (double) STREAM_ARRAY_SIZE * (double) sizeof(double)); - printf("- Total: %12.2f MB\n", 3.0e-6 * (double) STREAM_ARRAY_SIZE * (double) sizeof(double)); - - printf("Benchmark kernels will be performed for %d iterations.\n", STREAM_NTIMES); - - printf(HLINE); - - StreamDeviceArray dev_a("a", STREAM_ARRAY_SIZE); - StreamDeviceArray dev_b("b", STREAM_ARRAY_SIZE); - StreamDeviceArray dev_c("c", STREAM_ARRAY_SIZE); - - StreamHostArray a = Kokkos::create_mirror_view(dev_a); - StreamHostArray b = Kokkos::create_mirror_view(dev_b); - StreamHostArray c = Kokkos::create_mirror_view(dev_c); - - const double scalar = 3.0; - - double copyTime = std::numeric_limits<double>::max(); - double scaleTime = std::numeric_limits<double>::max(); - double addTime = std::numeric_limits<double>::max(); - double triadTime = std::numeric_limits<double>::max(); - - printf("Initializing Views...\n"); - -#if defined(KOKKOS_HAVE_OPENMP) - Kokkos::parallel_for("init", Kokkos::RangePolicy<Kokkos::OpenMP>(0, STREAM_ARRAY_SIZE), -#else - Kokkos::parallel_for("init", Kokkos::RangePolicy<Kokkos::Serial>(0, STREAM_ARRAY_SIZE), -#endif - KOKKOS_LAMBDA(const int i) { - - a[i] = 1.0; - b[i] = 2.0; - c[i] = 0.0; - }); - - // Copy contents of a (from the host) to the dev_a (device) - Kokkos::deep_copy(dev_a, a); - Kokkos::deep_copy(dev_b, b); - Kokkos::deep_copy(dev_c, c); - - double start; - - printf("Starting benchmarking...\n"); - - for( StreamIndex k = 0; k < STREAM_NTIMES; ++k ) { - start = now(); - perform_copy(dev_a, dev_b, dev_c); - copyTime = std::min( copyTime, (now() - start) ); - - start = now(); - perform_scale(dev_a, dev_b, dev_c, scalar); - scaleTime = std::min( scaleTime, (now() - start) ); - - start = now(); - perform_add(dev_a, dev_b, dev_c); - addTime = std::min( addTime, (now() - start) ); - - start = now(); - perform_triad(dev_a, dev_b, dev_c, scalar); - triadTime = std::min( triadTime, (now() - start) ); - } - - Kokkos::deep_copy(a, dev_a); - Kokkos::deep_copy(b, dev_b); - Kokkos::deep_copy(c, dev_c); - - printf("Performing validation...\n"); - int rc = perform_validation(a, b, c, STREAM_ARRAY_SIZE, scalar); - - printf(HLINE); - - printf("Copy %11.2f MB/s\n", - ( 1.0e-06 * 2.0 * (double) sizeof(double) * (double) STREAM_ARRAY_SIZE) / copyTime ); - printf("Scale %11.2f MB/s\n", - ( 1.0e-06 * 2.0 * (double) sizeof(double) * (double) STREAM_ARRAY_SIZE) / scaleTime ); - printf("Add %11.2f MB/s\n", - ( 1.0e-06 * 3.0 * (double) sizeof(double) * (double) STREAM_ARRAY_SIZE) / addTime ); - printf("Triad %11.2f MB/s\n", - ( 1.0e-06 * 3.0 * (double) sizeof(double) * (double) STREAM_ARRAY_SIZE) / triadTime ); - - printf(HLINE); - - return rc; -} - -int main(int argc, char* argv[]) { - - printf(HLINE); - printf("Kokkos STREAM Benchmark\n"); - printf(HLINE); - - Kokkos::initialize(argc, argv); - const int rc = run_benchmark(); - Kokkos::finalize(); - - return rc; -} diff --git a/packages/kokkos/benchmarks/stream/stream-kokkos.cpp b/packages/kokkos/benchmarks/stream/stream-kokkos.cpp new file mode 100644 index 000000000..e7ef67e08 --- /dev/null +++ b/packages/kokkos/benchmarks/stream/stream-kokkos.cpp @@ -0,0 +1,271 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// ************************************************************************ +//@HEADER +*/ + +#include "Kokkos_Core.hpp" +#include <cstdio> +#include <cstdlib> +#include <cmath> + +#include <sys/time.h> + +#define STREAM_ARRAY_SIZE 100000000 +#define STREAM_NTIMES 20 + +#define HLINE "-------------------------------------------------------------\n" + +#if defined(KOKKOS_ENABLE_CUDA) +using StreamHostArray = Kokkos::View<double*, Kokkos::CudaSpace>::HostMirror; +using StreamDeviceArray = Kokkos::View<double*, Kokkos::CudaSpace>; +#else +using StreamHostArray = Kokkos::View<double*, Kokkos::HostSpace>::HostMirror; +using StreamDeviceArray = Kokkos::View<double*, Kokkos::HostSpace>; +#endif + +using StreamIndex = int; + +double now() { + struct timeval now; + gettimeofday(&now, nullptr); + + return (double)now.tv_sec + ((double)now.tv_usec * 1.0e-6); +} + +void perform_copy(StreamDeviceArray& a, StreamDeviceArray& b, + StreamDeviceArray& c) { + Kokkos::parallel_for( + "copy", a.extent(0), KOKKOS_LAMBDA(const StreamIndex i) { c[i] = a[i]; }); + + Kokkos::fence(); +} + +void perform_scale(StreamDeviceArray& a, StreamDeviceArray& b, + StreamDeviceArray& c, const double scalar) { + Kokkos::parallel_for( + "copy", a.extent(0), + KOKKOS_LAMBDA(const StreamIndex i) { b[i] = scalar * c[i]; }); + + Kokkos::fence(); +} + +void perform_add(StreamDeviceArray& a, StreamDeviceArray& b, + StreamDeviceArray& c) { + Kokkos::parallel_for( + "add", a.extent(0), + KOKKOS_LAMBDA(const StreamIndex i) { c[i] = a[i] + b[i]; }); + + Kokkos::fence(); +} + +void perform_triad(StreamDeviceArray& a, StreamDeviceArray& b, + StreamDeviceArray& c, const double scalar) { + Kokkos::parallel_for( + "triad", a.extent(0), + KOKKOS_LAMBDA(const StreamIndex i) { a[i] = b[i] + scalar * c[i]; }); + + Kokkos::fence(); +} + +int perform_validation(StreamHostArray& a, StreamHostArray& b, + StreamHostArray& c, const StreamIndex arraySize, + const double scalar) { + double ai = 1.0; + double bi = 2.0; + double ci = 0.0; + + for (StreamIndex i = 0; i < arraySize; ++i) { + ci = ai; + bi = scalar * ci; + ci = ai + bi; + ai = bi + scalar * ci; + }; + + double aError = 0.0; + double bError = 0.0; + double cError = 0.0; + + for (StreamIndex i = 0; i < arraySize; ++i) { + aError = std::abs(a[i] - ai); + bError = std::abs(b[i] - bi); + cError = std::abs(c[i] - ci); + } + + double aAvgError = aError / (double)arraySize; + double bAvgError = bError / (double)arraySize; + double cAvgError = cError / (double)arraySize; + + const double epsilon = 1.0e-13; + int errorCount = 0; + + if (std::abs(aAvgError / ai) > epsilon) { + fprintf(stderr, "Error: validation check on View a failed.\n"); + errorCount++; + } + + if (std::abs(bAvgError / bi) > epsilon) { + fprintf(stderr, "Error: validation check on View b failed.\n"); + errorCount++; + } + + if (std::abs(cAvgError / ci) > epsilon) { + fprintf(stderr, "Error: validation check on View c failed.\n"); + errorCount++; + } + + if (errorCount == 0) { + printf("All solutions checked and verified.\n"); + } + + return errorCount; +} + +int run_benchmark() { + printf("Reports fastest timing per kernel\n"); + printf("Creating Views...\n"); + + printf("Memory Sizes:\n"); + printf("- Array Size: %" PRIu64 "\n", + static_cast<uint64_t>(STREAM_ARRAY_SIZE)); + printf("- Per Array: %12.2f MB\n", + 1.0e-6 * (double)STREAM_ARRAY_SIZE * (double)sizeof(double)); + printf("- Total: %12.2f MB\n", + 3.0e-6 * (double)STREAM_ARRAY_SIZE * (double)sizeof(double)); + + printf("Benchmark kernels will be performed for %d iterations.\n", + STREAM_NTIMES); + + printf(HLINE); + + StreamDeviceArray dev_a("a", STREAM_ARRAY_SIZE); + StreamDeviceArray dev_b("b", STREAM_ARRAY_SIZE); + StreamDeviceArray dev_c("c", STREAM_ARRAY_SIZE); + + StreamHostArray a = Kokkos::create_mirror_view(dev_a); + StreamHostArray b = Kokkos::create_mirror_view(dev_b); + StreamHostArray c = Kokkos::create_mirror_view(dev_c); + + const double scalar = 3.0; + + double copyTime = std::numeric_limits<double>::max(); + double scaleTime = std::numeric_limits<double>::max(); + double addTime = std::numeric_limits<double>::max(); + double triadTime = std::numeric_limits<double>::max(); + + printf("Initializing Views...\n"); + +#if defined(KOKKOS_HAVE_OPENMP) + Kokkos::parallel_for( + "init", Kokkos::RangePolicy<Kokkos::OpenMP>(0, STREAM_ARRAY_SIZE), +#else + Kokkos::parallel_for( + "init", Kokkos::RangePolicy<Kokkos::Serial>(0, STREAM_ARRAY_SIZE), +#endif + KOKKOS_LAMBDA(const int i) { + a[i] = 1.0; + b[i] = 2.0; + c[i] = 0.0; + }); + + // Copy contents of a (from the host) to the dev_a (device) + Kokkos::deep_copy(dev_a, a); + Kokkos::deep_copy(dev_b, b); + Kokkos::deep_copy(dev_c, c); + + double start; + + printf("Starting benchmarking...\n"); + + for (StreamIndex k = 0; k < STREAM_NTIMES; ++k) { + start = now(); + perform_copy(dev_a, dev_b, dev_c); + copyTime = std::min(copyTime, (now() - start)); + + start = now(); + perform_scale(dev_a, dev_b, dev_c, scalar); + scaleTime = std::min(scaleTime, (now() - start)); + + start = now(); + perform_add(dev_a, dev_b, dev_c); + addTime = std::min(addTime, (now() - start)); + + start = now(); + perform_triad(dev_a, dev_b, dev_c, scalar); + triadTime = std::min(triadTime, (now() - start)); + } + + Kokkos::deep_copy(a, dev_a); + Kokkos::deep_copy(b, dev_b); + Kokkos::deep_copy(c, dev_c); + + printf("Performing validation...\n"); + int rc = perform_validation(a, b, c, STREAM_ARRAY_SIZE, scalar); + + printf(HLINE); + + printf("Copy %11.2f MB/s\n", + (1.0e-06 * 2.0 * (double)sizeof(double) * (double)STREAM_ARRAY_SIZE) / + copyTime); + printf("Scale %11.2f MB/s\n", + (1.0e-06 * 2.0 * (double)sizeof(double) * (double)STREAM_ARRAY_SIZE) / + scaleTime); + printf("Add %11.2f MB/s\n", + (1.0e-06 * 3.0 * (double)sizeof(double) * (double)STREAM_ARRAY_SIZE) / + addTime); + printf("Triad %11.2f MB/s\n", + (1.0e-06 * 3.0 * (double)sizeof(double) * (double)STREAM_ARRAY_SIZE) / + triadTime); + + printf(HLINE); + + return rc; +} + +int main(int argc, char* argv[]) { + printf(HLINE); + printf("Kokkos STREAM Benchmark\n"); + printf(HLINE); + + Kokkos::initialize(argc, argv); + const int rc = run_benchmark(); + Kokkos::finalize(); + + return rc; +} diff --git a/packages/kokkos/bin/kokkos_launch_compiler b/packages/kokkos/bin/kokkos_launch_compiler new file mode 100755 index 000000000..1fbebf648 --- /dev/null +++ b/packages/kokkos/bin/kokkos_launch_compiler @@ -0,0 +1,87 @@ +#!/bin/bash -e +# +# This script allows CMAKE_CXX_COMPILER to be a standard +# C++ compiler and Kokkos sets RULE_LAUNCH_COMPILE and +# RULE_LAUNCH_LINK in CMake so that all compiler and link +# commands are prefixed with this script followed by the +# C++ compiler. Thus if $1 == $2 then we know the command +# was intended for the C++ compiler and we discard both +# $1 and $2 and redirect the command to NVCC_WRAPPER. +# If $1 != $2 then we know that the command was not intended +# for the C++ compiler and we just discard $1 and launch +# the original command. Examples of when $2 will not equal +# $1 are 'ar', 'cmake', etc. during the linking phase +# + +# check the arguments for the KOKKOS_DEPENDENCE compiler definition +KOKKOS_DEPENDENCE=0 +for i in ${@} +do + if [ -n "$(echo ${i} | grep 'KOKKOS_DEPENDENCE$')" ]; then + KOKKOS_DEPENDENCE=1 + break + fi +done + +# if C++ is not passed, someone is probably trying to invoke it directly +if [ -z "${1}" ]; then + echo -e "\n${BASH_SOURCE[0]} was invoked without the C++ compiler as the first argument." + echo "This script is not indended to be directly invoked by any mechanism other" + echo -e "than through a RULE_LAUNCH_COMPILE or RULE_LAUNCH_LINK property set in CMake\n" + exit 1 +fi + +# if there aren't two args, this isn't necessarily invalid, just a bit strange +if [ -z "${2}" ]; then exit 0; fi + +# store the expected C++ compiler +CXX_COMPILER=${1} + +# remove the expected C++ compiler from the arguments +shift + +# after the above shift, $1 is now the exe for the compile or link command, e.g. +# kokkos_launch_compiler g++ gcc -c file.c -o file.o +# becomes: +# kokkos_launch_compiler gcc -c file.c -o file.o +# Check to see if the executable is the C++ compiler and if it is not, then +# just execute the command. +# +# Summary: +# kokkos_launch_compiler g++ gcc -c file.c -o file.o +# results in this command being executed: +# gcc -c file.c -o file.o +# and +# kokkos_launch_compiler g++ g++ -c file.cpp -o file.o +# results in this command being executed: +# nvcc_wrapper -c file.cpp -o file.o +if [[ "${KOKKOS_DEPENDENCE}" -eq "0" || "${CXX_COMPILER}" != "${1}" ]]; then + # the command does not depend on Kokkos so just execute the command w/o re-directing to nvcc_wrapper + eval $@ +else + # the executable is the C++ compiler, so we need to re-direct to nvcc_wrapper + + # find the nvcc_wrapper from the same build/install + NVCC_WRAPPER="$(dirname ${BASH_SOURCE[0]})/nvcc_wrapper" + + if [ -z "${NVCC_WRAPPER}" ]; then + echo -e "\nError: nvcc_wrapper not found in $(dirname ${BASH_SOURCE[0]}).\n" + exit 1 + fi + + # set default nvcc wrapper compiler if not specified + : ${NVCC_WRAPPER_DEFAULT_COMPILER:=${CXX_COMPILER}} + export NVCC_WRAPPER_DEFAULT_COMPILER + + # calling itself will cause an infinitely long build + if [ "${NVCC_WRAPPER}" = "${NVCC_WRAPPER_DEFAULT_COMPILER}" ]; then + echo -e "\nError: NVCC_WRAPPER == NVCC_WRAPPER_DEFAULT_COMPILER. Terminating to avoid infinite loop!\n" + exit 1 + fi + + # discard the compiler from the command + shift + + # execute nvcc_wrapper + ${NVCC_WRAPPER} $@ +fi diff --git a/packages/kokkos/bin/nvcc_wrapper b/packages/kokkos/bin/nvcc_wrapper index 8a23d0d62..4ecf4c66d 100755 --- a/packages/kokkos/bin/nvcc_wrapper +++ b/packages/kokkos/bin/nvcc_wrapper @@ -19,6 +19,13 @@ default_arch="sm_35" # The default C++ compiler. # host_compiler=${NVCC_WRAPPER_DEFAULT_COMPILER:-"g++"} + +# Default to whatever is in the path +nvcc_compiler=nvcc +if [ ! -z $CUDA_ROOT ]; then + nvcc_compiler="$CUDA_ROOT/bin/nvcc" +fi + #host_compiler="icpc" #host_compiler="/usr/local/gcc/4.8.3/bin/g++" #host_compiler="/usr/local/gcc/4.9.1/bin/g++" @@ -58,7 +65,7 @@ object_files_xlinker="" shared_versioned_libraries_host="" shared_versioned_libraries="" -# Does the User set the architecture +# Does the User set the architecture arch_set=0 # Does the user overwrite the host compiler @@ -77,13 +84,18 @@ host_only_args="" # Just run version on host compiler get_host_version=0 -# Enable workaround for CUDA 6.5 for pragma ident +# Enable workaround for CUDA 6.5 for pragma ident replace_pragma_ident=0 # Mark first host compiler argument first_xcompiler_arg=1 -temp_dir=${TMPDIR:-/tmp} +# Allow for setting temp dir without setting TMPDIR in parent (see https://docs.olcf.ornl.gov/systems/summit_user_guide.html#setting-tmpdir-causes-jsm-jsrun-errors-job-state-flip-flop) +if [[ ! -z ${NVCC_WRAPPER_TMPDIR+x} ]]; then + temp_dir=${TMPDIR:-/tmp} +else + temp_dir=${NVCC_WRAPPER_TMPDIR+x} +fi # optimization flag added as a command-line argument optimization_flag="" @@ -179,7 +191,7 @@ do shift ;; #Handle known nvcc args - --dryrun|--verbose|--keep|--keep-dir*|-G|--relocatable-device-code*|-lineinfo|-expt-extended-lambda|--resource-usage|-Xptxas*|--fmad*) + --dryrun|--verbose|--keep|--keep-dir*|-G|--relocatable-device-code*|-lineinfo|-expt-extended-lambda|-expt-relaxed-constexpr|--resource-usage|-Xptxas*|--fmad*|--Wext-lambda-captures-this|-Wext-lambda-captures-this) cuda_args="$cuda_args $1" ;; #Handle more known nvcc args @@ -187,7 +199,7 @@ do cuda_args="$cuda_args $1" ;; #Handle known nvcc args that have an argument - -rdc|-maxrregcount|--default-stream|-Xnvlink|--fmad) + -rdc|-maxrregcount|--default-stream|-Xnvlink|--fmad|-cudart|--cudart|-include) cuda_args="$cuda_args $1 $2" shift ;; @@ -195,11 +207,11 @@ do cuda_args="$cuda_args $1" ;; #Handle unsupported standard flags - --std=c++1y|-std=c++1y|--std=c++1z|-std=c++1z|--std=gnu++1y|-std=gnu++1y|--std=gnu++1z|-std=gnu++1z|--std=c++2a|-std=c++2a|--std=c++17|-std=c++17) + --std=c++1y|-std=c++1y|--std=gnu++1y|-std=gnu++1y|--std=c++1z|-std=c++1z|--std=gnu++1z|-std=gnu++1z|--std=c++2a|-std=c++2a) fallback_std_flag="-std=c++14" # this is hopefully just occurring in a downstream project during CMake feature tests # we really have no choice here but to accept the flag and change to an accepted C++ standard - echo "nvcc_wrapper does not accept standard flags $1 since partial standard flags and standards after C++14 are not supported. nvcc_wrapper will use $fallback_std_flag instead. It is undefined behavior to use this flag. This should only be occurring during CMake configuration." + echo "nvcc_wrapper does not accept standard flags $1 since partial standard flags and standards after C++17 are not supported. nvcc_wrapper will use $fallback_std_flag instead. It is undefined behavior to use this flag. This should only be occurring during CMake configuration." if [ -n "$std_flag" ]; then warn_std_flag shared_args=${shared_args/ $std_flag/} @@ -216,7 +228,25 @@ do fi std_flag=$corrected_std_flag shared_args="$shared_args $std_flag" - ;; + ;; + --std=c++17|-std=c++17) + if [ -n "$std_flag" ]; then + warn_std_flag + shared_args=${shared_args/ $std_flag/} + fi + # NVCC only has C++17 from version 11 on + cuda_main_version=$([[ $(${nvcc_compiler} --version) =~ V([0-9]+) ]] && echo ${BASH_REMATCH[1]}) + if [ ${cuda_main_version} -lt 11 ]; then + fallback_std_flag="-std=c++14" + # this is hopefully just occurring in a downstream project during CMake feature tests + # we really have no choice here but to accept the flag and change to an accepted C++ standard + echo "nvcc_wrapper does not accept standard flags $1 since partial standard flags and standards after C++14 are not supported. nvcc_wrapper will use $fallback_std_flag instead. It is undefined behavior to use this flag. This should only be occurring during CMake configuration." + std_flag=$fallback_std_flag + else + std_flag=$1 + fi + shared_args="$shared_args $std_flag" + ;; --std=c++11|-std=c++11|--std=c++14|-std=c++14) if [ -n "$std_flag" ]; then warn_std_flag @@ -226,6 +256,20 @@ do shared_args="$shared_args $std_flag" ;; + #convert PGI standard flags to something nvcc can handle + --c++11|--c++14|--c++17) + if [ -n "$std_flag" ]; then + warn_std_flag + shared_args=${shared_args/ $std_flag/} + fi + std_flag="-std=${1#--}" + shared_args="$shared_args $std_flag" + ;; + + #ignore PGI forcing ISO C++-conforming code + -A) + ;; + #strip of -std=c++98 due to nvcc warnings and Tribits will place both -std=c++11 and -std=c++98 -std=c++98|--std=c++98) ;; @@ -237,13 +281,17 @@ do ;; #strip -Xcompiler because we add it -Xcompiler) - if [ $first_xcompiler_arg -eq 1 ]; then - xcompiler_args="$2" - first_xcompiler_arg=0 - else - xcompiler_args="$xcompiler_args,$2" + if [[ $2 != "-o" ]]; then + if [ $first_xcompiler_arg -eq 1 ]; then + xcompiler_args="$2" + first_xcompiler_arg=0 + else + xcompiler_args="$xcompiler_args,$2" + fi + shift fi - shift + # else this we have -Xcompiler -o <filename>, in this case just drop -Xcompiler and process + # the -o flag with the filename (done above) ;; #strip of "-x cu" because we add that -x) @@ -329,7 +377,7 @@ do if [ $first_xcompiler_arg -eq 1 ]; then xcompiler_args=$1 first_xcompiler_arg=0 - else + else xcompiler_args="$xcompiler_args,$1" fi ;; @@ -387,7 +435,7 @@ if [ $arch_set -ne 1 ]; then fi #Compose compilation command -nvcc_command="nvcc $cuda_args $shared_args $xlinker_args $shared_versioned_libraries" +nvcc_command="$nvcc_compiler $cuda_args $shared_args $xlinker_args $shared_versioned_libraries" if [ $first_xcompiler_arg -eq 0 ]; then nvcc_command="$nvcc_command -Xcompiler $xcompiler_args" fi diff --git a/packages/kokkos/cmake/KokkosConfig.cmake.in b/packages/kokkos/cmake/KokkosConfig.cmake.in index 6f4607687..9fbd22ee5 100644 --- a/packages/kokkos/cmake/KokkosConfig.cmake.in +++ b/packages/kokkos/cmake/KokkosConfig.cmake.in @@ -1,3 +1,9 @@ +# No need for policy push/pop. CMake also manages a new entry for scripts +# loaded by include() and find_package() commands except when invoked with +# the NO_POLICY_SCOPE option +# CMP0057 + NEW -> IN_LIST operator in IF(...) +CMAKE_POLICY(SET CMP0057 NEW) + # Compute paths @PACKAGE_INIT@ @@ -12,3 +18,18 @@ GET_FILENAME_COMPONENT(Kokkos_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) INCLUDE("${Kokkos_CMAKE_DIR}/KokkosTargets.cmake") INCLUDE("${Kokkos_CMAKE_DIR}/KokkosConfigCommon.cmake") UNSET(Kokkos_CMAKE_DIR) + +# if CUDA was enabled and separable compilation was specified, e.g. +# find_package(Kokkos COMPONENTS separable_compilation) +# then we set the RULE_LAUNCH_COMPILE and RULE_LAUNCH_LINK +IF(@Kokkos_ENABLE_CUDA@ AND NOT "separable_compilation" IN_LIST Kokkos_FIND_COMPONENTS) + # run test to see if CMAKE_CXX_COMPILER=nvcc_wrapper + kokkos_compiler_is_nvcc(IS_NVCC ${CMAKE_CXX_COMPILER}) + # if not nvcc_wrapper, use RULE_LAUNCH_COMPILE and RULE_LAUNCH_LINK + IF(NOT IS_NVCC AND NOT CMAKE_CXX_COMPILER_ID STREQUAL Clang AND + (NOT DEFINED Kokkos_LAUNCH_COMPILER OR Kokkos_LAUNCH_COMPILER)) + MESSAGE(STATUS "kokkos_launch_compiler is enabled globally. C++ compiler commands with -DKOKKOS_DEPENDENCE will be redirected to nvcc_wrapper") + kokkos_compilation(GLOBAL) + ENDIF() + UNSET(IS_NVCC) # be mindful of the environment, pollution is bad +ENDIF() diff --git a/packages/kokkos/cmake/KokkosConfigCommon.cmake.in b/packages/kokkos/cmake/KokkosConfigCommon.cmake.in index 8c663d01c..42c755c21 100644 --- a/packages/kokkos/cmake/KokkosConfigCommon.cmake.in +++ b/packages/kokkos/cmake/KokkosConfigCommon.cmake.in @@ -2,6 +2,7 @@ SET(Kokkos_DEVICES @KOKKOS_ENABLED_DEVICES@) SET(Kokkos_OPTIONS @KOKKOS_ENABLED_OPTIONS@) SET(Kokkos_TPLS @KOKKOS_ENABLED_TPLS@) SET(Kokkos_ARCH @KOKKOS_ENABLED_ARCH_LIST@) +SET(Kokkos_CXX_COMPILER "@CMAKE_CXX_COMPILER@") # These are needed by KokkosKernels FOREACH(DEV ${Kokkos_DEVICES}) @@ -38,7 +39,7 @@ include(FindPackageHandleStandardArgs) # kokkos_check( # [DEVICES <devices>...] # Set of backends (e.g. "OpenMP" and/or "Cuda") # [ARCH <archs>...] # Target architectures (e.g. "Power9" and/or "Volta70") -# [OPTIONS <options>...] # Optional settings (e.g. "PROFILING") +# [OPTIONS <options>...] # Optional settings (e.g. "TUNING") # [TPLS <tpls>...] # Third party libraries # [RETURN_VALUE <result>] # Set a variable that indicates the result of the # # check instead of a fatal error @@ -88,3 +89,73 @@ function(kokkos_check) set(${KOKKOS_CHECK_RETURN_VALUE} ${KOKKOS_CHECK_SUCCESS} PARENT_SCOPE) endif() endfunction() + +# this function is provided to easily select which files use nvcc_wrapper: +# +# GLOBAL --> all files +# TARGET --> all files in a target +# SOURCE --> specific source files +# DIRECTORY --> all files in directory +# PROJECT --> all files/targets in a project/subproject +# +FUNCTION(kokkos_compilation) + CMAKE_PARSE_ARGUMENTS(COMP "GLOBAL;PROJECT" "" "DIRECTORY;TARGET;SOURCE" ${ARGN}) + + # search relative first and then absolute + SET(_HINTS "${CMAKE_CURRENT_LIST_DIR}/../.." "@CMAKE_INSTALL_PREFIX@") + + # find kokkos_launch_compiler + FIND_PROGRAM(Kokkos_COMPILE_LAUNCHER + NAMES kokkos_launch_compiler + HINTS ${_HINTS} + PATHS ${_HINTS} + PATH_SUFFIXES bin) + + IF(NOT Kokkos_COMPILE_LAUNCHER) + MESSAGE(FATAL_ERROR "Kokkos could not find 'kokkos_launch_compiler'. Please set '-DKokkos_COMPILE_LAUNCHER=/path/to/launcher'") + ENDIF() + + IF(COMP_GLOBAL) + # if global, don't bother setting others + SET_PROPERTY(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${Kokkos_COMPILE_LAUNCHER} ${CMAKE_CXX_COMPILER}") + SET_PROPERTY(GLOBAL PROPERTY RULE_LAUNCH_LINK "${Kokkos_COMPILE_LAUNCHER} ${CMAKE_CXX_COMPILER}") + ELSE() + FOREACH(_TYPE PROJECT DIRECTORY TARGET SOURCE) + # make project/subproject scoping easy, e.g. KokkosCompilation(PROJECT) after project(...) + IF("${_TYPE}" STREQUAL "PROJECT" AND COMP_${_TYPE}) + LIST(APPEND COMP_DIRECTORY ${PROJECT_SOURCE_DIR}) + UNSET(COMP_${_TYPE}) + ENDIF() + # set the properties if defined + IF(COMP_${_TYPE}) + # MESSAGE(STATUS "Using nvcc_wrapper :: ${_TYPE} :: ${COMP_${_TYPE}}") + SET_PROPERTY(${_TYPE} ${COMP_${_TYPE}} PROPERTY RULE_LAUNCH_COMPILE "${Kokkos_COMPILE_LAUNCHER} ${CMAKE_CXX_COMPILER}") + SET_PROPERTY(${_TYPE} ${COMP_${_TYPE}} PROPERTY RULE_LAUNCH_LINK "${Kokkos_COMPILE_LAUNCHER} ${CMAKE_CXX_COMPILER}") + ENDIF() + ENDFOREACH() + ENDIF() +ENDFUNCTION() + +# A test to check whether a downstream project set the C++ compiler to NVCC or not +# this is called only when Kokkos was installed with Kokkos_ENABLE_CUDA=ON +FUNCTION(kokkos_compiler_is_nvcc VAR COMPILER) + # Check if the compiler is nvcc (which really means nvcc_wrapper). + EXECUTE_PROCESS(COMMAND ${COMPILER} ${ARGN} --version + OUTPUT_VARIABLE INTERNAL_COMPILER_VERSION + OUTPUT_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE RET) + # something went wrong + IF(RET GREATER 0) + SET(${VAR} false PARENT_SCOPE) + ELSE() + STRING(REPLACE "\n" " - " INTERNAL_COMPILER_VERSION_ONE_LINE ${INTERNAL_COMPILER_VERSION} ) + STRING(FIND ${INTERNAL_COMPILER_VERSION_ONE_LINE} "nvcc" INTERNAL_COMPILER_VERSION_CONTAINS_NVCC) + STRING(REGEX REPLACE "^ +" "" INTERNAL_HAVE_COMPILER_NVCC "${INTERNAL_HAVE_COMPILER_NVCC}") + IF(${INTERNAL_COMPILER_VERSION_CONTAINS_NVCC} GREATER -1) + SET(${VAR} true PARENT_SCOPE) + ELSE() + SET(${VAR} false PARENT_SCOPE) + ENDIF() + ENDIF() +ENDFUNCTION() + diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_Complex.cpp b/packages/kokkos/cmake/KokkosCore_Config_HeaderSet.in similarity index 96% rename from packages/kokkos/core/unit_test/cuda/TestCuda_Complex.cpp rename to packages/kokkos/cmake/KokkosCore_Config_HeaderSet.in index af4431048..8d1eee31b 100644 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_Complex.cpp +++ b/packages/kokkos/cmake/KokkosCore_Config_HeaderSet.in @@ -1,4 +1,3 @@ - /* //@HEADER // ************************************************************************ @@ -42,6 +41,9 @@ // ************************************************************************ //@HEADER */ +#ifndef @HEADER_GUARD_TAG@ +#define @HEADER_GUARD_TAG@ + +@INCLUDE_NEXT_FILE@ -#include <cuda/TestCuda_Category.hpp> -#include <TestComplex.hpp> +#endif diff --git a/packages/kokkos/cmake/KokkosCore_config.h.in b/packages/kokkos/cmake/KokkosCore_config.h.in index 1d0b58fe0..0259fe69d 100644 --- a/packages/kokkos/cmake/KokkosCore_config.h.in +++ b/packages/kokkos/cmake/KokkosCore_config.h.in @@ -1,6 +1,7 @@ #if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." +#error \ + "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." #else #define KOKKOS_CORE_CONFIG_H #endif @@ -10,7 +11,6 @@ // KOKKOS_VERSION / 10000 is the major version #cmakedefine KOKKOS_VERSION @KOKKOS_VERSION@ - /* Execution Spaces */ #cmakedefine KOKKOS_ENABLE_SERIAL #cmakedefine KOKKOS_ENABLE_OPENMP @@ -21,6 +21,7 @@ #cmakedefine KOKKOS_ENABLE_HPX #cmakedefine KOKKOS_ENABLE_MEMKIND #cmakedefine KOKKOS_ENABLE_LIBRT +#cmakedefine KOKKOS_ENABLE_SYCL #ifndef __CUDA_ARCH__ #cmakedefine KOKKOS_ENABLE_TM @@ -31,7 +32,6 @@ #endif /* General Settings */ -#cmakedefine KOKKOS_ENABLE_CXX11 #cmakedefine KOKKOS_ENABLE_CXX14 #cmakedefine KOKKOS_ENABLE_CXX17 #cmakedefine KOKKOS_ENABLE_CXX20 @@ -47,10 +47,9 @@ #cmakedefine KOKKOS_ENABLE_DEBUG_DUALVIEW_MODIFY_CHECK #cmakedefine KOKKOS_ENABLE_DEBUG_BOUNDS_CHECK #cmakedefine KOKKOS_ENABLE_COMPILER_WARNINGS -#cmakedefine KOKKOS_ENABLE_PROFILING #cmakedefine KOKKOS_ENABLE_PROFILING_LOAD_PRINT +#cmakedefine KOKKOS_ENABLE_TUNING #cmakedefine KOKKOS_ENABLE_DEPRECATED_CODE -#cmakedefine KOKKOS_ENABLE_ETI #cmakedefine KOKKOS_ENABLE_LARGE_MEM_TESTS #cmakedefine KOKKOS_ENABLE_DUALVIEW_MODIFY_CHECK #cmakedefine KOKKOS_ENABLE_COMPLEX_ALIGN @@ -59,8 +58,8 @@ /* TPL Settings */ #cmakedefine KOKKOS_ENABLE_HWLOC #cmakedefine KOKKOS_USE_LIBRT -#cmakedefine KOKKOS_ENABLE_HWBSPACE - +#cmakedefine KOKKOS_ENABLE_HBWSPACE +#cmakedefine KOKKOS_ENABLE_LIBDL #cmakedefine KOKKOS_IMPL_CUDA_CLANG_WORKAROUND #cmakedefine KOKKOS_COMPILER_CUDA_VERSION @KOKKOS_COMPILER_CUDA_VERSION@ @@ -95,4 +94,6 @@ #cmakedefine KOKKOS_ARCH_VOLTA70 #cmakedefine KOKKOS_ARCH_VOLTA72 #cmakedefine KOKKOS_ARCH_TURING75 -#cmakedefine KOKKOS_ARCH_AMD_EPYC +#cmakedefine KOKKOS_ARCH_AMPERE80 +#cmakedefine KOKKOS_ARCH_AMD_ZEN +#cmakedefine KOKKOS_ARCH_AMD_ZEN2 diff --git a/packages/kokkos/cmake/Modules/CudaToolkit.cmake b/packages/kokkos/cmake/Modules/CudaToolkit.cmake new file mode 100644 index 000000000..d620a71d3 --- /dev/null +++ b/packages/kokkos/cmake/Modules/CudaToolkit.cmake @@ -0,0 +1,958 @@ +# Distributed under the OSI-approved BSD 3-Clause License. See accompanying +# file Copyright.txt or https://cmake.org/licensing for details. + +#[=======================================================================[.rst: +FindCUDAToolkit +--------------- + +This script locates the NVIDIA CUDA toolkit and the associated libraries, but +does not require the ``CUDA`` language be enabled for a given project. This +module does not search for the NVIDIA CUDA Samples. + +Search Behavior +^^^^^^^^^^^^^^^ + +Finding the CUDA Toolkit requires finding the ``nvcc`` executable, which is +searched for in the following order: + +1. If the ``CUDA`` language has been enabled we will use the directory + containing the compiler as the first search location for ``nvcc``. + +2. If the ``CUDAToolkit_ROOT`` cmake configuration variable (e.g., + ``-DCUDAToolkit_ROOT=/some/path``) *or* environment variable is defined, it + will be searched. If both an environment variable **and** a + configuration variable are specified, the *configuration* variable takes + precedence. + + The directory specified here must be such that the executable ``nvcc`` can be + found underneath the directory specified by ``CUDAToolkit_ROOT``. If + ``CUDAToolkit_ROOT`` is specified, but no ``nvcc`` is found underneath, this + package is marked as **not** found. No subsequent search attempts are + performed. + +3. If the CUDA_PATH environment variable is defined, it will be searched. + +4. The user's path is searched for ``nvcc`` using :command:`find_program`. If + this is found, no subsequent search attempts are performed. Users are + responsible for ensuring that the first ``nvcc`` to show up in the path is + the desired path in the event that multiple CUDA Toolkits are installed. + +5. On Unix systems, if the symbolic link ``/usr/local/cuda`` exists, this is + used. No subsequent search attempts are performed. No default symbolic link + location exists for the Windows platform. + +6. The platform specific default install locations are searched. If exactly one + candidate is found, this is used. The default CUDA Toolkit install locations + searched are: + + +-------------+-------------------------------------------------------------+ + | Platform | Search Pattern | + +=============+=============================================================+ + | macOS | ``/Developer/NVIDIA/CUDA-X.Y`` | + +-------------+-------------------------------------------------------------+ + | Other Unix | ``/usr/local/cuda-X.Y`` | + +-------------+-------------------------------------------------------------+ + | Windows | ``C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vX.Y`` | + +-------------+-------------------------------------------------------------+ + + Where ``X.Y`` would be a specific version of the CUDA Toolkit, such as + ``/usr/local/cuda-9.0`` or + ``C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0`` + + .. note:: + + When multiple CUDA Toolkits are installed in the default location of a + system (e.g., both ``/usr/local/cuda-9.0`` and ``/usr/local/cuda-10.0`` + exist but the ``/usr/local/cuda`` symbolic link does **not** exist), this + package is marked as **not** found. + + There are too many factors involved in making an automatic decision in + the presence of multiple CUDA Toolkits being installed. In this + situation, users are encouraged to either (1) set ``CUDAToolkit_ROOT`` or + (2) ensure that the correct ``nvcc`` executable shows up in ``$PATH`` for + :command:`find_program` to find. + +Options +^^^^^^^ + +``VERSION`` + If specified, describes the version of the CUDA Toolkit to search for. + +``REQUIRED`` + If specified, configuration will error if a suitable CUDA Toolkit is not + found. + +``QUIET`` + If specified, the search for a suitable CUDA Toolkit will not produce any + messages. + +``EXACT`` + If specified, the CUDA Toolkit is considered found only if the exact + ``VERSION`` specified is recovered. + +Imported targets +^^^^^^^^^^^^^^^^ + +An :ref:`imported target <Imported targets>` named ``CUDA::toolkit`` is provided. + +This module defines :prop_tgt:`IMPORTED` targets for each +of the following libraries that are part of the CUDAToolkit: + +- :ref:`CUDA Runtime Library<cuda_toolkit_rt_lib>` +- :ref:`CUDA Driver Library<cuda_toolkit_driver_lib>` +- :ref:`cuBLAS<cuda_toolkit_cuBLAS>` +- :ref:`cuFFT<cuda_toolkit_cuFFT>` +- :ref:`cuRAND<cuda_toolkit_cuRAND>` +- :ref:`cuSOLVER<cuda_toolkit_cuSOLVER>` +- :ref:`cuSPARSE<cuda_toolkit_cuSPARSE>` +- :ref:`cuPTI<cuda_toolkit_cupti>` +- :ref:`NPP<cuda_toolkit_NPP>` +- :ref:`nvBLAS<cuda_toolkit_nvBLAS>` +- :ref:`nvGRAPH<cuda_toolkit_nvGRAPH>` +- :ref:`nvJPEG<cuda_toolkit_nvJPEG>` +- :ref:`nvidia-ML<cuda_toolkit_nvML>` +- :ref:`nvRTC<cuda_toolkit_nvRTC>` +- :ref:`nvToolsExt<cuda_toolkit_nvToolsExt>` +- :ref:`OpenCL<cuda_toolkit_opencl>` +- :ref:`cuLIBOS<cuda_toolkit_cuLIBOS>` + +.. _`cuda_toolkit_rt_lib`: + +CUDA Runtime Library +"""""""""""""""""""" + +The CUDA Runtime library (cudart) are what most applications will typically +need to link against to make any calls such as `cudaMalloc`, and `cudaFree`. + +Targets Created: + +- ``CUDA::cudart`` +- ``CUDA::cudart_static`` + +.. _`cuda_toolkit_driver_lib`: + +CUDA Driver Library +"""""""""""""""""""" + +The CUDA Driver library (cuda) are used by applications that use calls +such as `cuMemAlloc`, and `cuMemFree`. This is generally used by advanced + + +Targets Created: + +- ``CUDA::cuda_driver`` +- ``CUDA::cuda_driver`` + +.. _`cuda_toolkit_cuBLAS`: + +cuBLAS +"""""" + +The `cuBLAS <https://docs.nvidia.com/cuda/cublas/index.html>`_ library. + +Targets Created: + +- ``CUDA::cublas`` +- ``CUDA::cublas_static`` + +.. _`cuda_toolkit_cuFFT`: + +cuFFT +""""" + +The `cuFFT <https://docs.nvidia.com/cuda/cufft/index.html>`_ library. + +Targets Created: + +- ``CUDA::cufft`` +- ``CUDA::cufftw`` +- ``CUDA::cufft_static`` +- ``CUDA::cufftw_static`` + +cuRAND +"""""" + +The `cuRAND <https://docs.nvidia.com/cuda/curand/index.html>`_ library. + +Targets Created: + +- ``CUDA::curand`` +- ``CUDA::curand_static`` + +.. _`cuda_toolkit_cuSOLVER`: + +cuSOLVER +"""""""" + +The `cuSOLVER <https://docs.nvidia.com/cuda/cusolver/index.html>`_ library. + +Targets Created: + +- ``CUDA::cusolver`` +- ``CUDA::cusolver_static`` + +.. _`cuda_toolkit_cuSPARSE`: + +cuSPARSE +"""""""" + +The `cuSPARSE <https://docs.nvidia.com/cuda/cusparse/index.html>`_ library. + +Targets Created: + +- ``CUDA::cusparse`` +- ``CUDA::cusparse_static`` + +.. _`cuda_toolkit_cupti`: + +cupti +""""" + +The `NVIDIA CUDA Profiling Tools Interface <https://developer.nvidia.com/CUPTI>`_. + +Targets Created: + +- ``CUDA::cupti`` +- ``CUDA::cupti_static`` + +.. _`cuda_toolkit_NPP`: + +NPP +""" + +The `NPP <https://docs.nvidia.com/cuda/npp/index.html>`_ libraries. + +Targets Created: + +- `nppc`: + + - ``CUDA::nppc`` + - ``CUDA::nppc_static`` + +- `nppial`: Arithmetic and logical operation functions in `nppi_arithmetic_and_logical_operations.h` + + - ``CUDA::nppial`` + - ``CUDA::nppial_static`` + +- `nppicc`: Color conversion and sampling functions in `nppi_color_conversion.h` + + - ``CUDA::nppicc`` + - ``CUDA::nppicc_static`` + +- `nppicom`: JPEG compression and decompression functions in `nppi_compression_functions.h` + + - ``CUDA::nppicom`` + - ``CUDA::nppicom_static`` + +- `nppidei`: Data exchange and initialization functions in `nppi_data_exchange_and_initialization.h` + + - ``CUDA::nppidei`` + - ``CUDA::nppidei_static`` + +- `nppif`: Filtering and computer vision functions in `nppi_filter_functions.h` + + - ``CUDA::nppif`` + - ``CUDA::nppif_static`` + +- `nppig`: Geometry transformation functions found in `nppi_geometry_transforms.h` + + - ``CUDA::nppig`` + - ``CUDA::nppig_static`` + +- `nppim`: Morphological operation functions found in `nppi_morphological_operations.h` + + - ``CUDA::nppim`` + - ``CUDA::nppim_static`` + +- `nppist`: Statistics and linear transform in `nppi_statistics_functions.h` and `nppi_linear_transforms.h` + + - ``CUDA::nppist`` + - ``CUDA::nppist_static`` + +- `nppisu`: Memory support functions in `nppi_support_functions.h` + + - ``CUDA::nppisu`` + - ``CUDA::nppisu_static`` + +- `nppitc`: Threshold and compare operation functions in `nppi_threshold_and_compare_operations.h` + + - ``CUDA::nppitc`` + - ``CUDA::nppitc_static`` + +- `npps`: + + - ``CUDA::npps`` + - ``CUDA::npps_static`` + +.. _`cuda_toolkit_nvBLAS`: + +nvBLAS +"""""" + +The `nvBLAS <https://docs.nvidia.com/cuda/nvblas/index.html>`_ libraries. +This is a shared library only. + +Targets Created: + +- ``CUDA::nvblas`` + +.. _`cuda_toolkit_nvGRAPH`: + +nvGRAPH +""""""" + +The `nvGRAPH <https://docs.nvidia.com/cuda/nvgraph/index.html>`_ library. + +Targets Created: + +- ``CUDA::nvgraph`` +- ``CUDA::nvgraph_static`` + + +.. _`cuda_toolkit_nvJPEG`: + +nvJPEG +"""""" + +The `nvJPEG <https://docs.nvidia.com/cuda/nvjpeg/index.html>`_ library. +Introduced in CUDA 10. + +Targets Created: + +- ``CUDA::nvjpeg`` +- ``CUDA::nvjpeg_static`` + +.. _`cuda_toolkit_nvRTC`: + +nvRTC +""""" + +The `nvRTC <https://docs.nvidia.com/cuda/nvrtc/index.html>`_ (Runtime Compilation) library. +This is a shared library only. + +Targets Created: + +- ``CUDA::nvrtc`` + +.. _`cuda_toolkit_nvml`: + +nvidia-ML +""""""""" + +The `NVIDIA Management Library <https://developer.nvidia.com/nvidia-management-library-nvml>`_. +This is a shared library only. + +Targets Created: + +- ``CUDA::nvml`` + +.. _`cuda_toolkit_nvToolsExt`: + +nvToolsExt +"""""""""" + +The `NVIDIA Tools Extension <https://docs.nvidia.com/gameworks/content/gameworkslibrary/nvtx/nvidia_tools_extension_library_nvtx.htm>`_. +This is a shared library only. + +Targets Created: + +- ``CUDA::nvToolsExt`` + +.. _`cuda_toolkit_opencl`: + +OpenCL +"""""" + +The `NVIDIA OpenCL Library <https://developer.nvidia.com/opencl>`_. +This is a shared library only. + +Targets Created: + +- ``CUDA::OpenCL`` + +.. _`cuda_toolkit_cuLIBOS`: + +cuLIBOS +""""""" + +The cuLIBOS library is a backend thread abstraction layer library which is +static only. The ``CUDA::cublas_static``, ``CUDA::cusparse_static``, +``CUDA::cufft_static``, ``CUDA::curand_static``, and (when implemented) NPP +libraries all automatically have this dependency linked. + +Target Created: + +- ``CUDA::culibos`` + +**Note**: direct usage of this target by consumers should not be necessary. + +.. _`cuda_toolkit_cuRAND`: + + + +Result variables +^^^^^^^^^^^^^^^^ + +``CUDAToolkit_FOUND`` + A boolean specifying whether or not the CUDA Toolkit was found. + +``CUDAToolkit_VERSION`` + The exact version of the CUDA Toolkit found (as reported by + ``nvcc --version``). + +``CUDAToolkit_VERSION_MAJOR`` + The major version of the CUDA Toolkit. + +``CUDAToolkit_VERSION_MAJOR`` + The minor version of the CUDA Toolkit. + +``CUDAToolkit_VERSION_PATCH`` + The patch version of the CUDA Toolkit. + +``CUDAToolkit_BIN_DIR`` + The path to the CUDA Toolkit library directory that contains the CUDA + executable ``nvcc``. + +``CUDAToolkit_INCLUDE_DIRS`` + The path to the CUDA Toolkit ``include`` folder containing the header files + required to compile a project linking against CUDA. + +``CUDAToolkit_LIBRARY_DIR`` + The path to the CUDA Toolkit library directory that contains the CUDA + Runtime library ``cudart``. + +``CUDAToolkit_TARGET_DIR`` + The path to the CUDA Toolkit directory including the target architecture + when cross-compiling. When not cross-compiling this will be equivalant to + ``CUDAToolkit_ROOT_DIR``. + +``CUDAToolkit_NVCC_EXECUTABLE`` + The path to the NVIDIA CUDA compiler ``nvcc``. Note that this path may + **not** be the same as + :variable:`CMAKE_CUDA_COMPILER <CMAKE_<LANG>_COMPILER>`. ``nvcc`` must be + found to determine the CUDA Toolkit version as well as determining other + features of the Toolkit. This variable is set for the convenience of + modules that depend on this one. + + +#]=======================================================================] + +# NOTE: much of this was simply extracted from FindCUDA.cmake. + +# James Bigler, NVIDIA Corp (nvidia.com - jbigler) +# Abe Stephens, SCI Institute -- http://www.sci.utah.edu/~abe/FindCuda.html +# +# Copyright (c) 2008 - 2009 NVIDIA Corporation. All rights reserved. +# +# Copyright (c) 2007-2009 +# Scientific Computing and Imaging Institute, University of Utah +# +# This code is licensed under the MIT License. See the FindCUDA.cmake script +# for the text of the license. + +# The MIT License +# +# License for the specific language governing rights and limitations under +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. +# +############################################################################### + +# For NVCC we can easily deduce the SDK binary directory from the compiler path. +if(CMAKE_CUDA_COMPILER_LOADED AND NOT CUDAToolkit_BIN_DIR AND CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA") + get_filename_component(cuda_dir "${CMAKE_CUDA_COMPILER}" DIRECTORY) + set(CUDAToolkit_BIN_DIR "${cuda_dir}" CACHE PATH "") + mark_as_advanced(CUDAToolkit_BIN_DIR) + unset(cuda_dir) +endif() + +IF(CMAKE_VERSION VERSION_LESS "3.12.0") + function(import_target_link_libraries target) + cmake_parse_arguments(HACK + "SYSTEM;INTERFACE;PUBLIC" + "" + "" + ${ARGN} + ) + get_target_property(LIBS ${target} INTERFACE_LINK_LIBRARIES) + if (LIBS) + list(APPEND LIBS ${HACK_UNPARSED_ARGUMENTS}) + else() + set(LIBS ${HACK_UNPARSED_ARGUMENTS}) + endif() + set_target_properties(${target} PROPERTIES + INTERFACE_LINK_LIBRARIES "${LIBS}") + endfunction() +ELSE() + function(import_target_link_libraries) + target_link_libraries(${ARGN}) + endfunction() +ENDIF() + +IF(CMAKE_VERSION VERSION_LESS "3.13.0") + function(import_target_link_directories target) + cmake_parse_arguments(HACK + "SYSTEM;INTERFACE;PUBLIC" + "" + "" + ${ARGN} + ) + get_target_property(LINK_LIBS ${target} INTERFACE_LINK_LIBRARIES) + if (LINK_LIBS) #could be not-found + set(LINK_LIBS_LIST ${LINK_LIBS}) + endif() + foreach(LIB ${HACK_UNPARSED_ARGUMENTS}) + list(APPEND LINK_LIBS_LIST -L${LIB}) + endforeach() + set_target_properties(${target} PROPERTIES + INTERFACE_LINK_LIBRARIES "${LINK_LIBS_LIST}") + endfunction() +ELSE() + function(import_target_link_directories) + target_link_directories(${ARGN}) + endfunction() +ENDIF() + +IF(CMAKE_VERSION VERSION_LESS "3.12.0") + function(import_target_include_directories target) + cmake_parse_arguments(HACK + "SYSTEM;INTERFACE;PUBLIC" + "" + "" + ${ARGN} + ) + get_target_property(INLUDE_DIRS ${target} INTERFACE_INCLUDE_DIRECTORIES) + if (INCLUDE_DIRS) + list(APPEND INCLUDE_DIRS ${HACK_UNPARSED_ARGUMENTS}) + else() + set(INCLUDE_DIRS ${HACK_UNPARSED_ARGUMENTS}) + endif() + set_target_properties(${target} PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${INCLUDE_DIRS}") + endfunction() +ELSE() + function(import_target_include_directories) + target_include_directories(${ARGN}) + endfunction() +ENDIF() + +# Try language- or user-provided path first. +if(CUDAToolkit_BIN_DIR) + find_program(CUDAToolkit_NVCC_EXECUTABLE + NAMES nvcc nvcc.exe + PATHS ${CUDAToolkit_BIN_DIR} + NO_DEFAULT_PATH + ) +endif() + +# Search using CUDAToolkit_ROOT +find_program(CUDAToolkit_NVCC_EXECUTABLE + NAMES nvcc nvcc.exe + PATHS ENV CUDA_PATH + PATH_SUFFIXES bin +) + +# If the user specified CUDAToolkit_ROOT but nvcc could not be found, this is an error. +if (NOT CUDAToolkit_NVCC_EXECUTABLE AND (DEFINED CUDAToolkit_ROOT OR DEFINED ENV{CUDAToolkit_ROOT})) + # Declare error messages now, print later depending on find_package args. + set(fail_base "Could not find nvcc executable in path specified by") + set(cuda_root_fail "${fail_base} CUDAToolkit_ROOT=${CUDAToolkit_ROOT}") + set(env_cuda_root_fail "${fail_base} environment variable CUDAToolkit_ROOT=$ENV{CUDAToolkit_ROOT}") + + if (CUDAToolkit_FIND_REQUIRED) + if (DEFINED CUDAToolkit_ROOT) + message(FATAL_ERROR ${cuda_root_fail}) + elseif (DEFINED ENV{CUDAToolkit_ROOT}) + message(FATAL_ERROR ${env_cuda_root_fail}) + endif() + else() + if (NOT CUDAToolkit_FIND_QUIETLY) + if (DEFINED CUDAToolkit_ROOT) + message(STATUS ${cuda_root_fail}) + elseif (DEFINED ENV{CUDAToolkit_ROOT}) + message(STATUS ${env_cuda_root_fail}) + endif() + endif() + set(CUDAToolkit_FOUND FALSE) + unset(fail_base) + unset(cuda_root_fail) + unset(env_cuda_root_fail) + return() + endif() +endif() + +# CUDAToolkit_ROOT cmake / env variable not specified, try platform defaults. +# +# - Linux: /usr/local/cuda-X.Y +# - macOS: /Developer/NVIDIA/CUDA-X.Y +# - Windows: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vX.Y +# +# We will also search the default symlink location /usr/local/cuda first since +# if CUDAToolkit_ROOT is not specified, it is assumed that the symlinked +# directory is the desired location. +if (NOT CUDAToolkit_NVCC_EXECUTABLE) + if (UNIX) + if (NOT APPLE) + set(platform_base "/usr/local/cuda-") + else() + set(platform_base "/Developer/NVIDIA/CUDA-") + endif() + else() + set(platform_base "C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v") + endif() + + # Build out a descending list of possible cuda installations, e.g. + file(GLOB possible_paths "${platform_base}*") + # Iterate the glob results and create a descending list. + set(possible_versions) + foreach (p ${possible_paths}) + # Extract version number from end of string + string(REGEX MATCH "[0-9][0-9]?\\.[0-9]$" p_version ${p}) + if (IS_DIRECTORY ${p} AND p_version) + list(APPEND possible_versions ${p_version}) + endif() + endforeach() + + # Cannot use list(SORT) because that is alphabetical, we need numerical. + # NOTE: this is not an efficient sorting strategy. But even if a user had + # every possible version of CUDA installed, this wouldn't create any + # significant overhead. + set(versions) + foreach (v ${possible_versions}) + list(LENGTH versions num_versions) + # First version, nothing to compare with so just append. + if (num_versions EQUAL 0) + list(APPEND versions ${v}) + else() + # Loop through list. Insert at an index when comparison is + # VERSION_GREATER since we want a descending list. Duplicates will not + # happen since this came from a glob list of directories. + set(i 0) + set(early_terminate FALSE) + while (i LESS num_versions) + list(GET versions ${i} curr) + if (v VERSION_GREATER curr) + list(INSERT versions ${i} ${v}) + set(early_terminate TRUE) + break() + endif() + math(EXPR i "${i} + 1") + endwhile() + # If it did not get inserted, place it at the end. + if (NOT early_terminate) + list(APPEND versions ${v}) + endif() + endif() + endforeach() + + # With a descending list of versions, populate possible paths to search. + set(search_paths) + foreach (v ${versions}) + list(APPEND search_paths "${platform_base}${v}") + endforeach() + + # Force the global default /usr/local/cuda to the front on Unix. + if (UNIX) + list(INSERT search_paths 0 "/usr/local/cuda") + endif() + + # Now search for nvcc again using the platform default search paths. + find_program(CUDAToolkit_NVCC_EXECUTABLE + NAMES nvcc nvcc.exe + PATHS ${search_paths} + PATH_SUFFIXES bin + ) + + # We are done with these variables now, cleanup for caller. + unset(platform_base) + unset(possible_paths) + unset(possible_versions) + unset(versions) + unset(i) + unset(early_terminate) + unset(search_paths) + + if (NOT CUDAToolkit_NVCC_EXECUTABLE) + if (CUDAToolkit_FIND_REQUIRED) + message(FATAL_ERROR "Could not find nvcc, please set CUDAToolkit_ROOT.") + elseif(NOT CUDAToolkit_FIND_QUIETLY) + message(STATUS "Could not find nvcc, please set CUDAToolkit_ROOT.") + endif() + + set(CUDAToolkit_FOUND FALSE) + return() + endif() +endif() + +if(NOT CUDAToolkit_BIN_DIR AND CUDAToolkit_NVCC_EXECUTABLE) + get_filename_component(cuda_dir "${CUDAToolkit_NVCC_EXECUTABLE}" DIRECTORY) + set(CUDAToolkit_BIN_DIR "${cuda_dir}" CACHE PATH "" FORCE) + mark_as_advanced(CUDAToolkit_BIN_DIR) + unset(cuda_dir) +endif() + +if(CUDAToolkit_NVCC_EXECUTABLE AND + CUDAToolkit_NVCC_EXECUTABLE STREQUAL CMAKE_CUDA_COMPILER) + # Need to set these based off the already computed CMAKE_CUDA_COMPILER_VERSION value + # This if statement will always match, but is used to provide variables for MATCH 1,2,3... + if(CMAKE_CUDA_COMPILER_VERSION MATCHES [=[([0-9]+)\.([0-9]+)\.([0-9]+)]=]) + set(CUDAToolkit_VERSION_MAJOR "${CMAKE_MATCH_1}") + set(CUDAToolkit_VERSION_MINOR "${CMAKE_MATCH_2}") + set(CUDAToolkit_VERSION_PATCH "${CMAKE_MATCH_3}") + set(CUDAToolkit_VERSION "${CMAKE_CUDA_COMPILER_VERSION}") + endif() +else() + # Compute the version by invoking nvcc + execute_process (COMMAND ${CUDAToolkit_NVCC_EXECUTABLE} "--version" OUTPUT_VARIABLE NVCC_OUT) + if(NVCC_OUT MATCHES [=[ V([0-9]+)\.([0-9]+)\.([0-9]+)]=]) + set(CUDAToolkit_VERSION_MAJOR "${CMAKE_MATCH_1}") + set(CUDAToolkit_VERSION_MINOR "${CMAKE_MATCH_2}") + set(CUDAToolkit_VERSION_PATCH "${CMAKE_MATCH_3}") + set(CUDAToolkit_VERSION "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}.${CMAKE_MATCH_3}") + endif() + unset(NVCC_OUT) +endif() + + +get_filename_component(CUDAToolkit_ROOT_DIR ${CUDAToolkit_BIN_DIR} DIRECTORY ABSOLUTE) + +# Handle cross compilation +if(CMAKE_CROSSCOMPILING) + if(CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7-a") + # Support for NVPACK + set (CUDAToolkit_TARGET_NAME "armv7-linux-androideabi") + elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm") + # Support for arm cross compilation + set(CUDAToolkit_TARGET_NAME "armv7-linux-gnueabihf") + elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64") + # Support for aarch64 cross compilation + if (ANDROID_ARCH_NAME STREQUAL "arm64") + set(CUDAToolkit_TARGET_NAME "aarch64-linux-androideabi") + else() + set(CUDAToolkit_TARGET_NAME "aarch64-linux") + endif (ANDROID_ARCH_NAME STREQUAL "arm64") + elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") + set(CUDAToolkit_TARGET_NAME "x86_64-linux") + endif() + + if (EXISTS "${CUDAToolkit_ROOT_DIR}/targets/${CUDAToolkit_TARGET_NAME}") + set(CUDAToolkit_TARGET_DIR "${CUDAToolkit_ROOT_DIR}/targets/${CUDAToolkit_TARGET_NAME}") + # add known CUDA target root path to the set of directories we search for programs, libraries and headers + list(PREPEND CMAKE_FIND_ROOT_PATH "${CUDAToolkit_TARGET_DIR}") + + # Mark that we need to pop the root search path changes after we have + # found all cuda libraries so that searches for our cross-compilation + # libraries work when another cuda sdk is in CMAKE_PREFIX_PATH or + # PATh + set(_CUDAToolkit_Pop_ROOT_PATH True) + endif() +else() + # Not cross compiling + set(CUDAToolkit_TARGET_DIR "${CUDAToolkit_ROOT_DIR}") + # Now that we have the real ROOT_DIR, find components inside it. + list(APPEND CMAKE_PREFIX_PATH ${CUDAToolkit_ROOT_DIR}) + + # Mark that we need to pop the prefix path changes after we have + # found the cudart library. + set(_CUDAToolkit_Pop_Prefix True) +endif() + + +# Find the include/ directory +find_path(CUDAToolkit_INCLUDE_DIR + NAMES cuda_runtime.h +) + +# And find the CUDA Runtime Library libcudart +find_library(CUDA_CUDART + NAMES cudart + PATH_SUFFIXES lib64 lib/x64 +) +if (NOT CUDA_CUDART) + find_library(CUDA_CUDART + NAMES cudart + PATH_SUFFIXES lib64/stubs lib/x64/stubs + ) +endif() + +if (NOT CUDA_CUDART AND NOT CUDAToolkit_FIND_QUIETLY) + message(STATUS "Unable to find cudart library.") +endif() + +unset(CUDAToolkit_ROOT_DIR) +if(_CUDAToolkit_Pop_Prefix) + list(REMOVE_AT CMAKE_PREFIX_PATH -1) + unset(_CUDAToolkit_Pop_Prefix) +endif() + +#----------------------------------------------------------------------------- +# Perform version comparison and validate all required variables are set. +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(CUDAToolkit + REQUIRED_VARS + CUDAToolkit_INCLUDE_DIR + CUDA_CUDART + CUDAToolkit_NVCC_EXECUTABLE + VERSION_VAR + CUDAToolkit_VERSION +) +mark_as_advanced(CUDA_CUDART + CUDAToolkit_INCLUDE_DIR + CUDAToolkit_NVCC_EXECUTABLE + ) + +#----------------------------------------------------------------------------- +# Construct result variables +if(CUDAToolkit_FOUND) + set(CUDAToolkit_INCLUDE_DIRS ${CUDAToolkit_INCLUDE_DIR}) + get_filename_component(CUDAToolkit_LIBRARY_DIR ${CUDA_CUDART} DIRECTORY ABSOLUTE) +endif() + +#----------------------------------------------------------------------------- +# Construct import targets +if(CUDAToolkit_FOUND) + + function(_CUDAToolkit_find_and_add_import_lib lib_name) + cmake_parse_arguments(arg "" "" "ALT;DEPS;EXTRA_PATH_SUFFIXES" ${ARGN}) + + set(search_names ${lib_name} ${arg_ALT}) + + find_library(CUDA_${lib_name}_LIBRARY + NAMES ${search_names} + HINTS ${CUDAToolkit_LIBRARY_DIR} + ENV CUDA_PATH + PATH_SUFFIXES nvidia/current lib64 lib/x64 lib + ${arg_EXTRA_PATH_SUFFIXES} + ) + # Don't try any stub directories intil we have exhausted all other + # search locations. + if(NOT CUDA_${lib_name}_LIBRARY) + find_library(CUDA_${lib_name}_LIBRARY + NAMES ${search_names} + HINTS ${CUDAToolkit_LIBRARY_DIR} + ENV CUDA_PATH + PATH_SUFFIXES lib64/stubs lib/x64/stubs lib/stubs stubs + ) + endif() + + mark_as_advanced(CUDA_${lib_name}_LIBRARY) + + if (NOT TARGET CUDA::${lib_name} AND CUDA_${lib_name}_LIBRARY) + add_library(CUDA::${lib_name} IMPORTED INTERFACE) + import_target_include_directories(CUDA::${lib_name} SYSTEM INTERFACE "${CUDAToolkit_INCLUDE_DIRS}") + import_target_link_libraries(CUDA::${lib_name} INTERFACE "${CUDA_${lib_name}_LIBRARY}") + foreach(dep ${arg_DEPS}) + if(TARGET CUDA::${dep}) + import_target_link_libraries(CUDA::${lib_name} INTERFACE CUDA::${dep}) + endif() + endforeach() + endif() + endfunction() + + if(NOT TARGET CUDA::toolkit) + add_library(CUDA::toolkit IMPORTED INTERFACE) + import_target_include_directories(CUDA::toolkit SYSTEM INTERFACE "${CUDAToolkit_INCLUDE_DIRS}") + import_target_link_directories(CUDA::toolkit INTERFACE "${CUDAToolkit_LIBRARY_DIR}") + endif() + + _CUDAToolkit_find_and_add_import_lib(cuda_driver ALT cuda) + + _CUDAToolkit_find_and_add_import_lib(cudart) + _CUDAToolkit_find_and_add_import_lib(cudart_static) + + # setup dependencies that are required for cudart_static when building + # on linux. These are generally only required when using the CUDA toolkit + # when CUDA language is disabled + if(NOT TARGET CUDA::cudart_static_deps + AND TARGET CUDA::cudart_static) + + add_library(CUDA::cudart_static_deps IMPORTED INTERFACE) + import_target_link_libraries(CUDA::cudart_static INTERFACE CUDA::cudart_static_deps) + + if(UNIX AND (CMAKE_C_COMPILER OR CMAKE_CXX_COMPILER)) + find_package(Threads REQUIRED) + import_target_link_libraries(CUDA::cudart_static_deps INTERFACE Threads::Threads ${CMAKE_DL_LIBS}) + endif() + + if(UNIX AND NOT APPLE) + # On Linux, you must link against librt when using the static cuda runtime. + find_library(CUDAToolkit_rt_LIBRARY rt) + mark_as_advanced(CUDAToolkit_rt_LIBRARY) + if(NOT CUDAToolkit_rt_LIBRARY) + message(WARNING "Could not find librt library, needed by CUDA::cudart_static") + else() + import_target_link_libraries(CUDA::cudart_static_deps INTERFACE ${CUDAToolkit_rt_LIBRARY}) + endif() + endif() + endif() + + _CUDAToolkit_find_and_add_import_lib(culibos) # it's a static library + foreach (cuda_lib cublas cufft curand cusparse nppc nvjpeg) + _CUDAToolkit_find_and_add_import_lib(${cuda_lib}) + _CUDAToolkit_find_and_add_import_lib(${cuda_lib}_static DEPS culibos) + endforeach() + + # cuFFTW depends on cuFFT + _CUDAToolkit_find_and_add_import_lib(cufftw DEPS cufft) + _CUDAToolkit_find_and_add_import_lib(cufftw DEPS cufft_static) + + # cuSOLVER depends on cuBLAS, and cuSPARSE + _CUDAToolkit_find_and_add_import_lib(cusolver DEPS cublas cusparse) + _CUDAToolkit_find_and_add_import_lib(cusolver_static DEPS cublas_static cusparse_static culibos) + + # nvGRAPH depends on cuRAND, and cuSOLVER. + _CUDAToolkit_find_and_add_import_lib(nvgraph DEPS curand cusolver) + _CUDAToolkit_find_and_add_import_lib(nvgraph_static DEPS curand_static cusolver_static) + + # Process the majority of the NPP libraries. + foreach (cuda_lib nppial nppicc nppidei nppif nppig nppim nppist nppitc npps nppicom nppisu) + _CUDAToolkit_find_and_add_import_lib(${cuda_lib} DEPS nppc) + _CUDAToolkit_find_and_add_import_lib(${cuda_lib}_static DEPS nppc_static) + endforeach() + + _CUDAToolkit_find_and_add_import_lib(cupti + EXTRA_PATH_SUFFIXES ../extras/CUPTI/lib64/ + ../extras/CUPTI/lib/) + _CUDAToolkit_find_and_add_import_lib(cupti_static + EXTRA_PATH_SUFFIXES ../extras/CUPTI/lib64/ + ../extras/CUPTI/lib/) + + _CUDAToolkit_find_and_add_import_lib(nvrtc DEPS cuda_driver) + + _CUDAToolkit_find_and_add_import_lib(nvml ALT nvidia-ml nvml) + + if(WIN32) + # nvtools can be installed outside the CUDA toolkit directory + # so prefer the NVTOOLSEXT_PATH windows only environment variable + # In addition on windows the most common name is nvToolsExt64_1 + find_library(CUDA_nvToolsExt_LIBRARY + NAMES nvToolsExt64_1 nvToolsExt64 nvToolsExt + PATHS ENV NVTOOLSEXT_PATH + ENV CUDA_PATH + PATH_SUFFIXES lib/x64 lib + ) + endif() + _CUDAToolkit_find_and_add_import_lib(nvToolsExt ALT nvToolsExt64) + + _CUDAToolkit_find_and_add_import_lib(OpenCL) +endif() + +if(_CUDAToolkit_Pop_ROOT_PATH) + list(REMOVE_AT CMAKE_FIND_ROOT_PATH 0) + unset(_CUDAToolkit_Pop_ROOT_PATH) +endif() diff --git a/packages/kokkos/cmake/Modules/FindTPLCUDA.cmake b/packages/kokkos/cmake/Modules/FindTPLCUDA.cmake index 1b36ab819..a1072a60c 100644 --- a/packages/kokkos/cmake/Modules/FindTPLCUDA.cmake +++ b/packages/kokkos/cmake/Modules/FindTPLCUDA.cmake @@ -1,17 +1,37 @@ +IF (NOT CUDAToolkit_ROOT) + IF (NOT CUDA_ROOT) + SET(CUDA_ROOT $ENV{CUDA_ROOT}) + ENDIF() + IF(CUDA_ROOT) + SET(CUDAToolkit_ROOT ${CUDA_ROOT}) + ENDIF() +ENDIF() + +IF(CMAKE_VERSION VERSION_GREATER_EQUAL "3.17.0") + find_package(CUDAToolkit) +ELSE() + include(${CMAKE_CURRENT_LIST_DIR}/CudaToolkit.cmake) +ENDIF() + -IF (KOKKOS_CXX_COMPILER_ID STREQUAL Clang) - # Note: "stubs" suffix allows CMake to find the dummy - # libcuda.so provided by the NVIDIA CUDA Toolkit for - # cross-compiling CUDA on a host without a GPU. - KOKKOS_FIND_IMPORTED(CUDA INTERFACE - LIBRARIES cudart cuda - LIBRARY_PATHS ENV LD_LIBRARY_PATH ENV CUDA_PATH /usr/local/cuda - LIBRARY_SUFFIXES lib lib64 lib/stubs lib64/stubs - ALLOW_SYSTEM_PATH_FALLBACK - ) +IF (TARGET CUDA::cudart) + SET(FOUND_CUDART TRUE) + KOKKOS_EXPORT_IMPORTED_TPL(CUDA::cudart) ELSE() - KOKKOS_CREATE_IMPORTED_TPL(CUDA INTERFACE - LINK_LIBRARIES cuda - ) + SET(FOUND_CUDART FALSE) ENDIF() +IF (TARGET CUDA::cuda_driver) + SET(FOUND_CUDA_DRIVER TRUE) + KOKKOS_EXPORT_IMPORTED_TPL(CUDA::cuda_driver) +ELSE() + SET(FOUND_CUDA_DRIVVER FALSE) +ENDIF() + +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(TPLCUDA DEFAULT_MSG FOUND_CUDART FOUND_CUDA_DRIVER) +IF (FOUND_CUDA_DRIVER AND FOUND_CUDART) + KOKKOS_CREATE_IMPORTED_TPL(CUDA INTERFACE + LINK_LIBRARIES CUDA::cuda_driver CUDA::cudart + ) +ENDIF() diff --git a/packages/kokkos/cmake/README.md b/packages/kokkos/cmake/README.md index 6d0cc2daf..385bbfcd5 100644 --- a/packages/kokkos/cmake/README.md +++ b/packages/kokkos/cmake/README.md @@ -73,20 +73,20 @@ Compiler features are more fine-grained and require conflicting requests to be r Suppose I have ```` add_library(A a.cpp) -target_compile_features(A PUBLIC cxx_std_11) +target_compile_features(A PUBLIC cxx_std_14) ```` then another target ```` add_library(B b.cpp) -target_compile_features(B PUBLIC cxx_std_14) +target_compile_features(B PUBLIC cxx_std_17) target_link_libraries(A B) ```` I have requested two different features. -CMake understands the requests and knows that `cxx_std_11` is a subset of `cxx_std_14`. -CMake then picks C++14 for library `B`. +CMake understands the requests and knows that `cxx_std_14` is a subset of `cxx_std_17`. +CMake then picks C++17 for library `B`. CMake would not have been able to do feature resolution if we had directly done: ```` -target_compile_options(A PUBLIC -std=c++11) +target_compile_options(A PUBLIC -std=c++14) ```` ### Adding Kokkos Options diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp b/packages/kokkos/cmake/compile_tests/cuda_compute_capability.cc similarity index 54% rename from packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp rename to packages/kokkos/cmake/compile_tests/cuda_compute_capability.cc index ea2da28f1..48c01c070 100644 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp +++ b/packages/kokkos/cmake/compile_tests/cuda_compute_capability.cc @@ -1,3 +1,4 @@ +/* //@HEADER // ************************************************************************ // @@ -8,8 +9,6 @@ // Under the terms of Contract DE-NA0003525 with NTESS, // the U.S. Government retains certain rights in this software. // -// Kokkos is licensed under 3-clause BSD terms of use: -// // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: @@ -41,18 +40,43 @@ // // ************************************************************************ //@HEADER +*/ -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutStride, OpenMP, int64_t) +#include <iostream> -} // namespace Impl -} // namespace Kokkos +int main() { + cudaDeviceProp device_properties; + const cudaError_t error = cudaGetDeviceProperties(&device_properties, + /*device*/ 0); + if (error != cudaSuccess) { + std::cout << "CUDA error: " << cudaGetErrorString(error) << '\n'; + return error; + } + unsigned int const compute_capability = + device_properties.major * 10 + device_properties.minor; +#ifdef SM_ONLY + std::cout << compute_capability; +#else + switch (compute_capability) { + // clang-format off + case 30: std::cout << "Set -DKokkos_ARCH_KEPLER30=ON ." << std::endl; break; + case 32: std::cout << "Set -DKokkos_ARCH_KEPLER32=ON ." << std::endl; break; + case 35: std::cout << "Set -DKokkos_ARCH_KEPLER35=ON ." << std::endl; break; + case 37: std::cout << "Set -DKokkos_ARCH_KEPLER37=ON ." << std::endl; break; + case 50: std::cout << "Set -DKokkos_ARCH_MAXWELL50=ON ." << std::endl; break; + case 52: std::cout << "Set -DKokkos_ARCH_MAXWELL52=ON ." << std::endl; break; + case 53: std::cout << "Set -DKokkos_ARCH_MAXWELL53=ON ." << std::endl; break; + case 60: std::cout << "Set -DKokkos_ARCH_PASCAL60=ON ." << std::endl; break; + case 61: std::cout << "Set -DKokkos_ARCH_PASCAL61=ON ." << std::endl; break; + case 70: std::cout << "Set -DKokkos_ARCH_VOLTA70=ON ." << std::endl; break; + case 72: std::cout << "Set -DKokkos_ARCH_VOLTA72=ON ." << std::endl; break; + case 75: std::cout << "Set -DKokkos_ARCH_TURING75=ON ." << std::endl; break; + case 80: std::cout << "Set -DKokkos_ARCH_AMPERE80=ON ." << std::endl; break; + default: + std::cout << "Compute capability " << compute_capability + << " is not supported" << std::endl; + // clang-format on + } +#endif + return 0; +} diff --git a/packages/kokkos/cmake/deps/CUDA.cmake b/packages/kokkos/cmake/deps/CUDA.cmake index 4876bca25..beaf4e6d6 100644 --- a/packages/kokkos/cmake/deps/CUDA.cmake +++ b/packages/kokkos/cmake/deps/CUDA.cmake @@ -1,14 +1,16 @@ # @HEADER # ************************************************************************ # -# Trilinos: An Object-Oriented Solver Framework -# Copyright (2001) Sandia Corporation +# Kokkos v. 3.0 +# Copyright (2020) 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. # -# Copyright (2001) Sandia Corporation. Under the terms of Contract -# DE-AC04-94AL85000, there is a non-exclusive license for use of this -# work by or on behalf of the U.S. Government. Export of this program -# may require a license from the United States Government. +# 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. @@ -21,10 +23,10 @@ # contributors may be used to endorse or promote products derived from # this software without specific prior written permission. # -# THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +# THIS SOFTWARE IS PROVIDED BY NTESS "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 SANDIA CORPORATION OR THE +# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE # 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 @@ -33,22 +35,7 @@ # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # -# NOTICE: The United States Government is granted for itself and others -# acting on its behalf a paid-up, nonexclusive, irrevocable worldwide -# license in this data to reproduce, prepare derivative works, and -# perform publicly and display publicly. Beginning five (5) years from -# July 25, 2001, the United States Government is granted for itself and -# others acting on its behalf a paid-up, nonexclusive, irrevocable -# worldwide license in this data to reproduce, prepare derivative works, -# distribute copies to the public, perform publicly and display -# publicly, and to permit others to do so. -# -# NEITHER THE UNITED STATES GOVERNMENT, NOR THE UNITED STATES DEPARTMENT -# OF ENERGY, NOR SANDIA CORPORATION, NOR ANY OF THEIR EMPLOYEES, MAKES -# ANY WARRANTY, EXPRESS OR IMPLIED, OR ASSUMES ANY LEGAL LIABILITY OR -# RESPONSIBILITY FOR THE ACCURACY, COMPLETENESS, OR USEFULNESS OF ANY -# INFORMATION, APPARATUS, PRODUCT, OR PROCESS DISCLOSED, OR REPRESENTS -# THAT ITS USE WOULD NOT INFRINGE PRIVATELY OWNED RIGHTS. +# Questions? Contact Christian R. Trott (crtrott@sandia.gov) # # ************************************************************************ # @HEADER diff --git a/packages/kokkos/cmake/deps/CUSPARSE.cmake b/packages/kokkos/cmake/deps/CUSPARSE.cmake index b2420d116..073c40d81 100644 --- a/packages/kokkos/cmake/deps/CUSPARSE.cmake +++ b/packages/kokkos/cmake/deps/CUSPARSE.cmake @@ -1,14 +1,16 @@ # @HEADER # ************************************************************************ # -# Trilinos: An Object-Oriented Solver Framework -# Copyright (2001) Sandia Corporation +# Kokkos v. 3.0 +# Copyright (2020) 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. # -# Copyright (2001) Sandia Corporation. Under the terms of Contract -# DE-AC04-94AL85000, there is a non-exclusive license for use of this -# work by or on behalf of the U.S. Government. Export of this program -# may require a license from the United States Government. +# 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. @@ -21,10 +23,10 @@ # contributors may be used to endorse or promote products derived from # this software without specific prior written permission. # -# THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +# THIS SOFTWARE IS PROVIDED BY NTESS "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 SANDIA CORPORATION OR THE +# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE # 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 @@ -33,22 +35,7 @@ # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # -# NOTICE: The United States Government is granted for itself and others -# acting on its behalf a paid-up, nonexclusive, irrevocable worldwide -# license in this data to reproduce, prepare derivative works, and -# perform publicly and display publicly. Beginning five (5) years from -# July 25, 2001, the United States Government is granted for itself and -# others acting on its behalf a paid-up, nonexclusive, irrevocable -# worldwide license in this data to reproduce, prepare derivative works, -# distribute copies to the public, perform publicly and display -# publicly, and to permit others to do so. -# -# NEITHER THE UNITED STATES GOVERNMENT, NOR THE UNITED STATES DEPARTMENT -# OF ENERGY, NOR SANDIA CORPORATION, NOR ANY OF THEIR EMPLOYEES, MAKES -# ANY WARRANTY, EXPRESS OR IMPLIED, OR ASSUMES ANY LEGAL LIABILITY OR -# RESPONSIBILITY FOR THE ACCURACY, COMPLETENESS, OR USEFULNESS OF ANY -# INFORMATION, APPARATUS, PRODUCT, OR PROCESS DISCLOSED, OR REPRESENTS -# THAT ITS USE WOULD NOT INFRINGE PRIVATELY OWNED RIGHTS. +# Questions? Contact Christian R. Trott (crtrott@sandia.gov) # # ************************************************************************ # @HEADER diff --git a/packages/kokkos/cmake/deps/HWLOC.cmake b/packages/kokkos/cmake/deps/HWLOC.cmake index ed89c8c1e..f8402db00 100644 --- a/packages/kokkos/cmake/deps/HWLOC.cmake +++ b/packages/kokkos/cmake/deps/HWLOC.cmake @@ -1,14 +1,16 @@ # @HEADER # ************************************************************************ # -# Trilinos: An Object-Oriented Solver Framework -# Copyright (2001) Sandia Corporation +# Kokkos v. 3.0 +# Copyright (2020) 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. # -# Copyright (2001) Sandia Corporation. Under the terms of Contract -# DE-AC04-94AL85000, there is a non-exclusive license for use of this -# work by or on behalf of the U.S. Government. Export of this program -# may require a license from the United States Government. +# 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. @@ -21,10 +23,10 @@ # contributors may be used to endorse or promote products derived from # this software without specific prior written permission. # -# THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +# THIS SOFTWARE IS PROVIDED BY NTESS "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 SANDIA CORPORATION OR THE +# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE # 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 @@ -33,22 +35,7 @@ # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # -# NOTICE: The United States Government is granted for itself and others -# acting on its behalf a paid-up, nonexclusive, irrevocable worldwide -# license in this data to reproduce, prepare derivative works, and -# perform publicly and display publicly. Beginning five (5) years from -# July 25, 2001, the United States Government is granted for itself and -# others acting on its behalf a paid-up, nonexclusive, irrevocable -# worldwide license in this data to reproduce, prepare derivative works, -# distribute copies to the public, perform publicly and display -# publicly, and to permit others to do so. -# -# NEITHER THE UNITED STATES GOVERNMENT, NOR THE UNITED STATES DEPARTMENT -# OF ENERGY, NOR SANDIA CORPORATION, NOR ANY OF THEIR EMPLOYEES, MAKES -# ANY WARRANTY, EXPRESS OR IMPLIED, OR ASSUMES ANY LEGAL LIABILITY OR -# RESPONSIBILITY FOR THE ACCURACY, COMPLETENESS, OR USEFULNESS OF ANY -# INFORMATION, APPARATUS, PRODUCT, OR PROCESS DISCLOSED, OR REPRESENTS -# THAT ITS USE WOULD NOT INFRINGE PRIVATELY OWNED RIGHTS. +# Questions? Contact Christian R. Trott (crtrott@sandia.gov) # # ************************************************************************ # @HEADER diff --git a/packages/kokkos/cmake/deps/Pthread.cmake b/packages/kokkos/cmake/deps/Pthread.cmake index 5f835fc30..639e4ef69 100644 --- a/packages/kokkos/cmake/deps/Pthread.cmake +++ b/packages/kokkos/cmake/deps/Pthread.cmake @@ -1,14 +1,16 @@ # @HEADER # ************************************************************************ # -# Trilinos: An Object-Oriented Solver Framework -# Copyright (2001) Sandia Corporation +# Kokkos v. 3.0 +# Copyright (2020) 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. # -# Copyright (2001) Sandia Corporation. Under the terms of Contract -# DE-AC04-94AL85000, there is a non-exclusive license for use of this -# work by or on behalf of the U.S. Government. Export of this program -# may require a license from the United States Government. +# 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. @@ -21,10 +23,10 @@ # contributors may be used to endorse or promote products derived from # this software without specific prior written permission. # -# THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +# THIS SOFTWARE IS PROVIDED BY NTESS "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 SANDIA CORPORATION OR THE +# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE # 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 @@ -33,22 +35,7 @@ # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # -# NOTICE: The United States Government is granted for itself and others -# acting on its behalf a paid-up, nonexclusive, irrevocable worldwide -# license in this data to reproduce, prepare derivative works, and -# perform publicly and display publicly. Beginning five (5) years from -# July 25, 2001, the United States Government is granted for itself and -# others acting on its behalf a paid-up, nonexclusive, irrevocable -# worldwide license in this data to reproduce, prepare derivative works, -# distribute copies to the public, perform publicly and display -# publicly, and to permit others to do so. -# -# NEITHER THE UNITED STATES GOVERNMENT, NOR THE UNITED STATES DEPARTMENT -# OF ENERGY, NOR SANDIA CORPORATION, NOR ANY OF THEIR EMPLOYEES, MAKES -# ANY WARRANTY, EXPRESS OR IMPLIED, OR ASSUMES ANY LEGAL LIABILITY OR -# RESPONSIBILITY FOR THE ACCURACY, COMPLETENESS, OR USEFULNESS OF ANY -# INFORMATION, APPARATUS, PRODUCT, OR PROCESS DISCLOSED, OR REPRESENTS -# THAT ITS USE WOULD NOT INFRINGE PRIVATELY OWNED RIGHTS. +# Questions? Contact Christian R. Trott (crtrott@sandia.gov) # # ************************************************************************ # @HEADER diff --git a/packages/kokkos/cmake/fake_tribits.cmake b/packages/kokkos/cmake/fake_tribits.cmake index acee4a249..2e82a4623 100644 --- a/packages/kokkos/cmake/fake_tribits.cmake +++ b/packages/kokkos/cmake/fake_tribits.cmake @@ -38,12 +38,6 @@ MACRO(GLOBAL_SET VARNAME) SET(${VARNAME} ${ARGN} CACHE INTERNAL "" FORCE) ENDMACRO() -FUNCTION(VERIFY_EMPTY CONTEXT) -if(${ARGN}) -MESSAGE(FATAL_ERROR "Kokkos does not support all of Tribits. Unhandled arguments in ${CONTEXT}:\n${ARGN}") -endif() -ENDFUNCTION() - MACRO(PREPEND_GLOBAL_SET VARNAME) ASSERT_DEFINED(${VARNAME}) GLOBAL_SET(${VARNAME} ${ARGN} ${${VARNAME}}) @@ -88,8 +82,8 @@ FUNCTION(KOKKOS_ADD_TEST) if (KOKKOS_HAS_TRILINOS) CMAKE_PARSE_ARGUMENTS(TEST "" - "EXE;NAME" - "" + "EXE;NAME;TOOL" + "ARGS" ${ARGN}) IF(TEST_EXE) SET(EXE_ROOT ${TEST_EXE}) @@ -102,14 +96,34 @@ FUNCTION(KOKKOS_ADD_TEST) NAME ${TEST_NAME} COMM serial mpi NUM_MPI_PROCS 1 + ARGS ${TEST_ARGS} ${TEST_UNPARSED_ARGUMENTS} + ADDED_TESTS_NAMES_OUT ALL_TESTS_ADDED ) + + # We will get prepended package name here + SET(TEST_NAME ${PACKAGE_NAME}_${TEST_NAME}) + SET(EXE ${PACKAGE_NAME}_${EXE_ROOT}) + + # The function TRIBITS_ADD_TEST() has a CATEGORIES argument that defaults + # to BASIC. If a project elects to only enable tests marked as PERFORMANCE, + # the test won't actually be added and attempting to set a property on it below + # will yield an error. + if(TARGET ${EXE}) + if(TEST_TOOL) + add_dependencies(${EXE} ${TEST_TOOL}) #make sure the exe has to build the tool + foreach(TEST_ADDED ${ALL_TESTS_ADDED}) + set_property(TEST ${TEST_ADDED} APPEND PROPERTY ENVIRONMENT "KOKKOS_PROFILE_LIBRARY=$<TARGET_FILE:${TEST_TOOL}>") + endforeach() + endif() + endif() else() CMAKE_PARSE_ARGUMENTS(TEST "WILL_FAIL" - "FAIL_REGULAR_EXPRESSION;PASS_REGULAR_EXPRESSION;EXE;NAME" - "CATEGORIES;CMD_ARGS" + "FAIL_REGULAR_EXPRESSION;PASS_REGULAR_EXPRESSION;EXE;NAME;TOOL" + "CATEGORIES;ARGS" ${ARGN}) + SET(TESTS_ADDED) # To match Tribits, we should always be receiving # the root names of exes/libs IF(TEST_EXE) @@ -121,20 +135,46 @@ FUNCTION(KOKKOS_ADD_TEST) # These should be the full target name SET(TEST_NAME ${PACKAGE_NAME}_${TEST_NAME}) SET(EXE ${PACKAGE_NAME}_${EXE_ROOT}) - IF(WIN32) - ADD_TEST(NAME ${TEST_NAME} WORKING_DIRECTORY ${LIBRARY_OUTPUT_PATH} COMMAND ${EXE}${CMAKE_EXECUTABLE_SUFFIX} ${TEST_CMD_ARGS}) + IF (TEST_ARGS) + SET(TEST_NUMBER 0) + FOREACH (ARG_STR ${TEST_ARGS}) + # This is passed as a single string blob to match TriBITS behavior + # We need this to be turned into a list + STRING(REPLACE " " ";" ARG_STR_LIST ${ARG_STR}) + IF(WIN32) + ADD_TEST(NAME ${TEST_NAME}${TEST_NUMBER} WORKING_DIRECTORY ${LIBRARY_OUTPUT_PATH} + COMMAND ${EXE}${CMAKE_EXECUTABLE_SUFFIX} ${ARG_STR_LIST}) + ELSE() + ADD_TEST(NAME ${TEST_NAME}${TEST_NUMBER} COMMAND ${EXE} ${ARG_STR_LIST}) + ENDIF() + LIST(APPEND TESTS_ADDED "${TEST_NAME}${TEST_NUMBER}") + MATH(EXPR TEST_NUMBER "${TEST_NUMBER} + 1") + ENDFOREACH() ELSE() - ADD_TEST(NAME ${TEST_NAME} COMMAND ${EXE} ${TEST_CMD_ARGS}) - ENDIF() - IF(TEST_WILL_FAIL) - SET_TESTS_PROPERTIES(${TEST_NAME} PROPERTIES WILL_FAIL ${TEST_WILL_FAIL}) - ENDIF() - IF(TEST_FAIL_REGULAR_EXPRESSION) - SET_TESTS_PROPERTIES(${TEST_NAME} PROPERTIES FAIL_REGULAR_EXPRESSION ${TEST_FAIL_REGULAR_EXPRESSION}) - ENDIF() - IF(TEST_PASS_REGULAR_EXPRESSION) - SET_TESTS_PROPERTIES(${TEST_NAME} PROPERTIES PASS_REGULAR_EXPRESSION ${TEST_PASS_REGULAR_EXPRESSION}) + IF(WIN32) + ADD_TEST(NAME ${TEST_NAME} WORKING_DIRECTORY ${LIBRARY_OUTPUT_PATH} + COMMAND ${EXE}${CMAKE_EXECUTABLE_SUFFIX}) + ELSE() + ADD_TEST(NAME ${TEST_NAME} COMMAND ${EXE}) + ENDIF() + LIST(APPEND TESTS_ADDED "${TEST_NAME}") ENDIF() + + FOREACH(TEST_NAME ${TESTS_ADDED}) + IF(TEST_WILL_FAIL) + SET_TESTS_PROPERTIES(${TEST_NAME} PROPERTIES WILL_FAIL ${TEST_WILL_FAIL}) + ENDIF() + IF(TEST_FAIL_REGULAR_EXPRESSION) + SET_TESTS_PROPERTIES(${TEST_NAME} PROPERTIES FAIL_REGULAR_EXPRESSION ${TEST_FAIL_REGULAR_EXPRESSION}) + ENDIF() + IF(TEST_PASS_REGULAR_EXPRESSION) + SET_TESTS_PROPERTIES(${TEST_NAME} PROPERTIES PASS_REGULAR_EXPRESSION ${TEST_PASS_REGULAR_EXPRESSION}) + ENDIF() + if(TEST_TOOL) + add_dependencies(${EXE} ${TEST_TOOL}) #make sure the exe has to build the tool + set_property(TEST ${TEST_NAME} APPEND_STRING PROPERTY ENVIRONMENT "KOKKOS_PROFILE_LIBRARY=$<TARGET_FILE:${TEST_TOOL}>") + endif() + ENDFOREACH() VERIFY_EMPTY(KOKKOS_ADD_TEST ${TEST_UNPARSED_ARGUMENTS}) endif() ENDFUNCTION() @@ -254,9 +294,7 @@ ENDFUNCTION() FUNCTION(KOKKOS_ADD_TEST_LIBRARY NAME) IF (KOKKOS_HAS_TRILINOS) - TRIBITS_ADD_LIBRARY(${NAME} ${ARGN} TESTONLY - ADDED_LIB_TARGET_NAME_OUT ${NAME} - ) + TRIBITS_ADD_LIBRARY(${NAME} ${ARGN} TESTONLY) ELSE() SET(oneValueArgs) SET(multiValueArgs HEADERS SOURCES) @@ -264,16 +302,26 @@ ELSE() CMAKE_PARSE_ARGUMENTS(PARSE "STATIC;SHARED" "" - "HEADERS;SOURCES" + "HEADERS;SOURCES;DEPLIBS" ${ARGN}) + SET(LIB_TYPE) + IF (PARSE_STATIC) + SET(LIB_TYPE STATIC) + ELSEIF (PARSE_SHARED) + SET(LIB_TYPE SHARED) + ENDIF() + IF(PARSE_HEADERS) LIST(REMOVE_DUPLICATES PARSE_HEADERS) ENDIF() IF(PARSE_SOURCES) LIST(REMOVE_DUPLICATES PARSE_SOURCES) ENDIF() - ADD_LIBRARY(${NAME} ${PARSE_SOURCES}) + ADD_LIBRARY(${NAME} ${LIB_TYPE} ${PARSE_SOURCES}) + IF (PARSE_DEPLIBS) + TARGET_LINK_LIBRARIES(${NAME} PRIVATE ${PARSE_DEPLIBS}) + ENDIF() ENDIF() ENDFUNCTION() diff --git a/packages/kokkos/cmake/intel.cmake b/packages/kokkos/cmake/intel.cmake index f36f01d8c..7e6ee3358 100644 --- a/packages/kokkos/cmake/intel.cmake +++ b/packages/kokkos/cmake/intel.cmake @@ -3,7 +3,7 @@ FUNCTION(kokkos_set_intel_flags full_standard int_standard) STRING(TOLOWER ${full_standard} FULL_LC_STANDARD) STRING(TOLOWER ${int_standard} INT_LC_STANDARD) # The following three blocks of code were copied from - # /Modules/Compiler/Intel-CXX.cmake from CMake 3.7.2 and then modified. + # /Modules/Compiler/Intel-CXX.cmake from CMake 3.18.1 and then modified. IF(CMAKE_CXX_SIMULATE_ID STREQUAL MSVC) SET(_std -Qstd) SET(_ext c++) @@ -11,20 +11,8 @@ FUNCTION(kokkos_set_intel_flags full_standard int_standard) SET(_std -std) SET(_ext gnu++) ENDIF() - - IF(NOT KOKKOS_CXX_STANDARD STREQUAL 11 AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 15.0.2) - #There is no gnu++14 value supported; figure out what to do. - SET(KOKKOS_CXX_STANDARD_FLAG "${_std}=c++${FULL_LC_STANDARD}" PARENT_SCOPE) - SET(KOKKOS_CXX_INTERMEDIATE_STANDARD_FLAG "${_std}=c++${INT_LC_STANDARD}" PARENT_SCOPE) - ELSEIF(KOKKOS_CXX_STANDARD STREQUAL 11 AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 13.0) - IF (CMAKE_CXX_EXTENSIONS) - SET(KOKKOS_CXX_STANDARD_FLAG "${_std}=${_ext}c++11" PARENT_SCOPE) - ELSE() - SET(KOKKOS_CXX_STANDARD_FLAG "${_std}=c++11" PARENT_SCOPE) - ENDIF() - ELSE() - MESSAGE(FATAL_ERROR "Intel compiler version too low - need 13.0 for C++11 and 15.0 for C++14") - ENDIF() - + SET(KOKKOS_CXX_STANDARD_FLAG "${_std}=c++${FULL_LC_STANDARD}" PARENT_SCOPE) + SET(KOKKOS_CXX_INTERMDIATE_STANDARD_FLAG "${_std}=${_ext}${INT_LC_STANDARD}" PARENT_SCOPE) ENDFUNCTION() + diff --git a/packages/kokkos/cmake/kokkos_arch.cmake b/packages/kokkos/cmake/kokkos_arch.cmake index d73a35398..53aaf7dcc 100644 --- a/packages/kokkos/cmake/kokkos_arch.cmake +++ b/packages/kokkos/cmake/kokkos_arch.cmake @@ -2,11 +2,14 @@ FUNCTION(KOKKOS_ARCH_OPTION SUFFIX DEV_TYPE DESCRIPTION) #all optimizations off by default KOKKOS_OPTION(ARCH_${SUFFIX} OFF BOOL "Optimize for ${DESCRIPTION} (${DEV_TYPE})") - IF (KOKKOS_ARCH_${SUFFIX}) + SET(KOKKOS_ARCH_${SUFFIX} ${KOKKOS_ARCH_${SUFFIX}} PARENT_SCOPE) + SET(KOKKOS_OPTION_KEYS ${KOKKOS_OPTION_KEYS} PARENT_SCOPE) + SET(KOKKOS_OPTION_VALUES ${KOKKOS_OPTION_VALUES} PARENT_SCOPE) + SET(KOKKOS_OPTION_TYPES ${KOKKOS_OPTION_TYPES} PARENT_SCOPE) + IF(KOKKOS_ARCH_${SUFFIX}) LIST(APPEND KOKKOS_ENABLED_ARCH_LIST ${SUFFIX}) SET(KOKKOS_ENABLED_ARCH_LIST ${KOKKOS_ENABLED_ARCH_LIST} PARENT_SCOPE) ENDIF() - SET(KOKKOS_ARCH_${SUFFIX} ${KOKKOS_ARCH_${SUFFIX}} PARENT_SCOPE) ENDFUNCTION() @@ -15,6 +18,10 @@ KOKKOS_CFG_DEPENDS(ARCH COMPILER_ID) KOKKOS_CFG_DEPENDS(ARCH DEVICES) KOKKOS_CFG_DEPENDS(ARCH OPTIONS) +KOKKOS_CHECK_DEPRECATED_OPTIONS( + ARCH_EPYC "Please replace EPYC with ZEN or ZEN2, depending on your platform" + ARCH_RYZEN "Please replace RYZEN with ZEN or ZEN2, depending on your platform" +) #------------------------------------------------------------------------------- # List of possible host architectures. @@ -28,6 +35,7 @@ KOKKOS_ARCH_OPTION(ARMV80 HOST "ARMv8.0 Compatible CPU") KOKKOS_ARCH_OPTION(ARMV81 HOST "ARMv8.1 Compatible CPU") KOKKOS_ARCH_OPTION(ARMV8_THUNDERX HOST "ARMv8 Cavium ThunderX CPU") KOKKOS_ARCH_OPTION(ARMV8_THUNDERX2 HOST "ARMv8 Cavium ThunderX2 CPU") +KOKKOS_ARCH_OPTION(A64FX HOST "ARMv8.2 with SVE Suport") KOKKOS_ARCH_OPTION(WSM HOST "Intel Westmere CPU") KOKKOS_ARCH_OPTION(SNB HOST "Intel Sandy/Ivy Bridge CPUs") KOKKOS_ARCH_OPTION(HSW HOST "Intel Haswell CPUs") @@ -51,31 +59,13 @@ KOKKOS_ARCH_OPTION(PASCAL61 GPU "NVIDIA Pascal generation CC 6.1") KOKKOS_ARCH_OPTION(VOLTA70 GPU "NVIDIA Volta generation CC 7.0") KOKKOS_ARCH_OPTION(VOLTA72 GPU "NVIDIA Volta generation CC 7.2") KOKKOS_ARCH_OPTION(TURING75 GPU "NVIDIA Turing generation CC 7.5") -KOKKOS_ARCH_OPTION(EPYC HOST "AMD Epyc architecture") +KOKKOS_ARCH_OPTION(AMPERE80 GPU "NVIDIA Ampere generation CC 8.0") +KOKKOS_ARCH_OPTION(ZEN HOST "AMD Zen architecture") +KOKKOS_ARCH_OPTION(ZEN2 HOST "AMD Zen2 architecture") KOKKOS_ARCH_OPTION(VEGA900 GPU "AMD GPU MI25 GFX900") KOKKOS_ARCH_OPTION(VEGA906 GPU "AMD GPU MI50/MI60 GFX906") - -IF (KOKKOS_ENABLE_CUDA) - #Regardless of version, make sure we define the general architecture name - IF (KOKKOS_ARCH_KEPLER30 OR KOKKOS_ARCH_KEPLER32 OR KOKKOS_ARCH_KEPLER35 OR KOKKOS_ARCH_KEPLER37) - SET(KOKKOS_ARCH_KEPLER ON) - ENDIF() - - #Regardless of version, make sure we define the general architecture name - IF (KOKKOS_ARCH_MAXWELL50 OR KOKKOS_ARCH_MAXWELL52 OR KOKKOS_ARCH_MAXWELL53) - SET(KOKKOS_ARCH_MAXWELL ON) - ENDIF() - - #Regardless of version, make sure we define the general architecture name - IF (KOKKOS_ARCH_PASCAL60 OR KOKKOS_ARCH_PASCAL61) - SET(KOKKOS_ARCH_PASCAL ON) - ENDIF() - - #Regardless of version, make sure we define the general architecture name - IF (KOKKOS_ARCH_VOLTA70 OR KOKKOS_ARCH_VOLTA72) - SET(KOKKOS_ARCH_VOLTA ON) - ENDIF() -ENDIF() +KOKKOS_ARCH_OPTION(VEGA908 GPU "AMD GPU") +KOKKOS_ARCH_OPTION(INTEL_GEN GPU "Intel GPUs Gen9+") @@ -84,13 +74,19 @@ IF(KOKKOS_ENABLE_COMPILER_WARNINGS) "-Wall" "-Wunused-parameter" "-Wshadow" "-pedantic" "-Wsign-compare" "-Wtype-limits" "-Wuninitialized") + # OpenMPTarget compilers give erroneous warnings about sign comparison in loops + IF(KOKKOS_ENABLE_OPENMPTARGET) + LIST(REMOVE_ITEM COMMON_WARNINGS "-Wsign-compare") + ENDIF() + SET(GNU_WARNINGS "-Wempty-body" "-Wclobbered" "-Wignored-qualifiers" ${COMMON_WARNINGS}) COMPILER_SPECIFIC_FLAGS( - PGI NO-VALUE-SPECIFIED - GNU ${GNU_WARNINGS} - DEFAULT ${COMMON_WARNINGS} + COMPILER_ID CMAKE_CXX_COMPILER_ID + PGI NO-VALUE-SPECIFIED + GNU ${GNU_WARNINGS} + DEFAULT ${COMMON_WARNINGS} ) ENDIF() @@ -102,6 +98,9 @@ GLOBAL_SET(KOKKOS_CUDA_OPTIONS) IF (KOKKOS_ENABLE_CUDA_LAMBDA) IF(KOKKOS_CXX_COMPILER_ID STREQUAL NVIDIA) GLOBAL_APPEND(KOKKOS_CUDA_OPTIONS "-expt-extended-lambda") + IF(KOKKOS_COMPILER_CUDA_VERSION GREATER_EQUAL 110) + GLOBAL_APPEND(KOKKOS_CUDA_OPTIONS "-Wext-lambda-captures-this") + ENDIF() ENDIF() ENDIF() @@ -113,8 +112,13 @@ ENDIF() IF (KOKKOS_CXX_COMPILER_ID STREQUAL Clang) SET(CUDA_ARCH_FLAG "--cuda-gpu-arch") - SET(AMDGPU_ARCH_FLAG "--amdgpu-target") GLOBAL_APPEND(KOKKOS_CUDA_OPTIONS -x cuda) + # Kokkos_CUDA_DIR has priority over CUDAToolkit_BIN_DIR + IF (Kokkos_CUDA_DIR) + GLOBAL_APPEND(KOKKOS_CUDA_OPTIONS --cuda-path=${Kokkos_CUDA_DIR}) + ELSEIF(CUDAToolkit_BIN_DIR) + GLOBAL_APPEND(KOKKOS_CUDA_OPTIONS --cuda-path=${CUDAToolkit_BIN_DIR}/..) + ENDIF() IF (KOKKOS_ENABLE_CUDA) SET(KOKKOS_IMPL_CUDA_CLANG_WORKAROUND ON CACHE BOOL "enable CUDA Clang workarounds" FORCE) ENDIF() @@ -133,6 +137,15 @@ IF (KOKKOS_CXX_COMPILER_ID STREQUAL NVIDIA) ENDIF() ENDIF() + +#------------------------------- KOKKOS_HIP_OPTIONS --------------------------- +#clear anything that might be in the cache +GLOBAL_SET(KOKKOS_AMDGPU_OPTIONS) +IF(KOKKOS_CXX_COMPILER_ID STREQUAL HIP) + SET(AMDGPU_ARCH_FLAG "--amdgpu-target") +ENDIF() + + IF (KOKKOS_ARCH_ARMV80) COMPILER_SPECIFIC_FLAGS( Cray NO-VALUE-SPECIFIED @@ -167,12 +180,27 @@ IF (KOKKOS_ARCH_ARMV8_THUNDERX2) ) ENDIF() -IF (KOKKOS_ARCH_EPYC) +IF (KOKKOS_ARCH_A64FX) + COMPILER_SPECIFIC_FLAGS( + DEFAULT -march=armv8.2-a+sve + ) +ENDIF() + +IF (KOKKOS_ARCH_ZEN) COMPILER_SPECIFIC_FLAGS( Intel -mavx2 DEFAULT -march=znver1 -mtune=znver1 ) - SET(KOKKOS_ARCH_AMD_EPYC ON) + SET(KOKKOS_ARCH_AMD_ZEN ON) + SET(KOKKOS_ARCH_AMD_AVX2 ON) +ENDIF() + +IF (KOKKOS_ARCH_ZEN2) + COMPILER_SPECIFIC_FLAGS( + Intel -mavx2 + DEFAULT -march=znver2 -mtune=znver2 + ) + SET(KOKKOS_ARCH_AMD_ZEN2 ON) SET(KOKKOS_ARCH_AMD_AVX2 ON) ENDIF() @@ -216,14 +244,6 @@ IF (KOKKOS_ARCH_BDW) ) ENDIF() -IF (KOKKOS_ARCH_EPYC) - SET(KOKKOS_ARCH_AMD_AVX2 ON) - COMPILER_SPECIFIC_FLAGS( - Intel -mvax2 - DEFAULT -march=znver1 -mtune=znver1 - ) -ENDIF() - IF (KOKKOS_ARCH_KNL) #avx512-mic SET(KOKKOS_ARCH_AVX512MIC ON) #not a cache variable @@ -253,7 +273,7 @@ IF (KOKKOS_ARCH_SKX) ) ENDIF() -IF (KOKKOS_ARCH_WSM OR KOKKOS_ARCH_SNB OR KOKKOS_ARCH_HSW OR KOKKOS_ARCH_BDW OR KOKKOS_ARCH_KNL OR KOKKOS_ARCH_SKX OR KOKKOS_ARCH_EPYC) +IF (KOKKOS_ARCH_WSM OR KOKKOS_ARCH_SNB OR KOKKOS_ARCH_HSW OR KOKKOS_ARCH_BDW OR KOKKOS_ARCH_KNL OR KOKKOS_ARCH_SKX OR KOKKOS_ARCH_ZEN OR KOKKOS_ARCH_ZEN2) SET(KOKKOS_USE_ISA_X86_64 ON) ENDIF() @@ -296,6 +316,21 @@ IF (Kokkos_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE) ) ENDIF() +# Clang needs mcx16 option enabled for Windows atomic functions +IF (CMAKE_CXX_COMPILER_ID STREQUAL Clang AND WIN32) + COMPILER_SPECIFIC_OPTIONS( + Clang -mcx16 + ) +ENDIF() + +# MSVC ABI has many deprecation warnings, so ignore them +IF (CMAKE_CXX_COMPILER_ID STREQUAL MSVC OR "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC") + COMPILER_SPECIFIC_DEFS( + Clang _CRT_SECURE_NO_WARNINGS + ) +ENDIF() + + #Right now we cannot get the compiler ID when cross-compiling, so just check #that HIP is enabled IF (Kokkos_ENABLE_HIP) @@ -311,6 +346,16 @@ IF (Kokkos_ENABLE_HIP) ENDIF() +IF (Kokkos_ENABLE_SYCL) + COMPILER_SPECIFIC_FLAGS( + DEFAULT -fsycl + ) + COMPILER_SPECIFIC_OPTIONS( + DEFAULT -fsycl-unnamed-lambda + ) +ENDIF() + + SET(CUDA_ARCH_ALREADY_SPECIFIED "") FUNCTION(CHECK_CUDA_ARCH ARCH FLAG) IF(KOKKOS_ARCH_${ARCH}) @@ -324,11 +369,15 @@ FUNCTION(CHECK_CUDA_ARCH ARCH FLAG) ELSE() SET(KOKKOS_CUDA_ARCH_FLAG ${FLAG} PARENT_SCOPE) GLOBAL_APPEND(KOKKOS_CUDA_OPTIONS "${CUDA_ARCH_FLAG}=${FLAG}") - IF(KOKKOS_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE) + IF(KOKKOS_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE OR KOKKOS_CXX_COMPILER_ID STREQUAL NVIDIA) GLOBAL_APPEND(KOKKOS_LINK_OPTIONS "${CUDA_ARCH_FLAG}=${FLAG}") ENDIF() ENDIF() ENDIF() + LIST(APPEND KOKKOS_CUDA_ARCH_FLAGS ${FLAG}) + SET(KOKKOS_CUDA_ARCH_FLAGS ${KOKKOS_CUDA_ARCH_FLAGS} PARENT_SCOPE) + LIST(APPEND KOKKOS_CUDA_ARCH_LIST ${ARCH}) + SET(KOKKOS_CUDA_ARCH_LIST ${KOKKOS_CUDA_ARCH_LIST} PARENT_SCOPE) ENDFUNCTION() @@ -346,6 +395,7 @@ CHECK_CUDA_ARCH(PASCAL61 sm_61) CHECK_CUDA_ARCH(VOLTA70 sm_70) CHECK_CUDA_ARCH(VOLTA72 sm_72) CHECK_CUDA_ARCH(TURING75 sm_75) +CHECK_CUDA_ARCH(AMPERE80 sm_80) SET(AMDGPU_ARCH_ALREADY_SPECIFIED "") FUNCTION(CHECK_AMDGPU_ARCH ARCH FLAG) @@ -371,13 +421,21 @@ ENDFUNCTION() #to the corresponding flag name if ON CHECK_AMDGPU_ARCH(VEGA900 gfx900) # Radeon Instinct MI25 CHECK_AMDGPU_ARCH(VEGA906 gfx906) # Radeon Instinct MI50 and MI60 +CHECK_AMDGPU_ARCH(VEGA908 gfx908) + +IF(KOKKOS_ENABLE_HIP AND NOT AMDGPU_ARCH_ALREADY_SPECIFIED) + MESSAGE(SEND_ERROR "HIP enabled but no AMD GPU architecture currently enabled. " + "Please enable one AMD GPU architecture via -DKokkos_ARCH_{..}=ON'.") +ENDIF() IF (KOKKOS_ENABLE_OPENMPTARGET) SET(CLANG_CUDA_ARCH ${KOKKOS_CUDA_ARCH_FLAG}) IF (CLANG_CUDA_ARCH) + STRING(REPLACE "sm_" "cc" PGI_CUDA_ARCH ${CLANG_CUDA_ARCH}) COMPILER_SPECIFIC_FLAGS( Clang -Xopenmp-target -march=${CLANG_CUDA_ARCH} -fopenmp-targets=nvptx64-nvidia-cuda XL -qtgtarch=${KOKKOS_CUDA_ARCH_FLAG} + PGI -gpu=${PGI_CUDA_ARCH} ) ENDIF() SET(CLANG_AMDGPU_ARCH ${KOKKOS_AMDGPU_ARCH_FLAG}) @@ -386,43 +444,116 @@ IF (KOKKOS_ENABLE_OPENMPTARGET) Clang -Xopenmp-target=amdgcn-amd-amdhsa -march=${CLANG_AMDGPU_ARCH} -fopenmp-targets=amdgcn-amd-amdhsa ) ENDIF() + IF (KOKKOS_ARCH_INTEL_GEN) + COMPILER_SPECIFIC_FLAGS( + IntelClang -fopenmp-targets=spir64 -D__STRICT_ANSI__ + ) + ENDIF() ENDIF() IF(KOKKOS_ENABLE_CUDA AND NOT CUDA_ARCH_ALREADY_SPECIFIED) - MESSAGE(SEND_ERROR "CUDA enabled but no NVIDIA GPU architecture currently enabled. Please give one -DKokkos_ARCH_{..}=ON' to enable an NVIDIA GPU architecture.") + # Try to autodetect the CUDA Compute Capability by asking the device + SET(_BINARY_TEST_DIR ${CMAKE_CURRENT_BINARY_DIR}/cmake/compile_tests/CUDAComputeCapabilityWorkdir) + FILE(REMOVE_RECURSE ${_BINARY_TEST_DIR}) + FILE(MAKE_DIRECTORY ${_BINARY_TEST_DIR}) + + TRY_RUN( + _RESULT + _COMPILE_RESULT + ${_BINARY_TEST_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/cmake/compile_tests/cuda_compute_capability.cc + COMPILE_DEFINITIONS -DSM_ONLY + RUN_OUTPUT_VARIABLE _CUDA_COMPUTE_CAPABILITY) + LIST(FIND KOKKOS_CUDA_ARCH_FLAGS sm_${_CUDA_COMPUTE_CAPABILITY} FLAG_INDEX) + IF(_COMPILE_RESULT AND _RESULT EQUAL 0 AND NOT FLAG_INDEX EQUAL -1) + MESSAGE(STATUS "Detected CUDA Compute Capability ${_CUDA_COMPUTE_CAPABILITY}") + LIST(GET KOKKOS_CUDA_ARCH_LIST ${FLAG_INDEX} ARCHITECTURE) + KOKKOS_SET_OPTION(ARCH_${ARCHITECTURE} ON) + CHECK_CUDA_ARCH(${ARCHITECTURE} sm_${_CUDA_COMPUTE_CAPABILITY}) + LIST(APPEND KOKKOS_ENABLED_ARCH_LIST ${ARCHITECTURE}) + ELSE() + MESSAGE(SEND_ERROR "CUDA enabled but no NVIDIA GPU architecture currently enabled and auto-detection failed. " + "Please give one -DKokkos_ARCH_{..}=ON' to enable an NVIDIA GPU architecture.\n" + "You can yourself try to compile ${CMAKE_CURRENT_SOURCE_DIR}/cmake/compile_tests/cuda_compute_capability.cc and run the executable. " + "If you are cross-compiling, you should try to do this on a compute node.") + ENDIF() +ENDIF() + +IF (KOKKOS_ENABLE_CUDA) + #Regardless of version, make sure we define the general architecture name + IF (KOKKOS_ARCH_KEPLER30 OR KOKKOS_ARCH_KEPLER32 OR KOKKOS_ARCH_KEPLER35 OR KOKKOS_ARCH_KEPLER37) + SET(KOKKOS_ARCH_KEPLER ON) + ENDIF() + + #Regardless of version, make sure we define the general architecture name + IF (KOKKOS_ARCH_MAXWELL50 OR KOKKOS_ARCH_MAXWELL52 OR KOKKOS_ARCH_MAXWELL53) + SET(KOKKOS_ARCH_MAXWELL ON) + ENDIF() + + #Regardless of version, make sure we define the general architecture name + IF (KOKKOS_ARCH_PASCAL60 OR KOKKOS_ARCH_PASCAL61) + SET(KOKKOS_ARCH_PASCAL ON) + ENDIF() + + #Regardless of version, make sure we define the general architecture name + IF (KOKKOS_ARCH_VOLTA70 OR KOKKOS_ARCH_VOLTA72) + SET(KOKKOS_ARCH_VOLTA ON) + ENDIF() + + IF (KOKKOS_ARCH_AMPERE80) + SET(KOKKOS_ARCH_AMPERE ON) + ENDIF() ENDIF() #CMake verbose is kind of pointless #Let's just always print things -MESSAGE(STATUS "Execution Spaces:") +MESSAGE(STATUS "Built-in Execution Spaces:") -FOREACH (_BACKEND CUDA OPENMPTARGET HIP) - IF(KOKKOS_ENABLE_${_BACKEND}) +FOREACH (_BACKEND Cuda OpenMPTarget HIP SYCL) + STRING(TOUPPER ${_BACKEND} UC_BACKEND) + IF(KOKKOS_ENABLE_${UC_BACKEND}) IF(_DEVICE_PARALLEL) MESSAGE(FATAL_ERROR "Multiple device parallel execution spaces are not allowed! " "Trying to enable execution space ${_BACKEND}, " "but execution space ${_DEVICE_PARALLEL} is already enabled. " "Remove the CMakeCache.txt file and re-configure.") ENDIF() - SET(_DEVICE_PARALLEL ${_BACKEND}) + IF (${_BACKEND} STREQUAL "Cuda") + IF(KOKKOS_ENABLE_CUDA_UVM) + SET(_DEFAULT_DEVICE_MEMSPACE "Kokkos::${_BACKEND}UVMSpace") + ELSE() + SET(_DEFAULT_DEVICE_MEMSPACE "Kokkos::${_BACKEND}Space") + ENDIF() + SET(_DEVICE_PARALLEL "Kokkos::${_BACKEND}") + ELSE() + SET(_DEFAULT_DEVICE_MEMSPACE "Kokkos::Experimental::${_BACKEND}Space") + SET(_DEVICE_PARALLEL "Kokkos::Experimental::${_BACKEND}") + ENDIF() ENDIF() ENDFOREACH() IF(NOT _DEVICE_PARALLEL) - SET(_DEVICE_PARALLEL "NONE") + SET(_DEVICE_PARALLEL "NoTypeDefined") + SET(_DEFAULT_DEVICE_MEMSPACE "NoTypeDefined") ENDIF() MESSAGE(STATUS " Device Parallel: ${_DEVICE_PARALLEL}") -UNSET(_DEVICE_PARALLEL) - +IF(KOKKOS_ENABLE_PTHREAD) + SET(KOKKOS_ENABLE_THREADS ON) +ENDIF() -FOREACH (_BACKEND OPENMP PTHREAD HPX) - IF(KOKKOS_ENABLE_${_BACKEND}) +FOREACH (_BACKEND OpenMP Threads HPX) + STRING(TOUPPER ${_BACKEND} UC_BACKEND) + IF(KOKKOS_ENABLE_${UC_BACKEND}) IF(_HOST_PARALLEL) MESSAGE(FATAL_ERROR "Multiple host parallel execution spaces are not allowed! " "Trying to enable execution space ${_BACKEND}, " "but execution space ${_HOST_PARALLEL} is already enabled. " "Remove the CMakeCache.txt file and re-configure.") ENDIF() - SET(_HOST_PARALLEL ${_BACKEND}) + IF (${_BACKEND} STREQUAL "HPX") + SET(_HOST_PARALLEL "Kokkos::Experimental::${_BACKEND}") + ELSE() + SET(_HOST_PARALLEL "Kokkos::${_BACKEND}") + ENDIF() ENDIF() ENDFOREACH() @@ -432,14 +563,11 @@ IF(NOT _HOST_PARALLEL AND NOT KOKKOS_ENABLE_SERIAL) "and Kokkos_ENABLE_SERIAL=OFF.") ENDIF() -IF(NOT _HOST_PARALLEL) - SET(_HOST_PARALLEL "NONE") -ENDIF() +IF(_HOST_PARALLEL) MESSAGE(STATUS " Host Parallel: ${_HOST_PARALLEL}") -UNSET(_HOST_PARALLEL) - -IF(KOKKOS_ENABLE_PTHREAD) - SET(KOKKOS_ENABLE_THREADS ON) +ELSE() + SET(_HOST_PARALLEL "NoTypeDefined") + MESSAGE(STATUS " Host Parallel: NoTypeDefined") ENDIF() IF(KOKKOS_ENABLE_SERIAL) @@ -453,4 +581,3 @@ MESSAGE(STATUS "Architectures:") FOREACH(Arch ${KOKKOS_ENABLED_ARCH_LIST}) MESSAGE(STATUS " ${Arch}") ENDFOREACH() - diff --git a/packages/kokkos/cmake/kokkos_compiler_id.cmake b/packages/kokkos/cmake/kokkos_compiler_id.cmake index cd5e7c9e4..e6600161f 100644 --- a/packages/kokkos/cmake/kokkos_compiler_id.cmake +++ b/packages/kokkos/cmake/kokkos_compiler_id.cmake @@ -4,34 +4,102 @@ SET(KOKKOS_CXX_COMPILER ${CMAKE_CXX_COMPILER}) SET(KOKKOS_CXX_COMPILER_ID ${CMAKE_CXX_COMPILER_ID}) SET(KOKKOS_CXX_COMPILER_VERSION ${CMAKE_CXX_COMPILER_VERSION}) -# Check if the compiler is nvcc (which really means nvcc_wrapper). -EXECUTE_PROCESS(COMMAND ${CMAKE_CXX_COMPILER} --version - COMMAND grep nvcc - COMMAND wc -l - OUTPUT_VARIABLE INTERNAL_HAVE_COMPILER_NVCC - OUTPUT_STRIP_TRAILING_WHITESPACE) - +MACRO(kokkos_internal_have_compiler_nvcc) + # Check if the compiler is nvcc (which really means nvcc_wrapper). + EXECUTE_PROCESS(COMMAND ${ARGN} --version + OUTPUT_VARIABLE INTERNAL_COMPILER_VERSION + OUTPUT_STRIP_TRAILING_WHITESPACE) + STRING(REPLACE "\n" " - " INTERNAL_COMPILER_VERSION_ONE_LINE ${INTERNAL_COMPILER_VERSION} ) + STRING(FIND ${INTERNAL_COMPILER_VERSION_ONE_LINE} "nvcc" INTERNAL_COMPILER_VERSION_CONTAINS_NVCC) + STRING(REGEX REPLACE "^ +" "" INTERNAL_HAVE_COMPILER_NVCC "${INTERNAL_HAVE_COMPILER_NVCC}") + IF(${INTERNAL_COMPILER_VERSION_CONTAINS_NVCC} GREATER -1) + SET(INTERNAL_HAVE_COMPILER_NVCC true) + ELSE() + SET(INTERNAL_HAVE_COMPILER_NVCC false) + ENDIF() +ENDMACRO() -STRING(REGEX REPLACE "^ +" "" - INTERNAL_HAVE_COMPILER_NVCC "${INTERNAL_HAVE_COMPILER_NVCC}") +IF(Kokkos_ENABLE_CUDA) + # find kokkos_launch_compiler + FIND_PROGRAM(Kokkos_COMPILE_LAUNCHER + NAMES kokkos_launch_compiler + HINTS ${PROJECT_SOURCE_DIR} + PATHS ${PROJECT_SOURCE_DIR} + PATH_SUFFIXES bin) + # check if compiler was set to nvcc_wrapper + kokkos_internal_have_compiler_nvcc(${CMAKE_CXX_COMPILER}) + # if launcher was found and nvcc_wrapper was not specified as + # compiler, set to use launcher. Will ensure CMAKE_CXX_COMPILER + # is replaced by nvcc_wrapper + IF(Kokkos_COMPILE_LAUNCHER AND NOT INTERNAL_HAVE_COMPILER_NVCC AND NOT KOKKOS_CXX_COMPILER_ID STREQUAL Clang) + # the first argument to launcher is always the C++ compiler defined by cmake + # if the second argument matches the C++ compiler, it forwards the rest of the + # args to nvcc_wrapper + kokkos_internal_have_compiler_nvcc( + ${Kokkos_COMPILE_LAUNCHER} ${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER} -DKOKKOS_DEPENDENCE) + SET(INTERNAL_USE_COMPILER_LAUNCHER true) + ENDIF() +ENDIF() IF(INTERNAL_HAVE_COMPILER_NVCC) + # Save the host compiler id before overwriting it. + SET(KOKKOS_CXX_HOST_COMPILER_ID ${KOKKOS_CXX_COMPILER_ID}) + # SET the compiler id to nvcc. We use the value used by CMake 3.8. SET(KOKKOS_CXX_COMPILER_ID NVIDIA CACHE STRING INTERNAL FORCE) - # SET nvcc's compiler version. + STRING(REGEX MATCH "V[0-9]+\\.[0-9]+\\.[0-9]+" + TEMP_CXX_COMPILER_VERSION ${INTERNAL_COMPILER_VERSION_ONE_LINE}) + STRING(SUBSTRING ${TEMP_CXX_COMPILER_VERSION} 1 -1 TEMP_CXX_COMPILER_VERSION) + SET(KOKKOS_CXX_COMPILER_VERSION ${TEMP_CXX_COMPILER_VERSION} CACHE STRING INTERNAL FORCE) + MESSAGE(STATUS "Compiler Version: ${KOKKOS_CXX_COMPILER_VERSION}") + IF(INTERNAL_USE_COMPILER_LAUNCHER) + IF(Kokkos_LAUNCH_COMPILER_INFO) + GET_FILENAME_COMPONENT(BASE_COMPILER_NAME ${CMAKE_CXX_COMPILER} NAME) + # does not have STATUS intentionally + MESSAGE("") + MESSAGE("Kokkos_LAUNCH_COMPILER_INFO (${Kokkos_COMPILE_LAUNCHER}):") + MESSAGE(" - Kokkos + CUDA backend requires the C++ files to be compiled as CUDA code.") + MESSAGE(" - kokkos_launch_compiler permits CMAKE_CXX_COMPILER to be set to a traditional C++ compiler when Kokkos_ENABLE_CUDA=ON") + MESSAGE(" by prefixing all the compile and link commands with the path to the script + CMAKE_CXX_COMPILER (${CMAKE_CXX_COMPILER}).") + MESSAGE(" - If any of the compile or link commands have CMAKE_CXX_COMPILER as the first argument, it replaces CMAKE_CXX_COMPILER with nvcc_wrapper.") + MESSAGE(" - If the compile or link command is not CMAKE_CXX_COMPILER, it just executes the command.") + MESSAGE(" - If using ccache, set CMAKE_CXX_COMPILER to nvcc_wrapper explicitly.") + MESSAGE(" - kokkos_compiler_launcher is available to downstream projects as well.") + MESSAGE(" - If CMAKE_CXX_COMPILER=nvcc_wrapper, all legacy behavior will be preserved during 'find_package(Kokkos)'") + MESSAGE(" - If CMAKE_CXX_COMPILER is not nvcc_wrapper, 'find_package(Kokkos)' will apply 'kokkos_compilation(GLOBAL)' unless separable compilation is enabled") + MESSAGE(" - This can be disabled via '-DKokkos_LAUNCH_COMPILER=OFF'") + MESSAGE(" - Use 'find_package(Kokkos COMPONENTS separable_compilation)' to enable separable compilation") + MESSAGE(" - Separable compilation allows you to control the scope of where the compiler transformation behavior (${BASE_COMPILER_NAME} -> nvcc_wrapper) is applied") + MESSAGE(" - The compiler transformation can be applied on a per-project, per-directory, per-target, and/or per-source-file basis") + MESSAGE(" - 'kokkos_compilation(PROJECT)' will apply the compiler transformation to all targets in a project/subproject") + MESSAGE(" - 'kokkos_compilation(TARGET <TARGET> [<TARGETS>...])' will apply the compiler transformation to the specified target(s)") + MESSAGE(" - 'kokkos_compilation(SOURCE <SOURCE> [<SOURCES>...])' will apply the compiler transformation to the specified source file(s)") + MESSAGE(" - 'kokkos_compilation(DIRECTORY <DIR> [<DIRS>...])' will apply the compiler transformation to the specified directories") + MESSAGE("") + ELSE() + MESSAGE(STATUS "kokkos_launch_compiler (${Kokkos_COMPILE_LAUNCHER}) is enabled... Set Kokkos_LAUNCH_COMPILER_INFO=ON for more info.") + ENDIF() + kokkos_compilation(GLOBAL) + ENDIF() +ENDIF() + +IF(Kokkos_ENABLE_HIP) + # get HIP version EXECUTE_PROCESS(COMMAND ${CMAKE_CXX_COMPILER} --version - COMMAND grep release - OUTPUT_VARIABLE INTERNAL_CXX_COMPILER_VERSION + OUTPUT_VARIABLE INTERNAL_COMPILER_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) - STRING(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+$" - TEMP_CXX_COMPILER_VERSION ${INTERNAL_CXX_COMPILER_VERSION}) + STRING(REPLACE "\n" " - " INTERNAL_COMPILER_VERSION_ONE_LINE ${INTERNAL_COMPILER_VERSION} ) + SET(KOKKOS_CXX_COMPILER_ID HIP CACHE STRING INTERNAL FORCE) + + STRING(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+" + TEMP_CXX_COMPILER_VERSION ${INTERNAL_COMPILER_VERSION_ONE_LINE}) SET(KOKKOS_CXX_COMPILER_VERSION ${TEMP_CXX_COMPILER_VERSION} CACHE STRING INTERNAL FORCE) + MESSAGE(STATUS "Compiler Version: ${KOKKOS_CXX_COMPILER_VERSION}") ENDIF() - IF(KOKKOS_CXX_COMPILER_ID STREQUAL Clang) # The Cray compiler reports as Clang to most versions of CMake EXECUTE_PROCESS(COMMAND ${CMAKE_CXX_COMPILER} --version @@ -42,6 +110,16 @@ IF(KOKKOS_CXX_COMPILER_ID STREQUAL Clang) IF (INTERNAL_HAVE_CRAY_COMPILER) #not actually Clang SET(KOKKOS_CLANG_IS_CRAY TRUE) ENDIF() + # The clang based Intel compiler reports as Clang to most versions of CMake + EXECUTE_PROCESS(COMMAND ${CMAKE_CXX_COMPILER} --version + COMMAND grep icpx + COMMAND wc -l + OUTPUT_VARIABLE INTERNAL_HAVE_INTEL_COMPILER + OUTPUT_STRIP_TRAILING_WHITESPACE) + IF (INTERNAL_HAVE_INTEL_COMPILER) #not actually Clang + SET(KOKKOS_CLANG_IS_INTEL TRUE) + SET(KOKKOS_CXX_COMPILER_ID IntelClang CACHE STRING INTERNAL FORCE) + ENDIF() ENDIF() IF(KOKKOS_CXX_COMPILER_ID STREQUAL Cray OR KOKKOS_CLANG_IS_CRAY) @@ -59,33 +137,49 @@ IF(KOKKOS_CXX_COMPILER_ID STREQUAL Cray OR KOKKOS_CLANG_IS_CRAY) ENDIF() ENDIF() +IF(KOKKOS_CXX_COMPILER_ID STREQUAL Fujitsu) + # SET Fujitsus compiler version which is not detected by CMake + EXECUTE_PROCESS(COMMAND ${CMAKE_CXX_COMPILER} --version + OUTPUT_VARIABLE INTERNAL_CXX_COMPILER_VERSION + OUTPUT_STRIP_TRAILING_WHITESPACE) + + STRING(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+" + TEMP_CXX_COMPILER_VERSION ${INTERNAL_CXX_COMPILER_VERSION}) + SET(KOKKOS_CXX_COMPILER_VERSION ${TEMP_CXX_COMPILER_VERSION} CACHE STRING INTERNAL FORCE) +ENDIF() + # Enforce the minimum compilers supported by Kokkos. SET(KOKKOS_MESSAGE_TEXT "Compiler not supported by Kokkos. Required compiler versions:") -SET(KOKKOS_MESSAGE_TEXT "${KOKKOS_MESSAGE_TEXT}\n Clang 3.5.2 or higher") -SET(KOKKOS_MESSAGE_TEXT "${KOKKOS_MESSAGE_TEXT}\n GCC 4.8.4 or higher") -SET(KOKKOS_MESSAGE_TEXT "${KOKKOS_MESSAGE_TEXT}\n Intel 15.0.2 or higher") -SET(KOKKOS_MESSAGE_TEXT "${KOKKOS_MESSAGE_TEXT}\n NVCC 9.0.69 or higher") -SET(KOKKOS_MESSAGE_TEXT "${KOKKOS_MESSAGE_TEXT}\n PGI 17.1 or higher\n") +SET(KOKKOS_MESSAGE_TEXT "${KOKKOS_MESSAGE_TEXT}\n Clang 4.0.0 or higher") +SET(KOKKOS_MESSAGE_TEXT "${KOKKOS_MESSAGE_TEXT}\n GCC 5.3.0 or higher") +SET(KOKKOS_MESSAGE_TEXT "${KOKKOS_MESSAGE_TEXT}\n Intel 17.0.0 or higher") +SET(KOKKOS_MESSAGE_TEXT "${KOKKOS_MESSAGE_TEXT}\n NVCC 9.2.88 or higher") +SET(KOKKOS_MESSAGE_TEXT "${KOKKOS_MESSAGE_TEXT}\n HIPCC 3.8.0 or higher") +SET(KOKKOS_MESSAGE_TEXT "${KOKKOS_MESSAGE_TEXT}\n PGI 17.4 or higher\n") IF(KOKKOS_CXX_COMPILER_ID STREQUAL Clang) - IF(KOKKOS_CXX_COMPILER_VERSION VERSION_LESS 3.5.2) + IF(KOKKOS_CXX_COMPILER_VERSION VERSION_LESS 4.0.0) MESSAGE(FATAL_ERROR "${KOKKOS_MESSAGE_TEXT}") ENDIF() ELSEIF(KOKKOS_CXX_COMPILER_ID STREQUAL GNU) - IF(KOKKOS_CXX_COMPILER_VERSION VERSION_LESS 4.8.4) + IF(KOKKOS_CXX_COMPILER_VERSION VERSION_LESS 5.3.0) MESSAGE(FATAL_ERROR "${KOKKOS_MESSAGE_TEXT}") ENDIF() ELSEIF(KOKKOS_CXX_COMPILER_ID STREQUAL Intel) - IF(KOKKOS_CXX_COMPILER_VERSION VERSION_LESS 15.0.2) + IF(KOKKOS_CXX_COMPILER_VERSION VERSION_LESS 17.0.0) MESSAGE(FATAL_ERROR "${KOKKOS_MESSAGE_TEXT}") ENDIF() ELSEIF(KOKKOS_CXX_COMPILER_ID STREQUAL NVIDIA) - IF(KOKKOS_CXX_COMPILER_VERSION VERSION_LESS 9.0.69) + IF(KOKKOS_CXX_COMPILER_VERSION VERSION_LESS 9.2.88) MESSAGE(FATAL_ERROR "${KOKKOS_MESSAGE_TEXT}") ENDIF() SET(CMAKE_CXX_EXTENSIONS OFF CACHE BOOL "Kokkos turns off CXX extensions" FORCE) +ELSEIF(KOKKOS_CXX_COMPILER_ID STREQUAL HIP) + IF(KOKKOS_CXX_COMPILER_VERSION VERSION_LESS 3.8.0) + MESSAGE(FATAL_ERROR "${KOKKOS_MESSAGE_TEXT}") + ENDIF() ELSEIF(KOKKOS_CXX_COMPILER_ID STREQUAL PGI) - IF(KOKKOS_CXX_COMPILER_VERSION VERSION_LESS 17.1) + IF(KOKKOS_CXX_COMPILER_VERSION VERSION_LESS 17.4) MESSAGE(FATAL_ERROR "${KOKKOS_MESSAGE_TEXT}") ENDIF() ENDIF() diff --git a/packages/kokkos/cmake/kokkos_corner_cases.cmake b/packages/kokkos/cmake/kokkos_corner_cases.cmake index e30be3c84..3962c4b16 100644 --- a/packages/kokkos/cmake/kokkos_corner_cases.cmake +++ b/packages/kokkos/cmake/kokkos_corner_cases.cmake @@ -1,4 +1,4 @@ -IF(KOKKOS_CXX_COMPILER_ID STREQUAL Clang AND KOKKOS_ENABLE_OPENMP AND NOT KOKKOS_CLANG_IS_CRAY) +IF(KOKKOS_CXX_COMPILER_ID STREQUAL Clang AND KOKKOS_ENABLE_OPENMP AND NOT KOKKOS_CLANG_IS_CRAY AND NOT KOKKOS_COMPILER_CLANG_MSVC) # The clang "version" doesn't actually tell you what runtimes and tools # were built into Clang. We should therefore make sure that libomp # was actually built into Clang. Otherwise the user will get nonsensical @@ -49,11 +49,11 @@ ENDIF() IF (KOKKOS_CXX_STANDARD STREQUAL 17) IF (KOKKOS_CXX_COMPILER_ID STREQUAL GNU AND KOKKOS_CXX_COMPILER_VERSION VERSION_LESS 7) - MESSAGE(FATAL_ERROR "You have requested c++17 support for GCC ${KOKKOS_CXX_COMPILER_VERSION}. Although CMake has allowed this and GCC accepts -std=c++1z/c++17, GCC <= 6 does not properly support *this capture. Please reduce the C++ standard to 14 or upgrade the compiler if you do need 17 support") + MESSAGE(FATAL_ERROR "You have requested c++17 support for GCC ${KOKKOS_CXX_COMPILER_VERSION}. Although CMake has allowed this and GCC accepts -std=c++1z/c++17, GCC <= 6 does not properly support *this capture. Please reduce the C++ standard to 14 or upgrade the compiler if you do need C++17 support.") ENDIF() - IF (KOKKOS_CXX_COMPILER_ID STREQUAL NVIDIA) - MESSAGE(FATAL_ERROR "You have requested c++17 support for NVCC. Please reduce the C++ standard to 14. No versions of NVCC currently support 17.") + IF (KOKKOS_CXX_COMPILER_ID STREQUAL NVIDIA AND KOKKOS_CXX_COMPILER_VERSION VERSION_LESS 11) + MESSAGE(FATAL_ERROR "You have requested c++17 support for NVCC ${KOKKOS_CXX_COMPILER_VERSION}. NVCC only supports C++17 from version 11 on. Please reduce the C++ standard to 14 or upgrade the compiler if you need C++17 support.") ENDIF() ENDIF() diff --git a/packages/kokkos/cmake/kokkos_enable_devices.cmake b/packages/kokkos/cmake/kokkos_enable_devices.cmake index 7b50cfe45..41ee10a8a 100644 --- a/packages/kokkos/cmake/kokkos_enable_devices.cmake +++ b/packages/kokkos/cmake/kokkos_enable_devices.cmake @@ -25,6 +25,18 @@ IF (KOKKOS_ENABLE_PTHREAD) SET(KOKKOS_ENABLE_THREADS ON) ENDIF() +# detect clang++ / cl / clang-cl clashes +IF (CMAKE_CXX_COMPILER_ID STREQUAL Clang AND "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC") + # this specific test requires CMake >= 3.15 + IF ("x${CMAKE_CXX_COMPILER_FRONTEND_VARIANT}" STREQUAL "xGNU") + # use pure clang++ instead of clang-cl + SET(KOKKOS_COMPILER_CLANG_MSVC OFF) + ELSE() + # it defaults to clang-cl + SET(KOKKOS_COMPILER_CLANG_MSVC ON) + ENDIF() +ENDIF() + IF(Trilinos_ENABLE_Kokkos AND Trilinos_ENABLE_OpenMP) SET(OMP_DEFAULT ON) ELSE() @@ -36,25 +48,54 @@ IF(KOKKOS_ENABLE_OPENMP) IF(KOKKOS_CLANG_IS_CRAY) SET(ClangOpenMPFlag -fopenmp) ENDIF() - COMPILER_SPECIFIC_FLAGS( - Clang ${ClangOpenMPFlag} - AppleClang -Xpreprocessor -fopenmp - PGI -mp - NVIDIA -Xcompiler -fopenmp - Cray NO-VALUE-SPECIFIED - XL -qsmp=omp - DEFAULT -fopenmp - ) - COMPILER_SPECIFIC_LIBS( - AppleClang -lomp - ) + IF(KOKKOS_CLANG_IS_INTEL) + SET(ClangOpenMPFlag -fiopenmp) + ENDIF() + IF(KOKKOS_COMPILER_CLANG_MSVC) + #for clang-cl expression /openmp yields an error, so directly add the specific Clang flag + SET(ClangOpenMPFlag /clang:-fopenmp=libomp) + ENDIF() + IF(WIN32 AND CMAKE_CXX_COMPILER_ID STREQUAL Clang) + #link omp library from LLVM lib dir, no matter if it is clang-cl or clang++ + get_filename_component(LLVM_BIN_DIR ${CMAKE_CXX_COMPILER_AR} DIRECTORY) + COMPILER_SPECIFIC_LIBS(Clang "${LLVM_BIN_DIR}/../lib/libomp.lib") + ENDIF() + IF(KOKKOS_CXX_COMPILER_ID STREQUAL NVIDIA) + COMPILER_SPECIFIC_FLAGS( + COMPILER_ID KOKKOS_CXX_HOST_COMPILER_ID + Clang -Xcompiler ${ClangOpenMPFlag} + PGI -Xcompiler -mp + Cray NO-VALUE-SPECIFIED + XL -Xcompiler -qsmp=omp + DEFAULT -Xcompiler -fopenmp + ) + ELSE() + COMPILER_SPECIFIC_FLAGS( + Clang ${ClangOpenMPFlag} + AppleClang -Xpreprocessor -fopenmp + PGI -mp + Cray NO-VALUE-SPECIFIED + XL -qsmp=omp + DEFAULT -fopenmp + ) + COMPILER_SPECIFIC_LIBS( + AppleClang -lomp + ) + ENDIF() ENDIF() KOKKOS_DEVICE_OPTION(OPENMPTARGET OFF DEVICE "Whether to build the OpenMP target backend") IF (KOKKOS_ENABLE_OPENMPTARGET) + SET(ClangOpenMPFlag -fopenmp=libomp) + IF(KOKKOS_CLANG_IS_CRAY) + SET(ClangOpenMPFlag -fopenmp) + ENDIF() + COMPILER_SPECIFIC_FLAGS( - Clang -fopenmp -fopenmp=libomp + Clang ${ClangOpenMPFlag} -Wno-openmp-mapping + IntelClang -fiopenmp -Wno-openmp-mapping XL -qsmp=omp -qoffload -qnoeh + PGI -mp=gpu DEFAULT -fopenmp ) COMPILER_SPECIFIC_DEFS( @@ -65,6 +106,9 @@ IF (KOKKOS_ENABLE_OPENMPTARGET) # COMPILER_SPECIFIC_LIBS( # Clang -lopenmptarget # ) + IF(KOKKOS_CXX_STANDARD LESS 17) + MESSAGE(FATAL_ERROR "OpenMPTarget backend requires C++17 or newer") + ENDIF() ENDIF() IF(Trilinos_ENABLE_Kokkos AND TPL_ENABLE_CUDA) @@ -76,6 +120,11 @@ KOKKOS_DEVICE_OPTION(CUDA ${CUDA_DEFAULT} DEVICE "Whether to build CUDA backend" IF (KOKKOS_ENABLE_CUDA) GLOBAL_SET(KOKKOS_DONT_ALLOW_EXTENSIONS "CUDA enabled") + IF(WIN32 AND NOT KOKKOS_CXX_COMPILER_ID STREQUAL Clang) + GLOBAL_APPEND(KOKKOS_COMPILE_OPTIONS -x cu) + ENDIF() +## Cuda has extra setup requirements, turn on Kokkos_Setup_Cuda.hpp in macros + LIST(APPEND DEVICE_SETUP_LIST Cuda) ENDIF() # We want this to default to OFF for cache reasons, but if no @@ -96,3 +145,10 @@ KOKKOS_DEVICE_OPTION(SERIAL ${SERIAL_DEFAULT} HOST "Whether to build serial back KOKKOS_DEVICE_OPTION(HPX OFF HOST "Whether to build HPX backend (experimental)") KOKKOS_DEVICE_OPTION(HIP OFF DEVICE "Whether to build HIP backend") + +## HIP has extra setup requirements, turn on Kokkos_Setup_HIP.hpp in macros +IF (KOKKOS_ENABLE_HIP) + LIST(APPEND DEVICE_SETUP_LIST HIP) +ENDIF() + +KOKKOS_DEVICE_OPTION(SYCL OFF DEVICE "Whether to build SYCL backend") diff --git a/packages/kokkos/cmake/kokkos_enable_options.cmake b/packages/kokkos/cmake/kokkos_enable_options.cmake index 4560c3df8..5df498f37 100644 --- a/packages/kokkos/cmake/kokkos_enable_options.cmake +++ b/packages/kokkos/cmake/kokkos_enable_options.cmake @@ -45,10 +45,9 @@ UNSET(_UPPERCASE_CMAKE_BUILD_TYPE) KOKKOS_ENABLE_OPTION(LARGE_MEM_TESTS OFF "Whether to perform extra large memory tests") KOKKOS_ENABLE_OPTION(DEBUG_BOUNDS_CHECK OFF "Whether to use bounds checking - will increase runtime") KOKKOS_ENABLE_OPTION(COMPILER_WARNINGS OFF "Whether to print all compiler warnings") -KOKKOS_ENABLE_OPTION(PROFILING ON "Whether to create bindings for profiling tools") KOKKOS_ENABLE_OPTION(PROFILING_LOAD_PRINT OFF "Whether to print information about which profiling tools got loaded") +KOKKOS_ENABLE_OPTION(TUNING OFF "Whether to create bindings for tuning tools") KOKKOS_ENABLE_OPTION(AGGRESSIVE_VECTORIZATION OFF "Whether to aggressively vectorize loops") -KOKKOS_ENABLE_OPTION(DEPRECATED_CODE OFF "Whether to enable deprecated code") IF (KOKKOS_ENABLE_CUDA) SET(KOKKOS_COMPILER_CUDA_VERSION "${KOKKOS_COMPILER_VERSION_MAJOR}${KOKKOS_COMPILER_VERSION_MINOR}") @@ -110,3 +109,7 @@ ENDIF() IF (KOKKOS_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE AND KOKKOS_CXX_COMPILER_ID STREQUAL Clang) MESSAGE(FATAL_ERROR "Relocatable device code is currently not supported with Clang - must use nvcc_wrapper or turn off RDC") ENDIF() + +IF (KOKKOS_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE AND BUILD_SHARED_LIBS) + MESSAGE(FATAL_ERROR "Relocatable device code requires static libraries.") +ENDIF() diff --git a/packages/kokkos/cmake/kokkos_functions.cmake b/packages/kokkos/cmake/kokkos_functions.cmake index fd04966ba..2b17d648b 100644 --- a/packages/kokkos/cmake/kokkos_functions.cmake +++ b/packages/kokkos/cmake/kokkos_functions.cmake @@ -47,6 +47,13 @@ FUNCTION(kokkos_option CAMEL_SUFFIX DEFAULT TYPE DOCSTRING) SET(CAMEL_NAME Kokkos_${CAMEL_SUFFIX}) STRING(TOUPPER ${CAMEL_NAME} UC_NAME) + LIST(APPEND KOKKOS_OPTION_KEYS ${CAMEL_SUFFIX}) + SET(KOKKOS_OPTION_KEYS ${KOKKOS_OPTION_KEYS} PARENT_SCOPE) + LIST(APPEND KOKKOS_OPTION_VALUES "${DOCSTRING}") + SET(KOKKOS_OPTION_VALUES ${KOKKOS_OPTION_VALUES} PARENT_SCOPE) + LIST(APPEND KOKKOS_OPTION_TYPES ${TYPE}) + SET(KOKKOS_OPTION_TYPES ${KOKKOS_OPTION_TYPES} PARENT_SCOPE) + # Make sure this appears in the cache with the appropriate DOCSTRING SET(${CAMEL_NAME} ${DEFAULT} CACHE ${TYPE} ${DOCSTRING}) @@ -73,7 +80,21 @@ FUNCTION(kokkos_option CAMEL_SUFFIX DEFAULT TYPE DOCSTRING) ELSE() SET(${UC_NAME} ${DEFAULT} PARENT_SCOPE) ENDIF() +ENDFUNCTION() + +FUNCTION(kokkos_set_option CAMEL_SUFFIX VALUE) + LIST(FIND KOKKOS_OPTION_KEYS ${CAMEL_SUFFIX} OPTION_INDEX) + IF(OPTION_INDEX EQUAL -1) + MESSAGE(FATAL_ERROR "Couldn't set value for Kokkos_${CAMEL_SUFFIX}") + ENDIF() + SET(CAMEL_NAME Kokkos_${CAMEL_SUFFIX}) + STRING(TOUPPER ${CAMEL_NAME} UC_NAME) + LIST(GET KOKKOS_OPTION_VALUES ${OPTION_INDEX} DOCSTRING) + LIST(GET KOKKOS_OPTION_TYPES ${OPTION_INDEX} TYPE) + SET(${CAMEL_NAME} ${VALUE} CACHE ${TYPE} ${DOCSTRING} FORCE) + MESSAGE(STATUS "Setting ${CAMEL_NAME}=${VALUE}") + SET(${UC_NAME} ${VALUE} PARENT_SCOPE) ENDFUNCTION() FUNCTION(kokkos_append_config_line LINE) @@ -109,8 +130,8 @@ ENDMACRO() MACRO(kokkos_export_imported_tpl NAME) IF (NOT KOKKOS_HAS_TRILINOS) - GET_TARGET_PROPERTY(LIB_TYPE ${NAME} TYPE) - IF (${LIB_TYPE} STREQUAL "INTERFACE_LIBRARY") + GET_TARGET_PROPERTY(LIB_IMPORTED ${NAME} IMPORTED) + IF (NOT LIB_IMPORTED) # This is not an imported target # This an interface library that we created INSTALL( @@ -123,17 +144,23 @@ MACRO(kokkos_export_imported_tpl NAME) ELSE() #make sure this also gets "exported" in the config file KOKKOS_APPEND_CONFIG_LINE("IF(NOT TARGET ${NAME})") - KOKKOS_APPEND_CONFIG_LINE("ADD_LIBRARY(${NAME} UNKNOWN IMPORTED)") - KOKKOS_APPEND_CONFIG_LINE("SET_TARGET_PROPERTIES(${NAME} PROPERTIES") - GET_TARGET_PROPERTY(TPL_LIBRARY ${NAME} IMPORTED_LOCATION) - IF(TPL_LIBRARY) - KOKKOS_APPEND_CONFIG_LINE("IMPORTED_LOCATION ${TPL_LIBRARY}") + GET_TARGET_PROPERTY(LIB_TYPE ${NAME} TYPE) + IF (${LIB_TYPE} STREQUAL "INTERFACE_LIBRARY") + KOKKOS_APPEND_CONFIG_LINE("ADD_LIBRARY(${NAME} INTERFACE IMPORTED)") + KOKKOS_APPEND_CONFIG_LINE("SET_TARGET_PROPERTIES(${NAME} PROPERTIES") + ELSE() + KOKKOS_APPEND_CONFIG_LINE("ADD_LIBRARY(${NAME} UNKNOWN IMPORTED)") + KOKKOS_APPEND_CONFIG_LINE("SET_TARGET_PROPERTIES(${NAME} PROPERTIES") + GET_TARGET_PROPERTY(TPL_LIBRARY ${NAME} IMPORTED_LOCATION) + IF(TPL_LIBRARY) + KOKKOS_APPEND_CONFIG_LINE("IMPORTED_LOCATION \"${TPL_LIBRARY}\"") + ENDIF() ENDIF() GET_TARGET_PROPERTY(TPL_INCLUDES ${NAME} INTERFACE_INCLUDE_DIRECTORIES) IF(TPL_INCLUDES) - KOKKOS_APPEND_CONFIG_LINE("INTERFACE_INCLUDE_DIRECTORIES ${TPL_INCLUDES}") + KOKKOS_APPEND_CONFIG_LINE("INTERFACE_INCLUDE_DIRECTORIES \"${TPL_INCLUDES}\"") ENDIF() GET_TARGET_PROPERTY(TPL_COMPILE_OPTIONS ${NAME} INTERFACE_COMPILE_OPTIONS) @@ -151,7 +178,7 @@ MACRO(kokkos_export_imported_tpl NAME) GET_TARGET_PROPERTY(TPL_LINK_LIBRARIES ${NAME} INTERFACE_LINK_LIBRARIES) IF(TPL_LINK_LIBRARIES) - KOKKOS_APPEND_CONFIG_LINE("INTERFACE_LINK_LIBRARIES ${TPL_LINK_LIBRARIES}") + KOKKOS_APPEND_CONFIG_LINE("INTERFACE_LINK_LIBRARIES \"${TPL_LINK_LIBRARIES}\"") ENDIF() KOKKOS_APPEND_CONFIG_LINE(")") KOKKOS_APPEND_CONFIG_LINE("ENDIF()") @@ -182,6 +209,11 @@ ENDMACRO() # # If specified, this TPL will build an INTERFACE library rather than an # IMPORTED target +IF (KOKKOS_HAS_TRILINOS) +MACRO(kokkos_import_tpl NAME) + #do nothing +ENDMACRO() +ELSE() MACRO(kokkos_import_tpl NAME) CMAKE_PARSE_ARGUMENTS(TPL "NO_EXPORT;INTERFACE" @@ -214,6 +246,7 @@ MACRO(kokkos_import_tpl NAME) LIST(APPEND KOKKOS_ENABLED_TPLS ${NAME}) ENDIF() ENDMACRO(kokkos_import_tpl) +ENDIF() MACRO(kokkos_import_cmake_tpl MODULE_NAME) kokkos_import_tpl(${MODULE_NAME} ${ARGN} NO_EXPORT) @@ -737,18 +770,22 @@ FUNCTION(kokkos_link_tpl TARGET) ENDFUNCTION() FUNCTION(COMPILER_SPECIFIC_OPTIONS_HELPER) - SET(COMPILERS NVIDIA PGI XL DEFAULT Cray Intel Clang AppleClang GNU) + SET(COMPILERS NVIDIA PGI XL DEFAULT Cray Intel Clang AppleClang IntelClang GNU HIP Fujitsu) CMAKE_PARSE_ARGUMENTS( PARSE "LINK_OPTIONS;COMPILE_OPTIONS;COMPILE_DEFINITIONS;LINK_LIBRARIES" - "" + "COMPILER_ID" "${COMPILERS}" ${ARGN}) IF(PARSE_UNPARSED_ARGUMENTS) MESSAGE(SEND_ERROR "'${PARSE_UNPARSED_ARGUMENTS}' argument(s) not recognized when providing compiler specific options") ENDIF() - SET(COMPILER ${KOKKOS_CXX_COMPILER_ID}) + IF(PARSE_COMPILER_ID) + SET(COMPILER ${${PARSE_COMPILER_ID}}) + ELSE() + SET(COMPILER ${KOKKOS_CXX_COMPILER_ID}) + ENDIF() SET(COMPILER_SPECIFIC_FLAGS_TMP) FOREACH(COMP ${COMPILERS}) @@ -792,6 +829,14 @@ FUNCTION(COMPILER_SPECIFIC_FLAGS) COMPILER_SPECIFIC_OPTIONS_HELPER(${ARGN} COMPILE_OPTIONS LINK_OPTIONS) ENDFUNCTION(COMPILER_SPECIFIC_FLAGS) +FUNCTION(COMPILER_SPECIFIC_OPTIONS) + COMPILER_SPECIFIC_OPTIONS_HELPER(${ARGN} COMPILE_OPTIONS) +ENDFUNCTION(COMPILER_SPECIFIC_OPTIONS) + +FUNCTION(COMPILER_SPECIFIC_LINK_OPTIONS) + COMPILER_SPECIFIC_OPTIONS_HELPER(${ARGN} LINK_OPTIONS) +ENDFUNCTION(COMPILER_SPECIFIC_LINK_OPTIONS) + FUNCTION(COMPILER_SPECIFIC_DEFS) COMPILER_SPECIFIC_OPTIONS_HELPER(${ARGN} COMPILE_DEFINITIONS) ENDFUNCTION(COMPILER_SPECIFIC_DEFS) @@ -799,3 +844,146 @@ ENDFUNCTION(COMPILER_SPECIFIC_DEFS) FUNCTION(COMPILER_SPECIFIC_LIBS) COMPILER_SPECIFIC_OPTIONS_HELPER(${ARGN} LINK_LIBRARIES) ENDFUNCTION(COMPILER_SPECIFIC_LIBS) +# Given a list of the form +# key1;value1;key2;value2,... +# Create a list of all keys in a variable named ${KEY_LIST_NAME} +# and set the value for each key in a variable ${VAR_PREFIX}key1,... +# kokkos_key_value_map(ARCH ALL_ARCHES key1;value1;key2;value2) +# would produce a list variable ALL_ARCHES=key1;key2 +# and individual variables ARCHkey1=value1 and ARCHkey2=value2 +MACRO(KOKKOS_KEY_VALUE_MAP VAR_PREFIX KEY_LIST_NAME) + SET(PARSE_KEY ON) + SET(${KEY_LIST_NAME}) + FOREACH(ENTRY ${ARGN}) + IF(PARSE_KEY) + SET(CURRENT_KEY ${ENTRY}) + SET(PARSE_KEY OFF) + LIST(APPEND ${KEY_LIST_NAME} ${CURRENT_KEY}) + ELSE() + SET(${VAR_PREFIX}${CURRENT_KEY} ${ENTRY}) + SET(PARSE_KEY ON) + ENDIF() + ENDFOREACH() +ENDMACRO() + +FUNCTION(KOKKOS_CHECK_DEPRECATED_OPTIONS) + KOKKOS_KEY_VALUE_MAP(DEPRECATED_MSG_ DEPRECATED_LIST ${ARGN}) + FOREACH(OPTION_SUFFIX ${DEPRECATED_LIST}) + SET(OPTION_NAME Kokkos_${OPTION_SUFFIX}) + SET(OPTION_MESSAGE ${DEPRECATED_MSG_${OPTION_SUFFIX}}) + IF(DEFINED ${OPTION_NAME}) # This variable has been given by the user as on or off + MESSAGE(SEND_ERROR "Removed option ${OPTION_NAME} has been given with value ${${OPTION_NAME}}. ${OPT_MESSAGE}") + ENDIF() + ENDFOREACH() +ENDFUNCTION() + +# this function checks whether the current CXX compiler supports building CUDA +FUNCTION(kokkos_cxx_compiler_cuda_test _VAR) + # don't run this test every time + IF(DEFINED ${_VAR}) + RETURN() + ENDIF() + + FILE(WRITE ${PROJECT_BINARY_DIR}/compile_tests/compiles_cuda.cpp +" +#include <cuda.h> +#include <cstdlib> + +__global__ +void kernel(int sz, double* data) +{ + auto _beg = blockIdx.x * blockDim.x + threadIdx.x; + for(int i = _beg; i < sz; ++i) + data[i] += static_cast<double>(i); +} + +int main() +{ + double* data = nullptr; + int blocks = 64; + int grids = 64; + auto ret = cudaMalloc(&data, blocks * grids * sizeof(double)); + if(ret != cudaSuccess) + return EXIT_FAILURE; + kernel<<<grids, blocks>>>(blocks * grids, data); + cudaDeviceSynchronize(); + return EXIT_SUCCESS; +} +") + + TRY_COMPILE(_RET + ${PROJECT_BINARY_DIR}/compile_tests + SOURCES ${PROJECT_BINARY_DIR}/compile_tests/compiles_cuda.cpp) + + SET(${_VAR} ${_RET} CACHE STRING "CXX compiler supports building CUDA") +ENDFUNCTION() + +# this function is provided to easily select which files use nvcc_wrapper: +# +# GLOBAL --> all files +# TARGET --> all files in a target +# SOURCE --> specific source files +# DIRECTORY --> all files in directory +# PROJECT --> all files/targets in a project/subproject +# +FUNCTION(kokkos_compilation) + # check whether the compiler already supports building CUDA + KOKKOS_CXX_COMPILER_CUDA_TEST(Kokkos_CXX_COMPILER_COMPILES_CUDA) + # if CUDA compile test has already been performed, just return + IF(Kokkos_CXX_COMPILER_COMPILES_CUDA) + RETURN() + ENDIF() + + CMAKE_PARSE_ARGUMENTS(COMP "GLOBAL;PROJECT" "" "DIRECTORY;TARGET;SOURCE" ${ARGN}) + + # find kokkos_launch_compiler + FIND_PROGRAM(Kokkos_COMPILE_LAUNCHER + NAMES kokkos_launch_compiler + HINTS ${PROJECT_SOURCE_DIR} + PATHS ${PROJECT_SOURCE_DIR} + PATH_SUFFIXES bin) + + IF(NOT Kokkos_COMPILE_LAUNCHER) + MESSAGE(FATAL_ERROR "Kokkos could not find 'kokkos_launch_compiler'. Please set '-DKokkos_COMPILE_LAUNCHER=/path/to/launcher'") + ENDIF() + + IF(COMP_GLOBAL) + # if global, don't bother setting others + SET_PROPERTY(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${Kokkos_COMPILE_LAUNCHER} ${CMAKE_CXX_COMPILER}") + SET_PROPERTY(GLOBAL PROPERTY RULE_LAUNCH_LINK "${Kokkos_COMPILE_LAUNCHER} ${CMAKE_CXX_COMPILER}") + ELSE() + FOREACH(_TYPE PROJECT DIRECTORY TARGET SOURCE) + # make project/subproject scoping easy, e.g. KokkosCompilation(PROJECT) after project(...) + IF("${_TYPE}" STREQUAL "PROJECT" AND COMP_${_TYPE}) + LIST(APPEND COMP_DIRECTORY ${PROJECT_SOURCE_DIR}) + UNSET(COMP_${_TYPE}) + ENDIF() + # set the properties if defined + IF(COMP_${_TYPE}) + # MESSAGE(STATUS "Using nvcc_wrapper :: ${_TYPE} :: ${COMP_${_TYPE}}") + SET_PROPERTY(${_TYPE} ${COMP_${_TYPE}} PROPERTY RULE_LAUNCH_COMPILE "${Kokkos_COMPILE_LAUNCHER} ${CMAKE_CXX_COMPILER}") + SET_PROPERTY(${_TYPE} ${COMP_${_TYPE}} PROPERTY RULE_LAUNCH_LINK "${Kokkos_COMPILE_LAUNCHER} ${CMAKE_CXX_COMPILER}") + ENDIF() + ENDFOREACH() + ENDIF() +ENDFUNCTION() +## KOKKOS_CONFIG_HEADER - parse the data list which is a list of backend names +## and create output config header file...used for +## creating dynamic include files based on enabled backends +## +## SRC_FILE is input file +## TARGET_FILE output file +## HEADER_GUARD TEXT used with include header guard +## HEADER_PREFIX prefix used with include (i.e. fwd, decl, setup) +## DATA_LIST list of backends to include in generated file +FUNCTION(KOKKOS_CONFIG_HEADER SRC_FILE TARGET_FILE HEADER_GUARD HEADER_PREFIX DATA_LIST) + SET(HEADER_GUARD_TAG "${HEADER_GUARD}_HPP_") + CONFIGURE_FILE(cmake/${SRC_FILE} ${PROJECT_BINARY_DIR}/temp/${TARGET_FILE}.work COPYONLY) + FOREACH( BACKEND_NAME ${DATA_LIST} ) + SET(INCLUDE_NEXT_FILE "#include <${HEADER_PREFIX}_${BACKEND_NAME}.hpp> +\@INCLUDE_NEXT_FILE\@") + CONFIGURE_FILE(${PROJECT_BINARY_DIR}/temp/${TARGET_FILE}.work ${PROJECT_BINARY_DIR}/temp/${TARGET_FILE}.work @ONLY) + ENDFOREACH() + SET(INCLUDE_NEXT_FILE "" ) + CONFIGURE_FILE(${PROJECT_BINARY_DIR}/temp/${TARGET_FILE}.work ${TARGET_FILE} @ONLY) +ENDFUNCTION() diff --git a/packages/kokkos/cmake/kokkos_install.cmake b/packages/kokkos/cmake/kokkos_install.cmake index 97bb2bd0b..ff66d015f 100644 --- a/packages/kokkos/cmake/kokkos_install.cmake +++ b/packages/kokkos/cmake/kokkos_install.cmake @@ -1,5 +1,5 @@ INCLUDE(CMakePackageConfigHelpers) -IF (NOT KOKKOS_HAS_TRILINOS) +IF (NOT KOKKOS_HAS_TRILINOS AND NOT Kokkos_INSTALL_TESTING) INCLUDE(GNUInstallDirs) #Set all the variables needed for KokkosConfig.cmake diff --git a/packages/kokkos/cmake/kokkos_pick_cxx_std.cmake b/packages/kokkos/cmake/kokkos_pick_cxx_std.cmake index cf14948f4..015873ebd 100644 --- a/packages/kokkos/cmake/kokkos_pick_cxx_std.cmake +++ b/packages/kokkos/cmake/kokkos_pick_cxx_std.cmake @@ -1,19 +1,17 @@ # From CMake 3.10 documentation #This can run at any time -KOKKOS_OPTION(CXX_STANDARD "" STRING "The C++ standard for Kokkos to use: 11, 14, 17, or 20. If empty, this will default to CMAKE_CXX_STANDARD. If both CMAKE_CXX_STANDARD and Kokkos_CXX_STANDARD are empty, this will default to 11") +KOKKOS_OPTION(CXX_STANDARD "" STRING "The C++ standard for Kokkos to use: 14, 17, or 20. If empty, this will default to CMAKE_CXX_STANDARD. If both CMAKE_CXX_STANDARD and Kokkos_CXX_STANDARD are empty, this will default to 14") # Set CXX standard flags -SET(KOKKOS_ENABLE_CXX11 OFF) SET(KOKKOS_ENABLE_CXX14 OFF) SET(KOKKOS_ENABLE_CXX17 OFF) SET(KOKKOS_ENABLE_CXX20 OFF) IF (KOKKOS_CXX_STANDARD) IF (${KOKKOS_CXX_STANDARD} STREQUAL "c++98") - MESSAGE(FATAL_ERROR "Kokkos no longer supports C++98 - minimum C++11") + MESSAGE(FATAL_ERROR "Kokkos no longer supports C++98 - minimum C++14") ELSEIF (${KOKKOS_CXX_STANDARD} STREQUAL "c++11") - MESSAGE(WARNING "Deprecated Kokkos C++ standard set as 'c++11'. Use '11' instead.") - SET(KOKKOS_CXX_STANDARD "11") + MESSAGE(FATAL_ERROR "Kokkos no longer supports C++11 - minimum C++14") ELSEIF(${KOKKOS_CXX_STANDARD} STREQUAL "c++14") MESSAGE(WARNING "Deprecated Kokkos C++ standard set as 'c++14'. Use '14' instead.") SET(KOKKOS_CXX_STANDARD "14") @@ -33,8 +31,8 @@ IF (KOKKOS_CXX_STANDARD) ENDIF() IF (NOT KOKKOS_CXX_STANDARD AND NOT CMAKE_CXX_STANDARD) - MESSAGE(STATUS "Setting default Kokkos CXX standard to 11") - SET(KOKKOS_CXX_STANDARD "11") + MESSAGE(STATUS "Setting default Kokkos CXX standard to 14") + SET(KOKKOS_CXX_STANDARD "14") ELSEIF(NOT KOKKOS_CXX_STANDARD) MESSAGE(STATUS "Setting default Kokkos CXX standard to ${CMAKE_CXX_STANDARD}") SET(KOKKOS_CXX_STANDARD ${CMAKE_CXX_STANDARD}) diff --git a/packages/kokkos/cmake/kokkos_test_cxx_std.cmake b/packages/kokkos/cmake/kokkos_test_cxx_std.cmake index 603b4b3d7..1d7da922e 100644 --- a/packages/kokkos/cmake/kokkos_test_cxx_std.cmake +++ b/packages/kokkos/cmake/kokkos_test_cxx_std.cmake @@ -28,19 +28,33 @@ FUNCTION(kokkos_set_cxx_standard_feature standard) GLOBAL_SET(KOKKOS_CXX_STANDARD_FEATURE ${FEATURE_NAME}) ELSEIF(NOT KOKKOS_USE_CXX_EXTENSIONS AND ${STANDARD_NAME}) MESSAGE(STATUS "Using ${${STANDARD_NAME}} for C++${standard} standard as feature") + IF (KOKKOS_CXX_COMPILER_ID STREQUAL NVIDIA AND (KOKKOS_CXX_HOST_COMPILER_ID STREQUAL GNU OR KOKKOS_CXX_HOST_COMPILER_ID STREQUAL Clang)) + SET(SUPPORTED_NVCC_FLAGS "-std=c++14;-std=c++17") + IF (NOT ${${STANDARD_NAME}} IN_LIST SUPPORTED_NVCC_FLAGS) + MESSAGE(FATAL_ERROR "CMake wants to use ${${STANDARD_NAME}} which is not supported by NVCC. Using a more recent host compiler or a more recent CMake version might help.") + ENDIF() + ENDIF() GLOBAL_SET(KOKKOS_CXX_STANDARD_FEATURE ${FEATURE_NAME}) - ELSEIF(KOKKOS_CXX_COMPILER_ID STREQUAL "MSVC") + ELSEIF (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC" OR "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC") #MSVC doesn't need a command line flag, that doesn't mean it has no support MESSAGE(STATUS "Using no flag for C++${standard} standard as feature") GLOBAL_SET(KOKKOS_CXX_STANDARD_FEATURE ${FEATURE_NAME}) + ELSEIF((KOKKOS_CXX_COMPILER_ID STREQUAL "NVIDIA") AND WIN32) + MESSAGE(STATUS "Using no flag for C++${standard} standard as feature") + GLOBAL_SET(KOKKOS_CXX_STANDARD_FEATURE "") + ELSEIF((KOKKOS_CXX_COMPILER_ID STREQUAL "Fujitsu")) + MESSAGE(STATUS "Using no flag for C++${standard} standard as feature") + GLOBAL_SET(KOKKOS_CXX_STANDARD_FEATURE "") ELSE() #nope, we can't do anything here - MESSAGE(WARNING "C++${standard} is not supported as a compiler feature. We will choose custom flags for now, but this behavior has been deprecated. Please open an issue at https://github.com/kokkos/kokkos/issues reporting that ${KOKKOS_CXX_COMPILER_ID} ${KOKKOS_CXX_COMPILER_VERSION} failed for ${KOKKOS_CXX_STANDARD}, preferrably including your CMake command.") + MESSAGE(WARNING "C++${standard} is not supported as a compiler feature. We will choose custom flags for now, but this behavior has been deprecated. Please open an issue at https://github.com/kokkos/kokkos/issues reporting that ${KOKKOS_CXX_COMPILER_ID} ${KOKKOS_CXX_COMPILER_VERSION} failed for ${KOKKOS_CXX_STANDARD}, preferably including your CMake command.") GLOBAL_SET(KOKKOS_CXX_STANDARD_FEATURE "") ENDIF() - IF(NOT ${FEATURE_NAME} IN_LIST CMAKE_CXX_COMPILE_FEATURES) - MESSAGE(FATAL_ERROR "Compiler ${KOKKOS_CXX_COMPILER_ID} should support ${FEATURE_NAME}, but CMake reports feature not supported") + IF((NOT WIN32) AND (NOT ("${KOKKOS_CXX_COMPILER_ID}" STREQUAL "Fujitsu"))) + IF(NOT ${FEATURE_NAME} IN_LIST CMAKE_CXX_COMPILE_FEATURES) + MESSAGE(FATAL_ERROR "Compiler ${KOKKOS_CXX_COMPILER_ID} should support ${FEATURE_NAME}, but CMake reports feature not supported") + ENDIF() ENDIF() ENDFUNCTION() @@ -54,11 +68,7 @@ IF (KOKKOS_CXX_STANDARD AND CMAKE_CXX_STANDARD) ENDIF() -IF (KOKKOS_CXX_STANDARD STREQUAL "11" ) - kokkos_set_cxx_standard_feature(11) - SET(KOKKOS_ENABLE_CXX11 ON) - SET(KOKKOS_CXX_INTERMEDIATE_STANDARD "11") -ELSEIF(KOKKOS_CXX_STANDARD STREQUAL "14") +IF(KOKKOS_CXX_STANDARD STREQUAL "14") kokkos_set_cxx_standard_feature(14) SET(KOKKOS_CXX_INTERMEDIATE_STANDARD "1Y") SET(KOKKOS_ENABLE_CXX14 ON) @@ -70,21 +80,21 @@ ELSEIF(KOKKOS_CXX_STANDARD STREQUAL "20") kokkos_set_cxx_standard_feature(20) SET(KOKKOS_CXX_INTERMEDIATE_STANDARD "2A") SET(KOKKOS_ENABLE_CXX20 ON) -ELSEIF(KOKKOS_CXX_STANDARD STREQUAL "98") - MESSAGE(FATAL_ERROR "Kokkos requires C++11 or newer!") +ELSEIF(KOKKOS_CXX_STANDARD STREQUAL "98" OR KOKKOS_CXX_STANDARD STREQUAL "11") + MESSAGE(FATAL_ERROR "Kokkos requires C++14 or newer!") ELSE() - MESSAGE(FATAL_ERROR "Unknown C++ standard ${KOKKOS_CXX_STANDARD} - must be 11, 14, 17, or 20") + MESSAGE(FATAL_ERROR "Unknown C++ standard ${KOKKOS_CXX_STANDARD} - must be 14, 17, or 20") ENDIF() # Enforce that extensions are turned off for nvcc_wrapper. # For compiling CUDA code using nvcc_wrapper, we will use the host compiler's -# flags for turning on C++11. Since for compiler ID and versioning purposes +# flags for turning on C++14. Since for compiler ID and versioning purposes # CMake recognizes the host compiler when calling nvcc_wrapper, this just -# works. Both NVCC and nvcc_wrapper only recognize '-std=c++11' which means +# works. Both NVCC and nvcc_wrapper only recognize '-std=c++14' which means # that we can only use host compilers for CUDA builds that use those flags. -# It also means that extensions (gnu++11) can't be turned on for CUDA builds. +# It also means that extensions (gnu++14) can't be turned on for CUDA builds. IF(KOKKOS_CXX_COMPILER_ID STREQUAL NVIDIA) IF(NOT DEFINED CMAKE_CXX_EXTENSIONS) @@ -106,7 +116,7 @@ IF(KOKKOS_ENABLE_CUDA) MESSAGE(FATAL_ERROR "Compiling CUDA code with clang doesn't support C++ extensions. Set -DCMAKE_CXX_EXTENSIONS=OFF") ENDIF() ELSEIF(NOT KOKKOS_CXX_COMPILER_ID STREQUAL NVIDIA) - MESSAGE(FATAL_ERROR "Invalid compiler for CUDA. The compiler must be nvcc_wrapper or Clang, but compiler ID was ${KOKKOS_CXX_COMPILER_ID}") + MESSAGE(FATAL_ERROR "Invalid compiler for CUDA. The compiler must be nvcc_wrapper or Clang or use kokkos_launch_compiler, but compiler ID was ${KOKKOS_CXX_COMPILER_ID}") ENDIF() ENDIF() @@ -123,7 +133,7 @@ IF (NOT KOKKOS_CXX_STANDARD_FEATURE) ELSEIF(KOKKOS_CXX_COMPILER_ID STREQUAL Intel) INCLUDE(${KOKKOS_SRC_PATH}/cmake/intel.cmake) kokkos_set_intel_flags(${KOKKOS_CXX_STANDARD} ${KOKKOS_CXX_INTERMEDIATE_STANDARD}) - ELSEIF(KOKKOS_CXX_COMPILER_ID STREQUAL "MSVC") + ELSEIF((KOKKOS_CXX_COMPILER_ID STREQUAL "MSVC") OR ((KOKKOS_CXX_COMPILER_ID STREQUAL "NVIDIA") AND WIN32)) INCLUDE(${KOKKOS_SRC_PATH}/cmake/msvc.cmake) kokkos_set_msvc_flags(${KOKKOS_CXX_STANDARD} ${KOKKOS_CXX_INTERMEDIATE_STANDARD}) ELSE() diff --git a/packages/kokkos/cmake/kokkos_tpls.cmake b/packages/kokkos/cmake/kokkos_tpls.cmake index 76efd4284..b58d3696e 100644 --- a/packages/kokkos/cmake/kokkos_tpls.cmake +++ b/packages/kokkos/cmake/kokkos_tpls.cmake @@ -2,22 +2,49 @@ KOKKOS_CFG_DEPENDS(TPLS OPTIONS) KOKKOS_CFG_DEPENDS(TPLS DEVICES) FUNCTION(KOKKOS_TPL_OPTION PKG DEFAULT) + CMAKE_PARSE_ARGUMENTS(PARSED + "" + "TRIBITS" + "" + ${ARGN}) + + IF (PARSED_TRIBITS) + #this is also a TPL option you can activate with Tribits + IF (NOT "${TPL_ENABLE_${PARSED_TRIBITS}}" STREQUAL "") + #Tribits brought its own default that should take precedence + SET(DEFAULT ${TPL_ENABLE_${PARSED_TRIBITS}}) + ENDIF() + ENDIF() + KOKKOS_ENABLE_OPTION(${PKG} ${DEFAULT} "Whether to enable the ${PKG} library") KOKKOS_OPTION(${PKG}_DIR "" PATH "Location of ${PKG} library") SET(KOKKOS_ENABLE_${PKG} ${KOKKOS_ENABLE_${PKG}} PARENT_SCOPE) SET(KOKKOS_${PKG}_DIR ${KOKKOS_${PKG}_DIR} PARENT_SCOPE) + + IF (KOKKOS_HAS_TRILINOS + AND KOKKOS_ENABLE_${PKG} + AND NOT PARSED_TRIBITS) + #this TPL was enabled, but it is not valid to use inside of TriBITS + MESSAGE(FATAL_ERROR "Enabled TPL ${PKG} inside TriBITS build, " + "but this can only be enabled in a standalone build") + ENDIF() ENDFUNCTION() KOKKOS_TPL_OPTION(HWLOC Off) KOKKOS_TPL_OPTION(LIBNUMA Off) KOKKOS_TPL_OPTION(MEMKIND Off) -KOKKOS_TPL_OPTION(CUDA Off) +IF(KOKKOS_ENABLE_MEMKIND) + SET(KOKKOS_ENABLE_HBWSPACE ON) +ENDIF() +KOKKOS_TPL_OPTION(CUDA ${Kokkos_ENABLE_CUDA} TRIBITS CUDA) KOKKOS_TPL_OPTION(LIBRT Off) -KOKKOS_TPL_OPTION(LIBDL On) -IF(KOKKOS_ENABLE_PROFILING AND NOT KOKKOS_ENABLE_LIBDL) - MESSAGE(SEND_ERROR "Kokkos_ENABLE_PROFILING requires Kokkos_ENABLE_LIBDL=ON") +IF (WIN32) + SET(LIBDL_DEFAULT Off) +ELSE() + SET(LIBDL_DEFAULT On) ENDIF() +KOKKOS_TPL_OPTION(LIBDL ${LIBDL_DEFAULT} TRIBITS DLlib) IF(Trilinos_ENABLE_Kokkos AND TPL_ENABLE_HPX) SET(HPX_DEFAULT ON) @@ -31,7 +58,7 @@ SET(PTHREAD_DEFAULT ON) ELSE() SET(PTHREAD_DEFAULT OFF) ENDIF() -KOKKOS_TPL_OPTION(PTHREAD ${PTHREAD_DEFAULT}) +KOKKOS_TPL_OPTION(PTHREAD ${PTHREAD_DEFAULT} TRIBITS Pthread) #Make sure we use our local FindKokkosCuda.cmake @@ -49,3 +76,7 @@ STRING(REPLACE ";" "\n" KOKKOS_TPL_EXPORT_TEMP "${KOKKOS_TPL_EXPORTS}") #Convert to a regular variable UNSET(KOKKOS_TPL_EXPORTS CACHE) SET(KOKKOS_TPL_EXPORTS ${KOKKOS_TPL_EXPORT_TEMP}) +IF (KOKKOS_ENABLE_MEMKIND) + SET(KOKKOS_ENABLE_HBWSPACE) + LIST(APPEND KOKKOS_MEMSPACE_LIST HBWSpace) +ENDIF() diff --git a/packages/kokkos/cmake/kokkos_tribits.cmake b/packages/kokkos/cmake/kokkos_tribits.cmake index 6ee1409aa..059fb192f 100644 --- a/packages/kokkos/cmake/kokkos_tribits.cmake +++ b/packages/kokkos/cmake/kokkos_tribits.cmake @@ -6,6 +6,12 @@ INCLUDE(GNUInstallDirs) MESSAGE(STATUS "The project name is: ${PROJECT_NAME}") +FUNCTION(VERIFY_EMPTY CONTEXT) + if(${ARGN}) + MESSAGE(FATAL_ERROR "Kokkos does not support all of Tribits. Unhandled arguments in ${CONTEXT}:\n${ARGN}") + endif() +ENDFUNCTION() + #Leave this here for now - but only do for tribits #This breaks the standalone CMake IF (KOKKOS_HAS_TRILINOS) @@ -21,10 +27,6 @@ IF (KOKKOS_HAS_TRILINOS) SET(${PROJECT_NAME}_ENABLE_DEBUG OFF) ENDIF() - IF(NOT DEFINED ${PROJECT_NAME}_ENABLE_CXX11) - SET(${PROJECT_NAME}_ENABLE_CXX11 ON) - ENDIF() - IF(NOT DEFINED ${PROJECT_NAME}_ENABLE_TESTS) SET(${PROJECT_NAME}_ENABLE_TESTS OFF) ENDIF() @@ -134,33 +136,42 @@ FUNCTION(KOKKOS_ADD_EXECUTABLE ROOT_NAME) VERIFY_EMPTY(KOKKOS_ADD_EXECUTABLE ${PARSE_UNPARSED_ARGUMENTS}) #All executables must link to all the kokkos targets #This is just private linkage because exe is final - TARGET_LINK_LIBRARIES(${EXE_NAME} PRIVATE kokkos) + TARGET_LINK_LIBRARIES(${EXE_NAME} PRIVATE Kokkos::kokkos) endif() ENDFUNCTION() FUNCTION(KOKKOS_ADD_EXECUTABLE_AND_TEST ROOT_NAME) +CMAKE_PARSE_ARGUMENTS(PARSE + "" + "" + "SOURCES;CATEGORIES;ARGS" + ${ARGN}) +VERIFY_EMPTY(KOKKOS_ADD_EXECUTABLE_AND_TEST ${PARSE_UNPARSED_ARGUMENTS}) + IF (KOKKOS_HAS_TRILINOS) + IF(DEFINED PARSE_ARGS) + STRING(REPLACE ";" " " PARSE_ARGS "${PARSE_ARGS}") + ENDIF() TRIBITS_ADD_EXECUTABLE_AND_TEST( ${ROOT_NAME} + SOURCES ${PARSE_SOURCES} TESTONLYLIBS kokkos_gtest - ${ARGN} NUM_MPI_PROCS 1 COMM serial mpi + ARGS ${PARSE_ARGS} + CATEGORIES ${PARSE_CATEGORIES} + SOURCES ${PARSE_SOURCES} FAIL_REGULAR_EXPRESSION " FAILED " + ARGS ${PARSE_ARGS} ) ELSE() - CMAKE_PARSE_ARGUMENTS(PARSE - "" - "" - "SOURCES;CATEGORIES" - ${ARGN}) - VERIFY_EMPTY(KOKKOS_ADD_EXECUTABLE_AND_TEST ${PARSE_UNPARSED_ARGUMENTS}) KOKKOS_ADD_TEST_EXECUTABLE(${ROOT_NAME} SOURCES ${PARSE_SOURCES} ) KOKKOS_ADD_TEST(NAME ${ROOT_NAME} EXE ${ROOT_NAME} FAIL_REGULAR_EXPRESSION " FAILED " + ARGS ${PARSE_ARGS} ) ENDIF() ENDFUNCTION() @@ -174,16 +185,42 @@ FUNCTION(KOKKOS_SET_EXE_PROPERTY ROOT_NAME) ENDFUNCTION() MACRO(KOKKOS_SETUP_BUILD_ENVIRONMENT) - INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_compiler_id.cmake) - INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_enable_devices.cmake) - INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_enable_options.cmake) - INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_test_cxx_std.cmake) - INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_arch.cmake) - IF (NOT KOKKOS_HAS_TRILINOS) - SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${Kokkos_SOURCE_DIR}/cmake/Modules/") - INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_tpls.cmake) - ENDIF() - INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_corner_cases.cmake) + # This is needed for both regular build and install tests + INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_compiler_id.cmake) + #set an internal option, if not already set + SET(Kokkos_INSTALL_TESTING OFF CACHE INTERNAL "Whether to build tests and examples against installation") + IF (Kokkos_INSTALL_TESTING) + SET(KOKKOS_ENABLE_TESTS ON) + SET(KOKKOS_ENABLE_EXAMPLES ON) + # This looks a little weird, but what we are doing + # is to NOT build Kokkos but instead look for an + # installed Kokkos - then build examples and tests + # against that installed Kokkos + FIND_PACKAGE(Kokkos REQUIRED) + # Just grab the configuration from the installation + FOREACH(DEV ${Kokkos_DEVICES}) + SET(KOKKOS_ENABLE_${DEV} ON) + ENDFOREACH() + FOREACH(OPT ${Kokkos_OPTIONS}) + SET(KOKKOS_ENABLE_${OPT} ON) + ENDFOREACH() + FOREACH(TPL ${Kokkos_TPLS}) + SET(KOKKOS_ENABLE_${TPL} ON) + ENDFOREACH() + FOREACH(ARCH ${Kokkos_ARCH}) + SET(KOKKOS_ARCH_${ARCH} ON) + ENDFOREACH() + ELSE() + INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_enable_devices.cmake) + INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_enable_options.cmake) + INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_test_cxx_std.cmake) + INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_arch.cmake) + IF (NOT KOKKOS_HAS_TRILINOS) + SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${Kokkos_SOURCE_DIR}/cmake/Modules/") + ENDIF() + INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_tpls.cmake) + INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_corner_cases.cmake) + ENDIF() ENDMACRO() MACRO(KOKKOS_ADD_TEST_EXECUTABLE ROOT_NAME) @@ -197,6 +234,7 @@ MACRO(KOKKOS_ADD_TEST_EXECUTABLE ROOT_NAME) ${PARSE_UNPARSED_ARGUMENTS} TESTONLYLIBS kokkos_gtest ) + SET(EXE_NAME ${PACKAGE_NAME}_${ROOT_NAME}) ENDMACRO() MACRO(KOKKOS_PACKAGE_POSTPROCESS) @@ -205,6 +243,79 @@ MACRO(KOKKOS_PACKAGE_POSTPROCESS) endif() ENDMACRO() +## KOKKOS_CONFIGURE_CORE Configure/Generate header files for core content based +## on enabled backends. +## KOKKOS_FWD is the forward declare set +## KOKKOS_SETUP is included in Kokkos_Macros.hpp and include prefix includes/defines +## KOKKOS_DECLARE is the declaration set +## KOKKOS_POST_INCLUDE is included at the end of Kokkos_Core.hpp +MACRO(KOKKOS_CONFIGURE_CORE) + SET(FWD_BACKEND_LIST) + FOREACH(MEMSPACE ${KOKKOS_MEMSPACE_LIST}) + LIST(APPEND FWD_BACKEND_LIST ${MEMSPACE}) + ENDFOREACH() + FOREACH(BACKEND_ ${KOKKOS_ENABLED_DEVICES}) + IF( ${BACKEND_} STREQUAL "PTHREAD") + LIST(APPEND FWD_BACKEND_LIST THREADS) + ELSE() + LIST(APPEND FWD_BACKEND_LIST ${BACKEND_}) + ENDIF() + ENDFOREACH() + MESSAGE(STATUS "Kokkos Devices: ${KOKKOS_ENABLED_DEVICES}, Kokkos Backends: ${FWD_BACKEND_LIST}") + KOKKOS_CONFIG_HEADER( KokkosCore_Config_HeaderSet.in KokkosCore_Config_FwdBackend.hpp "KOKKOS_FWD" "fwd/Kokkos_Fwd" "${FWD_BACKEND_LIST}") + KOKKOS_CONFIG_HEADER( KokkosCore_Config_HeaderSet.in KokkosCore_Config_SetupBackend.hpp "KOKKOS_SETUP" "setup/Kokkos_Setup" "${DEVICE_SETUP_LIST}") + KOKKOS_CONFIG_HEADER( KokkosCore_Config_HeaderSet.in KokkosCore_Config_DeclareBackend.hpp "KOKKOS_DECLARE" "decl/Kokkos_Declare" "${FWD_BACKEND_LIST}") + KOKKOS_CONFIG_HEADER( KokkosCore_Config_HeaderSet.in KokkosCore_Config_PostInclude.hpp "KOKKOS_POST_INCLUDE" "Kokkos_Post_Include" "${KOKKOS_BACKEND_POST_INCLUDE_LIST}") + SET(_DEFAULT_HOST_MEMSPACE "::Kokkos::HostSpace") + KOKKOS_OPTION(DEFAULT_DEVICE_MEMORY_SPACE "" STRING "Override default device memory space") + KOKKOS_OPTION(DEFAULT_HOST_MEMORY_SPACE "" STRING "Override default host memory space") + KOKKOS_OPTION(DEFAULT_DEVICE_EXECUTION_SPACE "" STRING "Override default device execution space") + KOKKOS_OPTION(DEFAULT_HOST_PARALLEL_EXECUTION_SPACE "" STRING "Override default host parallel execution space") + IF (NOT Kokkos_DEFAULT_DEVICE_EXECUTION_SPACE STREQUAL "") + SET(_DEVICE_PARALLEL ${Kokkos_DEFAULT_DEVICE_EXECUTION_SPACE}) + MESSAGE(STATUS "Override default device execution space: ${_DEVICE_PARALLEL}") + SET(KOKKOS_DEVICE_SPACE_ACTIVE ON) + ELSE() + IF (_DEVICE_PARALLEL STREQUAL "NoTypeDefined") + SET(KOKKOS_DEVICE_SPACE_ACTIVE OFF) + ELSE() + SET(KOKKOS_DEVICE_SPACE_ACTIVE ON) + ENDIF() + ENDIF() + IF (NOT Kokkos_DEFAULT_HOST_PARALLEL_EXECUTION_SPACE STREQUAL "") + SET(_HOST_PARALLEL ${Kokkos_DEFAULT_HOST_PARALLEL_EXECUTION_SPACE}) + MESSAGE(STATUS "Override default host parallel execution space: ${_HOST_PARALLEL}") + SET(KOKKOS_HOSTPARALLEL_SPACE_ACTIVE ON) + ELSE() + IF (_HOST_PARALLEL STREQUAL "NoTypeDefined") + SET(KOKKOS_HOSTPARALLEL_SPACE_ACTIVE OFF) + ELSE() + SET(KOKKOS_HOSTPARALLEL_SPACE_ACTIVE ON) + ENDIF() + ENDIF() + #We are ready to configure the header + CONFIGURE_FILE(cmake/KokkosCore_config.h.in KokkosCore_config.h @ONLY) +ENDMACRO() + +## KOKKOS_INSTALL_ADDITIONAL_FILES - instruct cmake to install files in target destination. +## Includes generated header files, scripts such as nvcc_wrapper and hpcbind, +## as well as other files provided through plugins. +MACRO(KOKKOS_INSTALL_ADDITIONAL_FILES) + # kokkos_launch_compiler is used by Kokkos to prefix compiler commands so that they forward to nvcc_wrapper + INSTALL(PROGRAMS + "${CMAKE_CURRENT_SOURCE_DIR}/bin/nvcc_wrapper" + "${CMAKE_CURRENT_SOURCE_DIR}/bin/hpcbind" + "${CMAKE_CURRENT_SOURCE_DIR}/bin/kokkos_launch_compiler" + DESTINATION ${CMAKE_INSTALL_BINDIR}) + INSTALL(FILES + "${CMAKE_CURRENT_BINARY_DIR}/KokkosCore_config.h" + "${CMAKE_CURRENT_BINARY_DIR}/KokkosCore_Config_FwdBackend.hpp" + "${CMAKE_CURRENT_BINARY_DIR}/KokkosCore_Config_SetupBackend.hpp" + "${CMAKE_CURRENT_BINARY_DIR}/KokkosCore_Config_DeclareBackend.hpp" + "${CMAKE_CURRENT_BINARY_DIR}/KokkosCore_Config_PostInclude.hpp" + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) +ENDMACRO() + FUNCTION(KOKKOS_SET_LIBRARY_PROPERTIES LIBRARY_NAME) CMAKE_PARSE_ARGUMENTS(PARSE "PLAIN_STYLE" @@ -212,12 +323,21 @@ FUNCTION(KOKKOS_SET_LIBRARY_PROPERTIES LIBRARY_NAME) "" ${ARGN}) - IF(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.13") - #great, this works the "right" way + IF(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.18") + #I can use link options + #check for CXX linkage using the simple 3.18 way + TARGET_LINK_OPTIONS( + ${LIBRARY_NAME} PUBLIC + $<$<LINK_LANGUAGE:CXX>:${KOKKOS_LINK_OPTIONS}> + ) + ELSEIF(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.13") + #I can use link options + #just assume CXX linkage TARGET_LINK_OPTIONS( ${LIBRARY_NAME} PUBLIC ${KOKKOS_LINK_OPTIONS} ) ELSE() + #assume CXX linkage, we have no good way to check otherwise IF (PARSE_PLAIN_STYLE) TARGET_LINK_LIBRARIES( ${LIBRARY_NAME} ${KOKKOS_LINK_OPTIONS} @@ -310,28 +430,45 @@ FUNCTION(KOKKOS_INTERNAL_ADD_LIBRARY LIBRARY_NAME) LIST(REMOVE_DUPLICATES PARSE_SOURCES) ENDIF() + IF(PARSE_STATIC) + SET(LINK_TYPE STATIC) + ENDIF() + + IF(PARSE_SHARED) + SET(LINK_TYPE SHARED) + ENDIF() + + # MSVC and other platforms want to have + # the headers included as source files + # for better dependency detection ADD_LIBRARY( ${LIBRARY_NAME} + ${LINK_TYPE} ${PARSE_HEADERS} ${PARSE_SOURCES} ) KOKKOS_INTERNAL_ADD_LIBRARY_INSTALL(${LIBRARY_NAME}) - INSTALL( - FILES ${PARSE_HEADERS} - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - COMPONENT ${PACKAGE_NAME} - ) - #In case we are building in-tree, add an alias name #that matches the install Kokkos:: name ADD_LIBRARY(Kokkos::${LIBRARY_NAME} ALIAS ${LIBRARY_NAME}) ENDFUNCTION() FUNCTION(KOKKOS_ADD_LIBRARY LIBRARY_NAME) + CMAKE_PARSE_ARGUMENTS(PARSE + "ADD_BUILD_OPTIONS" + "" + "HEADERS" + ${ARGN} + ) IF (KOKKOS_HAS_TRILINOS) - TRIBITS_ADD_LIBRARY(${LIBRARY_NAME} ${ARGN}) + # We do not pass headers to trilinos. They would get installed + # to the default include folder, but we want headers installed + # preserving the directory structure, e.g. impl + # If headers got installed in both locations, it breaks some + # downstream packages + TRIBITS_ADD_LIBRARY(${LIBRARY_NAME} ${PARSE_UNPARSED_ARGUMENTS}) #Stolen from Tribits - it can add prefixes SET(TRIBITS_LIBRARY_NAME_PREFIX "${${PROJECT_NAME}_LIBRARY_NAME_PREFIX}") SET(TRIBITS_LIBRARY_NAME ${TRIBITS_LIBRARY_NAME_PREFIX}${LIBRARY_NAME}) @@ -345,9 +482,13 @@ FUNCTION(KOKKOS_ADD_LIBRARY LIBRARY_NAME) #Do not set any transitive properties and keep everything working as before #KOKKOS_SET_LIBRARY_PROPERTIES(${TRIBITS_LIBRARY_NAME} PLAIN_STYLE) ELSE() + # Forward the headers, we want to know about all headers + # to make sure they appear correctly in IDEs KOKKOS_INTERNAL_ADD_LIBRARY( - ${LIBRARY_NAME} ${ARGN}) - KOKKOS_SET_LIBRARY_PROPERTIES(${LIBRARY_NAME}) + ${LIBRARY_NAME} ${PARSE_UNPARSED_ARGUMENTS} HEADERS ${PARSE_HEADERS}) + IF (PARSE_ADD_BUILD_OPTIONS) + KOKKOS_SET_LIBRARY_PROPERTIES(${LIBRARY_NAME}) + ENDIF() ENDIF() ENDFUNCTION() @@ -364,17 +505,6 @@ ELSE() ADD_LIBRARY(${NAME} INTERFACE) KOKKOS_INTERNAL_ADD_LIBRARY_INSTALL(${NAME}) - - INSTALL( - FILES ${PARSE_HEADERS} - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - ) - - INSTALL( - FILES ${PARSE_HEADERS} - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - COMPONENT ${PACKAGE_NAME} - ) ENDIF() ENDFUNCTION() diff --git a/packages/kokkos/cmake/tpls/FindTPLCUSPARSE.cmake b/packages/kokkos/cmake/tpls/FindTPLCUSPARSE.cmake index a59868b73..1ae4f19dd 100644 --- a/packages/kokkos/cmake/tpls/FindTPLCUSPARSE.cmake +++ b/packages/kokkos/cmake/tpls/FindTPLCUSPARSE.cmake @@ -1,14 +1,16 @@ # @HEADER # ************************************************************************ # -# Trilinos: An Object-Oriented Solver Framework -# Copyright (2001) Sandia Corporation +# Kokkos v. 3.0 +# Copyright (2020) 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. # -# Copyright (2001) Sandia Corporation. Under the terms of Contract -# DE-AC04-94AL85000, there is a non-exclusive license for use of this -# work by or on behalf of the U.S. Government. Export of this program -# may require a license from the United States Government. +# 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. @@ -21,10 +23,10 @@ # contributors may be used to endorse or promote products derived from # this software without specific prior written permission. # -# THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +# THIS SOFTWARE IS PROVIDED BY NTESS "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 SANDIA CORPORATION OR THE +# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE # 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 @@ -33,22 +35,7 @@ # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # -# NOTICE: The United States Government is granted for itself and others -# acting on its behalf a paid-up, nonexclusive, irrevocable worldwide -# license in this data to reproduce, prepare derivative works, and -# perform publicly and display publicly. Beginning five (5) years from -# July 25, 2001, the United States Government is granted for itself and -# others acting on its behalf a paid-up, nonexclusive, irrevocable -# worldwide license in this data to reproduce, prepare derivative works, -# distribute copies to the public, perform publicly and display -# publicly, and to permit others to do so. -# -# NEITHER THE UNITED STATES GOVERNMENT, NOR THE UNITED STATES DEPARTMENT -# OF ENERGY, NOR SANDIA CORPORATION, NOR ANY OF THEIR EMPLOYEES, MAKES -# ANY WARRANTY, EXPRESS OR IMPLIED, OR ASSUMES ANY LEGAL LIABILITY OR -# RESPONSIBILITY FOR THE ACCURACY, COMPLETENESS, OR USEFULNESS OF ANY -# INFORMATION, APPARATUS, PRODUCT, OR PROCESS DISCLOSED, OR REPRESENTS -# THAT ITS USE WOULD NOT INFRINGE PRIVATELY OWNED RIGHTS. +# Questions? Contact Christian R. Trott (crtrott@sandia.gov) # # ************************************************************************ # @HEADER diff --git a/packages/kokkos/cmake/tpls/FindTPLHWLOC.cmake b/packages/kokkos/cmake/tpls/FindTPLHWLOC.cmake index a4c55e1d7..467635083 100644 --- a/packages/kokkos/cmake/tpls/FindTPLHWLOC.cmake +++ b/packages/kokkos/cmake/tpls/FindTPLHWLOC.cmake @@ -1,14 +1,16 @@ # @HEADER # ************************************************************************ # -# Trilinos: An Object-Oriented Solver Framework -# Copyright (2001) Sandia Corporation +# Kokkos v. 3.0 +# Copyright (2020) 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. # -# Copyright (2001) Sandia Corporation. Under the terms of Contract -# DE-AC04-94AL85000, there is a non-exclusive license for use of this -# work by or on behalf of the U.S. Government. Export of this program -# may require a license from the United States Government. +# 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. @@ -21,10 +23,10 @@ # contributors may be used to endorse or promote products derived from # this software without specific prior written permission. # -# THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +# THIS SOFTWARE IS PROVIDED BY NTESS "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 SANDIA CORPORATION OR THE +# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE # 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 @@ -33,22 +35,7 @@ # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # -# NOTICE: The United States Government is granted for itself and others -# acting on its behalf a paid-up, nonexclusive, irrevocable worldwide -# license in this data to reproduce, prepare derivative works, and -# perform publicly and display publicly. Beginning five (5) years from -# July 25, 2001, the United States Government is granted for itself and -# others acting on its behalf a paid-up, nonexclusive, irrevocable -# worldwide license in this data to reproduce, prepare derivative works, -# distribute copies to the public, perform publicly and display -# publicly, and to permit others to do so. -# -# NEITHER THE UNITED STATES GOVERNMENT, NOR THE UNITED STATES DEPARTMENT -# OF ENERGY, NOR SANDIA CORPORATION, NOR ANY OF THEIR EMPLOYEES, MAKES -# ANY WARRANTY, EXPRESS OR IMPLIED, OR ASSUMES ANY LEGAL LIABILITY OR -# RESPONSIBILITY FOR THE ACCURACY, COMPLETENESS, OR USEFULNESS OF ANY -# INFORMATION, APPARATUS, PRODUCT, OR PROCESS DISCLOSED, OR REPRESENTS -# THAT ITS USE WOULD NOT INFRINGE PRIVATELY OWNED RIGHTS. +# Questions? Contact Christian R. Trott (crtrott@sandia.gov) # # ************************************************************************ # @HEADER diff --git a/packages/kokkos/cmake/tpls/FindTPLPthread.cmake b/packages/kokkos/cmake/tpls/FindTPLPthread.cmake index 4dc1a87e1..c78630b7f 100644 --- a/packages/kokkos/cmake/tpls/FindTPLPthread.cmake +++ b/packages/kokkos/cmake/tpls/FindTPLPthread.cmake @@ -1,14 +1,16 @@ # @HEADER # ************************************************************************ # -# Trilinos: An Object-Oriented Solver Framework -# Copyright (2001) Sandia Corporation +# Kokkos v. 3.0 +# Copyright (2020) 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. # -# Copyright (2001) Sandia Corporation. Under the terms of Contract -# DE-AC04-94AL85000, there is a non-exclusive license for use of this -# work by or on behalf of the U.S. Government. Export of this program -# may require a license from the United States Government. +# 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. @@ -21,10 +23,10 @@ # contributors may be used to endorse or promote products derived from # this software without specific prior written permission. # -# THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +# THIS SOFTWARE IS PROVIDED BY NTESS "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 SANDIA CORPORATION OR THE +# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE # 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 @@ -33,22 +35,7 @@ # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # -# NOTICE: The United States Government is granted for itself and others -# acting on its behalf a paid-up, nonexclusive, irrevocable worldwide -# license in this data to reproduce, prepare derivative works, and -# perform publicly and display publicly. Beginning five (5) years from -# July 25, 2001, the United States Government is granted for itself and -# others acting on its behalf a paid-up, nonexclusive, irrevocable -# worldwide license in this data to reproduce, prepare derivative works, -# distribute copies to the public, perform publicly and display -# publicly, and to permit others to do so. -# -# NEITHER THE UNITED STATES GOVERNMENT, NOR THE UNITED STATES DEPARTMENT -# OF ENERGY, NOR SANDIA CORPORATION, NOR ANY OF THEIR EMPLOYEES, MAKES -# ANY WARRANTY, EXPRESS OR IMPLIED, OR ASSUMES ANY LEGAL LIABILITY OR -# RESPONSIBILITY FOR THE ACCURACY, COMPLETENESS, OR USEFULNESS OF ANY -# INFORMATION, APPARATUS, PRODUCT, OR PROCESS DISCLOSED, OR REPRESENTS -# THAT ITS USE WOULD NOT INFRINGE PRIVATELY OWNED RIGHTS. +# Questions? Contact Christian R. Trott (crtrott@sandia.gov) # # ************************************************************************ # @HEADER diff --git a/packages/kokkos/config/yaml/volta.yaml b/packages/kokkos/config/yaml/volta.yaml new file mode 100644 index 000000000..f67af9c2a --- /dev/null +++ b/packages/kokkos/config/yaml/volta.yaml @@ -0,0 +1,4 @@ +packages: + kokkos: + variants: +cuda +openmp +volta70 +cuda_lambda +wrapper ^cuda@10.1 + compiler: [gcc@7.2.0] diff --git a/packages/kokkos/containers/CMakeLists.txt b/packages/kokkos/containers/CMakeLists.txt index 2bfaea7a1..b0e0c4ead 100644 --- a/packages/kokkos/containers/CMakeLists.txt +++ b/packages/kokkos/containers/CMakeLists.txt @@ -2,7 +2,9 @@ KOKKOS_SUBPACKAGE(Containers) -ADD_SUBDIRECTORY(src) +IF (NOT Kokkos_INSTALL_TESTING) + ADD_SUBDIRECTORY(src) +ENDIF() KOKKOS_ADD_TEST_DIRECTORIES(unit_tests) KOKKOS_ADD_TEST_DIRECTORIES(performance_tests) diff --git a/packages/kokkos/containers/performance_tests/CMakeLists.txt b/packages/kokkos/containers/performance_tests/CMakeLists.txt index 1011cb8fd..43c66c24f 100644 --- a/packages/kokkos/containers/performance_tests/CMakeLists.txt +++ b/packages/kokkos/containers/performance_tests/CMakeLists.txt @@ -3,44 +3,26 @@ KOKKOS_INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) KOKKOS_INCLUDE_DIRECTORIES(REQUIRED_DURING_INSTALLATION_TESTING ${CMAKE_CURRENT_SOURCE_DIR}) KOKKOS_INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../src ) -IF(Kokkos_ENABLE_CUDA) - SET(SOURCES - TestMain.cpp - TestCuda.cpp - ) +foreach(Tag Threads;OpenMP;Cuda;HPX;HIP) + # Because there is always an exception to the rule + if(Tag STREQUAL "Threads") + set(DEVICE "PTHREAD") + else() + string(TOUPPER ${Tag} DEVICE) + endif() + string(TOLOWER ${Tag} dir) - KOKKOS_ADD_EXECUTABLE_AND_TEST( PerformanceTest_Cuda - SOURCES ${SOURCES} - ) -ENDIF() + if(Kokkos_ENABLE_${DEVICE}) + message(STATUS "Sources Test${Tag}.cpp") -IF(Kokkos_ENABLE_PTHREAD) - SET(SOURCES - TestMain.cpp - TestThreads.cpp - ) - KOKKOS_ADD_EXECUTABLE_AND_TEST( PerformanceTest_Threads - SOURCES ${SOURCES} - ) -ENDIF() - -IF(Kokkos_ENABLE_OPENMP) - SET(SOURCES - TestMain.cpp - TestOpenMP.cpp - ) - KOKKOS_ADD_EXECUTABLE_AND_TEST( PerformanceTest_OpenMP - SOURCES ${SOURCES} - ) -ENDIF() - -IF(Kokkos_ENABLE_HPX) - SET(SOURCES - TestMain.cpp - TestHPX.cpp - ) - KOKKOS_ADD_EXECUTABLE_AND_TEST( PerformanceTest_HPX - SOURCES ${SOURCES} - ) -ENDIF() + set(SOURCES + TestMain.cpp + Test${Tag}.cpp + ) + KOKKOS_ADD_EXECUTABLE_AND_TEST( + PerformanceTest_${Tag} + SOURCES ${SOURCES} + ) + endif() +endforeach() diff --git a/packages/kokkos/containers/performance_tests/Makefile b/packages/kokkos/containers/performance_tests/Makefile index f309a220d..cbb849079 100644 --- a/packages/kokkos/containers/performance_tests/Makefile +++ b/packages/kokkos/containers/performance_tests/Makefile @@ -31,10 +31,10 @@ ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1) TEST_TARGETS += test-cuda endif -ifeq ($(KOKKOS_INTERNAL_USE_ROCM), 1) - OBJ_ROCM = TestROCm.o TestMain.o gtest-all.o - TARGETS += KokkosContainers_PerformanceTest_ROCm - TEST_TARGETS += test-rocm +ifeq ($(KOKKOS_INTERNAL_USE_HIP), 1) + OBJ_HIP = TestHIP.o TestMain.o gtest-all.o + TARGETS += KokkosContainers_PerformanceTest_HIP + TEST_TARGETS += test-hip endif ifeq ($(KOKKOS_INTERNAL_USE_PTHREADS), 1) @@ -58,8 +58,8 @@ endif KokkosContainers_PerformanceTest_Cuda: $(OBJ_CUDA) $(KOKKOS_LINK_DEPENDS) $(LINK) $(KOKKOS_LDFLAGS) $(LDFLAGS) $(EXTRA_PATH) $(OBJ_CUDA) $(KOKKOS_LIBS) $(LIB) -o KokkosContainers_PerformanceTest_Cuda -KokkosContainers_PerformanceTest_ROCm: $(OBJ_ROCM) $(KOKKOS_LINK_DEPENDS) - $(LINK) $(KOKKOS_LDFLAGS) $(LDFLAGS) $(EXTRA_PATH) $(OBJ_ROCM) $(KOKKOS_LIBS) $(LIB) -o KokkosContainers_PerformanceTest_ROCm +KokkosContainers_PerformanceTest_HIP: $(OBJ_HIP) $(KOKKOS_LINK_DEPENDS) + $(LINK) $(KOKKOS_LDFLAGS) $(LDFLAGS) $(EXTRA_PATH) $(OBJ_HIP) $(KOKKOS_LIBS) $(LIB) -o KokkosContainers_PerformanceTest_HIP KokkosContainers_PerformanceTest_Threads: $(OBJ_THREADS) $(KOKKOS_LINK_DEPENDS) $(LINK) $(KOKKOS_LDFLAGS) $(LDFLAGS) $(EXTRA_PATH) $(OBJ_THREADS) $(KOKKOS_LIBS) $(LIB) -o KokkosContainers_PerformanceTest_Threads @@ -73,8 +73,8 @@ KokkosContainers_PerformanceTest_HPX: $(OBJ_HPX) $(KOKKOS_LINK_DEPENDS) test-cuda: KokkosContainers_PerformanceTest_Cuda ./KokkosContainers_PerformanceTest_Cuda -test-rocm: KokkosContainers_PerformanceTest_ROCm - ./KokkosContainers_PerformanceTest_ROCm +test-hip: KokkosContainers_PerformanceTest_HIP + ./KokkosContainers_PerformanceTest_HIP test-threads: KokkosContainers_PerformanceTest_Threads ./KokkosContainers_PerformanceTest_Threads diff --git a/packages/kokkos/containers/performance_tests/TestCuda.cpp b/packages/kokkos/containers/performance_tests/TestCuda.cpp index 697a006c3..8874590e2 100644 --- a/packages/kokkos/containers/performance_tests/TestCuda.cpp +++ b/packages/kokkos/containers/performance_tests/TestCuda.cpp @@ -43,7 +43,6 @@ */ #include <Kokkos_Macros.hpp> -#if defined(KOKKOS_ENABLE_CUDA) #include <cstdint> #include <string> @@ -66,23 +65,13 @@ namespace Performance { -class cuda : public ::testing::Test { - protected: - static void SetUpTestCase() { - std::cout << std::setprecision(5) << std::scientific; - Kokkos::InitArguments args(-1, -1, 0); - Kokkos::initialize(args); - } - static void TearDownTestCase() { Kokkos::finalize(); } -}; - -TEST_F(cuda, dynrankview_perf) { +TEST(TEST_CATEGORY, dynrankview_perf) { std::cout << "Cuda" << std::endl; std::cout << " DynRankView vs View: Initialization Only " << std::endl; test_dynrankview_op_perf<Kokkos::Cuda>(40960); } -TEST_F(cuda, global_2_local) { +TEST(TEST_CATEGORY, global_2_local) { std::cout << "Cuda" << std::endl; std::cout << "size, create, generate, fill, find" << std::endl; for (unsigned i = Performance::begin_id_size; i <= Performance::end_id_size; @@ -90,15 +79,12 @@ TEST_F(cuda, global_2_local) { test_global_to_local_ids<Kokkos::Cuda>(i); } -TEST_F(cuda, unordered_map_performance_near) { +TEST(TEST_CATEGORY, unordered_map_performance_near) { Perf::run_performance_tests<Kokkos::Cuda, true>("cuda-near"); } -TEST_F(cuda, unordered_map_performance_far) { +TEST(TEST_CATEGORY, unordered_map_performance_far) { Perf::run_performance_tests<Kokkos::Cuda, false>("cuda-far"); } } // namespace Performance -#else -void KOKKOS_CONTAINERS_PERFORMANCE_TESTS_TESTCUDA_PREVENT_EMPTY_LINK_ERROR() {} -#endif /* #if defined( KOKKOS_ENABLE_CUDA ) */ diff --git a/packages/kokkos/containers/performance_tests/TestDynRankView.hpp b/packages/kokkos/containers/performance_tests/TestDynRankView.hpp index ee13f7e58..8c507c766 100644 --- a/packages/kokkos/containers/performance_tests/TestDynRankView.hpp +++ b/packages/kokkos/containers/performance_tests/TestDynRankView.hpp @@ -58,7 +58,7 @@ namespace Performance { // View functor template <typename DeviceType> struct InitViewFunctor { - typedef Kokkos::View<double ***, DeviceType> inviewtype; + using inviewtype = Kokkos::View<double ***, DeviceType>; inviewtype _inview; InitViewFunctor(inviewtype &inview_) : _inview(inview_) {} @@ -73,10 +73,10 @@ struct InitViewFunctor { } struct SumComputationTest { - typedef Kokkos::View<double ***, DeviceType> inviewtype; + using inviewtype = Kokkos::View<double ***, DeviceType>; inviewtype _inview; - typedef Kokkos::View<double *, DeviceType> outviewtype; + using outviewtype = Kokkos::View<double *, DeviceType>; outviewtype _outview; KOKKOS_INLINE_FUNCTION @@ -96,7 +96,7 @@ struct InitViewFunctor { template <typename DeviceType> struct InitStrideViewFunctor { - typedef Kokkos::View<double ***, Kokkos::LayoutStride, DeviceType> inviewtype; + using inviewtype = Kokkos::View<double ***, Kokkos::LayoutStride, DeviceType>; inviewtype _inview; InitStrideViewFunctor(inviewtype &inview_) : _inview(inview_) {} @@ -113,7 +113,7 @@ struct InitStrideViewFunctor { template <typename DeviceType> struct InitViewRank7Functor { - typedef Kokkos::View<double *******, DeviceType> inviewtype; + using inviewtype = Kokkos::View<double *******, DeviceType>; inviewtype _inview; InitViewRank7Functor(inviewtype &inview_) : _inview(inview_) {} @@ -131,7 +131,7 @@ struct InitViewRank7Functor { // DynRankView functor template <typename DeviceType> struct InitDynRankViewFunctor { - typedef Kokkos::DynRankView<double, DeviceType> inviewtype; + using inviewtype = Kokkos::DynRankView<double, DeviceType>; inviewtype _inview; InitDynRankViewFunctor(inviewtype &inview_) : _inview(inview_) {} @@ -146,10 +146,10 @@ struct InitDynRankViewFunctor { } struct SumComputationTest { - typedef Kokkos::DynRankView<double, DeviceType> inviewtype; + using inviewtype = Kokkos::DynRankView<double, DeviceType>; inviewtype _inview; - typedef Kokkos::DynRankView<double, DeviceType> outviewtype; + using outviewtype = Kokkos::DynRankView<double, DeviceType>; outviewtype _outview; KOKKOS_INLINE_FUNCTION @@ -169,8 +169,8 @@ struct InitDynRankViewFunctor { template <typename DeviceType> void test_dynrankview_op_perf(const int par_size) { - typedef DeviceType execution_space; - typedef typename execution_space::size_type size_type; + using execution_space = DeviceType; + using size_type = typename execution_space::size_type; const size_type dim_2 = 90; const size_type dim_3 = 30; @@ -184,7 +184,7 @@ void test_dynrankview_op_perf(const int par_size) { { Kokkos::View<double ***, DeviceType> testview("testview", par_size, dim_2, dim_3); - typedef InitViewFunctor<DeviceType> FunctorType; + using FunctorType = InitViewFunctor<DeviceType>; timer.reset(); Kokkos::RangePolicy<DeviceType> policy(0, par_size); @@ -204,7 +204,7 @@ void test_dynrankview_op_perf(const int par_size) { Kokkos::View<double ***, Kokkos::LayoutStride, DeviceType> teststrideview = Kokkos::subview(testview, Kokkos::ALL, Kokkos::ALL, Kokkos::ALL); - typedef InitStrideViewFunctor<DeviceType> FunctorStrideType; + using FunctorStrideType = InitStrideViewFunctor<DeviceType>; timer.reset(); Kokkos::parallel_for(policy, FunctorStrideType(teststrideview)); @@ -216,7 +216,7 @@ void test_dynrankview_op_perf(const int par_size) { { Kokkos::View<double *******, DeviceType> testview("testview", par_size, dim_2, dim_3, 1, 1, 1, 1); - typedef InitViewRank7Functor<DeviceType> FunctorType; + using FunctorType = InitViewRank7Functor<DeviceType>; timer.reset(); Kokkos::RangePolicy<DeviceType> policy(0, par_size); @@ -229,7 +229,7 @@ void test_dynrankview_op_perf(const int par_size) { { Kokkos::DynRankView<double, DeviceType> testdrview("testdrview", par_size, dim_2, dim_3); - typedef InitDynRankViewFunctor<DeviceType> FunctorType; + using FunctorType = InitDynRankViewFunctor<DeviceType>; timer.reset(); Kokkos::RangePolicy<DeviceType> policy(0, par_size); diff --git a/packages/kokkos/containers/performance_tests/TestGlobal2LocalIds.hpp b/packages/kokkos/containers/performance_tests/TestGlobal2LocalIds.hpp index 0d2ee4bc8..65de551b2 100644 --- a/packages/kokkos/containers/performance_tests/TestGlobal2LocalIds.hpp +++ b/packages/kokkos/containers/performance_tests/TestGlobal2LocalIds.hpp @@ -65,9 +65,9 @@ union helper { template <typename Device> struct generate_ids { - typedef Device execution_space; - typedef typename execution_space::size_type size_type; - typedef Kokkos::View<uint32_t*, execution_space> local_id_view; + using execution_space = Device; + using size_type = typename execution_space::size_type; + using local_id_view = Kokkos::View<uint32_t*, execution_space>; local_id_view local_2_global; @@ -96,13 +96,12 @@ struct generate_ids { template <typename Device> struct fill_map { - typedef Device execution_space; - typedef typename execution_space::size_type size_type; - typedef Kokkos::View<const uint32_t*, execution_space, - Kokkos::MemoryRandomAccess> - local_id_view; - typedef Kokkos::UnorderedMap<uint32_t, size_type, execution_space> - global_id_view; + using execution_space = Device; + using size_type = typename execution_space::size_type; + using local_id_view = Kokkos::View<const uint32_t*, execution_space, + Kokkos::MemoryRandomAccess>; + using global_id_view = + Kokkos::UnorderedMap<uint32_t, size_type, execution_space>; global_id_view global_2_local; local_id_view local_2_global; @@ -120,18 +119,17 @@ struct fill_map { template <typename Device> struct find_test { - typedef Device execution_space; - typedef typename execution_space::size_type size_type; - typedef Kokkos::View<const uint32_t*, execution_space, - Kokkos::MemoryRandomAccess> - local_id_view; - typedef Kokkos::UnorderedMap<const uint32_t, const size_type, execution_space> - global_id_view; + using execution_space = Device; + using size_type = typename execution_space::size_type; + using local_id_view = Kokkos::View<const uint32_t*, execution_space, + Kokkos::MemoryRandomAccess>; + using global_id_view = + Kokkos::UnorderedMap<const uint32_t, const size_type, execution_space>; global_id_view global_2_local; local_id_view local_2_global; - typedef size_t value_type; + using value_type = size_t; find_test(global_id_view gIds, local_id_view lIds, value_type& num_errors) : global_2_local(gIds), local_2_global(lIds) { @@ -156,12 +154,12 @@ struct find_test { template <typename Device> void test_global_to_local_ids(unsigned num_ids) { - typedef Device execution_space; - typedef typename execution_space::size_type size_type; + using execution_space = Device; + using size_type = typename execution_space::size_type; - typedef Kokkos::View<uint32_t*, execution_space> local_id_view; - typedef Kokkos::UnorderedMap<uint32_t, size_type, execution_space> - global_id_view; + using local_id_view = Kokkos::View<uint32_t*, execution_space>; + using global_id_view = + Kokkos::UnorderedMap<uint32_t, size_type, execution_space>; // size std::cout << num_ids << ", "; diff --git a/packages/kokkos/containers/performance_tests/TestROCm.cpp b/packages/kokkos/containers/performance_tests/TestHIP.cpp similarity index 67% rename from packages/kokkos/containers/performance_tests/TestROCm.cpp rename to packages/kokkos/containers/performance_tests/TestHIP.cpp index 55b770b49..8033c76be 100644 --- a/packages/kokkos/containers/performance_tests/TestROCm.cpp +++ b/packages/kokkos/containers/performance_tests/TestHIP.cpp @@ -43,7 +43,6 @@ */ #include <Kokkos_Macros.hpp> -#if defined(KOKKOS_ENABLE_ROCM) #include <cstdint> #include <string> @@ -66,46 +65,26 @@ namespace Performance { -class rocm : public ::testing::Test { - protected: - static void SetUpTestCase() { - std::cout << std::setprecision(5) << std::scientific; - Kokkos::HostSpace::execution_space::initialize(); - Kokkos::Experimental::ROCm::initialize( - Kokkos::Experimental::ROCm::SelectDevice(0)); - } - static void TearDownTestCase() { - Kokkos::Experimental::ROCm::finalize(); - Kokkos::HostSpace::execution_space::finalize(); - } -}; -#if 0 -// issue 1089 -TEST_F( rocm, dynrankview_perf ) -{ - std::cout << "ROCm" << std::endl; +TEST(TEST_CATEGORY, dynrankview_perf) { + std::cout << "HIP" << std::endl; std::cout << " DynRankView vs View: Initialization Only " << std::endl; - test_dynrankview_op_perf<Kokkos::Experimental::ROCm>( 40960 ); + test_dynrankview_op_perf<Kokkos::Experimental::HIP>(40960); } -TEST_F( rocm, global_2_local) -{ - std::cout << "ROCm" << std::endl; +TEST(TEST_CATEGORY, global_2_local) { + std::cout << "HIP" << std::endl; std::cout << "size, create, generate, fill, find" << std::endl; - for (unsigned i=Performance::begin_id_size; i<=Performance::end_id_size; i *= Performance::id_step) - test_global_to_local_ids<Kokkos::Experimental::ROCm>(i); + for (unsigned i = Performance::begin_id_size; i <= Performance::end_id_size; + i *= Performance::id_step) + test_global_to_local_ids<Kokkos::Experimental::HIP>(i); } -#endif -TEST_F(rocm, unordered_map_performance_near) { - Perf::run_performance_tests<Kokkos::Experimental::ROCm, true>("rocm-near"); +TEST(TEST_CATEGORY, unordered_map_performance_near) { + Perf::run_performance_tests<Kokkos::Experimental::HIP, true>("hip-near"); } -TEST_F(rocm, unordered_map_performance_far) { - Perf::run_performance_tests<Kokkos::Experimental::ROCm, false>("rocm-far"); +TEST(TEST_CATEGORY, unordered_map_performance_far) { + Perf::run_performance_tests<Kokkos::Experimental::HIP, false>("hip-far"); } } // namespace Performance -#else -void KOKKOS_CONTAINERS_PERFORMANCE_TESTS_TESTROCM_PREVENT_EMPTY_LINK_ERROR() {} -#endif /* #if defined( KOKKOS_ENABLE_ROCM ) */ diff --git a/packages/kokkos/containers/performance_tests/TestHPX.cpp b/packages/kokkos/containers/performance_tests/TestHPX.cpp index 48be466bf..f229901dc 100644 --- a/packages/kokkos/containers/performance_tests/TestHPX.cpp +++ b/packages/kokkos/containers/performance_tests/TestHPX.cpp @@ -43,7 +43,6 @@ */ #include <Kokkos_Macros.hpp> -#if defined(KOKKOS_ENABLE_HPX) #include <gtest/gtest.h> @@ -64,25 +63,13 @@ namespace Performance { -class hpx : public ::testing::Test { - protected: - static void SetUpTestCase() { - std::cout << std::setprecision(5) << std::scientific; - - Kokkos::initialize(); - Kokkos::print_configuration(std::cout); - } - - static void TearDownTestCase() { Kokkos::finalize(); } -}; - -TEST_F(hpx, dynrankview_perf) { +TEST(TEST_CATEGORY, dynrankview_perf) { std::cout << "HPX" << std::endl; std::cout << " DynRankView vs View: Initialization Only " << std::endl; test_dynrankview_op_perf<Kokkos::Experimental::HPX>(8192); } -TEST_F(hpx, global_2_local) { +TEST(TEST_CATEGORY, global_2_local) { std::cout << "HPX" << std::endl; std::cout << "size, create, generate, fill, find" << std::endl; for (unsigned i = Performance::begin_id_size; i <= Performance::end_id_size; @@ -90,7 +77,7 @@ TEST_F(hpx, global_2_local) { test_global_to_local_ids<Kokkos::Experimental::HPX>(i); } -TEST_F(hpx, unordered_map_performance_near) { +TEST(TEST_CATEGORY, unordered_map_performance_near) { unsigned num_hpx = 4; std::ostringstream base_file_name; base_file_name << "hpx-" << num_hpx << "-near"; @@ -98,7 +85,7 @@ TEST_F(hpx, unordered_map_performance_near) { base_file_name.str()); } -TEST_F(hpx, unordered_map_performance_far) { +TEST(TEST_CATEGORY, unordered_map_performance_far) { unsigned num_hpx = 4; std::ostringstream base_file_name; base_file_name << "hpx-" << num_hpx << "-far"; @@ -106,7 +93,7 @@ TEST_F(hpx, unordered_map_performance_far) { base_file_name.str()); } -TEST_F(hpx, scatter_view) { +TEST(TEST_CATEGORY, scatter_view) { std::cout << "ScatterView data-duplicated test:\n"; Perf::test_scatter_view<Kokkos::Experimental::HPX, Kokkos::LayoutRight, Kokkos::Experimental::ScatterDuplicated, @@ -119,6 +106,3 @@ TEST_F(hpx, scatter_view) { } } // namespace Performance -#else -void KOKKOS_CONTAINERS_PERFORMANCE_TESTS_TESTHPX_PREVENT_EMPTY_LINK_ERROR() {} -#endif diff --git a/packages/kokkos/containers/performance_tests/TestMain.cpp b/packages/kokkos/containers/performance_tests/TestMain.cpp index e3c8edb04..140ba418f 100644 --- a/packages/kokkos/containers/performance_tests/TestMain.cpp +++ b/packages/kokkos/containers/performance_tests/TestMain.cpp @@ -45,9 +45,13 @@ #include <gtest/gtest.h> #include <cstdlib> -#include <Kokkos_Macros.hpp> +#include <Kokkos_Core.hpp> int main(int argc, char *argv[]) { + Kokkos::initialize(argc, argv); ::testing::InitGoogleTest(&argc, argv); - return RUN_ALL_TESTS(); + + int result = RUN_ALL_TESTS(); + Kokkos::finalize(); + return result; } diff --git a/packages/kokkos/containers/performance_tests/TestOpenMP.cpp b/packages/kokkos/containers/performance_tests/TestOpenMP.cpp index a9c8639ed..f414b0d82 100644 --- a/packages/kokkos/containers/performance_tests/TestOpenMP.cpp +++ b/packages/kokkos/containers/performance_tests/TestOpenMP.cpp @@ -43,7 +43,6 @@ */ #include <Kokkos_Macros.hpp> -#if defined(KOKKOS_ENABLE_OPENMP) #include <gtest/gtest.h> @@ -64,25 +63,13 @@ namespace Performance { -class openmp : public ::testing::Test { - protected: - static void SetUpTestCase() { - std::cout << std::setprecision(5) << std::scientific; - - Kokkos::initialize(); - Kokkos::OpenMP::print_configuration(std::cout); - } - - static void TearDownTestCase() { Kokkos::finalize(); } -}; - -TEST_F(openmp, dynrankview_perf) { +TEST(TEST_CATEGORY, dynrankview_perf) { std::cout << "OpenMP" << std::endl; std::cout << " DynRankView vs View: Initialization Only " << std::endl; test_dynrankview_op_perf<Kokkos::OpenMP>(8192); } -TEST_F(openmp, global_2_local) { +TEST(TEST_CATEGORY, global_2_local) { std::cout << "OpenMP" << std::endl; std::cout << "size, create, generate, fill, find" << std::endl; for (unsigned i = Performance::begin_id_size; i <= Performance::end_id_size; @@ -90,7 +77,7 @@ TEST_F(openmp, global_2_local) { test_global_to_local_ids<Kokkos::OpenMP>(i); } -TEST_F(openmp, unordered_map_performance_near) { +TEST(TEST_CATEGORY, unordered_map_performance_near) { unsigned num_openmp = 4; if (Kokkos::hwloc::available()) { num_openmp = Kokkos::hwloc::get_available_numa_count() * @@ -102,7 +89,7 @@ TEST_F(openmp, unordered_map_performance_near) { Perf::run_performance_tests<Kokkos::OpenMP, true>(base_file_name.str()); } -TEST_F(openmp, unordered_map_performance_far) { +TEST(TEST_CATEGORY, unordered_map_performance_far) { unsigned num_openmp = 4; if (Kokkos::hwloc::available()) { num_openmp = Kokkos::hwloc::get_available_numa_count() * @@ -114,7 +101,7 @@ TEST_F(openmp, unordered_map_performance_far) { Perf::run_performance_tests<Kokkos::OpenMP, false>(base_file_name.str()); } -TEST_F(openmp, scatter_view) { +TEST(TEST_CATEGORY, scatter_view) { std::cout << "ScatterView data-duplicated test:\n"; Perf::test_scatter_view<Kokkos::OpenMP, Kokkos::LayoutRight, Kokkos::Experimental::ScatterDuplicated, @@ -127,7 +114,3 @@ TEST_F(openmp, scatter_view) { } } // namespace Performance -#else -void KOKKOS_CONTAINERS_PERFORMANCE_TESTS_TESTOPENMP_PREVENT_EMPTY_LINK_ERROR() { -} -#endif diff --git a/packages/kokkos/containers/performance_tests/TestScatterView.hpp b/packages/kokkos/containers/performance_tests/TestScatterView.hpp index 3d4c57f3e..0f3ba103e 100644 --- a/packages/kokkos/containers/performance_tests/TestScatterView.hpp +++ b/packages/kokkos/containers/performance_tests/TestScatterView.hpp @@ -50,14 +50,14 @@ namespace Perf { -template <typename ExecSpace, typename Layout, int duplication, - int contribution> +template <typename ExecSpace, typename Layout, typename Duplication, + typename Contribution> void test_scatter_view(int m, int n) { Kokkos::View<double * [3], Layout, ExecSpace> original_view("original_view", n); { auto scatter_view = Kokkos::Experimental::create_scatter_view< - Kokkos::Experimental::ScatterSum, duplication, contribution>( + Kokkos::Experimental::ScatterSum, Duplication, Contribution>( original_view); Kokkos::Experimental::UniqueToken< ExecSpace, Kokkos::Experimental::UniqueTokenScope::Global> diff --git a/packages/kokkos/containers/performance_tests/TestThreads.cpp b/packages/kokkos/containers/performance_tests/TestThreads.cpp index 2f3740453..72bef1a3a 100644 --- a/packages/kokkos/containers/performance_tests/TestThreads.cpp +++ b/packages/kokkos/containers/performance_tests/TestThreads.cpp @@ -43,7 +43,6 @@ */ #include <Kokkos_Macros.hpp> -#if defined(KOKKOS_ENABLE_THREADS) #include <gtest/gtest.h> @@ -65,34 +64,13 @@ namespace Performance { -class threads : public ::testing::Test { - protected: - static void SetUpTestCase() { - std::cout << std::setprecision(5) << std::scientific; - - unsigned num_threads = 4; - - if (Kokkos::hwloc::available()) { - num_threads = Kokkos::hwloc::get_available_numa_count() * - Kokkos::hwloc::get_available_cores_per_numa() * - Kokkos::hwloc::get_available_threads_per_core(); - } - - std::cout << "Threads: " << num_threads << std::endl; - - Kokkos::initialize(Kokkos::InitArguments(num_threads)); - } - - static void TearDownTestCase() { Kokkos::finalize(); } -}; - -TEST_F(threads, dynrankview_perf) { +TEST(threads, dynrankview_perf) { std::cout << "Threads" << std::endl; std::cout << " DynRankView vs View: Initialization Only " << std::endl; test_dynrankview_op_perf<Kokkos::Threads>(8192); } -TEST_F(threads, global_2_local) { +TEST(threads, global_2_local) { std::cout << "Threads" << std::endl; std::cout << "size, create, generate, fill, find" << std::endl; for (unsigned i = Performance::begin_id_size; i <= Performance::end_id_size; @@ -100,7 +78,7 @@ TEST_F(threads, global_2_local) { test_global_to_local_ids<Kokkos::Threads>(i); } -TEST_F(threads, unordered_map_performance_near) { +TEST(threads, unordered_map_performance_near) { unsigned num_threads = 4; if (Kokkos::hwloc::available()) { num_threads = Kokkos::hwloc::get_available_numa_count() * @@ -112,7 +90,7 @@ TEST_F(threads, unordered_map_performance_near) { Perf::run_performance_tests<Kokkos::Threads, true>(base_file_name.str()); } -TEST_F(threads, unordered_map_performance_far) { +TEST(threads, unordered_map_performance_far) { unsigned num_threads = 4; if (Kokkos::hwloc::available()) { num_threads = Kokkos::hwloc::get_available_numa_count() * @@ -125,8 +103,3 @@ TEST_F(threads, unordered_map_performance_far) { } } // namespace Performance - -#else -void KOKKOS_CONTAINERS_PERFORMANCE_TESTS_TESTTHREADS_PREVENT_EMPTY_LINK_ERROR() { -} -#endif diff --git a/packages/kokkos/containers/performance_tests/TestUnorderedMapPerformance.hpp b/packages/kokkos/containers/performance_tests/TestUnorderedMapPerformance.hpp index 905784234..c31412552 100644 --- a/packages/kokkos/containers/performance_tests/TestUnorderedMapPerformance.hpp +++ b/packages/kokkos/containers/performance_tests/TestUnorderedMapPerformance.hpp @@ -55,9 +55,9 @@ namespace Perf { template <typename Device, bool Near> struct UnorderedMapTest { - typedef Device execution_space; - typedef Kokkos::UnorderedMap<uint32_t, uint32_t, execution_space> map_type; - typedef typename map_type::histogram_type histogram_type; + using execution_space = Device; + using map_type = Kokkos::UnorderedMap<uint32_t, uint32_t, execution_space>; + using histogram_type = typename map_type::histogram_type; struct value_type { uint32_t failed_count; diff --git a/packages/kokkos/containers/src/CMakeLists.txt b/packages/kokkos/containers/src/CMakeLists.txt index 0c9d24d64..7000624b6 100644 --- a/packages/kokkos/containers/src/CMakeLists.txt +++ b/packages/kokkos/containers/src/CMakeLists.txt @@ -9,6 +9,10 @@ KOKKOS_INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) SET(KOKKOS_CONTAINERS_SRCS) APPEND_GLOB(KOKKOS_CONTAINERS_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/impl/*.cpp) +SET(KOKKOS_CONTAINER_HEADERS) +APPEND_GLOB(KOKKOS_CONTAINERS_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/impl/*.hpp) +APPEND_GLOB(KOKKOS_CONTAINERS_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/*.hpp) + INSTALL ( DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/" @@ -19,6 +23,7 @@ INSTALL ( KOKKOS_ADD_LIBRARY( kokkoscontainers SOURCES ${KOKKOS_CONTAINERS_SRCS} + HEADERS ${KOKKOS_CONTAINER_HEADERS} ) SET_TARGET_PROPERTIES(kokkoscontainers PROPERTIES VERSION ${Kokkos_VERSION}) diff --git a/packages/kokkos/containers/src/Kokkos_Bitset.hpp b/packages/kokkos/containers/src/Kokkos_Bitset.hpp index ab75fc1e1..ea1d6dde5 100644 --- a/packages/kokkos/containers/src/Kokkos_Bitset.hpp +++ b/packages/kokkos/containers/src/Kokkos_Bitset.hpp @@ -73,8 +73,8 @@ void deep_copy(ConstBitset<DstDevice>& dst, ConstBitset<SrcDevice> const& src); template <typename Device> class Bitset { public: - typedef Device execution_space; - typedef unsigned size_type; + using execution_space = Device; + using size_type = unsigned int; enum { BIT_SCAN_REVERSE = 1u }; enum { MOVE_HINT_BACKWARD = 2u }; @@ -137,9 +137,9 @@ class Bitset { if (m_last_block_mask) { // clear the unused bits in the last block - typedef Kokkos::Impl::DeepCopy<typename execution_space::memory_space, - Kokkos::HostSpace> - raw_deep_copy; + using raw_deep_copy = + Kokkos::Impl::DeepCopy<typename execution_space::memory_space, + Kokkos::HostSpace>; raw_deep_copy(m_blocks.data() + (m_blocks.extent(0) - 1u), &m_last_block_mask, sizeof(unsigned)); } @@ -234,6 +234,10 @@ class Bitset { return find_any_helper(block_idx, offset, block, scan_direction); } + KOKKOS_INLINE_FUNCTION constexpr bool is_allocated() const { + return m_blocks.is_allocated(); + } + private: KOKKOS_FORCEINLINE_FUNCTION Kokkos::pair<bool, unsigned> find_any_helper(unsigned block_idx, @@ -304,8 +308,8 @@ class Bitset { template <typename Device> class ConstBitset { public: - typedef Device execution_space; - typedef unsigned size_type; + using execution_space = Device; + using size_type = unsigned int; private: enum { block_size = static_cast<unsigned>(sizeof(unsigned) * CHAR_BIT) }; @@ -380,9 +384,9 @@ void deep_copy(Bitset<DstDevice>& dst, Bitset<SrcDevice> const& src) { "Error: Cannot deep_copy bitsets of different sizes!"); } - typedef Kokkos::Impl::DeepCopy<typename DstDevice::memory_space, - typename SrcDevice::memory_space> - raw_deep_copy; + using raw_deep_copy = + Kokkos::Impl::DeepCopy<typename DstDevice::memory_space, + typename SrcDevice::memory_space>; raw_deep_copy(dst.m_blocks.data(), src.m_blocks.data(), sizeof(unsigned) * src.m_blocks.extent(0)); } @@ -394,9 +398,9 @@ void deep_copy(Bitset<DstDevice>& dst, ConstBitset<SrcDevice> const& src) { "Error: Cannot deep_copy bitsets of different sizes!"); } - typedef Kokkos::Impl::DeepCopy<typename DstDevice::memory_space, - typename SrcDevice::memory_space> - raw_deep_copy; + using raw_deep_copy = + Kokkos::Impl::DeepCopy<typename DstDevice::memory_space, + typename SrcDevice::memory_space>; raw_deep_copy(dst.m_blocks.data(), src.m_blocks.data(), sizeof(unsigned) * src.m_blocks.extent(0)); } @@ -408,9 +412,9 @@ void deep_copy(ConstBitset<DstDevice>& dst, ConstBitset<SrcDevice> const& src) { "Error: Cannot deep_copy bitsets of different sizes!"); } - typedef Kokkos::Impl::DeepCopy<typename DstDevice::memory_space, - typename SrcDevice::memory_space> - raw_deep_copy; + using raw_deep_copy = + Kokkos::Impl::DeepCopy<typename DstDevice::memory_space, + typename SrcDevice::memory_space>; raw_deep_copy(dst.m_blocks.data(), src.m_blocks.data(), sizeof(unsigned) * src.m_blocks.extent(0)); } diff --git a/packages/kokkos/containers/src/Kokkos_DualView.hpp b/packages/kokkos/containers/src/Kokkos_DualView.hpp index ede7d9a31..689f0eb2e 100644 --- a/packages/kokkos/containers/src/Kokkos_DualView.hpp +++ b/packages/kokkos/containers/src/Kokkos_DualView.hpp @@ -100,99 +100,91 @@ class DualView : public ViewTraits<DataType, Arg1Type, Arg2Type, Arg3Type> { public: //! \name Typedefs for device types and various Kokkos::View specializations. //@{ - typedef ViewTraits<DataType, Arg1Type, Arg2Type, Arg3Type> traits; + using traits = ViewTraits<DataType, Arg1Type, Arg2Type, Arg3Type>; //! The Kokkos Host Device type; - typedef typename traits::host_mirror_space host_mirror_space; + using host_mirror_space = typename traits::host_mirror_space; //! The type of a Kokkos::View on the device. - typedef View<typename traits::data_type, Arg1Type, Arg2Type, Arg3Type> t_dev; + using t_dev = View<typename traits::data_type, Arg1Type, Arg2Type, Arg3Type>; /// \typedef t_host /// \brief The type of a Kokkos::View host mirror of \c t_dev. - typedef typename t_dev::HostMirror t_host; + using t_host = typename t_dev::HostMirror; //! The type of a const View on the device. //! The type of a Kokkos::View on the device. - typedef View<typename traits::const_data_type, Arg1Type, Arg2Type, Arg3Type> - t_dev_const; + using t_dev_const = + View<typename traits::const_data_type, Arg1Type, Arg2Type, Arg3Type>; /// \typedef t_host_const /// \brief The type of a const View host mirror of \c t_dev_const. - typedef typename t_dev_const::HostMirror t_host_const; + using t_host_const = typename t_dev_const::HostMirror; //! The type of a const, random-access View on the device. - typedef View<typename traits::const_data_type, typename traits::array_layout, - typename traits::device_type, - Kokkos::MemoryTraits<Kokkos::RandomAccess> > - t_dev_const_randomread; + using t_dev_const_randomread = + View<typename traits::const_data_type, typename traits::array_layout, + typename traits::device_type, + Kokkos::MemoryTraits<Kokkos::RandomAccess> >; /// \typedef t_host_const_randomread /// \brief The type of a const, random-access View host mirror of /// \c t_dev_const_randomread. - typedef typename t_dev_const_randomread::HostMirror t_host_const_randomread; + using t_host_const_randomread = typename t_dev_const_randomread::HostMirror; //! The type of an unmanaged View on the device. - typedef View<typename traits::data_type, typename traits::array_layout, - typename traits::device_type, MemoryUnmanaged> - t_dev_um; + using t_dev_um = + View<typename traits::data_type, typename traits::array_layout, + typename traits::device_type, MemoryUnmanaged>; //! The type of an unmanaged View host mirror of \c t_dev_um. - typedef View<typename t_host::data_type, typename t_host::array_layout, - typename t_host::device_type, MemoryUnmanaged> - t_host_um; + using t_host_um = + View<typename t_host::data_type, typename t_host::array_layout, + typename t_host::device_type, MemoryUnmanaged>; //! The type of a const unmanaged View on the device. - typedef View<typename traits::const_data_type, typename traits::array_layout, - typename traits::device_type, MemoryUnmanaged> - t_dev_const_um; + using t_dev_const_um = + View<typename traits::const_data_type, typename traits::array_layout, + typename traits::device_type, MemoryUnmanaged>; //! The type of a const unmanaged View host mirror of \c t_dev_const_um. - typedef View<typename t_host::const_data_type, typename t_host::array_layout, - typename t_host::device_type, MemoryUnmanaged> - t_host_const_um; + using t_host_const_um = + View<typename t_host::const_data_type, typename t_host::array_layout, + typename t_host::device_type, MemoryUnmanaged>; //! The type of a const, random-access View on the device. - typedef View<typename t_host::const_data_type, typename t_host::array_layout, - typename t_host::device_type, - Kokkos::MemoryTraits<Kokkos::Unmanaged | Kokkos::RandomAccess> > - t_dev_const_randomread_um; + using t_dev_const_randomread_um = + View<typename t_host::const_data_type, typename t_host::array_layout, + typename t_host::device_type, + Kokkos::MemoryTraits<Kokkos::Unmanaged | Kokkos::RandomAccess> >; /// \typedef t_host_const_randomread /// \brief The type of a const, random-access View host mirror of /// \c t_dev_const_randomread. - typedef - typename t_dev_const_randomread::HostMirror t_host_const_randomread_um; - - //@} - //! \name The two View instances. - //@{ - - t_dev d_view; - t_host h_view; + using t_host_const_randomread_um = + typename t_dev_const_randomread_um::HostMirror; //@} //! \name Counters to keep track of changes ("modified" flags) //@{ -#ifndef KOKKOS_ENABLE_DEPRECATED_CODE protected: // modified_flags[0] -> host // modified_flags[1] -> device - typedef View<unsigned int[2], LayoutLeft, Kokkos::HostSpace> t_modified_flags; + using t_modified_flags = View<unsigned int[2], LayoutLeft, Kokkos::HostSpace>; t_modified_flags modified_flags; public: -#else - typedef View<unsigned int[2], LayoutLeft, typename t_host::execution_space> - t_modified_flags; - typedef View<unsigned int, LayoutLeft, typename t_host::execution_space> - t_modified_flag; - t_modified_flags modified_flags; - t_modified_flag modified_host, modified_device; -#endif + //@} + // Moved this specifically after modified_flags to resolve an alignment issue + // on MSVC/NVCC + //! \name The two View instances. + //@{ + t_dev d_view; + t_host h_view; //@} + //! \name Constructors //@{ @@ -201,14 +193,7 @@ class DualView : public ViewTraits<DataType, Arg1Type, Arg2Type, Arg3Type> { /// Both device and host View objects are constructed using their /// default constructors. The "modified" flags are both initialized /// to "unmodified." -#ifndef KOKKOS_ENABLE_DEPRECATED_CODE DualView() = default; -#else - DualView() : modified_flags(t_modified_flags("DualView::modified_flags")) { - modified_host = t_modified_flag(modified_flags, 0); - modified_device = t_modified_flag(modified_flags, 1); - } -#endif /// \brief Constructor that allocates View objects on both host and device. /// @@ -228,15 +213,10 @@ class DualView : public ViewTraits<DataType, Arg1Type, Arg2Type, Arg3Type> { const size_t n5 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, const size_t n6 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, const size_t n7 = KOKKOS_IMPL_CTOR_DEFAULT_ARG) - : d_view(label, n0, n1, n2, n3, n4, n5, n6, n7), + : modified_flags(t_modified_flags("DualView::modified_flags")), + d_view(label, n0, n1, n2, n3, n4, n5, n6, n7), h_view(create_mirror_view(d_view)) // without UVM, host View mirrors - , - modified_flags(t_modified_flags("DualView::modified_flags")) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - modified_host = t_modified_flag(modified_flags, 0); - modified_device = t_modified_flag(modified_flags, 1); -#endif - } + {} /// \brief Constructor that allocates View objects on both host and device. /// @@ -260,58 +240,24 @@ class DualView : public ViewTraits<DataType, Arg1Type, Arg2Type, Arg3Type> { const size_t n5 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, const size_t n6 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, const size_t n7 = KOKKOS_IMPL_CTOR_DEFAULT_ARG) - : d_view(arg_prop, n0, n1, n2, n3, n4, n5, n6, n7), + : modified_flags(t_modified_flags("DualView::modified_flags")), + d_view(arg_prop, n0, n1, n2, n3, n4, n5, n6, n7), h_view(create_mirror_view(d_view)) // without UVM, host View mirrors - , - modified_flags(t_modified_flags("DualView::modified_flags")) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - modified_host = t_modified_flag(modified_flags, 0); - modified_device = t_modified_flag(modified_flags, 1); -#endif - } - - explicit inline DualView(const ViewAllocateWithoutInitializing& arg_prop, - const size_t arg_N0 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, - const size_t arg_N1 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, - const size_t arg_N2 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, - const size_t arg_N3 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, - const size_t arg_N4 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, - const size_t arg_N5 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, - const size_t arg_N6 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, - const size_t arg_N7 = KOKKOS_IMPL_CTOR_DEFAULT_ARG) - : DualView(Impl::ViewCtorProp<std::string, - Kokkos::Impl::WithoutInitializing_t>( - arg_prop.label, Kokkos::WithoutInitializing), - arg_N0, arg_N1, arg_N2, arg_N3, arg_N4, arg_N5, arg_N6, - arg_N7) {} + {} //! Copy constructor (shallow copy) template <class SS, class LS, class DS, class MS> DualView(const DualView<SS, LS, DS, MS>& src) - : d_view(src.d_view), - h_view(src.h_view), - modified_flags(src.modified_flags) -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - , - modified_host(src.modified_host), - modified_device(src.modified_device) -#endif - { - } + : modified_flags(src.modified_flags), + d_view(src.d_view), + h_view(src.h_view) {} //! Subview constructor template <class SD, class S1, class S2, class S3, class Arg0, class... Args> DualView(const DualView<SD, S1, S2, S3>& src, const Arg0& arg0, Args... args) - : d_view(Kokkos::subview(src.d_view, arg0, args...)), - h_view(Kokkos::subview(src.h_view, arg0, args...)), - modified_flags(src.modified_flags) -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - , - modified_host(src.modified_host), - modified_device(src.modified_device) -#endif - { - } + : modified_flags(src.modified_flags), + d_view(Kokkos::subview(src.d_view, arg0, args...)), + h_view(Kokkos::subview(src.h_view, arg0, args...)) {} /// \brief Create DualView from existing device and host View objects. /// @@ -324,9 +270,9 @@ class DualView : public ViewTraits<DataType, Arg1Type, Arg2Type, Arg3Type> { /// \param d_view_ Device View /// \param h_view_ Host View (must have type t_host = t_dev::HostMirror) DualView(const t_dev& d_view_, const t_host& h_view_) - : d_view(d_view_), - h_view(h_view_), - modified_flags(t_modified_flags("DualView::modified_flags")) { + : modified_flags(t_modified_flags("DualView::modified_flags")), + d_view(d_view_), + h_view(h_view_) { if (int(d_view.rank) != int(h_view.rank) || d_view.extent(0) != h_view.extent(0) || d_view.extent(1) != h_view.extent(1) || @@ -348,10 +294,6 @@ class DualView : public ViewTraits<DataType, Arg1Type, Arg2Type, Arg3Type> { Kokkos::Impl::throw_runtime_exception( "DualView constructed with incompatible views"); } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - modified_host = t_modified_flag(modified_flags, 0); - modified_device = t_modified_flag(modified_flags, 1); -#endif } //@} @@ -367,20 +309,25 @@ class DualView : public ViewTraits<DataType, Arg1Type, Arg2Type, Arg3Type> { /// /// For example, suppose you create a DualView on Cuda, like this: /// \code - /// typedef Kokkos::DualView<float, Kokkos::LayoutRight, Kokkos::Cuda> - /// dual_view_type; dual_view_type DV ("my dual view", 100); \endcode If you - /// want to get the CUDA device View, do this: \code typename - /// dual_view_type::t_dev cudaView = DV.view<Kokkos::Cuda> (); \endcode and if - /// you want to get the host mirror of that View, do this: \code typedef - /// typename Kokkos::HostSpace::execution_space host_device_type; typename - /// dual_view_type::t_host hostView = DV.view<host_device_type> (); \endcode + /// using dual_view_type = + /// Kokkos::DualView<float, Kokkos::LayoutRight, Kokkos::Cuda>; + /// dual_view_type DV ("my dual view", 100); + /// \endcode + /// If you want to get the CUDA device View, do this: + /// \code + /// typename dual_view_type::t_dev cudaView = DV.view<Kokkos::Cuda> (); + /// \endcode + /// and if you want to get the host mirror of that View, do this: + /// \code + /// using host_device_type = typename Kokkos::HostSpace::execution_space; + /// typename dual_view_type::t_host hostView = DV.view<host_device_type> (); + /// \endcode template <class Device> KOKKOS_INLINE_FUNCTION const typename Impl::if_c< std::is_same<typename t_dev::memory_space, typename Device::memory_space>::value, t_dev, t_host>::type& view() const { -#ifndef KOKKOS_ENABLE_DEPRECATED_CODE constexpr bool device_is_memspace = std::is_same<Device, typename Device::memory_space>::value; constexpr bool device_is_execspace = @@ -415,7 +362,6 @@ class DualView : public ViewTraits<DataType, Arg1Type, Arg2Type, Arg3Type> { (device_exec_is_t_dev_exec || device_exec_is_t_host_exec))), "Template parameter to .view() must exactly match one of the " "DualView's device types or one of the execution or memory spaces"); -#endif return Impl::if_c<std::is_same<typename t_dev::memory_space, typename Device::memory_space>::value, @@ -428,6 +374,10 @@ class DualView : public ViewTraits<DataType, Arg1Type, Arg2Type, Arg3Type> { KOKKOS_INLINE_FUNCTION t_dev view_device() const { return d_view; } + KOKKOS_INLINE_FUNCTION constexpr bool is_allocated() const { + return (d_view.is_allocated() && h_view.is_allocated()); + } + template <class Device> static int get_device_side() { constexpr bool device_is_memspace = @@ -453,7 +403,6 @@ class DualView : public ViewTraits<DataType, Arg1Type, Arg2Type, Arg3Type> { std::is_same<typename Device::memory_space, typename t_host::device_type>::value; -#ifndef KOKKOS_ENABLE_DEPRECATED_CODE static_assert( device_is_t_dev_device || device_is_t_host_device || (device_is_memspace && @@ -465,13 +414,8 @@ class DualView : public ViewTraits<DataType, Arg1Type, Arg2Type, Arg3Type> { (device_exec_is_t_dev_exec || device_exec_is_t_host_exec))), "Template parameter to .sync() must exactly match one of the " "DualView's device types or one of the execution or memory spaces"); -#endif -#ifndef KOKKOS_ENABLE_DEPRECATED_CODE int dev = -1; -#else - int dev = 0; -#endif if (device_is_t_dev_device) dev = 1; else if (device_is_t_host_device) @@ -498,7 +442,27 @@ class DualView : public ViewTraits<DataType, Arg1Type, Arg2Type, Arg3Type> { } return dev; } - + static constexpr const int view_header_size = 128; + void impl_report_host_sync() const noexcept { + if (Kokkos::Tools::Experimental::get_callbacks().sync_dual_view != + nullptr) { + Kokkos::Tools::syncDualView( + h_view.label(), + reinterpret_cast<void*>(reinterpret_cast<uintptr_t>(h_view.data()) - + view_header_size), + false); + } + } + void impl_report_device_sync() const noexcept { + if (Kokkos::Tools::Experimental::get_callbacks().sync_dual_view != + nullptr) { + Kokkos::Tools::syncDualView( + d_view.label(), + reinterpret_cast<void*>(reinterpret_cast<uintptr_t>(d_view.data()) - + view_header_size), + true); + } + } /// \brief Update data on device or host only if data in the other /// space has been marked as modified. /// @@ -540,6 +504,7 @@ class DualView : public ViewTraits<DataType, Arg1Type, Arg2Type, Arg3Type> { deep_copy(d_view, h_view); modified_flags(0) = modified_flags(1) = 0; + impl_report_device_sync(); } } if (dev == 0) { // hopefully Device is the same as DualView's host type @@ -556,6 +521,7 @@ class DualView : public ViewTraits<DataType, Arg1Type, Arg2Type, Arg3Type> { deep_copy(h_view, d_view); modified_flags(0) = modified_flags(1) = 0; + impl_report_host_sync(); } } if (std::is_same<typename t_host::memory_space, @@ -580,12 +546,14 @@ class DualView : public ViewTraits<DataType, Arg1Type, Arg2Type, Arg3Type> { Impl::throw_runtime_exception( "Calling sync on a DualView with a const datatype."); } + impl_report_device_sync(); } if (dev == 0) { // hopefully Device is the same as DualView's host type if ((modified_flags(1) > 0) && (modified_flags(1) >= modified_flags(0))) { Impl::throw_runtime_exception( "Calling sync on a DualView with a const datatype."); } + impl_report_host_sync(); } } @@ -608,6 +576,7 @@ class DualView : public ViewTraits<DataType, Arg1Type, Arg2Type, Arg3Type> { deep_copy(h_view, d_view); modified_flags(1) = modified_flags(0) = 0; + impl_report_host_sync(); } } @@ -630,6 +599,7 @@ class DualView : public ViewTraits<DataType, Arg1Type, Arg2Type, Arg3Type> { deep_copy(d_view, h_view); modified_flags(1) = modified_flags(0) = 0; + impl_report_device_sync(); } } @@ -660,7 +630,26 @@ class DualView : public ViewTraits<DataType, Arg1Type, Arg2Type, Arg3Type> { if (modified_flags.data() == nullptr) return false; return modified_flags(1) < modified_flags(0); } - + void impl_report_device_modification() { + if (Kokkos::Tools::Experimental::get_callbacks().modify_dual_view != + nullptr) { + Kokkos::Tools::modifyDualView( + d_view.label(), + reinterpret_cast<void*>(reinterpret_cast<uintptr_t>(d_view.data()) - + view_header_size), + true); + } + } + void impl_report_host_modification() { + if (Kokkos::Tools::Experimental::get_callbacks().modify_dual_view != + nullptr) { + Kokkos::Tools::modifyDualView( + h_view.label(), + reinterpret_cast<void*>(reinterpret_cast<uintptr_t>(h_view.data()) - + view_header_size), + false); + } + } /// \brief Mark data as modified on the given device \c Device. /// /// If \c Device is the same as this DualView's device type, then @@ -677,6 +666,7 @@ class DualView : public ViewTraits<DataType, Arg1Type, Arg2Type, Arg3Type> { (modified_flags(1) > modified_flags(0) ? modified_flags(1) : modified_flags(0)) + 1; + impl_report_device_modification(); } if (dev == 0) { // hopefully Device is the same as DualView's host type // Increment the host's modified count. @@ -684,6 +674,7 @@ class DualView : public ViewTraits<DataType, Arg1Type, Arg2Type, Arg3Type> { (modified_flags(1) > modified_flags(0) ? modified_flags(1) : modified_flags(0)) + 1; + impl_report_host_modification(); } #ifdef KOKKOS_ENABLE_DEBUG_DUALVIEW_MODIFY_CHECK @@ -704,6 +695,7 @@ class DualView : public ViewTraits<DataType, Arg1Type, Arg2Type, Arg3Type> { (modified_flags(1) > modified_flags(0) ? modified_flags(1) : modified_flags(0)) + 1; + impl_report_host_modification(); #ifdef KOKKOS_ENABLE_DEBUG_DUALVIEW_MODIFY_CHECK if (modified_flags(0) && modified_flags(1)) { std::string msg = "Kokkos::DualView::modify_host ERROR: "; @@ -723,6 +715,7 @@ class DualView : public ViewTraits<DataType, Arg1Type, Arg2Type, Arg3Type> { (modified_flags(1) > modified_flags(0) ? modified_flags(1) : modified_flags(0)) + 1; + impl_report_device_modification(); #ifdef KOKKOS_ENABLE_DEBUG_DUALVIEW_MODIFY_CHECK if (modified_flags(0) && modified_flags(1)) { std::string msg = "Kokkos::DualView::modify_device ERROR: "; @@ -822,11 +815,6 @@ class DualView : public ViewTraits<DataType, Arg1Type, Arg2Type, Arg3Type> { //! \name Methods for getting capacity, stride, or dimension(s). //@{ -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - //! The allocation size (same as Kokkos::View::capacity). - size_t capacity() const { return d_view.span(); } -#endif - //! The allocation size (same as Kokkos::View::span). KOKKOS_INLINE_FUNCTION constexpr size_t span() const { return d_view.span(); } @@ -854,29 +842,6 @@ class DualView : public ViewTraits<DataType, Arg1Type, Arg2Type, Arg3Type> { return static_cast<int>(d_view.extent(r)); } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - /* Deprecate all 'dimension' functions in favor of - * ISO/C++ vocabulary 'extent'. - */ - - /* \brief return size of dimension 0 */ - size_t dimension_0() const { return d_view.extent(0); } - /* \brief return size of dimension 1 */ - size_t dimension_1() const { return d_view.extent(1); } - /* \brief return size of dimension 2 */ - size_t dimension_2() const { return d_view.extent(2); } - /* \brief return size of dimension 3 */ - size_t dimension_3() const { return d_view.extent(3); } - /* \brief return size of dimension 4 */ - size_t dimension_4() const { return d_view.extent(4); } - /* \brief return size of dimension 5 */ - size_t dimension_5() const { return d_view.extent(5); } - /* \brief return size of dimension 6 */ - size_t dimension_6() const { return d_view.extent(6); } - /* \brief return size of dimension 7 */ - size_t dimension_7() const { return d_view.extent(7); } -#endif - //@} }; @@ -893,13 +858,12 @@ namespace Impl { template <class D, class A1, class A2, class A3, class... Args> struct DualViewSubview { - typedef typename Kokkos::Impl::ViewMapping< - void, Kokkos::ViewTraits<D, A1, A2, A3>, Args...>::traits_type dst_traits; + using dst_traits = typename Kokkos::Impl::ViewMapping< + void, Kokkos::ViewTraits<D, A1, A2, A3>, Args...>::traits_type; - typedef Kokkos::DualView< + using type = Kokkos::DualView< typename dst_traits::data_type, typename dst_traits::array_layout, - typename dst_traits::device_type, typename dst_traits::memory_traits> - type; + typename dst_traits::device_type, typename dst_traits::memory_traits>; }; } /* namespace Impl */ diff --git a/packages/kokkos/containers/src/Kokkos_DynRankView.hpp b/packages/kokkos/containers/src/Kokkos_DynRankView.hpp index 4ab212d7b..c66d7a5f3 100644 --- a/packages/kokkos/containers/src/Kokkos_DynRankView.hpp +++ b/packages/kokkos/containers/src/Kokkos_DynRankView.hpp @@ -245,10 +245,13 @@ KOKKOS_INLINE_FUNCTION bool dyn_rank_view_verify_operator_bounds( return (size_t(i) < map.extent(R)) && dyn_rank_view_verify_operator_bounds<R + 1>(rank, map, args...); } else if (i != 0) { + // FIXME_SYCL SYCL doesn't allow printf in kernels +#ifndef KOKKOS_ENABLE_SYCL printf( "DynRankView Debug Bounds Checking Error: at rank %u\n Extra " "arguments beyond the rank must be zero \n", R); +#endif return (false) && dyn_rank_view_verify_operator_bounds<R + 1>(rank, map, args...); } else { @@ -349,8 +352,8 @@ class ViewMapping< public: enum { is_assignable = is_assignable_value_type && is_assignable_layout }; - typedef ViewMapping<DstTraits, typename DstTraits::specialize> DstType; - typedef ViewMapping<SrcTraits, typename SrcTraits::specialize> SrcType; + using DstType = ViewMapping<DstTraits, typename DstTraits::specialize>; + using SrcType = ViewMapping<SrcTraits, typename SrcTraits::specialize>; template <typename DT, typename... DP, typename ST, typename... SP> KOKKOS_INLINE_FUNCTION static void assign( @@ -365,13 +368,13 @@ class ViewMapping< // Removed dimension checks... - typedef typename DstType::offset_type dst_offset_type; + using dst_offset_type = typename DstType::offset_type; dst.m_map.m_impl_offset = dst_offset_type( std::integral_constant<unsigned, 0>(), src.layout()); // Check this for integer input1 for padding, etc dst.m_map.m_impl_handle = Kokkos::Impl::ViewDataHandle<DstTraits>::assign( - src.m_map.m_impl_handle, src.m_track); - dst.m_track.assign(src.m_track, DstTraits::is_managed); + src.m_map.m_impl_handle, src.m_track.m_tracker); + dst.m_track.assign(src.m_track.m_tracker, DstTraits::is_managed); dst.m_rank = src.Rank; } }; @@ -415,16 +418,16 @@ class DynRankView : public ViewTraits<DataType, Properties...> { friend class Kokkos::Impl::ViewMapping; public: - typedef ViewTraits<DataType, Properties...> drvtraits; + using drvtraits = ViewTraits<DataType, Properties...>; - typedef View<DataType*******, Properties...> view_type; + using view_type = View<DataType*******, Properties...>; - typedef ViewTraits<DataType*******, Properties...> traits; + using traits = ViewTraits<DataType*******, Properties...>; private: - typedef Kokkos::Impl::ViewMapping<traits, typename traits::specialize> - map_type; - typedef Kokkos::Impl::SharedAllocationTracker track_type; + using map_type = + Kokkos::Impl::ViewMapping<traits, typename traits::specialize>; + using track_type = Kokkos::Impl::SharedAllocationTracker; track_type m_track; map_type m_map; @@ -440,28 +443,24 @@ class DynRankView : public ViewTraits<DataType, Properties...> { // 7 data_type of the traits /** \brief Compatible view of array of scalar types */ - typedef DynRankView< + using array_type = DynRankView< typename drvtraits::scalar_array_type, typename drvtraits::array_layout, - typename drvtraits::device_type, typename drvtraits::memory_traits> - array_type; + typename drvtraits::device_type, typename drvtraits::memory_traits>; /** \brief Compatible view of const data type */ - typedef DynRankView< + using const_type = DynRankView< typename drvtraits::const_data_type, typename drvtraits::array_layout, - typename drvtraits::device_type, typename drvtraits::memory_traits> - const_type; + typename drvtraits::device_type, typename drvtraits::memory_traits>; /** \brief Compatible view of non-const data type */ - typedef DynRankView< + using non_const_type = DynRankView< typename drvtraits::non_const_data_type, typename drvtraits::array_layout, - typename drvtraits::device_type, typename drvtraits::memory_traits> - non_const_type; + typename drvtraits::device_type, typename drvtraits::memory_traits>; /** \brief Compatible HostMirror view */ - typedef DynRankView<typename drvtraits::non_const_data_type, - typename drvtraits::array_layout, - typename drvtraits::host_mirror_space> - HostMirror; + using HostMirror = DynRankView<typename drvtraits::non_const_data_type, + typename drvtraits::array_layout, + typename drvtraits::host_mirror_space>; //---------------------------------------- // Domain rank and extents @@ -493,42 +492,6 @@ class DynRankView : public ViewTraits<DataType, Properties...> { * ISO/C++ vocabulary 'extent'. */ -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - template <typename iType> - KOKKOS_INLINE_FUNCTION constexpr - typename std::enable_if<std::is_integral<iType>::value, size_t>::type - dimension(const iType& r) const { - return extent(r); - } - - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_0() const { - return m_map.dimension_0(); - } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_1() const { - return m_map.dimension_1(); - } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_2() const { - return m_map.dimension_2(); - } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_3() const { - return m_map.dimension_3(); - } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_4() const { - return m_map.dimension_4(); - } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_5() const { - return m_map.dimension_5(); - } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_6() const { - return m_map.dimension_6(); - } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_7() const { - return m_map.dimension_7(); - } -#endif - - //---------------------------------------- - KOKKOS_INLINE_FUNCTION constexpr size_t size() const { return m_map.extent(0) * m_map.extent(1) * m_map.extent(2) * m_map.extent(3) * m_map.extent(4) * m_map.extent(5) * @@ -568,8 +531,8 @@ class DynRankView : public ViewTraits<DataType, Properties...> { //---------------------------------------- // Range span is the span which contains all members. - typedef typename map_type::reference_type reference_type; - typedef typename map_type::pointer_type pointer_type; + using reference_type = typename map_type::reference_type; + using pointer_type = typename map_type::pointer_type; enum { reference_type_is_lvalue_reference = @@ -577,39 +540,18 @@ class DynRankView : public ViewTraits<DataType, Properties...> { }; KOKKOS_INLINE_FUNCTION constexpr size_t span() const { return m_map.span(); } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - // Deprecated, use 'span()' instead - KOKKOS_INLINE_FUNCTION constexpr size_t capacity() const { - return m_map.span(); - } -#endif KOKKOS_INLINE_FUNCTION constexpr bool span_is_contiguous() const { return m_map.span_is_contiguous(); } KOKKOS_INLINE_FUNCTION constexpr pointer_type data() const { return m_map.data(); } - -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - // Deprecated, use 'span_is_contigous()' instead - KOKKOS_INLINE_FUNCTION constexpr bool is_contiguous() const { - return m_map.span_is_contiguous(); - } - // Deprecated, use 'data()' instead - KOKKOS_INLINE_FUNCTION constexpr pointer_type ptr_on_device() const { - return m_map.data(); + KOKKOS_INLINE_FUNCTION constexpr bool is_allocated() const { + return (m_map.data() != nullptr); } -#endif //---------------------------------------- // Allow specializations to query their specialized map -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - KOKKOS_INLINE_FUNCTION - const Kokkos::Impl::ViewMapping<traits, typename traits::specialize>& - implementation_map() const { - return m_map; - } -#endif KOKKOS_INLINE_FUNCTION const Kokkos::Impl::ViewMapping<traits, typename traits::specialize>& impl_map() const { @@ -709,12 +651,11 @@ class DynRankView : public ViewTraits<DataType, Properties...> { const size_t dim_scalar = m_map.dimension_scalar(); const size_t bytes = this->span() / dim_scalar; - typedef Kokkos::View< + using tmp_view_type = Kokkos::View< DataType*, typename traits::array_layout, typename traits::device_type, Kokkos::MemoryTraits<traits::memory_traits::is_unmanaged | traits::memory_traits::is_random_access | - traits::memory_traits::is_atomic> > - tmp_view_type; + traits::memory_traits::is_atomic> >; tmp_view_type rankone_view(this->data(), bytes, dim_scalar); return rankone_view(i0); } @@ -1102,10 +1043,9 @@ class DynRankView : public ViewTraits<DataType, Properties...> { template <class RT, class... RP> KOKKOS_INLINE_FUNCTION DynRankView(const DynRankView<RT, RP...>& rhs) : m_track(rhs.m_track, traits::is_managed), m_map(), m_rank(rhs.m_rank) { - typedef typename DynRankView<RT, RP...>::traits SrcTraits; - typedef Kokkos::Impl::ViewMapping<traits, SrcTraits, - typename traits::specialize> - Mapping; + using SrcTraits = typename DynRankView<RT, RP...>::traits; + using Mapping = Kokkos::Impl::ViewMapping<traits, SrcTraits, + typename traits::specialize>; static_assert(Mapping::is_assignable, "Incompatible DynRankView copy construction"); Mapping::assign(m_map, rhs.m_map, rhs.m_track); @@ -1114,10 +1054,9 @@ class DynRankView : public ViewTraits<DataType, Properties...> { template <class RT, class... RP> KOKKOS_INLINE_FUNCTION DynRankView& operator=( const DynRankView<RT, RP...>& rhs) { - typedef typename DynRankView<RT, RP...>::traits SrcTraits; - typedef Kokkos::Impl::ViewMapping<traits, SrcTraits, - typename traits::specialize> - Mapping; + using SrcTraits = typename DynRankView<RT, RP...>::traits; + using Mapping = Kokkos::Impl::ViewMapping<traits, SrcTraits, + typename traits::specialize>; static_assert(Mapping::is_assignable, "Incompatible DynRankView copy construction"); Mapping::assign(m_map, rhs.m_map, rhs.m_track); @@ -1130,10 +1069,10 @@ class DynRankView : public ViewTraits<DataType, Properties...> { template <class RT, class... RP> KOKKOS_INLINE_FUNCTION DynRankView(const View<RT, RP...>& rhs) : m_track(), m_map(), m_rank(rhs.Rank) { - typedef typename View<RT, RP...>::traits SrcTraits; - typedef Kokkos::Impl::ViewMapping<traits, SrcTraits, - Kokkos::Impl::ViewToDynRankViewTag> - Mapping; + using SrcTraits = typename View<RT, RP...>::traits; + using Mapping = + Kokkos::Impl::ViewMapping<traits, SrcTraits, + Kokkos::Impl::ViewToDynRankViewTag>; static_assert(Mapping::is_assignable, "Incompatible View to DynRankView copy construction"); Mapping::assign(*this, rhs); @@ -1141,10 +1080,10 @@ class DynRankView : public ViewTraits<DataType, Properties...> { template <class RT, class... RP> KOKKOS_INLINE_FUNCTION DynRankView& operator=(const View<RT, RP...>& rhs) { - typedef typename View<RT, RP...>::traits SrcTraits; - typedef Kokkos::Impl::ViewMapping<traits, SrcTraits, - Kokkos::Impl::ViewToDynRankViewTag> - Mapping; + using SrcTraits = typename View<RT, RP...>::traits; + using Mapping = + Kokkos::Impl::ViewMapping<traits, SrcTraits, + Kokkos::Impl::ViewToDynRankViewTag>; static_assert(Mapping::is_assignable, "Incompatible View to DynRankView copy assignment"); Mapping::assign(*this, rhs); @@ -1177,11 +1116,11 @@ class DynRankView : public ViewTraits<DataType, Properties...> { template computeRank<typename traits::array_layout, P...>( arg_prop, arg_layout)) { // Append layout and spaces if not input - typedef Kokkos::Impl::ViewCtorProp<P...> alloc_prop_input; + using alloc_prop_input = Kokkos::Impl::ViewCtorProp<P...>; // use 'std::integral_constant<unsigned,I>' for non-types // to avoid duplicate class error. - typedef Kokkos::Impl::ViewCtorProp< + using alloc_prop = Kokkos::Impl::ViewCtorProp< P..., typename std::conditional<alloc_prop_input::has_label, std::integral_constant<unsigned, 0>, @@ -1193,19 +1132,13 @@ class DynRankView : public ViewTraits<DataType, Properties...> { typename std::conditional< alloc_prop_input::has_execution_space, std::integral_constant<unsigned, 2>, - typename traits::device_type::execution_space>::type> - alloc_prop; + typename traits::device_type::execution_space>::type>; static_assert(traits::is_managed, "View allocation constructor requires managed memory"); if (alloc_prop::initialize && -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - !alloc_prop::execution_space::is_initialized() -#else - !alloc_prop::execution_space::impl_is_initialized() -#endif - ) { + !alloc_prop::execution_space::impl_is_initialized()) { // If initializing view data then // the execution space must be initialized. Kokkos::Impl::throw_runtime_exception( @@ -1334,33 +1267,6 @@ class DynRankView : public ViewTraits<DataType, Properties...> { typename traits::array_layout(arg_N0, arg_N1, arg_N2, arg_N3, arg_N4, arg_N5, arg_N6, arg_N7)) {} - // For backward compatibility - // NDE This ctor does not take ViewCtorProp argument - should not use - // alternative createLayout call - explicit inline DynRankView(const ViewAllocateWithoutInitializing& arg_prop, - const typename traits::array_layout& arg_layout) - : DynRankView( - Kokkos::Impl::ViewCtorProp<std::string, - Kokkos::Impl::WithoutInitializing_t>( - arg_prop.label, Kokkos::WithoutInitializing), - arg_layout) {} - - explicit inline DynRankView(const ViewAllocateWithoutInitializing& arg_prop, - const size_t arg_N0 = KOKKOS_INVALID_INDEX, - const size_t arg_N1 = KOKKOS_INVALID_INDEX, - const size_t arg_N2 = KOKKOS_INVALID_INDEX, - const size_t arg_N3 = KOKKOS_INVALID_INDEX, - const size_t arg_N4 = KOKKOS_INVALID_INDEX, - const size_t arg_N5 = KOKKOS_INVALID_INDEX, - const size_t arg_N6 = KOKKOS_INVALID_INDEX, - const size_t arg_N7 = KOKKOS_INVALID_INDEX) - : DynRankView( - Kokkos::Impl::ViewCtorProp<std::string, - Kokkos::Impl::WithoutInitializing_t>( - arg_prop.label, Kokkos::WithoutInitializing), - typename traits::array_layout(arg_N0, arg_N1, arg_N2, arg_N3, - arg_N4, arg_N5, arg_N6, arg_N7)) {} - //---------------------------------------- // Memory span required to wrap these dimensions. static constexpr size_t required_allocation_size( @@ -1471,7 +1377,7 @@ struct DynRankSubviewTag {}; namespace Impl { template <class SrcTraits, class... Args> -struct ViewMapping< +class ViewMapping< typename std::enable_if< (std::is_same<typename SrcTraits::specialize, void>::value && (std::is_same<typename SrcTraits::array_layout, @@ -1499,36 +1405,34 @@ struct ViewMapping< unsigned(R4) + unsigned(R5) + unsigned(R6) }; - typedef Kokkos::LayoutStride array_layout; + using array_layout = Kokkos::LayoutStride; - typedef typename SrcTraits::value_type value_type; + using value_type = typename SrcTraits::value_type; - typedef value_type******* data_type; + using data_type = value_type*******; public: - typedef Kokkos::ViewTraits<data_type, array_layout, - typename SrcTraits::device_type, - typename SrcTraits::memory_traits> - traits_type; + using traits_type = Kokkos::ViewTraits<data_type, array_layout, + typename SrcTraits::device_type, + typename SrcTraits::memory_traits>; - typedef Kokkos::View<data_type, array_layout, typename SrcTraits::device_type, - typename SrcTraits::memory_traits> - type; + using type = + Kokkos::View<data_type, array_layout, typename SrcTraits::device_type, + typename SrcTraits::memory_traits>; template <class MemoryTraits> struct apply { static_assert(Kokkos::Impl::is_memory_traits<MemoryTraits>::value, ""); - typedef Kokkos::ViewTraits<data_type, array_layout, - typename SrcTraits::device_type, MemoryTraits> - traits_type; + using traits_type = + Kokkos::ViewTraits<data_type, array_layout, + typename SrcTraits::device_type, MemoryTraits>; - typedef Kokkos::View<data_type, array_layout, - typename SrcTraits::device_type, MemoryTraits> - type; + using type = Kokkos::View<data_type, array_layout, + typename SrcTraits::device_type, MemoryTraits>; }; - typedef typename SrcTraits::dimension dimension; + using dimension = typename SrcTraits::dimension; template <class Arg0 = int, class Arg1 = int, class Arg2 = int, class Arg3 = int, class Arg4 = int, class Arg5 = int, @@ -1544,18 +1448,17 @@ struct ViewMapping< } }; - typedef Kokkos::DynRankView<value_type, array_layout, - typename SrcTraits::device_type, - typename SrcTraits::memory_traits> - ret_type; + using ret_type = Kokkos::DynRankView<value_type, array_layout, + typename SrcTraits::device_type, + typename SrcTraits::memory_traits>; template <typename T, class... P> KOKKOS_INLINE_FUNCTION static ret_type subview( const unsigned src_rank, Kokkos::DynRankView<T, P...> const& src, Args... args) { - typedef ViewMapping<traits_type, typename traits_type::specialize> DstType; + using DstType = ViewMapping<traits_type, typename traits_type::specialize>; - typedef typename std::conditional< + using DstDimType = typename std::conditional< (rank == 0), ViewDimension<>, typename std::conditional< (rank == 1), ViewDimension<0>, @@ -1570,10 +1473,10 @@ struct ViewMapping< typename std::conditional< (rank == 6), ViewDimension<0, 0, 0, 0, 0, 0>, ViewDimension<0, 0, 0, 0, 0, 0, 0> >::type>:: - type>::type>::type>::type>::type>::type DstDimType; + type>::type>::type>::type>::type>::type; - typedef ViewOffset<DstDimType, Kokkos::LayoutStride> dst_offset_type; - typedef typename DstType::handle_type dst_handle_type; + using dst_offset_type = ViewOffset<DstDimType, Kokkos::LayoutStride>; + using dst_handle_type = typename DstType::handle_type; ret_type dst; @@ -1636,9 +1539,9 @@ subdynrankview(const Kokkos::DynRankView<D, P...>& src, Args... args) { "DynRankView"); } - typedef Kokkos::Impl::ViewMapping<Kokkos::Impl::DynRankSubviewTag, - Kokkos::ViewTraits<D*******, P...>, Args...> - metafcn; + using metafcn = + Kokkos::Impl::ViewMapping<Kokkos::Impl::DynRankSubviewTag, + Kokkos::ViewTraits<D*******, P...>, Args...>; return metafcn::subview(src.rank(), src, args...); } @@ -1659,8 +1562,8 @@ template <class LT, class... LP, class RT, class... RP> KOKKOS_INLINE_FUNCTION bool operator==(const DynRankView<LT, LP...>& lhs, const DynRankView<RT, RP...>& rhs) { // Same data, layout, dimensions - typedef ViewTraits<LT, LP...> lhs_traits; - typedef ViewTraits<RT, RP...> rhs_traits; + using lhs_traits = ViewTraits<LT, LP...>; + using rhs_traits = ViewTraits<RT, RP...>; return std::is_same<typename lhs_traits::const_value_type, typename rhs_traits::const_value_type>::value && @@ -1691,7 +1594,7 @@ namespace Impl { template <class OutputView, typename Enable = void> struct DynRankViewFill { - typedef typename OutputView::traits::const_value_type const_value_type; + using const_value_type = typename OutputView::traits::const_value_type; const OutputView output; const_value_type input; @@ -1722,15 +1625,11 @@ struct DynRankViewFill { DynRankViewFill(const OutputView& arg_out, const_value_type& arg_in) : output(arg_out), input(arg_in) { - typedef typename OutputView::execution_space execution_space; - typedef Kokkos::RangePolicy<execution_space> Policy; - - const Kokkos::Impl::ParallelFor<DynRankViewFill, Policy> closure( - *this, Policy(0, output.extent(0))); - - closure.execute(); + using execution_space = typename OutputView::execution_space; + using Policy = Kokkos::RangePolicy<execution_space>; - execution_space().fence(); + Kokkos::parallel_for("Kokkos::DynRankViewFill", Policy(0, output.extent(0)), + *this); } }; @@ -1770,11 +1669,9 @@ struct DynRankViewRemap { n5(std::min((size_t)arg_out.extent(5), (size_t)arg_in.extent(5))), n6(std::min((size_t)arg_out.extent(6), (size_t)arg_in.extent(6))), n7(std::min((size_t)arg_out.extent(7), (size_t)arg_in.extent(7))) { - typedef Kokkos::RangePolicy<ExecSpace> Policy; - const Kokkos::Impl::ParallelFor<DynRankViewRemap, Policy> closure( - *this, Policy(0, n0)); - closure.execute(); - // ExecSpace().fence(); // ?? + using Policy = Kokkos::RangePolicy<ExecSpace>; + + Kokkos::parallel_for("Kokkos::DynRankViewRemap", Policy(0, n0), *this); } KOKKOS_INLINE_FUNCTION @@ -1814,7 +1711,9 @@ inline void deep_copy( typename ViewTraits<DT, DP...>::value_type>::value, "deep_copy requires non-const type"); + Kokkos::fence(); Kokkos::Impl::DynRankViewFill<DynRankView<DT, DP...> >(dst, value); + Kokkos::fence(); } /** \brief Deep copy into a value in Host memory from a view. */ @@ -1828,10 +1727,12 @@ inline void deep_copy( Kokkos::abort(""); } - typedef ViewTraits<ST, SP...> src_traits; - typedef typename src_traits::memory_space src_memory_space; + using src_traits = ViewTraits<ST, SP...>; + using src_memory_space = typename src_traits::memory_space; + Kokkos::fence(); Kokkos::Impl::DeepCopy<HostSpace, src_memory_space>(&dst, src.data(), sizeof(ST)); + Kokkos::fence(); } //---------------------------------------------------------------------------- @@ -1851,13 +1752,13 @@ inline void deep_copy( typename DstType::traits::non_const_value_type>::value, "deep_copy requires non-const destination type"); - typedef DstType dst_type; - typedef SrcType src_type; + using dst_type = DstType; + using src_type = SrcType; - typedef typename dst_type::execution_space dst_execution_space; - typedef typename src_type::execution_space src_execution_space; - typedef typename dst_type::memory_space dst_memory_space; - typedef typename src_type::memory_space src_memory_space; + using dst_execution_space = typename dst_type::execution_space; + using src_execution_space = typename src_type::execution_space; + using dst_memory_space = typename dst_type::memory_space; + using src_memory_space = typename src_type::memory_space; enum { DstExecCanAccessSrc = @@ -1878,9 +1779,11 @@ inline void deep_copy( // If same type, equal layout, equal dimensions, equal span, and contiguous // memory then can byte-wise copy if (rank(src) == 0 && rank(dst) == 0) { - typedef typename dst_type::value_type value_type; + using value_type = typename dst_type::value_type; + Kokkos::fence(); Kokkos::Impl::DeepCopy<dst_memory_space, src_memory_space>( dst.data(), src.data(), sizeof(value_type)); + Kokkos::fence(); } else if (std::is_same< typename DstType::traits::value_type, typename SrcType::traits::non_const_value_type>::value && @@ -1902,9 +1805,10 @@ inline void deep_copy( dst.extent(6) == src.extent(6) && dst.extent(7) == src.extent(7)) { const size_t nbytes = sizeof(typename dst_type::value_type) * dst.span(); - + Kokkos::fence(); Kokkos::Impl::DeepCopy<dst_memory_space, src_memory_space>( dst.data(), src.data(), nbytes); + Kokkos::fence(); } else if (std::is_same< typename DstType::traits::value_type, typename SrcType::traits::non_const_value_type>::value && @@ -1931,22 +1835,29 @@ inline void deep_copy( dst.stride_6() == src.stride_6() && dst.stride_7() == src.stride_7()) { const size_t nbytes = sizeof(typename dst_type::value_type) * dst.span(); - + Kokkos::fence(); Kokkos::Impl::DeepCopy<dst_memory_space, src_memory_space>( dst.data(), src.data(), nbytes); + Kokkos::fence(); } else if (DstExecCanAccessSrc) { // Copying data between views in accessible memory spaces and either // non-contiguous or incompatible shape. + Kokkos::fence(); Kokkos::Impl::DynRankViewRemap<dst_type, src_type>(dst, src); + Kokkos::fence(); } else if (SrcExecCanAccessDst) { // Copying data between views in accessible memory spaces and either // non-contiguous or incompatible shape. + Kokkos::fence(); Kokkos::Impl::DynRankViewRemap<dst_type, src_type, src_execution_space>( dst, src); + Kokkos::fence(); } else { Kokkos::Impl::throw_runtime_exception( "deep_copy given views that would require a temporary allocation"); } + } else { + Kokkos::fence(); } } @@ -1962,45 +1873,45 @@ namespace Impl { template <class Space, class T, class... P> struct MirrorDRViewType { // The incoming view_type - typedef typename Kokkos::DynRankView<T, P...> src_view_type; + using src_view_type = typename Kokkos::DynRankView<T, P...>; // The memory space for the mirror view - typedef typename Space::memory_space memory_space; + using memory_space = typename Space::memory_space; // Check whether it is the same memory space enum { is_same_memspace = std::is_same<memory_space, typename src_view_type::memory_space>::value }; // The array_layout - typedef typename src_view_type::array_layout array_layout; + using array_layout = typename src_view_type::array_layout; // The data type (we probably want it non-const since otherwise we can't even // deep_copy to it. - typedef typename src_view_type::non_const_data_type data_type; + using data_type = typename src_view_type::non_const_data_type; // The destination view type if it is not the same memory space - typedef Kokkos::DynRankView<data_type, array_layout, Space> dest_view_type; + using dest_view_type = Kokkos::DynRankView<data_type, array_layout, Space>; // If it is the same memory_space return the existsing view_type // This will also keep the unmanaged trait if necessary - typedef typename std::conditional<is_same_memspace, src_view_type, - dest_view_type>::type view_type; + using view_type = typename std::conditional<is_same_memspace, src_view_type, + dest_view_type>::type; }; template <class Space, class T, class... P> struct MirrorDRVType { // The incoming view_type - typedef typename Kokkos::DynRankView<T, P...> src_view_type; + using src_view_type = typename Kokkos::DynRankView<T, P...>; // The memory space for the mirror view - typedef typename Space::memory_space memory_space; + using memory_space = typename Space::memory_space; // Check whether it is the same memory space enum { is_same_memspace = std::is_same<memory_space, typename src_view_type::memory_space>::value }; // The array_layout - typedef typename src_view_type::array_layout array_layout; + using array_layout = typename src_view_type::array_layout; // The data type (we probably want it non-const since otherwise we can't even // deep_copy to it. - typedef typename src_view_type::non_const_data_type data_type; + using data_type = typename src_view_type::non_const_data_type; // The destination view type if it is not the same memory space - typedef Kokkos::DynRankView<data_type, array_layout, Space> view_type; + using view_type = Kokkos::DynRankView<data_type, array_layout, Space>; }; } // namespace Impl @@ -2012,8 +1923,8 @@ inline typename DynRankView<T, P...>::HostMirror create_mirror( std::is_same<typename ViewTraits<T, P...>::specialize, void>::value && !std::is_same<typename Kokkos::ViewTraits<T, P...>::array_layout, Kokkos::LayoutStride>::value>::type* = nullptr) { - typedef DynRankView<T, P...> src_type; - typedef typename src_type::HostMirror dst_type; + using src_type = DynRankView<T, P...>; + using dst_type = typename src_type::HostMirror; return dst_type(std::string(src.label()).append("_mirror"), Impl::reconstructLayout(src.layout(), src.rank())); @@ -2026,8 +1937,8 @@ inline typename DynRankView<T, P...>::HostMirror create_mirror( std::is_same<typename ViewTraits<T, P...>::specialize, void>::value && std::is_same<typename Kokkos::ViewTraits<T, P...>::array_layout, Kokkos::LayoutStride>::value>::type* = 0) { - typedef DynRankView<T, P...> src_type; - typedef typename src_type::HostMirror dst_type; + using src_type = DynRankView<T, P...>; + using dst_type = typename src_type::HostMirror; return dst_type(std::string(src.label()).append("_mirror"), Impl::reconstructLayout(src.layout(), src.rank())); @@ -2066,7 +1977,7 @@ inline typename DynRankView<T, P...>::HostMirror create_mirror_view( typename DynRankView<T, P...>::HostMirror::memory_space>::value && std::is_same<typename DynRankView<T, P...>::data_type, typename DynRankView<T, P...>::HostMirror::data_type>:: - value)>::type* = 0) { + value)>::type* = nullptr) { return Kokkos::create_mirror(src); } @@ -2085,7 +1996,8 @@ template <class Space, class T, class... P> typename Impl::MirrorDRViewType<Space, T, P...>::view_type create_mirror_view( const Space&, const Kokkos::DynRankView<T, P...>& src, typename std::enable_if< - !Impl::MirrorDRViewType<Space, T, P...>::is_same_memspace>::type* = 0) { + !Impl::MirrorDRViewType<Space, T, P...>::is_same_memspace>::type* = + nullptr) { return typename Impl::MirrorDRViewType<Space, T, P...>::view_type( src.label(), Impl::reconstructLayout(src.layout(), src.rank())); } @@ -2112,10 +2024,11 @@ create_mirror_view_and_copy( const Space&, const Kokkos::DynRankView<T, P...>& src, std::string const& name = "", typename std::enable_if< - !Impl::MirrorDRViewType<Space, T, P...>::is_same_memspace>::type* = 0) { + !Impl::MirrorDRViewType<Space, T, P...>::is_same_memspace>::type* = + nullptr) { using Mirror = typename Impl::MirrorDRViewType<Space, T, P...>::view_type; std::string label = name.empty() ? src.label() : name; - auto mirror = Mirror(Kokkos::ViewAllocateWithoutInitializing(label), + auto mirror = Mirror(view_alloc(WithoutInitializing, label), Impl::reconstructLayout(src.layout(), src.rank())); deep_copy(mirror, src); return mirror; @@ -2139,7 +2052,7 @@ inline void resize(DynRankView<T, P...>& v, const size_t n5 = KOKKOS_INVALID_INDEX, const size_t n6 = KOKKOS_INVALID_INDEX, const size_t n7 = KOKKOS_INVALID_INDEX) { - typedef DynRankView<T, P...> drview_type; + using drview_type = DynRankView<T, P...>; static_assert(Kokkos::ViewTraits<T, P...>::is_managed, "Can only resize managed views"); @@ -2163,7 +2076,7 @@ inline void realloc(DynRankView<T, P...>& v, const size_t n5 = KOKKOS_INVALID_INDEX, const size_t n6 = KOKKOS_INVALID_INDEX, const size_t n7 = KOKKOS_INVALID_INDEX) { - typedef DynRankView<T, P...> drview_type; + using drview_type = DynRankView<T, P...>; static_assert(Kokkos::ViewTraits<T, P...>::is_managed, "Can only realloc managed views"); diff --git a/packages/kokkos/containers/src/Kokkos_DynamicView.hpp b/packages/kokkos/containers/src/Kokkos_DynamicView.hpp index ebbbcc5e8..06bd55666 100644 --- a/packages/kokkos/containers/src/Kokkos_DynamicView.hpp +++ b/packages/kokkos/containers/src/Kokkos_DynamicView.hpp @@ -85,13 +85,13 @@ struct ChunkArraySpace<Kokkos::Experimental::HIPSpace> { template <typename DataType, typename... P> class DynamicView : public Kokkos::ViewTraits<DataType, P...> { public: - typedef Kokkos::ViewTraits<DataType, P...> traits; + using traits = Kokkos::ViewTraits<DataType, P...>; private: template <class, class...> friend class DynamicView; - typedef Kokkos::Impl::SharedAllocationTracker track_type; + using track_type = Kokkos::Impl::SharedAllocationTracker; static_assert(traits::rank == 1 && traits::rank_dynamic == 1, "DynamicView must be rank-one"); @@ -118,8 +118,8 @@ class DynamicView : public Kokkos::ViewTraits<DataType, P...> { private: track_type m_track; - typename traits::value_type** - m_chunks; // array of pointers to 'chunks' of memory + typename traits::value_type** m_chunks = + nullptr; // array of pointers to 'chunks' of memory unsigned m_chunk_shift; // ceil(log2(m_chunk_size)) unsigned m_chunk_mask; // m_chunk_size - 1 unsigned m_chunk_max; // number of entries in the chunk array - each pointing @@ -130,38 +130,36 @@ class DynamicView : public Kokkos::ViewTraits<DataType, P...> { //---------------------------------------------------------------------- /** \brief Compatible view of array of scalar types */ - typedef DynamicView<typename traits::data_type, typename traits::device_type> - array_type; + using array_type = + DynamicView<typename traits::data_type, typename traits::device_type>; /** \brief Compatible view of const data type */ - typedef DynamicView<typename traits::const_data_type, - typename traits::device_type> - const_type; + using const_type = DynamicView<typename traits::const_data_type, + typename traits::device_type>; /** \brief Compatible view of non-const data type */ - typedef DynamicView<typename traits::non_const_data_type, - typename traits::device_type> - non_const_type; + using non_const_type = DynamicView<typename traits::non_const_data_type, + typename traits::device_type>; /** \brief Must be accessible everywhere */ - typedef DynamicView HostMirror; + using HostMirror = DynamicView; /** \brief Unified types */ - typedef Kokkos::Device<typename traits::device_type::execution_space, - Kokkos::AnonymousSpace> - uniform_device; - typedef array_type uniform_type; - typedef const_type uniform_const_type; - typedef array_type uniform_runtime_type; - typedef const_type uniform_runtime_const_type; - typedef DynamicView<typename traits::data_type, uniform_device> - uniform_nomemspace_type; - typedef DynamicView<typename traits::const_data_type, uniform_device> - uniform_const_nomemspace_type; - typedef DynamicView<typename traits::data_type, uniform_device> - uniform_runtime_nomemspace_type; - typedef DynamicView<typename traits::const_data_type, uniform_device> - uniform_runtime_const_nomemspace_type; + using uniform_device = + Kokkos::Device<typename traits::device_type::execution_space, + Kokkos::AnonymousSpace>; + using uniform_type = array_type; + using uniform_const_type = const_type; + using uniform_runtime_type = array_type; + using uniform_runtime_const_type = const_type; + using uniform_nomemspace_type = + DynamicView<typename traits::data_type, uniform_device>; + using uniform_const_nomemspace_type = + DynamicView<typename traits::const_data_type, uniform_device>; + using uniform_runtime_nomemspace_type = + DynamicView<typename traits::data_type, uniform_device>; + using uniform_runtime_const_nomemspace_type = + DynamicView<typename traits::const_data_type, uniform_device>; //---------------------------------------------------------------------- @@ -193,17 +191,6 @@ class DynamicView : public Kokkos::ViewTraits<DataType, P...> { return r == 0 ? size() : 1; } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - KOKKOS_INLINE_FUNCTION size_t dimension_0() const { return size(); } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_1() const { return 1; } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_2() const { return 1; } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_3() const { return 1; } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_4() const { return 1; } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_5() const { return 1; } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_6() const { return 1; } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_7() const { return 1; } -#endif - KOKKOS_INLINE_FUNCTION constexpr size_t stride_0() const { return 0; } KOKKOS_INLINE_FUNCTION constexpr size_t stride_1() const { return 0; } KOKKOS_INLINE_FUNCTION constexpr size_t stride_2() const { return 0; } @@ -231,8 +218,8 @@ class DynamicView : public Kokkos::ViewTraits<DataType, P...> { //---------------------------------------------------------------------- // Range span is the span which contains all members. - typedef typename traits::value_type& reference_type; - typedef typename traits::value_type* pointer_type; + using reference_type = typename traits::value_type&; + using pointer_type = typename traits::value_type*; enum { reference_type_is_lvalue_reference = @@ -299,8 +286,8 @@ class DynamicView : public Kokkos::ViewTraits<DataType, P...> { typename Impl::ChunkArraySpace< typename traits::memory_space>::memory_space>::accessible>::type resize_serial(IntType const& n) { - typedef typename traits::value_type local_value_type; - typedef local_value_type* value_pointer_type; + using local_value_type = typename traits::value_type; + using value_pointer_type = local_value_type*; const uintptr_t NC = (n + m_chunk_mask) >> @@ -312,19 +299,21 @@ class DynamicView : public Kokkos::ViewTraits<DataType, P...> { // *m_chunks[m_chunk_max] stores the current number of chunks being used uintptr_t* const pc = reinterpret_cast<uintptr_t*>(m_chunks + m_chunk_max); - + std::string _label = + m_track.template get_label<typename traits::memory_space>(); if (*pc < NC) { while (*pc < NC) { m_chunks[*pc] = reinterpret_cast<value_pointer_type>( - typename traits::memory_space().allocate(sizeof(local_value_type) - << m_chunk_shift)); + typename traits::memory_space().allocate( + _label.c_str(), sizeof(local_value_type) << m_chunk_shift)); ++*pc; } } else { while (NC + 1 <= *pc) { --*pc; typename traits::memory_space().deallocate( - m_chunks[*pc], sizeof(local_value_type) << m_chunk_shift); + _label.c_str(), m_chunks[*pc], + sizeof(local_value_type) << m_chunk_shift); m_chunks[*pc] = nullptr; } } @@ -332,6 +321,17 @@ class DynamicView : public Kokkos::ViewTraits<DataType, P...> { *(pc + 1) = n; } + KOKKOS_INLINE_FUNCTION bool is_allocated() const { + if (m_chunks == nullptr) { + return false; + } else { + // *m_chunks[m_chunk_max] stores the current number of chunks being used + uintptr_t* const pc = + reinterpret_cast<uintptr_t*>(m_chunks + m_chunk_max); + return (*(pc + 1) > 0); + } + } + //---------------------------------------------------------------------- ~DynamicView() = default; @@ -349,8 +349,8 @@ class DynamicView : public Kokkos::ViewTraits<DataType, P...> { m_chunk_mask(rhs.m_chunk_mask), m_chunk_max(rhs.m_chunk_max), m_chunk_size(rhs.m_chunk_size) { - typedef typename DynamicView<RT, RP...>::traits SrcTraits; - typedef Kokkos::Impl::ViewMapping<traits, SrcTraits, void> Mapping; + using SrcTraits = typename DynamicView<RT, RP...>::traits; + using Mapping = Kokkos::Impl::ViewMapping<traits, SrcTraits, void>; static_assert(Mapping::is_assignable, "Incompatible DynamicView copy construction"); } @@ -358,7 +358,9 @@ class DynamicView : public Kokkos::ViewTraits<DataType, P...> { //---------------------------------------------------------------------- struct Destroy { - typename traits::value_type** m_chunks; + using local_value_type = typename traits::value_type; + std::string m_label; + local_value_type** m_chunks; unsigned m_chunk_max; bool m_destroy; unsigned m_chunk_size; @@ -367,15 +369,15 @@ class DynamicView : public Kokkos::ViewTraits<DataType, P...> { // Two entries beyond the max chunks are allocation counters. inline void operator()(unsigned i) const { if (m_destroy && i < m_chunk_max && nullptr != m_chunks[i]) { - typename traits::memory_space().deallocate(m_chunks[i], m_chunk_size); + typename traits::memory_space().deallocate( + m_label.c_str(), m_chunks[i], + sizeof(local_value_type) * m_chunk_size); } m_chunks[i] = nullptr; } void execute(bool arg_destroy) { - typedef Kokkos::RangePolicy<typename HostSpace::execution_space> Range; - // typedef Kokkos::RangePolicy< typename Impl::ChunkArraySpace< typename - // traits::memory_space >::memory_space::execution_space > Range ; + using Range = Kokkos::RangePolicy<typename HostSpace::execution_space>; m_destroy = arg_destroy; @@ -401,9 +403,10 @@ class DynamicView : public Kokkos::ViewTraits<DataType, P...> { Destroy& operator=(Destroy&&) = default; Destroy& operator=(const Destroy&) = default; - Destroy(typename traits::value_type** arg_chunk, + Destroy(std::string label, typename traits::value_type** arg_chunk, const unsigned arg_chunk_max, const unsigned arg_chunk_size) - : m_chunks(arg_chunk), + : m_label(label), + m_chunks(arg_chunk), m_chunk_max(arg_chunk_max), m_destroy(false), m_chunk_size(arg_chunk_size) {} @@ -431,12 +434,11 @@ class DynamicView : public Kokkos::ViewTraits<DataType, P...> { m_chunk_shift) // max num pointers-to-chunks in array , m_chunk_size(2 << (m_chunk_shift - 1)) { - typedef typename Impl::ChunkArraySpace< - typename traits::memory_space>::memory_space chunk_array_memory_space; + using chunk_array_memory_space = typename Impl::ChunkArraySpace< + typename traits::memory_space>::memory_space; // A functor to deallocate all of the chunks upon final destruction - typedef Kokkos::Impl::SharedAllocationRecord<chunk_array_memory_space, - Destroy> - record_type; + using record_type = + Kokkos::Impl::SharedAllocationRecord<chunk_array_memory_space, Destroy>; // Allocate chunk pointers and allocation counter record_type* const record = @@ -448,7 +450,7 @@ class DynamicView : public Kokkos::ViewTraits<DataType, P...> { m_chunks = reinterpret_cast<pointer_type*>(record->data()); - record->m_destroy = Destroy(m_chunks, m_chunk_max, m_chunk_size); + record->m_destroy = Destroy(arg_label, m_chunks, m_chunk_max, m_chunk_size); // Initialize to zero record->m_destroy.construct_shared_allocation(); @@ -471,11 +473,11 @@ create_mirror_view(const Kokkos::Experimental::DynamicView<T, P...>& src) { template <class T, class... DP, class... SP> inline void deep_copy(const View<T, DP...>& dst, const Kokkos::Experimental::DynamicView<T, SP...>& src) { - typedef View<T, DP...> dst_type; - typedef Kokkos::Experimental::DynamicView<T, SP...> src_type; + using dst_type = View<T, DP...>; + using src_type = Kokkos::Experimental::DynamicView<T, SP...>; - typedef typename ViewTraits<T, DP...>::execution_space dst_execution_space; - typedef typename ViewTraits<T, SP...>::memory_space src_memory_space; + using dst_execution_space = typename ViewTraits<T, DP...>::execution_space; + using src_memory_space = typename ViewTraits<T, SP...>::memory_space; enum { DstExecCanAccessSrc = @@ -496,11 +498,11 @@ inline void deep_copy(const View<T, DP...>& dst, template <class T, class... DP, class... SP> inline void deep_copy(const Kokkos::Experimental::DynamicView<T, DP...>& dst, const View<T, SP...>& src) { - typedef Kokkos::Experimental::DynamicView<T, SP...> dst_type; - typedef View<T, DP...> src_type; + using dst_type = Kokkos::Experimental::DynamicView<T, SP...>; + using src_type = View<T, DP...>; - typedef typename ViewTraits<T, DP...>::execution_space dst_execution_space; - typedef typename ViewTraits<T, SP...>::memory_space src_memory_space; + using dst_execution_space = typename ViewTraits<T, DP...>::execution_space; + using src_memory_space = typename ViewTraits<T, SP...>::memory_space; enum { DstExecCanAccessSrc = @@ -522,10 +524,10 @@ namespace Impl { template <class Arg0, class... DP, class... SP> struct CommonSubview<Kokkos::Experimental::DynamicView<DP...>, Kokkos::Experimental::DynamicView<SP...>, 1, Arg0> { - typedef Kokkos::Experimental::DynamicView<DP...> DstType; - typedef Kokkos::Experimental::DynamicView<SP...> SrcType; - typedef DstType dst_subview_type; - typedef SrcType src_subview_type; + using DstType = Kokkos::Experimental::DynamicView<DP...>; + using SrcType = Kokkos::Experimental::DynamicView<SP...>; + using dst_subview_type = DstType; + using src_subview_type = SrcType; dst_subview_type dst_sub; src_subview_type src_sub; CommonSubview(const DstType& dst, const SrcType& src, const Arg0& /*arg0*/) @@ -535,9 +537,9 @@ struct CommonSubview<Kokkos::Experimental::DynamicView<DP...>, template <class... DP, class SrcType, class Arg0> struct CommonSubview<Kokkos::Experimental::DynamicView<DP...>, SrcType, 1, Arg0> { - typedef Kokkos::Experimental::DynamicView<DP...> DstType; - typedef DstType dst_subview_type; - typedef typename Kokkos::Subview<SrcType, Arg0> src_subview_type; + using DstType = Kokkos::Experimental::DynamicView<DP...>; + using dst_subview_type = DstType; + using src_subview_type = typename Kokkos::Subview<SrcType, Arg0>; dst_subview_type dst_sub; src_subview_type src_sub; CommonSubview(const DstType& dst, const SrcType& src, const Arg0& arg0) @@ -547,9 +549,9 @@ struct CommonSubview<Kokkos::Experimental::DynamicView<DP...>, SrcType, 1, template <class DstType, class... SP, class Arg0> struct CommonSubview<DstType, Kokkos::Experimental::DynamicView<SP...>, 1, Arg0> { - typedef Kokkos::Experimental::DynamicView<SP...> SrcType; - typedef typename Kokkos::Subview<DstType, Arg0> dst_subview_type; - typedef SrcType src_subview_type; + using SrcType = Kokkos::Experimental::DynamicView<SP...>; + using dst_subview_type = typename Kokkos::Subview<DstType, Arg0>; + using src_subview_type = SrcType; dst_subview_type dst_sub; src_subview_type src_sub; CommonSubview(const DstType& dst, const SrcType& src, const Arg0& arg0) @@ -559,11 +561,11 @@ struct CommonSubview<DstType, Kokkos::Experimental::DynamicView<SP...>, 1, template <class... DP, class ViewTypeB, class Layout, class ExecSpace, typename iType> struct ViewCopy<Kokkos::Experimental::DynamicView<DP...>, ViewTypeB, Layout, - ExecSpace, 1, iType, false> { + ExecSpace, 1, iType> { Kokkos::Experimental::DynamicView<DP...> a; ViewTypeB b; - typedef Kokkos::RangePolicy<ExecSpace, Kokkos::IndexType<iType>> policy_type; + using policy_type = Kokkos::RangePolicy<ExecSpace, Kokkos::IndexType<iType>>; ViewCopy(const Kokkos::Experimental::DynamicView<DP...>& a_, const ViewTypeB& b_) @@ -580,11 +582,11 @@ template <class... DP, class... SP, class Layout, class ExecSpace, typename iType> struct ViewCopy<Kokkos::Experimental::DynamicView<DP...>, Kokkos::Experimental::DynamicView<SP...>, Layout, ExecSpace, 1, - iType, false> { + iType> { Kokkos::Experimental::DynamicView<DP...> a; Kokkos::Experimental::DynamicView<SP...> b; - typedef Kokkos::RangePolicy<ExecSpace, Kokkos::IndexType<iType>> policy_type; + using policy_type = Kokkos::RangePolicy<ExecSpace, Kokkos::IndexType<iType>>; ViewCopy(const Kokkos::Experimental::DynamicView<DP...>& a_, const Kokkos::Experimental::DynamicView<SP...>& b_) diff --git a/packages/kokkos/containers/src/Kokkos_ErrorReporter.hpp b/packages/kokkos/containers/src/Kokkos_ErrorReporter.hpp index e07c386b7..fbfaed9b1 100644 --- a/packages/kokkos/containers/src/Kokkos_ErrorReporter.hpp +++ b/packages/kokkos/containers/src/Kokkos_ErrorReporter.hpp @@ -56,9 +56,9 @@ namespace Experimental { template <typename ReportType, typename DeviceType> class ErrorReporter { public: - typedef ReportType report_type; - typedef DeviceType device_type; - typedef typename device_type::execution_space execution_space; + using report_type = ReportType; + using device_type = DeviceType; + using execution_space = typename device_type::execution_space; ErrorReporter(int max_results) : m_numReportsAttempted(""), @@ -103,10 +103,10 @@ class ErrorReporter { } private: - typedef Kokkos::View<report_type *, execution_space> reports_view_t; - typedef Kokkos::DualView<report_type *, execution_space> reports_dualview_t; + using reports_view_t = Kokkos::View<report_type *, execution_space>; + using reports_dualview_t = Kokkos::DualView<report_type *, execution_space>; - typedef typename reports_dualview_t::host_mirror_space host_mirror_space; + using host_mirror_space = typename reports_dualview_t::host_mirror_space; Kokkos::View<int, execution_space> m_numReportsAttempted; reports_dualview_t m_reports; Kokkos::DualView<int *, execution_space> m_reporters; diff --git a/packages/kokkos/containers/src/Kokkos_Functional.hpp b/packages/kokkos/containers/src/Kokkos_Functional.hpp index d90845851..2e1fa336f 100644 --- a/packages/kokkos/containers/src/Kokkos_Functional.hpp +++ b/packages/kokkos/containers/src/Kokkos_Functional.hpp @@ -52,10 +52,10 @@ namespace Kokkos { template <typename T> struct pod_hash { - typedef T argument_type; - typedef T first_argument_type; - typedef uint32_t second_argument_type; - typedef uint32_t result_type; + using argument_type = T; + using first_argument_type = T; + using second_argument_type = uint32_t; + using result_type = uint32_t; KOKKOS_FORCEINLINE_FUNCTION uint32_t operator()(T const& t) const { @@ -70,9 +70,9 @@ struct pod_hash { template <typename T> struct pod_equal_to { - typedef T first_argument_type; - typedef T second_argument_type; - typedef bool result_type; + using first_argument_type = T; + using second_argument_type = T; + using result_type = bool; KOKKOS_FORCEINLINE_FUNCTION bool operator()(T const& a, T const& b) const { @@ -82,9 +82,9 @@ struct pod_equal_to { template <typename T> struct pod_not_equal_to { - typedef T first_argument_type; - typedef T second_argument_type; - typedef bool result_type; + using first_argument_type = T; + using second_argument_type = T; + using result_type = bool; KOKKOS_FORCEINLINE_FUNCTION bool operator()(T const& a, T const& b) const { @@ -94,9 +94,9 @@ struct pod_not_equal_to { template <typename T> struct equal_to { - typedef T first_argument_type; - typedef T second_argument_type; - typedef bool result_type; + using first_argument_type = T; + using second_argument_type = T; + using result_type = bool; KOKKOS_FORCEINLINE_FUNCTION bool operator()(T const& a, T const& b) const { return a == b; } @@ -104,9 +104,9 @@ struct equal_to { template <typename T> struct not_equal_to { - typedef T first_argument_type; - typedef T second_argument_type; - typedef bool result_type; + using first_argument_type = T; + using second_argument_type = T; + using result_type = bool; KOKKOS_FORCEINLINE_FUNCTION bool operator()(T const& a, T const& b) const { return a != b; } @@ -114,9 +114,9 @@ struct not_equal_to { template <typename T> struct greater { - typedef T first_argument_type; - typedef T second_argument_type; - typedef bool result_type; + using first_argument_type = T; + using second_argument_type = T; + using result_type = bool; KOKKOS_FORCEINLINE_FUNCTION bool operator()(T const& a, T const& b) const { return a > b; } @@ -124,9 +124,9 @@ struct greater { template <typename T> struct less { - typedef T first_argument_type; - typedef T second_argument_type; - typedef bool result_type; + using first_argument_type = T; + using second_argument_type = T; + using result_type = bool; KOKKOS_FORCEINLINE_FUNCTION bool operator()(T const& a, T const& b) const { return a < b; } @@ -134,9 +134,9 @@ struct less { template <typename T> struct greater_equal { - typedef T first_argument_type; - typedef T second_argument_type; - typedef bool result_type; + using first_argument_type = T; + using second_argument_type = T; + using result_type = bool; KOKKOS_FORCEINLINE_FUNCTION bool operator()(T const& a, T const& b) const { return a >= b; } @@ -144,9 +144,9 @@ struct greater_equal { template <typename T> struct less_equal { - typedef T first_argument_type; - typedef T second_argument_type; - typedef bool result_type; + using first_argument_type = T; + using second_argument_type = T; + using result_type = bool; KOKKOS_FORCEINLINE_FUNCTION bool operator()(T const& a, T const& b) const { return a <= b; } diff --git a/packages/kokkos/containers/src/Kokkos_OffsetView.hpp b/packages/kokkos/containers/src/Kokkos_OffsetView.hpp index c3c66f0d7..4fd084338 100644 --- a/packages/kokkos/containers/src/Kokkos_OffsetView.hpp +++ b/packages/kokkos/containers/src/Kokkos_OffsetView.hpp @@ -51,10 +51,10 @@ namespace Impl { template <class ViewType> struct GetOffsetViewTypeFromViewType { - typedef OffsetView< - typename ViewType::data_type, typename ViewType::array_layout, - typename ViewType::device_type, typename ViewType::memory_traits> - type; + using type = + OffsetView<typename ViewType::data_type, typename ViewType::array_layout, + typename ViewType::device_type, + typename ViewType::memory_traits>; }; template <unsigned, class MapType, class BeginsType> @@ -180,7 +180,7 @@ void runtime_check_rank_device(const size_t rank_dynamic, const size_t rank, template <class DataType, class... Properties> class OffsetView : public ViewTraits<DataType, Properties...> { public: - typedef ViewTraits<DataType, Properties...> traits; + using traits = ViewTraits<DataType, Properties...>; private: template <class, class...> @@ -190,12 +190,12 @@ class OffsetView : public ViewTraits<DataType, Properties...> { template <class, class...> friend class Kokkos::Impl::ViewMapping; - typedef Kokkos::Impl::ViewMapping<traits, void> map_type; - typedef Kokkos::Impl::SharedAllocationTracker track_type; + using map_type = Kokkos::Impl::ViewMapping<traits, void>; + using track_type = Kokkos::Impl::SharedAllocationTracker; public: enum { Rank = map_type::Rank }; - typedef Kokkos::Array<int64_t, Rank> begins_type; + using begins_type = Kokkos::Array<int64_t, Rank>; template < typename iType, @@ -223,28 +223,27 @@ class OffsetView : public ViewTraits<DataType, Properties...> { public: //---------------------------------------- /** \brief Compatible view of array of scalar types */ - typedef OffsetView< - typename traits::scalar_array_type, typename traits::array_layout, - typename traits::device_type, typename traits::memory_traits> - array_type; + using array_type = + OffsetView<typename traits::scalar_array_type, + typename traits::array_layout, typename traits::device_type, + typename traits::memory_traits>; /** \brief Compatible view of const data type */ - typedef OffsetView< - typename traits::const_data_type, typename traits::array_layout, - typename traits::device_type, typename traits::memory_traits> - const_type; + using const_type = + OffsetView<typename traits::const_data_type, + typename traits::array_layout, typename traits::device_type, + typename traits::memory_traits>; /** \brief Compatible view of non-const data type */ - typedef OffsetView< - typename traits::non_const_data_type, typename traits::array_layout, - typename traits::device_type, typename traits::memory_traits> - non_const_type; + using non_const_type = + OffsetView<typename traits::non_const_data_type, + typename traits::array_layout, typename traits::device_type, + typename traits::memory_traits>; /** \brief Compatible HostMirror view */ - typedef OffsetView<typename traits::non_const_data_type, - typename traits::array_layout, - typename traits::host_mirror_space> - HostMirror; + using HostMirror = OffsetView<typename traits::non_const_data_type, + typename traits::array_layout, + typename traits::host_mirror_space>; //---------------------------------------- // Domain rank and extents @@ -335,8 +334,8 @@ class OffsetView : public ViewTraits<DataType, Properties...> { //---------------------------------------- // Range span is the span which contains all members. - typedef typename map_type::reference_type reference_type; - typedef typename map_type::pointer_type pointer_type; + using reference_type = typename map_type::reference_type; + using pointer_type = typename map_type::pointer_type; enum { reference_type_is_lvalue_reference = @@ -347,6 +346,9 @@ class OffsetView : public ViewTraits<DataType, Properties...> { KOKKOS_INLINE_FUNCTION bool span_is_contiguous() const { return m_map.span_is_contiguous(); } + KOKKOS_INLINE_FUNCTION constexpr bool is_allocated() const { + return m_map.data() != nullptr; + } KOKKOS_INLINE_FUNCTION constexpr pointer_type data() const { return m_map.data(); } @@ -841,10 +843,9 @@ class OffsetView : public ViewTraits<DataType, Properties...> { // interoperability with View private: - typedef View<typename traits::scalar_array_type, - typename traits::array_layout, typename traits::device_type, - typename traits::memory_traits> - view_type; + using view_type = + View<typename traits::scalar_array_type, typename traits::array_layout, + typename traits::device_type, typename traits::memory_traits>; public: KOKKOS_INLINE_FUNCTION @@ -856,8 +857,8 @@ class OffsetView : public ViewTraits<DataType, Properties...> { template <class RT, class... RP> KOKKOS_INLINE_FUNCTION OffsetView(const View<RT, RP...>& aview) : m_track(aview.impl_track()), m_map() { - typedef typename OffsetView<RT, RP...>::traits SrcTraits; - typedef Kokkos::Impl::ViewMapping<traits, SrcTraits, void> Mapping; + using SrcTraits = typename OffsetView<RT, RP...>::traits; + using Mapping = Kokkos::Impl::ViewMapping<traits, SrcTraits, void>; static_assert(Mapping::is_assignable, "Incompatible OffsetView copy construction"); Mapping::assign(m_map, aview.impl_map(), m_track); @@ -871,8 +872,8 @@ class OffsetView : public ViewTraits<DataType, Properties...> { KOKKOS_INLINE_FUNCTION OffsetView(const View<RT, RP...>& aview, const index_list_type& minIndices) : m_track(aview.impl_track()), m_map() { - typedef typename OffsetView<RT, RP...>::traits SrcTraits; - typedef Kokkos::Impl::ViewMapping<traits, SrcTraits, void> Mapping; + using SrcTraits = typename OffsetView<RT, RP...>::traits; + using Mapping = Kokkos::Impl::ViewMapping<traits, SrcTraits, void>; static_assert(Mapping::is_assignable, "Incompatible OffsetView copy construction"); Mapping::assign(m_map, aview.impl_map(), m_track); @@ -894,8 +895,8 @@ class OffsetView : public ViewTraits<DataType, Properties...> { KOKKOS_INLINE_FUNCTION OffsetView(const View<RT, RP...>& aview, const begins_type& beg) : m_track(aview.impl_track()), m_map(), m_begins(beg) { - typedef typename OffsetView<RT, RP...>::traits SrcTraits; - typedef Kokkos::Impl::ViewMapping<traits, SrcTraits, void> Mapping; + using SrcTraits = typename OffsetView<RT, RP...>::traits; + using Mapping = Kokkos::Impl::ViewMapping<traits, SrcTraits, void>; static_assert(Mapping::is_assignable, "Incompatible OffsetView copy construction"); Mapping::assign(m_map, aview.impl_map(), m_track); @@ -917,8 +918,8 @@ class OffsetView : public ViewTraits<DataType, Properties...> { : m_track(rhs.m_track, traits::is_managed), m_map(), m_begins(rhs.m_begins) { - typedef typename OffsetView<RT, RP...>::traits SrcTraits; - typedef Kokkos::Impl::ViewMapping<traits, SrcTraits, void> Mapping; + using SrcTraits = typename OffsetView<RT, RP...>::traits; + using Mapping = Kokkos::Impl::ViewMapping<traits, SrcTraits, void>; static_assert(Mapping::is_assignable, "Incompatible OffsetView copy construction"); Mapping::assign(m_map, rhs.m_map, rhs.m_track); // swb what about assign? @@ -1215,11 +1216,11 @@ class OffsetView : public ViewTraits<DataType, Properties...> { for (size_t i = 0; i < Rank; ++i) m_begins[i] = minIndices.begin()[i]; // Append layout and spaces if not input - typedef Kokkos::Impl::ViewCtorProp<P...> alloc_prop_input; + using alloc_prop_input = Kokkos::Impl::ViewCtorProp<P...>; // use 'std::integral_constant<unsigned,I>' for non-types // to avoid duplicate class error. - typedef Kokkos::Impl::ViewCtorProp< + using alloc_prop = Kokkos::Impl::ViewCtorProp< P..., typename std::conditional<alloc_prop_input::has_label, std::integral_constant<unsigned, 0>, @@ -1231,19 +1232,13 @@ class OffsetView : public ViewTraits<DataType, Properties...> { typename std::conditional< alloc_prop_input::has_execution_space, std::integral_constant<unsigned, 2>, - typename traits::device_type::execution_space>::type> - alloc_prop; + typename traits::device_type::execution_space>::type>; static_assert(traits::is_managed, "OffsetView allocation constructor requires managed memory"); if (alloc_prop::initialize && -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - !alloc_prop::execution_space::is_initialized() -#else - !alloc_prop::execution_space::impl_is_initialized() -#endif - ) { + !alloc_prop::execution_space::impl_is_initialized()) { // If initializing view data then // the execution space must be initialized. Kokkos::Impl::throw_runtime_exception( @@ -1764,8 +1759,8 @@ template <class LT, class... LP, class RT, class... RP> KOKKOS_INLINE_FUNCTION bool operator==(const OffsetView<LT, LP...>& lhs, const OffsetView<RT, RP...>& rhs) { // Same data, layout, dimensions - typedef ViewTraits<LT, LP...> lhs_traits; - typedef ViewTraits<RT, RP...> rhs_traits; + using lhs_traits = ViewTraits<LT, LP...>; + using rhs_traits = ViewTraits<RT, RP...>; return std::is_same<typename lhs_traits::const_value_type, typename rhs_traits::const_value_type>::value && @@ -1795,8 +1790,8 @@ template <class LT, class... LP, class RT, class... RP> KOKKOS_INLINE_FUNCTION bool operator==(const View<LT, LP...>& lhs, const OffsetView<RT, RP...>& rhs) { // Same data, layout, dimensions - typedef ViewTraits<LT, LP...> lhs_traits; - typedef ViewTraits<RT, RP...> rhs_traits; + using lhs_traits = ViewTraits<LT, LP...>; + using rhs_traits = ViewTraits<RT, RP...>; return std::is_same<typename lhs_traits::const_value_type, typename rhs_traits::const_value_type>::value && @@ -1825,10 +1820,10 @@ KOKKOS_INLINE_FUNCTION bool operator==(const OffsetView<LT, LP...>& lhs, //---------------------------------------------------------------------------- namespace Kokkos { -namespace Experimental { + template <class DT, class... DP> inline void deep_copy( - const OffsetView<DT, DP...>& dst, + const Experimental::OffsetView<DT, DP...>& dst, typename ViewTraits<DT, DP...>::const_value_type& value, typename std::enable_if<std::is_same< typename ViewTraits<DT, DP...>::specialize, void>::value>::type* = @@ -1844,7 +1839,8 @@ inline void deep_copy( template <class DT, class... DP, class ST, class... SP> inline void deep_copy( - const OffsetView<DT, DP...>& dst, const OffsetView<ST, SP...>& value, + const Experimental::OffsetView<DT, DP...>& dst, + const Experimental::OffsetView<ST, SP...>& value, typename std::enable_if<std::is_same< typename ViewTraits<DT, DP...>::specialize, void>::value>::type* = nullptr) { @@ -1858,7 +1854,8 @@ inline void deep_copy( } template <class DT, class... DP, class ST, class... SP> inline void deep_copy( - const OffsetView<DT, DP...>& dst, const View<ST, SP...>& value, + const Experimental::OffsetView<DT, DP...>& dst, + const View<ST, SP...>& value, typename std::enable_if<std::is_same< typename ViewTraits<DT, DP...>::specialize, void>::value>::type* = nullptr) { @@ -1873,7 +1870,8 @@ inline void deep_copy( template <class DT, class... DP, class ST, class... SP> inline void deep_copy( - const View<DT, DP...>& dst, const OffsetView<ST, SP...>& value, + const View<DT, DP...>& dst, + const Experimental::OffsetView<ST, SP...>& value, typename std::enable_if<std::is_same< typename ViewTraits<DT, DP...>::specialize, void>::value>::type* = nullptr) { @@ -1884,53 +1882,54 @@ inline void deep_copy( Kokkos::deep_copy(dst, value.view()); } + namespace Impl { // Deduce Mirror Types template <class Space, class T, class... P> struct MirrorOffsetViewType { // The incoming view_type - typedef typename Kokkos::Experimental::OffsetView<T, P...> src_view_type; + using src_view_type = typename Kokkos::Experimental::OffsetView<T, P...>; // The memory space for the mirror view - typedef typename Space::memory_space memory_space; + using memory_space = typename Space::memory_space; // Check whether it is the same memory space enum { is_same_memspace = std::is_same<memory_space, typename src_view_type::memory_space>::value }; // The array_layout - typedef typename src_view_type::array_layout array_layout; + using array_layout = typename src_view_type::array_layout; // The data type (we probably want it non-const since otherwise we can't even // deep_copy to it. - typedef typename src_view_type::non_const_data_type data_type; + using data_type = typename src_view_type::non_const_data_type; // The destination view type if it is not the same memory space - typedef Kokkos::Experimental::OffsetView<data_type, array_layout, Space> - dest_view_type; + using dest_view_type = + Kokkos::Experimental::OffsetView<data_type, array_layout, Space>; // If it is the same memory_space return the existsing view_type // This will also keep the unmanaged trait if necessary - typedef typename std::conditional<is_same_memspace, src_view_type, - dest_view_type>::type view_type; + using view_type = typename std::conditional<is_same_memspace, src_view_type, + dest_view_type>::type; }; template <class Space, class T, class... P> struct MirrorOffsetType { // The incoming view_type - typedef typename Kokkos::Experimental::OffsetView<T, P...> src_view_type; + using src_view_type = typename Kokkos::Experimental::OffsetView<T, P...>; // The memory space for the mirror view - typedef typename Space::memory_space memory_space; + using memory_space = typename Space::memory_space; // Check whether it is the same memory space enum { is_same_memspace = std::is_same<memory_space, typename src_view_type::memory_space>::value }; // The array_layout - typedef typename src_view_type::array_layout array_layout; + using array_layout = typename src_view_type::array_layout; // The data type (we probably want it non-const since otherwise we can't even // deep_copy to it. - typedef typename src_view_type::non_const_data_type data_type; + using data_type = typename src_view_type::non_const_data_type; // The destination view type if it is not the same memory space - typedef Kokkos::Experimental::OffsetView<data_type, array_layout, Space> - view_type; + using view_type = + Kokkos::Experimental::OffsetView<data_type, array_layout, Space>; }; } // namespace Impl @@ -1941,9 +1940,9 @@ create_mirror( const Kokkos::Experimental::OffsetView<T, P...>& src, typename std::enable_if< !std::is_same<typename Kokkos::ViewTraits<T, P...>::array_layout, - Kokkos::LayoutStride>::value>::type* = 0) { - typedef OffsetView<T, P...> src_type; - typedef typename src_type::HostMirror dst_type; + Kokkos::LayoutStride>::value>::type* = nullptr) { + using src_type = Experimental::OffsetView<T, P...>; + using dst_type = typename src_type::HostMirror; return dst_type( Kokkos::Impl::ViewCtorProp<std::string>( @@ -1961,9 +1960,9 @@ create_mirror( const Kokkos::Experimental::OffsetView<T, P...>& src, typename std::enable_if< std::is_same<typename Kokkos::ViewTraits<T, P...>::array_layout, - Kokkos::LayoutStride>::value>::type* = 0) { - typedef OffsetView<T, P...> src_type; - typedef typename src_type::HostMirror dst_type; + Kokkos::LayoutStride>::value>::type* = nullptr) { + using src_type = Experimental::OffsetView<T, P...>; + using dst_type = typename src_type::HostMirror; Kokkos::LayoutStride layout; @@ -1992,14 +1991,13 @@ create_mirror( // Create a mirror in a new space (specialization for different space) template <class Space, class T, class... P> -typename Kokkos::Experimental::Impl::MirrorOffsetType<Space, T, P...>::view_type +typename Kokkos::Impl::MirrorOffsetType<Space, T, P...>::view_type create_mirror(const Space&, const Kokkos::Experimental::OffsetView<T, P...>& src) { - return typename Kokkos::Experimental::Impl::MirrorOffsetType< - Space, T, P...>::view_type(src.label(), src.layout(), - {src.begin(0), src.begin(1), src.begin(2), - src.begin(3), src.begin(4), src.begin(5), - src.begin(6), src.begin(7)}); + return typename Kokkos::Impl::MirrorOffsetType<Space, T, P...>::view_type( + src.label(), src.layout(), + {src.begin(0), src.begin(1), src.begin(2), src.begin(3), src.begin(4), + src.begin(5), src.begin(6), src.begin(7)}); } template <class T, class... P> @@ -2030,34 +2028,31 @@ create_mirror_view( std::is_same< typename Kokkos::Experimental::OffsetView<T, P...>::data_type, typename Kokkos::Experimental::OffsetView< - T, P...>::HostMirror::data_type>::value)>::type* = 0) { - return Kokkos::Experimental::create_mirror(src); + T, P...>::HostMirror::data_type>::value)>::type* = nullptr) { + return Kokkos::create_mirror(src); } // Create a mirror view in a new space (specialization for same space) template <class Space, class T, class... P> -typename Kokkos::Experimental::Impl::MirrorOffsetViewType<Space, T, - P...>::view_type +typename Kokkos::Impl::MirrorOffsetViewType<Space, T, P...>::view_type create_mirror_view(const Space&, const Kokkos::Experimental::OffsetView<T, P...>& src, typename std::enable_if<Impl::MirrorOffsetViewType< - Space, T, P...>::is_same_memspace>::type* = 0) { + Space, T, P...>::is_same_memspace>::type* = nullptr) { return src; } // Create a mirror view in a new space (specialization for different space) template <class Space, class T, class... P> -typename Kokkos::Experimental::Impl::MirrorOffsetViewType<Space, T, - P...>::view_type +typename Kokkos::Impl::MirrorOffsetViewType<Space, T, P...>::view_type create_mirror_view(const Space&, const Kokkos::Experimental::OffsetView<T, P...>& src, typename std::enable_if<!Impl::MirrorOffsetViewType< - Space, T, P...>::is_same_memspace>::type* = 0) { - return typename Kokkos::Experimental::Impl::MirrorOffsetViewType< - Space, T, P...>::view_type(src.label(), src.layout(), - {src.begin(0), src.begin(1), src.begin(2), - src.begin(3), src.begin(4), src.begin(5), - src.begin(6), src.begin(7)}); + Space, T, P...>::is_same_memspace>::type* = nullptr) { + return typename Kokkos::Impl::MirrorOffsetViewType<Space, T, P...>::view_type( + src.label(), src.layout(), + {src.begin(0), src.begin(1), src.begin(2), src.begin(3), src.begin(4), + src.begin(5), src.begin(6), src.begin(7)}); } // // // Create a mirror view and deep_copy in a new space (specialization for @@ -2068,7 +2063,7 @@ create_mirror_view(const Space&, // , std::string const& name = "" // , typename // std::enable_if<Impl::MirrorViewType<Space,T,P -// ...>::is_same_memspace>::type* = 0 ) { +// ...>::is_same_memspace>::type* = nullptr) { // (void)name; // return src; // } @@ -2081,11 +2076,11 @@ create_mirror_view(const Space&, // , std::string const& name = "" // , typename // std::enable_if<!Impl::MirrorViewType<Space,T,P -// ...>::is_same_memspace>::type* = 0 ) { +// ...>::is_same_memspace>::type* = nullptr) { // using Mirror = typename // Kokkos::Experimental::Impl::MirrorViewType<Space,T,P ...>::view_type; // std::string label = name.empty() ? src.label() : name; -// auto mirror = Mirror(ViewAllocateWithoutInitializing(label), src.layout(), +// auto mirror = Mirror(view_alloc(WithoutInitializing, label), src.layout(), // { src.begin(0), src.begin(1), src.begin(2), // src.begin(3), src.begin(4), // src.begin(5), src.begin(6), src.begin(7) }); @@ -2093,7 +2088,6 @@ create_mirror_view(const Space&, // return mirror; // } -} // namespace Experimental } /* namespace Kokkos */ //---------------------------------------------------------------------------- diff --git a/packages/kokkos/containers/src/Kokkos_ScatterView.hpp b/packages/kokkos/containers/src/Kokkos_ScatterView.hpp index eb3bc1f2b..5e18f5a80 100644 --- a/packages/kokkos/containers/src/Kokkos_ScatterView.hpp +++ b/packages/kokkos/containers/src/Kokkos_ScatterView.hpp @@ -62,16 +62,16 @@ namespace Experimental { * - These corresponds to subset of the reducers in parallel_reduce * - See Implementations of ScatterValue for details. */ -enum : int { - ScatterSum, - ScatterProd, - ScatterMax, - ScatterMin, -}; +struct ScatterSum {}; +struct ScatterProd {}; +struct ScatterMax {}; +struct ScatterMin {}; -enum : int { ScatterNonDuplicated = 0, ScatterDuplicated = 1 }; +struct ScatterNonDuplicated {}; +struct ScatterDuplicated {}; -enum : int { ScatterNonAtomic = 0, ScatterAtomic = 1 }; +struct ScatterNonAtomic {}; +struct ScatterAtomic {}; } // namespace Experimental } // namespace Kokkos @@ -83,159 +83,216 @@ namespace Experimental { template <typename ExecSpace> struct DefaultDuplication; -template <typename ExecSpace, int duplication> +template <typename ExecSpace, typename Duplication> struct DefaultContribution; #ifdef KOKKOS_ENABLE_SERIAL template <> struct DefaultDuplication<Kokkos::Serial> { - enum : int { value = Kokkos::Experimental::ScatterNonDuplicated }; + using type = Kokkos::Experimental::ScatterNonDuplicated; }; + template <> struct DefaultContribution<Kokkos::Serial, Kokkos::Experimental::ScatterNonDuplicated> { - enum : int { value = Kokkos::Experimental::ScatterNonAtomic }; + using type = Kokkos::Experimental::ScatterNonAtomic; }; template <> struct DefaultContribution<Kokkos::Serial, Kokkos::Experimental::ScatterDuplicated> { - enum : int { value = Kokkos::Experimental::ScatterNonAtomic }; + using type = Kokkos::Experimental::ScatterNonAtomic; }; #endif #ifdef KOKKOS_ENABLE_OPENMP template <> struct DefaultDuplication<Kokkos::OpenMP> { - enum : int { value = Kokkos::Experimental::ScatterDuplicated }; + using type = Kokkos::Experimental::ScatterDuplicated; }; template <> struct DefaultContribution<Kokkos::OpenMP, Kokkos::Experimental::ScatterNonDuplicated> { - enum : int { value = Kokkos::Experimental::ScatterAtomic }; + using type = Kokkos::Experimental::ScatterAtomic; }; template <> struct DefaultContribution<Kokkos::OpenMP, Kokkos::Experimental::ScatterDuplicated> { - enum : int { value = Kokkos::Experimental::ScatterNonAtomic }; + using type = Kokkos::Experimental::ScatterNonAtomic; +}; +#endif + +#ifdef KOKKOS_ENABLE_OPENMPTARGET +template <> +struct DefaultDuplication<Kokkos::Experimental::OpenMPTarget> { + using type = Kokkos::Experimental::ScatterNonDuplicated; +}; +template <> +struct DefaultContribution<Kokkos::Experimental::OpenMPTarget, + Kokkos::Experimental::ScatterNonDuplicated> { + using type = Kokkos::Experimental::ScatterAtomic; +}; +template <> +struct DefaultContribution<Kokkos::Experimental::OpenMPTarget, + Kokkos::Experimental::ScatterDuplicated> { + using type = Kokkos::Experimental::ScatterNonAtomic; }; #endif #ifdef KOKKOS_ENABLE_HPX template <> struct DefaultDuplication<Kokkos::Experimental::HPX> { - enum : int { value = Kokkos::Experimental::ScatterDuplicated }; + using type = Kokkos::Experimental::ScatterDuplicated; }; template <> struct DefaultContribution<Kokkos::Experimental::HPX, Kokkos::Experimental::ScatterNonDuplicated> { - enum : int { value = Kokkos::Experimental::ScatterAtomic }; + using type = Kokkos::Experimental::ScatterAtomic; }; template <> struct DefaultContribution<Kokkos::Experimental::HPX, Kokkos::Experimental::ScatterDuplicated> { - enum : int { value = Kokkos::Experimental::ScatterNonAtomic }; + using type = Kokkos::Experimental::ScatterNonAtomic; }; #endif #ifdef KOKKOS_ENABLE_THREADS template <> struct DefaultDuplication<Kokkos::Threads> { - enum : int { value = Kokkos::Experimental::ScatterDuplicated }; + using type = Kokkos::Experimental::ScatterDuplicated; }; template <> struct DefaultContribution<Kokkos::Threads, Kokkos::Experimental::ScatterNonDuplicated> { - enum : int { value = Kokkos::Experimental::ScatterAtomic }; + using type = Kokkos::Experimental::ScatterAtomic; }; template <> struct DefaultContribution<Kokkos::Threads, Kokkos::Experimental::ScatterDuplicated> { - enum : int { value = Kokkos::Experimental::ScatterNonAtomic }; + using type = Kokkos::Experimental::ScatterNonAtomic; }; #endif #ifdef KOKKOS_ENABLE_CUDA template <> struct DefaultDuplication<Kokkos::Cuda> { - enum : int { value = Kokkos::Experimental::ScatterNonDuplicated }; + using type = Kokkos::Experimental::ScatterNonDuplicated; }; template <> struct DefaultContribution<Kokkos::Cuda, Kokkos::Experimental::ScatterNonDuplicated> { - enum : int { value = Kokkos::Experimental::ScatterAtomic }; + using type = Kokkos::Experimental::ScatterAtomic; }; template <> struct DefaultContribution<Kokkos::Cuda, Kokkos::Experimental::ScatterDuplicated> { - enum : int { value = Kokkos::Experimental::ScatterAtomic }; + using type = Kokkos::Experimental::ScatterAtomic; }; #endif #ifdef KOKKOS_ENABLE_HIP template <> struct DefaultDuplication<Kokkos::Experimental::HIP> { - enum : int { value = Kokkos::Experimental::ScatterNonDuplicated }; + using type = Kokkos::Experimental::ScatterNonDuplicated; }; template <> struct DefaultContribution<Kokkos::Experimental::HIP, Kokkos::Experimental::ScatterNonDuplicated> { - enum : int { value = Kokkos::Experimental::ScatterAtomic }; + using type = Kokkos::Experimental::ScatterAtomic; }; template <> struct DefaultContribution<Kokkos::Experimental::HIP, Kokkos::Experimental::ScatterDuplicated> { - enum : int { value = Kokkos::Experimental::ScatterAtomic }; + using type = Kokkos::Experimental::ScatterAtomic; }; #endif -/* ScatterValue <Op=ScatterSum, contribution=ScatterNonAtomic> is the object - returned by the access operator() of ScatterAccess, This class inherits from - the Sum<> reducer and it wraps join(dest, src) with convenient operator+=, - etc. Note the addition of update(ValueType const& rhs) and reset() so that - all reducers can have common functions See ReduceDuplicates and - ResetDuplicates ) */ -template <typename ValueType, int Op, typename DeviceType, int contribution> +#ifdef KOKKOS_ENABLE_SYCL +template <> +struct DefaultDuplication<Kokkos::Experimental::SYCL> { + using type = Kokkos::Experimental::ScatterNonDuplicated; +}; +template <> +struct DefaultContribution<Kokkos::Experimental::SYCL, + Kokkos::Experimental::ScatterNonDuplicated> { + using type = Kokkos::Experimental::ScatterAtomic; +}; +template <> +struct DefaultContribution<Kokkos::Experimental::SYCL, + Kokkos::Experimental::ScatterDuplicated> { + using type = Kokkos::Experimental::ScatterAtomic; +}; +#endif + +// FIXME All these scatter values need overhaul: +// - like should they be copyable at all? +// - what is the internal handle type +// - remove join +// - consistently use the update function in operators +template <typename ValueType, typename Op, typename DeviceType, + typename Contribution> struct ScatterValue; +/* ScatterValue <Op=ScatterSum, Contribution=ScatterNonAtomic> is + the object returned by the access operator() of ScatterAccess. This class + inherits from the Sum<> reducer and it wraps join(dest, src) with convenient + operator+=, etc. Note the addition of update(ValueType const& rhs) and + reset() so that all reducers can have common functions See ReduceDuplicates + and ResetDuplicates ) */ template <typename ValueType, typename DeviceType> struct ScatterValue<ValueType, Kokkos::Experimental::ScatterSum, DeviceType, - Kokkos::Experimental::ScatterNonAtomic> - : Sum<ValueType, DeviceType> { + Kokkos::Experimental::ScatterNonAtomic> { + ValueType& value; + public: KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ValueType& value_in) - : Sum<ValueType, DeviceType>(value_in) {} + : value(value_in) {} KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ScatterValue&& other) - : Sum<ValueType, DeviceType>(other.reference()) {} + : value(other.value) {} KOKKOS_FORCEINLINE_FUNCTION void operator+=(ValueType const& rhs) { - this->join(this->reference(), rhs); + update(rhs); } + KOKKOS_FORCEINLINE_FUNCTION void operator++() { update(1); } + KOKKOS_FORCEINLINE_FUNCTION void operator++(int) { update(1); } KOKKOS_FORCEINLINE_FUNCTION void operator-=(ValueType const& rhs) { - this->join(this->reference(), -rhs); + update(ValueType(-rhs)); } + KOKKOS_FORCEINLINE_FUNCTION void operator--() { update(ValueType(-1)); } + KOKKOS_FORCEINLINE_FUNCTION void operator--(int) { update(ValueType(-1)); } KOKKOS_FORCEINLINE_FUNCTION void update(ValueType const& rhs) { - this->join(this->reference(), rhs); + value += rhs; + } + KOKKOS_FORCEINLINE_FUNCTION void reset() { + value = reduction_identity<ValueType>::sum(); } - KOKKOS_FORCEINLINE_FUNCTION void reset() { this->init(this->reference()); } }; -/* ScatterValue <Op=ScatterSum, contribution=ScatterAtomic> is the object - returned by the access operator() - * of ScatterAccess, similar to that returned by an Atomic View, it wraps - Kokkos::atomic_add with convenient operator+=, etc. This version also has the - update(rhs) and reset() functions. */ +/* ScatterValue <Op=ScatterSum, Contribution=ScatterAtomic> is the + object returned by the access operator() of ScatterAccess. This class inherits + from the Sum<> reducer, and similar to that returned by an Atomic View, it + wraps Kokkos::atomic_add with convenient operator+=, etc. This version also has + the update(rhs) and reset() functions. */ template <typename ValueType, typename DeviceType> struct ScatterValue<ValueType, Kokkos::Experimental::ScatterSum, DeviceType, - Kokkos::Experimental::ScatterAtomic> - : Sum<ValueType, DeviceType> { + Kokkos::Experimental::ScatterAtomic> { + ValueType& value; + public: KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ValueType& value_in) - : Sum<ValueType, DeviceType>(value_in) {} + : value(value_in) {} KOKKOS_FORCEINLINE_FUNCTION void operator+=(ValueType const& rhs) { - this->join(this->reference(), rhs); + this->join(value, rhs); } + KOKKOS_FORCEINLINE_FUNCTION void operator++() { this->join(value, 1); } + KOKKOS_FORCEINLINE_FUNCTION void operator++(int) { this->join(value, 1); } KOKKOS_FORCEINLINE_FUNCTION void operator-=(ValueType const& rhs) { - this->join(this->reference(), -rhs); + this->join(value, ValueType(-rhs)); + } + KOKKOS_FORCEINLINE_FUNCTION void operator--() { + this->join(value, ValueType(-1)); + } + KOKKOS_FORCEINLINE_FUNCTION void operator--(int) { + this->join(value, ValueType(-1)); } KOKKOS_INLINE_FUNCTION @@ -249,58 +306,67 @@ struct ScatterValue<ValueType, Kokkos::Experimental::ScatterSum, DeviceType, } KOKKOS_FORCEINLINE_FUNCTION void update(ValueType const& rhs) { - this->join(this->reference(), rhs); + this->join(value, rhs); } - KOKKOS_FORCEINLINE_FUNCTION void reset() { this->init(this->reference()); } + KOKKOS_FORCEINLINE_FUNCTION void reset() { + value = reduction_identity<ValueType>::sum(); + } }; -/* ScatterValue <Op=ScatterProd, contribution=ScatterNonAtomic> is the object - returned by the access operator() of ScatterAccess, This class inherits from - the Prod<> reducer and it wraps join(dest, src) with convenient operator*=, - etc. Note the addition of update(ValueType const& rhs) and reset() so that - all reducers can have common functions See ReduceDuplicates and - ResetDuplicates ) */ +/* ScatterValue <Op=ScatterProd, Contribution=ScatterNonAtomic> is + the object returned by the access operator() of ScatterAccess. This class + inherits from the Prod<> reducer, and it wraps join(dest, src) with + convenient operator*=, etc. Note the addition of update(ValueType const& rhs) + and reset() so that all reducers can have common functions See + ReduceDuplicates and ResetDuplicates ) */ template <typename ValueType, typename DeviceType> struct ScatterValue<ValueType, Kokkos::Experimental::ScatterProd, DeviceType, - Kokkos::Experimental::ScatterNonAtomic> - : Prod<ValueType, DeviceType> { + Kokkos::Experimental::ScatterNonAtomic> { + ValueType& value; + public: KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ValueType& value_in) - : Prod<ValueType, DeviceType>(value_in) {} + : value(value_in) {} KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ScatterValue&& other) - : Prod<ValueType, DeviceType>(other.reference()) {} + : value(other.value) {} KOKKOS_FORCEINLINE_FUNCTION void operator*=(ValueType const& rhs) { - this->join(this->reference(), rhs); + value *= rhs; } KOKKOS_FORCEINLINE_FUNCTION void operator/=(ValueType const& rhs) { - this->join(this->reference(), static_cast<ValueType>(1) / rhs); + value /= rhs; } + KOKKOS_FORCEINLINE_FUNCTION void update(ValueType const& rhs) { - this->join(this->reference(), rhs); + value *= rhs; + } + KOKKOS_FORCEINLINE_FUNCTION void reset() { + value = reduction_identity<ValueType>::prod(); } - KOKKOS_FORCEINLINE_FUNCTION void reset() { this->init(this->reference()); } }; -/* ScatterValue <Op=ScatterProd, contribution=ScatterAtomic> is the object - returned by the access operator() - * of ScatterAccess, similar to that returned by an Atomic View, it wraps and - atomic_prod with convenient operator*=, etc. atomic_prod uses the - atomic_compare_exchange. This version also has the update(rhs) and reset() - functions. */ +/* ScatterValue <Op=ScatterProd, Contribution=ScatterAtomic> is the + object returned by the access operator() of ScatterAccess. This class + inherits from the Prod<> reducer, and similar to that returned by an Atomic + View, it wraps and atomic_prod with convenient operator*=, etc. atomic_prod + uses the atomic_compare_exchange. This version also has the update(rhs) + and reset() functions. */ template <typename ValueType, typename DeviceType> struct ScatterValue<ValueType, Kokkos::Experimental::ScatterProd, DeviceType, - Kokkos::Experimental::ScatterAtomic> - : Prod<ValueType, DeviceType> { + Kokkos::Experimental::ScatterAtomic> { + ValueType& value; + public: KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ValueType& value_in) - : Prod<ValueType, DeviceType>(value_in) {} + : value(value_in) {} + KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ScatterValue&& other) + : value(other.value) {} KOKKOS_FORCEINLINE_FUNCTION void operator*=(ValueType const& rhs) { - this->join(this->reference(), rhs); + Kokkos::atomic_mul(&value, rhs); } KOKKOS_FORCEINLINE_FUNCTION void operator/=(ValueType const& rhs) { - this->join(this->reference(), static_cast<ValueType>(1) / rhs); + Kokkos::atomic_div(&value, rhs); } KOKKOS_FORCEINLINE_FUNCTION @@ -317,53 +383,62 @@ struct ScatterValue<ValueType, Kokkos::Experimental::ScatterProd, DeviceType, KOKKOS_INLINE_FUNCTION void join(ValueType& dest, const ValueType& src) const { - atomic_prod(dest, src); + atomic_prod(&dest, src); } KOKKOS_INLINE_FUNCTION void join(volatile ValueType& dest, const volatile ValueType& src) const { - atomic_prod(dest, src); + atomic_prod(&dest, src); } KOKKOS_FORCEINLINE_FUNCTION void update(ValueType const& rhs) { - this->join(this->reference(), rhs); + atomic_prod(&value, rhs); + } + KOKKOS_FORCEINLINE_FUNCTION void reset() { + value = reduction_identity<ValueType>::prod(); } - KOKKOS_FORCEINLINE_FUNCTION void reset() { this->init(this->reference()); } }; -/* ScatterValue <Op=ScatterMin, contribution=ScatterNonAtomic> is the object - returned by the access operator() of ScatterAccess, This class inherits from - the Min<> reducer and it wraps join(dest, src) with convenient update(rhs). - Note the addition of update(ValueType const& rhs) and reset() are so that all - reducers can have a common update function See ReduceDuplicates and - ResetDuplicates ) */ +/* ScatterValue <Op=ScatterMin, Contribution=ScatterNonAtomic> is + the object returned by the access operator() of ScatterAccess. This class + inherits from the Min<> reducer and it wraps join(dest, src) with convenient + update(rhs). Note the addition of update(ValueType const& rhs) and reset() + are so that all reducers can have a common update function See + ReduceDuplicates and ResetDuplicates ) */ template <typename ValueType, typename DeviceType> struct ScatterValue<ValueType, Kokkos::Experimental::ScatterMin, DeviceType, - Kokkos::Experimental::ScatterNonAtomic> - : Min<ValueType, DeviceType> { - public: + Kokkos::Experimental::ScatterNonAtomic> { + ValueType& value; KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ValueType& value_in) - : Min<ValueType, DeviceType>(value_in) {} + : value(value_in) {} KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ScatterValue&& other) - : Min<ValueType, DeviceType>(other.reference()) {} + : value(other.value) {} + + public: KOKKOS_FORCEINLINE_FUNCTION void update(ValueType const& rhs) { - this->join(this->reference(), rhs); + value = rhs < value ? rhs : value; + } + KOKKOS_FORCEINLINE_FUNCTION void reset() { + value = reduction_identity<ValueType>::min(); } - KOKKOS_FORCEINLINE_FUNCTION void reset() { this->init(this->reference()); } }; -/* ScatterValue <Op=ScatterMin, contribution=ScatterAtomic> is the object - returned by the access operator() - * of ScatterAccess, similar to that returned by an Atomic View, it wraps and - atomic_min with the update(rhs) function. atomic_min uses the - atomic_compare_exchange. This version also has the reset() function */ +/* ScatterValue <Op=ScatterMin, Contribution=ScatterAtomic> is the + object returned by the access operator() of ScatterAccess. This class + inherits from the Min<> reducer, and similar to that returned by an Atomic + View, it wraps atomic_min with join(), etc. atomic_min uses the + atomic_compare_exchange. This version also has the update(rhs) and reset() + functions. */ template <typename ValueType, typename DeviceType> struct ScatterValue<ValueType, Kokkos::Experimental::ScatterMin, DeviceType, - Kokkos::Experimental::ScatterAtomic> - : Min<ValueType, DeviceType> { + Kokkos::Experimental::ScatterAtomic> { + ValueType& value; + public: KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ValueType& value_in) - : Min<ValueType, DeviceType>(value_in) {} + : value(value_in) {} + KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ScatterValue&& other) + : value(other.value) {} KOKKOS_FORCEINLINE_FUNCTION void atomic_min(ValueType& dest, const ValueType& src) const { @@ -388,44 +463,53 @@ struct ScatterValue<ValueType, Kokkos::Experimental::ScatterMin, DeviceType, } KOKKOS_FORCEINLINE_FUNCTION void update(ValueType const& rhs) { - this->join(this->reference(), rhs); + this->join(value, rhs); + } + KOKKOS_FORCEINLINE_FUNCTION void reset() { + value = reduction_identity<ValueType>::min(); } - KOKKOS_FORCEINLINE_FUNCTION void reset() { this->init(this->reference()); } }; -/* ScatterValue <Op=ScatterMax, contribution=ScatterNonAtomic> is the object - returned by the access operataor() of ScatterAccess, This class inherits from - the Max<> reducer and it wraps join(dest, src) with convenient update(rhs). - Note the addition of update(ValueType const& rhs) and reset() are so that all - reducers can have a common update function See ReduceDuplicates and - ResetDuplicates ) */ +/* ScatterValue <Op=ScatterMax, Contribution=ScatterNonAtomic> is + the object returned by the access operator() of ScatterAccess. This class + inherits from the Max<> reducer and it wraps join(dest, src) with convenient + update(rhs). Note the addition of update(ValueType const& rhs) and reset() + are so that all reducers can have a common update function See + ReduceDuplicates and ResetDuplicates ) */ template <typename ValueType, typename DeviceType> struct ScatterValue<ValueType, Kokkos::Experimental::ScatterMax, DeviceType, - Kokkos::Experimental::ScatterNonAtomic> - : Max<ValueType, DeviceType> { + Kokkos::Experimental::ScatterNonAtomic> { + ValueType& value; + public: KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ValueType& value_in) - : Max<ValueType, DeviceType>(value_in) {} + : value(value_in) {} KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ScatterValue&& other) - : Max<ValueType, DeviceType>(other.reference()) {} + : value(other.value) {} KOKKOS_FORCEINLINE_FUNCTION void update(ValueType const& rhs) { - this->join(this->reference(), rhs); + value = rhs > value ? rhs : value; + } + KOKKOS_FORCEINLINE_FUNCTION void reset() { + value = reduction_identity<ValueType>::max(); } - KOKKOS_FORCEINLINE_FUNCTION void reset() { this->init(this->reference()); } }; -/* ScatterValue <Op=ScatterMax, contribution=ScatterAtomic> is the object - returned by the access operator() - * of ScatterAccess, similar to that returned by an Atomic View, it wraps and - atomic_max with the update(rhs) function. atomic_max uses the - atomic_compare_exchange. This version also has the reset() function */ +/* ScatterValue <Op=ScatterMax, Contribution=ScatterAtomic> is the + object returned by the access operator() of ScatterAccess. This class + inherits from the Max<> reducer, and similar to that returned by an Atomic + View, it wraps atomic_max with join(), etc. atomic_max uses the + atomic_compare_exchange. This version also has the update(rhs) and reset() + functions. */ template <typename ValueType, typename DeviceType> struct ScatterValue<ValueType, Kokkos::Experimental::ScatterMax, DeviceType, - Kokkos::Experimental::ScatterAtomic> - : Max<ValueType, DeviceType> { + Kokkos::Experimental::ScatterAtomic> { + ValueType& value; + public: KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ValueType& value_in) - : Max<ValueType, DeviceType>(value_in) {} + : value(value_in) {} + KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ScatterValue&& other) + : value(other.value) {} KOKKOS_FORCEINLINE_FUNCTION void atomic_max(ValueType& dest, const ValueType& src) const { @@ -450,9 +534,11 @@ struct ScatterValue<ValueType, Kokkos::Experimental::ScatterMax, DeviceType, } KOKKOS_FORCEINLINE_FUNCTION void update(ValueType const& rhs) { - this->join(this->reference(), rhs); + this->join(value, rhs); + } + KOKKOS_FORCEINLINE_FUNCTION void reset() { + value = reduction_identity<ValueType>::max(); } - KOKKOS_FORCEINLINE_FUNCTION void reset() { this->init(this->reference()); } }; /* DuplicatedDataType, given a View DataType, will create a new DataType @@ -465,48 +551,48 @@ struct DuplicatedDataType; template <typename T> struct DuplicatedDataType<T, Kokkos::LayoutRight> { - typedef T* value_type; // For LayoutRight, add a star all the way on the left + using value_type = T*; // For LayoutRight, add a star all the way on the left }; template <typename T, size_t N> struct DuplicatedDataType<T[N], Kokkos::LayoutRight> { - typedef typename DuplicatedDataType<T, Kokkos::LayoutRight>::value_type - value_type[N]; + using value_type = + typename DuplicatedDataType<T, Kokkos::LayoutRight>::value_type[N]; }; template <typename T> struct DuplicatedDataType<T[], Kokkos::LayoutRight> { - typedef typename DuplicatedDataType<T, Kokkos::LayoutRight>::value_type - value_type[]; + using value_type = + typename DuplicatedDataType<T, Kokkos::LayoutRight>::value_type[]; }; template <typename T> struct DuplicatedDataType<T*, Kokkos::LayoutRight> { - typedef typename DuplicatedDataType<T, Kokkos::LayoutRight>::value_type* - value_type; + using value_type = + typename DuplicatedDataType<T, Kokkos::LayoutRight>::value_type*; }; template <typename T> struct DuplicatedDataType<T, Kokkos::LayoutLeft> { - typedef T* value_type; + using value_type = T*; }; template <typename T, size_t N> struct DuplicatedDataType<T[N], Kokkos::LayoutLeft> { - typedef typename DuplicatedDataType<T, Kokkos::LayoutLeft>::value_type* - value_type; + using value_type = + typename DuplicatedDataType<T, Kokkos::LayoutLeft>::value_type*; }; template <typename T> struct DuplicatedDataType<T[], Kokkos::LayoutLeft> { - typedef typename DuplicatedDataType<T, Kokkos::LayoutLeft>::value_type* - value_type; + using value_type = + typename DuplicatedDataType<T, Kokkos::LayoutLeft>::value_type*; }; template <typename T> struct DuplicatedDataType<T*, Kokkos::LayoutLeft> { - typedef typename DuplicatedDataType<T, Kokkos::LayoutLeft>::value_type* - value_type; + using value_type = + typename DuplicatedDataType<T, Kokkos::LayoutLeft>::value_type*; }; /* Insert integer argument pack into array */ @@ -526,8 +612,8 @@ void args_to_array(size_t* array, int pos, T dim0, Dims... dims) { subview where the index specified is the largest-stride one. */ template <typename Layout, int rank, typename V, typename... Args> struct Slice { - typedef Slice<Layout, rank - 1, V, Kokkos::Impl::ALL_t, Args...> next; - typedef typename next::value_type value_type; + using next = Slice<Layout, rank - 1, V, Kokkos::Impl::ALL_t, Args...>; + using value_type = typename next::value_type; static value_type get(V const& src, const size_t i, Args... args) { return next::get(src, i, Kokkos::ALL, args...); @@ -536,9 +622,8 @@ struct Slice { template <typename V, typename... Args> struct Slice<Kokkos::LayoutRight, 1, V, Args...> { - typedef - typename Kokkos::Impl::ViewMapping<void, V, const size_t, Args...>::type - value_type; + using value_type = + typename Kokkos::Impl::ViewMapping<void, V, const size_t, Args...>::type; static value_type get(V const& src, const size_t i, Args... args) { return Kokkos::subview(src, i, args...); } @@ -546,20 +631,19 @@ struct Slice<Kokkos::LayoutRight, 1, V, Args...> { template <typename V, typename... Args> struct Slice<Kokkos::LayoutLeft, 1, V, Args...> { - typedef - typename Kokkos::Impl::ViewMapping<void, V, Args..., const size_t>::type - value_type; + using value_type = + typename Kokkos::Impl::ViewMapping<void, V, Args..., const size_t>::type; static value_type get(V const& src, const size_t i, Args... args) { return Kokkos::subview(src, args..., i); } }; -template <typename ExecSpace, typename ValueType, int Op> +template <typename ExecSpace, typename ValueType, typename Op> struct ReduceDuplicates; -template <typename ExecSpace, typename ValueType, int Op> +template <typename ExecSpace, typename ValueType, typename Op> struct ReduceDuplicatesBase { - typedef ReduceDuplicates<ExecSpace, ValueType, Op> Derived; + using Derived = ReduceDuplicates<ExecSpace, ValueType, Op>; ValueType const* src; ValueType* dst; size_t stride; @@ -569,35 +653,20 @@ struct ReduceDuplicatesBase { size_t stride_in, size_t start_in, size_t n_in, std::string const& name) : src(src_in), dst(dest_in), stride(stride_in), start(start_in), n(n_in) { -#if defined(KOKKOS_ENABLE_PROFILING) - uint64_t kpID = 0; - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::beginParallelFor(std::string("reduce_") + name, 0, - &kpID); - } -#else - (void)name; -#endif - typedef RangePolicy<ExecSpace, size_t> policy_type; - typedef Kokkos::Impl::ParallelFor<Derived, policy_type> closure_type; - const closure_type closure(*(static_cast<Derived*>(this)), - policy_type(0, stride)); - closure.execute(); -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::endParallelFor(kpID); - } -#endif + parallel_for( + std::string("Kokkos::ScatterView::ReduceDuplicates [") + name + "]", + RangePolicy<ExecSpace, size_t>(0, stride), + static_cast<Derived const&>(*this)); } }; /* ReduceDuplicates -- Perform reduction on destination array using strided * source Use ScatterValue<> specific to operation to wrap destination array so * that the reduction operation can be accessed via the update(rhs) function */ -template <typename ExecSpace, typename ValueType, int Op> +template <typename ExecSpace, typename ValueType, typename Op> struct ReduceDuplicates : public ReduceDuplicatesBase<ExecSpace, ValueType, Op> { - typedef ReduceDuplicatesBase<ExecSpace, ValueType, Op> Base; + using Base = ReduceDuplicatesBase<ExecSpace, ValueType, Op>; ReduceDuplicates(ValueType const* src_in, ValueType* dst_in, size_t stride_in, size_t start_in, size_t n_in, std::string const& name) : Base(src_in, dst_in, stride_in, start_in, n_in, name) {} @@ -611,44 +680,29 @@ struct ReduceDuplicates } }; -template <typename ExecSpace, typename ValueType, int Op> +template <typename ExecSpace, typename ValueType, typename Op> struct ResetDuplicates; -template <typename ExecSpace, typename ValueType, int Op> +template <typename ExecSpace, typename ValueType, typename Op> struct ResetDuplicatesBase { - typedef ResetDuplicates<ExecSpace, ValueType, Op> Derived; + using Derived = ResetDuplicates<ExecSpace, ValueType, Op>; ValueType* data; ResetDuplicatesBase(ValueType* data_in, size_t size_in, std::string const& name) : data(data_in) { -#if defined(KOKKOS_ENABLE_PROFILING) - uint64_t kpID = 0; - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::beginParallelFor(std::string("reduce_") + name, 0, - &kpID); - } -#else - (void)name; -#endif - typedef RangePolicy<ExecSpace, size_t> policy_type; - typedef Kokkos::Impl::ParallelFor<Derived, policy_type> closure_type; - const closure_type closure(*(static_cast<Derived*>(this)), - policy_type(0, size_in)); - closure.execute(); -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::endParallelFor(kpID); - } -#endif + parallel_for( + std::string("Kokkos::ScatterView::ResetDuplicates [") + name + "]", + RangePolicy<ExecSpace, size_t>(0, size_in), + static_cast<Derived const&>(*this)); } }; /* ResetDuplicates -- Perform reset on destination array * Use ScatterValue<> specific to operation to wrap destination array so that * the reset operation can be accessed via the reset() function */ -template <typename ExecSpace, typename ValueType, int Op> +template <typename ExecSpace, typename ValueType, typename Op> struct ResetDuplicates : public ResetDuplicatesBase<ExecSpace, ValueType, Op> { - typedef ResetDuplicatesBase<ExecSpace, ValueType, Op> Base; + using Base = ResetDuplicatesBase<ExecSpace, ValueType, Op>; ResetDuplicates(ValueType* data_in, size_t size_in, std::string const& name) : Base(data_in, size_in, name) {} KOKKOS_FORCEINLINE_FUNCTION void operator()(size_t i) const { @@ -667,37 +721,39 @@ namespace Kokkos { namespace Experimental { template <typename DataType, - typename Layout = Kokkos::DefaultExecutionSpace::array_layout, - typename DeviceType = Kokkos::DefaultExecutionSpace, - int Op = ScatterSum, - int duplication = Kokkos::Impl::Experimental::DefaultDuplication< - typename DeviceType::execution_space>::value, - int contribution = Kokkos::Impl::Experimental::DefaultContribution< - typename DeviceType::execution_space, duplication>::value> + typename Layout = Kokkos::DefaultExecutionSpace::array_layout, + typename DeviceType = Kokkos::DefaultExecutionSpace, + typename Op = Kokkos::Experimental::ScatterSum, + typename Duplication = typename Kokkos::Impl::Experimental:: + DefaultDuplication<typename DeviceType::execution_space>::type, + typename Contribution = + typename Kokkos::Impl::Experimental::DefaultContribution< + typename DeviceType::execution_space, Duplication>::type> class ScatterView; -template <typename DataType, int Op, typename DeviceType, typename Layout, - int duplication, int contribution, int override_contribution> +template <typename DataType, typename Op, typename DeviceType, typename Layout, + typename Duplication, typename Contribution, + typename OverrideContribution> class ScatterAccess; // non-duplicated implementation -template <typename DataType, int Op, typename DeviceType, typename Layout, - int contribution> +template <typename DataType, typename Op, typename DeviceType, typename Layout, + typename Contribution> class ScatterView<DataType, Layout, DeviceType, Op, ScatterNonDuplicated, - contribution> { + Contribution> { public: - using execution_space = typename DeviceType::execution_space; - using memory_space = typename DeviceType::memory_space; - using device_type = Kokkos::Device<execution_space, memory_space>; - typedef Kokkos::View<DataType, Layout, device_type> original_view_type; - typedef typename original_view_type::value_type original_value_type; - typedef typename original_view_type::reference_type original_reference_type; + using execution_space = typename DeviceType::execution_space; + using memory_space = typename DeviceType::memory_space; + using device_type = Kokkos::Device<execution_space, memory_space>; + using original_view_type = Kokkos::View<DataType, Layout, device_type>; + using original_value_type = typename original_view_type::value_type; + using original_reference_type = typename original_view_type::reference_type; friend class ScatterAccess<DataType, Op, DeviceType, Layout, - ScatterNonDuplicated, contribution, + ScatterNonDuplicated, Contribution, ScatterNonAtomic>; friend class ScatterAccess<DataType, Op, DeviceType, Layout, - ScatterNonDuplicated, contribution, ScatterAtomic>; - template <class, class, class, int, int, int> + ScatterNonDuplicated, Contribution, ScatterAtomic>; + template <class, class, class, class, class, class> friend class ScatterView; ScatterView() = default; @@ -713,30 +769,34 @@ class ScatterView<DataType, Layout, DeviceType, Op, ScatterNonDuplicated, template <typename OtherDataType, typename OtherDeviceType> KOKKOS_FUNCTION ScatterView( const ScatterView<OtherDataType, Layout, OtherDeviceType, Op, - ScatterNonDuplicated, contribution>& other_view) + ScatterNonDuplicated, Contribution>& other_view) : internal_view(other_view.internal_view) {} template <typename OtherDataType, typename OtherDeviceType> KOKKOS_FUNCTION void operator=( const ScatterView<OtherDataType, Layout, OtherDeviceType, Op, - ScatterNonDuplicated, contribution>& other_view) { + ScatterNonDuplicated, Contribution>& other_view) { internal_view = other_view.internal_view; } - template <int override_contrib = contribution> + template <typename OverrideContribution = Contribution> KOKKOS_FORCEINLINE_FUNCTION ScatterAccess<DataType, Op, DeviceType, Layout, ScatterNonDuplicated, - contribution, override_contrib> + Contribution, OverrideContribution> access() const { return ScatterAccess<DataType, Op, DeviceType, Layout, ScatterNonDuplicated, - contribution, override_contrib>(*this); + Contribution, OverrideContribution>(*this); } original_view_type subview() const { return internal_view; } + KOKKOS_INLINE_FUNCTION constexpr bool is_allocated() const { + return internal_view.is_allocated(); + } + template <typename DT, typename... RP> void contribute_into(View<DT, RP...> const& dest) const { - typedef View<DT, RP...> dest_type; + using dest_type = View<DT, RP...>; static_assert(std::is_same<typename dest_type::array_layout, Layout>::value, "ScatterView contribute destination has different layout"); static_assert( @@ -778,22 +838,20 @@ class ScatterView<DataType, Layout, DeviceType, Op, ScatterNonDuplicated, } private: - typedef original_view_type internal_view_type; + using internal_view_type = original_view_type; internal_view_type internal_view; }; -template <typename DataType, int Op, typename DeviceType, typename Layout, - int contribution, int override_contribution> +template <typename DataType, typename Op, typename DeviceType, typename Layout, + typename Contribution, typename OverrideContribution> class ScatterAccess<DataType, Op, DeviceType, Layout, ScatterNonDuplicated, - contribution, override_contribution> { + Contribution, OverrideContribution> { public: - typedef ScatterView<DataType, Layout, DeviceType, Op, ScatterNonDuplicated, - contribution> - view_type; - typedef typename view_type::original_value_type original_value_type; - typedef Kokkos::Impl::Experimental::ScatterValue< - original_value_type, Op, DeviceType, override_contribution> - value_type; + using view_type = ScatterView<DataType, Layout, DeviceType, Op, + ScatterNonDuplicated, Contribution>; + using original_value_type = typename view_type::original_value_type; + using value_type = Kokkos::Impl::Experimental::ScatterValue< + original_value_type, Op, DeviceType, OverrideContribution>; KOKKOS_INLINE_FUNCTION ScatterAccess() : view(view_type()) {} @@ -825,44 +883,45 @@ class ScatterAccess<DataType, Op, DeviceType, Layout, ScatterNonDuplicated, // LayoutLeft and LayoutRight are different enough that we'll just specialize // each -template <typename DataType, int Op, typename DeviceType, int contribution> +template <typename DataType, typename Op, typename DeviceType, + typename Contribution> class ScatterView<DataType, Kokkos::LayoutRight, DeviceType, Op, - ScatterDuplicated, contribution> { + ScatterDuplicated, Contribution> { public: using execution_space = typename DeviceType::execution_space; using memory_space = typename DeviceType::memory_space; using device_type = Kokkos::Device<execution_space, memory_space>; - typedef Kokkos::View<DataType, Kokkos::LayoutRight, device_type> - original_view_type; - typedef typename original_view_type::value_type original_value_type; - typedef typename original_view_type::reference_type original_reference_type; + using original_view_type = + Kokkos::View<DataType, Kokkos::LayoutRight, device_type>; + using original_value_type = typename original_view_type::value_type; + using original_reference_type = typename original_view_type::reference_type; friend class ScatterAccess<DataType, Op, DeviceType, Kokkos::LayoutRight, - ScatterDuplicated, contribution, ScatterNonAtomic>; + ScatterDuplicated, Contribution, ScatterNonAtomic>; friend class ScatterAccess<DataType, Op, DeviceType, Kokkos::LayoutRight, - ScatterDuplicated, contribution, ScatterAtomic>; - template <class, class, class, int, int, int> + ScatterDuplicated, Contribution, ScatterAtomic>; + template <class, class, class, class, class, class> friend class ScatterView; - typedef typename Kokkos::Impl::Experimental::DuplicatedDataType< - DataType, Kokkos::LayoutRight> - data_type_info; - typedef typename data_type_info::value_type internal_data_type; - typedef Kokkos::View<internal_data_type, Kokkos::LayoutRight, device_type> - internal_view_type; + using data_type_info = + typename Kokkos::Impl::Experimental::DuplicatedDataType< + DataType, Kokkos::LayoutRight>; + using internal_data_type = typename data_type_info::value_type; + using internal_view_type = + Kokkos::View<internal_data_type, Kokkos::LayoutRight, device_type>; ScatterView() = default; template <typename OtherDataType, typename OtherDeviceType> KOKKOS_FUNCTION ScatterView( const ScatterView<OtherDataType, Kokkos::LayoutRight, OtherDeviceType, Op, - ScatterDuplicated, contribution>& other_view) + ScatterDuplicated, Contribution>& other_view) : unique_token(other_view.unique_token), internal_view(other_view.internal_view) {} template <typename OtherDataType, typename OtherDeviceType> KOKKOS_FUNCTION void operator=( const ScatterView<OtherDataType, Kokkos::LayoutRight, OtherDeviceType, Op, - ScatterDuplicated, contribution>& other_view) { + ScatterDuplicated, Contribution>& other_view) { unique_token = other_view.unique_token; internal_view = other_view.internal_view; } @@ -870,57 +929,44 @@ class ScatterView<DataType, Kokkos::LayoutRight, DeviceType, Op, template <typename RT, typename... RP> ScatterView(View<RT, RP...> const& original_view) : unique_token(), - internal_view(Kokkos::ViewAllocateWithoutInitializing( - std::string("duplicated_") + original_view.label()), - unique_token.size(), -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - original_view.extent(0), original_view.extent(1), - original_view.extent(2), original_view.extent(3), - original_view.extent(4), original_view.extent(5), - original_view.extent(6)) -#else - original_view.rank_dynamic > 0 - ? original_view.extent(0) - : KOKKOS_IMPL_CTOR_DEFAULT_ARG, - original_view.rank_dynamic > 1 - ? original_view.extent(1) - : KOKKOS_IMPL_CTOR_DEFAULT_ARG, - original_view.rank_dynamic > 2 - ? original_view.extent(2) - : KOKKOS_IMPL_CTOR_DEFAULT_ARG, - original_view.rank_dynamic > 3 - ? original_view.extent(3) - : KOKKOS_IMPL_CTOR_DEFAULT_ARG, - original_view.rank_dynamic > 4 - ? original_view.extent(4) - : KOKKOS_IMPL_CTOR_DEFAULT_ARG, - original_view.rank_dynamic > 5 - ? original_view.extent(5) - : KOKKOS_IMPL_CTOR_DEFAULT_ARG, - original_view.rank_dynamic > 6 - ? original_view.extent(6) - : KOKKOS_IMPL_CTOR_DEFAULT_ARG) + internal_view( + view_alloc(WithoutInitializing, + std::string("duplicated_") + original_view.label()), + unique_token.size(), + original_view.rank_dynamic > 0 ? original_view.extent(0) + : KOKKOS_IMPL_CTOR_DEFAULT_ARG, + original_view.rank_dynamic > 1 ? original_view.extent(1) + : KOKKOS_IMPL_CTOR_DEFAULT_ARG, + original_view.rank_dynamic > 2 ? original_view.extent(2) + : KOKKOS_IMPL_CTOR_DEFAULT_ARG, + original_view.rank_dynamic > 3 ? original_view.extent(3) + : KOKKOS_IMPL_CTOR_DEFAULT_ARG, + original_view.rank_dynamic > 4 ? original_view.extent(4) + : KOKKOS_IMPL_CTOR_DEFAULT_ARG, + original_view.rank_dynamic > 5 ? original_view.extent(5) + : KOKKOS_IMPL_CTOR_DEFAULT_ARG, + original_view.rank_dynamic > 6 ? original_view.extent(6) + : KOKKOS_IMPL_CTOR_DEFAULT_ARG) -#endif { reset(); } template <typename... Dims> ScatterView(std::string const& name, Dims... dims) - : internal_view(Kokkos::ViewAllocateWithoutInitializing(name), + : internal_view(view_alloc(WithoutInitializing, name), unique_token.size(), dims...) { reset(); } - template <int override_contribution = contribution> + template <typename OverrideContribution = Contribution> KOKKOS_FORCEINLINE_FUNCTION ScatterAccess<DataType, Op, DeviceType, Kokkos::LayoutRight, - ScatterDuplicated, contribution, override_contribution> + ScatterDuplicated, Contribution, OverrideContribution> access() const { return ScatterAccess<DataType, Op, DeviceType, Kokkos::LayoutRight, - ScatterDuplicated, contribution, - override_contribution>(*this); + ScatterDuplicated, Contribution, OverrideContribution>( + *this); } typename Kokkos::Impl::Experimental::Slice<Kokkos::LayoutRight, @@ -932,9 +978,13 @@ class ScatterView<DataType, Kokkos::LayoutRight, DeviceType, Op, internal_view_type>::get(internal_view, 0); } + KOKKOS_INLINE_FUNCTION constexpr bool is_allocated() const { + return internal_view.is_allocated(); + } + template <typename DT, typename... RP> void contribute_into(View<DT, RP...> const& dest) const { - typedef View<DT, RP...> dest_type; + using dest_type = View<DT, RP...>; static_assert(std::is_same<typename dest_type::array_layout, Kokkos::LayoutRight>::value, "ScatterView deep_copy destination has different layout"); @@ -989,38 +1039,38 @@ class ScatterView<DataType, Kokkos::LayoutRight, DeviceType, Op, } protected: - typedef Kokkos::Experimental::UniqueToken< - execution_space, Kokkos::Experimental::UniqueTokenScope::Global> - unique_token_type; + using unique_token_type = Kokkos::Experimental::UniqueToken< + execution_space, Kokkos::Experimental::UniqueTokenScope::Global>; unique_token_type unique_token; internal_view_type internal_view; }; -template <typename DataType, int Op, typename DeviceType, int contribution> +template <typename DataType, typename Op, typename DeviceType, + typename Contribution> class ScatterView<DataType, Kokkos::LayoutLeft, DeviceType, Op, - ScatterDuplicated, contribution> { + ScatterDuplicated, Contribution> { public: using execution_space = typename DeviceType::execution_space; using memory_space = typename DeviceType::memory_space; using device_type = Kokkos::Device<execution_space, memory_space>; - typedef Kokkos::View<DataType, Kokkos::LayoutLeft, device_type> - original_view_type; - typedef typename original_view_type::value_type original_value_type; - typedef typename original_view_type::reference_type original_reference_type; + using original_view_type = + Kokkos::View<DataType, Kokkos::LayoutLeft, device_type>; + using original_value_type = typename original_view_type::value_type; + using original_reference_type = typename original_view_type::reference_type; friend class ScatterAccess<DataType, Op, DeviceType, Kokkos::LayoutLeft, - ScatterDuplicated, contribution, ScatterNonAtomic>; + ScatterDuplicated, Contribution, ScatterNonAtomic>; friend class ScatterAccess<DataType, Op, DeviceType, Kokkos::LayoutLeft, - ScatterDuplicated, contribution, ScatterAtomic>; - template <class, class, class, int, int, int> + ScatterDuplicated, Contribution, ScatterAtomic>; + template <class, class, class, class, class, class> friend class ScatterView; - typedef typename Kokkos::Impl::Experimental::DuplicatedDataType< - DataType, Kokkos::LayoutLeft> - data_type_info; - typedef typename data_type_info::value_type internal_data_type; - typedef Kokkos::View<internal_data_type, Kokkos::LayoutLeft, device_type> - internal_view_type; + using data_type_info = + typename Kokkos::Impl::Experimental::DuplicatedDataType< + DataType, Kokkos::LayoutLeft>; + using internal_data_type = typename data_type_info::value_type; + using internal_view_type = + Kokkos::View<internal_data_type, Kokkos::LayoutLeft, device_type>; ScatterView() = default; @@ -1043,8 +1093,8 @@ class ScatterView<DataType, Kokkos::LayoutLeft, DeviceType, Op, KOKKOS_IMPL_CTOR_DEFAULT_ARG}; arg_N[internal_view_type::rank - 1] = unique_token.size(); internal_view = internal_view_type( - Kokkos::ViewAllocateWithoutInitializing(std::string("duplicated_") + - original_view.label()), + view_alloc(WithoutInitializing, + std::string("duplicated_") + original_view.label()), arg_N[0], arg_N[1], arg_N[2], arg_N[3], arg_N[4], arg_N[5], arg_N[6], arg_N[7]); reset(); @@ -1070,35 +1120,35 @@ class ScatterView<DataType, Kokkos::LayoutLeft, DeviceType, Op, KOKKOS_IMPL_CTOR_DEFAULT_ARG}; Kokkos::Impl::Experimental::args_to_array(arg_N, 0, dims...); arg_N[internal_view_type::rank - 1] = unique_token.size(); - internal_view = internal_view_type( - Kokkos::ViewAllocateWithoutInitializing(name), arg_N[0], arg_N[1], - arg_N[2], arg_N[3], arg_N[4], arg_N[5], arg_N[6], arg_N[7]); + internal_view = internal_view_type(view_alloc(WithoutInitializing, name), + arg_N[0], arg_N[1], arg_N[2], arg_N[3], + arg_N[4], arg_N[5], arg_N[6], arg_N[7]); reset(); } template <typename OtherDataType, typename OtherDeviceType> KOKKOS_FUNCTION ScatterView( const ScatterView<OtherDataType, Kokkos::LayoutLeft, OtherDeviceType, Op, - ScatterDuplicated, contribution>& other_view) + ScatterDuplicated, Contribution>& other_view) : unique_token(other_view.unique_token), internal_view(other_view.internal_view) {} template <typename OtherDataType, typename OtherDeviceType> KOKKOS_FUNCTION void operator=( const ScatterView<OtherDataType, Kokkos::LayoutLeft, OtherDeviceType, Op, - ScatterDuplicated, contribution>& other_view) { + ScatterDuplicated, Contribution>& other_view) { unique_token = other_view.unique_token; internal_view = other_view.internal_view; } - template <int override_contribution = contribution> + template <typename OverrideContribution = Contribution> KOKKOS_FORCEINLINE_FUNCTION ScatterAccess<DataType, Op, DeviceType, Kokkos::LayoutLeft, - ScatterDuplicated, contribution, override_contribution> + ScatterDuplicated, Contribution, OverrideContribution> access() const { return ScatterAccess<DataType, Op, DeviceType, Kokkos::LayoutLeft, - ScatterDuplicated, contribution, - override_contribution>(*this); + ScatterDuplicated, Contribution, OverrideContribution>( + *this); } typename Kokkos::Impl::Experimental::Slice<Kokkos::LayoutLeft, @@ -1110,9 +1160,13 @@ class ScatterView<DataType, Kokkos::LayoutLeft, DeviceType, Op, internal_view_type>::get(internal_view, 0); } + KOKKOS_INLINE_FUNCTION constexpr bool is_allocated() const { + return internal_view.is_allocated(); + } + template <typename... RP> void contribute_into(View<RP...> const& dest) const { - typedef View<RP...> dest_type; + using dest_type = View<RP...>; static_assert( std::is_same<typename dest_type::value_type, typename original_view_type::non_const_value_type>::value, @@ -1181,9 +1235,8 @@ class ScatterView<DataType, Kokkos::LayoutLeft, DeviceType, Op, } protected: - typedef Kokkos::Experimental::UniqueToken< - execution_space, Kokkos::Experimental::UniqueTokenScope::Global> - unique_token_type; + using unique_token_type = Kokkos::Experimental::UniqueToken< + execution_space, Kokkos::Experimental::UniqueTokenScope::Global>; unique_token_type unique_token; internal_view_type internal_view; @@ -1199,18 +1252,16 @@ class ScatterView<DataType, Kokkos::LayoutLeft, DeviceType, Op, ScatterAccess serves as a non-const object on the stack which can store the thread ID */ -template <typename DataType, int Op, typename DeviceType, typename Layout, - int contribution, int override_contribution> +template <typename DataType, typename Op, typename DeviceType, typename Layout, + typename Contribution, typename OverrideContribution> class ScatterAccess<DataType, Op, DeviceType, Layout, ScatterDuplicated, - contribution, override_contribution> { + Contribution, OverrideContribution> { public: - typedef ScatterView<DataType, Layout, DeviceType, Op, ScatterDuplicated, - contribution> - view_type; - typedef typename view_type::original_value_type original_value_type; - typedef Kokkos::Impl::Experimental::ScatterValue< - original_value_type, Op, DeviceType, override_contribution> - value_type; + using view_type = ScatterView<DataType, Layout, DeviceType, Op, + ScatterDuplicated, Contribution>; + using original_value_type = typename view_type::original_value_type; + using value_type = Kokkos::Impl::Experimental::ScatterValue< + original_value_type, Op, DeviceType, OverrideContribution>; KOKKOS_FORCEINLINE_FUNCTION ScatterAccess(view_type const& view_in) @@ -1254,45 +1305,68 @@ class ScatterAccess<DataType, Op, DeviceType, Layout, ScatterDuplicated, } private: - typedef typename view_type::unique_token_type unique_token_type; - typedef typename unique_token_type::size_type thread_id_type; + using unique_token_type = typename view_type::unique_token_type; + using thread_id_type = typename unique_token_type::size_type; thread_id_type thread_id; }; -template <int Op = Kokkos::Experimental::ScatterSum, int duplication = -1, - int contribution = -1, typename RT, typename... RP> +template <typename Op = Kokkos::Experimental::ScatterSum, + typename Duplication = void, typename Contribution = void, + typename RT, typename... RP> ScatterView< RT, typename ViewTraits<RT, RP...>::array_layout, - typename ViewTraits<RT, RP...>::device_type, - Op - /* just setting defaults if not specified... things got messy because the - view type does not come before the duplication/contribution settings in - the template parameter list */ - , - duplication == -1 - ? Kokkos::Impl::Experimental::DefaultDuplication< - typename ViewTraits<RT, RP...>::execution_space>::value - : duplication, - contribution == -1 - ? Kokkos::Impl::Experimental::DefaultContribution< - typename ViewTraits<RT, RP...>::execution_space, - (duplication == -1 - ? Kokkos::Impl::Experimental::DefaultDuplication< - typename ViewTraits<RT, RP...>::execution_space>::value - : duplication)>::value - : contribution> + typename ViewTraits<RT, RP...>::device_type, Op, + typename Kokkos::Impl::if_c< + std::is_same<Duplication, void>::value, + typename Kokkos::Impl::Experimental::DefaultDuplication< + typename ViewTraits<RT, RP...>::execution_space>::type, + Duplication>::type, + typename Kokkos::Impl::if_c< + std::is_same<Contribution, void>::value, + typename Kokkos::Impl::Experimental::DefaultContribution< + typename ViewTraits<RT, RP...>::execution_space, + typename Kokkos::Impl::if_c< + std::is_same<Duplication, void>::value, + typename Kokkos::Impl::Experimental::DefaultDuplication< + typename ViewTraits<RT, RP...>::execution_space>::type, + Duplication>::type>::type, + Contribution>::type> create_scatter_view(View<RT, RP...> const& original_view) { return original_view; // implicit ScatterView constructor call } +template <typename Op, typename RT, typename... RP> +ScatterView< + RT, typename ViewTraits<RT, RP...>::array_layout, + typename ViewTraits<RT, RP...>::device_type, Op, + typename Kokkos::Impl::Experimental::DefaultDuplication< + typename ViewTraits<RT, RP...>::execution_space>::type, + typename Kokkos::Impl::Experimental::DefaultContribution< + typename ViewTraits<RT, RP...>::execution_space, + typename Kokkos::Impl::Experimental::DefaultDuplication< + typename ViewTraits<RT, RP...>::execution_space>::type>::type> +create_scatter_view(Op, View<RT, RP...> const& original_view) { + return original_view; // implicit ScatterView constructor call +} + +template <typename Op, typename Duplication, typename Contribution, typename RT, + typename... RP> +ScatterView<RT, typename ViewTraits<RT, RP...>::array_layout, + typename ViewTraits<RT, RP...>::device_type, Op, Duplication, + Contribution> +create_scatter_view(Op, Duplication, Contribution, + View<RT, RP...> const& original_view) { + return original_view; // implicit ScatterView constructor call +} + } // namespace Experimental } // namespace Kokkos namespace Kokkos { namespace Experimental { -template <typename DT1, typename DT2, typename LY, typename ES, int OP, int CT, - int DP, typename... VP> +template <typename DT1, typename DT2, typename LY, typename ES, typename OP, + typename CT, typename DP, typename... VP> void contribute( View<DT1, VP...>& dest, Kokkos::Experimental::ScatterView<DT2, LY, ES, OP, CT, DP> const& src) { @@ -1304,16 +1378,16 @@ void contribute( namespace Kokkos { -template <typename DT, typename LY, typename ES, int OP, int CT, int DP, - typename... IS> +template <typename DT, typename LY, typename ES, typename OP, typename CT, + typename DP, typename... IS> void realloc( Kokkos::Experimental::ScatterView<DT, LY, ES, OP, CT, DP>& scatter_view, IS... is) { scatter_view.realloc(is...); } -template <typename DT, typename LY, typename ES, int OP, int CT, int DP, - typename... IS> +template <typename DT, typename LY, typename ES, typename OP, typename CT, + typename DP, typename... IS> void resize( Kokkos::Experimental::ScatterView<DT, LY, ES, OP, CT, DP>& scatter_view, IS... is) { diff --git a/packages/kokkos/containers/src/Kokkos_StaticCrsGraph.hpp b/packages/kokkos/containers/src/Kokkos_StaticCrsGraph.hpp index c11413d62..81be3ee2d 100644 --- a/packages/kokkos/containers/src/Kokkos_StaticCrsGraph.hpp +++ b/packages/kokkos/containers/src/Kokkos_StaticCrsGraph.hpp @@ -57,7 +57,7 @@ namespace Kokkos { namespace Impl { template <class RowOffsetsType, class RowBlockOffsetsType> struct StaticCrsGraphBalancerFunctor { - typedef typename RowOffsetsType::non_const_value_type int_type; + using int_type = typename RowOffsetsType::non_const_value_type; RowOffsetsType row_offsets; RowBlockOffsetsType row_block_offsets; @@ -148,7 +148,7 @@ struct StaticCrsGraphBalancerFunctor { /// /// Here is an example loop over the entries in the row: /// \code -/// typedef typename GraphRowViewConst<MatrixType>::ordinal_type ordinal_type; +/// using ordinal_type = typename GraphRowViewConst<MatrixType>::ordinal_type; /// /// GraphRowView<GraphType> G_i = ...; /// const ordinal_type numEntries = G_i.length; @@ -159,7 +159,7 @@ struct StaticCrsGraphBalancerFunctor { /// \endcode /// /// GraphType must provide the \c data_type -/// typedefs. In addition, it must make sense to use GraphRowViewConst to +/// aliases. In addition, it must make sense to use GraphRowViewConst to /// view a row of GraphType. In particular, column /// indices of a row must be accessible using the <tt>entries</tt> /// resp. <tt>colidx</tt> arrays given to the constructor of this @@ -170,7 +170,7 @@ struct StaticCrsGraphBalancerFunctor { template <class GraphType> struct GraphRowViewConst { //! The type of the column indices in the row. - typedef const typename GraphType::data_type ordinal_type; + using ordinal_type = const typename GraphType::data_type; private: //! Array of (local) column indices in the row. @@ -279,49 +279,33 @@ struct GraphRowViewConst { /// <li> <tt> entries( row_map[i0] + i1 , i2 , i3 , ... ); </tt> </li> /// </ul> template <class DataType, class Arg1Type, class Arg2Type = void, -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - typename SizeType = - typename ViewTraits<DataType*, Arg1Type, Arg2Type>::size_type, - class Arg3Type = void> -#else class Arg3Type = void, typename SizeType = typename ViewTraits<DataType*, Arg1Type, Arg2Type, Arg3Type>::size_type> -#endif class StaticCrsGraph { private: - typedef ViewTraits<DataType*, Arg1Type, Arg2Type, Arg3Type> traits; + using traits = ViewTraits<DataType*, Arg1Type, Arg2Type, Arg3Type>; public: - typedef DataType data_type; - typedef typename traits::array_layout array_layout; - typedef typename traits::execution_space execution_space; - typedef typename traits::device_type device_type; - typedef typename traits::memory_traits memory_traits; - typedef SizeType size_type; - -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - typedef StaticCrsGraph<DataType, Arg1Type, Arg2Type, SizeType, Arg3Type> - staticcrsgraph_type; - typedef StaticCrsGraph<data_type, array_layout, - typename traits::host_mirror_space, size_type, - memory_traits> - HostMirror; -#else - typedef StaticCrsGraph<DataType, Arg1Type, Arg2Type, Arg3Type, SizeType> - staticcrsgraph_type; - typedef StaticCrsGraph<data_type, array_layout, - typename traits::host_mirror_space, memory_traits, - size_type> - HostMirror; -#endif - - typedef View<const size_type*, array_layout, device_type, memory_traits> - row_map_type; - typedef View<data_type*, array_layout, device_type, memory_traits> - entries_type; - typedef View<const size_type*, array_layout, device_type, memory_traits> - row_block_type; + using data_type = DataType; + using array_layout = typename traits::array_layout; + using execution_space = typename traits::execution_space; + using device_type = typename traits::device_type; + using memory_traits = typename traits::memory_traits; + using size_type = SizeType; + + using staticcrsgraph_type = + StaticCrsGraph<DataType, Arg1Type, Arg2Type, Arg3Type, SizeType>; + using HostMirror = StaticCrsGraph<data_type, array_layout, + typename traits::host_mirror_space, + memory_traits, size_type>; + + using row_map_type = + View<const size_type*, array_layout, device_type, memory_traits>; + using entries_type = + View<data_type*, array_layout, device_type, memory_traits>; + using row_block_type = + View<const size_type*, array_layout, device_type, memory_traits>; entries_type entries; row_map_type row_map; @@ -370,6 +354,10 @@ class StaticCrsGraph { : static_cast<size_type>(0); } + KOKKOS_INLINE_FUNCTION constexpr bool is_allocated() const { + return (row_map.is_allocated() && entries.is_allocated()); + } + /// \brief Return a const view of row i of the graph. /// /// If row i does not belong to the graph, return an empty view. @@ -436,35 +424,19 @@ typename StaticCrsGraphType::staticcrsgraph_type create_staticcrsgraph( //---------------------------------------------------------------------------- -template <class DataType, class Arg1Type, class Arg2Type, -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - typename SizeType, class Arg3Type> -typename StaticCrsGraph<DataType, Arg1Type, Arg2Type, SizeType, - Arg3Type>::HostMirror -create_mirror_view(const StaticCrsGraph<DataType, Arg1Type, Arg2Type, SizeType, - Arg3Type>& input); -#else - class Arg3Type, typename SizeType> +template <class DataType, class Arg1Type, class Arg2Type, class Arg3Type, + typename SizeType> typename StaticCrsGraph<DataType, Arg1Type, Arg2Type, Arg3Type, SizeType>::HostMirror create_mirror_view(const StaticCrsGraph<DataType, Arg1Type, Arg2Type, Arg3Type, SizeType>& input); -#endif - -template <class DataType, class Arg1Type, class Arg2Type, -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - typename SizeType, class Arg3Type> -typename StaticCrsGraph<DataType, Arg1Type, Arg2Type, SizeType, - Arg3Type>::HostMirror -create_mirror_view(const StaticCrsGraph<DataType, Arg1Type, Arg2Type, SizeType, - Arg3Type>& input); -#else - class Arg3Type, typename SizeType> + +template <class DataType, class Arg1Type, class Arg2Type, class Arg3Type, + typename SizeType> typename StaticCrsGraph<DataType, Arg1Type, Arg2Type, Arg3Type, SizeType>::HostMirror create_mirror(const StaticCrsGraph<DataType, Arg1Type, Arg2Type, Arg3Type, SizeType>& input); -#endif } // namespace Kokkos @@ -481,8 +453,8 @@ namespace Impl { template <class GraphType> struct StaticCrsGraphMaximumEntry { - typedef typename GraphType::execution_space execution_space; - typedef typename GraphType::data_type value_type; + using execution_space = typename GraphType::execution_space; + using value_type = typename GraphType::data_type; const typename GraphType::entries_type entries; @@ -505,22 +477,13 @@ struct StaticCrsGraphMaximumEntry { } // namespace Impl -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -template <class DataType, class Arg1Type, class Arg2Type, typename SizeType, - class Arg3Type> -DataType maximum_entry(const StaticCrsGraph<DataType, Arg1Type, Arg2Type, - SizeType, Arg3Type>& graph) { - typedef StaticCrsGraph<DataType, Arg1Type, Arg2Type, SizeType, Arg3Type> - GraphType; -#else template <class DataType, class Arg1Type, class Arg2Type, class Arg3Type, typename SizeType> DataType maximum_entry(const StaticCrsGraph<DataType, Arg1Type, Arg2Type, Arg3Type, SizeType>& graph) { - typedef StaticCrsGraph<DataType, Arg1Type, Arg2Type, Arg3Type, SizeType> - GraphType; -#endif - typedef Impl::StaticCrsGraphMaximumEntry<GraphType> FunctorType; + using GraphType = + StaticCrsGraph<DataType, Arg1Type, Arg2Type, Arg3Type, SizeType>; + using FunctorType = Impl::StaticCrsGraphMaximumEntry<GraphType>; DataType result = 0; Kokkos::parallel_reduce("Kokkos::maximum_entry", graph.entries.extent(0), diff --git a/packages/kokkos/containers/src/Kokkos_UnorderedMap.hpp b/packages/kokkos/containers/src/Kokkos_UnorderedMap.hpp index 6f0434dd0..d2affda93 100644 --- a/packages/kokkos/containers/src/Kokkos_UnorderedMap.hpp +++ b/packages/kokkos/containers/src/Kokkos_UnorderedMap.hpp @@ -66,7 +66,7 @@ namespace Kokkos { -enum { UnorderedMapInvalidIndex = ~0u }; +enum : unsigned { UnorderedMapInvalidIndex = ~0u }; /// \brief First element of the return value of UnorderedMap::insert(). /// @@ -84,7 +84,7 @@ enum { UnorderedMapInvalidIndex = ~0u }; class UnorderedMapInsertResult { private: - enum Status { + enum Status : uint32_t { SUCCESS = 1u << 31, EXISTING = 1u << 30, FREED_EXISTING = 1u << 29, @@ -206,42 +206,40 @@ template <typename Key, typename Value, pod_equal_to<typename std::remove_const<Key>::type> > class UnorderedMap { private: - typedef typename ViewTraits<Key, Device, void, void>::host_mirror_space - host_mirror_space; + using host_mirror_space = + typename ViewTraits<Key, Device, void, void>::host_mirror_space; public: //! \name Public types and constants //@{ // key_types - typedef Key declared_key_type; - typedef typename std::remove_const<declared_key_type>::type key_type; - typedef typename std::add_const<key_type>::type const_key_type; + using declared_key_type = Key; + using key_type = typename std::remove_const<declared_key_type>::type; + using const_key_type = typename std::add_const<key_type>::type; // value_types - typedef Value declared_value_type; - typedef typename std::remove_const<declared_value_type>::type value_type; - typedef typename std::add_const<value_type>::type const_value_type; + using declared_value_type = Value; + using value_type = typename std::remove_const<declared_value_type>::type; + using const_value_type = typename std::add_const<value_type>::type; - typedef Device device_type; - typedef typename Device::execution_space execution_space; - typedef Hasher hasher_type; - typedef EqualTo equal_to_type; - typedef uint32_t size_type; + using device_type = Device; + using execution_space = typename Device::execution_space; + using hasher_type = Hasher; + using equal_to_type = EqualTo; + using size_type = uint32_t; // map_types - typedef UnorderedMap<declared_key_type, declared_value_type, device_type, - hasher_type, equal_to_type> - declared_map_type; - typedef UnorderedMap<key_type, value_type, device_type, hasher_type, - equal_to_type> - insertable_map_type; - typedef UnorderedMap<const_key_type, value_type, device_type, hasher_type, - equal_to_type> - modifiable_map_type; - typedef UnorderedMap<const_key_type, const_value_type, device_type, - hasher_type, equal_to_type> - const_map_type; + using declared_map_type = + UnorderedMap<declared_key_type, declared_value_type, device_type, + hasher_type, equal_to_type>; + using insertable_map_type = UnorderedMap<key_type, value_type, device_type, + hasher_type, equal_to_type>; + using modifiable_map_type = + UnorderedMap<const_key_type, value_type, device_type, hasher_type, + equal_to_type>; + using const_map_type = UnorderedMap<const_key_type, const_value_type, + device_type, hasher_type, equal_to_type>; static const bool is_set = std::is_same<void, value_type>::value; static const bool has_const_key = @@ -254,43 +252,42 @@ class UnorderedMap { static const bool is_modifiable_map = has_const_key && !has_const_value; static const bool is_const_map = has_const_key && has_const_value; - typedef UnorderedMapInsertResult insert_result; + using insert_result = UnorderedMapInsertResult; - typedef UnorderedMap<Key, Value, host_mirror_space, Hasher, EqualTo> - HostMirror; + using HostMirror = + UnorderedMap<Key, Value, host_mirror_space, Hasher, EqualTo>; - typedef Impl::UnorderedMapHistogram<const_map_type> histogram_type; + using histogram_type = Impl::UnorderedMapHistogram<const_map_type>; //@} private: - enum { invalid_index = ~static_cast<size_type>(0) }; + enum : size_type { invalid_index = ~static_cast<size_type>(0) }; - typedef typename Impl::if_c<is_set, int, declared_value_type>::type - impl_value_type; + using impl_value_type = + typename Impl::if_c<is_set, int, declared_value_type>::type; - typedef typename Impl::if_c< + using key_type_view = typename Impl::if_c< is_insertable_map, View<key_type *, device_type>, - View<const key_type *, device_type, MemoryTraits<RandomAccess> > >::type - key_type_view; + View<const key_type *, device_type, MemoryTraits<RandomAccess> > >::type; - typedef typename Impl::if_c<is_insertable_map || is_modifiable_map, - View<impl_value_type *, device_type>, - View<const impl_value_type *, device_type, - MemoryTraits<RandomAccess> > >::type - value_type_view; + using value_type_view = + typename Impl::if_c<is_insertable_map || is_modifiable_map, + View<impl_value_type *, device_type>, + View<const impl_value_type *, device_type, + MemoryTraits<RandomAccess> > >::type; - typedef typename Impl::if_c< + using size_type_view = typename Impl::if_c< is_insertable_map, View<size_type *, device_type>, - View<const size_type *, device_type, MemoryTraits<RandomAccess> > >::type - size_type_view; + View<const size_type *, device_type, MemoryTraits<RandomAccess> > >::type; - typedef typename Impl::if_c<is_insertable_map, Bitset<execution_space>, - ConstBitset<execution_space> >::type bitset_type; + using bitset_type = + typename Impl::if_c<is_insertable_map, Bitset<execution_space>, + ConstBitset<execution_space> >::type; enum { modified_idx = 0, erasable_idx = 1, failed_insert_idx = 2 }; enum { num_scalars = 3 }; - typedef View<int[num_scalars], LayoutLeft, device_type> scalars_view; + using scalars_view = View<int[num_scalars], LayoutLeft, device_type>; public: //! \name Public member functions @@ -309,9 +306,9 @@ class UnorderedMap { m_equal_to(equal_to), m_size(), m_available_indexes(calculate_capacity(capacity_hint)), - m_hash_lists(ViewAllocateWithoutInitializing("UnorderedMap hash list"), + m_hash_lists(view_alloc(WithoutInitializing, "UnorderedMap hash list"), Impl::find_hash_size(capacity())), - m_next_index(ViewAllocateWithoutInitializing("UnorderedMap next index"), + m_next_index(view_alloc(WithoutInitializing, "UnorderedMap next index"), capacity() + 1) // +1 so that the *_at functions can // always return a valid reference , @@ -353,6 +350,11 @@ class UnorderedMap { { Kokkos::deep_copy(m_scalars, 0); } } + KOKKOS_INLINE_FUNCTION constexpr bool is_allocated() const { + return (m_keys.is_allocated() && m_values.is_allocated() && + m_scalars.is_allocated()); + } + /// \brief Change the capacity of the the map /// /// If there are no failed inserts the current size of the map will @@ -538,7 +540,10 @@ class UnorderedMap { // Previously claimed an unused entry that was not inserted. // Release this unused entry immediately. if (!m_available_indexes.reset(new_index)) { + // FIXME_SYCL SYCL doesn't allow printf in kernels +#ifndef KOKKOS_ENABLE_SYCL printf("Unable to free existing\n"); +#endif } } @@ -727,24 +732,24 @@ class UnorderedMap { tmp.m_size = src.size(); tmp.m_available_indexes = bitset_type(src.capacity()); tmp.m_hash_lists = size_type_view( - ViewAllocateWithoutInitializing("UnorderedMap hash list"), + view_alloc(WithoutInitializing, "UnorderedMap hash list"), src.m_hash_lists.extent(0)); tmp.m_next_index = size_type_view( - ViewAllocateWithoutInitializing("UnorderedMap next index"), + view_alloc(WithoutInitializing, "UnorderedMap next index"), src.m_next_index.extent(0)); tmp.m_keys = - key_type_view(ViewAllocateWithoutInitializing("UnorderedMap keys"), + key_type_view(view_alloc(WithoutInitializing, "UnorderedMap keys"), src.m_keys.extent(0)); tmp.m_values = value_type_view( - ViewAllocateWithoutInitializing("UnorderedMap values"), + view_alloc(WithoutInitializing, "UnorderedMap values"), src.m_values.extent(0)); tmp.m_scalars = scalars_view("UnorderedMap scalars"); Kokkos::deep_copy(tmp.m_available_indexes, src.m_available_indexes); - typedef Kokkos::Impl::DeepCopy<typename device_type::memory_space, - typename SDevice::memory_space> - raw_deep_copy; + using raw_deep_copy = + Kokkos::Impl::DeepCopy<typename device_type::memory_space, + typename SDevice::memory_space>; raw_deep_copy(tmp.m_hash_lists.data(), src.m_hash_lists.data(), sizeof(size_type) * src.m_hash_lists.extent(0)); @@ -768,25 +773,25 @@ class UnorderedMap { bool modified() const { return get_flag(modified_idx); } void set_flag(int flag) const { - typedef Kokkos::Impl::DeepCopy<typename device_type::memory_space, - Kokkos::HostSpace> - raw_deep_copy; + using raw_deep_copy = + Kokkos::Impl::DeepCopy<typename device_type::memory_space, + Kokkos::HostSpace>; const int true_ = true; raw_deep_copy(m_scalars.data() + flag, &true_, sizeof(int)); } void reset_flag(int flag) const { - typedef Kokkos::Impl::DeepCopy<typename device_type::memory_space, - Kokkos::HostSpace> - raw_deep_copy; + using raw_deep_copy = + Kokkos::Impl::DeepCopy<typename device_type::memory_space, + Kokkos::HostSpace>; const int false_ = false; raw_deep_copy(m_scalars.data() + flag, &false_, sizeof(int)); } bool get_flag(int flag) const { - typedef Kokkos::Impl::DeepCopy<Kokkos::HostSpace, - typename device_type::memory_space> - raw_deep_copy; + using raw_deep_copy = + Kokkos::Impl::DeepCopy<Kokkos::HostSpace, + typename device_type::memory_space>; int result = false; raw_deep_copy(&result, m_scalars.data() + flag, sizeof(int)); return result; diff --git a/packages/kokkos/containers/src/Kokkos_Vector.hpp b/packages/kokkos/containers/src/Kokkos_Vector.hpp index 02c3e44fc..a1fbba6b2 100644 --- a/packages/kokkos/containers/src/Kokkos_Vector.hpp +++ b/packages/kokkos/containers/src/Kokkos_Vector.hpp @@ -58,19 +58,19 @@ namespace Kokkos { template <class Scalar, class Arg1Type = void> class vector : public DualView<Scalar*, LayoutLeft, Arg1Type> { public: - typedef Scalar value_type; - typedef Scalar* pointer; - typedef const Scalar* const_pointer; - typedef Scalar& reference; - typedef const Scalar& const_reference; - typedef Scalar* iterator; - typedef const Scalar* const_iterator; - typedef size_t size_type; + using value_type = Scalar; + using pointer = Scalar*; + using const_pointer = const Scalar*; + using reference = Scalar&; + using const_reference = const Scalar&; + using iterator = Scalar*; + using const_iterator = const Scalar*; + using size_type = size_t; private: size_t _size; float _extra_storage; - typedef DualView<Scalar*, LayoutLeft, Arg1Type> DV; + using DV = DualView<Scalar*, LayoutLeft, Arg1Type>; public: #ifdef KOKKOS_ENABLE_CUDA_UVM @@ -212,14 +212,17 @@ class vector : public DualView<Scalar*, LayoutLeft, Arg1Type> { return begin() + start; } + KOKKOS_INLINE_FUNCTION constexpr bool is_allocated() const { + return DV::is_allocated(); + } + size_type size() const { return _size; } size_type max_size() const { return 2000000000; } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - size_type capacity() const { return DV::capacity(); } -#endif size_type span() const { return DV::span(); } bool empty() const { return _size == 0; } + pointer data() const { return DV::h_view.data(); } + iterator begin() const { return DV::h_view.data(); } iterator end() const { @@ -310,7 +313,7 @@ class vector : public DualView<Scalar*, LayoutLeft, Arg1Type> { public: struct set_functor { - typedef typename DV::t_dev::execution_space execution_space; + using execution_space = typename DV::t_dev::execution_space; typename DV::t_dev _data; Scalar _val; @@ -321,7 +324,7 @@ class vector : public DualView<Scalar*, LayoutLeft, Arg1Type> { }; struct set_functor_host { - typedef typename DV::t_host::execution_space execution_space; + using execution_space = typename DV::t_host::execution_space; typename DV::t_host _data; Scalar _val; diff --git a/packages/kokkos/containers/src/impl/Kokkos_Bitset_impl.hpp b/packages/kokkos/containers/src/impl/Kokkos_Bitset_impl.hpp index 6fd4319a8..6e450598d 100644 --- a/packages/kokkos/containers/src/impl/Kokkos_Bitset_impl.hpp +++ b/packages/kokkos/containers/src/impl/Kokkos_Bitset_impl.hpp @@ -65,11 +65,11 @@ unsigned rotate_right(unsigned i, int r) { template <typename Bitset> struct BitsetCount { - typedef Bitset bitset_type; - typedef - typename bitset_type::execution_space::execution_space execution_space; - typedef typename bitset_type::size_type size_type; - typedef size_type value_type; + using bitset_type = Bitset; + using execution_space = + typename bitset_type::execution_space::execution_space; + using size_type = typename bitset_type::size_type; + using value_type = size_type; bitset_type m_bitset; diff --git a/packages/kokkos/containers/src/impl/Kokkos_Functional_impl.hpp b/packages/kokkos/containers/src/impl/Kokkos_Functional_impl.hpp index 6ba67766a..367ab3385 100644 --- a/packages/kokkos/containers/src/impl/Kokkos_Functional_impl.hpp +++ b/packages/kokkos/containers/src/impl/Kokkos_Functional_impl.hpp @@ -140,10 +140,10 @@ uint32_t MurmurHash3_x86_32(const void* key, int len, uint32_t seed) { template <typename T> KOKKOS_FORCEINLINE_FUNCTION bool bitwise_equal(T const* const a_ptr, T const* const b_ptr) { - typedef uint64_t KOKKOS_IMPL_MAY_ALIAS T64; - typedef uint32_t KOKKOS_IMPL_MAY_ALIAS T32; - typedef uint16_t KOKKOS_IMPL_MAY_ALIAS T16; - typedef uint8_t KOKKOS_IMPL_MAY_ALIAS T8; + typedef uint64_t KOKKOS_IMPL_MAY_ALIAS T64; // NOLINT(modernize-use-using) + typedef uint32_t KOKKOS_IMPL_MAY_ALIAS T32; // NOLINT(modernize-use-using) + typedef uint16_t KOKKOS_IMPL_MAY_ALIAS T16; // NOLINT(modernize-use-using) + typedef uint8_t KOKKOS_IMPL_MAY_ALIAS T8; // NOLINT(modernize-use-using) enum { NUM_8 = sizeof(T), diff --git a/packages/kokkos/containers/src/impl/Kokkos_StaticCrsGraph_factory.hpp b/packages/kokkos/containers/src/impl/Kokkos_StaticCrsGraph_factory.hpp index a5fb9990f..f22e5d1ec 100644 --- a/packages/kokkos/containers/src/impl/Kokkos_StaticCrsGraph_factory.hpp +++ b/packages/kokkos/containers/src/impl/Kokkos_StaticCrsGraph_factory.hpp @@ -50,19 +50,6 @@ namespace Kokkos { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -template <class DataType, class Arg1Type, class Arg2Type, typename SizeType, - class Arg3Type> -inline typename StaticCrsGraph<DataType, Arg1Type, Arg2Type, SizeType, - Arg3Type>::HostMirror -create_mirror_view( - const StaticCrsGraph<DataType, Arg1Type, Arg2Type, SizeType, Arg3Type>& - view, - typename std::enable_if<ViewTraits<DataType, Arg1Type, Arg2Type, - Arg3Type>::is_hostspace>::type* = 0) { - return view; -} -#else template <class DataType, class Arg1Type, class Arg2Type, class Arg3Type, typename SizeType> inline typename StaticCrsGraph<DataType, Arg1Type, Arg2Type, Arg3Type, @@ -74,20 +61,7 @@ create_mirror_view( Arg3Type>::is_hostspace>::type* = 0) { return view; } -#endif - -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -template <class DataType, class Arg1Type, class Arg2Type, typename SizeType, - class Arg3Type> -inline typename StaticCrsGraph<DataType, Arg1Type, Arg2Type, SizeType, - Arg3Type>::HostMirror -create_mirror(const StaticCrsGraph<DataType, Arg1Type, Arg2Type, SizeType, - Arg3Type>& view) { - // Force copy: - // typedef Impl::ViewAssignment< Impl::ViewDefault > alloc ; // unused - typedef StaticCrsGraph<DataType, Arg1Type, Arg2Type, SizeType, Arg3Type> - staticcrsgraph_type; -#else + template <class DataType, class Arg1Type, class Arg2Type, class Arg3Type, typename SizeType> inline typename StaticCrsGraph<DataType, Arg1Type, Arg2Type, Arg3Type, @@ -95,10 +69,9 @@ inline typename StaticCrsGraph<DataType, Arg1Type, Arg2Type, Arg3Type, create_mirror(const StaticCrsGraph<DataType, Arg1Type, Arg2Type, Arg3Type, SizeType>& view) { // Force copy: - // typedef Impl::ViewAssignment< Impl::ViewDefault > alloc ; // unused - typedef StaticCrsGraph<DataType, Arg1Type, Arg2Type, Arg3Type, SizeType> - staticcrsgraph_type; -#endif + // using alloc = Impl::ViewAssignment<Impl::ViewDefault>; // unused + using staticcrsgraph_type = + StaticCrsGraph<DataType, Arg1Type, Arg2Type, Arg3Type, SizeType>; typename staticcrsgraph_type::HostMirror tmp; typename staticcrsgraph_type::row_map_type::HostMirror tmp_row_map = @@ -120,17 +93,6 @@ create_mirror(const StaticCrsGraph<DataType, Arg1Type, Arg2Type, Arg3Type, return tmp; } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -template <class DataType, class Arg1Type, class Arg2Type, typename SizeType, - class Arg3Type> -inline typename StaticCrsGraph<DataType, Arg1Type, Arg2Type, SizeType, - Arg3Type>::HostMirror -create_mirror_view( - const StaticCrsGraph<DataType, Arg1Type, Arg2Type, SizeType, Arg3Type>& - view, - typename std::enable_if<!ViewTraits<DataType, Arg1Type, Arg2Type, - Arg3Type>::is_hostspace>::type* = 0) -#else template <class DataType, class Arg1Type, class Arg2Type, class Arg3Type, typename SizeType> inline typename StaticCrsGraph<DataType, Arg1Type, Arg2Type, Arg3Type, @@ -139,9 +101,7 @@ create_mirror_view( const StaticCrsGraph<DataType, Arg1Type, Arg2Type, Arg3Type, SizeType>& view, typename std::enable_if<!ViewTraits<DataType, Arg1Type, Arg2Type, - Arg3Type>::is_hostspace>::type* = 0) -#endif -{ + Arg3Type>::is_hostspace>::type* = 0) { return create_mirror(view); } } // namespace Kokkos @@ -154,16 +114,15 @@ namespace Kokkos { template <class StaticCrsGraphType, class InputSizeType> inline typename StaticCrsGraphType::staticcrsgraph_type create_staticcrsgraph( const std::string& label, const std::vector<InputSizeType>& input) { - typedef StaticCrsGraphType output_type; - // typedef std::vector< InputSizeType > input_type ; // unused + using output_type = StaticCrsGraphType; + // using input_type = std::vector<InputSizeType>; // unused - typedef typename output_type::entries_type entries_type; + using entries_type = typename output_type::entries_type; - typedef View<typename output_type::size_type[], - typename output_type::array_layout, - typename output_type::execution_space, - typename output_type::memory_traits> - work_type; + using work_type = View<typename output_type::size_type[], + typename output_type::array_layout, + typename output_type::execution_space, + typename output_type::memory_traits>; output_type output; @@ -197,16 +156,15 @@ template <class StaticCrsGraphType, class InputSizeType> inline typename StaticCrsGraphType::staticcrsgraph_type create_staticcrsgraph( const std::string& label, const std::vector<std::vector<InputSizeType> >& input) { - typedef StaticCrsGraphType output_type; - typedef typename output_type::entries_type entries_type; + using output_type = StaticCrsGraphType; + using entries_type = typename output_type::entries_type; static_assert(entries_type::rank == 1, "Graph entries view must be rank one"); - typedef View<typename output_type::size_type[], - typename output_type::array_layout, - typename output_type::execution_space, - typename output_type::memory_traits> - work_type; + using work_type = View<typename output_type::size_type[], + typename output_type::array_layout, + typename output_type::execution_space, + typename output_type::memory_traits>; output_type output; diff --git a/packages/kokkos/containers/src/impl/Kokkos_UnorderedMap_impl.hpp b/packages/kokkos/containers/src/impl/Kokkos_UnorderedMap_impl.hpp index 813936575..b06ab0846 100644 --- a/packages/kokkos/containers/src/impl/Kokkos_UnorderedMap_impl.hpp +++ b/packages/kokkos/containers/src/impl/Kokkos_UnorderedMap_impl.hpp @@ -60,10 +60,10 @@ uint32_t find_hash_size(uint32_t size); template <typename Map> struct UnorderedMapRehash { - typedef Map map_type; - typedef typename map_type::const_map_type const_map_type; - typedef typename map_type::execution_space execution_space; - typedef typename map_type::size_type size_type; + using map_type = Map; + using const_map_type = typename map_type::const_map_type; + using execution_space = typename map_type::execution_space; + using size_type = typename map_type::size_type; map_type m_dst; const_map_type m_src; @@ -84,11 +84,11 @@ struct UnorderedMapRehash { template <typename UMap> struct UnorderedMapErase { - typedef UMap map_type; - typedef typename map_type::execution_space execution_space; - typedef typename map_type::size_type size_type; - typedef typename map_type::key_type key_type; - typedef typename map_type::impl_value_type value_type; + using map_type = UMap; + using execution_space = typename map_type::execution_space; + using size_type = typename map_type::size_type; + using key_type = typename map_type::key_type; + using value_type = typename map_type::impl_value_type; map_type m_map; @@ -140,12 +140,12 @@ struct UnorderedMapErase { template <typename UMap> struct UnorderedMapHistogram { - typedef UMap map_type; - typedef typename map_type::execution_space execution_space; - typedef typename map_type::size_type size_type; + using map_type = UMap; + using execution_space = typename map_type::execution_space; + using size_type = typename map_type::size_type; - typedef View<int[100], execution_space> histogram_view; - typedef typename histogram_view::HostMirror host_histogram_view; + using histogram_view = View<int[100], execution_space>; + using host_histogram_view = typename histogram_view::HostMirror; map_type m_map; histogram_view m_length; @@ -230,9 +230,9 @@ struct UnorderedMapHistogram { template <typename UMap> struct UnorderedMapPrint { - typedef UMap map_type; - typedef typename map_type::execution_space execution_space; - typedef typename map_type::size_type size_type; + using map_type = UMap; + using execution_space = typename map_type::execution_space; + using size_type = typename map_type::size_type; map_type m_map; diff --git a/packages/kokkos/containers/unit_tests/CMakeLists.txt b/packages/kokkos/containers/unit_tests/CMakeLists.txt index 448cdf438..c84c5f6d5 100644 --- a/packages/kokkos/containers/unit_tests/CMakeLists.txt +++ b/packages/kokkos/containers/unit_tests/CMakeLists.txt @@ -3,7 +3,7 @@ KOKKOS_INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) KOKKOS_INCLUDE_DIRECTORIES(REQUIRED_DURING_INSTALLATION_TESTING ${CMAKE_CURRENT_SOURCE_DIR}) KOKKOS_INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../src ) -foreach(Tag Threads;Serial;OpenMP;HPX;Cuda;HIP) +foreach(Tag Threads;Serial;OpenMP;HPX;Cuda;HIP;SYCL) # Because there is always an exception to the rule if(Tag STREQUAL "Threads") set(DEVICE "PTHREAD") @@ -31,13 +31,21 @@ foreach(Tag Threads;Serial;OpenMP;HPX;Cuda;HIP) Vector ViewCtorPropEmbeddedDim ) + # Write to a temporary intermediate file and call configure_file to avoid + # updating timestamps triggering unnecessary rebuilds on subsequent cmake runs. set(file ${dir}/Test${Tag}_${Name}.cpp) - file(WRITE ${file} + file(WRITE ${dir}/dummy.cpp "#include <Test${Tag}_Category.hpp>\n" "#include <Test${Name}.hpp>\n" ) + configure_file(${dir}/dummy.cpp ${file}) list(APPEND UnitTestSources ${file}) endforeach() + list(REMOVE_ITEM UnitTestSources + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_Bitset.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_ScatterView.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_UnorderedMap.cpp + ) KOKKOS_ADD_EXECUTABLE_AND_TEST(UnitTest_${Tag} SOURCES ${UnitTestSources}) endif() endforeach() diff --git a/packages/kokkos/containers/unit_tests/Makefile b/packages/kokkos/containers/unit_tests/Makefile index 308b5aa8b..f42b9b751 100644 --- a/packages/kokkos/containers/unit_tests/Makefile +++ b/packages/kokkos/containers/unit_tests/Makefile @@ -7,7 +7,7 @@ vpath %.cpp ${KOKKOS_PATH}/containers/unit_tests/openmp vpath %.cpp ${KOKKOS_PATH}/containers/unit_tests/hpx vpath %.cpp ${KOKKOS_PATH}/containers/unit_tests/serial vpath %.cpp ${KOKKOS_PATH}/containers/unit_tests/threads -vpath %.cpp ${KOKKOS_PATH}/containers/unit_tests/rocm +vpath %.cpp ${KOKKOS_PATH}/containers/unit_tests/hip vpath %.cpp ${KOKKOS_PATH}/containers/unit_tests/cuda vpath %.cpp ${CURDIR} default: build_all diff --git a/packages/kokkos/containers/unit_tests/TestBitset.hpp b/packages/kokkos/containers/unit_tests/TestBitset.hpp index 661a1365c..6810ae101 100644 --- a/packages/kokkos/containers/unit_tests/TestBitset.hpp +++ b/packages/kokkos/containers/unit_tests/TestBitset.hpp @@ -47,6 +47,7 @@ #include <iostream> #include <Kokkos_Core.hpp> #include <Kokkos_Bitset.hpp> +#include <array> namespace Test { @@ -54,9 +55,9 @@ namespace Impl { template <typename Bitset, bool Set> struct TestBitset { - typedef Bitset bitset_type; - typedef typename bitset_type::execution_space execution_space; - typedef uint32_t value_type; + using bitset_type = Bitset; + using execution_space = typename bitset_type::execution_space; + using value_type = uint32_t; bitset_type m_bitset; @@ -95,9 +96,9 @@ struct TestBitset { template <typename Bitset> struct TestBitsetTest { - typedef Bitset bitset_type; - typedef typename bitset_type::execution_space execution_space; - typedef uint32_t value_type; + using bitset_type = Bitset; + using execution_space = typename bitset_type::execution_space; + using value_type = uint32_t; bitset_type m_bitset; @@ -127,9 +128,9 @@ struct TestBitsetTest { template <typename Bitset, bool Set> struct TestBitsetAny { - typedef Bitset bitset_type; - typedef typename bitset_type::execution_space execution_space; - typedef uint32_t value_type; + using bitset_type = Bitset; + using execution_space = typename bitset_type::execution_space; + using value_type = uint32_t; bitset_type m_bitset; @@ -181,16 +182,30 @@ struct TestBitsetAny { template <typename Device> void test_bitset() { - typedef Kokkos::Bitset<Device> bitset_type; - typedef Kokkos::ConstBitset<Device> const_bitset_type; + using bitset_type = Kokkos::Bitset<Device>; + using const_bitset_type = Kokkos::ConstBitset<Device>; - // unsigned test_sizes[] = { 0u, 1000u, 1u<<14, 1u<<16, 10000001 }; - unsigned test_sizes[] = {1000u, 1u << 14, 1u << 16, 10000001}; + { + unsigned ts = 100u; + bitset_type b1; + ASSERT_TRUE(b1.is_allocated()); - for (int i = 0, end = sizeof(test_sizes) / sizeof(unsigned); i < end; ++i) { + b1 = bitset_type(ts); + bitset_type b2(b1); + bitset_type b3(ts); + + ASSERT_TRUE(b1.is_allocated()); + ASSERT_TRUE(b2.is_allocated()); + ASSERT_TRUE(b3.is_allocated()); + } + + std::array<unsigned, 7> test_sizes = { + {0u, 10u, 100u, 1000u, 1u << 14, 1u << 16, 10000001}}; + + for (const auto test_size : test_sizes) { // std::cout << "Bitset " << test_sizes[i] << std::endl; - bitset_type bitset(test_sizes[i]); + bitset_type bitset(test_size); // std::cout << " Check initial count " << std::endl; // nothing should be set @@ -253,10 +268,7 @@ void test_bitset() { } } -// FIXME_HIP deadlock -#ifndef KOKKOS_ENABLE_HIP TEST(TEST_CATEGORY, bitset) { test_bitset<TEST_EXECSPACE>(); } -#endif } // namespace Test #endif // KOKKOS_TEST_BITSET_HPP diff --git a/packages/kokkos/containers/unit_tests/TestDualView.hpp b/packages/kokkos/containers/unit_tests/TestDualView.hpp index 665f25115..531caf0f8 100644 --- a/packages/kokkos/containers/unit_tests/TestDualView.hpp +++ b/packages/kokkos/containers/unit_tests/TestDualView.hpp @@ -55,13 +55,45 @@ namespace Test { namespace Impl { +template <typename Scalar, class Device> +struct test_dualview_alloc { + using scalar_type = Scalar; + using execution_space = Device; + + template <typename ViewType> + bool run_me(unsigned int n, unsigned int m) { + if (n < 10) n = 10; + if (m < 3) m = 3; + + { + ViewType b1; + if (b1.is_allocated() == true) return false; + + b1 = ViewType("B1", n, m); + ViewType b2(b1); + ViewType b3("B3", n, m); + + if (b1.is_allocated() == false) return false; + if (b2.is_allocated() == false) return false; + if (b3.is_allocated() == false) return false; + } + return true; + } + + bool result = false; + + test_dualview_alloc(unsigned int size) { + result = run_me<Kokkos::DualView<Scalar**, Kokkos::LayoutLeft, Device> >( + size, 3); + } +}; template <typename Scalar, class Device> struct test_dualview_combinations { - typedef test_dualview_combinations<Scalar, Device> self_type; + using self_type = test_dualview_combinations<Scalar, Device>; - typedef Scalar scalar_type; - typedef Device execution_space; + using scalar_type = Scalar; + using execution_space = Device; Scalar reference; Scalar result; @@ -76,7 +108,7 @@ struct test_dualview_combinations { if (with_init) { a = ViewType("A", n, m); } else { - a = ViewType(Kokkos::ViewAllocateWithoutInitializing("A"), n, m); + a = ViewType(Kokkos::view_alloc(Kokkos::WithoutInitializing, "A"), n, m); } Kokkos::deep_copy(a.d_view, 1); @@ -110,7 +142,7 @@ struct test_dualview_combinations { template <typename Scalar, class ViewType> struct SumViewEntriesFunctor { - typedef Scalar value_type; + using value_type = Scalar; ViewType fv; @@ -126,8 +158,8 @@ struct SumViewEntriesFunctor { template <typename Scalar, class Device> struct test_dual_view_deep_copy { - typedef Scalar scalar_type; - typedef Device execution_space; + using scalar_type = Scalar; + using execution_space = Device; template <typename ViewType> void run_me(int n, const int m, const bool use_templ_sync) { @@ -153,8 +185,8 @@ struct test_dual_view_deep_copy { // Check device view is initialized as expected scalar_type a_d_sum = 0; // Execute on the execution_space associated with t_dev's memory space - typedef typename ViewType::t_dev::memory_space::execution_space - t_dev_exec_space; + using t_dev_exec_space = + typename ViewType::t_dev::memory_space::execution_space; Kokkos::parallel_reduce( Kokkos::RangePolicy<t_dev_exec_space>(0, n), SumViewEntriesFunctor<scalar_type, typename ViewType::t_dev>(a.d_view), @@ -220,8 +252,8 @@ struct test_dual_view_deep_copy { template <typename Scalar, class Device> struct test_dualview_resize { - typedef Scalar scalar_type; - typedef Device execution_space; + using scalar_type = Scalar; + using execution_space = Device; template <typename ViewType> void run_me() { @@ -244,8 +276,8 @@ struct test_dualview_resize { // Check device view is initialized as expected scalar_type a_d_sum = 0; // Execute on the execution_space associated with t_dev's memory space - typedef typename ViewType::t_dev::memory_space::execution_space - t_dev_exec_space; + using t_dev_exec_space = + typename ViewType::t_dev::memory_space::execution_space; Kokkos::parallel_reduce( Kokkos::RangePolicy<t_dev_exec_space>(0, a.d_view.extent(0)), SumViewEntriesFunctor<scalar_type, typename ViewType::t_dev>(a.d_view), @@ -274,8 +306,8 @@ struct test_dualview_resize { // Check device view is initialized as expected a_d_sum = 0; // Execute on the execution_space associated with t_dev's memory space - typedef typename ViewType::t_dev::memory_space::execution_space - t_dev_exec_space; + using t_dev_exec_space = + typename ViewType::t_dev::memory_space::execution_space; Kokkos::parallel_reduce( Kokkos::RangePolicy<t_dev_exec_space>(0, a.d_view.extent(0)), SumViewEntriesFunctor<scalar_type, typename ViewType::t_dev>(a.d_view), @@ -301,8 +333,8 @@ struct test_dualview_resize { template <typename Scalar, class Device> struct test_dualview_realloc { - typedef Scalar scalar_type; - typedef Device execution_space; + using scalar_type = Scalar; + using execution_space = Device; template <typename ViewType> void run_me() { @@ -319,8 +351,8 @@ struct test_dualview_realloc { // Check device view is initialized as expected scalar_type a_d_sum = 0; // Execute on the execution_space associated with t_dev's memory space - typedef typename ViewType::t_dev::memory_space::execution_space - t_dev_exec_space; + using t_dev_exec_space = + typename ViewType::t_dev::memory_space::execution_space; Kokkos::parallel_reduce( Kokkos::RangePolicy<t_dev_exec_space>(0, a.d_view.extent(0)), SumViewEntriesFunctor<scalar_type, typename ViewType::t_dev>(a.d_view), @@ -351,6 +383,12 @@ void test_dualview_combinations(unsigned int size, bool with_init) { ASSERT_EQ(test.result, 0); } +template <typename Scalar, typename Device> +void test_dualview_alloc(unsigned int size) { + Impl::test_dualview_alloc<Scalar, Device> test(size); + ASSERT_TRUE(test.result); +} + template <typename Scalar, typename Device> void test_dualview_deep_copy() { Impl::test_dual_view_deep_copy<Scalar, Device>(); @@ -366,10 +404,19 @@ void test_dualview_resize() { Impl::test_dualview_resize<Scalar, Device>(); } +// FIXME_SYCL requires MDRange policy +#ifndef KOKKOS_ENABLE_SYCL TEST(TEST_CATEGORY, dualview_combination) { test_dualview_combinations<int, TEST_EXECSPACE>(10, true); } +#endif + +TEST(TEST_CATEGORY, dualview_alloc) { + test_dualview_alloc<int, TEST_EXECSPACE>(10); +} +// FIXME_SYCL requires MDRange policy +#ifndef KOKKOS_ENABLE_SYCL TEST(TEST_CATEGORY, dualview_combinations_without_init) { test_dualview_combinations<int, TEST_EXECSPACE>(10, false); } @@ -386,6 +433,7 @@ TEST(TEST_CATEGORY, dualview_realloc) { TEST(TEST_CATEGORY, dualview_resize) { test_dualview_resize<int, TEST_EXECSPACE>(); } +#endif } // namespace Test diff --git a/packages/kokkos/containers/unit_tests/TestDynViewAPI.hpp b/packages/kokkos/containers/unit_tests/TestDynViewAPI.hpp index 5c1d0229c..dd0199ed8 100644 --- a/packages/kokkos/containers/unit_tests/TestDynViewAPI.hpp +++ b/packages/kokkos/containers/unit_tests/TestDynViewAPI.hpp @@ -68,12 +68,12 @@ size_t allocation_count(const Kokkos::DynRankView<T, P...>& view) { template <typename T, class DeviceType> struct TestViewOperator { - typedef DeviceType execution_space; + using execution_space = DeviceType; static const unsigned N = 100; static const unsigned D = 3; - typedef Kokkos::DynRankView<T, execution_space> view_type; + using view_type = Kokkos::DynRankView<T, execution_space>; const view_type v1; const view_type v2; @@ -101,11 +101,11 @@ struct TestViewOperator_LeftAndRight; template <class DataType, class DeviceType> struct TestViewOperator_LeftAndRight<DataType, DeviceType, 7> { - typedef DeviceType execution_space; - typedef typename execution_space::memory_space memory_space; - typedef typename execution_space::size_type size_type; + using execution_space = DeviceType; + using memory_space = typename execution_space::memory_space; + using size_type = typename execution_space::size_type; - typedef int value_type; + using value_type = int; KOKKOS_INLINE_FUNCTION static void join(volatile value_type& update, @@ -116,11 +116,11 @@ struct TestViewOperator_LeftAndRight<DataType, DeviceType, 7> { KOKKOS_INLINE_FUNCTION static void init(value_type& update) { update = 0; } - typedef Kokkos::DynRankView<DataType, Kokkos::LayoutLeft, execution_space> - left_view; + using left_view = + Kokkos::DynRankView<DataType, Kokkos::LayoutLeft, execution_space>; - typedef Kokkos::DynRankView<DataType, Kokkos::LayoutRight, execution_space> - right_view; + using right_view = + Kokkos::DynRankView<DataType, Kokkos::LayoutRight, execution_space>; left_view left; right_view right; @@ -186,11 +186,11 @@ struct TestViewOperator_LeftAndRight<DataType, DeviceType, 7> { template <class DataType, class DeviceType> struct TestViewOperator_LeftAndRight<DataType, DeviceType, 6> { - typedef DeviceType execution_space; - typedef typename execution_space::memory_space memory_space; - typedef typename execution_space::size_type size_type; + using execution_space = DeviceType; + using memory_space = typename execution_space::memory_space; + using size_type = typename execution_space::size_type; - typedef int value_type; + using value_type = int; KOKKOS_INLINE_FUNCTION static void join(volatile value_type& update, @@ -201,11 +201,11 @@ struct TestViewOperator_LeftAndRight<DataType, DeviceType, 6> { KOKKOS_INLINE_FUNCTION static void init(value_type& update) { update = 0; } - typedef Kokkos::DynRankView<DataType, Kokkos::LayoutLeft, execution_space> - left_view; + using left_view = + Kokkos::DynRankView<DataType, Kokkos::LayoutLeft, execution_space>; - typedef Kokkos::DynRankView<DataType, Kokkos::LayoutRight, execution_space> - right_view; + using right_view = + Kokkos::DynRankView<DataType, Kokkos::LayoutRight, execution_space>; left_view left; right_view right; @@ -268,11 +268,11 @@ struct TestViewOperator_LeftAndRight<DataType, DeviceType, 6> { template <class DataType, class DeviceType> struct TestViewOperator_LeftAndRight<DataType, DeviceType, 5> { - typedef DeviceType execution_space; - typedef typename execution_space::memory_space memory_space; - typedef typename execution_space::size_type size_type; + using execution_space = DeviceType; + using memory_space = typename execution_space::memory_space; + using size_type = typename execution_space::size_type; - typedef int value_type; + using value_type = int; KOKKOS_INLINE_FUNCTION static void join(volatile value_type& update, @@ -283,14 +283,14 @@ struct TestViewOperator_LeftAndRight<DataType, DeviceType, 5> { KOKKOS_INLINE_FUNCTION static void init(value_type& update) { update = 0; } - typedef Kokkos::DynRankView<DataType, Kokkos::LayoutLeft, execution_space> - left_view; + using left_view = + Kokkos::DynRankView<DataType, Kokkos::LayoutLeft, execution_space>; - typedef Kokkos::DynRankView<DataType, Kokkos::LayoutRight, execution_space> - right_view; + using right_view = + Kokkos::DynRankView<DataType, Kokkos::LayoutRight, execution_space>; - typedef Kokkos::DynRankView<DataType, Kokkos::LayoutStride, execution_space> - stride_view; + using stride_view = + Kokkos::DynRankView<DataType, Kokkos::LayoutStride, execution_space>; left_view left; right_view right; @@ -363,11 +363,11 @@ struct TestViewOperator_LeftAndRight<DataType, DeviceType, 5> { template <class DataType, class DeviceType> struct TestViewOperator_LeftAndRight<DataType, DeviceType, 4> { - typedef DeviceType execution_space; - typedef typename execution_space::memory_space memory_space; - typedef typename execution_space::size_type size_type; + using execution_space = DeviceType; + using memory_space = typename execution_space::memory_space; + using size_type = typename execution_space::size_type; - typedef int value_type; + using value_type = int; KOKKOS_INLINE_FUNCTION static void join(volatile value_type& update, @@ -378,11 +378,11 @@ struct TestViewOperator_LeftAndRight<DataType, DeviceType, 4> { KOKKOS_INLINE_FUNCTION static void init(value_type& update) { update = 0; } - typedef Kokkos::DynRankView<DataType, Kokkos::LayoutLeft, execution_space> - left_view; + using left_view = + Kokkos::DynRankView<DataType, Kokkos::LayoutLeft, execution_space>; - typedef Kokkos::DynRankView<DataType, Kokkos::LayoutRight, execution_space> - right_view; + using right_view = + Kokkos::DynRankView<DataType, Kokkos::LayoutRight, execution_space>; left_view left; right_view right; @@ -438,11 +438,11 @@ struct TestViewOperator_LeftAndRight<DataType, DeviceType, 4> { template <class DataType, class DeviceType> struct TestViewOperator_LeftAndRight<DataType, DeviceType, 3> { - typedef DeviceType execution_space; - typedef typename execution_space::memory_space memory_space; - typedef typename execution_space::size_type size_type; + using execution_space = DeviceType; + using memory_space = typename execution_space::memory_space; + using size_type = typename execution_space::size_type; - typedef int value_type; + using value_type = int; KOKKOS_INLINE_FUNCTION static void join(volatile value_type& update, @@ -453,14 +453,14 @@ struct TestViewOperator_LeftAndRight<DataType, DeviceType, 3> { KOKKOS_INLINE_FUNCTION static void init(value_type& update) { update = 0; } - typedef Kokkos::DynRankView<DataType, Kokkos::LayoutLeft, execution_space> - left_view; + using left_view = + Kokkos::DynRankView<DataType, Kokkos::LayoutLeft, execution_space>; - typedef Kokkos::DynRankView<DataType, Kokkos::LayoutRight, execution_space> - right_view; + using right_view = + Kokkos::DynRankView<DataType, Kokkos::LayoutRight, execution_space>; - typedef Kokkos::DynRankView<DataType, Kokkos::LayoutStride, execution_space> - stride_view; + using stride_view = + Kokkos::DynRankView<DataType, Kokkos::LayoutStride, execution_space>; left_view left; right_view right; @@ -536,11 +536,11 @@ struct TestViewOperator_LeftAndRight<DataType, DeviceType, 3> { template <class DataType, class DeviceType> struct TestViewOperator_LeftAndRight<DataType, DeviceType, 2> { - typedef DeviceType execution_space; - typedef typename execution_space::memory_space memory_space; - typedef typename execution_space::size_type size_type; + using execution_space = DeviceType; + using memory_space = typename execution_space::memory_space; + using size_type = typename execution_space::size_type; - typedef int value_type; + using value_type = int; KOKKOS_INLINE_FUNCTION static void join(volatile value_type& update, @@ -551,11 +551,11 @@ struct TestViewOperator_LeftAndRight<DataType, DeviceType, 2> { KOKKOS_INLINE_FUNCTION static void init(value_type& update) { update = 0; } - typedef Kokkos::DynRankView<DataType, Kokkos::LayoutLeft, execution_space> - left_view; + using left_view = + Kokkos::DynRankView<DataType, Kokkos::LayoutLeft, execution_space>; - typedef Kokkos::DynRankView<DataType, Kokkos::LayoutRight, execution_space> - right_view; + using right_view = + Kokkos::DynRankView<DataType, Kokkos::LayoutRight, execution_space>; left_view left; right_view right; @@ -616,11 +616,11 @@ struct TestViewOperator_LeftAndRight<DataType, DeviceType, 2> { template <class DataType, class DeviceType> struct TestViewOperator_LeftAndRight<DataType, DeviceType, 1> { - typedef DeviceType execution_space; - typedef typename execution_space::memory_space memory_space; - typedef typename execution_space::size_type size_type; + using execution_space = DeviceType; + using memory_space = typename execution_space::memory_space; + using size_type = typename execution_space::size_type; - typedef int value_type; + using value_type = int; KOKKOS_INLINE_FUNCTION static void join(volatile value_type& update, @@ -631,14 +631,14 @@ struct TestViewOperator_LeftAndRight<DataType, DeviceType, 1> { KOKKOS_INLINE_FUNCTION static void init(value_type& update) { update = 0; } - typedef Kokkos::DynRankView<DataType, Kokkos::LayoutLeft, execution_space> - left_view; + using left_view = + Kokkos::DynRankView<DataType, Kokkos::LayoutLeft, execution_space>; - typedef Kokkos::DynRankView<DataType, Kokkos::LayoutRight, execution_space> - right_view; + using right_view = + Kokkos::DynRankView<DataType, Kokkos::LayoutRight, execution_space>; - typedef Kokkos::DynRankView<DataType, Kokkos::LayoutStride, execution_space> - stride_view; + using stride_view = + Kokkos::DynRankView<DataType, Kokkos::LayoutStride, execution_space>; left_view left; right_view right; @@ -689,22 +689,22 @@ struct TestViewOperator_LeftAndRight<DataType, DeviceType, 1> { template <typename T, class DeviceType> class TestDynViewAPI { public: - typedef DeviceType device; + using device = DeviceType; enum { N0 = 1000, N1 = 3, N2 = 5, N3 = 7 }; - typedef Kokkos::DynRankView<T, device> dView0; - typedef Kokkos::DynRankView<const T, device> const_dView0; + using dView0 = Kokkos::DynRankView<T, device>; + using const_dView0 = Kokkos::DynRankView<const T, device>; - typedef Kokkos::DynRankView<T, device, Kokkos::MemoryUnmanaged> - dView0_unmanaged; - typedef typename dView0::host_mirror_space host_drv_space; + using dView0_unmanaged = + Kokkos::DynRankView<T, device, Kokkos::MemoryUnmanaged>; + using host_drv_space = typename dView0::host_mirror_space; - typedef Kokkos::View<T, device> View0; - typedef Kokkos::View<T*, device> View1; - typedef Kokkos::View<T*******, device> View7; + using View0 = Kokkos::View<T, device>; + using View1 = Kokkos::View<T*, device>; + using View7 = Kokkos::View<T*******, device>; - typedef typename View0::host_mirror_space host_view_space; + using host_view_space = typename View0::host_mirror_space; static void run_tests() { run_test_resize_realloc(); @@ -712,6 +712,7 @@ class TestDynViewAPI { run_test_mirror_and_copy(); run_test_scalar(); run_test(); + run_test_allocated(); run_test_const(); run_test_subview(); run_test_subview_strided(); @@ -750,8 +751,8 @@ class TestDynViewAPI { } static void run_test_mirror() { - typedef Kokkos::DynRankView<int, host_drv_space> view_type; - typedef typename view_type::HostMirror mirror_type; + using view_type = Kokkos::DynRankView<int, host_drv_space>; + using mirror_type = typename view_type::HostMirror; view_type a("a"); mirror_type am = Kokkos::create_mirror_view(a); mirror_type ax = Kokkos::create_mirror(a); @@ -851,8 +852,8 @@ class TestDynViewAPI { ASSERT_EQ(a_h.rank(), a_d.rank()); } { - typedef Kokkos::DynRankView<int, Kokkos::LayoutStride, Kokkos::HostSpace> - view_stride_type; + using view_stride_type = + Kokkos::DynRankView<int, Kokkos::LayoutStride, Kokkos::HostSpace>; unsigned order[] = {6, 5, 4, 3, 2, 1, 0}, dimen[] = {N0, N1, N2, 2, 2, 2, 2}; // LayoutRight equivalent view_stride_type a_h( @@ -956,8 +957,8 @@ class TestDynViewAPI { } static void run_test_scalar() { - typedef typename dView0::HostMirror - hView0; // HostMirror of DynRankView is a DynRankView + using hView0 = typename dView0::HostMirror; // HostMirror of DynRankView is + // a DynRankView dView0 dx, dy; hView0 hx, hy; @@ -1050,20 +1051,20 @@ class TestDynViewAPI { static void run_test() { // mfh 14 Feb 2014: This test doesn't actually create instances of - // these types. In order to avoid "declared but unused typedef" + // these types. In order to avoid "unused type alias" // warnings, we declare empty instances of these types, with the // usual "(void)" marker to avoid compiler warnings for unused // variables. - typedef typename dView0::HostMirror hView0; + using hView0 = typename dView0::HostMirror; { hView0 thing; (void)thing; } - dView0 d_uninitialized(Kokkos::ViewAllocateWithoutInitializing("uninit"), - 10, 20); + dView0 d_uninitialized( + Kokkos::view_alloc(Kokkos::WithoutInitializing, "uninit"), 10, 20); ASSERT_TRUE(d_uninitialized.data() != nullptr); ASSERT_EQ(d_uninitialized.rank(), 2); ASSERT_EQ(d_uninitialized.extent(0), 10); @@ -1361,7 +1362,7 @@ class TestDynViewAPI { } } - typedef T DataType; + using DataType = T; static void check_auto_conversion_to_const( const Kokkos::DynRankView<const DataType, device>& arg_const, @@ -1369,12 +1370,28 @@ class TestDynViewAPI { ASSERT_TRUE(arg_const == arg); } + static void run_test_allocated() { + using device_type = Kokkos::DynRankView<DataType, device>; + + const int N1 = 100; + const int N2 = 10; + + device_type d1; + ASSERT_FALSE(d1.is_allocated()); + + d1 = device_type("d1", N1, N2); + device_type d2(d1); + device_type d3("d3", N1); + ASSERT_TRUE(d1.is_allocated()); + ASSERT_TRUE(d2.is_allocated()); + ASSERT_TRUE(d3.is_allocated()); + } + static void run_test_const() { - typedef Kokkos::DynRankView<DataType, device> typeX; - typedef Kokkos::DynRankView<const DataType, device> const_typeX; - typedef Kokkos::DynRankView<const DataType, device, - Kokkos::MemoryRandomAccess> - const_typeR; + using typeX = Kokkos::DynRankView<DataType, device>; + using const_typeX = Kokkos::DynRankView<const DataType, device>; + using const_typeR = + Kokkos::DynRankView<const DataType, device, Kokkos::MemoryRandomAccess>; typeX x("X", 2); const_typeX xc = x; const_typeR xr = x; @@ -1398,10 +1415,10 @@ class TestDynViewAPI { } static void run_test_subview() { - typedef Kokkos::DynRankView<const T, device> cdView; - typedef Kokkos::DynRankView<T, device> dView; + using cdView = Kokkos::DynRankView<const T, device>; + using dView = Kokkos::DynRankView<T, device>; // LayoutStride required for all returned DynRankView subdynrankview's - typedef Kokkos::DynRankView<T, Kokkos::LayoutStride, device> sdView; + using sdView = Kokkos::DynRankView<T, Kokkos::LayoutStride, device>; dView0 d0("d0"); cdView s0 = d0; @@ -1452,7 +1469,7 @@ class TestDynViewAPI { ASSERT_EQ(dv6.rank(), 6); // DynRankView with LayoutRight - typedef Kokkos::DynRankView<T, Kokkos::LayoutRight, device> drView; + using drView = Kokkos::DynRankView<T, Kokkos::LayoutRight, device>; drView dr5("dr5", N0, N1, N2, 2, 2); ASSERT_EQ(dr5.rank(), 5); @@ -1514,7 +1531,8 @@ class TestDynViewAPI { ASSERT_EQ(ds5.extent(4), ds5plus.extent(4)); ASSERT_EQ(ds5.extent(5), ds5plus.extent(5)); -#if !defined(KOKKOS_ENABLE_CUDA) || defined(KOKKOS_ENABLE_CUDA_UVM) +#if (!defined(KOKKOS_ENABLE_CUDA) || defined(KOKKOS_ENABLE_CUDA_UVM)) && \ + !defined(KOKKOS_ENABLE_HIP) && !defined(KOKKOS_ENABLE_SYCL) ASSERT_EQ(&ds5(1, 1, 1, 1, 0) - &ds5plus(1, 1, 1, 1, 0), 0); ASSERT_EQ(&ds5(1, 1, 1, 1, 0, 0) - &ds5plus(1, 1, 1, 1, 0, 0), 0); // passing argument to rank beyond the view's rank is allowed @@ -1538,12 +1556,12 @@ class TestDynViewAPI { } static void run_test_subview_strided() { - typedef Kokkos::DynRankView<int, Kokkos::LayoutLeft, host_drv_space> - drview_left; - typedef Kokkos::DynRankView<int, Kokkos::LayoutRight, host_drv_space> - drview_right; - typedef Kokkos::DynRankView<int, Kokkos::LayoutStride, host_drv_space> - drview_stride; + using drview_left = + Kokkos::DynRankView<int, Kokkos::LayoutLeft, host_drv_space>; + using drview_right = + Kokkos::DynRankView<int, Kokkos::LayoutRight, host_drv_space>; + using drview_stride = + Kokkos::DynRankView<int, Kokkos::LayoutStride, host_drv_space>; drview_left xl2("xl2", 100, 200); drview_right xr2("xr2", 100, 200); @@ -1588,31 +1606,29 @@ class TestDynViewAPI { static void run_test_vector() { static const unsigned Length = 1000, Count = 8; - typedef typename Kokkos::DynRankView<T, Kokkos::LayoutLeft, host_drv_space> - multivector_type; + using multivector_type = + typename Kokkos::DynRankView<T, Kokkos::LayoutLeft, host_drv_space>; - typedef typename Kokkos::DynRankView<T, Kokkos::LayoutRight, host_drv_space> - multivector_right_type; + using multivector_right_type = + typename Kokkos::DynRankView<T, Kokkos::LayoutRight, host_drv_space>; multivector_type mv = multivector_type("mv", Length, Count); multivector_right_type mv_right = multivector_right_type("mv", Length, Count); - typedef - typename Kokkos::DynRankView<T, Kokkos::LayoutStride, host_drv_space> - svector_type; - typedef - typename Kokkos::DynRankView<T, Kokkos::LayoutStride, host_drv_space> - smultivector_type; - typedef typename Kokkos::DynRankView<const T, Kokkos::LayoutStride, - host_drv_space> - const_svector_right_type; - typedef typename Kokkos::DynRankView<const T, Kokkos::LayoutStride, - host_drv_space> - const_svector_type; - typedef typename Kokkos::DynRankView<const T, Kokkos::LayoutStride, - host_drv_space> - const_smultivector_type; + using svector_type = + typename Kokkos::DynRankView<T, Kokkos::LayoutStride, host_drv_space>; + using smultivector_type = + typename Kokkos::DynRankView<T, Kokkos::LayoutStride, host_drv_space>; + using const_svector_right_type = + typename Kokkos::DynRankView<const T, Kokkos::LayoutStride, + host_drv_space>; + using const_svector_type = + typename Kokkos::DynRankView<const T, Kokkos::LayoutStride, + host_drv_space>; + using const_smultivector_type = + typename Kokkos::DynRankView<const T, Kokkos::LayoutStride, + host_drv_space>; svector_type v1 = Kokkos::subdynrankview(mv, Kokkos::ALL(), 0); svector_type v2 = Kokkos::subdynrankview(mv, Kokkos::ALL(), 1); diff --git a/packages/kokkos/containers/unit_tests/TestDynViewAPI_generic.hpp b/packages/kokkos/containers/unit_tests/TestDynViewAPI_generic.hpp index b3e2812b4..90ca5df19 100644 --- a/packages/kokkos/containers/unit_tests/TestDynViewAPI_generic.hpp +++ b/packages/kokkos/containers/unit_tests/TestDynViewAPI_generic.hpp @@ -44,10 +44,7 @@ #include <TestDynViewAPI.hpp> namespace Test { -// FIXME_HIP attempt to access inaccessible memory space -#ifndef KOKKOS_ENABLE_HIP TEST(TEST_CATEGORY, dyn_rank_view_api_generic) { TestDynViewAPI<double, TEST_EXECSPACE>::run_tests(); } -#endif } // namespace Test diff --git a/packages/kokkos/containers/unit_tests/TestDynViewAPI_rank12345.hpp b/packages/kokkos/containers/unit_tests/TestDynViewAPI_rank12345.hpp index 86a2e4e95..050ebbe35 100644 --- a/packages/kokkos/containers/unit_tests/TestDynViewAPI_rank12345.hpp +++ b/packages/kokkos/containers/unit_tests/TestDynViewAPI_rank12345.hpp @@ -45,10 +45,7 @@ #include <TestDynViewAPI.hpp> namespace Test { -// FIXME_HIP failing with wrong value -#ifndef KOKKOS_ENABLE_HIP TEST(TEST_CATEGORY, dyn_rank_view_api_operator_rank12345) { TestDynViewAPI<double, TEST_EXECSPACE>::run_operator_test_rank12345(); } -#endif } // namespace Test diff --git a/packages/kokkos/containers/unit_tests/TestDynamicView.hpp b/packages/kokkos/containers/unit_tests/TestDynamicView.hpp index 8eabbcb37..4b9f99441 100644 --- a/packages/kokkos/containers/unit_tests/TestDynamicView.hpp +++ b/packages/kokkos/containers/unit_tests/TestDynamicView.hpp @@ -58,12 +58,12 @@ namespace Test { template <typename Scalar, class Space> struct TestDynamicView { - typedef typename Space::execution_space execution_space; - typedef typename Space::memory_space memory_space; + using execution_space = typename Space::execution_space; + using memory_space = typename Space::memory_space; - typedef Kokkos::Experimental::DynamicView<Scalar*, Space> view_type; + using view_type = Kokkos::Experimental::DynamicView<Scalar*, Space>; - typedef double value_type; + using value_type = double; static void run(unsigned arg_total_size) { // Test: Create DynamicView, initialize size (via resize), run through @@ -71,6 +71,27 @@ struct TestDynamicView { // values and repeat // Case 1: min_chunk_size is a power of 2 { + { + view_type d1; + ASSERT_FALSE(d1.is_allocated()); + + d1 = view_type("d1", 1024, arg_total_size); + view_type d2(d1); + view_type d3("d3", 1024, arg_total_size); + + ASSERT_FALSE(d1.is_allocated()); + ASSERT_FALSE(d2.is_allocated()); + ASSERT_FALSE(d3.is_allocated()); + + unsigned d_size = arg_total_size / 8; + d1.resize_serial(d_size); + d2.resize_serial(d_size); + d3.resize_serial(d_size); + + ASSERT_TRUE(d1.is_allocated()); + ASSERT_TRUE(d2.is_allocated()); + ASSERT_TRUE(d3.is_allocated()); + } view_type da("da", 1024, arg_total_size); ASSERT_EQ(da.size(), 0); // Init @@ -222,13 +243,16 @@ struct TestDynamicView { } }; +// FIXME_SYCL needs resize_serial +#ifndef KOKKOS_ENABLE_SYCL TEST(TEST_CATEGORY, dynamic_view) { - typedef TestDynamicView<double, TEST_EXECSPACE> TestDynView; + using TestDynView = TestDynamicView<double, TEST_EXECSPACE>; for (int i = 0; i < 10; ++i) { TestDynView::run(100000 + 100 * i); } } +#endif } // namespace Test diff --git a/packages/kokkos/containers/unit_tests/TestErrorReporter.hpp b/packages/kokkos/containers/unit_tests/TestErrorReporter.hpp index 318132500..a90885bd3 100644 --- a/packages/kokkos/containers/unit_tests/TestErrorReporter.hpp +++ b/packages/kokkos/containers/unit_tests/TestErrorReporter.hpp @@ -84,9 +84,9 @@ void checkReportersAndReportsAgree(const std::vector<int> &reporters, template <typename DeviceType> struct ErrorReporterDriverBase { - typedef ThreeValReport<int, int, double> report_type; - typedef Kokkos::Experimental::ErrorReporter<report_type, DeviceType> - error_reporter_type; + using report_type = ThreeValReport<int, int, double>; + using error_reporter_type = + Kokkos::Experimental::ErrorReporter<report_type, DeviceType>; error_reporter_type m_errorReporter; ErrorReporterDriverBase(int reporter_capacity, int /*test_size*/) @@ -97,10 +97,11 @@ struct ErrorReporterDriverBase { } void check_expectations(int reporter_capacity, int test_size) { + using namespace std; int num_reported = m_errorReporter.getNumReports(); int num_attempts = m_errorReporter.getNumReportAttempts(); - int expected_num_reports = std::min(reporter_capacity, test_size / 2); + int expected_num_reports = min(reporter_capacity, test_size / 2); EXPECT_EQ(expected_num_reports, num_reported); EXPECT_EQ(test_size / 2, num_attempts); @@ -112,7 +113,7 @@ struct ErrorReporterDriverBase { template <typename ErrorReporterDriverType> void TestErrorReporter() { - typedef ErrorReporterDriverType tester_type; + using tester_type = ErrorReporterDriverType; std::vector<int> reporters; std::vector<typename tester_type::report_type> reports; @@ -147,9 +148,9 @@ void TestErrorReporter() { template <typename DeviceType> struct ErrorReporterDriver : public ErrorReporterDriverBase<DeviceType> { - typedef ErrorReporterDriverBase<DeviceType> driver_base; - typedef typename driver_base::error_reporter_type::execution_space - execution_space; + using driver_base = ErrorReporterDriverBase<DeviceType>; + using execution_space = + typename driver_base::error_reporter_type::execution_space; ErrorReporterDriver(int reporter_capacity, int test_size) : driver_base(reporter_capacity, test_size) { @@ -185,12 +186,16 @@ struct ErrorReporterDriver : public ErrorReporterDriverBase<DeviceType> { template <typename DeviceType> struct ErrorReporterDriverUseLambda : public ErrorReporterDriverBase<DeviceType> { - typedef ErrorReporterDriverBase<DeviceType> driver_base; - typedef typename driver_base::error_reporter_type::execution_space - execution_space; + using driver_base = ErrorReporterDriverBase<DeviceType>; + using execution_space = + typename driver_base::error_reporter_type::execution_space; ErrorReporterDriverUseLambda(int reporter_capacity, int test_size) : driver_base(reporter_capacity, test_size) { + execute(reporter_capacity, test_size); + } + + void execute(int reporter_capacity, int test_size) { Kokkos::parallel_for( Kokkos::RangePolicy<execution_space>(0, test_size), KOKKOS_CLASS_LAMBDA(const int work_idx) { @@ -210,9 +215,9 @@ struct ErrorReporterDriverUseLambda #ifdef KOKKOS_ENABLE_OPENMP struct ErrorReporterDriverNativeOpenMP : public ErrorReporterDriverBase<Kokkos::OpenMP> { - typedef ErrorReporterDriverBase<Kokkos::OpenMP> driver_base; - typedef typename driver_base::error_reporter_type::execution_space - execution_space; + using driver_base = ErrorReporterDriverBase<Kokkos::OpenMP>; + using execution_space = + typename driver_base::error_reporter_type::execution_space; ErrorReporterDriverNativeOpenMP(int reporter_capacity, int test_size) : driver_base(reporter_capacity, test_size) { diff --git a/packages/kokkos/containers/unit_tests/TestOffsetView.hpp b/packages/kokkos/containers/unit_tests/TestOffsetView.hpp index 5114b8022..802813b13 100644 --- a/packages/kokkos/containers/unit_tests/TestOffsetView.hpp +++ b/packages/kokkos/containers/unit_tests/TestOffsetView.hpp @@ -61,12 +61,25 @@ namespace Test { template <typename Scalar, typename Device> void test_offsetview_construction() { - typedef Kokkos::Experimental::OffsetView<Scalar**, Device> offset_view_type; - typedef Kokkos::View<Scalar**, Device> view_type; + using offset_view_type = Kokkos::Experimental::OffsetView<Scalar**, Device>; + using view_type = Kokkos::View<Scalar**, Device>; Kokkos::Experimental::index_list_type range0 = {-1, 3}; Kokkos::Experimental::index_list_type range1 = {-2, 2}; + { + offset_view_type o1; + ASSERT_FALSE(o1.is_allocated()); + + o1 = offset_view_type("o1", range0, range1); + offset_view_type o2(o1); + offset_view_type o3("o3", range0, range1); + + ASSERT_TRUE(o1.is_allocated()); + ASSERT_TRUE(o2.is_allocated()); + ASSERT_TRUE(o3.is_allocated()); + } + offset_view_type ov("firstOV", range0, range1); ASSERT_EQ("firstOV", ov.label()); @@ -82,10 +95,6 @@ void test_offsetview_construction() { ASSERT_EQ(ov.extent(1), 5); #if defined(KOKKOS_ENABLE_CUDA_LAMBDA) || !defined(KOKKOS_ENABLE_CUDA) - const int ovmin0 = ov.begin(0); - const int ovend0 = ov.end(0); - const int ovmin1 = ov.begin(1); - const int ovend1 = ov.end(1); { Kokkos::Experimental::OffsetView<Scalar*, Device> offsetV1("OneDOffsetView", range0); @@ -109,9 +118,9 @@ void test_offsetview_construction() { { // test deep copy of scalar const value into mirro const int constVal = 6; typename offset_view_type::HostMirror hostOffsetView = - Kokkos::Experimental::create_mirror_view(ov); + Kokkos::create_mirror_view(ov); - Kokkos::Experimental::deep_copy(hostOffsetView, constVal); + Kokkos::deep_copy(hostOffsetView, constVal); for (int i = hostOffsetView.begin(0); i < hostOffsetView.end(0); ++i) { for (int j = hostOffsetView.begin(1); j < hostOffsetView.end(1); ++j) { @@ -121,10 +130,16 @@ void test_offsetview_construction() { } } - typedef Kokkos::MDRangePolicy<Device, Kokkos::Rank<2>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::point_type point_type; + // FIXME_SYCL requires MDRange policy +#ifndef KOKKOS_ENABLE_SYCL + const int ovmin0 = ov.begin(0); + const int ovend0 = ov.end(0); + const int ovmin1 = ov.begin(1); + const int ovend1 = ov.end(1); + + using range_type = + Kokkos::MDRangePolicy<Device, Kokkos::Rank<2>, Kokkos::IndexType<int> >; + using point_type = typename range_type::point_type; range_type rangePolicy2D(point_type{{ovmin0, ovmin1}}, point_type{{ovend0, ovend1}}); @@ -136,9 +151,9 @@ void test_offsetview_construction() { // test offsetview to offsetviewmirror deep copy typename offset_view_type::HostMirror hostOffsetView = - Kokkos::Experimental::create_mirror_view(ov); + Kokkos::create_mirror_view(ov); - Kokkos::Experimental::deep_copy(hostOffsetView, ov); + Kokkos::deep_copy(hostOffsetView, ov); for (int i = hostOffsetView.begin(0); i < hostOffsetView.end(0); ++i) { for (int j = hostOffsetView.begin(1); j < hostOffsetView.end(1); ++j) { @@ -163,6 +178,7 @@ void test_offsetview_construction() { } ASSERT_EQ(OVResult, answer) << "Bad data found in OffsetView"; +#endif #endif { @@ -185,10 +201,9 @@ void test_offsetview_construction() { Kokkos::deep_copy(view3D, 1); - typedef Kokkos::MDRangePolicy<Device, Kokkos::Rank<3>, - Kokkos::IndexType<int64_t> > - range3_type; - typedef typename range3_type::point_type point3_type; + using range3_type = Kokkos::MDRangePolicy<Device, Kokkos::Rank<3>, + Kokkos::IndexType<int64_t> >; + using point3_type = typename range3_type::point_type; typename point3_type::value_type begins0 = -10, begins1 = -20, begins2 = -30; @@ -200,6 +215,8 @@ void test_offsetview_construction() { point3_type{{extent0, extent1, extent2}}); #if defined(KOKKOS_ENABLE_CUDA_LAMBDA) || !defined(KOKKOS_ENABLE_CUDA) + // FIXME_SYCL requires MDRange policy +#ifdef KOKKOS_ENABLE_SYCL int view3DSum = 0; Kokkos::parallel_reduce( rangePolicy3DZero, @@ -222,6 +239,7 @@ void test_offsetview_construction() { ASSERT_EQ(view3DSum, offsetView3DSum) << "construction of OffsetView from View and begins array broken."; +#endif #endif } view_type viewFromOV = ov.view(); @@ -245,9 +263,11 @@ void test_offsetview_construction() { { // test offsetview to view deep copy view_type aView("aView", ov.extent(0), ov.extent(1)); - Kokkos::Experimental::deep_copy(aView, ov); + Kokkos::deep_copy(aView, ov); #if defined(KOKKOS_ENABLE_CUDA_LAMBDA) || !defined(KOKKOS_ENABLE_CUDA) + // FIXME_SYCL requires MDRange policy +#ifndef KOKKOS_ENABLE_SYCL int sum = 0; Kokkos::parallel_reduce( rangePolicy2D, @@ -257,6 +277,7 @@ void test_offsetview_construction() { sum); ASSERT_EQ(sum, 0) << "deep_copy(view, offsetView) broken."; +#endif #endif } @@ -264,9 +285,11 @@ void test_offsetview_construction() { view_type aView("aView", ov.extent(0), ov.extent(1)); Kokkos::deep_copy(aView, 99); - Kokkos::Experimental::deep_copy(ov, aView); + Kokkos::deep_copy(ov, aView); #if defined(KOKKOS_ENABLE_CUDA_LAMBDA) || !defined(KOKKOS_ENABLE_CUDA) + // FIXME_SYCL requires MDRange policy +#ifndef KOKKOS_ENABLE_SYCL int sum = 0; Kokkos::parallel_reduce( rangePolicy2D, @@ -276,6 +299,7 @@ void test_offsetview_construction() { sum); ASSERT_EQ(sum, 0) << "deep_copy(offsetView, view) broken."; +#endif #endif } } @@ -447,10 +471,11 @@ void test_offsetview_subview() { ASSERT_EQ(offsetSubview.end(1), 9); #if defined(KOKKOS_ENABLE_CUDA_LAMBDA) || !defined(KOKKOS_ENABLE_CUDA) - typedef Kokkos::MDRangePolicy<Device, Kokkos::Rank<2>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::point_type point_type; + // FIXME_SYCL requires MDRange policy +#ifndef KOKKOS_ENABLE_SYCL + using range_type = Kokkos::MDRangePolicy<Device, Kokkos::Rank<2>, + Kokkos::IndexType<int> >; + using point_type = typename range_type::point_type; const int b0 = offsetSubview.begin(0); const int b1 = offsetSubview.begin(1); @@ -473,6 +498,7 @@ void test_offsetview_subview() { sum); ASSERT_EQ(sum, 6 * (e0 - b0) * (e1 - b1)); +#endif #endif } @@ -675,9 +701,12 @@ void test_offsetview_offsets_rank3() { } #endif +// FIXME_SYCL needs MDRangePolicy +#ifndef KOKKOS_ENABLE_SYCL TEST(TEST_CATEGORY, offsetview_construction) { test_offsetview_construction<int, TEST_EXECSPACE>(); } +#endif TEST(TEST_CATEGORY, offsetview_unmanaged_construction) { test_offsetview_unmanaged_construction<int, TEST_EXECSPACE>(); diff --git a/packages/kokkos/containers/unit_tests/TestSYCL_Category.hpp b/packages/kokkos/containers/unit_tests/TestSYCL_Category.hpp new file mode 100644 index 000000000..51fd3fc91 --- /dev/null +++ b/packages/kokkos/containers/unit_tests/TestSYCL_Category.hpp @@ -0,0 +1,51 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_TEST_SYCL_HPP +#define KOKKOS_TEST_SYCL_HPP + +#define TEST_CATEGORY sycl +#define TEST_EXECSPACE Kokkos::Experimental::SYCL + +#endif diff --git a/packages/kokkos/containers/unit_tests/TestScatterView.hpp b/packages/kokkos/containers/unit_tests/TestScatterView.hpp index 915d96d32..3a3cb607a 100644 --- a/packages/kokkos/containers/unit_tests/TestScatterView.hpp +++ b/packages/kokkos/containers/unit_tests/TestScatterView.hpp @@ -50,21 +50,22 @@ namespace Test { -template <typename DeviceType, typename Layout, int duplication, - int contribution, int op> +template <typename DeviceType, typename Layout, typename Duplication, + typename Contribution, typename Op, typename NumberType> struct test_scatter_view_impl_cls; -template <typename DeviceType, typename Layout, int duplication, - int contribution> -struct test_scatter_view_impl_cls<DeviceType, Layout, duplication, contribution, - Kokkos::Experimental::ScatterSum> { +template <typename DeviceType, typename Layout, typename Duplication, + typename Contribution, typename NumberType> +struct test_scatter_view_impl_cls<DeviceType, Layout, Duplication, Contribution, + Kokkos::Experimental::ScatterSum, + NumberType> { public: - typedef Kokkos::Experimental::ScatterView<double * [3], Layout, DeviceType, - Kokkos::Experimental::ScatterSum, - duplication, contribution> - scatter_view_type; + using scatter_view_type = + Kokkos::Experimental::ScatterView<NumberType * [12], Layout, DeviceType, + Kokkos::Experimental::ScatterSum, + Duplication, Contribution>; - typedef Kokkos::View<double * [3], Layout, DeviceType> orig_view_type; + using orig_view_type = Kokkos::View<NumberType * [12], Layout, DeviceType>; scatter_view_type scatter_view; int scatterSize; @@ -80,9 +81,18 @@ struct test_scatter_view_impl_cls<DeviceType, Layout, duplication, contribution, Kokkos::fence(); for (typename decltype(host_view)::size_type i = 0; i < host_view.extent(0); ++i) { - host_view(i, 0) = 0.0; - host_view(i, 1) = 0.0; - host_view(i, 2) = 0.0; + host_view(i, 0) = 0.0; + host_view(i, 1) = 0.0; + host_view(i, 2) = 0.0; + host_view(i, 3) = 0.0; + host_view(i, 4) = 0.0; + host_view(i, 5) = 0.0; + host_view(i, 6) = 0.0; + host_view(i, 7) = 0.0; + host_view(i, 8) = 0.0; + host_view(i, 9) = 0.0; + host_view(i, 10) = 0.0; + host_view(i, 11) = 0.0; } Kokkos::fence(); Kokkos::deep_copy(orig, host_view); @@ -102,9 +112,18 @@ struct test_scatter_view_impl_cls<DeviceType, Layout, duplication, contribution, scatter_view.template access<Kokkos::Experimental::ScatterAtomic>(); for (int j = 0; j < 10; ++j) { auto k = (i + j) % scatterSize; - scatter_access(k, 0) += 4.2; - scatter_access_atomic(k, 1) += 2.0; - scatter_access(k, 2) += 1.0; + scatter_access(k, 0) += 4; + ++scatter_access(k, 1); + --scatter_access(k, 2); + scatter_access(k, 3)++; + scatter_access(k, 4)--; + scatter_access(k, 5) -= 5; + scatter_access_atomic(k, 6) += 2; + scatter_access_atomic(k, 7)++; + scatter_access_atomic(k, 8)--; + --scatter_access_atomic(k, 9); + ++scatter_access_atomic(k, 10); + scatter_access(k, 11) -= 3; } } @@ -114,27 +133,46 @@ struct test_scatter_view_impl_cls<DeviceType, Layout, duplication, contribution, Kokkos::fence(); for (typename decltype(host_view)::size_type i = 0; i < host_view.extent(0); ++i) { - auto val0 = host_view(i, 0); - auto val1 = host_view(i, 1); - auto val2 = host_view(i, 2); - EXPECT_TRUE(std::fabs((val0 - 84.0) / 84.0) < 1e-14); - EXPECT_TRUE(std::fabs((val1 - 40.0) / 40.0) < 1e-14); - EXPECT_TRUE(std::fabs((val2 - 20.0) / 20.0) < 1e-14); + auto val0 = host_view(i, 0); + auto val1 = host_view(i, 1); + auto val2 = host_view(i, 2); + auto val3 = host_view(i, 3); + auto val4 = host_view(i, 4); + auto val5 = host_view(i, 5); + auto val6 = host_view(i, 6); + auto val7 = host_view(i, 7); + auto val8 = host_view(i, 8); + auto val9 = host_view(i, 9); + auto val10 = host_view(i, 10); + auto val11 = host_view(i, 11); + EXPECT_NEAR(val0, NumberType(80), 1e-14); + EXPECT_NEAR(val1, NumberType(20), 1e-14); + EXPECT_NEAR(val2, NumberType(-20), 1e-14); + EXPECT_NEAR(val3, NumberType(20), 1e-14); + EXPECT_NEAR(val4, NumberType(-20), 1e-14); + EXPECT_NEAR(val5, NumberType(-100), 1e-14); + EXPECT_NEAR(val6, NumberType(40), 1e-14); + EXPECT_NEAR(val7, NumberType(20), 1e-14); + EXPECT_NEAR(val8, NumberType(-20), 1e-14); + EXPECT_NEAR(val9, NumberType(-20), 1e-14); + EXPECT_NEAR(val10, NumberType(20), 1e-14); + EXPECT_NEAR(val11, NumberType(-60), 1e-14); } } }; -template <typename DeviceType, typename Layout, int duplication, - int contribution> -struct test_scatter_view_impl_cls<DeviceType, Layout, duplication, contribution, - Kokkos::Experimental::ScatterProd> { +template <typename DeviceType, typename Layout, typename Duplication, + typename Contribution, typename NumberType> +struct test_scatter_view_impl_cls<DeviceType, Layout, Duplication, Contribution, + Kokkos::Experimental::ScatterProd, + NumberType> { public: - typedef Kokkos::Experimental::ScatterView<double * [3], Layout, DeviceType, - Kokkos::Experimental::ScatterProd, - duplication, contribution> - scatter_view_type; + using scatter_view_type = + Kokkos::Experimental::ScatterView<NumberType * [3], Layout, DeviceType, + Kokkos::Experimental::ScatterProd, + Duplication, Contribution>; - typedef Kokkos::View<double * [3], Layout, DeviceType> orig_view_type; + using orig_view_type = Kokkos::View<NumberType * [3], Layout, DeviceType>; scatter_view_type scatter_view; int scatterSize; @@ -194,17 +232,18 @@ struct test_scatter_view_impl_cls<DeviceType, Layout, duplication, contribution, } }; -template <typename DeviceType, typename Layout, int duplication, - int contribution> -struct test_scatter_view_impl_cls<DeviceType, Layout, duplication, contribution, - Kokkos::Experimental::ScatterMin> { +template <typename DeviceType, typename Layout, typename Duplication, + typename Contribution, typename NumberType> +struct test_scatter_view_impl_cls<DeviceType, Layout, Duplication, Contribution, + Kokkos::Experimental::ScatterMin, + NumberType> { public: - typedef Kokkos::Experimental::ScatterView<double * [3], Layout, DeviceType, - Kokkos::Experimental::ScatterMin, - duplication, contribution> - scatter_view_type; + using scatter_view_type = + Kokkos::Experimental::ScatterView<NumberType * [3], Layout, DeviceType, + Kokkos::Experimental::ScatterMin, + Duplication, Contribution>; - typedef Kokkos::View<double * [3], Layout, DeviceType> orig_view_type; + using orig_view_type = Kokkos::View<NumberType * [3], Layout, DeviceType>; scatter_view_type scatter_view; int scatterSize; @@ -242,9 +281,9 @@ struct test_scatter_view_impl_cls<DeviceType, Layout, duplication, contribution, scatter_view.template access<Kokkos::Experimental::ScatterAtomic>(); for (int j = 0; j < 4; ++j) { auto k = (i + j) % scatterSize; - scatter_access(k, 0).update((double)(j + 1) * 4); - scatter_access_atomic(k, 1).update((double)(j + 1) * 2.0); - scatter_access(k, 2).update((double)(j + 1) * 1.0); + scatter_access(k, 0).update((NumberType)(j + 1) * 4); + scatter_access_atomic(k, 1).update((NumberType)(j + 1) * 2.0); + scatter_access(k, 2).update((NumberType)(j + 1) * 1.0); } } @@ -264,17 +303,18 @@ struct test_scatter_view_impl_cls<DeviceType, Layout, duplication, contribution, } }; -template <typename DeviceType, typename Layout, int duplication, - int contribution> -struct test_scatter_view_impl_cls<DeviceType, Layout, duplication, contribution, - Kokkos::Experimental::ScatterMax> { +template <typename DeviceType, typename Layout, typename Duplication, + typename Contribution, typename NumberType> +struct test_scatter_view_impl_cls<DeviceType, Layout, Duplication, Contribution, + Kokkos::Experimental::ScatterMax, + NumberType> { public: - typedef Kokkos::Experimental::ScatterView<double * [3], Layout, DeviceType, - Kokkos::Experimental::ScatterMax, - duplication, contribution> - scatter_view_type; + using scatter_view_type = + Kokkos::Experimental::ScatterView<NumberType * [3], Layout, DeviceType, + Kokkos::Experimental::ScatterMax, + Duplication, Contribution>; - typedef Kokkos::View<double * [3], Layout, DeviceType> orig_view_type; + using orig_view_type = Kokkos::View<NumberType * [3], Layout, DeviceType>; scatter_view_type scatter_view; int scatterSize; @@ -311,9 +351,9 @@ struct test_scatter_view_impl_cls<DeviceType, Layout, duplication, contribution, scatter_view.template access<Kokkos::Experimental::ScatterAtomic>(); for (int j = 0; j < 4; ++j) { auto k = (i + j) % scatterSize; - scatter_access(k, 0).update((double)(j + 1) * 4); - scatter_access_atomic(k, 1).update((double)(j + 1) * 2.0); - scatter_access(k, 2).update((double)(j + 1) * 1.0); + scatter_access(k, 0).update((NumberType)(j + 1) * 4); + scatter_access_atomic(k, 1).update((NumberType)(j + 1) * 2.0); + scatter_access(k, 2).update((NumberType)(j + 1) * 1.0); } } @@ -333,27 +373,126 @@ struct test_scatter_view_impl_cls<DeviceType, Layout, duplication, contribution, } }; -template <typename DeviceType, typename Layout, int duplication, - int contribution, int op> +template <typename DeviceType, typename Layout, typename Op, + typename NumberType> +struct test_default_scatter_view { + public: + using default_duplication = Kokkos::Impl::Experimental::DefaultDuplication< + typename DeviceType::execution_space>; + using Duplication = typename default_duplication::type; + using Contribution = typename Kokkos::Impl::Experimental::DefaultContribution< + typename DeviceType::execution_space, Duplication>::type; + using scatter_view_def = + typename test_scatter_view_impl_cls<DeviceType, Layout, Duplication, + Contribution, Op, + NumberType>::scatter_view_type; + using orig_view_def = + typename test_scatter_view_impl_cls<DeviceType, Layout, Duplication, + Contribution, Op, + NumberType>::orig_view_type; + + void run_test(int n) { + // Test creation via create_scatter_view overload 1 + { + orig_view_def original_view("original_view", n); + scatter_view_def scatter_view = + Kokkos::Experimental::create_scatter_view(Op{}, original_view); + + test_scatter_view_impl_cls<DeviceType, Layout, Duplication, Contribution, + Op, NumberType> + scatter_view_test_impl(scatter_view); + scatter_view_test_impl.initialize(original_view); + scatter_view_test_impl.run_parallel(n); + + Kokkos::Experimental::contribute(original_view, scatter_view); + scatter_view.reset_except(original_view); + + scatter_view_test_impl.run_parallel(n); + + Kokkos::Experimental::contribute(original_view, scatter_view); + Kokkos::fence(); + + scatter_view_test_impl.validateResults(original_view); + + { + scatter_view_def persistent_view("persistent", n); + auto result_view = persistent_view.subview(); + contribute(result_view, persistent_view); + Kokkos::fence(); + } + } + } +}; + +template <typename DeviceType, typename Layout, typename Duplication, + typename Contribution, typename Op, typename NumberType> struct test_scatter_view_config { public: - typedef - typename test_scatter_view_impl_cls<DeviceType, Layout, duplication, - contribution, op>::scatter_view_type - scatter_view_def; - typedef typename test_scatter_view_impl_cls<DeviceType, Layout, duplication, - contribution, op>::orig_view_type - orig_view_def; + using scatter_view_def = + typename test_scatter_view_impl_cls<DeviceType, Layout, Duplication, + Contribution, Op, + NumberType>::scatter_view_type; + using orig_view_def = + typename test_scatter_view_impl_cls<DeviceType, Layout, Duplication, + Contribution, Op, + NumberType>::orig_view_type; void run_test(int n) { + // test allocation + { + orig_view_def ov1("ov1", n); + scatter_view_def sv1; + + ASSERT_FALSE(sv1.is_allocated()); + + sv1 = Kokkos::Experimental::create_scatter_view<Op, Duplication, + Contribution>(ov1); + + scatter_view_def sv2(sv1); + scatter_view_def sv3("sv3", n); + + ASSERT_TRUE(sv1.is_allocated()); + ASSERT_TRUE(sv2.is_allocated()); + ASSERT_TRUE(sv3.is_allocated()); + } + // Test creation via create_scatter_view { orig_view_def original_view("original_view", n); scatter_view_def scatter_view = Kokkos::Experimental::create_scatter_view< - op, duplication, contribution>(original_view); + Op, Duplication, Contribution>(original_view); - test_scatter_view_impl_cls<DeviceType, Layout, duplication, contribution, - op> + test_scatter_view_impl_cls<DeviceType, Layout, Duplication, Contribution, + Op, NumberType> + scatter_view_test_impl(scatter_view); + scatter_view_test_impl.initialize(original_view); + scatter_view_test_impl.run_parallel(n); + + Kokkos::Experimental::contribute(original_view, scatter_view); + scatter_view.reset_except(original_view); + + scatter_view_test_impl.run_parallel(n); + + Kokkos::Experimental::contribute(original_view, scatter_view); + Kokkos::fence(); + + scatter_view_test_impl.validateResults(original_view); + + { + scatter_view_def persistent_view("persistent", n); + auto result_view = persistent_view.subview(); + contribute(result_view, persistent_view); + Kokkos::fence(); + } + } + // Test creation via create_scatter_view overload 2 + { + orig_view_def original_view("original_view", n); + scatter_view_def scatter_view = Kokkos::Experimental::create_scatter_view( + Op{}, Duplication{}, Contribution{}, original_view); + + test_scatter_view_impl_cls<DeviceType, Layout, Duplication, Contribution, + Op, NumberType> scatter_view_test_impl(scatter_view); scatter_view_test_impl.initialize(original_view); scatter_view_test_impl.run_parallel(n); @@ -380,8 +519,8 @@ struct test_scatter_view_config { orig_view_def original_view("original_view", n); scatter_view_def scatter_view(original_view); - test_scatter_view_impl_cls<DeviceType, Layout, duplication, contribution, - op> + test_scatter_view_impl_cls<DeviceType, Layout, Duplication, Contribution, + Op, NumberType> scatter_view_test_impl(scatter_view); scatter_view_test_impl.initialize(original_view); scatter_view_test_impl.run_parallel(n); @@ -406,19 +545,19 @@ struct test_scatter_view_config { } }; -template <typename DeviceType, int ScatterType> +template <typename DeviceType, typename ScatterType, typename NumberType> struct TestDuplicatedScatterView { TestDuplicatedScatterView(int n) { // ScatterSum test test_scatter_view_config<DeviceType, Kokkos::LayoutRight, Kokkos::Experimental::ScatterDuplicated, Kokkos::Experimental::ScatterNonAtomic, - ScatterType> + ScatterType, NumberType> test_sv_right_config; test_sv_right_config.run_test(n); test_scatter_view_config< DeviceType, Kokkos::LayoutLeft, Kokkos::Experimental::ScatterDuplicated, - Kokkos::Experimental::ScatterNonAtomic, ScatterType> + Kokkos::Experimental::ScatterNonAtomic, ScatterType, NumberType> test_sv_left_config; test_sv_left_config.run_test(n); } @@ -427,33 +566,26 @@ struct TestDuplicatedScatterView { #ifdef KOKKOS_ENABLE_CUDA // disable duplicated instantiation with CUDA until // UniqueToken can support it -template <int ScatterType> -struct TestDuplicatedScatterView<Kokkos::Cuda, ScatterType> { +template <typename ScatterType, typename NumberType> +struct TestDuplicatedScatterView<Kokkos::Cuda, ScatterType, NumberType> { TestDuplicatedScatterView(int) {} }; -template <int ScatterType> +template <typename ScatterType, typename NumberType> struct TestDuplicatedScatterView< - Kokkos::Device<Kokkos::Cuda, Kokkos::CudaSpace>, ScatterType> { + Kokkos::Device<Kokkos::Cuda, Kokkos::CudaSpace>, ScatterType, NumberType> { TestDuplicatedScatterView(int) {} }; -template <int ScatterType> +template <typename ScatterType, typename NumberType> struct TestDuplicatedScatterView< - Kokkos::Device<Kokkos::Cuda, Kokkos::CudaUVMSpace>, ScatterType> { + Kokkos::Device<Kokkos::Cuda, Kokkos::CudaUVMSpace>, ScatterType, + NumberType> { TestDuplicatedScatterView(int) {} }; #endif -#ifdef KOKKOS_ENABLE_ROCM -// disable duplicated instantiation with ROCm until -// UniqueToken can support it -template <int ScatterType> -struct TestDuplicatedScatterView<Kokkos::Experimental::ROCm, ScatterType> { - TestDuplicatedScatterView(int) {} -}; -#endif - -template <typename DeviceType, int ScatterType> -void test_scatter_view(int n) { +template <typename DeviceType, typename ScatterType, + typename NumberType = double> +void test_scatter_view(int64_t n) { using execution_space = typename DeviceType::execution_space; // no atomics or duplication is only sensible if the execution space @@ -463,7 +595,7 @@ void test_scatter_view(int n) { test_scatter_view_config<DeviceType, Kokkos::LayoutRight, Kokkos::Experimental::ScatterNonDuplicated, Kokkos::Experimental::ScatterNonAtomic, - ScatterType> + ScatterType, NumberType> test_sv_config; test_sv_config.run_test(n); } @@ -472,30 +604,40 @@ void test_scatter_view(int n) { #endif test_scatter_view_config<DeviceType, Kokkos::LayoutRight, Kokkos::Experimental::ScatterNonDuplicated, - Kokkos::Experimental::ScatterAtomic, ScatterType> + Kokkos::Experimental::ScatterAtomic, ScatterType, + NumberType> test_sv_config; test_sv_config.run_test(n); #ifdef KOKKOS_ENABLE_SERIAL } #endif // with hundreds of threads we were running out of memory. - // limit (n) so that duplication doesn't exceed 8GB + // limit (n) so that duplication doesn't exceed 4GB constexpr std::size_t maximum_allowed_total_bytes = - 8ull * 1024ull * 1024ull * 1024ull; + 4ull * 1024ull * 1024ull * 1024ull; std::size_t const maximum_allowed_copy_bytes = maximum_allowed_total_bytes / std::size_t(execution_space().concurrency()); - constexpr std::size_t bytes_per_value = sizeof(double) * 3; + constexpr std::size_t bytes_per_value = sizeof(NumberType) * 12; std::size_t const maximum_allowed_copy_values = maximum_allowed_copy_bytes / bytes_per_value; - n = std::min(n, int(maximum_allowed_copy_values)); - TestDuplicatedScatterView<DeviceType, ScatterType> duptest(n); + n = std::min(n, int64_t(maximum_allowed_copy_values)); + + // if the default is duplicated, this needs to follow the limit + { + test_default_scatter_view<DeviceType, Kokkos::LayoutRight, ScatterType, + NumberType> + test_default_sv; + test_default_sv.run_test(n); + } + TestDuplicatedScatterView<DeviceType, ScatterType, NumberType> duptest(n); } -// FIXME_HIP ScatterView requires UniqueToken -#ifndef KOKKOS_ENABLE_HIP TEST(TEST_CATEGORY, scatterview) { - test_scatter_view<TEST_EXECSPACE, Kokkos::Experimental::ScatterSum>(10); + test_scatter_view<TEST_EXECSPACE, Kokkos::Experimental::ScatterSum, double>( + 10); + test_scatter_view<TEST_EXECSPACE, Kokkos::Experimental::ScatterSum, + unsigned int>(10); test_scatter_view<TEST_EXECSPACE, Kokkos::Experimental::ScatterProd>(10); test_scatter_view<TEST_EXECSPACE, Kokkos::Experimental::ScatterMin>(10); test_scatter_view<TEST_EXECSPACE, Kokkos::Experimental::ScatterMax>(10); @@ -512,7 +654,10 @@ TEST(TEST_CATEGORY, scatterview) { #endif #endif - test_scatter_view<TEST_EXECSPACE, Kokkos::Experimental::ScatterSum>(big_n); + test_scatter_view<TEST_EXECSPACE, Kokkos::Experimental::ScatterSum, double>( + big_n); + test_scatter_view<TEST_EXECSPACE, Kokkos::Experimental::ScatterSum, + unsigned int>(big_n); test_scatter_view<TEST_EXECSPACE, Kokkos::Experimental::ScatterProd>(big_n); test_scatter_view<TEST_EXECSPACE, Kokkos::Experimental::ScatterMin>(big_n); test_scatter_view<TEST_EXECSPACE, Kokkos::Experimental::ScatterMax>(big_n); @@ -522,33 +667,47 @@ TEST(TEST_CATEGORY, scatterview_devicetype) { using device_type = Kokkos::Device<TEST_EXECSPACE, typename TEST_EXECSPACE::memory_space>; - test_scatter_view<device_type, Kokkos::Experimental::ScatterSum>(10); + test_scatter_view<device_type, Kokkos::Experimental::ScatterSum, double>(10); + test_scatter_view<device_type, Kokkos::Experimental::ScatterSum, + unsigned int>(10); test_scatter_view<device_type, Kokkos::Experimental::ScatterProd>(10); test_scatter_view<device_type, Kokkos::Experimental::ScatterMin>(10); test_scatter_view<device_type, Kokkos::Experimental::ScatterMax>(10); +#if defined(KOKKOS_ENABLE_CUDA) || defined(KOKKOS_ENABLE_HIP) #ifdef KOKKOS_ENABLE_CUDA - if (std::is_same<TEST_EXECSPACE, Kokkos::Cuda>::value) { - using cuda_device_type = Kokkos::Device<Kokkos::Cuda, Kokkos::CudaSpace>; - test_scatter_view<cuda_device_type, Kokkos::Experimental::ScatterSum>(10); - test_scatter_view<cuda_device_type, Kokkos::Experimental::ScatterProd>(10); - test_scatter_view<cuda_device_type, Kokkos::Experimental::ScatterMin>(10); - test_scatter_view<cuda_device_type, Kokkos::Experimental::ScatterMax>(10); - using cudauvm_device_type = - Kokkos::Device<Kokkos::Cuda, Kokkos::CudaUVMSpace>; - test_scatter_view<cudauvm_device_type, Kokkos::Experimental::ScatterSum>( - 10); - test_scatter_view<cudauvm_device_type, Kokkos::Experimental::ScatterProd>( - 10); - test_scatter_view<cudauvm_device_type, Kokkos::Experimental::ScatterMin>( - 10); - test_scatter_view<cudauvm_device_type, Kokkos::Experimental::ScatterMax>( + using device_execution_space = Kokkos::Cuda; + using device_memory_space = Kokkos::CudaSpace; + using host_accessible_space = Kokkos::CudaUVMSpace; +#else + using device_execution_space = Kokkos::Experimental::HIP; + using device_memory_space = Kokkos::Experimental::HIPSpace; + using host_accessible_space = Kokkos::Experimental::HIPHostPinnedSpace; +#endif + if (std::is_same<TEST_EXECSPACE, device_execution_space>::value) { + using device_device_type = + Kokkos::Device<device_execution_space, device_memory_space>; + test_scatter_view<device_device_type, Kokkos::Experimental::ScatterSum, + double>(10); + test_scatter_view<device_device_type, Kokkos::Experimental::ScatterSum, + unsigned int>(10); + test_scatter_view<device_device_type, Kokkos::Experimental::ScatterProd>( 10); + test_scatter_view<device_device_type, Kokkos::Experimental::ScatterMin>(10); + test_scatter_view<device_device_type, Kokkos::Experimental::ScatterMax>(10); + using host_device_type = + Kokkos::Device<device_execution_space, host_accessible_space>; + test_scatter_view<host_device_type, Kokkos::Experimental::ScatterSum, + double>(10); + test_scatter_view<host_device_type, Kokkos::Experimental::ScatterSum, + unsigned int>(10); + test_scatter_view<host_device_type, Kokkos::Experimental::ScatterProd>(10); + test_scatter_view<host_device_type, Kokkos::Experimental::ScatterMin>(10); + test_scatter_view<host_device_type, Kokkos::Experimental::ScatterMax>(10); } #endif } -#endif } // namespace Test -#endif // KOKKOS_TEST_UNORDERED_MAP_HPP +#endif // KOKKOS_TEST_SCATTER_VIEW_HPP diff --git a/packages/kokkos/containers/unit_tests/TestStaticCrsGraph.hpp b/packages/kokkos/containers/unit_tests/TestStaticCrsGraph.hpp index 15c190242..8bb267ce5 100644 --- a/packages/kokkos/containers/unit_tests/TestStaticCrsGraph.hpp +++ b/packages/kokkos/containers/unit_tests/TestStaticCrsGraph.hpp @@ -55,12 +55,10 @@ namespace TestStaticCrsGraph { template <class Space> void run_test_graph() { - typedef Kokkos::StaticCrsGraph<unsigned, Space> dView; - typedef typename dView::HostMirror hView; + using dView = Kokkos::StaticCrsGraph<unsigned, Space>; + using hView = typename dView::HostMirror; const unsigned LENGTH = 1000; - dView dx; - hView hx; std::vector<std::vector<int> > graph(LENGTH); @@ -71,6 +69,23 @@ void run_test_graph() { } } + { + dView d1; + ASSERT_FALSE(d1.is_allocated()); + + d1 = Kokkos::create_staticcrsgraph<dView>("d1", graph); + + dView d2(d1); + dView d3(d1.entries, d1.row_map); + + ASSERT_TRUE(d1.is_allocated()); + ASSERT_TRUE(d2.is_allocated()); + ASSERT_TRUE(d3.is_allocated()); + } + + dView dx; + hView hx; + dx = Kokkos::create_staticcrsgraph<dView>("dx", graph); hx = Kokkos::create_mirror(dx); @@ -98,8 +113,8 @@ void run_test_graph() { template <class Space> void run_test_graph2() { - typedef Kokkos::StaticCrsGraph<unsigned[3], Space> dView; - typedef typename dView::HostMirror hView; + using dView = Kokkos::StaticCrsGraph<unsigned[3], Space>; + using hView = typename dView::HostMirror; const unsigned LENGTH = 10; @@ -158,8 +173,8 @@ template <class Space> void run_test_graph3(size_t B, size_t N) { srand(10310); - typedef Kokkos::StaticCrsGraph<int, Space> dView; - typedef typename dView::HostMirror hView; + using dView = Kokkos::StaticCrsGraph<int, Space>; + using hView = typename dView::HostMirror; const unsigned LENGTH = 2000; @@ -185,8 +200,7 @@ void run_test_graph3(size_t B, size_t N) { for (size_t i = 0; i < B; i++) { size_t ne = 0; - for (size_t j = hx.row_block_offsets(i); j < hx.row_block_offsets(i + 1); - j++) + for (auto j = hx.row_block_offsets(i); j < hx.row_block_offsets(i + 1); j++) ne += hx.row_map(j + 1) - hx.row_map(j) + C; ASSERT_FALSE( @@ -197,20 +211,13 @@ void run_test_graph3(size_t B, size_t N) { template <class Space> void run_test_graph4() { - typedef unsigned ordinal_type; - typedef Kokkos::LayoutRight layout_type; - typedef Space space_type; - typedef Kokkos::MemoryUnmanaged memory_traits_type; -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - typedef Kokkos::StaticCrsGraph<ordinal_type, layout_type, space_type, - ordinal_type, memory_traits_type> - dView; -#else - typedef Kokkos::StaticCrsGraph<ordinal_type, layout_type, space_type, - memory_traits_type> - dView; -#endif - typedef typename dView::HostMirror hView; + using ordinal_type = unsigned int; + using layout_type = Kokkos::LayoutRight; + using space_type = Space; + using memory_traits_type = Kokkos::MemoryUnmanaged; + using dView = Kokkos::StaticCrsGraph<ordinal_type, layout_type, space_type, + memory_traits_type>; + using hView = typename dView::HostMirror; dView dx; @@ -227,8 +234,8 @@ void run_test_graph4() { // of the unmanaged StaticCrsGraph // Data types for raw pointers storing StaticCrsGraph info - typedef typename dView::size_type ptr_row_map_type; - typedef typename dView::data_type ptr_entries_type; + using ptr_row_map_type = typename dView::size_type; + using ptr_entries_type = typename dView::data_type; const ordinal_type numRows = 8; const ordinal_type nnz = 24; @@ -237,8 +244,8 @@ void run_test_graph4() { 4, 5, 4, 5, 2, 3, 6, 7, 2, 3, 6, 7}; // Wrap pointers in unmanaged host views - typedef typename hView::row_map_type local_row_map_type; - typedef typename hView::entries_type local_entries_type; + using local_row_map_type = typename hView::row_map_type; + using local_entries_type = typename hView::entries_type; local_row_map_type unman_row_map(&(ptrRaw[0]), numRows + 1); local_entries_type unman_entries(&(indRaw[0]), nnz); @@ -248,10 +255,10 @@ void run_test_graph4() { // Create the device Views for copying the host arrays into // An allocation is needed on the device for the unmanaged StaticCrsGraph to // wrap the pointer - typedef typename Kokkos::View<ptr_row_map_type*, layout_type, space_type> - d_row_map_view_type; - typedef typename Kokkos::View<ptr_entries_type*, layout_type, space_type> - d_entries_view_type; + using d_row_map_view_type = + typename Kokkos::View<ptr_row_map_type*, layout_type, space_type>; + using d_entries_view_type = + typename Kokkos::View<ptr_entries_type*, layout_type, space_type>; d_row_map_view_type tmp_row_map("tmp_row_map", numRows + 1); d_entries_view_type tmp_entries("tmp_entries", nnz); @@ -278,7 +285,10 @@ void run_test_graph4() { TEST(TEST_CATEGORY, staticcrsgraph) { TestStaticCrsGraph::run_test_graph<TEST_EXECSPACE>(); + // FIXME_SYCL requires MDRangePolicy +#ifndef KOKKOS_ENABLE_SYCL TestStaticCrsGraph::run_test_graph2<TEST_EXECSPACE>(); +#endif TestStaticCrsGraph::run_test_graph3<TEST_EXECSPACE>(1, 0); TestStaticCrsGraph::run_test_graph3<TEST_EXECSPACE>(1, 1000); TestStaticCrsGraph::run_test_graph3<TEST_EXECSPACE>(1, 10000); diff --git a/packages/kokkos/containers/unit_tests/TestUnorderedMap.hpp b/packages/kokkos/containers/unit_tests/TestUnorderedMap.hpp index 3ec3a4e5e..d39e0061c 100644 --- a/packages/kokkos/containers/unit_tests/TestUnorderedMap.hpp +++ b/packages/kokkos/containers/unit_tests/TestUnorderedMap.hpp @@ -53,9 +53,9 @@ namespace Impl { template <typename MapType, bool Near = false> struct TestInsert { - typedef MapType map_type; - typedef typename map_type::execution_space execution_space; - typedef uint32_t value_type; + using map_type = MapType; + using execution_space = typename map_type::execution_space; + using value_type = uint32_t; map_type map; uint32_t inserts; @@ -101,10 +101,10 @@ struct TestInsert { template <typename MapType, bool Near> struct TestErase { - typedef TestErase<MapType, Near> self_type; + using self_type = TestErase<MapType, Near>; - typedef MapType map_type; - typedef typename MapType::execution_space execution_space; + using map_type = MapType; + using execution_space = typename MapType::execution_space; map_type m_map; uint32_t m_num_erase; @@ -131,9 +131,9 @@ struct TestErase { template <typename MapType> struct TestFind { - typedef MapType map_type; - typedef typename MapType::execution_space::execution_space execution_space; - typedef uint32_t value_type; + using map_type = MapType; + using execution_space = typename MapType::execution_space::execution_space; + using value_type = uint32_t; map_type m_map; uint32_t m_num_insert; @@ -180,9 +180,9 @@ struct TestFind { template <typename Device> void test_insert(uint32_t num_nodes, uint32_t num_inserts, uint32_t num_duplicates, bool near) { - typedef Kokkos::UnorderedMap<uint32_t, uint32_t, Device> map_type; - typedef Kokkos::UnorderedMap<const uint32_t, const uint32_t, Device> - const_map_type; + using map_type = Kokkos::UnorderedMap<uint32_t, uint32_t, Device>; + using const_map_type = + Kokkos::UnorderedMap<const uint32_t, const uint32_t, Device>; const uint32_t expected_inserts = (num_inserts + num_duplicates - 1u) / num_duplicates; @@ -232,7 +232,7 @@ void test_insert(uint32_t num_nodes, uint32_t num_inserts, template <typename Device> void test_failed_insert(uint32_t num_nodes) { - typedef Kokkos::UnorderedMap<uint32_t, uint32_t, Device> map_type; + using map_type = Kokkos::UnorderedMap<uint32_t, uint32_t, Device>; map_type map(num_nodes); Impl::TestInsert<map_type> test_insert(map, 2u * num_nodes, 1u); @@ -244,13 +244,11 @@ void test_failed_insert(uint32_t num_nodes) { template <typename Device> void test_deep_copy(uint32_t num_nodes) { - typedef Kokkos::UnorderedMap<uint32_t, uint32_t, Device> map_type; - typedef Kokkos::UnorderedMap<const uint32_t, const uint32_t, Device> - const_map_type; + using map_type = Kokkos::UnorderedMap<uint32_t, uint32_t, Device>; + using const_map_type = + Kokkos::UnorderedMap<const uint32_t, const uint32_t, Device>; - typedef typename map_type::HostMirror host_map_type; - // typedef Kokkos::UnorderedMap<uint32_t, uint32_t, typename - // Device::host_mirror_execution_space > host_map_type; + using host_map_type = typename map_type::HostMirror; map_type map; map.rehash(num_nodes, false); @@ -295,7 +293,7 @@ void test_deep_copy(uint32_t num_nodes) { } } -// FIXME_HIP deadlock +// FIXME_HIP wrong result in CI but works locally #ifndef KOKKOS_ENABLE_HIP // WORKAROUND MSVC #ifndef _WIN32 @@ -306,6 +304,7 @@ TEST(TEST_CATEGORY, UnorderedMap_insert) { } } #endif +#endif TEST(TEST_CATEGORY, UnorderedMap_failed_insert) { for (int i = 0; i < 1000; ++i) test_failed_insert<TEST_EXECSPACE>(10000); @@ -314,7 +313,6 @@ TEST(TEST_CATEGORY, UnorderedMap_failed_insert) { TEST(TEST_CATEGORY, UnorderedMap_deep_copy) { for (int i = 0; i < 2; ++i) test_deep_copy<TEST_EXECSPACE>(10000); } -#endif TEST(TEST_CATEGORY, UnorderedMap_valid_empty) { using Key = int; @@ -326,6 +324,8 @@ TEST(TEST_CATEGORY, UnorderedMap_valid_empty) { n = Map{m.capacity()}; n.rehash(m.capacity()); Kokkos::deep_copy(n, m); + ASSERT_TRUE(m.is_allocated()); + ASSERT_TRUE(n.is_allocated()); } } // namespace Test diff --git a/packages/kokkos/containers/unit_tests/TestVector.hpp b/packages/kokkos/containers/unit_tests/TestVector.hpp index 4174a477c..33b265e07 100644 --- a/packages/kokkos/containers/unit_tests/TestVector.hpp +++ b/packages/kokkos/containers/unit_tests/TestVector.hpp @@ -55,14 +55,17 @@ namespace Impl { template <typename Scalar, class Device> struct test_vector_insert { - typedef Scalar scalar_type; - typedef Device execution_space; + using scalar_type = Scalar; + using execution_space = Device; template <typename Vector> void run_test(Vector& a) { int n = a.size(); auto it = a.begin(); + if (n > 0) { + ASSERT_EQ(a.data(), &a[0]); + } it += 15; ASSERT_EQ(*it, scalar_type(1)); @@ -75,7 +78,7 @@ struct test_vector_insert { // Looks like some std::vector implementations do not have the restriction // right on the overload taking three iterators, and thus the following call // will hit that overload and then fail to compile. -#if defined(KOKKOS_COMPILER_INTEL) && (1700 > KOKKOS_COMPILER_INTEL) +#if defined(KOKKOS_COMPILER_INTEL) // And at least GCC 4.8.4 doesn't implement vector insert correct for C++11 // Return type is void ... #if (__GNUC__ < 5) @@ -101,7 +104,7 @@ struct test_vector_insert { // Looks like some std::vector implementations do not have the restriction // right on the overload taking three iterators, and thus the following call // will hit that overload and then fail to compile. -#if defined(KOKKOS_COMPILER_INTEL) && (1700 > KOKKOS_COMPILER_INTEL) +#if defined(KOKKOS_COMPILER_INTEL) b.insert(b.begin(), typename Vector::size_type(7), 9); #else b.insert(b.begin(), 7, 9); @@ -122,7 +125,7 @@ struct test_vector_insert { // Testing insert at end via all three function interfaces a.insert(a.end(), 11); -#if defined(KOKKOS_COMPILER_INTEL) && (1700 > KOKKOS_COMPILER_INTEL) +#if defined(KOKKOS_COMPILER_INTEL) a.insert(a.end(), typename Vector::size_type(2), 12); #else a.insert(a.end(), 2, 12); @@ -172,12 +175,43 @@ struct test_vector_insert { } }; +template <typename Scalar, class Device> +struct test_vector_allocate { + using self_type = test_vector_allocate<Scalar, Device>; + + using scalar_type = Scalar; + using execution_space = Device; + + bool result = false; + + template <typename Vector> + Scalar run_me(unsigned int n) { + { + Vector v1; + if (v1.is_allocated() == true) return false; + + v1 = Vector(n, 1); + Vector v2(v1); + Vector v3(n, 1); + + if (v1.is_allocated() == false) return false; + if (v2.is_allocated() == false) return false; + if (v3.is_allocated() == false) return false; + } + return true; + } + + test_vector_allocate(unsigned int size) { + result = run_me<Kokkos::vector<Scalar, Device> >(size); + } +}; + template <typename Scalar, class Device> struct test_vector_combinations { - typedef test_vector_combinations<Scalar, Device> self_type; + using self_type = test_vector_combinations<Scalar, Device>; - typedef Scalar scalar_type; - typedef Device execution_space; + using scalar_type = Scalar; + using execution_space = Device; Scalar reference; Scalar result; @@ -231,7 +265,14 @@ void test_vector_combinations(unsigned int size) { ASSERT_EQ(test.reference, test.result); } +template <typename Scalar, typename Device> +void test_vector_allocate(unsigned int size) { + Impl::test_vector_allocate<Scalar, Device> test(size); + ASSERT_TRUE(test.result); +} + TEST(TEST_CATEGORY, vector_combination) { + test_vector_allocate<int, TEST_EXECSPACE>(10); test_vector_combinations<int, TEST_EXECSPACE>(10); test_vector_combinations<int, TEST_EXECSPACE>(3057); } diff --git a/packages/kokkos/containers/unit_tests/TestViewCtorPropEmbeddedDim.hpp b/packages/kokkos/containers/unit_tests/TestViewCtorPropEmbeddedDim.hpp index 3f7d4101f..d402160ef 100644 --- a/packages/kokkos/containers/unit_tests/TestViewCtorPropEmbeddedDim.hpp +++ b/packages/kokkos/containers/unit_tests/TestViewCtorPropEmbeddedDim.hpp @@ -91,10 +91,10 @@ struct TestViewCtorProp_EmbeddedDim { { // Two views auto view_alloc_arg = Kokkos::common_view_alloc_prop(vi1, vd1); - typedef - typename decltype(view_alloc_arg)::value_type CommonViewValueType; - typedef typename Kokkos::View<CommonViewValueType*, ExecSpace> CVT; - typedef typename CVT::HostMirror HostCVT; + using CommonViewValueType = + typename decltype(view_alloc_arg)::value_type; + using CVT = typename Kokkos::View<CommonViewValueType*, ExecSpace>; + using HostCVT = typename CVT::HostMirror; // Construct View using the common type; for case of specialization, an // 'embedded_dim' would be stored by view_alloc_arg @@ -128,10 +128,10 @@ struct TestViewCtorProp_EmbeddedDim { { // Single view auto view_alloc_arg = Kokkos::common_view_alloc_prop(vi1); - typedef - typename decltype(view_alloc_arg)::value_type CommonViewValueType; - typedef typename Kokkos::View<CommonViewValueType*, ExecSpace> CVT; - typedef typename CVT::HostMirror HostCVT; + using CommonViewValueType = + typename decltype(view_alloc_arg)::value_type; + using CVT = typename Kokkos::View<CommonViewValueType*, ExecSpace>; + using HostCVT = typename CVT::HostMirror; // Construct View using the common type; for case of specialization, an // 'embedded_dim' would be stored by view_alloc_arg @@ -161,10 +161,10 @@ struct TestViewCtorProp_EmbeddedDim { { // Two views auto view_alloc_arg = Kokkos::common_view_alloc_prop(vi1, vd1); - typedef - typename decltype(view_alloc_arg)::value_type CommonViewValueType; - typedef typename Kokkos::View<CommonViewValueType*, ExecSpace> CVT; - typedef typename CVT::HostMirror HostCVT; + using CommonViewValueType = + typename decltype(view_alloc_arg)::value_type; + using CVT = typename Kokkos::View<CommonViewValueType*, ExecSpace>; + using HostCVT = typename CVT::HostMirror; // Construct View using the common type; for case of specialization, an // 'embedded_dim' would be stored by view_alloc_arg @@ -182,10 +182,10 @@ struct TestViewCtorProp_EmbeddedDim { { // Single views auto view_alloc_arg = Kokkos::common_view_alloc_prop(vi1); - typedef - typename decltype(view_alloc_arg)::value_type CommonViewValueType; - typedef typename Kokkos::View<CommonViewValueType*, ExecSpace> CVT; - typedef typename CVT::HostMirror HostCVT; + using CommonViewValueType = + typename decltype(view_alloc_arg)::value_type; + using CVT = typename Kokkos::View<CommonViewValueType*, ExecSpace>; + using HostCVT = typename CVT::HostMirror; // Construct View using the common type; for case of specialization, an // 'embedded_dim' would be stored by view_alloc_arg diff --git a/packages/kokkos/core/CMakeLists.txt b/packages/kokkos/core/CMakeLists.txt index 8df72dfc9..68d3f8331 100644 --- a/packages/kokkos/core/CMakeLists.txt +++ b/packages/kokkos/core/CMakeLists.txt @@ -2,7 +2,9 @@ KOKKOS_SUBPACKAGE(Core) -ADD_SUBDIRECTORY(src) +IF (NOT Kokkos_INSTALL_TESTING) + ADD_SUBDIRECTORY(src) +ENDIF() KOKKOS_ADD_TEST_DIRECTORIES(unit_test) KOKKOS_ADD_TEST_DIRECTORIES(perf_test) diff --git a/packages/kokkos/core/cmake/KokkosCore_config.h.in b/packages/kokkos/core/cmake/KokkosCore_config.h.in index 095c869a3..f0835772b 100644 --- a/packages/kokkos/core/cmake/KokkosCore_config.h.in +++ b/packages/kokkos/core/cmake/KokkosCore_config.h.in @@ -6,7 +6,8 @@ #if !defined(KOKKOS_FOR_SIERRA) #if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Don't include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." +#error \ + "Don't include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." #else #define KOKKOS_CORE_CONFIG_H #endif @@ -25,8 +26,8 @@ #cmakedefine KOKKOS_ENABLE_DEBUG #cmakedefine KOKKOS_ENABLE_DEBUG_BOUNDS_CHECK #cmakedefine KOKKOS_ENABLE_DEBUG_DUALVIEW_MODIFY_CHECK -#cmakedefine KOKKOS_ENABLE_PROFILING #cmakedefine KOKKOS_ENABLE_PROFILING_LOAD_PRINT +#cmakedefine KOKKOS_ENABLE_TUNING #cmakedefine KOKKOS_ENABLE_AGGRESSIVE_VECTORIZATION @@ -38,7 +39,8 @@ // any value of KOKKOS_USE_CUDA_UVM here. Doing this should prevent build // warnings like this one: // -// packages/kokkos/core/src/KokkosCore_config.h:13:1: warning: "KOKKOS_USE_CUDA_UVM" redefined +// packages/kokkos/core/src/KokkosCore_config.h:13:1: warning: +// "KOKKOS_USE_CUDA_UVM" redefined // // At some point, we should edit the test-build scripts in // Trilinos/cmake/ctest/drivers/perseus/, and take @@ -98,6 +100,5 @@ // TODO: No longer options in Kokkos. Need to be removed. #cmakedefine KOKKOS_USING_DEPRECATED_VIEW -#cmakedefine KOKKOS_ENABLE_CXX11 -#endif // !defined(KOKKOS_FOR_SIERRA) +#endif // !defined(KOKKOS_FOR_SIERRA) diff --git a/packages/kokkos/core/perf_test/CMakeLists.txt b/packages/kokkos/core/perf_test/CMakeLists.txt index ca695e270..b7b817c91 100644 --- a/packages/kokkos/core/perf_test/CMakeLists.txt +++ b/packages/kokkos/core/perf_test/CMakeLists.txt @@ -48,12 +48,13 @@ SET(SOURCES PerfTest_ViewResize_8.cpp ) -IF(Kokkos_ENABLE_HIP) -# FIXME requires TeamPolicy +IF(Kokkos_ENABLE_OPENMPTARGET) +# FIXME OPENMPTARGET requires TeamPolicy Reductions and Custom Reduction LIST(REMOVE_ITEM SOURCES + PerfTestGramSchmidt.cpp PerfTest_CustomReduction.cpp PerfTest_ExecSpacePartitioning.cpp - ) + ) ENDIF() # Per #374, we always want to build this test, but we only want to run @@ -67,7 +68,8 @@ KOKKOS_INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) KOKKOS_INCLUDE_DIRECTORIES(REQUIRED_DURING_INSTALLATION_TESTING ${CMAKE_CURRENT_SOURCE_DIR}) # This test currently times out for MSVC -IF(NOT KOKKOS_CXX_COMPILER_ID STREQUAL "MSVC") +# FIXME_SYCL these tests don't compile yet (require parallel_for). +IF(NOT KOKKOS_CXX_COMPILER_ID STREQUAL "MSVC" AND NOT Kokkos_ENABLE_SYCL) KOKKOS_ADD_EXECUTABLE_AND_TEST( PerfTestExec SOURCES ${SOURCES} @@ -75,8 +77,34 @@ IF(NOT KOKKOS_CXX_COMPILER_ID STREQUAL "MSVC") ) ENDIF() +# FIXME_SYCL +IF(NOT Kokkos_ENABLE_SYCL) + KOKKOS_ADD_EXECUTABLE_AND_TEST( + PerformanceTest_Atomic + SOURCES test_atomic.cpp + CATEGORIES PERFORMANCE + ) + +IF(NOT KOKKOS_ENABLE_CUDA OR KOKKOS_ENABLE_CUDA_LAMBDA) + KOKKOS_ADD_EXECUTABLE_AND_TEST( + PerformanceTest_Atomic_MinMax + SOURCES test_atomic_minmax_simple.cpp + CATEGORIES PERFORMANCE + ) +ENDIF() + KOKKOS_ADD_EXECUTABLE_AND_TEST( - PerformanceTest_TaskDag - SOURCES test_taskdag.cpp + PerformanceTest_Mempool + SOURCES test_mempool.cpp CATEGORIES PERFORMANCE ) +ENDIF() + +IF(NOT Kokkos_ENABLE_OPENMPTARGET) +# FIXME OPENMPTARGET needs tasking + KOKKOS_ADD_EXECUTABLE_AND_TEST( + PerformanceTest_TaskDag + SOURCES test_taskdag.cpp + CATEGORIES PERFORMANCE + ) +ENDIF() diff --git a/packages/kokkos/core/perf_test/Makefile b/packages/kokkos/core/perf_test/Makefile index ca98ca6dd..ac06c8975 100644 --- a/packages/kokkos/core/perf_test/Makefile +++ b/packages/kokkos/core/perf_test/Makefile @@ -53,7 +53,6 @@ TEST_TARGETS += test-atomic # -ifneq ($(KOKKOS_INTERNAL_USE_ROCM), 1) OBJ_MEMPOOL = test_mempool.o TARGETS += KokkosCore_PerformanceTest_Mempool TEST_TARGETS += test-mempool @@ -63,7 +62,12 @@ TEST_TARGETS += test-mempool OBJ_TASKDAG = test_taskdag.o TARGETS += KokkosCore_PerformanceTest_TaskDAG TEST_TARGETS += test-taskdag -endif + +# + +OBJ_ATOMICS_MINMAX = test_atomic_minmax_simple.o +TARGETS += KokkosCore_PerformanceTest_Atomics_MinMax +TEST_TARGETS += test-atomic-minmax # @@ -79,6 +83,9 @@ KokkosCore_PerformanceTest_Mempool: $(OBJ_MEMPOOL) $(KOKKOS_LINK_DEPENDS) KokkosCore_PerformanceTest_TaskDAG: $(OBJ_TASKDAG) $(KOKKOS_LINK_DEPENDS) $(LINK) $(KOKKOS_LDFLAGS) $(LDFLAGS) $(EXTRA_PATH) $(OBJ_TASKDAG) $(KOKKOS_LIBS) $(LIB) -o KokkosCore_PerformanceTest_TaskDAG +KokkosCore_PerformanceTest_Atomics_MinMax: $(OBJ_ATOMICS_MINMAX) $(KOKKOS_LINK_DEPENDS) + $(LINK) $(EXTRA_PATH) $(OBJ_ATOMICS_MINMAX) $(KOKKOS_LIBS) $(LIB) $(KOKKOS_LDFLAGS) $(LDFLAGS) -o KokkosCore_PerformanceTest_Atomics_MinMax + test-performance: KokkosCore_PerformanceTest ./KokkosCore_PerformanceTest @@ -91,6 +98,9 @@ test-mempool: KokkosCore_PerformanceTest_Mempool test-taskdag: KokkosCore_PerformanceTest_TaskDAG ./KokkosCore_PerformanceTest_TaskDAG +test-atomic-minmax: KokkosCore_PerformanceTest_Atomics_MinMax + ./KokkosCore_PerformanceTest_Atomics_MinMax + build_all: $(TARGETS) test: $(TEST_TARGETS) diff --git a/packages/kokkos/core/perf_test/PerfTestBlasKernels.hpp b/packages/kokkos/core/perf_test/PerfTestBlasKernels.hpp index 2717b133b..e133dafa3 100644 --- a/packages/kokkos/core/perf_test/PerfTestBlasKernels.hpp +++ b/packages/kokkos/core/perf_test/PerfTestBlasKernels.hpp @@ -51,12 +51,12 @@ namespace Kokkos { template <class Type> struct Dot { - typedef typename Type::execution_space execution_space; + using execution_space = typename Type::execution_space; static_assert(static_cast<unsigned>(Type::Rank) == static_cast<unsigned>(1), "Dot static_assert Fail: Rank != 1"); - typedef double value_type; + using value_type = double; #if 1 typename Type::const_type X; @@ -83,12 +83,12 @@ struct Dot { template <class Type> struct DotSingle { - typedef typename Type::execution_space execution_space; + using execution_space = typename Type::execution_space; static_assert(static_cast<unsigned>(Type::Rank) == static_cast<unsigned>(1), "DotSingle static_assert Fail: Rank != 1"); - typedef double value_type; + using value_type = double; #if 1 typename Type::const_type X; @@ -116,7 +116,7 @@ struct DotSingle { template <class ScalarType, class VectorType> struct Scale { - typedef typename VectorType::execution_space execution_space; + using execution_space = typename VectorType::execution_space; static_assert(static_cast<unsigned>(ScalarType::Rank) == static_cast<unsigned>(0), @@ -143,7 +143,7 @@ struct Scale { template <class ScalarType, class ConstVectorType, class VectorType> struct AXPBY { - typedef typename VectorType::execution_space execution_space; + using execution_space = typename VectorType::execution_space; static_assert(static_cast<unsigned>(ScalarType::Rank) == static_cast<unsigned>(0), @@ -185,7 +185,7 @@ namespace Kokkos { template <class ConstScalarType, class ConstVectorType, class VectorType> void axpby(const ConstScalarType& alpha, const ConstVectorType& X, const ConstScalarType& beta, const VectorType& Y) { - typedef AXPBY<ConstScalarType, ConstVectorType, VectorType> functor; + using functor = AXPBY<ConstScalarType, ConstVectorType, VectorType>; parallel_for(Y.extent(0), functor(alpha, X, beta, Y)); } @@ -193,7 +193,7 @@ void axpby(const ConstScalarType& alpha, const ConstVectorType& X, /** \brief Y *= alpha */ template <class ConstScalarType, class VectorType> void scale(const ConstScalarType& alpha, const VectorType& Y) { - typedef Scale<ConstScalarType, VectorType> functor; + using functor = Scale<ConstScalarType, VectorType>; parallel_for(Y.extent(0), functor(alpha, Y)); } @@ -201,14 +201,14 @@ void scale(const ConstScalarType& alpha, const VectorType& Y) { template <class ConstVectorType, class Finalize> void dot(const ConstVectorType& X, const ConstVectorType& Y, const Finalize& finalize) { - typedef Dot<ConstVectorType> functor; + using functor = Dot<ConstVectorType>; parallel_reduce(X.extent(0), functor(X, Y), finalize); } template <class ConstVectorType, class Finalize> void dot(const ConstVectorType& X, const Finalize& finalize) { - typedef DotSingle<ConstVectorType> functor; + using functor = DotSingle<ConstVectorType>; parallel_reduce(X.extent(0), functor(X), finalize); } diff --git a/packages/kokkos/core/perf_test/PerfTestGramSchmidt.cpp b/packages/kokkos/core/perf_test/PerfTestGramSchmidt.cpp index 0916b230e..70186283c 100644 --- a/packages/kokkos/core/perf_test/PerfTestGramSchmidt.cpp +++ b/packages/kokkos/core/perf_test/PerfTestGramSchmidt.cpp @@ -58,7 +58,7 @@ namespace Test { // PostProcess : R(j,j) = result ; inv = 1 / result ; template <class VectorView, class ValueView> struct InvNorm2 : public Kokkos::DotSingle<VectorView> { - typedef typename Kokkos::DotSingle<VectorView>::value_type value_type; + using value_type = typename Kokkos::DotSingle<VectorView>::value_type; ValueView Rjj; ValueView inv; @@ -69,10 +69,7 @@ struct InvNorm2 : public Kokkos::DotSingle<VectorView> { KOKKOS_INLINE_FUNCTION void final(value_type& result) const { -#ifndef KOKKOS_ENABLE_HIP // FIXME_HIP - using std::sqrt; -#endif - result = sqrt(result); + result = std::sqrt(result); Rjj() = result; inv() = (0 < result) ? 1.0 / result : 0; } @@ -88,7 +85,7 @@ inline void invnorm2(const VectorView& x, const ValueView& r, // PostProcess : tmp = - ( R(j,k) = result ); template <class VectorView, class ValueView> struct DotM : public Kokkos::Dot<VectorView> { - typedef typename Kokkos::Dot<VectorView>::value_type value_type; + using value_type = typename Kokkos::Dot<VectorView>::value_type; ValueView Rjk; ValueView tmp; @@ -113,16 +110,16 @@ inline void dot_neg(const VectorView& x, const VectorView& y, template <typename Scalar, class DeviceType> struct ModifiedGramSchmidt { - typedef DeviceType execution_space; - typedef typename execution_space::size_type size_type; + using execution_space = DeviceType; + using size_type = typename execution_space::size_type; - typedef Kokkos::View<Scalar**, Kokkos::LayoutLeft, execution_space> - multivector_type; + using multivector_type = + Kokkos::View<Scalar**, Kokkos::LayoutLeft, execution_space>; - typedef Kokkos::View<Scalar*, Kokkos::LayoutLeft, execution_space> - vector_type; + using vector_type = + Kokkos::View<Scalar*, Kokkos::LayoutLeft, execution_space>; - typedef Kokkos::View<Scalar, Kokkos::LayoutLeft, execution_space> value_view; + using value_view = Kokkos::View<Scalar, Kokkos::LayoutLeft, execution_space>; multivector_type Q; multivector_type R; @@ -243,9 +240,9 @@ TEST(default_exec, gramschmidt) { int exp_end = 20; int num_trials = 5; - if (command_line_num_args() > 1) exp_beg = atoi(command_line_arg(1)); - if (command_line_num_args() > 2) exp_end = atoi(command_line_arg(2)); - if (command_line_num_args() > 3) num_trials = atoi(command_line_arg(3)); + if (command_line_num_args() > 1) exp_beg = std::stoi(command_line_arg(1)); + if (command_line_num_args() > 2) exp_end = std::stoi(command_line_arg(2)); + if (command_line_num_args() > 3) num_trials = std::stoi(command_line_arg(3)); EXPECT_NO_THROW(run_test_gramschmidt<Kokkos::DefaultExecutionSpace>( exp_beg, exp_end, num_trials, Kokkos::DefaultExecutionSpace::name())); diff --git a/packages/kokkos/core/perf_test/PerfTestHexGrad.cpp b/packages/kokkos/core/perf_test/PerfTestHexGrad.cpp index d87928286..c431c2b0c 100644 --- a/packages/kokkos/core/perf_test/PerfTestHexGrad.cpp +++ b/packages/kokkos/core/perf_test/PerfTestHexGrad.cpp @@ -51,20 +51,20 @@ namespace Test { template <class DeviceType, typename CoordScalarType = double, typename GradScalarType = float> struct HexGrad { - typedef DeviceType execution_space; - typedef typename execution_space::size_type size_type; + using execution_space = DeviceType; + using size_type = typename execution_space::size_type; - typedef HexGrad<DeviceType, CoordScalarType, GradScalarType> self_type; + using self_type = HexGrad<DeviceType, CoordScalarType, GradScalarType>; // 3D array : ( ParallelWork , Space , Node ) enum { NSpace = 3, NNode = 8 }; - typedef Kokkos::View<CoordScalarType * [NSpace][NNode], execution_space> - elem_coord_type; + using elem_coord_type = + Kokkos::View<CoordScalarType * [NSpace][NNode], execution_space>; - typedef Kokkos::View<GradScalarType * [NSpace][NNode], execution_space> - elem_grad_type; + using elem_grad_type = + Kokkos::View<GradScalarType * [NSpace][NNode], execution_space>; elem_coord_type coords; elem_grad_type grad_op; @@ -179,7 +179,7 @@ struct HexGrad { //-------------------------------------------------------------------------- struct Init { - typedef typename self_type::execution_space execution_space; + using execution_space = typename self_type::execution_space; elem_coord_type coords; @@ -289,9 +289,9 @@ TEST(default_exec, hexgrad) { int exp_end = 20; int num_trials = 5; - if (command_line_num_args() > 1) exp_beg = atoi(command_line_arg(1)); - if (command_line_num_args() > 2) exp_end = atoi(command_line_arg(2)); - if (command_line_num_args() > 3) num_trials = atoi(command_line_arg(3)); + if (command_line_num_args() > 1) exp_beg = std::stoi(command_line_arg(1)); + if (command_line_num_args() > 2) exp_end = std::stoi(command_line_arg(2)); + if (command_line_num_args() > 3) num_trials = std::stoi(command_line_arg(3)); EXPECT_NO_THROW(run_test_hexgrad<Kokkos::DefaultExecutionSpace>( exp_beg, exp_end, num_trials, Kokkos::DefaultExecutionSpace::name())); diff --git a/packages/kokkos/core/perf_test/PerfTestMDRange.hpp b/packages/kokkos/core/perf_test/PerfTestMDRange.hpp index 3afff96ff..ec0452d5f 100644 --- a/packages/kokkos/core/perf_test/PerfTestMDRange.hpp +++ b/packages/kokkos/core/perf_test/PerfTestMDRange.hpp @@ -46,13 +46,13 @@ namespace Test { template <class DeviceType, typename ScalarType = double, typename TestLayout = Kokkos::LayoutRight> struct MultiDimRangePerf3D { - typedef DeviceType execution_space; - typedef typename execution_space::size_type size_type; + using execution_space = DeviceType; + using size_type = typename execution_space::size_type; using iterate_type = Kokkos::Iterate; - typedef Kokkos::View<ScalarType ***, TestLayout, DeviceType> view_type; - typedef typename view_type::HostMirror host_view_type; + using view_type = Kokkos::View<ScalarType ***, TestLayout, DeviceType>; + using host_view_type = typename view_type::HostMirror; view_type A; view_type B; @@ -108,8 +108,8 @@ struct MultiDimRangePerf3D { // This test performs multidim range over all dims view_type Atest("Atest", icount, jcount, kcount); view_type Btest("Btest", icount + 2, jcount + 2, kcount + 2); - typedef MultiDimRangePerf3D<execution_space, ScalarType, TestLayout> - FunctorType; + using FunctorType = + MultiDimRangePerf3D<execution_space, ScalarType, TestLayout>; double dt_min = 0; @@ -125,10 +125,9 @@ struct MultiDimRangePerf3D { policy_initB({{0, 0, 0}}, {{icount + 2, jcount + 2, kcount + 2}}, {{Ti, Tj, Tk}}); - typedef typename Kokkos::MDRangePolicy< + using MDRangeType = typename Kokkos::MDRangePolicy< Kokkos::Rank<3, iterate_type::Right, iterate_type::Right>, - execution_space> - MDRangeType; + execution_space>; using tile_type = typename MDRangeType::tile_type; using point_type = typename MDRangeType::point_type; @@ -216,14 +215,15 @@ struct MultiDimRangePerf3D { policy_initB({{0, 0, 0}}, {{icount + 2, jcount + 2, kcount + 2}}, {{Ti, Tj, Tk}}); - // typedef typename Kokkos::MDRangePolicy<Kokkos::Rank<3, - // iterate_type::Left, iterate_type::Left>, execution_space > MDRangeType; + // using MDRangeType = + // typename Kokkos::MDRangePolicy< + // Kokkos::Rank<3, iterate_type::Left, iterate_type::Left>, + // execution_space >; // using tile_type = typename MDRangeType::tile_type; // using point_type = typename MDRangeType::point_type; - // Kokkos::MDRangePolicy<Kokkos::Rank<3, iterate_type::Left, - // iterate_type::Left>, execution_space > - // policy(point_type{{0,0,0}},point_type{{icount,jcount,kcount}},tile_type{{Ti,Tj,Tk}} - // ); + // MDRangeType policy(point_type{{0,0,0}}, + // point_type{{icount,jcount,kcount}}, + // tile_type{{Ti,Tj,Tk}}); Kokkos::MDRangePolicy< Kokkos::Rank<3, iterate_type::Left, iterate_type::Left>, execution_space> @@ -306,14 +306,14 @@ struct RangePolicyCollapseTwo { // RangePolicy for 3D range, but will collapse only 2 dims => like Rank<2> for // multi-dim; unroll 2 dims in one-dim - typedef DeviceType execution_space; - typedef typename execution_space::size_type size_type; - typedef TestLayout layout; + using execution_space = DeviceType; + using size_type = typename execution_space::size_type; + using layout = TestLayout; using iterate_type = Kokkos::Iterate; - typedef Kokkos::View<ScalarType ***, TestLayout, DeviceType> view_type; - typedef typename view_type::HostMirror host_view_type; + using view_type = Kokkos::View<ScalarType ***, TestLayout, DeviceType>; + using host_view_type = typename view_type::HostMirror; view_type A; view_type B; @@ -388,8 +388,8 @@ struct RangePolicyCollapseTwo { // This test refers to collapsing two dims while using the RangePolicy view_type Atest("Atest", icount, jcount, kcount); view_type Btest("Btest", icount + 2, jcount + 2, kcount + 2); - typedef RangePolicyCollapseTwo<execution_space, ScalarType, TestLayout> - FunctorType; + using FunctorType = + RangePolicyCollapseTwo<execution_space, ScalarType, TestLayout>; long collapse_index_rangeA = 0; long collapse_index_rangeB = 0; @@ -480,12 +480,12 @@ template <class DeviceType, typename ScalarType = double, struct RangePolicyCollapseAll { // RangePolicy for 3D range, but will collapse all dims - typedef DeviceType execution_space; - typedef typename execution_space::size_type size_type; - typedef TestLayout layout; + using execution_space = DeviceType; + using size_type = typename execution_space::size_type; + using layout = TestLayout; - typedef Kokkos::View<ScalarType ***, TestLayout, DeviceType> view_type; - typedef typename view_type::HostMirror host_view_type; + using view_type = Kokkos::View<ScalarType ***, TestLayout, DeviceType>; + using host_view_type = typename view_type::HostMirror; view_type A; view_type B; @@ -552,8 +552,8 @@ struct RangePolicyCollapseAll { // This test refers to collapsing all dims using the RangePolicy view_type Atest("Atest", icount, jcount, kcount); view_type Btest("Btest", icount + 2, jcount + 2, kcount + 2); - typedef RangePolicyCollapseAll<execution_space, ScalarType, TestLayout> - FunctorType; + using FunctorType = + RangePolicyCollapseAll<execution_space, ScalarType, TestLayout>; const long flat_index_range = icount * jcount * kcount; Kokkos::RangePolicy<execution_space> policy(0, flat_index_range); diff --git a/packages/kokkos/core/perf_test/PerfTest_CustomReduction.cpp b/packages/kokkos/core/perf_test/PerfTest_CustomReduction.cpp index 75ca4a0d5..1ab76d6e5 100644 --- a/packages/kokkos/core/perf_test/PerfTest_CustomReduction.cpp +++ b/packages/kokkos/core/perf_test/PerfTest_CustomReduction.cpp @@ -129,9 +129,9 @@ TEST(default_exec, custom_reduction) { int R = 1000; int num_trials = 1; - if (command_line_num_args() > 1) N = atoi(command_line_arg(1)); - if (command_line_num_args() > 2) R = atoi(command_line_arg(2)); - if (command_line_num_args() > 3) num_trials = atoi(command_line_arg(3)); + if (command_line_num_args() > 1) N = std::stoi(command_line_arg(1)); + if (command_line_num_args() > 2) R = std::stoi(command_line_arg(2)); + if (command_line_num_args() > 3) num_trials = std::stoi(command_line_arg(3)); custom_reduction_test<double>(N, R, num_trials); } } // namespace Test diff --git a/packages/kokkos/core/perf_test/PerfTest_ExecSpacePartitioning.cpp b/packages/kokkos/core/perf_test/PerfTest_ExecSpacePartitioning.cpp index c6d5b2b8d..50bbc78a6 100644 --- a/packages/kokkos/core/perf_test/PerfTest_ExecSpacePartitioning.cpp +++ b/packages/kokkos/core/perf_test/PerfTest_ExecSpacePartitioning.cpp @@ -29,7 +29,7 @@ struct SpaceInstance<Kokkos::Cuda> { bool value = true; auto local_rank_str = std::getenv("CUDA_LAUNCH_BLOCKING"); if (local_rank_str) { - value = (std::atoi(local_rank_str) == 0); + value = (std::stoi(local_rank_str) == 0); } return value; } diff --git a/packages/kokkos/core/perf_test/PerfTest_ViewResize.hpp b/packages/kokkos/core/perf_test/PerfTest_ViewResize.hpp index 2ea81b504..66a631e38 100644 --- a/packages/kokkos/core/perf_test/PerfTest_ViewResize.hpp +++ b/packages/kokkos/core/perf_test/PerfTest_ViewResize.hpp @@ -120,7 +120,7 @@ void run_resizeview_tests123(int N, int R) { Kokkos::Timer timer; for (int r = 0; r < R; r++) { Kokkos::View<double*, Layout> a1( - Kokkos::ViewAllocateWithoutInitializing("A1"), int(N8 * 1.1)); + Kokkos::view_alloc(Kokkos::WithoutInitializing, "A1"), int(N8 * 1.1)); double* a1_ptr = a1.data(); Kokkos::parallel_for( N8, KOKKOS_LAMBDA(const int& i) { a1_ptr[i] = a_ptr[i]; }); @@ -201,7 +201,7 @@ void run_resizeview_tests45(int N, int R) { Kokkos::Timer timer; for (int r = 0; r < R; r++) { Kokkos::View<double*, Layout> a1( - Kokkos::ViewAllocateWithoutInitializing("A1"), int(N8 * 1.1)); + Kokkos::view_alloc(Kokkos::WithoutInitializing, "A1"), int(N8 * 1.1)); double* a1_ptr = a1.data(); Kokkos::parallel_for( N8, KOKKOS_LAMBDA(const int& i) { a1_ptr[i] = a_ptr[i]; }); @@ -258,7 +258,7 @@ void run_resizeview_tests6(int N, int R) { Kokkos::Timer timer; for (int r = 0; r < R; r++) { Kokkos::View<double*, Layout> a1( - Kokkos::ViewAllocateWithoutInitializing("A1"), int(N8 * 1.1)); + Kokkos::view_alloc(Kokkos::WithoutInitializing, "A1"), int(N8 * 1.1)); double* a1_ptr = a1.data(); Kokkos::parallel_for( N8, KOKKOS_LAMBDA(const int& i) { a1_ptr[i] = a_ptr[i]; }); @@ -311,7 +311,7 @@ void run_resizeview_tests7(int N, int R) { Kokkos::Timer timer; for (int r = 0; r < R; r++) { Kokkos::View<double*, Layout> a1( - Kokkos::ViewAllocateWithoutInitializing("A1"), int(N8 * 1.1)); + Kokkos::view_alloc(Kokkos::WithoutInitializing, "A1"), int(N8 * 1.1)); double* a1_ptr = a1.data(); Kokkos::parallel_for( N8, KOKKOS_LAMBDA(const int& i) { a1_ptr[i] = a_ptr[i]; }); @@ -366,7 +366,7 @@ void run_resizeview_tests8(int N, int R) { Kokkos::Timer timer; for (int r = 0; r < R; r++) { Kokkos::View<double*, Layout> a1( - Kokkos::ViewAllocateWithoutInitializing("A1"), int(N8 * 1.1)); + Kokkos::view_alloc(Kokkos::WithoutInitializing, "A1"), int(N8 * 1.1)); double* a1_ptr = a1.data(); Kokkos::parallel_for( N8, KOKKOS_LAMBDA(const int& i) { a1_ptr[i] = a_ptr[i]; }); diff --git a/packages/kokkos/core/perf_test/test_atomic.cpp b/packages/kokkos/core/perf_test/test_atomic.cpp index 7699d7b91..59820f3bd 100644 --- a/packages/kokkos/core/perf_test/test_atomic.cpp +++ b/packages/kokkos/core/perf_test/test_atomic.cpp @@ -49,7 +49,7 @@ #include <Kokkos_Core.hpp> #include <impl/Kokkos_Timer.hpp> -typedef Kokkos::DefaultExecutionSpace exec_space; +using exec_space = Kokkos::DefaultExecutionSpace; #define RESET 0 #define BRIGHT 1 @@ -80,9 +80,9 @@ void textcolor_standard() { textcolor(RESET, BLACK, WHITE); } template <class T, class DEVICE_TYPE> struct ZeroFunctor { - typedef DEVICE_TYPE execution_space; - typedef typename Kokkos::View<T, execution_space> type; - typedef typename Kokkos::View<T, execution_space>::HostMirror h_type; + using execution_space = DEVICE_TYPE; + using type = typename Kokkos::View<T, execution_space>; + using h_type = typename Kokkos::View<T, execution_space>::HostMirror; type data; KOKKOS_INLINE_FUNCTION void operator()(int) const { data() = 0; } @@ -94,8 +94,8 @@ struct ZeroFunctor { template <class T, class DEVICE_TYPE> struct AddFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View<T, execution_space> type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View<T, execution_space>; type data; KOKKOS_INLINE_FUNCTION @@ -123,8 +123,8 @@ T AddLoop(int loop) { template <class T, class DEVICE_TYPE> struct AddNonAtomicFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View<T, execution_space> type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View<T, execution_space>; type data; KOKKOS_INLINE_FUNCTION @@ -166,8 +166,8 @@ T AddLoopSerial(int loop) { template <class T, class DEVICE_TYPE> struct CASFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View<T, execution_space> type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View<T, execution_space>; type data; KOKKOS_INLINE_FUNCTION @@ -204,8 +204,8 @@ T CASLoop(int loop) { template <class T, class DEVICE_TYPE> struct CASNonAtomicFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View<T, execution_space> type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View<T, execution_space>; type data; KOKKOS_INLINE_FUNCTION @@ -268,8 +268,8 @@ T CASLoopSerial(int loop) { template <class T, class DEVICE_TYPE> struct ExchFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View<T, execution_space> type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View<T, execution_space>; type data, data2; KOKKOS_INLINE_FUNCTION @@ -309,8 +309,8 @@ T ExchLoop(int loop) { template <class T, class DEVICE_TYPE> struct ExchNonAtomicFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View<T, execution_space> type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View<T, execution_space>; type data, data2; KOKKOS_INLINE_FUNCTION @@ -448,15 +448,15 @@ int main(int argc, char* argv[]) { for (int i = 0; i < argc; i++) { if ((strcmp(argv[i], "--test") == 0)) { - test = atoi(argv[++i]); + test = std::stoi(argv[++i]); continue; } if ((strcmp(argv[i], "--type") == 0)) { - type = atoi(argv[++i]); + type = std::stoi(argv[++i]); continue; } if ((strcmp(argv[i], "-l") == 0) || (strcmp(argv[i], "--loop") == 0)) { - loop = atoi(argv[++i]); + loop = std::stoi(argv[++i]); continue; } } diff --git a/packages/kokkos/core/perf_test/test_atomic_minmax_simple.cpp b/packages/kokkos/core/perf_test/test_atomic_minmax_simple.cpp new file mode 100644 index 000000000..eec1c8eac --- /dev/null +++ b/packages/kokkos/core/perf_test/test_atomic_minmax_simple.cpp @@ -0,0 +1,244 @@ +// export OMP_PROC_BIND=spread ; export OMP_PLACES=threads +// c++ -O2 -g -DNDEBUG -fopenmp +// ../core/perf_test/test_atomic_minmax_simple.cpp -I../core/src/ -I. -o +// test_atomic_minmax_simple.x containers/src/libkokkoscontainers.a +// core/src/libkokkoscore.a -ldl && OMP_NUM_THREADS=1 +// ./test_atomic_minmax_simple.x 10000000 + +#include <cstdio> +#include <cstdlib> + +#include <iostream> +#include <typeinfo> + +#include <Kokkos_Core.hpp> +#include <impl/Kokkos_Timer.hpp> + +using exec_space = Kokkos::DefaultExecutionSpace; + +template <typename T> +void test(const int length) { + Kokkos::Impl::Timer timer; + + using vector = Kokkos::View<T*, exec_space>; + + vector inp("input", length); + T max = std::numeric_limits<T>::max(); + T min = std::numeric_limits<T>::lowest(); + + // input is max values - all min atomics will replace + { + Kokkos::parallel_for( + length, KOKKOS_LAMBDA(const int i) { inp(i) = max; }); + Kokkos::fence(); + + timer.reset(); + Kokkos::parallel_for( + length, KOKKOS_LAMBDA(const int i) { + (void)Kokkos::atomic_fetch_min(&(inp(i)), (T)i); + }); + Kokkos::fence(); + double time = timer.seconds(); + + int errors(0); + Kokkos::parallel_reduce( + length, + KOKKOS_LAMBDA(const int i, int& inner) { inner += (inp(i) != (T)i); }, + errors); + Kokkos::fence(); + + if (errors) { + std::cerr << "Error in 100% min replacements: " << errors << std::endl; + std::cerr << "inp(0)=" << inp(0) << std::endl; + } + std::cout << "Time for 100% min replacements: " << time << std::endl; + } + + // input is min values - all max atomics will replace + { + Kokkos::parallel_for( + length, KOKKOS_LAMBDA(const int i) { inp(i) = min; }); + Kokkos::fence(); + + timer.reset(); + Kokkos::parallel_for( + length, KOKKOS_LAMBDA(const int i) { + (void)Kokkos::atomic_max_fetch(&(inp(i)), (T)i); + }); + Kokkos::fence(); + double time = timer.seconds(); + + int errors(0); + Kokkos::parallel_reduce( + length, + KOKKOS_LAMBDA(const int i, int& inner) { inner += (inp(i) != (T)i); }, + errors); + Kokkos::fence(); + + if (errors) { + std::cerr << "Error in 100% max replacements: " << errors << std::endl; + std::cerr << "inp(0)=" << inp(0) << std::endl; + } + std::cout << "Time for 100% max replacements: " << time << std::endl; + } + + // input is max values - all max atomics will early exit + { + Kokkos::parallel_for( + length, KOKKOS_LAMBDA(const int i) { inp(i) = max; }); + Kokkos::fence(); + + timer.reset(); + Kokkos::parallel_for( + length, KOKKOS_LAMBDA(const int i) { + (void)Kokkos::atomic_max_fetch(&(inp(i)), (T)i); + }); + Kokkos::fence(); + double time = timer.seconds(); + + int errors(0); + Kokkos::parallel_reduce( + length, + KOKKOS_LAMBDA(const int i, int& inner) { + T ref = max; + inner += (inp(i) != ref); + }, + errors); + Kokkos::fence(); + + if (errors) { + std::cerr << "Error in 100% max early exits: " << errors << std::endl; + std::cerr << "inp(0)=" << inp(0) << std::endl; + } + std::cout << "Time for 100% max early exits: " << time << std::endl; + } + + // input is min values - all min atomics will early exit + { + Kokkos::parallel_for( + length, KOKKOS_LAMBDA(const int i) { inp(i) = min; }); + Kokkos::fence(); + + timer.reset(); + Kokkos::parallel_for( + length, KOKKOS_LAMBDA(const int i) { + (void)Kokkos::atomic_min_fetch(&(inp(i)), (T)i); + }); + Kokkos::fence(); + double time = timer.seconds(); + + int errors(0); + Kokkos::parallel_reduce( + length, + KOKKOS_LAMBDA(const int i, int& inner) { + T ref = min; + inner += (inp(i) != ref); + }, + errors); + Kokkos::fence(); + + if (errors) { + std::cerr << "Error in 100% min early exits: " << errors << std::endl; + std::cerr << "inp(0)=" << inp(0) << std::endl; + if (length > 9) std::cout << "inp(9)=" << inp(9) << std::endl; + } + std::cout << "Time for 100% min early exits: " << time << std::endl; + } + + // limit iterations for contentious test, takes ~50x longer for same length + auto con_length = length / 5; + // input is min values - some max atomics will replace + { + Kokkos::parallel_for( + 1, KOKKOS_LAMBDA(const int i) { inp(i) = min; }); + Kokkos::fence(); + + T current(0); + timer.reset(); + Kokkos::parallel_reduce( + con_length, + KOKKOS_LAMBDA(const int i, T& inner) { + inner = Kokkos::atomic_max_fetch(&(inp(0)), inner + 1); + if (i == con_length - 1) { + Kokkos::atomic_max_fetch(&(inp(0)), max); + inner = max; + } + }, + Kokkos::Max<T>(current)); + Kokkos::fence(); + double time = timer.seconds(); + + if (current < max) { + std::cerr << "Error in contentious max replacements: " << std::endl; + std::cerr << "final=" << current << " inp(0)=" << inp(0) << " max=" << max + << std::endl; + } + std::cout << "Time for contentious max " << con_length + << " replacements: " << time << std::endl; + } + + // input is max values - some min atomics will replace + { + Kokkos::parallel_for( + 1, KOKKOS_LAMBDA(const int i) { inp(i) = max; }); + Kokkos::fence(); + + timer.reset(); + T current(100000000); + Kokkos::parallel_reduce( + con_length, + KOKKOS_LAMBDA(const int i, T& inner) { + inner = Kokkos::atomic_min_fetch(&(inp(0)), inner - 1); + if (i == con_length - 1) { + Kokkos::atomic_min_fetch(&(inp(0)), min); + inner = min; + } + }, + Kokkos::Min<T>(current)); + Kokkos::fence(); + double time = timer.seconds(); + + if (current > min) { + std::cerr << "Error in contentious min replacements: " << std::endl; + std::cerr << "final=" << current << " inp(0)=" << inp(0) << " min=" << min + << std::endl; + } + std::cout << "Time for contentious min " << con_length + << " replacements: " << time << std::endl; + } +} + +int main(int argc, char* argv[]) { + Kokkos::initialize(argc, argv); + { + int length = 1000000; + if (argc == 2) { + length = std::stoi(argv[1]); + } + + if (length < 1) { + throw std::invalid_argument(""); + } + + std::cout << "================ int" << std::endl; + test<int>(length); + std::cout << "================ long" << std::endl; + test<long>(length); + std::cout << "================ long long" << std::endl; + test<long long>(length); + + std::cout << "================ unsigned int" << std::endl; + test<unsigned int>(length); + std::cout << "================ unsigned long" << std::endl; + test<unsigned long>(length); + std::cout << "================ unsigned long long" << std::endl; + test<unsigned long long>(length); + + std::cout << "================ float" << std::endl; + test<float>(length); + std::cout << "================ double" << std::endl; + test<double>(length); + } + Kokkos::finalize(); + return 0; +} diff --git a/packages/kokkos/core/perf_test/test_mempool.cpp b/packages/kokkos/core/perf_test/test_mempool.cpp index ad8622e7a..9aab11977 100644 --- a/packages/kokkos/core/perf_test/test_mempool.cpp +++ b/packages/kokkos/core/perf_test/test_mempool.cpp @@ -56,7 +56,7 @@ using MemorySpace = Kokkos::DefaultExecutionSpace::memory_space; using MemoryPool = Kokkos::MemoryPool<ExecSpace>; struct TestFunctor { - typedef Kokkos::View<uintptr_t*, ExecSpace> ptrs_type; + using ptrs_type = Kokkos::View<uintptr_t*, ExecSpace>; enum : unsigned { chunk = 32 }; @@ -87,7 +87,7 @@ struct TestFunctor { //---------------------------------------- - typedef long value_type; + using value_type = long; //---------------------------------------- @@ -107,7 +107,7 @@ struct TestFunctor { } bool test_fill() { - typedef Kokkos::RangePolicy<ExecSpace, TagFill> policy; + using policy = Kokkos::RangePolicy<ExecSpace, TagFill>; long result = 0; @@ -134,7 +134,7 @@ struct TestFunctor { } void test_del() { - typedef Kokkos::RangePolicy<ExecSpace, TagDel> policy; + using policy = Kokkos::RangePolicy<ExecSpace, TagDel>; Kokkos::parallel_for(policy(0, range_iter), *this); Kokkos::fence(); @@ -164,7 +164,7 @@ struct TestFunctor { } bool test_alloc_dealloc() { - typedef Kokkos::RangePolicy<ExecSpace, TagAllocDealloc> policy; + using policy = Kokkos::RangePolicy<ExecSpace, TagAllocDealloc>; long error_count = 0; @@ -203,22 +203,22 @@ int main(int argc, char* argv[]) { total_alloc_size = atol(a + strlen(alloc_size_flag)); if (!strncmp(a, super_size_flag, strlen(super_size_flag))) - min_superblock_size = atoi(a + strlen(super_size_flag)); + min_superblock_size = std::stoi(a + strlen(super_size_flag)); if (!strncmp(a, fill_stride_flag, strlen(fill_stride_flag))) - fill_stride = atoi(a + strlen(fill_stride_flag)); + fill_stride = std::stoi(a + strlen(fill_stride_flag)); if (!strncmp(a, fill_level_flag, strlen(fill_level_flag))) - fill_level = atoi(a + strlen(fill_level_flag)); + fill_level = std::stoi(a + strlen(fill_level_flag)); if (!strncmp(a, chunk_span_flag, strlen(chunk_span_flag))) - chunk_span = atoi(a + strlen(chunk_span_flag)); + chunk_span = std::stoi(a + strlen(chunk_span_flag)); if (!strncmp(a, repeat_outer_flag, strlen(repeat_outer_flag))) - repeat_outer = atoi(a + strlen(repeat_outer_flag)); + repeat_outer = std::stoi(a + strlen(repeat_outer_flag)); if (!strncmp(a, repeat_inner_flag, strlen(repeat_inner_flag))) - repeat_inner = atoi(a + strlen(repeat_inner_flag)); + repeat_inner = std::stoi(a + strlen(repeat_inner_flag)); } int chunk_span_bytes = 0; diff --git a/packages/kokkos/core/perf_test/test_taskdag.cpp b/packages/kokkos/core/perf_test/test_taskdag.cpp index a97edc59e..b2f936a95 100644 --- a/packages/kokkos/core/perf_test/test_taskdag.cpp +++ b/packages/kokkos/core/perf_test/test_taskdag.cpp @@ -91,7 +91,7 @@ struct TestFib { using MemberType = typename Scheduler::member_type; using FutureType = Kokkos::BasicFuture<long, Scheduler>; - typedef long value_type; + using value_type = long; FutureType dep[2]; const value_type n; @@ -152,13 +152,13 @@ int main(int argc, char* argv[]) { total_alloc_size = atol(a + strlen(alloc_size)); if (!strncmp(a, super_size, strlen(super_size))) - min_superblock_size = atoi(a + strlen(super_size)); + min_superblock_size = std::stoi(a + strlen(super_size)); if (!strncmp(a, repeat_outer, strlen(repeat_outer))) - test_repeat_outer = atoi(a + strlen(repeat_outer)); + test_repeat_outer = std::stoi(a + strlen(repeat_outer)); if (!strncmp(a, input_value, strlen(input_value))) - fib_input = atoi(a + strlen(input_value)); + fib_input = std::stoi(a + strlen(input_value)); } const long fib_output = eval_fib(fib_input); @@ -182,7 +182,7 @@ int main(int argc, char* argv[]) { using Scheduler = Kokkos::TaskSchedulerMultiple<ExecSpace>; - typedef TestFib<Scheduler> Functor; + using Functor = TestFib<Scheduler>; Kokkos::initialize(argc, argv); diff --git a/packages/kokkos/core/src/CMakeLists.txt b/packages/kokkos/core/src/CMakeLists.txt index 5b91b3078..e0590a78a 100644 --- a/packages/kokkos/core/src/CMakeLists.txt +++ b/packages/kokkos/core/src/CMakeLists.txt @@ -8,50 +8,45 @@ KOKKOS_INCLUDE_DIRECTORIES( INSTALL (DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/" DESTINATION ${KOKKOS_HEADER_DIR} - FILES_MATCHING PATTERN "*.hpp" + FILES_MATCHING + PATTERN "*.hpp" + PATTERN "*.h" ) SET(KOKKOS_CORE_SRCS) APPEND_GLOB(KOKKOS_CORE_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/impl/*.cpp) - -IF (KOKKOS_ENABLE_ROCM) - APPEND_GLOB(KOKKOS_CORE_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/ROCm/*.cpp) - IF (KOKKOS_ENABLE_ETI) - APPEND_GLOB(KOKKOS_CORE_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/eti/ROCm/*.cpp) - ENDIF() -ENDIF() +SET(KOKKOS_CORE_HEADERS) +APPEND_GLOB(KOKKOS_CORE_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/*.hpp) +APPEND_GLOB(KOKKOS_CORE_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/impl/*.hpp) IF (KOKKOS_ENABLE_CUDA) APPEND_GLOB(KOKKOS_CORE_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/Cuda/*.cpp) - IF (KOKKOS_ENABLE_ETI) - APPEND_GLOB(KOKKOS_CORE_SRC ${CMAKE_CURRENT_SOURCE_DIR/eti/Cuda/*.cpp) - ENDIF() + APPEND_GLOB(KOKKOS_CORE_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/Cuda/*.hpp) ENDIF() IF (KOKKOS_ENABLE_OPENMP) APPEND_GLOB(KOKKOS_CORE_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/OpenMP/*.cpp) - IF (KOKKOS_ENABLE_ETI) - APPEND_GLOB(KOKKOS_CORE_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/eti/OpenMP/*.cpp) - ENDIF() + APPEND_GLOB(KOKKOS_CORE_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/OpenMP/*.hpp) ENDIF() IF (KOKKOS_ENABLE_OPENMPTARGET) APPEND_GLOB(KOKKOS_CORE_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/OpenMPTarget/*.cpp) + APPEND_GLOB(KOKKOS_CORE_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/OpenMPTarget/*.hpp) ENDIF() IF (KOKKOS_ENABLE_PTHREAD) APPEND_GLOB(KOKKOS_CORE_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/Threads/*.cpp) - IF (KOKKOS_ENABLE_ETI) - APPEND_GLOB(KOKKOS_CORE_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/eti/Threads/*.cpp) - ENDIF() + APPEND_GLOB(KOKKOS_CORE_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/Threads/*.hpp) ENDIF() IF (KOKKOS_ENABLE_HIP) APPEND_GLOB(KOKKOS_CORE_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/HIP/*.cpp) + APPEND_GLOB(KOKKOS_CORE_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/HIP/*.hpp) ENDIF() IF (KOKKOS_ENABLE_HPX) APPEND_GLOB(KOKKOS_CORE_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/HPX/*.cpp) + APPEND_GLOB(KOKKOS_CORE_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/HPX/*.hpp) ENDIF() IF (NOT KOKKOS_ENABLE_MEMKIND) @@ -59,17 +54,22 @@ IF (NOT KOKKOS_ENABLE_MEMKIND) ENDIF() IF (KOKKOS_ENABLE_SERIAL) - IF (KOKKOS_ENABLE_ETI) - APPEND_GLOB(KOKKOS_CORE_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/eti/Serial/*.cpp) - ENDIF() + APPEND_GLOB(KOKKOS_CORE_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/Serial/*.hpp) ELSE() LIST(REMOVE_ITEM KOKKOS_CORE_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/impl/Kokkos_Serial.cpp) LIST(REMOVE_ITEM KOKKOS_CORE_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/impl/Kokkos_Serial_task.cpp) ENDIF() +IF (KOKKOS_ENABLE_SYCL) + APPEND_GLOB(KOKKOS_CORE_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/SYCL/*.cpp) + APPEND_GLOB(KOKKOS_CORE_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/SYCL/*.hpp) +ENDIF() + KOKKOS_ADD_LIBRARY( kokkoscore SOURCES ${KOKKOS_CORE_SRCS} + HEADERS ${KOKKOS_CORE_HEADERS} + ADD_BUILD_OPTIONS # core should be given all the necessary compiler/linker flags ) SET_TARGET_PROPERTIES(kokkoscore PROPERTIES VERSION ${Kokkos_VERSION}) diff --git a/packages/kokkos/core/src/Cuda/KokkosExp_Cuda_IterateTile.hpp b/packages/kokkos/core/src/Cuda/KokkosExp_Cuda_IterateTile.hpp deleted file mode 100644 index 370626392..000000000 --- a/packages/kokkos/core/src/Cuda/KokkosExp_Cuda_IterateTile.hpp +++ /dev/null @@ -1,1392 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#ifndef KOKKOS_CUDA_EXP_ITERATE_TILE_HPP -#define KOKKOS_CUDA_EXP_ITERATE_TILE_HPP - -#include <Kokkos_Macros.hpp> -#if defined(__CUDACC__) && defined(KOKKOS_ENABLE_CUDA) - -#include <iostream> -#include <algorithm> -#include <cstdio> - -#include <utility> - -//#include<Cuda/Kokkos_CudaExec.hpp> -// Including the file above, leads to following type of errors: -// /home/ndellin/kokkos/core/src/Cuda/Kokkos_CudaExec.hpp(84): error: incomplete -// type is not allowed As a result, recreate cuda_parallel_launch and associated -// code - -#if defined(KOKKOS_ENABLE_PROFILING) -#include <impl/Kokkos_Profiling_Interface.hpp> -#include <typeinfo> -#endif - -namespace Kokkos { -namespace Impl { - -// ------------------------------------------------------------------ // - -template <class DriverType> -__global__ static void cuda_parallel_launch(const DriverType driver) { - driver(); -} - -template <class DriverType> -struct CudaLaunch { - inline CudaLaunch(const DriverType& driver, const dim3& grid, - const dim3& block) { - cuda_parallel_launch<DriverType><<<grid, block>>>(driver); - } -}; - -// ------------------------------------------------------------------ // -template <int N, typename RP, typename Functor, typename Tag> -struct apply_impl; - -// Rank 2 -// Specializations for void tag type -template <typename RP, typename Functor> -struct apply_impl<2, RP, Functor, void> { - using index_type = typename RP::index_type; - - __device__ apply_impl(const RP& rp_, const Functor& f_) - : m_rp(rp_), m_func(f_) {} - - inline __device__ void exec_range() const { - // LL - if (RP::inner_direction == RP::Left) { - for (index_type tile_id1 = blockIdx.y; tile_id1 < m_rp.m_tile_end[1]; - tile_id1 += gridDim.y) { - const index_type offset_1 = tile_id1 * m_rp.m_tile[1] + - (index_type)threadIdx.y + - (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && threadIdx.y < m_rp.m_tile[1]) { - for (index_type tile_id0 = blockIdx.x; tile_id0 < m_rp.m_tile_end[0]; - tile_id0 += gridDim.x) { - const index_type offset_0 = tile_id0 * m_rp.m_tile[0] + - (index_type)threadIdx.x + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && threadIdx.x < m_rp.m_tile[0]) { - m_func(offset_0, offset_1); - } - } - } - } - } - // LR - else { - for (index_type tile_id0 = blockIdx.x; tile_id0 < m_rp.m_tile_end[0]; - tile_id0 += gridDim.x) { - const index_type offset_0 = tile_id0 * m_rp.m_tile[0] + - (index_type)threadIdx.x + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && threadIdx.x < m_rp.m_tile[0]) { - for (index_type tile_id1 = blockIdx.y; tile_id1 < m_rp.m_tile_end[1]; - tile_id1 += gridDim.y) { - const index_type offset_1 = tile_id1 * m_rp.m_tile[1] + - (index_type)threadIdx.y + - (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && threadIdx.y < m_rp.m_tile[1]) { - m_func(offset_0, offset_1); - } - } - } - } - } - - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; -}; - -// Specializations for tag type -template <typename RP, typename Functor, typename Tag> -struct apply_impl<2, RP, Functor, Tag> { - using index_type = typename RP::index_type; - - inline __device__ apply_impl(const RP& rp_, const Functor& f_) - : m_rp(rp_), m_func(f_) {} - - inline __device__ void exec_range() const { - if (RP::inner_direction == RP::Left) { - // Loop over size maxnumblocks until full range covered - for (index_type tile_id1 = blockIdx.y; tile_id1 < m_rp.m_tile_end[1]; - tile_id1 += gridDim.y) { - const index_type offset_1 = tile_id1 * m_rp.m_tile[1] + - (index_type)threadIdx.y + - (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && threadIdx.y < m_rp.m_tile[1]) { - for (index_type tile_id0 = blockIdx.x; tile_id0 < m_rp.m_tile_end[0]; - tile_id0 += gridDim.x) { - const index_type offset_0 = tile_id0 * m_rp.m_tile[0] + - (index_type)threadIdx.x + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && threadIdx.x < m_rp.m_tile[0]) { - m_func(Tag(), offset_0, offset_1); - } - } - } - } - } else { - for (index_type tile_id0 = blockIdx.x; tile_id0 < m_rp.m_tile_end[0]; - tile_id0 += gridDim.x) { - const index_type offset_0 = tile_id0 * m_rp.m_tile[0] + - (index_type)threadIdx.x + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && threadIdx.x < m_rp.m_tile[0]) { - for (index_type tile_id1 = blockIdx.y; tile_id1 < m_rp.m_tile_end[1]; - tile_id1 += gridDim.y) { - const index_type offset_1 = tile_id1 * m_rp.m_tile[1] + - (index_type)threadIdx.y + - (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && threadIdx.y < m_rp.m_tile[1]) { - m_func(Tag(), offset_0, offset_1); - } - } - } - } - } - - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; -}; - -// Rank 3 -// Specializations for void tag type -template <typename RP, typename Functor> -struct apply_impl<3, RP, Functor, void> { - using index_type = typename RP::index_type; - - __device__ apply_impl(const RP& rp_, const Functor& f_) - : m_rp(rp_), m_func(f_) {} - - inline __device__ void exec_range() const { - // LL - if (RP::inner_direction == RP::Left) { - for (index_type tile_id2 = blockIdx.z; tile_id2 < m_rp.m_tile_end[2]; - tile_id2 += gridDim.z) { - const index_type offset_2 = tile_id2 * m_rp.m_tile[2] + - (index_type)threadIdx.z + - (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && threadIdx.z < m_rp.m_tile[2]) { - for (index_type tile_id1 = blockIdx.y; tile_id1 < m_rp.m_tile_end[1]; - tile_id1 += gridDim.y) { - const index_type offset_1 = tile_id1 * m_rp.m_tile[1] + - (index_type)threadIdx.y + - (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && threadIdx.y < m_rp.m_tile[1]) { - for (index_type tile_id0 = blockIdx.x; - tile_id0 < m_rp.m_tile_end[0]; tile_id0 += gridDim.x) { - const index_type offset_0 = tile_id0 * m_rp.m_tile[0] + - (index_type)threadIdx.x + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && - threadIdx.x < m_rp.m_tile[0]) { - m_func(offset_0, offset_1, offset_2); - } - } - } - } - } - } - } - // LR - else { - for (index_type tile_id0 = blockIdx.x; tile_id0 < m_rp.m_tile_end[0]; - tile_id0 += gridDim.x) { - const index_type offset_0 = tile_id0 * m_rp.m_tile[0] + - (index_type)threadIdx.x + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && threadIdx.x < m_rp.m_tile[0]) { - for (index_type tile_id1 = blockIdx.y; tile_id1 < m_rp.m_tile_end[1]; - tile_id1 += gridDim.y) { - const index_type offset_1 = tile_id1 * m_rp.m_tile[1] + - (index_type)threadIdx.y + - (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && threadIdx.y < m_rp.m_tile[1]) { - for (index_type tile_id2 = blockIdx.z; - tile_id2 < m_rp.m_tile_end[2]; tile_id2 += gridDim.z) { - const index_type offset_2 = tile_id2 * m_rp.m_tile[2] + - (index_type)threadIdx.z + - (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && - threadIdx.z < m_rp.m_tile[2]) { - m_func(offset_0, offset_1, offset_2); - } - } - } - } - } - } - } - - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; -}; - -// Specializations for void tag type -template <typename RP, typename Functor, typename Tag> -struct apply_impl<3, RP, Functor, Tag> { - using index_type = typename RP::index_type; - - inline __device__ apply_impl(const RP& rp_, const Functor& f_) - : m_rp(rp_), m_func(f_) {} - - inline __device__ void exec_range() const { - if (RP::inner_direction == RP::Left) { - for (index_type tile_id2 = blockIdx.z; tile_id2 < m_rp.m_tile_end[2]; - tile_id2 += gridDim.z) { - const index_type offset_2 = tile_id2 * m_rp.m_tile[2] + - (index_type)threadIdx.z + - (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && threadIdx.z < m_rp.m_tile[2]) { - for (index_type tile_id1 = blockIdx.y; tile_id1 < m_rp.m_tile_end[1]; - tile_id1 += gridDim.y) { - const index_type offset_1 = tile_id1 * m_rp.m_tile[1] + - (index_type)threadIdx.y + - (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && threadIdx.y < m_rp.m_tile[1]) { - for (index_type tile_id0 = blockIdx.x; - tile_id0 < m_rp.m_tile_end[0]; tile_id0 += gridDim.x) { - const index_type offset_0 = tile_id0 * m_rp.m_tile[0] + - (index_type)threadIdx.x + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && - threadIdx.x < m_rp.m_tile[0]) { - m_func(Tag(), offset_0, offset_1, offset_2); - } - } - } - } - } - } - } else { - for (index_type tile_id0 = blockIdx.x; tile_id0 < m_rp.m_tile_end[0]; - tile_id0 += gridDim.x) { - const index_type offset_0 = tile_id0 * m_rp.m_tile[0] + - (index_type)threadIdx.x + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && threadIdx.x < m_rp.m_tile[0]) { - for (index_type tile_id1 = blockIdx.y; tile_id1 < m_rp.m_tile_end[1]; - tile_id1 += gridDim.y) { - const index_type offset_1 = tile_id1 * m_rp.m_tile[1] + - (index_type)threadIdx.y + - (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && threadIdx.y < m_rp.m_tile[1]) { - for (index_type tile_id2 = blockIdx.z; - tile_id2 < m_rp.m_tile_end[2]; tile_id2 += gridDim.z) { - const index_type offset_2 = tile_id2 * m_rp.m_tile[2] + - (index_type)threadIdx.z + - (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && - threadIdx.z < m_rp.m_tile[2]) { - m_func(Tag(), offset_0, offset_1, offset_2); - } - } - } - } - } - } - } - - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; -}; - -// Rank 4 -// Specializations for void tag type -template <typename RP, typename Functor> -struct apply_impl<4, RP, Functor, void> { - using index_type = typename RP::index_type; - - __device__ apply_impl(const RP& rp_, const Functor& f_) - : m_rp(rp_), m_func(f_) {} - - static constexpr index_type max_blocks = 65535; - - inline __device__ void exec_range() const { - // LL - if (RP::inner_direction == RP::Left) { - const index_type temp0 = m_rp.m_tile_end[0]; - const index_type temp1 = m_rp.m_tile_end[1]; - const index_type numbl0 = (temp0 <= max_blocks ? temp0 : max_blocks); - const index_type numbl1 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl0) - : (temp1 <= max_blocks ? temp1 : max_blocks)); - - const index_type tile_id0 = blockIdx.x % numbl0; - const index_type tile_id1 = blockIdx.x / numbl0; - const index_type thr_id0 = threadIdx.x % m_rp.m_tile[0]; - const index_type thr_id1 = threadIdx.x / m_rp.m_tile[0]; - - for (index_type tile_id3 = blockIdx.z; tile_id3 < m_rp.m_tile_end[3]; - tile_id3 += gridDim.z) { - const index_type offset_3 = tile_id3 * m_rp.m_tile[3] + - (index_type)threadIdx.z + - (index_type)m_rp.m_lower[3]; - if (offset_3 < m_rp.m_upper[3] && threadIdx.z < m_rp.m_tile[3]) { - for (index_type tile_id2 = blockIdx.y; tile_id2 < m_rp.m_tile_end[2]; - tile_id2 += gridDim.y) { - const index_type offset_2 = tile_id2 * m_rp.m_tile[2] + - (index_type)threadIdx.y + - (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && threadIdx.y < m_rp.m_tile[2]) { - for (index_type j = tile_id1; j < m_rp.m_tile_end[1]; - j += numbl1) { - const index_type offset_1 = - j * m_rp.m_tile[1] + thr_id1 + (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && thr_id1 < m_rp.m_tile[1]) { - for (index_type i = tile_id0; i < m_rp.m_tile_end[0]; - i += numbl0) { - const index_type offset_0 = i * m_rp.m_tile[0] + thr_id0 + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && - thr_id0 < m_rp.m_tile[0]) { - m_func(offset_0, offset_1, offset_2, offset_3); - } - } - } - } - } - } - } - } - } - // LR - else { - const index_type temp0 = m_rp.m_tile_end[0]; - const index_type temp1 = m_rp.m_tile_end[1]; - const index_type numbl1 = (temp1 <= max_blocks ? temp1 : max_blocks); - const index_type numbl0 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl1) - : (temp0 <= max_blocks ? temp0 : max_blocks)); - - const index_type tile_id0 = blockIdx.x / numbl1; - const index_type tile_id1 = blockIdx.x % numbl1; - const index_type thr_id0 = threadIdx.x / m_rp.m_tile[1]; - const index_type thr_id1 = threadIdx.x % m_rp.m_tile[1]; - - for (index_type i = tile_id0; i < m_rp.m_tile_end[0]; i += numbl0) { - const index_type offset_0 = - i * m_rp.m_tile[0] + thr_id0 + (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && thr_id0 < m_rp.m_tile[0]) { - for (index_type j = tile_id1; j < m_rp.m_tile_end[1]; j += numbl1) { - const index_type offset_1 = - j * m_rp.m_tile[1] + thr_id1 + (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && thr_id1 < m_rp.m_tile[1]) { - for (index_type tile_id2 = blockIdx.y; - tile_id2 < m_rp.m_tile_end[2]; tile_id2 += gridDim.y) { - const index_type offset_2 = tile_id2 * m_rp.m_tile[2] + - (index_type)threadIdx.y + - (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && - threadIdx.y < m_rp.m_tile[2]) { - for (index_type tile_id3 = blockIdx.z; - tile_id3 < m_rp.m_tile_end[3]; tile_id3 += gridDim.z) { - const index_type offset_3 = tile_id3 * m_rp.m_tile[3] + - (index_type)threadIdx.z + - (index_type)m_rp.m_lower[3]; - if (offset_3 < m_rp.m_upper[3] && - threadIdx.z < m_rp.m_tile[3]) { - m_func(offset_0, offset_1, offset_2, offset_3); - } - } - } - } - } - } - } - } - } - - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; -}; - -// Specializations for void tag type -template <typename RP, typename Functor, typename Tag> -struct apply_impl<4, RP, Functor, Tag> { - using index_type = typename RP::index_type; - - inline __device__ apply_impl(const RP& rp_, const Functor& f_) - : m_rp(rp_), m_func(f_) {} - - static constexpr index_type max_blocks = 65535; - - inline __device__ void exec_range() const { - if (RP::inner_direction == RP::Left) { - const index_type temp0 = m_rp.m_tile_end[0]; - const index_type temp1 = m_rp.m_tile_end[1]; - const index_type numbl0 = (temp0 <= max_blocks ? temp0 : max_blocks); - const index_type numbl1 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl0) - : (temp1 <= max_blocks ? temp1 : max_blocks)); - - const index_type tile_id0 = blockIdx.x % numbl0; - const index_type tile_id1 = blockIdx.x / numbl0; - const index_type thr_id0 = threadIdx.x % m_rp.m_tile[0]; - const index_type thr_id1 = threadIdx.x / m_rp.m_tile[0]; - - for (index_type tile_id3 = blockIdx.z; tile_id3 < m_rp.m_tile_end[3]; - tile_id3 += gridDim.z) { - const index_type offset_3 = tile_id3 * m_rp.m_tile[3] + - (index_type)threadIdx.z + - (index_type)m_rp.m_lower[3]; - if (offset_3 < m_rp.m_upper[3] && threadIdx.z < m_rp.m_tile[3]) { - for (index_type tile_id2 = blockIdx.y; tile_id2 < m_rp.m_tile_end[2]; - tile_id2 += gridDim.y) { - const index_type offset_2 = tile_id2 * m_rp.m_tile[2] + - (index_type)threadIdx.y + - (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && threadIdx.y < m_rp.m_tile[2]) { - for (index_type j = tile_id1; j < m_rp.m_tile_end[1]; - j += numbl1) { - const index_type offset_1 = - j * m_rp.m_tile[1] + thr_id1 + (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && thr_id1 < m_rp.m_tile[1]) { - for (index_type i = tile_id0; i < m_rp.m_tile_end[0]; - i += numbl0) { - const index_type offset_0 = i * m_rp.m_tile[0] + thr_id0 + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && - thr_id0 < m_rp.m_tile[0]) { - m_func(Tag(), offset_0, offset_1, offset_2, offset_3); - } - } - } - } - } - } - } - } - } else { - const index_type temp0 = m_rp.m_tile_end[0]; - const index_type temp1 = m_rp.m_tile_end[1]; - const index_type numbl1 = (temp1 <= max_blocks ? temp1 : max_blocks); - const index_type numbl0 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl1) - : (temp0 <= max_blocks ? temp0 : max_blocks)); - - const index_type tile_id0 = blockIdx.x / numbl1; - const index_type tile_id1 = blockIdx.x % numbl1; - const index_type thr_id0 = threadIdx.x / m_rp.m_tile[1]; - const index_type thr_id1 = threadIdx.x % m_rp.m_tile[1]; - - for (index_type i = tile_id0; i < m_rp.m_tile_end[0]; i += numbl0) { - const index_type offset_0 = - i * m_rp.m_tile[0] + thr_id0 + (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && thr_id0 < m_rp.m_tile[0]) { - for (index_type j = tile_id1; j < m_rp.m_tile_end[1]; j += numbl1) { - const index_type offset_1 = tile_id1 * m_rp.m_tile[1] + thr_id1 + - (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && thr_id1 < m_rp.m_tile[1]) { - for (index_type tile_id2 = blockIdx.y; - tile_id2 < m_rp.m_tile_end[2]; tile_id2 += gridDim.y) { - const index_type offset_2 = tile_id2 * m_rp.m_tile[2] + - (index_type)threadIdx.y + - (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && - threadIdx.y < m_rp.m_tile[2]) { - for (index_type tile_id3 = blockIdx.z; - tile_id3 < m_rp.m_tile_end[3]; tile_id3 += gridDim.z) { - const index_type offset_3 = tile_id3 * m_rp.m_tile[3] + - (index_type)threadIdx.z + - (index_type)m_rp.m_lower[3]; - if (offset_3 < m_rp.m_upper[3] && - threadIdx.z < m_rp.m_tile[3]) { - m_func(Tag(), offset_0, offset_1, offset_2, offset_3); - } - } - } - } - } - } - } - } - } - - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; -}; - -// Rank 5 -// Specializations for void tag type -template <typename RP, typename Functor> -struct apply_impl<5, RP, Functor, void> { - using index_type = typename RP::index_type; - - __device__ apply_impl(const RP& rp_, const Functor& f_) - : m_rp(rp_), m_func(f_) {} - - static constexpr index_type max_blocks = 65535; - - inline __device__ void exec_range() const { - // LL - if (RP::inner_direction == RP::Left) { - index_type temp0 = m_rp.m_tile_end[0]; - index_type temp1 = m_rp.m_tile_end[1]; - const index_type numbl0 = (temp0 <= max_blocks ? temp0 : max_blocks); - const index_type numbl1 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl0) - : (temp1 <= max_blocks ? temp1 : max_blocks)); - - const index_type tile_id0 = blockIdx.x % numbl0; - const index_type tile_id1 = blockIdx.x / numbl0; - const index_type thr_id0 = threadIdx.x % m_rp.m_tile[0]; - const index_type thr_id1 = threadIdx.x / m_rp.m_tile[0]; - - temp0 = m_rp.m_tile_end[2]; - temp1 = m_rp.m_tile_end[3]; - const index_type numbl2 = (temp0 <= max_blocks ? temp0 : max_blocks); - const index_type numbl3 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl2) - : (temp1 <= max_blocks ? temp1 : max_blocks)); - - const index_type tile_id2 = blockIdx.y % numbl2; - const index_type tile_id3 = blockIdx.y / numbl2; - const index_type thr_id2 = threadIdx.y % m_rp.m_tile[2]; - const index_type thr_id3 = threadIdx.y / m_rp.m_tile[2]; - - for (index_type tile_id4 = blockIdx.z; tile_id4 < m_rp.m_tile_end[4]; - tile_id4 += gridDim.z) { - const index_type offset_4 = tile_id4 * m_rp.m_tile[4] + - (index_type)threadIdx.z + - (index_type)m_rp.m_lower[4]; - if (offset_4 < m_rp.m_upper[4] && threadIdx.z < m_rp.m_tile[4]) { - for (index_type l = tile_id3; l < m_rp.m_tile_end[3]; l += numbl3) { - const index_type offset_3 = - l * m_rp.m_tile[3] + thr_id3 + (index_type)m_rp.m_lower[3]; - if (offset_3 < m_rp.m_upper[3] && thr_id3 < m_rp.m_tile[3]) { - for (index_type k = tile_id2; k < m_rp.m_tile_end[2]; - k += numbl2) { - const index_type offset_2 = - k * m_rp.m_tile[2] + thr_id2 + (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && thr_id2 < m_rp.m_tile[2]) { - for (index_type j = tile_id1; j < m_rp.m_tile_end[1]; - j += numbl1) { - const index_type offset_1 = j * m_rp.m_tile[1] + thr_id1 + - (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && - thr_id1 < m_rp.m_tile[1]) { - for (index_type i = tile_id0; i < m_rp.m_tile_end[0]; - i += numbl0) { - const index_type offset_0 = i * m_rp.m_tile[0] + - thr_id0 + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && - thr_id0 < m_rp.m_tile[0]) { - m_func(offset_0, offset_1, offset_2, offset_3, - offset_4); - } - } - } - } - } - } - } - } - } - } - } - // LR - else { - index_type temp0 = m_rp.m_tile_end[0]; - index_type temp1 = m_rp.m_tile_end[1]; - const index_type numbl1 = (temp1 <= max_blocks ? temp1 : max_blocks); - const index_type numbl0 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl1) - : (temp0 <= max_blocks ? temp0 : max_blocks)); - - const index_type tile_id0 = blockIdx.x / numbl1; - const index_type tile_id1 = blockIdx.x % numbl1; - const index_type thr_id0 = threadIdx.x / m_rp.m_tile[1]; - const index_type thr_id1 = threadIdx.x % m_rp.m_tile[1]; - - temp0 = m_rp.m_tile_end[2]; - temp1 = m_rp.m_tile_end[3]; - const index_type numbl3 = (temp1 <= max_blocks ? temp1 : max_blocks); - const index_type numbl2 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl3) - : (temp0 <= max_blocks ? temp0 : max_blocks)); - - const index_type tile_id2 = blockIdx.y / numbl3; - const index_type tile_id3 = blockIdx.y % numbl3; - const index_type thr_id2 = threadIdx.y / m_rp.m_tile[3]; - const index_type thr_id3 = threadIdx.y % m_rp.m_tile[3]; - - for (index_type i = tile_id0; i < m_rp.m_tile_end[0]; i += numbl0) { - const index_type offset_0 = - i * m_rp.m_tile[0] + thr_id0 + (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && thr_id0 < m_rp.m_tile[0]) { - for (index_type j = tile_id1; j < m_rp.m_tile_end[1]; j += numbl1) { - const index_type offset_1 = - j * m_rp.m_tile[1] + thr_id1 + (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && thr_id1 < m_rp.m_tile[1]) { - for (index_type k = tile_id2; k < m_rp.m_tile_end[2]; - k += numbl2) { - const index_type offset_2 = - k * m_rp.m_tile[2] + thr_id2 + (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && thr_id2 < m_rp.m_tile[2]) { - for (index_type l = tile_id3; l < m_rp.m_tile_end[3]; - l += numbl3) { - const index_type offset_3 = l * m_rp.m_tile[3] + thr_id3 + - (index_type)m_rp.m_lower[3]; - if (offset_3 < m_rp.m_upper[3] && - thr_id3 < m_rp.m_tile[3]) { - for (index_type tile_id4 = blockIdx.z; - tile_id4 < m_rp.m_tile_end[4]; - tile_id4 += gridDim.z) { - const index_type offset_4 = tile_id4 * m_rp.m_tile[4] + - (index_type)threadIdx.z + - (index_type)m_rp.m_lower[4]; - if (offset_4 < m_rp.m_upper[4] && - threadIdx.z < m_rp.m_tile[4]) { - m_func(offset_0, offset_1, offset_2, offset_3, - offset_4); - } - } - } - } - } - } - } - } - } - } - } - - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; -}; - -// Specializations for tag type -template <typename RP, typename Functor, typename Tag> -struct apply_impl<5, RP, Functor, Tag> { - using index_type = typename RP::index_type; - - __device__ apply_impl(const RP& rp_, const Functor& f_) - : m_rp(rp_), m_func(f_) {} - - static constexpr index_type max_blocks = 65535; - - inline __device__ void exec_range() const { - // LL - if (RP::inner_direction == RP::Left) { - index_type temp0 = m_rp.m_tile_end[0]; - index_type temp1 = m_rp.m_tile_end[1]; - const index_type numbl0 = (temp0 <= max_blocks ? temp0 : max_blocks); - const index_type numbl1 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl0) - : (temp1 <= max_blocks ? temp1 : max_blocks)); - - const index_type tile_id0 = blockIdx.x % numbl0; - const index_type tile_id1 = blockIdx.x / numbl0; - const index_type thr_id0 = threadIdx.x % m_rp.m_tile[0]; - const index_type thr_id1 = threadIdx.x / m_rp.m_tile[0]; - - temp0 = m_rp.m_tile_end[2]; - temp1 = m_rp.m_tile_end[3]; - const index_type numbl2 = (temp0 <= max_blocks ? temp0 : max_blocks); - const index_type numbl3 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl2) - : (temp1 <= max_blocks ? temp1 : max_blocks)); - - const index_type tile_id2 = blockIdx.y % numbl2; - const index_type tile_id3 = blockIdx.y / numbl2; - const index_type thr_id2 = threadIdx.y % m_rp.m_tile[2]; - const index_type thr_id3 = threadIdx.y / m_rp.m_tile[2]; - - for (index_type tile_id4 = blockIdx.z; tile_id4 < m_rp.m_tile_end[4]; - tile_id4 += gridDim.z) { - const index_type offset_4 = tile_id4 * m_rp.m_tile[4] + - (index_type)threadIdx.z + - (index_type)m_rp.m_lower[4]; - if (offset_4 < m_rp.m_upper[4] && threadIdx.z < m_rp.m_tile[4]) { - for (index_type l = tile_id3; l < m_rp.m_tile_end[3]; l += numbl3) { - const index_type offset_3 = - l * m_rp.m_tile[3] + thr_id3 + (index_type)m_rp.m_lower[3]; - if (offset_3 < m_rp.m_upper[3] && thr_id3 < m_rp.m_tile[3]) { - for (index_type k = tile_id2; k < m_rp.m_tile_end[2]; - k += numbl2) { - const index_type offset_2 = - k * m_rp.m_tile[2] + thr_id2 + (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && thr_id2 < m_rp.m_tile[2]) { - for (index_type j = tile_id1; j < m_rp.m_tile_end[1]; - j += numbl1) { - const index_type offset_1 = j * m_rp.m_tile[1] + thr_id1 + - (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && - thr_id1 < m_rp.m_tile[1]) { - for (index_type i = tile_id0; i < m_rp.m_tile_end[0]; - i += numbl0) { - const index_type offset_0 = i * m_rp.m_tile[0] + - thr_id0 + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && - thr_id0 < m_rp.m_tile[0]) { - m_func(Tag(), offset_0, offset_1, offset_2, offset_3, - offset_4); - } - } - } - } - } - } - } - } - } - } - } - // LR - else { - index_type temp0 = m_rp.m_tile_end[0]; - index_type temp1 = m_rp.m_tile_end[1]; - const index_type numbl1 = (temp1 <= max_blocks ? temp1 : max_blocks); - const index_type numbl0 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl1) - : (temp0 <= max_blocks ? temp0 : max_blocks)); - - const index_type tile_id0 = blockIdx.x / numbl1; - const index_type tile_id1 = blockIdx.x % numbl1; - const index_type thr_id0 = threadIdx.x / m_rp.m_tile[1]; - const index_type thr_id1 = threadIdx.x % m_rp.m_tile[1]; - - temp0 = m_rp.m_tile_end[2]; - temp1 = m_rp.m_tile_end[3]; - const index_type numbl3 = (temp1 <= max_blocks ? temp1 : max_blocks); - const index_type numbl2 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl3) - : (temp0 <= max_blocks ? temp0 : max_blocks)); - - const index_type tile_id2 = blockIdx.y / numbl3; - const index_type tile_id3 = blockIdx.y % numbl3; - const index_type thr_id2 = threadIdx.y / m_rp.m_tile[3]; - const index_type thr_id3 = threadIdx.y % m_rp.m_tile[3]; - - for (index_type i = tile_id0; i < m_rp.m_tile_end[0]; i += numbl0) { - const index_type offset_0 = - i * m_rp.m_tile[0] + thr_id0 + (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && thr_id0 < m_rp.m_tile[0]) { - for (index_type j = tile_id1; j < m_rp.m_tile_end[1]; j += numbl1) { - const index_type offset_1 = - j * m_rp.m_tile[1] + thr_id1 + (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && thr_id1 < m_rp.m_tile[1]) { - for (index_type k = tile_id2; k < m_rp.m_tile_end[2]; - k += numbl2) { - const index_type offset_2 = - k * m_rp.m_tile[2] + thr_id2 + (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && thr_id2 < m_rp.m_tile[2]) { - for (index_type l = tile_id3; l < m_rp.m_tile_end[3]; - l += numbl3) { - const index_type offset_3 = l * m_rp.m_tile[3] + thr_id3 + - (index_type)m_rp.m_lower[3]; - if (offset_3 < m_rp.m_upper[3] && - thr_id3 < m_rp.m_tile[3]) { - for (index_type tile_id4 = blockIdx.z; - tile_id4 < m_rp.m_tile_end[4]; - tile_id4 += gridDim.z) { - const index_type offset_4 = tile_id4 * m_rp.m_tile[4] + - (index_type)threadIdx.z + - (index_type)m_rp.m_lower[4]; - if (offset_4 < m_rp.m_upper[4] && - threadIdx.z < m_rp.m_tile[4]) { - m_func(Tag(), offset_0, offset_1, offset_2, offset_3, - offset_4); - } - } - } - } - } - } - } - } - } - } - } - - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; -}; - -// Rank 6 -// Specializations for void tag type -template <typename RP, typename Functor> -struct apply_impl<6, RP, Functor, void> { - using index_type = typename RP::index_type; - - __device__ apply_impl(const RP& rp_, const Functor& f_) - : m_rp(rp_), m_func(f_) {} - - static constexpr index_type max_blocks = 65535; - - inline __device__ void exec_range() const { - // LL - if (RP::inner_direction == RP::Left) { - index_type temp0 = m_rp.m_tile_end[0]; - index_type temp1 = m_rp.m_tile_end[1]; - const index_type numbl0 = (temp0 <= max_blocks ? temp0 : max_blocks); - const index_type numbl1 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl0) - : (temp1 <= max_blocks ? temp1 : max_blocks)); - - const index_type tile_id0 = blockIdx.x % numbl0; - const index_type tile_id1 = blockIdx.x / numbl0; - const index_type thr_id0 = threadIdx.x % m_rp.m_tile[0]; - const index_type thr_id1 = threadIdx.x / m_rp.m_tile[0]; - - temp0 = m_rp.m_tile_end[2]; - temp1 = m_rp.m_tile_end[3]; - const index_type numbl2 = (temp0 <= max_blocks ? temp0 : max_blocks); - const index_type numbl3 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl2) - : (temp1 <= max_blocks ? temp1 : max_blocks)); - - const index_type tile_id2 = blockIdx.y % numbl2; - const index_type tile_id3 = blockIdx.y / numbl2; - const index_type thr_id2 = threadIdx.y % m_rp.m_tile[2]; - const index_type thr_id3 = threadIdx.y / m_rp.m_tile[2]; - - temp0 = m_rp.m_tile_end[4]; - temp1 = m_rp.m_tile_end[5]; - const index_type numbl4 = (temp0 <= max_blocks ? temp0 : max_blocks); - const index_type numbl5 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl4) - : (temp1 <= max_blocks ? temp1 : max_blocks)); - - const index_type tile_id4 = blockIdx.z % numbl4; - const index_type tile_id5 = blockIdx.z / numbl4; - const index_type thr_id4 = threadIdx.z % m_rp.m_tile[4]; - const index_type thr_id5 = threadIdx.z / m_rp.m_tile[4]; - - for (index_type n = tile_id5; n < m_rp.m_tile_end[5]; n += numbl5) { - const index_type offset_5 = - n * m_rp.m_tile[5] + thr_id5 + (index_type)m_rp.m_lower[5]; - if (offset_5 < m_rp.m_upper[5] && thr_id5 < m_rp.m_tile[5]) { - for (index_type m = tile_id4; m < m_rp.m_tile_end[4]; m += numbl4) { - const index_type offset_4 = - m * m_rp.m_tile[4] + thr_id4 + (index_type)m_rp.m_lower[4]; - if (offset_4 < m_rp.m_upper[4] && thr_id4 < m_rp.m_tile[4]) { - for (index_type l = tile_id3; l < m_rp.m_tile_end[3]; - l += numbl3) { - const index_type offset_3 = - l * m_rp.m_tile[3] + thr_id3 + (index_type)m_rp.m_lower[3]; - if (offset_3 < m_rp.m_upper[3] && thr_id3 < m_rp.m_tile[3]) { - for (index_type k = tile_id2; k < m_rp.m_tile_end[2]; - k += numbl2) { - const index_type offset_2 = k * m_rp.m_tile[2] + thr_id2 + - (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && - thr_id2 < m_rp.m_tile[2]) { - for (index_type j = tile_id1; j < m_rp.m_tile_end[1]; - j += numbl1) { - const index_type offset_1 = j * m_rp.m_tile[1] + - thr_id1 + - (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && - thr_id1 < m_rp.m_tile[1]) { - for (index_type i = tile_id0; i < m_rp.m_tile_end[0]; - i += numbl0) { - const index_type offset_0 = - i * m_rp.m_tile[0] + thr_id0 + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && - thr_id0 < m_rp.m_tile[0]) { - m_func(offset_0, offset_1, offset_2, offset_3, - offset_4, offset_5); - } - } - } - } - } - } - } - } - } - } - } - } - } - // LR - else { - index_type temp0 = m_rp.m_tile_end[0]; - index_type temp1 = m_rp.m_tile_end[1]; - const index_type numbl1 = (temp1 <= max_blocks ? temp1 : max_blocks); - const index_type numbl0 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl1) - : (temp0 <= max_blocks ? temp0 : max_blocks)); - - const index_type tile_id0 = blockIdx.x / numbl1; - const index_type tile_id1 = blockIdx.x % numbl1; - const index_type thr_id0 = threadIdx.x / m_rp.m_tile[1]; - const index_type thr_id1 = threadIdx.x % m_rp.m_tile[1]; - - temp0 = m_rp.m_tile_end[2]; - temp1 = m_rp.m_tile_end[3]; - const index_type numbl3 = (temp1 <= max_blocks ? temp1 : max_blocks); - const index_type numbl2 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl3) - : (temp0 <= max_blocks ? temp0 : max_blocks)); - - const index_type tile_id2 = blockIdx.y / numbl3; - const index_type tile_id3 = blockIdx.y % numbl3; - const index_type thr_id2 = threadIdx.y / m_rp.m_tile[3]; - const index_type thr_id3 = threadIdx.y % m_rp.m_tile[3]; - - temp0 = m_rp.m_tile_end[4]; - temp1 = m_rp.m_tile_end[5]; - const index_type numbl5 = (temp1 <= max_blocks ? temp1 : max_blocks); - const index_type numbl4 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl5) - : (temp0 <= max_blocks ? temp0 : max_blocks)); - - const index_type tile_id4 = blockIdx.z / numbl5; - const index_type tile_id5 = blockIdx.z % numbl5; - const index_type thr_id4 = threadIdx.z / m_rp.m_tile[5]; - const index_type thr_id5 = threadIdx.z % m_rp.m_tile[5]; - - for (index_type i = tile_id0; i < m_rp.m_tile_end[0]; i += numbl0) { - const index_type offset_0 = - i * m_rp.m_tile[0] + thr_id0 + (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && thr_id0 < m_rp.m_tile[0]) { - for (index_type j = tile_id1; j < m_rp.m_tile_end[1]; j += numbl1) { - const index_type offset_1 = - j * m_rp.m_tile[1] + thr_id1 + (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && thr_id1 < m_rp.m_tile[1]) { - for (index_type k = tile_id2; k < m_rp.m_tile_end[2]; - k += numbl2) { - const index_type offset_2 = - k * m_rp.m_tile[2] + thr_id2 + (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && thr_id2 < m_rp.m_tile[2]) { - for (index_type l = tile_id3; l < m_rp.m_tile_end[3]; - l += numbl3) { - const index_type offset_3 = l * m_rp.m_tile[3] + thr_id3 + - (index_type)m_rp.m_lower[3]; - if (offset_3 < m_rp.m_upper[3] && - thr_id3 < m_rp.m_tile[3]) { - for (index_type m = tile_id4; m < m_rp.m_tile_end[4]; - m += numbl4) { - const index_type offset_4 = m * m_rp.m_tile[4] + - thr_id4 + - (index_type)m_rp.m_lower[4]; - if (offset_4 < m_rp.m_upper[4] && - thr_id4 < m_rp.m_tile[4]) { - for (index_type n = tile_id5; n < m_rp.m_tile_end[5]; - n += numbl5) { - const index_type offset_5 = - n * m_rp.m_tile[5] + thr_id5 + - (index_type)m_rp.m_lower[5]; - if (offset_5 < m_rp.m_upper[5] && - thr_id5 < m_rp.m_tile[5]) { - m_func(offset_0, offset_1, offset_2, offset_3, - offset_4, offset_5); - } - } - } - } - } - } - } - } - } - } - } - } - } - - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; -}; - -// Specializations for tag type -template <typename RP, typename Functor, typename Tag> -struct apply_impl<6, RP, Functor, Tag> { - using index_type = typename RP::index_type; - - __device__ apply_impl(const RP& rp_, const Functor& f_) - : m_rp(rp_), m_func(f_) {} - - static constexpr index_type max_blocks = 65535; - - inline __device__ void exec_range() const { - // LL - if (RP::inner_direction == RP::Left) { - index_type temp0 = m_rp.m_tile_end[0]; - index_type temp1 = m_rp.m_tile_end[1]; - const index_type numbl0 = (temp0 <= max_blocks ? temp0 : max_blocks); - const index_type numbl1 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl0) - : (temp1 <= max_blocks ? temp1 : max_blocks)); - - const index_type tile_id0 = blockIdx.x % numbl0; - const index_type tile_id1 = blockIdx.x / numbl0; - const index_type thr_id0 = threadIdx.x % m_rp.m_tile[0]; - const index_type thr_id1 = threadIdx.x / m_rp.m_tile[0]; - - temp0 = m_rp.m_tile_end[2]; - temp1 = m_rp.m_tile_end[3]; - const index_type numbl2 = (temp0 <= max_blocks ? temp0 : max_blocks); - const index_type numbl3 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl2) - : (temp1 <= max_blocks ? temp1 : max_blocks)); - - const index_type tile_id2 = blockIdx.y % numbl2; - const index_type tile_id3 = blockIdx.y / numbl2; - const index_type thr_id2 = threadIdx.y % m_rp.m_tile[2]; - const index_type thr_id3 = threadIdx.y / m_rp.m_tile[2]; - - temp0 = m_rp.m_tile_end[4]; - temp1 = m_rp.m_tile_end[5]; - const index_type numbl4 = (temp0 <= max_blocks ? temp0 : max_blocks); - const index_type numbl5 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl4) - : (temp1 <= max_blocks ? temp1 : max_blocks)); - - const index_type tile_id4 = blockIdx.z % numbl4; - const index_type tile_id5 = blockIdx.z / numbl4; - const index_type thr_id4 = threadIdx.z % m_rp.m_tile[4]; - const index_type thr_id5 = threadIdx.z / m_rp.m_tile[4]; - - for (index_type n = tile_id5; n < m_rp.m_tile_end[5]; n += numbl5) { - const index_type offset_5 = - n * m_rp.m_tile[5] + thr_id5 + (index_type)m_rp.m_lower[5]; - if (offset_5 < m_rp.m_upper[5] && thr_id5 < m_rp.m_tile[5]) { - for (index_type m = tile_id4; m < m_rp.m_tile_end[4]; m += numbl4) { - const index_type offset_4 = - m * m_rp.m_tile[4] + thr_id4 + (index_type)m_rp.m_lower[4]; - if (offset_4 < m_rp.m_upper[4] && thr_id4 < m_rp.m_tile[4]) { - for (index_type l = tile_id3; l < m_rp.m_tile_end[3]; - l += numbl3) { - const index_type offset_3 = - l * m_rp.m_tile[3] + thr_id3 + (index_type)m_rp.m_lower[3]; - if (offset_3 < m_rp.m_upper[3] && thr_id3 < m_rp.m_tile[3]) { - for (index_type k = tile_id2; k < m_rp.m_tile_end[2]; - k += numbl2) { - const index_type offset_2 = k * m_rp.m_tile[2] + thr_id2 + - (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && - thr_id2 < m_rp.m_tile[2]) { - for (index_type j = tile_id1; j < m_rp.m_tile_end[1]; - j += numbl1) { - const index_type offset_1 = j * m_rp.m_tile[1] + - thr_id1 + - (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && - thr_id1 < m_rp.m_tile[1]) { - for (index_type i = tile_id0; i < m_rp.m_tile_end[0]; - i += numbl0) { - const index_type offset_0 = - i * m_rp.m_tile[0] + thr_id0 + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && - thr_id0 < m_rp.m_tile[0]) { - m_func(Tag(), offset_0, offset_1, offset_2, - offset_3, offset_4, offset_5); - } - } - } - } - } - } - } - } - } - } - } - } - } - // LR - else { - index_type temp0 = m_rp.m_tile_end[0]; - index_type temp1 = m_rp.m_tile_end[1]; - const index_type numbl1 = (temp1 <= max_blocks ? temp1 : max_blocks); - const index_type numbl0 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl1) - : (temp0 <= max_blocks ? temp0 : max_blocks)); - - const index_type tile_id0 = blockIdx.x / numbl1; - const index_type tile_id1 = blockIdx.x % numbl1; - const index_type thr_id0 = threadIdx.x / m_rp.m_tile[1]; - const index_type thr_id1 = threadIdx.x % m_rp.m_tile[1]; - - temp0 = m_rp.m_tile_end[2]; - temp1 = m_rp.m_tile_end[3]; - const index_type numbl3 = (temp1 <= max_blocks ? temp1 : max_blocks); - const index_type numbl2 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl3) - : (temp0 <= max_blocks ? temp0 : max_blocks)); - - const index_type tile_id2 = blockIdx.y / numbl3; - const index_type tile_id3 = blockIdx.y % numbl3; - const index_type thr_id2 = threadIdx.y / m_rp.m_tile[3]; - const index_type thr_id3 = threadIdx.y % m_rp.m_tile[3]; - - temp0 = m_rp.m_tile_end[4]; - temp1 = m_rp.m_tile_end[5]; - const index_type numbl5 = (temp1 <= max_blocks ? temp1 : max_blocks); - const index_type numbl4 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl5) - : (temp0 <= max_blocks ? temp0 : max_blocks)); - - const index_type tile_id4 = blockIdx.z / numbl5; - const index_type tile_id5 = blockIdx.z % numbl5; - const index_type thr_id4 = threadIdx.z / m_rp.m_tile[5]; - const index_type thr_id5 = threadIdx.z % m_rp.m_tile[5]; - - for (index_type i = tile_id0; i < m_rp.m_tile_end[0]; i += numbl0) { - const index_type offset_0 = - i * m_rp.m_tile[0] + thr_id0 + (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && thr_id0 < m_rp.m_tile[0]) { - for (index_type j = tile_id1; j < m_rp.m_tile_end[1]; j += numbl1) { - const index_type offset_1 = - j * m_rp.m_tile[1] + thr_id1 + (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && thr_id1 < m_rp.m_tile[1]) { - for (index_type k = tile_id2; k < m_rp.m_tile_end[2]; - k += numbl2) { - const index_type offset_2 = - k * m_rp.m_tile[2] + thr_id2 + (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && thr_id2 < m_rp.m_tile[2]) { - for (index_type l = tile_id3; l < m_rp.m_tile_end[3]; - l += numbl3) { - const index_type offset_3 = l * m_rp.m_tile[3] + thr_id3 + - (index_type)m_rp.m_lower[3]; - if (offset_3 < m_rp.m_upper[3] && - thr_id3 < m_rp.m_tile[3]) { - for (index_type m = tile_id4; m < m_rp.m_tile_end[4]; - m += numbl4) { - const index_type offset_4 = m * m_rp.m_tile[4] + - thr_id4 + - (index_type)m_rp.m_lower[4]; - if (offset_4 < m_rp.m_upper[4] && - thr_id4 < m_rp.m_tile[4]) { - for (index_type n = tile_id5; n < m_rp.m_tile_end[5]; - n += numbl5) { - const index_type offset_5 = - n * m_rp.m_tile[5] + thr_id5 + - (index_type)m_rp.m_lower[5]; - if (offset_5 < m_rp.m_upper[5] && - thr_id5 < m_rp.m_tile[5]) { - m_func(Tag(), offset_0, offset_1, offset_2, - offset_3, offset_4, offset_5); - } - } - } - } - } - } - } - } - } - } - } - } - } - - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; -}; - -// ---------------------------------------------------------------------------------- - -template <typename RP, typename Functor, typename Tag> -struct DeviceIterateTile { - using index_type = typename RP::index_type; - using array_index_type = typename RP::array_index_type; - using point_type = typename RP::point_type; - - struct VoidDummy {}; - typedef typename std::conditional<std::is_same<Tag, void>::value, VoidDummy, - Tag>::type usable_tag; - - DeviceIterateTile(const RP& rp, const Functor& func) - : m_rp{rp}, m_func{func} {} - - private: - inline __device__ void apply() const { - apply_impl<RP::rank, RP, Functor, Tag>(m_rp, m_func).exec_range(); - } // end apply - - public: - inline __device__ void operator()(void) const { this->apply(); } - - inline void execute() const { - const array_index_type maxblocks = - 65535; // not true for blockIdx.x for newer archs - if (RP::rank == 2) { - const dim3 block(m_rp.m_tile[0], m_rp.m_tile[1], 1); - const dim3 grid( - std::min((m_rp.m_upper[0] - m_rp.m_lower[0] + block.x - 1) / block.x, - maxblocks), - std::min((m_rp.m_upper[1] - m_rp.m_lower[1] + block.y - 1) / block.y, - maxblocks), - 1); - CudaLaunch<DeviceIterateTile>(*this, grid, block); - } else if (RP::rank == 3) { - const dim3 block(m_rp.m_tile[0], m_rp.m_tile[1], m_rp.m_tile[2]); - const dim3 grid( - std::min((m_rp.m_upper[0] - m_rp.m_lower[0] + block.x - 1) / block.x, - maxblocks), - std::min((m_rp.m_upper[1] - m_rp.m_lower[1] + block.y - 1) / block.y, - maxblocks), - std::min((m_rp.m_upper[2] - m_rp.m_lower[2] + block.z - 1) / block.z, - maxblocks)); - CudaLaunch<DeviceIterateTile>(*this, grid, block); - } else if (RP::rank == 4) { - // id0,id1 encoded within threadIdx.x; id2 to threadIdx.y; id3 to - // threadIdx.z - const dim3 block(m_rp.m_tile[0] * m_rp.m_tile[1], m_rp.m_tile[2], - m_rp.m_tile[3]); - const dim3 grid( - std::min( - static_cast<index_type>(m_rp.m_tile_end[0] * m_rp.m_tile_end[1]), - static_cast<index_type>(maxblocks)), - std::min((m_rp.m_upper[2] - m_rp.m_lower[2] + block.y - 1) / block.y, - maxblocks), - std::min((m_rp.m_upper[3] - m_rp.m_lower[3] + block.z - 1) / block.z, - maxblocks)); - CudaLaunch<DeviceIterateTile>(*this, grid, block); - } else if (RP::rank == 5) { - // id0,id1 encoded within threadIdx.x; id2,id3 to threadIdx.y; id4 to - // threadIdx.z - const dim3 block(m_rp.m_tile[0] * m_rp.m_tile[1], - m_rp.m_tile[2] * m_rp.m_tile[3], m_rp.m_tile[4]); - const dim3 grid( - std::min( - static_cast<index_type>(m_rp.m_tile_end[0] * m_rp.m_tile_end[1]), - static_cast<index_type>(maxblocks)), - std::min( - static_cast<index_type>(m_rp.m_tile_end[2] * m_rp.m_tile_end[3]), - static_cast<index_type>(maxblocks)), - std::min((m_rp.m_upper[4] - m_rp.m_lower[4] + block.z - 1) / block.z, - maxblocks)); - CudaLaunch<DeviceIterateTile>(*this, grid, block); - } else if (RP::rank == 6) { - // id0,id1 encoded within threadIdx.x; id2,id3 to threadIdx.y; id4,id5 to - // threadIdx.z - const dim3 block(m_rp.m_tile[0] * m_rp.m_tile[1], - m_rp.m_tile[2] * m_rp.m_tile[3], - m_rp.m_tile[4] * m_rp.m_tile[5]); - const dim3 grid( - std::min( - static_cast<index_type>(m_rp.m_tile_end[0] * m_rp.m_tile_end[1]), - static_cast<index_type>(maxblocks)), - std::min( - static_cast<index_type>(m_rp.m_tile_end[2] * m_rp.m_tile_end[3]), - static_cast<index_type>(maxblocks)), - std::min( - static_cast<index_type>(m_rp.m_tile_end[4] * m_rp.m_tile_end[5]), - static_cast<index_type>(maxblocks))); - CudaLaunch<DeviceIterateTile>(*this, grid, block); - } else { - printf("Kokkos::MDRange Error: Exceeded rank bounds with Cuda\n"); - Kokkos::abort("Aborting"); - } - - } // end execute - - protected: - const RP m_rp; - const Functor m_func; -}; - -} // namespace Impl -} // namespace Kokkos - -#endif -#endif diff --git a/packages/kokkos/core/src/Cuda/KokkosExp_Cuda_IterateTile_Refactor.hpp b/packages/kokkos/core/src/Cuda/KokkosExp_Cuda_IterateTile_Refactor.hpp deleted file mode 100644 index cb7f5971a..000000000 --- a/packages/kokkos/core/src/Cuda/KokkosExp_Cuda_IterateTile_Refactor.hpp +++ /dev/null @@ -1,3067 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#ifndef KOKKOS_CUDA_EXP_ITERATE_TILE_REFACTOR_HPP -#define KOKKOS_CUDA_EXP_ITERATE_TILE_REFACTOR_HPP - -#include <Kokkos_Macros.hpp> -#if defined(__CUDACC__) && defined(KOKKOS_ENABLE_CUDA) - -#include <iostream> -#include <algorithm> -#include <cstdio> - -#include <utility> - -// #include<Cuda/Kokkos_CudaExec.hpp> -// Including the file above leads to following type of errors: -// /home/ndellin/kokkos/core/src/Cuda/Kokkos_CudaExec.hpp(84): error: incomplete -// type is not allowed use existing Kokkos functionality, e.g. max blocks, once -// resolved - -#if defined(KOKKOS_ENABLE_PROFILING) -#include <impl/Kokkos_Profiling_Interface.hpp> -#include <typeinfo> -#endif - -namespace Kokkos { -namespace Impl { - -namespace Refactor { - -// ------------------------------------------------------------------ // -// ParallelFor iteration pattern -template <int N, typename RP, typename Functor, typename Tag> -struct DeviceIterateTile; - -// Rank 2 -// Specializations for void tag type -template <typename RP, typename Functor> -struct DeviceIterateTile<2, RP, Functor, void> { - using index_type = typename RP::index_type; - - __device__ DeviceIterateTile(const RP& rp_, const Functor& f_) - : m_rp(rp_), m_func(f_) {} - - inline __device__ void exec_range() const { - // LL - if (RP::inner_direction == RP::Left) { - for (index_type tile_id1 = (index_type)blockIdx.y; - tile_id1 < m_rp.m_tile_end[1]; tile_id1 += gridDim.y) { - const index_type offset_1 = tile_id1 * m_rp.m_tile[1] + - (index_type)threadIdx.y + - (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && - (index_type)threadIdx.y < m_rp.m_tile[1]) { - for (index_type tile_id0 = (index_type)blockIdx.x; - tile_id0 < m_rp.m_tile_end[0]; tile_id0 += gridDim.x) { - const index_type offset_0 = tile_id0 * m_rp.m_tile[0] + - (index_type)threadIdx.x + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && - (index_type)threadIdx.x < m_rp.m_tile[0]) { - m_func(offset_0, offset_1); - } - } - } - } - } - // LR - else { - for (index_type tile_id0 = (index_type)blockIdx.x; - tile_id0 < m_rp.m_tile_end[0]; tile_id0 += gridDim.x) { - const index_type offset_0 = tile_id0 * m_rp.m_tile[0] + - (index_type)threadIdx.x + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && - (index_type)threadIdx.x < m_rp.m_tile[0]) { - for (index_type tile_id1 = (index_type)blockIdx.y; - tile_id1 < m_rp.m_tile_end[1]; tile_id1 += gridDim.y) { - const index_type offset_1 = tile_id1 * m_rp.m_tile[1] + - (index_type)threadIdx.y + - (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && - (index_type)threadIdx.y < m_rp.m_tile[1]) { - m_func(offset_0, offset_1); - } - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; -}; - -// Specializations for tag type -template <typename RP, typename Functor, typename Tag> -struct DeviceIterateTile<2, RP, Functor, Tag> { - using index_type = typename RP::index_type; - - inline __device__ DeviceIterateTile(const RP& rp_, const Functor& f_) - : m_rp(rp_), m_func(f_) {} - - inline __device__ void exec_range() const { - if (RP::inner_direction == RP::Left) { - // Loop over size maxnumblocks until full range covered - for (index_type tile_id1 = (index_type)blockIdx.y; - tile_id1 < m_rp.m_tile_end[1]; tile_id1 += gridDim.y) { - const index_type offset_1 = tile_id1 * m_rp.m_tile[1] + - (index_type)threadIdx.y + - (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && - (index_type)threadIdx.y < m_rp.m_tile[1]) { - for (index_type tile_id0 = (index_type)blockIdx.x; - tile_id0 < m_rp.m_tile_end[0]; tile_id0 += gridDim.x) { - const index_type offset_0 = tile_id0 * m_rp.m_tile[0] + - (index_type)threadIdx.x + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && - (index_type)threadIdx.x < m_rp.m_tile[0]) { - m_func(Tag(), offset_0, offset_1); - } - } - } - } - } else { - for (index_type tile_id0 = (index_type)blockIdx.x; - tile_id0 < m_rp.m_tile_end[0]; tile_id0 += gridDim.x) { - const index_type offset_0 = tile_id0 * m_rp.m_tile[0] + - (index_type)threadIdx.x + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && - (index_type)threadIdx.x < m_rp.m_tile[0]) { - for (index_type tile_id1 = (index_type)blockIdx.y; - tile_id1 < m_rp.m_tile_end[1]; tile_id1 += gridDim.y) { - const index_type offset_1 = tile_id1 * m_rp.m_tile[1] + - (index_type)threadIdx.y + - (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && - (index_type)threadIdx.y < m_rp.m_tile[1]) { - m_func(Tag(), offset_0, offset_1); - } - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; -}; - -// Rank 3 -// Specializations for void tag type -template <typename RP, typename Functor> -struct DeviceIterateTile<3, RP, Functor, void> { - using index_type = typename RP::index_type; - - __device__ DeviceIterateTile(const RP& rp_, const Functor& f_) - : m_rp(rp_), m_func(f_) {} - - inline __device__ void exec_range() const { - // LL - if (RP::inner_direction == RP::Left) { - for (index_type tile_id2 = (index_type)blockIdx.z; - tile_id2 < m_rp.m_tile_end[2]; tile_id2 += gridDim.z) { - const index_type offset_2 = tile_id2 * m_rp.m_tile[2] + - (index_type)threadIdx.z + - (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && - (index_type)threadIdx.z < m_rp.m_tile[2]) { - for (index_type tile_id1 = (index_type)blockIdx.y; - tile_id1 < m_rp.m_tile_end[1]; tile_id1 += gridDim.y) { - const index_type offset_1 = tile_id1 * m_rp.m_tile[1] + - (index_type)threadIdx.y + - (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && - (index_type)threadIdx.y < m_rp.m_tile[1]) { - for (index_type tile_id0 = (index_type)blockIdx.x; - tile_id0 < m_rp.m_tile_end[0]; tile_id0 += gridDim.x) { - const index_type offset_0 = tile_id0 * m_rp.m_tile[0] + - (index_type)threadIdx.x + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && - (index_type)threadIdx.x < m_rp.m_tile[0]) { - m_func(offset_0, offset_1, offset_2); - } - } - } - } - } - } - } - // LR - else { - for (index_type tile_id0 = (index_type)blockIdx.x; - tile_id0 < m_rp.m_tile_end[0]; tile_id0 += gridDim.x) { - const index_type offset_0 = tile_id0 * m_rp.m_tile[0] + - (index_type)threadIdx.x + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && - (index_type)threadIdx.x < m_rp.m_tile[0]) { - for (index_type tile_id1 = (index_type)blockIdx.y; - tile_id1 < m_rp.m_tile_end[1]; tile_id1 += gridDim.y) { - const index_type offset_1 = tile_id1 * m_rp.m_tile[1] + - (index_type)threadIdx.y + - (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && - (index_type)threadIdx.y < m_rp.m_tile[1]) { - for (index_type tile_id2 = (index_type)blockIdx.z; - tile_id2 < m_rp.m_tile_end[2]; tile_id2 += gridDim.z) { - const index_type offset_2 = tile_id2 * m_rp.m_tile[2] + - (index_type)threadIdx.z + - (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && - (index_type)threadIdx.z < m_rp.m_tile[2]) { - m_func(offset_0, offset_1, offset_2); - } - } - } - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; -}; - -// Specializations for void tag type -template <typename RP, typename Functor, typename Tag> -struct DeviceIterateTile<3, RP, Functor, Tag> { - using index_type = typename RP::index_type; - - inline __device__ DeviceIterateTile(const RP& rp_, const Functor& f_) - : m_rp(rp_), m_func(f_) {} - - inline __device__ void exec_range() const { - if (RP::inner_direction == RP::Left) { - for (index_type tile_id2 = (index_type)blockIdx.z; - tile_id2 < m_rp.m_tile_end[2]; tile_id2 += gridDim.z) { - const index_type offset_2 = tile_id2 * m_rp.m_tile[2] + - (index_type)threadIdx.z + - (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && - (index_type)threadIdx.z < m_rp.m_tile[2]) { - for (index_type tile_id1 = (index_type)blockIdx.y; - tile_id1 < m_rp.m_tile_end[1]; tile_id1 += gridDim.y) { - const index_type offset_1 = tile_id1 * m_rp.m_tile[1] + - (index_type)threadIdx.y + - (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && - (index_type)threadIdx.y < m_rp.m_tile[1]) { - for (index_type tile_id0 = (index_type)blockIdx.x; - tile_id0 < m_rp.m_tile_end[0]; tile_id0 += gridDim.x) { - const index_type offset_0 = tile_id0 * m_rp.m_tile[0] + - (index_type)threadIdx.x + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && - (index_type)threadIdx.x < m_rp.m_tile[0]) { - m_func(Tag(), offset_0, offset_1, offset_2); - } - } - } - } - } - } - } else { - for (index_type tile_id0 = (index_type)blockIdx.x; - tile_id0 < m_rp.m_tile_end[0]; tile_id0 += gridDim.x) { - const index_type offset_0 = tile_id0 * m_rp.m_tile[0] + - (index_type)threadIdx.x + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && - (index_type)threadIdx.x < m_rp.m_tile[0]) { - for (index_type tile_id1 = (index_type)blockIdx.y; - tile_id1 < m_rp.m_tile_end[1]; tile_id1 += gridDim.y) { - const index_type offset_1 = tile_id1 * m_rp.m_tile[1] + - (index_type)threadIdx.y + - (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && - (index_type)threadIdx.y < m_rp.m_tile[1]) { - for (index_type tile_id2 = (index_type)blockIdx.z; - tile_id2 < m_rp.m_tile_end[2]; tile_id2 += gridDim.z) { - const index_type offset_2 = tile_id2 * m_rp.m_tile[2] + - (index_type)threadIdx.z + - (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && - (index_type)threadIdx.z < m_rp.m_tile[2]) { - m_func(Tag(), offset_0, offset_1, offset_2); - } - } - } - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; -}; - -// Rank 4 -// Specializations for void tag type -template <typename RP, typename Functor> -struct DeviceIterateTile<4, RP, Functor, void> { - using index_type = typename RP::index_type; - - __device__ DeviceIterateTile(const RP& rp_, const Functor& f_) - : m_rp(rp_), m_func(f_) {} - - static constexpr index_type max_blocks = 65535; - // static constexpr index_type max_blocks = - // static_cast<index_type>(Kokkos::Impl::CudaTraits::UpperBoundGridCount); - - inline __device__ void exec_range() const { - // enum { max_blocks = - // static_cast<index_type>(Kokkos::Impl::CudaTraits::UpperBoundGridCount) }; - // const index_type max_blocks = static_cast<index_type>( - // Kokkos::Impl::cuda_internal_maximum_grid_count() ); - // LL - if (RP::inner_direction == RP::Left) { - const index_type temp0 = m_rp.m_tile_end[0]; - const index_type temp1 = m_rp.m_tile_end[1]; - const index_type numbl0 = (temp0 <= max_blocks ? temp0 : max_blocks); - const index_type numbl1 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl0) - : (temp1 <= max_blocks ? temp1 : max_blocks)); - - const index_type tile_id0 = (index_type)blockIdx.x % numbl0; - const index_type tile_id1 = (index_type)blockIdx.x / numbl0; - const index_type thr_id0 = (index_type)threadIdx.x % m_rp.m_tile[0]; - const index_type thr_id1 = (index_type)threadIdx.x / m_rp.m_tile[0]; - - for (index_type tile_id3 = (index_type)blockIdx.z; - tile_id3 < m_rp.m_tile_end[3]; tile_id3 += gridDim.z) { - const index_type offset_3 = tile_id3 * m_rp.m_tile[3] + - (index_type)threadIdx.z + - (index_type)m_rp.m_lower[3]; - if (offset_3 < m_rp.m_upper[3] && - (index_type)threadIdx.z < m_rp.m_tile[3]) { - for (index_type tile_id2 = (index_type)blockIdx.y; - tile_id2 < m_rp.m_tile_end[2]; tile_id2 += gridDim.y) { - const index_type offset_2 = tile_id2 * m_rp.m_tile[2] + - (index_type)threadIdx.y + - (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && - (index_type)threadIdx.y < m_rp.m_tile[2]) { - for (index_type j = tile_id1; j < m_rp.m_tile_end[1]; - j += numbl1) { - const index_type offset_1 = - j * m_rp.m_tile[1] + thr_id1 + (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && thr_id1 < m_rp.m_tile[1]) { - for (index_type i = tile_id0; i < m_rp.m_tile_end[0]; - i += numbl0) { - const index_type offset_0 = i * m_rp.m_tile[0] + thr_id0 + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && - thr_id0 < m_rp.m_tile[0]) { - m_func(offset_0, offset_1, offset_2, offset_3); - } - } - } - } - } - } - } - } - } - // LR - else { - const index_type temp0 = m_rp.m_tile_end[0]; - const index_type temp1 = m_rp.m_tile_end[1]; - const index_type numbl1 = (temp1 <= max_blocks ? temp1 : max_blocks); - const index_type numbl0 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl1) - : (temp0 <= max_blocks ? temp0 : max_blocks)); - - const index_type tile_id0 = (index_type)blockIdx.x / numbl1; - const index_type tile_id1 = (index_type)blockIdx.x % numbl1; - const index_type thr_id0 = (index_type)threadIdx.x / m_rp.m_tile[1]; - const index_type thr_id1 = (index_type)threadIdx.x % m_rp.m_tile[1]; - - for (index_type i = tile_id0; i < m_rp.m_tile_end[0]; i += numbl0) { - const index_type offset_0 = - i * m_rp.m_tile[0] + thr_id0 + (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && thr_id0 < m_rp.m_tile[0]) { - for (index_type j = tile_id1; j < m_rp.m_tile_end[1]; j += numbl1) { - const index_type offset_1 = - j * m_rp.m_tile[1] + thr_id1 + (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && thr_id1 < m_rp.m_tile[1]) { - for (index_type tile_id2 = (index_type)blockIdx.y; - tile_id2 < m_rp.m_tile_end[2]; tile_id2 += gridDim.y) { - const index_type offset_2 = tile_id2 * m_rp.m_tile[2] + - (index_type)threadIdx.y + - (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && - (index_type)threadIdx.y < m_rp.m_tile[2]) { - for (index_type tile_id3 = (index_type)blockIdx.z; - tile_id3 < m_rp.m_tile_end[3]; tile_id3 += gridDim.z) { - const index_type offset_3 = tile_id3 * m_rp.m_tile[3] + - (index_type)threadIdx.z + - (index_type)m_rp.m_lower[3]; - if (offset_3 < m_rp.m_upper[3] && - (index_type)threadIdx.z < m_rp.m_tile[3]) { - m_func(offset_0, offset_1, offset_2, offset_3); - } - } - } - } - } - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; -}; - -// Specializations for void tag type -template <typename RP, typename Functor, typename Tag> -struct DeviceIterateTile<4, RP, Functor, Tag> { - using index_type = typename RP::index_type; - - inline __device__ DeviceIterateTile(const RP& rp_, const Functor& f_) - : m_rp(rp_), m_func(f_) {} - - static constexpr index_type max_blocks = 65535; - // static constexpr index_type max_blocks = - // static_cast<index_type>(Kokkos::Impl::CudaTraits::UpperBoundGridCount); - - inline __device__ void exec_range() const { - // enum { max_blocks = - // static_cast<index_type>(Kokkos::Impl::CudaTraits::UpperBoundGridCount) }; - // const index_type max_blocks = static_cast<index_type>( - // Kokkos::Impl::cuda_internal_maximum_grid_count() ); - if (RP::inner_direction == RP::Left) { - const index_type temp0 = m_rp.m_tile_end[0]; - const index_type temp1 = m_rp.m_tile_end[1]; - const index_type numbl0 = (temp0 <= max_blocks ? temp0 : max_blocks); - const index_type numbl1 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl0) - : (temp1 <= max_blocks ? temp1 : max_blocks)); - - const index_type tile_id0 = (index_type)blockIdx.x % numbl0; - const index_type tile_id1 = (index_type)blockIdx.x / numbl0; - const index_type thr_id0 = (index_type)threadIdx.x % m_rp.m_tile[0]; - const index_type thr_id1 = (index_type)threadIdx.x / m_rp.m_tile[0]; - - for (index_type tile_id3 = (index_type)blockIdx.z; - tile_id3 < m_rp.m_tile_end[3]; tile_id3 += gridDim.z) { - const index_type offset_3 = tile_id3 * m_rp.m_tile[3] + - (index_type)threadIdx.z + - (index_type)m_rp.m_lower[3]; - if (offset_3 < m_rp.m_upper[3] && - (index_type)threadIdx.z < m_rp.m_tile[3]) { - for (index_type tile_id2 = (index_type)blockIdx.y; - tile_id2 < m_rp.m_tile_end[2]; tile_id2 += gridDim.y) { - const index_type offset_2 = tile_id2 * m_rp.m_tile[2] + - (index_type)threadIdx.y + - (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && - (index_type)threadIdx.y < m_rp.m_tile[2]) { - for (index_type j = tile_id1; j < m_rp.m_tile_end[1]; - j += numbl1) { - const index_type offset_1 = - j * m_rp.m_tile[1] + thr_id1 + (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && thr_id1 < m_rp.m_tile[1]) { - for (index_type i = tile_id0; i < m_rp.m_tile_end[0]; - i += numbl0) { - const index_type offset_0 = i * m_rp.m_tile[0] + thr_id0 + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && - thr_id0 < m_rp.m_tile[0]) { - m_func(Tag(), offset_0, offset_1, offset_2, offset_3); - } - } - } - } - } - } - } - } - } else { - const index_type temp0 = m_rp.m_tile_end[0]; - const index_type temp1 = m_rp.m_tile_end[1]; - const index_type numbl1 = (temp1 <= max_blocks ? temp1 : max_blocks); - const index_type numbl0 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl1) - : (temp0 <= max_blocks ? temp0 : max_blocks)); - - const index_type tile_id0 = (index_type)blockIdx.x / numbl1; - const index_type tile_id1 = (index_type)blockIdx.x % numbl1; - const index_type thr_id0 = (index_type)threadIdx.x / m_rp.m_tile[1]; - const index_type thr_id1 = (index_type)threadIdx.x % m_rp.m_tile[1]; - - for (index_type i = tile_id0; i < m_rp.m_tile_end[0]; i += numbl0) { - const index_type offset_0 = - i * m_rp.m_tile[0] + thr_id0 + (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && thr_id0 < m_rp.m_tile[0]) { - for (index_type j = tile_id1; j < m_rp.m_tile_end[1]; j += numbl1) { - const index_type offset_1 = tile_id1 * m_rp.m_tile[1] + thr_id1 + - (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && thr_id1 < m_rp.m_tile[1]) { - for (index_type tile_id2 = (index_type)blockIdx.y; - tile_id2 < m_rp.m_tile_end[2]; tile_id2 += gridDim.y) { - const index_type offset_2 = tile_id2 * m_rp.m_tile[2] + - (index_type)threadIdx.y + - (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && - (index_type)threadIdx.y < m_rp.m_tile[2]) { - for (index_type tile_id3 = (index_type)blockIdx.z; - tile_id3 < m_rp.m_tile_end[3]; tile_id3 += gridDim.z) { - const index_type offset_3 = tile_id3 * m_rp.m_tile[3] + - (index_type)threadIdx.z + - (index_type)m_rp.m_lower[3]; - if (offset_3 < m_rp.m_upper[3] && - (index_type)threadIdx.z < m_rp.m_tile[3]) { - m_func(Tag(), offset_0, offset_1, offset_2, offset_3); - } - } - } - } - } - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; -}; - -// Rank 5 -// Specializations for void tag type -template <typename RP, typename Functor> -struct DeviceIterateTile<5, RP, Functor, void> { - using index_type = typename RP::index_type; - - __device__ DeviceIterateTile(const RP& rp_, const Functor& f_) - : m_rp(rp_), m_func(f_) {} - - static constexpr index_type max_blocks = 65535; - // static constexpr index_type max_blocks = - // static_cast<index_type>(Kokkos::Impl::CudaTraits::UpperBoundGridCount); - - inline __device__ void exec_range() const { - // enum { max_blocks = - // static_cast<index_type>(Kokkos::Impl::CudaTraits::UpperBoundGridCount) }; - // const index_type max_blocks = static_cast<index_type>( - // Kokkos::Impl::cuda_internal_maximum_grid_count() ); - // LL - if (RP::inner_direction == RP::Left) { - index_type temp0 = m_rp.m_tile_end[0]; - index_type temp1 = m_rp.m_tile_end[1]; - const index_type numbl0 = (temp0 <= max_blocks ? temp0 : max_blocks); - const index_type numbl1 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl0) - : (temp1 <= max_blocks ? temp1 : max_blocks)); - - const index_type tile_id0 = (index_type)blockIdx.x % numbl0; - const index_type tile_id1 = (index_type)blockIdx.x / numbl0; - const index_type thr_id0 = (index_type)threadIdx.x % m_rp.m_tile[0]; - const index_type thr_id1 = (index_type)threadIdx.x / m_rp.m_tile[0]; - - temp0 = m_rp.m_tile_end[2]; - temp1 = m_rp.m_tile_end[3]; - const index_type numbl2 = (temp0 <= max_blocks ? temp0 : max_blocks); - const index_type numbl3 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl2) - : (temp1 <= max_blocks ? temp1 : max_blocks)); - - const index_type tile_id2 = (index_type)blockIdx.y % numbl2; - const index_type tile_id3 = (index_type)blockIdx.y / numbl2; - const index_type thr_id2 = (index_type)threadIdx.y % m_rp.m_tile[2]; - const index_type thr_id3 = (index_type)threadIdx.y / m_rp.m_tile[2]; - - for (index_type tile_id4 = (index_type)blockIdx.z; - tile_id4 < m_rp.m_tile_end[4]; tile_id4 += gridDim.z) { - const index_type offset_4 = tile_id4 * m_rp.m_tile[4] + - (index_type)threadIdx.z + - (index_type)m_rp.m_lower[4]; - if (offset_4 < m_rp.m_upper[4] && - (index_type)threadIdx.z < m_rp.m_tile[4]) { - for (index_type l = tile_id3; l < m_rp.m_tile_end[3]; l += numbl3) { - const index_type offset_3 = - l * m_rp.m_tile[3] + thr_id3 + (index_type)m_rp.m_lower[3]; - if (offset_3 < m_rp.m_upper[3] && thr_id3 < m_rp.m_tile[3]) { - for (index_type k = tile_id2; k < m_rp.m_tile_end[2]; - k += numbl2) { - const index_type offset_2 = - k * m_rp.m_tile[2] + thr_id2 + (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && thr_id2 < m_rp.m_tile[2]) { - for (index_type j = tile_id1; j < m_rp.m_tile_end[1]; - j += numbl1) { - const index_type offset_1 = j * m_rp.m_tile[1] + thr_id1 + - (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && - thr_id1 < m_rp.m_tile[1]) { - for (index_type i = tile_id0; i < m_rp.m_tile_end[0]; - i += numbl0) { - const index_type offset_0 = i * m_rp.m_tile[0] + - thr_id0 + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && - thr_id0 < m_rp.m_tile[0]) { - m_func(offset_0, offset_1, offset_2, offset_3, - offset_4); - } - } - } - } - } - } - } - } - } - } - } - // LR - else { - index_type temp0 = m_rp.m_tile_end[0]; - index_type temp1 = m_rp.m_tile_end[1]; - const index_type numbl1 = (temp1 <= max_blocks ? temp1 : max_blocks); - const index_type numbl0 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl1) - : (temp0 <= max_blocks ? temp0 : max_blocks)); - - const index_type tile_id0 = (index_type)blockIdx.x / numbl1; - const index_type tile_id1 = (index_type)blockIdx.x % numbl1; - const index_type thr_id0 = (index_type)threadIdx.x / m_rp.m_tile[1]; - const index_type thr_id1 = (index_type)threadIdx.x % m_rp.m_tile[1]; - - temp0 = m_rp.m_tile_end[2]; - temp1 = m_rp.m_tile_end[3]; - const index_type numbl3 = (temp1 <= max_blocks ? temp1 : max_blocks); - const index_type numbl2 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl3) - : (temp0 <= max_blocks ? temp0 : max_blocks)); - - const index_type tile_id2 = (index_type)blockIdx.y / numbl3; - const index_type tile_id3 = (index_type)blockIdx.y % numbl3; - const index_type thr_id2 = (index_type)threadIdx.y / m_rp.m_tile[3]; - const index_type thr_id3 = (index_type)threadIdx.y % m_rp.m_tile[3]; - - for (index_type i = tile_id0; i < m_rp.m_tile_end[0]; i += numbl0) { - const index_type offset_0 = - i * m_rp.m_tile[0] + thr_id0 + (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && thr_id0 < m_rp.m_tile[0]) { - for (index_type j = tile_id1; j < m_rp.m_tile_end[1]; j += numbl1) { - const index_type offset_1 = - j * m_rp.m_tile[1] + thr_id1 + (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && thr_id1 < m_rp.m_tile[1]) { - for (index_type k = tile_id2; k < m_rp.m_tile_end[2]; - k += numbl2) { - const index_type offset_2 = - k * m_rp.m_tile[2] + thr_id2 + (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && thr_id2 < m_rp.m_tile[2]) { - for (index_type l = tile_id3; l < m_rp.m_tile_end[3]; - l += numbl3) { - const index_type offset_3 = l * m_rp.m_tile[3] + thr_id3 + - (index_type)m_rp.m_lower[3]; - if (offset_3 < m_rp.m_upper[3] && - thr_id3 < m_rp.m_tile[3]) { - for (index_type tile_id4 = (index_type)blockIdx.z; - tile_id4 < m_rp.m_tile_end[4]; - tile_id4 += gridDim.z) { - const index_type offset_4 = tile_id4 * m_rp.m_tile[4] + - (index_type)threadIdx.z + - (index_type)m_rp.m_lower[4]; - if (offset_4 < m_rp.m_upper[4] && - (index_type)threadIdx.z < m_rp.m_tile[4]) { - m_func(offset_0, offset_1, offset_2, offset_3, - offset_4); - } - } - } - } - } - } - } - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; -}; - -// Specializations for tag type -template <typename RP, typename Functor, typename Tag> -struct DeviceIterateTile<5, RP, Functor, Tag> { - using index_type = typename RP::index_type; - - __device__ DeviceIterateTile(const RP& rp_, const Functor& f_) - : m_rp(rp_), m_func(f_) {} - - static constexpr index_type max_blocks = 65535; - // static constexpr index_type max_blocks = - // static_cast<index_type>(Kokkos::Impl::CudaTraits::UpperBoundGridCount); - - inline __device__ void exec_range() const { - // enum { max_blocks = - // static_cast<index_type>(Kokkos::Impl::CudaTraits::UpperBoundGridCount) }; - // const index_type max_blocks = static_cast<index_type>( - // Kokkos::Impl::cuda_internal_maximum_grid_count() ); - // LL - if (RP::inner_direction == RP::Left) { - index_type temp0 = m_rp.m_tile_end[0]; - index_type temp1 = m_rp.m_tile_end[1]; - const index_type numbl0 = (temp0 <= max_blocks ? temp0 : max_blocks); - const index_type numbl1 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl0) - : (temp1 <= max_blocks ? temp1 : max_blocks)); - - const index_type tile_id0 = (index_type)blockIdx.x % numbl0; - const index_type tile_id1 = (index_type)blockIdx.x / numbl0; - const index_type thr_id0 = (index_type)threadIdx.x % m_rp.m_tile[0]; - const index_type thr_id1 = (index_type)threadIdx.x / m_rp.m_tile[0]; - - temp0 = m_rp.m_tile_end[2]; - temp1 = m_rp.m_tile_end[3]; - const index_type numbl2 = (temp0 <= max_blocks ? temp0 : max_blocks); - const index_type numbl3 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl2) - : (temp1 <= max_blocks ? temp1 : max_blocks)); - - const index_type tile_id2 = (index_type)blockIdx.y % numbl2; - const index_type tile_id3 = (index_type)blockIdx.y / numbl2; - const index_type thr_id2 = (index_type)threadIdx.y % m_rp.m_tile[2]; - const index_type thr_id3 = (index_type)threadIdx.y / m_rp.m_tile[2]; - - for (index_type tile_id4 = (index_type)blockIdx.z; - tile_id4 < m_rp.m_tile_end[4]; tile_id4 += gridDim.z) { - const index_type offset_4 = tile_id4 * m_rp.m_tile[4] + - (index_type)threadIdx.z + - (index_type)m_rp.m_lower[4]; - if (offset_4 < m_rp.m_upper[4] && - (index_type)threadIdx.z < m_rp.m_tile[4]) { - for (index_type l = tile_id3; l < m_rp.m_tile_end[3]; l += numbl3) { - const index_type offset_3 = - l * m_rp.m_tile[3] + thr_id3 + (index_type)m_rp.m_lower[3]; - if (offset_3 < m_rp.m_upper[3] && thr_id3 < m_rp.m_tile[3]) { - for (index_type k = tile_id2; k < m_rp.m_tile_end[2]; - k += numbl2) { - const index_type offset_2 = - k * m_rp.m_tile[2] + thr_id2 + (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && thr_id2 < m_rp.m_tile[2]) { - for (index_type j = tile_id1; j < m_rp.m_tile_end[1]; - j += numbl1) { - const index_type offset_1 = j * m_rp.m_tile[1] + thr_id1 + - (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && - thr_id1 < m_rp.m_tile[1]) { - for (index_type i = tile_id0; i < m_rp.m_tile_end[0]; - i += numbl0) { - const index_type offset_0 = i * m_rp.m_tile[0] + - thr_id0 + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && - thr_id0 < m_rp.m_tile[0]) { - m_func(Tag(), offset_0, offset_1, offset_2, offset_3, - offset_4); - } - } - } - } - } - } - } - } - } - } - } - // LR - else { - index_type temp0 = m_rp.m_tile_end[0]; - index_type temp1 = m_rp.m_tile_end[1]; - const index_type numbl1 = (temp1 <= max_blocks ? temp1 : max_blocks); - const index_type numbl0 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl1) - : (temp0 <= max_blocks ? temp0 : max_blocks)); - - const index_type tile_id0 = (index_type)blockIdx.x / numbl1; - const index_type tile_id1 = (index_type)blockIdx.x % numbl1; - const index_type thr_id0 = (index_type)threadIdx.x / m_rp.m_tile[1]; - const index_type thr_id1 = (index_type)threadIdx.x % m_rp.m_tile[1]; - - temp0 = m_rp.m_tile_end[2]; - temp1 = m_rp.m_tile_end[3]; - const index_type numbl3 = (temp1 <= max_blocks ? temp1 : max_blocks); - const index_type numbl2 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl3) - : (temp0 <= max_blocks ? temp0 : max_blocks)); - - const index_type tile_id2 = (index_type)blockIdx.y / numbl3; - const index_type tile_id3 = (index_type)blockIdx.y % numbl3; - const index_type thr_id2 = (index_type)threadIdx.y / m_rp.m_tile[3]; - const index_type thr_id3 = (index_type)threadIdx.y % m_rp.m_tile[3]; - - for (index_type i = tile_id0; i < m_rp.m_tile_end[0]; i += numbl0) { - const index_type offset_0 = - i * m_rp.m_tile[0] + thr_id0 + (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && thr_id0 < m_rp.m_tile[0]) { - for (index_type j = tile_id1; j < m_rp.m_tile_end[1]; j += numbl1) { - const index_type offset_1 = - j * m_rp.m_tile[1] + thr_id1 + (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && thr_id1 < m_rp.m_tile[1]) { - for (index_type k = tile_id2; k < m_rp.m_tile_end[2]; - k += numbl2) { - const index_type offset_2 = - k * m_rp.m_tile[2] + thr_id2 + (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && thr_id2 < m_rp.m_tile[2]) { - for (index_type l = tile_id3; l < m_rp.m_tile_end[3]; - l += numbl3) { - const index_type offset_3 = l * m_rp.m_tile[3] + thr_id3 + - (index_type)m_rp.m_lower[3]; - if (offset_3 < m_rp.m_upper[3] && - thr_id3 < m_rp.m_tile[3]) { - for (index_type tile_id4 = (index_type)blockIdx.z; - tile_id4 < m_rp.m_tile_end[4]; - tile_id4 += gridDim.z) { - const index_type offset_4 = tile_id4 * m_rp.m_tile[4] + - (index_type)threadIdx.z + - (index_type)m_rp.m_lower[4]; - if (offset_4 < m_rp.m_upper[4] && - (index_type)threadIdx.z < m_rp.m_tile[4]) { - m_func(Tag(), offset_0, offset_1, offset_2, offset_3, - offset_4); - } - } - } - } - } - } - } - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; -}; - -// Rank 6 -// Specializations for void tag type -template <typename RP, typename Functor> -struct DeviceIterateTile<6, RP, Functor, void> { - using index_type = typename RP::index_type; - - __device__ DeviceIterateTile(const RP& rp_, const Functor& f_) - : m_rp(rp_), m_func(f_) {} - - static constexpr index_type max_blocks = 65535; - // static constexpr index_type max_blocks = - // static_cast<index_type>(Kokkos::Impl::CudaTraits::UpperBoundGridCount); - - inline __device__ void exec_range() const { - // enum { max_blocks = - // static_cast<index_type>(Kokkos::Impl::CudaTraits::UpperBoundGridCount) }; - // const index_type max_blocks = static_cast<index_type>( - // Kokkos::Impl::cuda_internal_maximum_grid_count() ); - // LL - if (RP::inner_direction == RP::Left) { - index_type temp0 = m_rp.m_tile_end[0]; - index_type temp1 = m_rp.m_tile_end[1]; - const index_type numbl0 = (temp0 <= max_blocks ? temp0 : max_blocks); - const index_type numbl1 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl0) - : (temp1 <= max_blocks ? temp1 : max_blocks)); - - const index_type tile_id0 = (index_type)blockIdx.x % numbl0; - const index_type tile_id1 = (index_type)blockIdx.x / numbl0; - const index_type thr_id0 = (index_type)threadIdx.x % m_rp.m_tile[0]; - const index_type thr_id1 = (index_type)threadIdx.x / m_rp.m_tile[0]; - - temp0 = m_rp.m_tile_end[2]; - temp1 = m_rp.m_tile_end[3]; - const index_type numbl2 = (temp0 <= max_blocks ? temp0 : max_blocks); - const index_type numbl3 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl2) - : (temp1 <= max_blocks ? temp1 : max_blocks)); - - const index_type tile_id2 = (index_type)blockIdx.y % numbl2; - const index_type tile_id3 = (index_type)blockIdx.y / numbl2; - const index_type thr_id2 = (index_type)threadIdx.y % m_rp.m_tile[2]; - const index_type thr_id3 = (index_type)threadIdx.y / m_rp.m_tile[2]; - - temp0 = m_rp.m_tile_end[4]; - temp1 = m_rp.m_tile_end[5]; - const index_type numbl4 = (temp0 <= max_blocks ? temp0 : max_blocks); - const index_type numbl5 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl4) - : (temp1 <= max_blocks ? temp1 : max_blocks)); - - const index_type tile_id4 = (index_type)blockIdx.z % numbl4; - const index_type tile_id5 = (index_type)blockIdx.z / numbl4; - const index_type thr_id4 = (index_type)threadIdx.z % m_rp.m_tile[4]; - const index_type thr_id5 = (index_type)threadIdx.z / m_rp.m_tile[4]; - - for (index_type n = tile_id5; n < m_rp.m_tile_end[5]; n += numbl5) { - const index_type offset_5 = - n * m_rp.m_tile[5] + thr_id5 + (index_type)m_rp.m_lower[5]; - if (offset_5 < m_rp.m_upper[5] && thr_id5 < m_rp.m_tile[5]) { - for (index_type m = tile_id4; m < m_rp.m_tile_end[4]; m += numbl4) { - const index_type offset_4 = - m * m_rp.m_tile[4] + thr_id4 + (index_type)m_rp.m_lower[4]; - if (offset_4 < m_rp.m_upper[4] && thr_id4 < m_rp.m_tile[4]) { - for (index_type l = tile_id3; l < m_rp.m_tile_end[3]; - l += numbl3) { - const index_type offset_3 = - l * m_rp.m_tile[3] + thr_id3 + (index_type)m_rp.m_lower[3]; - if (offset_3 < m_rp.m_upper[3] && thr_id3 < m_rp.m_tile[3]) { - for (index_type k = tile_id2; k < m_rp.m_tile_end[2]; - k += numbl2) { - const index_type offset_2 = k * m_rp.m_tile[2] + thr_id2 + - (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && - thr_id2 < m_rp.m_tile[2]) { - for (index_type j = tile_id1; j < m_rp.m_tile_end[1]; - j += numbl1) { - const index_type offset_1 = j * m_rp.m_tile[1] + - thr_id1 + - (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && - thr_id1 < m_rp.m_tile[1]) { - for (index_type i = tile_id0; i < m_rp.m_tile_end[0]; - i += numbl0) { - const index_type offset_0 = - i * m_rp.m_tile[0] + thr_id0 + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && - thr_id0 < m_rp.m_tile[0]) { - m_func(offset_0, offset_1, offset_2, offset_3, - offset_4, offset_5); - } - } - } - } - } - } - } - } - } - } - } - } - } - // LR - else { - index_type temp0 = m_rp.m_tile_end[0]; - index_type temp1 = m_rp.m_tile_end[1]; - const index_type numbl1 = (temp1 <= max_blocks ? temp1 : max_blocks); - const index_type numbl0 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl1) - : (temp0 <= max_blocks ? temp0 : max_blocks)); - - const index_type tile_id0 = (index_type)blockIdx.x / numbl1; - const index_type tile_id1 = (index_type)blockIdx.x % numbl1; - const index_type thr_id0 = (index_type)threadIdx.x / m_rp.m_tile[1]; - const index_type thr_id1 = (index_type)threadIdx.x % m_rp.m_tile[1]; - - temp0 = m_rp.m_tile_end[2]; - temp1 = m_rp.m_tile_end[3]; - const index_type numbl3 = (temp1 <= max_blocks ? temp1 : max_blocks); - const index_type numbl2 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl3) - : (temp0 <= max_blocks ? temp0 : max_blocks)); - - const index_type tile_id2 = (index_type)blockIdx.y / numbl3; - const index_type tile_id3 = (index_type)blockIdx.y % numbl3; - const index_type thr_id2 = (index_type)threadIdx.y / m_rp.m_tile[3]; - const index_type thr_id3 = (index_type)threadIdx.y % m_rp.m_tile[3]; - - temp0 = m_rp.m_tile_end[4]; - temp1 = m_rp.m_tile_end[5]; - const index_type numbl5 = (temp1 <= max_blocks ? temp1 : max_blocks); - const index_type numbl4 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl5) - : (temp0 <= max_blocks ? temp0 : max_blocks)); - - const index_type tile_id4 = (index_type)blockIdx.z / numbl5; - const index_type tile_id5 = (index_type)blockIdx.z % numbl5; - const index_type thr_id4 = (index_type)threadIdx.z / m_rp.m_tile[5]; - const index_type thr_id5 = (index_type)threadIdx.z % m_rp.m_tile[5]; - - for (index_type i = tile_id0; i < m_rp.m_tile_end[0]; i += numbl0) { - const index_type offset_0 = - i * m_rp.m_tile[0] + thr_id0 + (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && thr_id0 < m_rp.m_tile[0]) { - for (index_type j = tile_id1; j < m_rp.m_tile_end[1]; j += numbl1) { - const index_type offset_1 = - j * m_rp.m_tile[1] + thr_id1 + (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && thr_id1 < m_rp.m_tile[1]) { - for (index_type k = tile_id2; k < m_rp.m_tile_end[2]; - k += numbl2) { - const index_type offset_2 = - k * m_rp.m_tile[2] + thr_id2 + (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && thr_id2 < m_rp.m_tile[2]) { - for (index_type l = tile_id3; l < m_rp.m_tile_end[3]; - l += numbl3) { - const index_type offset_3 = l * m_rp.m_tile[3] + thr_id3 + - (index_type)m_rp.m_lower[3]; - if (offset_3 < m_rp.m_upper[3] && - thr_id3 < m_rp.m_tile[3]) { - for (index_type m = tile_id4; m < m_rp.m_tile_end[4]; - m += numbl4) { - const index_type offset_4 = m * m_rp.m_tile[4] + - thr_id4 + - (index_type)m_rp.m_lower[4]; - if (offset_4 < m_rp.m_upper[4] && - thr_id4 < m_rp.m_tile[4]) { - for (index_type n = tile_id5; n < m_rp.m_tile_end[5]; - n += numbl5) { - const index_type offset_5 = - n * m_rp.m_tile[5] + thr_id5 + - (index_type)m_rp.m_lower[5]; - if (offset_5 < m_rp.m_upper[5] && - thr_id5 < m_rp.m_tile[5]) { - m_func(offset_0, offset_1, offset_2, offset_3, - offset_4, offset_5); - } - } - } - } - } - } - } - } - } - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; -}; - -// Specializations for tag type -template <typename RP, typename Functor, typename Tag> -struct DeviceIterateTile<6, RP, Functor, Tag> { - using index_type = typename RP::index_type; - - __device__ DeviceIterateTile(const RP& rp_, const Functor& f_) - : m_rp(rp_), m_func(f_) {} - - static constexpr index_type max_blocks = 65535; - // static constexpr index_type max_blocks = - // static_cast<index_type>(Kokkos::Impl::CudaTraits::UpperBoundGridCount); - - inline __device__ void exec_range() const { - // enum { max_blocks = - // static_cast<index_type>(Kokkos::Impl::CudaTraits::UpperBoundGridCount) }; - // const index_type max_blocks = static_cast<index_type>( - // Kokkos::Impl::cuda_internal_maximum_grid_count() ); - // LL - if (RP::inner_direction == RP::Left) { - index_type temp0 = m_rp.m_tile_end[0]; - index_type temp1 = m_rp.m_tile_end[1]; - const index_type numbl0 = (temp0 <= max_blocks ? temp0 : max_blocks); - const index_type numbl1 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl0) - : (temp1 <= max_blocks ? temp1 : max_blocks)); - - const index_type tile_id0 = (index_type)blockIdx.x % numbl0; - const index_type tile_id1 = (index_type)blockIdx.x / numbl0; - const index_type thr_id0 = (index_type)threadIdx.x % m_rp.m_tile[0]; - const index_type thr_id1 = (index_type)threadIdx.x / m_rp.m_tile[0]; - - temp0 = m_rp.m_tile_end[2]; - temp1 = m_rp.m_tile_end[3]; - const index_type numbl2 = (temp0 <= max_blocks ? temp0 : max_blocks); - const index_type numbl3 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl2) - : (temp1 <= max_blocks ? temp1 : max_blocks)); - - const index_type tile_id2 = (index_type)blockIdx.y % numbl2; - const index_type tile_id3 = (index_type)blockIdx.y / numbl2; - const index_type thr_id2 = (index_type)threadIdx.y % m_rp.m_tile[2]; - const index_type thr_id3 = (index_type)threadIdx.y / m_rp.m_tile[2]; - - temp0 = m_rp.m_tile_end[4]; - temp1 = m_rp.m_tile_end[5]; - const index_type numbl4 = (temp0 <= max_blocks ? temp0 : max_blocks); - const index_type numbl5 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl4) - : (temp1 <= max_blocks ? temp1 : max_blocks)); - - const index_type tile_id4 = (index_type)blockIdx.z % numbl4; - const index_type tile_id5 = (index_type)blockIdx.z / numbl4; - const index_type thr_id4 = (index_type)threadIdx.z % m_rp.m_tile[4]; - const index_type thr_id5 = (index_type)threadIdx.z / m_rp.m_tile[4]; - - for (index_type n = tile_id5; n < m_rp.m_tile_end[5]; n += numbl5) { - const index_type offset_5 = - n * m_rp.m_tile[5] + thr_id5 + (index_type)m_rp.m_lower[5]; - if (offset_5 < m_rp.m_upper[5] && thr_id5 < m_rp.m_tile[5]) { - for (index_type m = tile_id4; m < m_rp.m_tile_end[4]; m += numbl4) { - const index_type offset_4 = - m * m_rp.m_tile[4] + thr_id4 + (index_type)m_rp.m_lower[4]; - if (offset_4 < m_rp.m_upper[4] && thr_id4 < m_rp.m_tile[4]) { - for (index_type l = tile_id3; l < m_rp.m_tile_end[3]; - l += numbl3) { - const index_type offset_3 = - l * m_rp.m_tile[3] + thr_id3 + (index_type)m_rp.m_lower[3]; - if (offset_3 < m_rp.m_upper[3] && thr_id3 < m_rp.m_tile[3]) { - for (index_type k = tile_id2; k < m_rp.m_tile_end[2]; - k += numbl2) { - const index_type offset_2 = k * m_rp.m_tile[2] + thr_id2 + - (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && - thr_id2 < m_rp.m_tile[2]) { - for (index_type j = tile_id1; j < m_rp.m_tile_end[1]; - j += numbl1) { - const index_type offset_1 = j * m_rp.m_tile[1] + - thr_id1 + - (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && - thr_id1 < m_rp.m_tile[1]) { - for (index_type i = tile_id0; i < m_rp.m_tile_end[0]; - i += numbl0) { - const index_type offset_0 = - i * m_rp.m_tile[0] + thr_id0 + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && - thr_id0 < m_rp.m_tile[0]) { - m_func(Tag(), offset_0, offset_1, offset_2, - offset_3, offset_4, offset_5); - } - } - } - } - } - } - } - } - } - } - } - } - } - // LR - else { - index_type temp0 = m_rp.m_tile_end[0]; - index_type temp1 = m_rp.m_tile_end[1]; - const index_type numbl1 = (temp1 <= max_blocks ? temp1 : max_blocks); - const index_type numbl0 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl1) - : (temp0 <= max_blocks ? temp0 : max_blocks)); - - const index_type tile_id0 = (index_type)blockIdx.x / numbl1; - const index_type tile_id1 = (index_type)blockIdx.x % numbl1; - const index_type thr_id0 = (index_type)threadIdx.x / m_rp.m_tile[1]; - const index_type thr_id1 = (index_type)threadIdx.x % m_rp.m_tile[1]; - - temp0 = m_rp.m_tile_end[2]; - temp1 = m_rp.m_tile_end[3]; - const index_type numbl3 = (temp1 <= max_blocks ? temp1 : max_blocks); - const index_type numbl2 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl3) - : (temp0 <= max_blocks ? temp0 : max_blocks)); - - const index_type tile_id2 = (index_type)blockIdx.y / numbl3; - const index_type tile_id3 = (index_type)blockIdx.y % numbl3; - const index_type thr_id2 = (index_type)threadIdx.y / m_rp.m_tile[3]; - const index_type thr_id3 = (index_type)threadIdx.y % m_rp.m_tile[3]; - - temp0 = m_rp.m_tile_end[4]; - temp1 = m_rp.m_tile_end[5]; - const index_type numbl5 = (temp1 <= max_blocks ? temp1 : max_blocks); - const index_type numbl4 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl5) - : (temp0 <= max_blocks ? temp0 : max_blocks)); - - const index_type tile_id4 = (index_type)blockIdx.z / numbl5; - const index_type tile_id5 = (index_type)blockIdx.z % numbl5; - const index_type thr_id4 = (index_type)threadIdx.z / m_rp.m_tile[5]; - const index_type thr_id5 = (index_type)threadIdx.z % m_rp.m_tile[5]; - - for (index_type i = tile_id0; i < m_rp.m_tile_end[0]; i += numbl0) { - const index_type offset_0 = - i * m_rp.m_tile[0] + thr_id0 + (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && thr_id0 < m_rp.m_tile[0]) { - for (index_type j = tile_id1; j < m_rp.m_tile_end[1]; j += numbl1) { - const index_type offset_1 = - j * m_rp.m_tile[1] + thr_id1 + (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && thr_id1 < m_rp.m_tile[1]) { - for (index_type k = tile_id2; k < m_rp.m_tile_end[2]; - k += numbl2) { - const index_type offset_2 = - k * m_rp.m_tile[2] + thr_id2 + (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && thr_id2 < m_rp.m_tile[2]) { - for (index_type l = tile_id3; l < m_rp.m_tile_end[3]; - l += numbl3) { - const index_type offset_3 = l * m_rp.m_tile[3] + thr_id3 + - (index_type)m_rp.m_lower[3]; - if (offset_3 < m_rp.m_upper[3] && - thr_id3 < m_rp.m_tile[3]) { - for (index_type m = tile_id4; m < m_rp.m_tile_end[4]; - m += numbl4) { - const index_type offset_4 = m * m_rp.m_tile[4] + - thr_id4 + - (index_type)m_rp.m_lower[4]; - if (offset_4 < m_rp.m_upper[4] && - thr_id4 < m_rp.m_tile[4]) { - for (index_type n = tile_id5; n < m_rp.m_tile_end[5]; - n += numbl5) { - const index_type offset_5 = - n * m_rp.m_tile[5] + thr_id5 + - (index_type)m_rp.m_lower[5]; - if (offset_5 < m_rp.m_upper[5] && - thr_id5 < m_rp.m_tile[5]) { - m_func(Tag(), offset_0, offset_1, offset_2, - offset_3, offset_4, offset_5); - } - } - } - } - } - } - } - } - } - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; -}; - -} // namespace Refactor - -// ---------------------------------------------------------------------------------- - -namespace Reduce { - -template <typename T> -using is_void = std::is_same<T, void>; - -template <typename T> -struct is_array_type : std::false_type { - using value_type = T; -}; - -template <typename T> -struct is_array_type<T*> : std::true_type { - using value_type = T; -}; - -template <typename T> -struct is_array_type<T[]> : std::true_type { - using value_type = T; -}; - -// ------------------------------------------------------------------ // -template <int N, typename RP, typename Functor, typename Tag, - typename ValueType, typename Enable = void> -struct DeviceIterateTile; - -// ParallelReduce iteration pattern -// Scalar reductions - -// num_blocks = min( num_tiles, max_num_blocks ); //i.e. determined by number of -// tiles and reduction algorithm constraints extract n-dim tile offsets (i.e. -// tile's global starting mulit-index) from the tileid = blockid using tile -// dimensions local indices within a tile extracted from (index_type)threadIdx.x -// using tile dims, constrained by blocksize combine tile and local id info for -// multi-dim global ids - -// Pattern: -// Each block+thread is responsible for a tile+local_id combo (additional when -// striding by num_blocks) -// 1. create offset arrays -// 2. loop over number of tiles, striding by griddim (equal to num tiles, or max -// num blocks) -// 3. temps set for tile_idx and thrd_idx, which will be modified -// 4. if LL vs LR: -// determine tile starting point offsets (multidim) -// determine local index offsets (multidim) -// concatentate tile offset + local offset for global multi-dim index -// if offset withinin range bounds AND local offset within tile bounds, call -// functor - -// ValueType = T -// Rank 2 -// Specializations for void tag type -template <typename RP, typename Functor, typename ValueType> -struct DeviceIterateTile< - 2, RP, Functor, void, ValueType, - typename std::enable_if<!is_array_type<ValueType>::value>::type> { - using index_type = typename RP::index_type; - - __device__ DeviceIterateTile(const RP& rp_, const Functor& f_, ValueType& v_) - : m_rp(rp_), m_func(f_), m_v(v_) {} - - inline __device__ void exec_range() const { - if ((index_type)blockIdx.x < m_rp.m_num_tiles && - (index_type)threadIdx.y < m_rp.m_prod_tile_dims) { - index_type m_offset[RP::rank]; // tile starting global id offset - index_type m_local_offset[RP::rank]; // tile starting global id offset - - for (index_type tileidx = (index_type)blockIdx.x; - tileidx < m_rp.m_num_tiles; tileidx += gridDim.x) { - index_type tile_idx = - tileidx; // temp because tile_idx will be modified while - // determining tile starting point offsets - index_type thrd_idx = (index_type)threadIdx.y; - bool in_bounds = true; - - // LL - if (RP::inner_direction == RP::Left) { - for (int i = 0; i < RP::rank; ++i) { - // Deduce this blocks tile_id - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(m_offset[0], m_offset[1], m_v); - } - } - // LR - else { - for (int i = RP::rank - 1; i >= 0; --i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(m_offset[0], m_offset[1], m_v); - } - } - } - } - - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; - ValueType& m_v; -}; - -// Specializations for tag type -template <typename RP, typename Functor, typename Tag, typename ValueType> -struct DeviceIterateTile< - 2, RP, Functor, Tag, ValueType, - typename std::enable_if<!is_array_type<ValueType>::value && - !is_void<Tag>::value>::type> { - using index_type = typename RP::index_type; - - inline __device__ DeviceIterateTile(const RP& rp_, const Functor& f_, - ValueType& v_) - : m_rp(rp_), m_func(f_), m_v(v_) {} - - inline __device__ void exec_range() const { - if ((index_type)blockIdx.x < m_rp.m_num_tiles && - (index_type)threadIdx.y < m_rp.m_prod_tile_dims) { - index_type m_offset[RP::rank]; // tile starting global id offset - index_type m_local_offset[RP::rank]; // tile starting global id offset - - for (index_type tileidx = (index_type)blockIdx.x; - tileidx < m_rp.m_num_tiles; tileidx += gridDim.x) { - index_type tile_idx = - tileidx; // temp because tile_idx will be modified while - // determining tile starting point offsets - index_type thrd_idx = (index_type)threadIdx.y; - bool in_bounds = true; - - // LL - if (RP::inner_direction == RP::Left) { - for (int i = 0; i < RP::rank; ++i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx.y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(Tag(), m_offset[0], m_offset[1], m_v); - } - } - // LR - else { - for (int i = RP::rank - 1; i >= 0; --i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx.y - m_local_offset[i] = - (thrd_idx % m_rp.m_tile[i]); // Move this to first computation, - // add to m_offset right away - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(Tag(), m_offset[0], m_offset[1], m_v); - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; - ValueType& m_v; -}; - -// Rank 3 -// Specializations for void tag type -template <typename RP, typename Functor, typename ValueType> -struct DeviceIterateTile< - 3, RP, Functor, void, ValueType, - typename std::enable_if<!is_array_type<ValueType>::value>::type> { - using index_type = typename RP::index_type; - - __device__ DeviceIterateTile(const RP& rp_, const Functor& f_, ValueType& v_) - : m_rp(rp_), m_func(f_), m_v(v_) {} - - inline __device__ void exec_range() const { - if ((index_type)blockIdx.x < m_rp.m_num_tiles && - (index_type)threadIdx.y < m_rp.m_prod_tile_dims) { - index_type m_offset[RP::rank]; // tile starting global id offset - index_type m_local_offset[RP::rank]; // tile starting global id offset - - for (index_type tileidx = (index_type)blockIdx.x; - tileidx < m_rp.m_num_tiles; tileidx += gridDim.x) { - index_type tile_idx = - tileidx; // temp because tile_idx will be modified while - // determining tile starting point offsets - index_type thrd_idx = (index_type)threadIdx.y; - bool in_bounds = true; - - // LL - if (RP::inner_direction == RP::Left) { - for (int i = 0; i < RP::rank; ++i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx.y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(m_offset[0], m_offset[1], m_offset[2], m_v); - } - } - // LR - else { - for (int i = RP::rank - 1; i >= 0; --i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx.y - m_local_offset[i] = - (thrd_idx % m_rp.m_tile[i]); // Move this to first computation, - // add to m_offset right away - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(m_offset[0], m_offset[1], m_offset[2], m_v); - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; - ValueType& m_v; -}; - -// Specializations for void tag type -template <typename RP, typename Functor, typename Tag, typename ValueType> -struct DeviceIterateTile< - 3, RP, Functor, Tag, ValueType, - typename std::enable_if<!is_array_type<ValueType>::value && - !is_void<Tag>::value>::type> { - using index_type = typename RP::index_type; - - inline __device__ DeviceIterateTile(const RP& rp_, const Functor& f_, - ValueType& v_) - : m_rp(rp_), m_func(f_), m_v(v_) {} - - inline __device__ void exec_range() const { - if ((index_type)blockIdx.x < m_rp.m_num_tiles && - (index_type)threadIdx.y < m_rp.m_prod_tile_dims) { - index_type m_offset[RP::rank]; // tile starting global id offset - index_type m_local_offset[RP::rank]; // tile starting global id offset - - for (index_type tileidx = (index_type)blockIdx.x; - tileidx < m_rp.m_num_tiles; tileidx += gridDim.x) { - index_type tile_idx = - tileidx; // temp because tile_idx will be modified while - // determining tile starting point offsets - index_type thrd_idx = (index_type)threadIdx.y; - bool in_bounds = true; - - // LL - if (RP::inner_direction == RP::Left) { - for (int i = 0; i < RP::rank; ++i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx.y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_v); - } - } - // LR - else { - for (int i = RP::rank - 1; i >= 0; --i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx.y - m_local_offset[i] = - (thrd_idx % m_rp.m_tile[i]); // Move this to first computation, - // add to m_offset right away - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_v); - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; - ValueType& m_v; -}; - -// Rank 4 -// Specializations for void tag type -template <typename RP, typename Functor, typename ValueType> -struct DeviceIterateTile< - 4, RP, Functor, void, ValueType, - typename std::enable_if<!is_array_type<ValueType>::value>::type> { - using index_type = typename RP::index_type; - - __device__ DeviceIterateTile(const RP& rp_, const Functor& f_, ValueType& v_) - : m_rp(rp_), m_func(f_), m_v(v_) {} - - static constexpr index_type max_blocks = 65535; - // static constexpr index_type max_blocks = - // static_cast<index_type>(Kokkos::Impl::CudaTraits::UpperBoundGridCount); - - inline __device__ void exec_range() const { - // enum { max_blocks = - // static_cast<index_type>(Kokkos::Impl::CudaTraits::UpperBoundGridCount) }; - // const index_type max_blocks = static_cast<index_type>( - // Kokkos::Impl::cuda_internal_maximum_grid_count() ); - if ((index_type)blockIdx.x < m_rp.m_num_tiles && - (index_type)threadIdx.y < m_rp.m_prod_tile_dims) { - index_type m_offset[RP::rank]; // tile starting global id offset - index_type m_local_offset[RP::rank]; // tile starting global id offset - - for (index_type tileidx = (index_type)blockIdx.x; - tileidx < m_rp.m_num_tiles; tileidx += gridDim.x) { - index_type tile_idx = - tileidx; // temp because tile_idx will be modified while - // determining tile starting point offsets - index_type thrd_idx = (index_type)threadIdx.y; - bool in_bounds = true; - - // LL - if (RP::inner_direction == RP::Left) { - for (int i = 0; i < RP::rank; ++i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx.y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(m_offset[0], m_offset[1], m_offset[2], m_offset[3], m_v); - } - } - // LR - else { - for (int i = RP::rank - 1; i >= 0; --i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx.y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(m_offset[0], m_offset[1], m_offset[2], m_offset[3], m_v); - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; - ValueType& m_v; -}; - -// Specializations for void tag type -template <typename RP, typename Functor, typename Tag, typename ValueType> -struct DeviceIterateTile< - 4, RP, Functor, Tag, ValueType, - typename std::enable_if<!is_array_type<ValueType>::value && - !is_void<Tag>::value>::type> { - using index_type = typename RP::index_type; - - inline __device__ DeviceIterateTile(const RP& rp_, const Functor& f_, - ValueType& v_) - : m_rp(rp_), m_func(f_), m_v(v_) {} - - static constexpr index_type max_blocks = 65535; - // static constexpr index_type max_blocks = - // static_cast<index_type>(Kokkos::Impl::CudaTraits::UpperBoundGridCount); - - inline __device__ void exec_range() const { - // enum { max_blocks = - // static_cast<index_type>(Kokkos::Impl::CudaTraits::UpperBoundGridCount) }; - // const index_type max_blocks = static_cast<index_type>( - // Kokkos::Impl::cuda_internal_maximum_grid_count() ); - if ((index_type)blockIdx.x < m_rp.m_num_tiles && - (index_type)threadIdx.y < m_rp.m_prod_tile_dims) { - index_type m_offset[RP::rank]; // tile starting global id offset - index_type m_local_offset[RP::rank]; // tile starting global id offset - - for (index_type tileidx = (index_type)blockIdx.x; - tileidx < m_rp.m_num_tiles; tileidx += gridDim.x) { - index_type tile_idx = - tileidx; // temp because tile_idx will be modified while - // determining tile starting point offsets - index_type thrd_idx = (index_type)threadIdx.y; - bool in_bounds = true; - - // LL - if (RP::inner_direction == RP::Left) { - for (int i = 0; i < RP::rank; ++i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx.y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_offset[3], - m_v); - } - } - // LR - else { - for (int i = RP::rank - 1; i >= 0; --i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx.y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_offset[3], - m_v); - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; - ValueType& m_v; -}; - -// Rank 5 -// Specializations for void tag type -template <typename RP, typename Functor, typename ValueType> -struct DeviceIterateTile< - 5, RP, Functor, void, ValueType, - typename std::enable_if<!is_array_type<ValueType>::value>::type> { - using index_type = typename RP::index_type; - - __device__ DeviceIterateTile(const RP& rp_, const Functor& f_, ValueType& v_) - : m_rp(rp_), m_func(f_), m_v(v_) {} - - static constexpr index_type max_blocks = 65535; - // static constexpr index_type max_blocks = - // static_cast<index_type>(Kokkos::Impl::CudaTraits::UpperBoundGridCount); - - inline __device__ void exec_range() const { - // enum { max_blocks = - // static_cast<index_type>(Kokkos::Impl::CudaTraits::UpperBoundGridCount) }; - // const index_type max_blocks = static_cast<index_type>( - // Kokkos::Impl::cuda_internal_maximum_grid_count() ); - if ((index_type)blockIdx.x < m_rp.m_num_tiles && - (index_type)threadIdx.y < m_rp.m_prod_tile_dims) { - index_type m_offset[RP::rank]; // tile starting global id offset - index_type m_local_offset[RP::rank]; // tile starting global id offset - - for (index_type tileidx = (index_type)blockIdx.x; - tileidx < m_rp.m_num_tiles; tileidx += gridDim.x) { - index_type tile_idx = - tileidx; // temp because tile_idx will be modified while - // determining tile starting point offsets - index_type thrd_idx = (index_type)threadIdx.y; - bool in_bounds = true; - - // LL - if (RP::inner_direction == RP::Left) { - for (int i = 0; i < RP::rank; ++i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx.y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(m_offset[0], m_offset[1], m_offset[2], m_offset[3], - m_offset[4], m_v); - } - } - // LR - else { - for (int i = RP::rank - 1; i >= 0; --i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx.y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(m_offset[0], m_offset[1], m_offset[2], m_offset[3], - m_offset[4], m_v); - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; - ValueType& m_v; -}; - -// Specializations for tag type -template <typename RP, typename Functor, typename Tag, typename ValueType> -struct DeviceIterateTile< - 5, RP, Functor, Tag, ValueType, - typename std::enable_if<!is_array_type<ValueType>::value && - !is_void<Tag>::value>::type> { - using index_type = typename RP::index_type; - - __device__ DeviceIterateTile(const RP& rp_, const Functor& f_, ValueType& v_) - : m_rp(rp_), m_func(f_), m_v(v_) {} - - static constexpr index_type max_blocks = 65535; - // static constexpr index_type max_blocks = - // static_cast<index_type>(Kokkos::Impl::CudaTraits::UpperBoundGridCount); - - inline __device__ void exec_range() const { - // enum { max_blocks = - // static_cast<index_type>(Kokkos::Impl::CudaTraits::UpperBoundGridCount) }; - // const index_type max_blocks = static_cast<index_type>( - // Kokkos::Impl::cuda_internal_maximum_grid_count() ); - if ((index_type)blockIdx.x < m_rp.m_num_tiles && - (index_type)threadIdx.y < m_rp.m_prod_tile_dims) { - index_type m_offset[RP::rank]; // tile starting global id offset - index_type m_local_offset[RP::rank]; // tile starting global id offset - - for (index_type tileidx = (index_type)blockIdx.x; - tileidx < m_rp.m_num_tiles; tileidx += gridDim.x) { - index_type tile_idx = - tileidx; // temp because tile_idx will be modified while - // determining tile starting point offsets - index_type thrd_idx = (index_type)threadIdx.y; - bool in_bounds = true; - - // LL - if (RP::inner_direction == RP::Left) { - for (int i = 0; i < RP::rank; ++i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx.y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_offset[3], - m_offset[4], m_v); - } - } - // LR - else { - for (int i = RP::rank - 1; i >= 0; --i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx.y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_offset[3], - m_offset[4], m_v); - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; - ValueType& m_v; -}; - -// Rank 6 -// Specializations for void tag type -template <typename RP, typename Functor, typename ValueType> -struct DeviceIterateTile< - 6, RP, Functor, void, ValueType, - typename std::enable_if<!is_array_type<ValueType>::value>::type> { - using index_type = typename RP::index_type; - - __device__ DeviceIterateTile(const RP& rp_, const Functor& f_, ValueType& v_) - : m_rp(rp_), m_func(f_), m_v(v_) {} - - static constexpr index_type max_blocks = 65535; - // static constexpr index_type max_blocks = - // static_cast<index_type>(Kokkos::Impl::CudaTraits::UpperBoundGridCount); - - inline __device__ void exec_range() const { - // enum { max_blocks = - // static_cast<index_type>(Kokkos::Impl::CudaTraits::UpperBoundGridCount) }; - // const index_type max_blocks = static_cast<index_type>( - // Kokkos::Impl::cuda_internal_maximum_grid_count() ); - if ((index_type)blockIdx.x < m_rp.m_num_tiles && - (index_type)threadIdx.y < m_rp.m_prod_tile_dims) { - index_type m_offset[RP::rank]; // tile starting global id offset - index_type m_local_offset[RP::rank]; // tile starting global id offset - - for (index_type tileidx = (index_type)blockIdx.x; - tileidx < m_rp.m_num_tiles; tileidx += gridDim.x) { - index_type tile_idx = - tileidx; // temp because tile_idx will be modified while - // determining tile starting point offsets - index_type thrd_idx = (index_type)threadIdx.y; - bool in_bounds = true; - - // LL - if (RP::inner_direction == RP::Left) { - for (int i = 0; i < RP::rank; ++i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx.y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(m_offset[0], m_offset[1], m_offset[2], m_offset[3], - m_offset[4], m_offset[5], m_v); - } - } - // LR - else { - for (int i = RP::rank - 1; i >= 0; --i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx.y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(m_offset[0], m_offset[1], m_offset[2], m_offset[3], - m_offset[4], m_offset[5], m_v); - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; - ValueType& m_v; -}; - -// Specializations for tag type -template <typename RP, typename Functor, typename Tag, typename ValueType> -struct DeviceIterateTile< - 6, RP, Functor, Tag, ValueType, - typename std::enable_if<!is_array_type<ValueType>::value && - !is_void<Tag>::value>::type> { - using index_type = typename RP::index_type; - - __device__ DeviceIterateTile(const RP& rp_, const Functor& f_, ValueType& v_) - : m_rp(rp_), m_func(f_), m_v(v_) {} - - static constexpr index_type max_blocks = 65535; - // static constexpr index_type max_blocks = - // static_cast<index_type>(Kokkos::Impl::CudaTraits::UpperBoundGridCount); - - inline __device__ void exec_range() const { - // enum { max_blocks = - // static_cast<index_type>(Kokkos::Impl::CudaTraits::UpperBoundGridCount) }; - // const index_type max_blocks = static_cast<index_type>( - // Kokkos::Impl::cuda_internal_maximum_grid_count() ); - if ((index_type)blockIdx.x < m_rp.m_num_tiles && - (index_type)threadIdx.y < m_rp.m_prod_tile_dims) { - index_type m_offset[RP::rank]; // tile starting global id offset - index_type m_local_offset[RP::rank]; // tile starting global id offset - - for (index_type tileidx = (index_type)blockIdx.x; - tileidx < m_rp.m_num_tiles; tileidx += gridDim.x) { - index_type tile_idx = - tileidx; // temp because tile_idx will be modified while - // determining tile starting point offsets - index_type thrd_idx = (index_type)threadIdx.y; - bool in_bounds = true; - - // LL - if (RP::inner_direction == RP::Left) { - for (int i = 0; i < RP::rank; ++i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx.y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_offset[3], - m_offset[4], m_offset[5], m_v); - } - } - // LR - else { - for (int i = RP::rank - 1; i >= 0; --i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx.y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_offset[3], - m_offset[4], m_offset[5], m_v); - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; - ValueType& m_v; -}; - -// ValueType = T[], T* -// Rank 2 -// Specializations for void tag type -template <typename RP, typename Functor, typename ValueType> -struct DeviceIterateTile< - 2, RP, Functor, void, ValueType, - typename std::enable_if<is_array_type<ValueType>::value>::type> { - using index_type = typename RP::index_type; - using value_type = typename is_array_type<ValueType>::value_type; - - __device__ DeviceIterateTile(const RP& rp_, const Functor& f_, value_type* v_) - : m_rp(rp_), m_func(f_), m_v(v_) {} - - inline __device__ void exec_range() const { - if ((index_type)blockIdx.x < m_rp.m_num_tiles && - (index_type)threadIdx.y < m_rp.m_prod_tile_dims) { - index_type m_offset[RP::rank]; // tile starting global id offset - index_type m_local_offset[RP::rank]; // tile starting global id offset - - for (index_type tileidx = (index_type)blockIdx.x; - tileidx < m_rp.m_num_tiles; tileidx += gridDim.x) { - index_type tile_idx = - tileidx; // temp because tile_idx will be modified while - // determining tile starting point offsets - index_type thrd_idx = (index_type)threadIdx.y; - bool in_bounds = true; - - // LL - if (RP::inner_direction == RP::Left) { - for (int i = 0; i < RP::rank; ++i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(m_offset[0], m_offset[1], m_v); - } - } - // LR - else { - for (int i = RP::rank - 1; i >= 0; --i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx.y - m_local_offset[i] = - (thrd_idx % m_rp.m_tile[i]); // Move this to first computation, - // add to m_offset right away - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(m_offset[0], m_offset[1], m_v); - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; - value_type* m_v; -}; - -// Specializations for tag type -template <typename RP, typename Functor, typename Tag, typename ValueType> -struct DeviceIterateTile< - 2, RP, Functor, Tag, ValueType, - typename std::enable_if<is_array_type<ValueType>::value && - !is_void<Tag>::value>::type> { - using index_type = typename RP::index_type; - using value_type = typename is_array_type<ValueType>::value_type; - - inline __device__ DeviceIterateTile(const RP& rp_, const Functor& f_, - value_type* v_) - : m_rp(rp_), m_func(f_), m_v(v_) {} - - inline __device__ void exec_range() const { - if ((index_type)blockIdx.x < m_rp.m_num_tiles && - (index_type)threadIdx.y < m_rp.m_prod_tile_dims) { - index_type m_offset[RP::rank]; // tile starting global id offset - index_type m_local_offset[RP::rank]; // tile starting global id offset - - for (index_type tileidx = (index_type)blockIdx.x; - tileidx < m_rp.m_num_tiles; tileidx += gridDim.x) { - index_type tile_idx = - tileidx; // temp because tile_idx will be modified while - // determining tile starting point offsets - index_type thrd_idx = (index_type)threadIdx.y; - bool in_bounds = true; - - // LL - if (RP::inner_direction == RP::Left) { - for (int i = 0; i < RP::rank; ++i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx.y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(Tag(), m_offset[0], m_offset[1], m_v); - } - } - // LR - else { - for (int i = RP::rank - 1; i >= 0; --i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx.y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(Tag(), m_offset[0], m_offset[1], m_v); - } - } - } // end for loop over num_tiles - product of tiles in each direction - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; - value_type* m_v; -}; - -// Rank 3 -// Specializations for void tag type -template <typename RP, typename Functor, typename ValueType> -struct DeviceIterateTile< - 3, RP, Functor, void, ValueType, - typename std::enable_if<is_array_type<ValueType>::value>::type> { - using index_type = typename RP::index_type; - using value_type = typename is_array_type<ValueType>::value_type; - - __device__ DeviceIterateTile(const RP& rp_, const Functor& f_, value_type* v_) - : m_rp(rp_), m_func(f_), m_v(v_) {} - - inline __device__ void exec_range() const { - if ((index_type)blockIdx.x < m_rp.m_num_tiles && - (index_type)threadIdx.y < m_rp.m_prod_tile_dims) { - index_type m_offset[RP::rank]; // tile starting global id offset - index_type m_local_offset[RP::rank]; // tile starting global id offset - - for (index_type tileidx = (index_type)blockIdx.x; - tileidx < m_rp.m_num_tiles; tileidx += gridDim.x) { - index_type tile_idx = - tileidx; // temp because tile_idx will be modified while - // determining tile starting point offsets - index_type thrd_idx = (index_type)threadIdx.y; - bool in_bounds = true; - - // LL - if (RP::inner_direction == RP::Left) { - for (int i = 0; i < RP::rank; ++i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx.y - m_local_offset[i] = - (thrd_idx % m_rp.m_tile[i]); // Move this to first computation, - // add to m_offset right away - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(m_offset[0], m_offset[1], m_offset[2], m_v); - } - } - // LR - else { - for (int i = RP::rank - 1; i >= 0; --i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx.y - m_local_offset[i] = - (thrd_idx % m_rp.m_tile[i]); // Move this to first computation, - // add to m_offset right away - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(m_offset[0], m_offset[1], m_offset[2], m_v); - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; - value_type* m_v; -}; - -// Specializations for void tag type -template <typename RP, typename Functor, typename Tag, typename ValueType> -struct DeviceIterateTile< - 3, RP, Functor, Tag, ValueType, - typename std::enable_if<is_array_type<ValueType>::value && - !is_void<Tag>::value>::type> { - using index_type = typename RP::index_type; - using value_type = typename is_array_type<ValueType>::value_type; - - inline __device__ DeviceIterateTile(const RP& rp_, const Functor& f_, - value_type* v_) - : m_rp(rp_), m_func(f_), m_v(v_) {} - - inline __device__ void exec_range() const { - if ((index_type)blockIdx.x < m_rp.m_num_tiles && - (index_type)threadIdx.y < m_rp.m_prod_tile_dims) { - index_type m_offset[RP::rank]; // tile starting global id offset - index_type m_local_offset[RP::rank]; // tile starting global id offset - - for (index_type tileidx = (index_type)blockIdx.x; - tileidx < m_rp.m_num_tiles; tileidx += gridDim.x) { - index_type tile_idx = - tileidx; // temp because tile_idx will be modified while - // determining tile starting point offsets - index_type thrd_idx = (index_type)threadIdx.y; - bool in_bounds = true; - - // LL - if (RP::inner_direction == RP::Left) { - for (int i = 0; i < RP::rank; ++i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx.y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_v); - } - } - // LR - else { - for (int i = RP::rank - 1; i >= 0; --i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx.y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_v); - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; - value_type* m_v; -}; - -// Rank 4 -// Specializations for void tag type -template <typename RP, typename Functor, typename ValueType> -struct DeviceIterateTile< - 4, RP, Functor, void, ValueType, - typename std::enable_if<is_array_type<ValueType>::value>::type> { - using index_type = typename RP::index_type; - using value_type = typename is_array_type<ValueType>::value_type; - - __device__ DeviceIterateTile(const RP& rp_, const Functor& f_, value_type* v_) - : m_rp(rp_), m_func(f_), m_v(v_) {} - - static constexpr index_type max_blocks = 65535; - // static constexpr index_type max_blocks = - // static_cast<index_type>(Kokkos::Impl::CudaTraits::UpperBoundGridCount); - - inline __device__ void exec_range() const { - // enum { max_blocks = - // static_cast<index_type>(Kokkos::Impl::CudaTraits::UpperBoundGridCount) }; - // const index_type max_blocks = static_cast<index_type>( - // Kokkos::Impl::cuda_internal_maximum_grid_count() ); - if ((index_type)blockIdx.x < m_rp.m_num_tiles && - (index_type)threadIdx.y < m_rp.m_prod_tile_dims) { - index_type m_offset[RP::rank]; // tile starting global id offset - index_type m_local_offset[RP::rank]; // tile starting global id offset - - for (index_type tileidx = (index_type)blockIdx.x; - tileidx < m_rp.m_num_tiles; tileidx += gridDim.x) { - index_type tile_idx = - tileidx; // temp because tile_idx will be modified while - // determining tile starting point offsets - index_type thrd_idx = (index_type)threadIdx.y; - bool in_bounds = true; - - // LL - if (RP::inner_direction == RP::Left) { - for (int i = 0; i < RP::rank; ++i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx.y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(m_offset[0], m_offset[1], m_offset[2], m_offset[3], m_v); - } - } - // LR - else { - for (int i = RP::rank - 1; i >= 0; --i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx.y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(m_offset[0], m_offset[1], m_offset[2], m_offset[3], m_v); - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; - value_type* m_v; -}; - -// Specializations for void tag type -template <typename RP, typename Functor, typename Tag, typename ValueType> -struct DeviceIterateTile< - 4, RP, Functor, Tag, ValueType, - typename std::enable_if<is_array_type<ValueType>::value && - !is_void<Tag>::value>::type> { - using index_type = typename RP::index_type; - using value_type = typename is_array_type<ValueType>::value_type; - - inline __device__ DeviceIterateTile(const RP& rp_, const Functor& f_, - value_type* v_) - : m_rp(rp_), m_func(f_), m_v(v_) {} - - static constexpr index_type max_blocks = 65535; - // static constexpr index_type max_blocks = - // static_cast<index_type>(Kokkos::Impl::CudaTraits::UpperBoundGridCount); - - inline __device__ void exec_range() const { - // enum { max_blocks = - // static_cast<index_type>(Kokkos::Impl::CudaTraits::UpperBoundGridCount) }; - // const index_type max_blocks = static_cast<index_type>( - // Kokkos::Impl::cuda_internal_maximum_grid_count() ); - if ((index_type)blockIdx.x < m_rp.m_num_tiles && - (index_type)threadIdx.y < m_rp.m_prod_tile_dims) { - index_type m_offset[RP::rank]; // tile starting global id offset - index_type m_local_offset[RP::rank]; // tile starting global id offset - - for (index_type tileidx = (index_type)blockIdx.x; - tileidx < m_rp.m_num_tiles; tileidx += gridDim.x) { - index_type tile_idx = - tileidx; // temp because tile_idx will be modified while - // determining tile starting point offsets - index_type thrd_idx = (index_type)threadIdx.y; - bool in_bounds = true; - - // LL - if (RP::inner_direction == RP::Left) { - for (int i = 0; i < RP::rank; ++i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx.y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_offset[3], - m_v); - } - } - // LR - else { - for (int i = RP::rank - 1; i >= 0; --i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx.y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_offset[3], - m_v); - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; - value_type* m_v; -}; - -// Rank 5 -// Specializations for void tag type -template <typename RP, typename Functor, typename ValueType> -struct DeviceIterateTile< - 5, RP, Functor, void, ValueType, - typename std::enable_if<is_array_type<ValueType>::value>::type> { - using index_type = typename RP::index_type; - using value_type = typename is_array_type<ValueType>::value_type; - - __device__ DeviceIterateTile(const RP& rp_, const Functor& f_, value_type* v_) - : m_rp(rp_), m_func(f_), m_v(v_) {} - - static constexpr index_type max_blocks = 65535; - // static constexpr index_type max_blocks = - // static_cast<index_type>(Kokkos::Impl::CudaTraits::UpperBoundGridCount); - - inline __device__ void exec_range() const { - // enum { max_blocks = - // static_cast<index_type>(Kokkos::Impl::CudaTraits::UpperBoundGridCount) }; - // const index_type max_blocks = static_cast<index_type>( - // Kokkos::Impl::cuda_internal_maximum_grid_count() ); - if ((index_type)blockIdx.x < m_rp.m_num_tiles && - (index_type)threadIdx.y < m_rp.m_prod_tile_dims) { - index_type m_offset[RP::rank]; // tile starting global id offset - index_type m_local_offset[RP::rank]; // tile starting global id offset - - for (index_type tileidx = (index_type)blockIdx.x; - tileidx < m_rp.m_num_tiles; tileidx += gridDim.x) { - index_type tile_idx = - tileidx; // temp because tile_idx will be modified while - // determining tile starting point offsets - index_type thrd_idx = (index_type)threadIdx.y; - bool in_bounds = true; - - // LL - if (RP::inner_direction == RP::Left) { - for (int i = 0; i < RP::rank; ++i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx.y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(m_offset[0], m_offset[1], m_offset[2], m_offset[3], - m_offset[4], m_v); - } - } - // LR - else { - for (int i = RP::rank - 1; i >= 0; --i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx.y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(m_offset[0], m_offset[1], m_offset[2], m_offset[3], - m_offset[4], m_v); - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; - value_type* m_v; -}; - -// Specializations for tag type -template <typename RP, typename Functor, typename Tag, typename ValueType> -struct DeviceIterateTile< - 5, RP, Functor, Tag, ValueType, - typename std::enable_if<is_array_type<ValueType>::value && - !is_void<Tag>::value>::type> { - using index_type = typename RP::index_type; - using value_type = typename is_array_type<ValueType>::value_type; - - __device__ DeviceIterateTile(const RP& rp_, const Functor& f_, value_type* v_) - : m_rp(rp_), m_func(f_), m_v(v_) {} - - static constexpr index_type max_blocks = 65535; - // static constexpr index_type max_blocks = - // static_cast<index_type>(Kokkos::Impl::CudaTraits::UpperBoundGridCount); - - inline __device__ void exec_range() const { - // enum { max_blocks = - // static_cast<index_type>(Kokkos::Impl::CudaTraits::UpperBoundGridCount) }; - // const index_type max_blocks = static_cast<index_type>( - // Kokkos::Impl::cuda_internal_maximum_grid_count() ); - if ((index_type)blockIdx.x < m_rp.m_num_tiles && - (index_type)threadIdx.y < m_rp.m_prod_tile_dims) { - index_type m_offset[RP::rank]; // tile starting global id offset - index_type m_local_offset[RP::rank]; // tile starting global id offset - - for (index_type tileidx = (index_type)blockIdx.x; - tileidx < m_rp.m_num_tiles; tileidx += gridDim.x) { - index_type tile_idx = - tileidx; // temp because tile_idx will be modified while - // determining tile starting point offsets - index_type thrd_idx = (index_type)threadIdx.y; - bool in_bounds = true; - - // LL - if (RP::inner_direction == RP::Left) { - for (int i = 0; i < RP::rank; ++i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx.y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_offset[3], - m_offset[4], m_v); - } - } - // LR - else { - for (int i = RP::rank - 1; i >= 0; --i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx.y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_offset[3], - m_offset[4], m_v); - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; - value_type* m_v; -}; - -// Rank 6 -// Specializations for void tag type -template <typename RP, typename Functor, typename ValueType> -struct DeviceIterateTile< - 6, RP, Functor, void, ValueType, - typename std::enable_if<is_array_type<ValueType>::value>::type> { - using index_type = typename RP::index_type; - using value_type = typename is_array_type<ValueType>::value_type; - - __device__ DeviceIterateTile(const RP& rp_, const Functor& f_, value_type* v_) - : m_rp(rp_), m_func(f_), m_v(v_) {} - - static constexpr index_type max_blocks = 65535; - // static constexpr index_type max_blocks = - // static_cast<index_type>(Kokkos::Impl::CudaTraits::UpperBoundGridCount); - - inline __device__ void exec_range() const { - // enum { max_blocks = - // static_cast<index_type>(Kokkos::Impl::CudaTraits::UpperBoundGridCount) }; - // const index_type max_blocks = static_cast<index_type>( - // Kokkos::Impl::cuda_internal_maximum_grid_count() ); - if ((index_type)blockIdx.x < m_rp.m_num_tiles && - (index_type)threadIdx.y < m_rp.m_prod_tile_dims) { - index_type m_offset[RP::rank]; // tile starting global id offset - index_type m_local_offset[RP::rank]; // tile starting global id offset - - for (index_type tileidx = (index_type)blockIdx.x; - tileidx < m_rp.m_num_tiles; tileidx += gridDim.x) { - index_type tile_idx = - tileidx; // temp because tile_idx will be modified while - // determining tile starting point offsets - index_type thrd_idx = (index_type)threadIdx.y; - bool in_bounds = true; - - // LL - if (RP::inner_direction == RP::Left) { - for (int i = 0; i < RP::rank; ++i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx.y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(m_offset[0], m_offset[1], m_offset[2], m_offset[3], - m_offset[4], m_offset[5], m_v); - } - } - // LR - else { - for (int i = RP::rank - 1; i >= 0; --i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx.y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(m_offset[0], m_offset[1], m_offset[2], m_offset[3], - m_offset[4], m_offset[5], m_v); - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; - value_type* m_v; -}; - -// Specializations for tag type -template <typename RP, typename Functor, typename Tag, typename ValueType> -struct DeviceIterateTile< - 6, RP, Functor, Tag, ValueType, - typename std::enable_if<is_array_type<ValueType>::value && - !is_void<Tag>::value>::type> { - using index_type = typename RP::index_type; - using value_type = typename is_array_type<ValueType>::value_type; - - __device__ DeviceIterateTile(const RP& rp_, const Functor& f_, value_type* v_) - : m_rp(rp_), m_func(f_), m_v(v_) {} - - static constexpr index_type max_blocks = 65535; - // static constexpr index_type max_blocks = - // static_cast<index_type>(Kokkos::Impl::CudaTraits::UpperBoundGridCount); - - inline __device__ void exec_range() const { - // enum { max_blocks = - // static_cast<index_type>(Kokkos::Impl::CudaTraits::UpperBoundGridCount) }; - // const index_type max_blocks = static_cast<index_type>( - // Kokkos::Impl::cuda_internal_maximum_grid_count() ); - if ((index_type)blockIdx.x < m_rp.m_num_tiles && - (index_type)threadIdx.y < m_rp.m_prod_tile_dims) { - index_type m_offset[RP::rank]; // tile starting global id offset - index_type m_local_offset[RP::rank]; // tile starting global id offset - - for (index_type tileidx = (index_type)blockIdx.x; - tileidx < m_rp.m_num_tiles; tileidx += gridDim.x) { - index_type tile_idx = - tileidx; // temp because tile_idx will be modified while - // determining tile starting point offsets - index_type thrd_idx = (index_type)threadIdx.y; - bool in_bounds = true; - - // LL - if (RP::inner_direction == RP::Left) { - for (int i = 0; i < RP::rank; ++i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx.y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_offset[3], - m_offset[4], m_offset[5], m_v); - } - } - // LR - else { - for (int i = RP::rank - 1; i >= 0; --i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx.y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_offset[3], - m_offset[4], m_offset[5], m_v); - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; - value_type* m_v; -}; - -} // namespace Reduce - -// ---------------------------------------------------------------------------------- - -} // namespace Impl -} // namespace Kokkos - -#endif -#endif diff --git a/packages/kokkos/core/src/Cuda/Kokkos_CudaSpace.cpp b/packages/kokkos/core/src/Cuda/Kokkos_CudaSpace.cpp index e11961d76..4a30c914f 100644 --- a/packages/kokkos/core/src/Cuda/Kokkos_CudaSpace.cpp +++ b/packages/kokkos/core/src/Cuda/Kokkos_CudaSpace.cpp @@ -60,9 +60,7 @@ #include <impl/Kokkos_Error.hpp> #include <impl/Kokkos_MemorySpace.hpp> -#if defined(KOKKOS_ENABLE_PROFILING) -#include <impl/Kokkos_Profiling_Interface.hpp> -#endif +#include <impl/Kokkos_Tools.hpp> /*--------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------*/ @@ -75,8 +73,8 @@ namespace { static std::atomic<int> num_uvm_allocations(0); cudaStream_t get_deep_copy_stream() { - static cudaStream_t s = 0; - if (s == 0) { + static cudaStream_t s = nullptr; + if (s == nullptr) { cudaStreamCreate(&s); } return s; @@ -148,9 +146,9 @@ void CudaSpace::access_error(const void *const) { bool CudaUVMSpace::available() { #if defined(CUDA_VERSION) && !defined(__APPLE__) - enum { UVM_available = true }; + enum : bool { UVM_available = true }; #else - enum { UVM_available = false }; + enum : bool { UVM_available = false }; #endif return UVM_available; } @@ -201,6 +199,17 @@ CudaHostPinnedSpace::CudaHostPinnedSpace() {} // <editor-fold desc="allocate()"> {{{1 void *CudaSpace::allocate(const size_t arg_alloc_size) const { + return allocate("[unlabeled]", arg_alloc_size); +} + +void *CudaSpace::allocate(const char *arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size) const { + return impl_allocate(arg_label, arg_alloc_size, arg_logical_size); +} +void *CudaSpace::impl_allocate( + const char *arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size, + const Kokkos::Tools::SpaceHandle arg_handle) const { void *ptr = nullptr; auto error_code = cudaMalloc(&ptr, arg_alloc_size); @@ -213,10 +222,26 @@ void *CudaSpace::allocate(const size_t arg_alloc_size) const { Experimental::RawMemoryAllocationFailure::AllocationMechanism:: CudaMalloc); } + + if (Kokkos::Profiling::profileLibraryLoaded()) { + const size_t reported_size = + (arg_logical_size > 0) ? arg_logical_size : arg_alloc_size; + Kokkos::Profiling::allocateData(arg_handle, arg_label, ptr, reported_size); + } return ptr; } void *CudaUVMSpace::allocate(const size_t arg_alloc_size) const { + return allocate("[unlabeled]", arg_alloc_size); +} +void *CudaUVMSpace::allocate(const char *arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size) const { + return impl_allocate(arg_label, arg_alloc_size, arg_logical_size); +} +void *CudaUVMSpace::impl_allocate( + const char *arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size, + const Kokkos::Tools::SpaceHandle arg_handle) const { void *ptr = nullptr; Cuda::impl_static_fence(); @@ -243,11 +268,25 @@ void *CudaUVMSpace::allocate(const size_t arg_alloc_size) const { } } Cuda::impl_static_fence(); - + if (Kokkos::Profiling::profileLibraryLoaded()) { + const size_t reported_size = + (arg_logical_size > 0) ? arg_logical_size : arg_alloc_size; + Kokkos::Profiling::allocateData(arg_handle, arg_label, ptr, reported_size); + } return ptr; } - void *CudaHostPinnedSpace::allocate(const size_t arg_alloc_size) const { + return allocate("[unlabeled]", arg_alloc_size); +} +void *CudaHostPinnedSpace::allocate(const char *arg_label, + const size_t arg_alloc_size, + const size_t arg_logical_size) const { + return impl_allocate(arg_label, arg_alloc_size, arg_logical_size); +} +void *CudaHostPinnedSpace::impl_allocate( + const char *arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size, + const Kokkos::Tools::SpaceHandle arg_handle) const { void *ptr = nullptr; auto error_code = cudaHostAlloc(&ptr, arg_alloc_size, cudaHostAllocDefault); @@ -260,24 +299,67 @@ void *CudaHostPinnedSpace::allocate(const size_t arg_alloc_size) const { Experimental::RawMemoryAllocationFailure::AllocationMechanism:: CudaHostAlloc); } - + if (Kokkos::Profiling::profileLibraryLoaded()) { + const size_t reported_size = + (arg_logical_size > 0) ? arg_logical_size : arg_alloc_size; + Kokkos::Profiling::allocateData(arg_handle, arg_label, ptr, reported_size); + } return ptr; } // </editor-fold> end allocate() }}}1 //============================================================================== - void CudaSpace::deallocate(void *const arg_alloc_ptr, - const size_t /* arg_alloc_size */) const { + const size_t arg_alloc_size) const { + deallocate("[unlabeled]", arg_alloc_ptr, arg_alloc_size); +} +void CudaSpace::deallocate(const char *arg_label, void *const arg_alloc_ptr, + const size_t arg_alloc_size, + const size_t arg_logical_size) const { + impl_deallocate(arg_label, arg_alloc_ptr, arg_alloc_size, arg_logical_size); +} +void CudaSpace::impl_deallocate( + const char *arg_label, void *const arg_alloc_ptr, + const size_t arg_alloc_size, const size_t arg_logical_size, + const Kokkos::Tools::SpaceHandle arg_handle) const { + if (Kokkos::Profiling::profileLibraryLoaded()) { + const size_t reported_size = + (arg_logical_size > 0) ? arg_logical_size : arg_alloc_size; + Kokkos::Profiling::deallocateData(arg_handle, arg_label, arg_alloc_ptr, + reported_size); + } + try { CUDA_SAFE_CALL(cudaFree(arg_alloc_ptr)); } catch (...) { } } - void CudaUVMSpace::deallocate(void *const arg_alloc_ptr, - const size_t /* arg_alloc_size */) const { + const size_t arg_alloc_size) const { + deallocate("[unlabeled]", arg_alloc_ptr, arg_alloc_size); +} + +void CudaUVMSpace::deallocate(const char *arg_label, void *const arg_alloc_ptr, + const size_t arg_alloc_size + + , + const size_t arg_logical_size) const { + impl_deallocate(arg_label, arg_alloc_ptr, arg_alloc_size, arg_logical_size); +} +void CudaUVMSpace::impl_deallocate( + const char *arg_label, void *const arg_alloc_ptr, + const size_t arg_alloc_size + + , + const size_t arg_logical_size, + const Kokkos::Tools::SpaceHandle arg_handle) const { Cuda::impl_static_fence(); + if (Kokkos::Profiling::profileLibraryLoaded()) { + const size_t reported_size = + (arg_logical_size > 0) ? arg_logical_size : arg_alloc_size; + Kokkos::Profiling::deallocateData(arg_handle, arg_label, arg_alloc_ptr, + reported_size); + } try { if (arg_alloc_ptr != nullptr) { Kokkos::Impl::num_uvm_allocations--; @@ -289,7 +371,26 @@ void CudaUVMSpace::deallocate(void *const arg_alloc_ptr, } void CudaHostPinnedSpace::deallocate(void *const arg_alloc_ptr, - const size_t /* arg_alloc_size */) const { + const size_t arg_alloc_size) const { + deallocate("[unlabeled]", arg_alloc_ptr, arg_alloc_size); +} +void CudaHostPinnedSpace::deallocate(const char *arg_label, + void *const arg_alloc_ptr, + const size_t arg_alloc_size, + const size_t arg_logical_size) const { + impl_deallocate(arg_label, arg_alloc_ptr, arg_alloc_size, arg_logical_size); +} + +void CudaHostPinnedSpace::impl_deallocate( + const char *arg_label, void *const arg_alloc_ptr, + const size_t arg_alloc_size, const size_t arg_logical_size, + const Kokkos::Tools::SpaceHandle arg_handle) const { + if (Kokkos::Profiling::profileLibraryLoaded()) { + const size_t reported_size = + (arg_logical_size > 0) ? arg_logical_size : arg_alloc_size; + Kokkos::Profiling::deallocateData(arg_handle, arg_label, arg_alloc_ptr, + reported_size); + } try { CUDA_SAFE_CALL(cudaFreeHost(arg_alloc_ptr)); } catch (...) { @@ -304,7 +405,7 @@ void CudaHostPinnedSpace::deallocate(void *const arg_alloc_ptr, namespace Kokkos { namespace Impl { -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG SharedAllocationRecord<void, void> SharedAllocationRecord<Kokkos::CudaSpace, void>::s_root_record; @@ -321,7 +422,8 @@ SharedAllocationRecord<Kokkos::CudaSpace, void>::attach_texture_object( size_t const alloc_size) { enum { TEXTURE_BOUND_1D = 1u << 27 }; - if ((alloc_ptr == 0) || (sizeof_alias * TEXTURE_BOUND_1D <= alloc_size)) { + if ((alloc_ptr == nullptr) || + (sizeof_alias * TEXTURE_BOUND_1D <= alloc_size)) { std::ostringstream msg; msg << "Kokkos::CudaSpace ERROR: Cannot attach texture object to" << " alloc_ptr(" << alloc_ptr << ")" @@ -434,48 +536,36 @@ void SharedAllocationRecord<Kokkos::CudaHostPinnedSpace, void>::deallocate( // <editor-fold desc="SharedAllocationRecord destructors"> {{{1 SharedAllocationRecord<Kokkos::CudaSpace, void>::~SharedAllocationRecord() { -#if defined(KOKKOS_ENABLE_PROFILING) + const char *label = nullptr; if (Kokkos::Profiling::profileLibraryLoaded()) { SharedAllocationHeader header; - Kokkos::Impl::DeepCopy<CudaSpace, HostSpace>( + Kokkos::Impl::DeepCopy<Kokkos::CudaSpace, HostSpace>( &header, RecordBase::m_alloc_ptr, sizeof(SharedAllocationHeader)); - - Kokkos::Profiling::deallocateData( - Kokkos::Profiling::SpaceHandle(Kokkos::CudaSpace::name()), - header.m_label, data(), size()); + label = header.label(); } -#endif - - m_space.deallocate(SharedAllocationRecord<void, void>::m_alloc_ptr, - SharedAllocationRecord<void, void>::m_alloc_size); + auto alloc_size = SharedAllocationRecord<void, void>::m_alloc_size; + m_space.deallocate(label, SharedAllocationRecord<void, void>::m_alloc_ptr, + alloc_size, (alloc_size - sizeof(SharedAllocationHeader))); } SharedAllocationRecord<Kokkos::CudaUVMSpace, void>::~SharedAllocationRecord() { -#if defined(KOKKOS_ENABLE_PROFILING) + const char *label = nullptr; if (Kokkos::Profiling::profileLibraryLoaded()) { - Cuda::impl_static_fence(); // Make sure I can access the label ... - Kokkos::Profiling::deallocateData( - Kokkos::Profiling::SpaceHandle(Kokkos::CudaUVMSpace::name()), - RecordBase::m_alloc_ptr->m_label, data(), size()); + label = RecordBase::m_alloc_ptr->m_label; } -#endif - - m_space.deallocate(SharedAllocationRecord<void, void>::m_alloc_ptr, - SharedAllocationRecord<void, void>::m_alloc_size); + m_space.deallocate(label, SharedAllocationRecord<void, void>::m_alloc_ptr, + SharedAllocationRecord<void, void>::m_alloc_size, + (SharedAllocationRecord<void, void>::m_alloc_size - + sizeof(SharedAllocationHeader))); } SharedAllocationRecord<Kokkos::CudaHostPinnedSpace, void>::~SharedAllocationRecord() { -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::deallocateData( - Kokkos::Profiling::SpaceHandle(Kokkos::CudaHostPinnedSpace::name()), - RecordBase::m_alloc_ptr->m_label, data(), size()); - } -#endif - - m_space.deallocate(SharedAllocationRecord<void, void>::m_alloc_ptr, - SharedAllocationRecord<void, void>::m_alloc_size); + m_space.deallocate(RecordBase::m_alloc_ptr->m_label, + SharedAllocationRecord<void, void>::m_alloc_ptr, + SharedAllocationRecord<void, void>::m_alloc_size, + (SharedAllocationRecord<void, void>::m_alloc_size - + sizeof(SharedAllocationHeader))); } // </editor-fold> end SharedAllocationRecord destructors }}}1 @@ -491,7 +581,7 @@ SharedAllocationRecord<Kokkos::CudaSpace, void>::SharedAllocationRecord( // Pass through allocated [ SharedAllocationHeader , user_memory ] // Pass through deallocation function : SharedAllocationRecord<void, void>( -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG &SharedAllocationRecord<Kokkos::CudaSpace, void>::s_root_record, #endif Impl::checked_allocation_with_header(arg_space, arg_label, @@ -499,13 +589,6 @@ SharedAllocationRecord<Kokkos::CudaSpace, void>::SharedAllocationRecord( sizeof(SharedAllocationHeader) + arg_alloc_size, arg_dealloc), m_tex_obj(0), m_space(arg_space) { -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::allocateData( - Kokkos::Profiling::SpaceHandle(arg_space.name()), arg_label, data(), - arg_alloc_size); - } -#endif SharedAllocationHeader header; @@ -529,7 +612,7 @@ SharedAllocationRecord<Kokkos::CudaUVMSpace, void>::SharedAllocationRecord( // Pass through allocated [ SharedAllocationHeader , user_memory ] // Pass through deallocation function : SharedAllocationRecord<void, void>( -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG &SharedAllocationRecord<Kokkos::CudaUVMSpace, void>::s_root_record, #endif Impl::checked_allocation_with_header(arg_space, arg_label, @@ -537,13 +620,6 @@ SharedAllocationRecord<Kokkos::CudaUVMSpace, void>::SharedAllocationRecord( sizeof(SharedAllocationHeader) + arg_alloc_size, arg_dealloc), m_tex_obj(0), m_space(arg_space) { -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::allocateData( - Kokkos::Profiling::SpaceHandle(arg_space.name()), arg_label, data(), - arg_alloc_size); - } -#endif // Fill in the Header information, directly accessible via UVM RecordBase::m_alloc_ptr->m_record = this; @@ -564,7 +640,7 @@ SharedAllocationRecord<Kokkos::CudaHostPinnedSpace, void>:: // Pass through allocated [ SharedAllocationHeader , user_memory ] // Pass through deallocation function : SharedAllocationRecord<void, void>( -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG &SharedAllocationRecord<Kokkos::CudaHostPinnedSpace, void>::s_root_record, #endif @@ -572,13 +648,6 @@ SharedAllocationRecord<Kokkos::CudaHostPinnedSpace, void>:: arg_alloc_size), sizeof(SharedAllocationHeader) + arg_alloc_size, arg_dealloc), m_space(arg_space) { -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::allocateData( - Kokkos::Profiling::SpaceHandle(arg_space.name()), arg_label, data(), - arg_alloc_size); - } -#endif // Fill in the Header information, directly accessible on the host RecordBase::m_alloc_ptr->m_record = this; @@ -599,7 +668,7 @@ SharedAllocationRecord<Kokkos::CudaHostPinnedSpace, void>:: void *SharedAllocationRecord<Kokkos::CudaSpace, void>::allocate_tracked( const Kokkos::CudaSpace &arg_space, const std::string &arg_alloc_label, const size_t arg_alloc_size) { - if (!arg_alloc_size) return (void *)0; + if (!arg_alloc_size) return nullptr; SharedAllocationRecord *const r = allocate(arg_space, arg_alloc_label, arg_alloc_size); @@ -611,7 +680,7 @@ void *SharedAllocationRecord<Kokkos::CudaSpace, void>::allocate_tracked( void SharedAllocationRecord<Kokkos::CudaSpace, void>::deallocate_tracked( void *const arg_alloc_ptr) { - if (arg_alloc_ptr != 0) { + if (arg_alloc_ptr != nullptr) { SharedAllocationRecord *const r = get_record(arg_alloc_ptr); RecordBase::decrement(r); @@ -636,7 +705,7 @@ void *SharedAllocationRecord<Kokkos::CudaSpace, void>::reallocate_tracked( void *SharedAllocationRecord<Kokkos::CudaUVMSpace, void>::allocate_tracked( const Kokkos::CudaUVMSpace &arg_space, const std::string &arg_alloc_label, const size_t arg_alloc_size) { - if (!arg_alloc_size) return (void *)0; + if (!arg_alloc_size) return nullptr; SharedAllocationRecord *const r = allocate(arg_space, arg_alloc_label, arg_alloc_size); @@ -648,7 +717,7 @@ void *SharedAllocationRecord<Kokkos::CudaUVMSpace, void>::allocate_tracked( void SharedAllocationRecord<Kokkos::CudaUVMSpace, void>::deallocate_tracked( void *const arg_alloc_ptr) { - if (arg_alloc_ptr != 0) { + if (arg_alloc_ptr != nullptr) { SharedAllocationRecord *const r = get_record(arg_alloc_ptr); RecordBase::decrement(r); @@ -674,7 +743,7 @@ void * SharedAllocationRecord<Kokkos::CudaHostPinnedSpace, void>::allocate_tracked( const Kokkos::CudaHostPinnedSpace &arg_space, const std::string &arg_alloc_label, const size_t arg_alloc_size) { - if (!arg_alloc_size) return (void *)0; + if (!arg_alloc_size) return nullptr; SharedAllocationRecord *const r = allocate(arg_space, arg_alloc_label, arg_alloc_size); @@ -687,7 +756,7 @@ SharedAllocationRecord<Kokkos::CudaHostPinnedSpace, void>::allocate_tracked( void SharedAllocationRecord<Kokkos::CudaHostPinnedSpace, void>::deallocate_tracked(void *const arg_alloc_ptr) { - if (arg_alloc_ptr != 0) { + if (arg_alloc_ptr != nullptr) { SharedAllocationRecord *const r = get_record(arg_alloc_ptr); RecordBase::decrement(r); @@ -726,7 +795,7 @@ SharedAllocationRecord<Kokkos::CudaSpace, void>::get_record(void *alloc_ptr) { Header head; Header const *const head_cuda = - alloc_ptr ? Header::get_header(alloc_ptr) : (Header *)0; + alloc_ptr ? Header::get_header(alloc_ptr) : nullptr; if (alloc_ptr) { Kokkos::Impl::DeepCopy<HostSpace, CudaSpace>( @@ -734,7 +803,7 @@ SharedAllocationRecord<Kokkos::CudaSpace, void>::get_record(void *alloc_ptr) { } RecordCuda *const record = - alloc_ptr ? static_cast<RecordCuda *>(head.m_record) : (RecordCuda *)0; + alloc_ptr ? static_cast<RecordCuda *>(head.m_record) : nullptr; if (!alloc_ptr || record->m_alloc_ptr != head_cuda) { Kokkos::Impl::throw_runtime_exception( @@ -751,7 +820,7 @@ SharedAllocationRecord<Kokkos::CudaUVMSpace, void> *SharedAllocationRecord< using RecordCuda = SharedAllocationRecord<Kokkos::CudaUVMSpace, void>; Header *const h = - alloc_ptr ? reinterpret_cast<Header *>(alloc_ptr) - 1 : (Header *)0; + alloc_ptr ? reinterpret_cast<Header *>(alloc_ptr) - 1 : nullptr; if (!alloc_ptr || h->m_record->m_alloc_ptr != h) { Kokkos::Impl::throw_runtime_exception( @@ -769,7 +838,7 @@ SharedAllocationRecord<Kokkos::CudaHostPinnedSpace, void> using RecordCuda = SharedAllocationRecord<Kokkos::CudaHostPinnedSpace, void>; Header *const h = - alloc_ptr ? reinterpret_cast<Header *>(alloc_ptr) - 1 : (Header *)0; + alloc_ptr ? reinterpret_cast<Header *>(alloc_ptr) - 1 : nullptr; if (!alloc_ptr || h->m_record->m_alloc_ptr != h) { Kokkos::Impl::throw_runtime_exception( @@ -791,7 +860,7 @@ void SharedAllocationRecord<Kokkos::CudaSpace, void>::print_records( std::ostream &s, const Kokkos::CudaSpace &, bool detail) { (void)s; (void)detail; -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG SharedAllocationRecord<void, void> *r = &s_root_record; char buffer[256]; @@ -857,7 +926,7 @@ void SharedAllocationRecord<Kokkos::CudaSpace, void>::print_records( #else Kokkos::Impl::throw_runtime_exception( "SharedAllocationHeader<CudaSpace>::print_records only works with " - "KOKKOS_DEBUG enabled"); + "KOKKOS_ENABLE_DEBUG enabled"); #endif } @@ -865,13 +934,13 @@ void SharedAllocationRecord<Kokkos::CudaUVMSpace, void>::print_records( std::ostream &s, const Kokkos::CudaUVMSpace &, bool detail) { (void)s; (void)detail; -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG SharedAllocationRecord<void, void>::print_host_accessible_records( s, "CudaUVM", &s_root_record, detail); #else Kokkos::Impl::throw_runtime_exception( "SharedAllocationHeader<CudaSpace>::print_records only works with " - "KOKKOS_DEBUG enabled"); + "KOKKOS_ENABLE_DEBUG enabled"); #endif } @@ -879,42 +948,19 @@ void SharedAllocationRecord<Kokkos::CudaHostPinnedSpace, void>::print_records( std::ostream &s, const Kokkos::CudaHostPinnedSpace &, bool detail) { (void)s; (void)detail; -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG SharedAllocationRecord<void, void>::print_host_accessible_records( s, "CudaHostPinned", &s_root_record, detail); #else Kokkos::Impl::throw_runtime_exception( "SharedAllocationHeader<CudaSpace>::print_records only works with " - "KOKKOS_DEBUG enabled"); + "KOKKOS_ENABLE_DEBUG enabled"); #endif } // </editor-fold> end SharedAllocationRecord::print_records() }}}1 //============================================================================== -void *cuda_resize_scratch_space(std::int64_t bytes, bool force_shrink) { - static void *ptr = nullptr; - static std::int64_t current_size = 0; - if (current_size == 0) { - current_size = bytes; - ptr = Kokkos::kokkos_malloc<Kokkos::CudaSpace>("CudaSpace::ScratchMemory", - current_size); - } - if (bytes > current_size) { - current_size = bytes; - Kokkos::kokkos_free<Kokkos::CudaSpace>(ptr); - ptr = Kokkos::kokkos_malloc<Kokkos::CudaSpace>("CudaSpace::ScratchMemory", - current_size); - } - if ((bytes < current_size) && (force_shrink)) { - current_size = bytes; - Kokkos::kokkos_free<Kokkos::CudaSpace>(ptr); - ptr = Kokkos::kokkos_malloc<Kokkos::CudaSpace>("CudaSpace::ScratchMemory", - current_size); - } - return ptr; -} - void cuda_prefetch_pointer(const Cuda &space, const void *ptr, size_t bytes, bool to_device) { if ((ptr == nullptr) || (bytes == 0)) return; diff --git a/packages/kokkos/core/src/Cuda/Kokkos_Cuda_BlockSize_Deduction.hpp b/packages/kokkos/core/src/Cuda/Kokkos_Cuda_BlockSize_Deduction.hpp index 34b681be1..0d6d3bdb3 100644 --- a/packages/kokkos/core/src/Cuda/Kokkos_Cuda_BlockSize_Deduction.hpp +++ b/packages/kokkos/core/src/Cuda/Kokkos_Cuda_BlockSize_Deduction.hpp @@ -48,319 +48,128 @@ #include <Kokkos_Macros.hpp> #ifdef KOKKOS_ENABLE_CUDA -#include <iostream> #include <Cuda/Kokkos_Cuda_Error.hpp> namespace Kokkos { namespace Impl { -template <class DriverType, class LaunchBounds, bool Large> -struct CudaGetMaxBlockSize; +inline int cuda_max_active_blocks_per_sm(cudaDeviceProp const& properties, + cudaFuncAttributes const& attributes, + int block_size, size_t dynamic_shmem) { + // Limits due do registers/SM + int const regs_per_sm = properties.regsPerMultiprocessor; + int const regs_per_thread = attributes.numRegs; + int const max_blocks_regs = regs_per_sm / (regs_per_thread * block_size); + + // Limits due to shared memory/SM + size_t const shmem_per_sm = properties.sharedMemPerMultiprocessor; + size_t const shmem_per_block = properties.sharedMemPerBlock; + size_t const static_shmem = attributes.sharedSizeBytes; + size_t const dynamic_shmem_per_block = attributes.maxDynamicSharedSizeBytes; + size_t const total_shmem = static_shmem + dynamic_shmem; + + int const max_blocks_shmem = + total_shmem > shmem_per_block || dynamic_shmem > dynamic_shmem_per_block + ? 0 + : (total_shmem > 0 ? (int)shmem_per_sm / total_shmem + : max_blocks_regs); + + // Limits due to blocks/SM +#if CUDA_VERSION >= 11000 + int const max_blocks_per_sm = properties.maxBlocksPerMultiProcessor; +#else + int const max_blocks_per_sm = [&properties]() { + switch (properties.major) { + case 3: return 16; + case 5: + case 6: return 32; + case 7: { + int isTuring = properties.minor == 5; + return (isTuring) ? 16 : 32; + } + default: + throw_runtime_exception("Unknown device in cuda block size deduction"); + return 0; + } + }(); +#endif -template <class DriverType, class LaunchBounds> -int cuda_get_max_block_size(const typename DriverType::functor_type& f, - const size_t vector_length, - const size_t shmem_extra_block, - const size_t shmem_extra_thread) { - return CudaGetMaxBlockSize<DriverType, LaunchBounds, true>::get_block_size( - f, vector_length, shmem_extra_block, shmem_extra_thread); + // Overall occupancy in blocks + return std::min({max_blocks_regs, max_blocks_shmem, max_blocks_per_sm}); } -template <class FunctorType, class LaunchBounds> -int cuda_get_max_block_size(const CudaInternal* cuda_instance, - const cudaFuncAttributes& attr, - const FunctorType& f, const size_t vector_length, - const size_t shmem_block, - const size_t shmem_thread) { - const int min_blocks_per_sm = +template <typename UnaryFunction, typename LaunchBounds> +inline int cuda_deduce_block_size(bool early_termination, + cudaDeviceProp const& properties, + cudaFuncAttributes const& attributes, + UnaryFunction block_size_to_dynamic_shmem, + LaunchBounds) { + // Limits + int const max_threads_per_sm = properties.maxThreadsPerMultiProcessor; + // unsure if I need to do that or if this is already accounted for in the + // functor attributes + int const max_threads_per_block = + std::min(LaunchBounds::maxTperB == 0 ? (int)properties.maxThreadsPerBlock + : (int)LaunchBounds::maxTperB, + attributes.maxThreadsPerBlock); + int const min_blocks_per_sm = LaunchBounds::minBperSM == 0 ? 1 : LaunchBounds::minBperSM; - const int max_threads_per_block = LaunchBounds::maxTperB == 0 - ? cuda_instance->m_maxThreadsPerBlock - : LaunchBounds::maxTperB; - const int regs_per_thread = attr.numRegs; - const int regs_per_sm = cuda_instance->m_regsPerSM; - const int shmem_per_sm = cuda_instance->m_shmemPerSM; - const int max_shmem_per_block = cuda_instance->m_maxShmemPerBlock; - const int max_blocks_per_sm = cuda_instance->m_maxBlocksPerSM; - const int max_threads_per_sm = cuda_instance->m_maxThreadsPerSM; + // Recorded maximum + int opt_block_size = 0; + int opt_threads_per_sm = 0; - int block_size = std::min(attr.maxThreadsPerBlock, max_threads_per_block); + for (int block_size = max_threads_per_block; block_size > 0; + block_size -= 32) { + size_t const dynamic_shmem = block_size_to_dynamic_shmem(block_size); + + int blocks_per_sm = cuda_max_active_blocks_per_sm( + properties, attributes, block_size, dynamic_shmem); + + int threads_per_sm = blocks_per_sm * block_size; - int functor_shmem = - FunctorTeamShmemSize<FunctorType>::value(f, block_size / vector_length); - int total_shmem = shmem_block + shmem_thread * (block_size / vector_length) + - functor_shmem + attr.sharedSizeBytes; - int max_blocks_regs = regs_per_sm / (regs_per_thread * block_size); - int max_blocks_shmem = - (total_shmem < max_shmem_per_block) - ? (total_shmem > 0 ? shmem_per_sm / total_shmem : max_blocks_regs) - : 0; - int blocks_per_sm = std::min(max_blocks_regs, max_blocks_shmem); - int threads_per_sm = blocks_per_sm * block_size; - if (threads_per_sm > max_threads_per_sm) { - blocks_per_sm = max_threads_per_sm / block_size; - threads_per_sm = blocks_per_sm * block_size; - } - int opt_block_size = (blocks_per_sm >= min_blocks_per_sm) ? block_size : 0; - int opt_threads_per_sm = threads_per_sm; - // printf("BlockSizeMax: %i Shmem: %i %i %i %i Regs: %i %i Blocks: %i %i - // Achieved: %i %i Opt: %i %i\n",block_size, - // shmem_per_sm,max_shmem_per_block,functor_shmem,total_shmem, - // regs_per_sm,regs_per_thread,max_blocks_shmem,max_blocks_regs,blocks_per_sm,threads_per_sm,opt_block_size,opt_threads_per_sm); - block_size -= 32; - while ((blocks_per_sm == 0) && (block_size >= 32)) { - functor_shmem = - FunctorTeamShmemSize<FunctorType>::value(f, block_size / vector_length); - total_shmem = shmem_block + shmem_thread * (block_size / vector_length) + - functor_shmem + attr.sharedSizeBytes; - max_blocks_regs = regs_per_sm / (regs_per_thread * block_size); - max_blocks_shmem = - (total_shmem < max_shmem_per_block) - ? (total_shmem > 0 ? shmem_per_sm / total_shmem : max_blocks_regs) - : 0; - blocks_per_sm = std::min(max_blocks_regs, max_blocks_shmem); - threads_per_sm = blocks_per_sm * block_size; if (threads_per_sm > max_threads_per_sm) { blocks_per_sm = max_threads_per_sm / block_size; threads_per_sm = blocks_per_sm * block_size; } - if ((blocks_per_sm >= min_blocks_per_sm) && - (blocks_per_sm <= max_blocks_per_sm)) { + + if (blocks_per_sm >= min_blocks_per_sm) { if (threads_per_sm >= opt_threads_per_sm) { opt_block_size = block_size; opt_threads_per_sm = threads_per_sm; } } - // printf("BlockSizeMax: %i Shmem: %i %i %i %i Regs: %i %i Blocks: %i %i - // Achieved: %i %i Opt: %i %i\n",block_size, - // shmem_per_sm,max_shmem_per_block,functor_shmem,total_shmem, - // regs_per_sm,regs_per_thread,max_blocks_shmem,max_blocks_regs,blocks_per_sm,threads_per_sm,opt_block_size,opt_threads_per_sm); - block_size -= 32; - } - return opt_block_size; -} - -template <class DriverType> -struct CudaGetMaxBlockSize<DriverType, Kokkos::LaunchBounds<>, true> { - static int get_block_size(const typename DriverType::functor_type& f, - const size_t vector_length, - const size_t shmem_extra_block, - const size_t shmem_extra_thread) { - int numBlocks; - int blockSize = 1024; - int sharedmem = - shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + - FunctorTeamShmemSize<typename DriverType::functor_type>::value( - f, blockSize / vector_length); - cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &numBlocks, cuda_parallel_launch_constant_memory<DriverType>, blockSize, - sharedmem); - - if (numBlocks > 0) return blockSize; - while (blockSize > 32 && numBlocks == 0) { - blockSize /= 2; - sharedmem = - shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + - FunctorTeamShmemSize<typename DriverType::functor_type>::value( - f, blockSize / vector_length); - - cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &numBlocks, cuda_parallel_launch_constant_memory<DriverType>, - blockSize, sharedmem); - } - int blockSizeUpperBound = blockSize * 2; - while (blockSize < blockSizeUpperBound && numBlocks > 0) { - blockSize += 32; - sharedmem = - shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + - FunctorTeamShmemSize<typename DriverType::functor_type>::value( - f, blockSize / vector_length); - - cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &numBlocks, cuda_parallel_launch_constant_memory<DriverType>, - blockSize, sharedmem); - } - return blockSize - 32; - } -}; - -template <class DriverType> -struct CudaGetMaxBlockSize<DriverType, Kokkos::LaunchBounds<>, false> { - static int get_block_size(const typename DriverType::functor_type& f, - const size_t vector_length, - const size_t shmem_extra_block, - const size_t shmem_extra_thread) { - int numBlocks; - - unsigned int blockSize = 1024; - unsigned int sharedmem = - shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + - FunctorTeamShmemSize<typename DriverType::functor_type>::value( - f, blockSize / vector_length); - cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &numBlocks, cuda_parallel_launch_local_memory<DriverType>, blockSize, - sharedmem); - - if (numBlocks > 0) return blockSize; - while (blockSize > 32 && numBlocks == 0) { - blockSize /= 2; - sharedmem = - shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + - FunctorTeamShmemSize<typename DriverType::functor_type>::value( - f, blockSize / vector_length); - - cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &numBlocks, cuda_parallel_launch_local_memory<DriverType>, blockSize, - sharedmem); - } - unsigned int blockSizeUpperBound = blockSize * 2; - while (blockSize < blockSizeUpperBound && numBlocks > 0) { - blockSize += 32; - sharedmem = - shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + - FunctorTeamShmemSize<typename DriverType::functor_type>::value( - f, blockSize / vector_length); - cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &numBlocks, cuda_parallel_launch_local_memory<DriverType>, blockSize, - sharedmem); - } - return blockSize - 32; + if (early_termination && blocks_per_sm != 0) break; } -}; - -template <class DriverType, unsigned int MaxThreadsPerBlock, - unsigned int MinBlocksPerSM> -struct CudaGetMaxBlockSize< - DriverType, Kokkos::LaunchBounds<MaxThreadsPerBlock, MinBlocksPerSM>, - true> { - static int get_block_size(const typename DriverType::functor_type& f, - const size_t vector_length, - const size_t shmem_extra_block, - const size_t shmem_extra_thread) { - int numBlocks = 0, oldNumBlocks = 0; - unsigned int blockSize = MaxThreadsPerBlock; - unsigned int sharedmem = - shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + - FunctorTeamShmemSize<typename DriverType::functor_type>::value( - f, blockSize / vector_length); - cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &numBlocks, - cuda_parallel_launch_constant_memory<DriverType, MaxThreadsPerBlock, - MinBlocksPerSM>, - blockSize, sharedmem); - - if (static_cast<unsigned int>(numBlocks) >= MinBlocksPerSM) - return blockSize; - while (blockSize > 32 && - static_cast<unsigned int>(numBlocks) < MinBlocksPerSM) { - blockSize /= 2; - sharedmem = - shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + - FunctorTeamShmemSize<typename DriverType::functor_type>::value( - f, blockSize / vector_length); - - cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &numBlocks, cuda_parallel_launch_constant_memory<DriverType>, - blockSize, sharedmem); - } - unsigned int blockSizeUpperBound = - (blockSize * 2 < MaxThreadsPerBlock ? blockSize * 2 - : MaxThreadsPerBlock); - while (blockSize<blockSizeUpperBound&& static_cast<unsigned int>(numBlocks)> - MinBlocksPerSM) { - blockSize += 32; - sharedmem = - shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + - FunctorTeamShmemSize<typename DriverType::functor_type>::value( - f, blockSize / vector_length); - oldNumBlocks = numBlocks; - cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &numBlocks, cuda_parallel_launch_constant_memory<DriverType>, - blockSize, sharedmem); - } - if (static_cast<unsigned int>(oldNumBlocks) >= MinBlocksPerSM) - return blockSize - 32; - return -1; - } -}; + return opt_block_size; +} -template <class DriverType, unsigned int MaxThreadsPerBlock, - unsigned int MinBlocksPerSM> -struct CudaGetMaxBlockSize< - DriverType, Kokkos::LaunchBounds<MaxThreadsPerBlock, MinBlocksPerSM>, - false> { - static int get_block_size(const typename DriverType::functor_type& f, - const size_t vector_length, - const size_t shmem_extra_block, - const size_t shmem_extra_thread) { - int numBlocks = 0, oldNumBlocks = 0; - unsigned int blockSize = MaxThreadsPerBlock; - int sharedmem = - shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + - FunctorTeamShmemSize<typename DriverType::functor_type>::value( - f, blockSize / vector_length); - cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &numBlocks, - cuda_parallel_launch_local_memory<DriverType, MaxThreadsPerBlock, - MinBlocksPerSM>, - blockSize, sharedmem); - if (static_cast<unsigned int>(numBlocks) >= MinBlocksPerSM) - return blockSize; +template <class FunctorType, class LaunchBounds> +int cuda_get_max_block_size(const CudaInternal* cuda_instance, + const cudaFuncAttributes& attr, + const FunctorType& f, const size_t vector_length, + const size_t shmem_block, + const size_t shmem_thread) { + (void)cuda_instance; - while (blockSize > 32 && - static_cast<unsigned int>(numBlocks) < MinBlocksPerSM) { - blockSize /= 2; - sharedmem = - shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + - FunctorTeamShmemSize<typename DriverType::functor_type>::value( - f, blockSize / vector_length); + auto const& prop = Kokkos::Cuda().cuda_device_prop(); - cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &numBlocks, cuda_parallel_launch_local_memory<DriverType>, blockSize, - sharedmem); - } - unsigned int blockSizeUpperBound = - (blockSize * 2 < MaxThreadsPerBlock ? blockSize * 2 - : MaxThreadsPerBlock); - while (blockSize < blockSizeUpperBound && - static_cast<unsigned int>(numBlocks) >= MinBlocksPerSM) { - blockSize += 32; - sharedmem = - shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + - FunctorTeamShmemSize<typename DriverType::functor_type>::value( - f, blockSize / vector_length); - oldNumBlocks = numBlocks; - cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &numBlocks, cuda_parallel_launch_local_memory<DriverType>, blockSize, - sharedmem); - } - if (static_cast<unsigned int>(oldNumBlocks) >= MinBlocksPerSM) - return blockSize - 32; - return -1; - } -}; + auto const block_size_to_dynamic_shmem = [&f, vector_length, shmem_block, + shmem_thread](int block_size) { + size_t const functor_shmem = + Kokkos::Impl::FunctorTeamShmemSize<FunctorType>::value( + f, block_size / vector_length); -template <class DriverType, class LaunchBounds, bool Large> -struct CudaGetOptBlockSize; + size_t const dynamic_shmem = shmem_block + + shmem_thread * (block_size / vector_length) + + functor_shmem; + return dynamic_shmem; + }; -template <class DriverType, class LaunchBounds> -int cuda_get_opt_block_size(const typename DriverType::functor_type& f, - const size_t vector_length, - const size_t shmem_extra_block, - const size_t shmem_extra_thread) { - return CudaGetOptBlockSize< - DriverType, LaunchBounds, - // LaunchBounds::launch_mechanism == Kokkos::Experimental::LaunchDefault ? - // (( CudaTraits::ConstantMemoryUseThreshold < - // sizeof(DriverType) )? - // Kokkos::Experimental::CudaLaunchConstantMemory:Kokkos::Experimental::CudaLaunchLocalMemory): - // LaunchBounds::launch_mechanism - (CudaTraits::ConstantMemoryUseThreshold < - sizeof(DriverType))>::get_block_size(f, vector_length, shmem_extra_block, - shmem_extra_thread); + return cuda_deduce_block_size(true, prop, attr, block_size_to_dynamic_shmem, + LaunchBounds{}); } template <class FunctorType, class LaunchBounds> @@ -369,221 +178,59 @@ int cuda_get_opt_block_size(const CudaInternal* cuda_instance, const FunctorType& f, const size_t vector_length, const size_t shmem_block, const size_t shmem_thread) { - const int min_blocks_per_sm = - LaunchBounds::minBperSM == 0 ? 1 : LaunchBounds::minBperSM; - const int max_threads_per_block = LaunchBounds::maxTperB == 0 - ? cuda_instance->m_maxThreadsPerBlock - : LaunchBounds::maxTperB; + (void)cuda_instance; - const int regs_per_thread = attr.numRegs; - const int regs_per_sm = cuda_instance->m_regsPerSM; - const int shmem_per_sm = cuda_instance->m_shmemPerSM; - const int max_shmem_per_block = cuda_instance->m_maxShmemPerBlock; - const int max_blocks_per_sm = cuda_instance->m_maxBlocksPerSM; - const int max_threads_per_sm = cuda_instance->m_maxThreadsPerSM; + auto const& prop = Kokkos::Cuda().cuda_device_prop(); - int block_size = std::min(attr.maxThreadsPerBlock, max_threads_per_block); + auto const block_size_to_dynamic_shmem = [&f, vector_length, shmem_block, + shmem_thread](int block_size) { + size_t const functor_shmem = + Kokkos::Impl::FunctorTeamShmemSize<FunctorType>::value( + f, block_size / vector_length); - int functor_shmem = - FunctorTeamShmemSize<FunctorType>::value(f, block_size / vector_length); - int total_shmem = shmem_block + shmem_thread * (block_size / vector_length) + - functor_shmem + attr.sharedSizeBytes; - int max_blocks_regs = regs_per_sm / (regs_per_thread * block_size); - int max_blocks_shmem = - (total_shmem < max_shmem_per_block) - ? (total_shmem > 0 ? shmem_per_sm / total_shmem : max_blocks_regs) - : 0; - int blocks_per_sm = std::min(max_blocks_regs, max_blocks_shmem); - int threads_per_sm = blocks_per_sm * block_size; - if (threads_per_sm > max_threads_per_sm) { - blocks_per_sm = max_threads_per_sm / block_size; - threads_per_sm = blocks_per_sm * block_size; - } - int opt_block_size = (blocks_per_sm >= min_blocks_per_sm) ? block_size : 0; - int opt_threads_per_sm = threads_per_sm; + size_t const dynamic_shmem = shmem_block + + shmem_thread * (block_size / vector_length) + + functor_shmem; + return dynamic_shmem; + }; - block_size -= 32; - while ((block_size >= 32)) { - functor_shmem = - FunctorTeamShmemSize<FunctorType>::value(f, block_size / vector_length); - total_shmem = shmem_block + shmem_thread * (block_size / vector_length) + - functor_shmem + attr.sharedSizeBytes; - max_blocks_regs = regs_per_sm / (regs_per_thread * block_size); - max_blocks_shmem = - (total_shmem < max_shmem_per_block) - ? (total_shmem > 0 ? shmem_per_sm / total_shmem : max_blocks_regs) - : 0; - blocks_per_sm = std::min(max_blocks_regs, max_blocks_shmem); - threads_per_sm = blocks_per_sm * block_size; - if (threads_per_sm > max_threads_per_sm) { - blocks_per_sm = max_threads_per_sm / block_size; - threads_per_sm = blocks_per_sm * block_size; - } - if ((blocks_per_sm >= min_blocks_per_sm) && - (blocks_per_sm <= max_blocks_per_sm)) { - if (threads_per_sm >= opt_threads_per_sm) { - opt_block_size = block_size; - opt_threads_per_sm = threads_per_sm; - } - } - block_size -= 32; - } - return opt_block_size; + return cuda_deduce_block_size(false, prop, attr, block_size_to_dynamic_shmem, + LaunchBounds{}); } -template <class DriverType> -struct CudaGetOptBlockSize<DriverType, Kokkos::LaunchBounds<0, 0>, true> { - static int get_block_size(const typename DriverType::functor_type& f, - const size_t vector_length, - const size_t shmem_extra_block, - const size_t shmem_extra_thread) { - int blockSize = 16; - int numBlocks; - int sharedmem; - int maxOccupancy = 0; - int bestBlockSize = 0; - - while (blockSize < 1024) { - blockSize *= 2; - - // calculate the occupancy with that optBlockSize and check whether its - // larger than the largest one found so far - sharedmem = - shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + - FunctorTeamShmemSize<typename DriverType::functor_type>::value( - f, blockSize / vector_length); - cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &numBlocks, cuda_parallel_launch_constant_memory<DriverType>, - blockSize, sharedmem); - if (maxOccupancy < numBlocks * blockSize) { - maxOccupancy = numBlocks * blockSize; - bestBlockSize = blockSize; - } - } - return bestBlockSize; - } -}; - -template <class DriverType> -struct CudaGetOptBlockSize<DriverType, Kokkos::LaunchBounds<0, 0>, false> { - static int get_block_size(const typename DriverType::functor_type& f, - const size_t vector_length, - const size_t shmem_extra_block, - const size_t shmem_extra_thread) { - int blockSize = 16; - int numBlocks; - int sharedmem; - int maxOccupancy = 0; - int bestBlockSize = 0; - - while (blockSize < 1024) { - blockSize *= 2; - sharedmem = - shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + - FunctorTeamShmemSize<typename DriverType::functor_type>::value( - f, blockSize / vector_length); - - cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &numBlocks, cuda_parallel_launch_local_memory<DriverType>, blockSize, - sharedmem); - - if (maxOccupancy < numBlocks * blockSize) { - maxOccupancy = numBlocks * blockSize; - bestBlockSize = blockSize; - } - } - return bestBlockSize; - } -}; - -template <class DriverType, unsigned int MaxThreadsPerBlock, - unsigned int MinBlocksPerSM> -struct CudaGetOptBlockSize< - DriverType, Kokkos::LaunchBounds<MaxThreadsPerBlock, MinBlocksPerSM>, - true> { - static int get_block_size(const typename DriverType::functor_type& f, - const size_t vector_length, - const size_t shmem_extra_block, - const size_t shmem_extra_thread) { - int blockSize = 16; - int numBlocks; - int sharedmem; - int maxOccupancy = 0; - int bestBlockSize = 0; - int max_threads_per_block = - std::min(MaxThreadsPerBlock, - cuda_internal_maximum_warp_count() * CudaTraits::WarpSize); - - while (blockSize < max_threads_per_block) { - blockSize *= 2; - - // calculate the occupancy with that optBlockSize and check whether its - // larger than the largest one found so far - sharedmem = - shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + - FunctorTeamShmemSize<typename DriverType::functor_type>::value( - f, blockSize / vector_length); - cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &numBlocks, - cuda_parallel_launch_constant_memory<DriverType, MaxThreadsPerBlock, - MinBlocksPerSM>, - blockSize, sharedmem); - if (numBlocks >= int(MinBlocksPerSM) && - blockSize <= int(MaxThreadsPerBlock)) { - if (maxOccupancy < numBlocks * blockSize) { - maxOccupancy = numBlocks * blockSize; - bestBlockSize = blockSize; - } - } - } - if (maxOccupancy > 0) return bestBlockSize; - return -1; - } -}; - -template <class DriverType, unsigned int MaxThreadsPerBlock, - unsigned int MinBlocksPerSM> -struct CudaGetOptBlockSize< - DriverType, Kokkos::LaunchBounds<MaxThreadsPerBlock, MinBlocksPerSM>, - false> { - static int get_block_size(const typename DriverType::functor_type& f, - const size_t vector_length, - const size_t shmem_extra_block, - const size_t shmem_extra_thread) { - int blockSize = 16; - int numBlocks; - int sharedmem; - int maxOccupancy = 0; - int bestBlockSize = 0; - int max_threads_per_block = - std::min(MaxThreadsPerBlock, - cuda_internal_maximum_warp_count() * CudaTraits::WarpSize); - - while (blockSize < max_threads_per_block) { - blockSize *= 2; - sharedmem = - shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + - FunctorTeamShmemSize<typename DriverType::functor_type>::value( - f, blockSize / vector_length); - - cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &numBlocks, - cuda_parallel_launch_local_memory<DriverType, MaxThreadsPerBlock, - MinBlocksPerSM>, - blockSize, sharedmem); - if (numBlocks >= int(MinBlocksPerSM) && - blockSize <= int(MaxThreadsPerBlock)) { - if (maxOccupancy < numBlocks * blockSize) { - maxOccupancy = numBlocks * blockSize; - bestBlockSize = blockSize; - } - } - } - if (maxOccupancy > 0) return bestBlockSize; - return -1; - } -}; - +// Assuming cudaFuncSetCacheConfig(MyKernel, cudaFuncCachePreferL1) +// NOTE these number can be obtained several ways: +// * One option is to download the CUDA Occupancy Calculator spreadsheet, select +// "Compute Capability" first and check what is the smallest "Shared Memory +// Size Config" that is available. The "Shared Memory Per Multiprocessor" in +// bytes is then to be found below in the summary. +// * Another option would be to look for the information in the "Tuning +// Guide(s)" of the CUDA Toolkit Documentation for each GPU architecture, in +// the "Shared Memory" section (more tedious) +inline size_t get_shmem_per_sm_prefer_l1(cudaDeviceProp const& properties) { + int const compute_capability = properties.major * 10 + properties.minor; + return [compute_capability]() { + switch (compute_capability) { + case 30: + case 32: + case 35: return 16; + case 37: return 80; + case 50: + case 53: + case 60: + case 62: return 64; + case 52: + case 61: return 96; + case 70: + case 80: return 8; + case 75: return 32; + default: + Kokkos::Impl::throw_runtime_exception( + "Unknown device in cuda block size deduction"); + } + return 0; + }() * 1024; +} } // namespace Impl } // namespace Kokkos diff --git a/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Error.hpp b/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Error.hpp index 01e60315e..4759001d8 100644 --- a/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Error.hpp +++ b/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Error.hpp @@ -50,7 +50,7 @@ #include <impl/Kokkos_Error.hpp> -#include <iostream> +#include <iosfwd> namespace Kokkos { namespace Impl { @@ -113,12 +113,7 @@ class CudaRawMemoryAllocationFailure : public RawMemoryAllocationFailure { get_failure_mode(arg_error_code), arg_mechanism), m_error_code(arg_error_code) {} - void append_additional_error_information(std::ostream& o) const override { - if (m_error_code != cudaSuccess) { - o << " The Cuda allocation returned the error code \"\"" - << cudaGetErrorName(m_error_code) << "\"."; - } - } + void append_additional_error_information(std::ostream& o) const override; }; } // end namespace Experimental diff --git a/packages/kokkos/core/src/Cuda/Kokkos_Cuda_GraphNodeKernel.hpp b/packages/kokkos/core/src/Cuda/Kokkos_Cuda_GraphNodeKernel.hpp new file mode 100644 index 000000000..d6fadd82c --- /dev/null +++ b/packages/kokkos/core/src/Cuda/Kokkos_Cuda_GraphNodeKernel.hpp @@ -0,0 +1,210 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_KOKKOS_CUDA_GRAPHNODEKERNEL_IMPL_HPP +#define KOKKOS_KOKKOS_CUDA_GRAPHNODEKERNEL_IMPL_HPP + +#include <Kokkos_Macros.hpp> + +#if defined(KOKKOS_ENABLE_CUDA) && defined(KOKKOS_CUDA_ENABLE_GRAPHS) + +#include <Kokkos_Graph_fwd.hpp> + +#include <impl/Kokkos_GraphImpl.hpp> // GraphAccess needs to be complete +#include <impl/Kokkos_SharedAlloc.hpp> // SharedAllocationRecord + +#include <Kokkos_Parallel.hpp> +#include <Kokkos_Parallel_Reduce.hpp> +#include <Kokkos_PointerOwnership.hpp> + +#include <Kokkos_Cuda.hpp> +#include <cuda_runtime_api.h> + +namespace Kokkos { +namespace Impl { + +template <class PolicyType, class Functor, class PatternTag, class... Args> +class GraphNodeKernelImpl<Kokkos::Cuda, PolicyType, Functor, PatternTag, + Args...> + : public PatternImplSpecializationFromTag<PatternTag, Functor, PolicyType, + Args..., Kokkos::Cuda>::type { + private: + using base_t = + typename PatternImplSpecializationFromTag<PatternTag, Functor, PolicyType, + Args..., Kokkos::Cuda>::type; + using size_type = Kokkos::Cuda::size_type; + // These are really functioning as optional references, though I'm not sure + // that the cudaGraph_t one needs to be since it's a pointer under the + // covers and we're not modifying it + Kokkos::ObservingRawPtr<const cudaGraph_t> m_graph_ptr = nullptr; + Kokkos::ObservingRawPtr<cudaGraphNode_t> m_graph_node_ptr = nullptr; + // Note: owned pointer to CudaSpace memory (used for global memory launches), + // which we're responsible for deallocating, but not responsible for calling + // its destructor. + using Record = Kokkos::Impl::SharedAllocationRecord<Kokkos::CudaSpace, void>; + // Basically, we have to make this mutable for the same reasons that the + // global kernel buffers in the Cuda instance are mutable... + mutable Kokkos::OwningRawPtr<base_t> m_driver_storage = nullptr; + + public: + using Policy = PolicyType; + using graph_kernel = GraphNodeKernelImpl; + + // TODO Ensure the execution space of the graph is the same as the one + // attached to the policy? + // TODO @graph kernel name info propagation + template <class PolicyDeduced, class... ArgsDeduced> + GraphNodeKernelImpl(std::string, Kokkos::Cuda const&, Functor arg_functor, + PolicyDeduced&& arg_policy, ArgsDeduced&&... args) + // This is super ugly, but it works for now and is the most minimal change + // to the codebase for now... + : base_t(std::move(arg_functor), (PolicyDeduced &&) arg_policy, + (ArgsDeduced &&) args...) {} + + // FIXME @graph Forward through the instance once that works in the backends + template <class PolicyDeduced> + GraphNodeKernelImpl(Kokkos::Cuda const& ex, Functor arg_functor, + PolicyDeduced&& arg_policy) + : GraphNodeKernelImpl("", ex, std::move(arg_functor), + (PolicyDeduced &&) arg_policy) {} + + ~GraphNodeKernelImpl() { + if (m_driver_storage) { + // We should be the only owner, but this is still the easiest way to + // allocate and deallocate aligned memory for these sorts of things + Record::decrement(Record::get_record(m_driver_storage)); + } + } + + void set_cuda_graph_ptr(cudaGraph_t* arg_graph_ptr) { + m_graph_ptr = arg_graph_ptr; + } + void set_cuda_graph_node_ptr(cudaGraphNode_t* arg_node_ptr) { + m_graph_node_ptr = arg_node_ptr; + } + cudaGraphNode_t* get_cuda_graph_node_ptr() const { return m_graph_node_ptr; } + cudaGraph_t const* get_cuda_graph_ptr() const { return m_graph_ptr; } + + Kokkos::ObservingRawPtr<base_t> allocate_driver_memory_buffer() const { + KOKKOS_EXPECTS(m_driver_storage == nullptr) + + auto* record = Record::allocate( + Kokkos::CudaSpace{}, "GraphNodeKernel global memory functor storage", + sizeof(base_t)); + + Record::increment(record); + m_driver_storage = reinterpret_cast<base_t*>(record->data()); + KOKKOS_ENSURES(m_driver_storage != nullptr) + return m_driver_storage; + } +}; + +struct CudaGraphNodeAggregateKernel { + using graph_kernel = CudaGraphNodeAggregateKernel; + + // Aggregates don't need a policy, but for the purposes of checking the static + // assertions about graph kerenls, + struct Policy { + using is_graph_kernel = std::true_type; + }; +}; + +template <class KernelType, + class Tag = + typename PatternTagFromImplSpecialization<KernelType>::type> +struct get_graph_node_kernel_type + : identity<GraphNodeKernelImpl<Kokkos::Cuda, typename KernelType::Policy, + typename KernelType::functor_type, Tag>> {}; +template <class KernelType> +struct get_graph_node_kernel_type<KernelType, Kokkos::ParallelReduceTag> + : identity<GraphNodeKernelImpl<Kokkos::Cuda, typename KernelType::Policy, + typename KernelType::functor_type, + Kokkos::ParallelReduceTag, + typename KernelType::reducer_type>> {}; + +//============================================================================== +// <editor-fold desc="get_cuda_graph_*() helper functions"> {{{1 + +template <class KernelType> +auto* allocate_driver_storage_for_kernel(KernelType const& kernel) { + using graph_node_kernel_t = + typename get_graph_node_kernel_type<KernelType>::type; + auto const& kernel_as_graph_kernel = + static_cast<graph_node_kernel_t const&>(kernel); + // TODO @graphs we need to somehow indicate the need for a fence in the + // destructor of the GraphImpl object (so that we don't have to + // just always do it) + return kernel_as_graph_kernel.allocate_driver_memory_buffer(); +} + +template <class KernelType> +auto const& get_cuda_graph_from_kernel(KernelType const& kernel) { + using graph_node_kernel_t = + typename get_graph_node_kernel_type<KernelType>::type; + auto const& kernel_as_graph_kernel = + static_cast<graph_node_kernel_t const&>(kernel); + cudaGraph_t const* graph_ptr = kernel_as_graph_kernel.get_cuda_graph_ptr(); + KOKKOS_EXPECTS(graph_ptr != nullptr); + return *graph_ptr; +} + +template <class KernelType> +auto& get_cuda_graph_node_from_kernel(KernelType const& kernel) { + using graph_node_kernel_t = + typename get_graph_node_kernel_type<KernelType>::type; + auto const& kernel_as_graph_kernel = + static_cast<graph_node_kernel_t const&>(kernel); + auto* graph_node_ptr = kernel_as_graph_kernel.get_cuda_graph_node_ptr(); + KOKKOS_EXPECTS(graph_node_ptr != nullptr); + return *graph_node_ptr; +} + +// </editor-fold> end get_cuda_graph_*() helper functions }}}1 +//============================================================================== + +} // end namespace Impl +} // end namespace Kokkos + +#endif // defined(KOKKOS_ENABLE_CUDA) +#endif // KOKKOS_KOKKOS_CUDA_GRAPHNODEKERNEL_IMPL_HPP diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/Cuda/Kokkos_Cuda_GraphNode_Impl.hpp similarity index 52% rename from packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp rename to packages/kokkos/core/src/Cuda/Kokkos_Cuda_GraphNode_Impl.hpp index f7a669c82..f4539cd2c 100644 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp +++ b/packages/kokkos/core/src/Cuda/Kokkos_Cuda_GraphNode_Impl.hpp @@ -1,3 +1,4 @@ +/* //@HEADER // ************************************************************************ // @@ -8,8 +9,6 @@ // Under the terms of Contract DE-NA0003525 with NTESS, // the U.S. Government retains certain rights in this software. // -// Kokkos is licensed under 3-clause BSD terms of use: -// // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: @@ -41,18 +40,64 @@ // // ************************************************************************ //@HEADER +*/ + +#ifndef KOKKOS_KOKKOS_CUDA_GRAPHNODE_IMPL_HPP +#define KOKKOS_KOKKOS_CUDA_GRAPHNODE_IMPL_HPP + +#include <Kokkos_Macros.hpp> + +#if defined(KOKKOS_ENABLE_CUDA) && defined(KOKKOS_CUDA_ENABLE_GRAPHS) + +#include <Kokkos_Graph_fwd.hpp> + +#include <impl/Kokkos_GraphImpl.hpp> // GraphAccess needs to be complete + +#include <Kokkos_Cuda.hpp> +#include <cuda_runtime_api.h> -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> namespace Kokkos { namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutStride, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos + +template <> +struct GraphNodeBackendSpecificDetails<Kokkos::Cuda> { + cudaGraphNode_t node = nullptr; + + //---------------------------------------------------------------------------- + // <editor-fold desc="Ctors, destructor, and assignment"> {{{2 + + explicit GraphNodeBackendSpecificDetails() = default; + + explicit GraphNodeBackendSpecificDetails( + _graph_node_is_root_ctor_tag) noexcept {} + + // </editor-fold> end Ctors, destructor, and assignment }}}2 + //---------------------------------------------------------------------------- +}; + +template <class Kernel, class PredecessorRef> +struct GraphNodeBackendDetailsBeforeTypeErasure<Kokkos::Cuda, Kernel, + PredecessorRef> { + protected: + //---------------------------------------------------------------------------- + // <editor-fold desc="ctors, destructor, and assignment"> {{{2 + + GraphNodeBackendDetailsBeforeTypeErasure( + Kokkos::Cuda const&, Kernel&, PredecessorRef const&, + GraphNodeBackendSpecificDetails<Kokkos::Cuda>&) noexcept {} + + GraphNodeBackendDetailsBeforeTypeErasure( + Kokkos::Cuda const&, _graph_node_is_root_ctor_tag, + GraphNodeBackendSpecificDetails<Kokkos::Cuda>&) noexcept {} + + // </editor-fold> end ctors, destructor, and assignment }}}2 + //---------------------------------------------------------------------------- +}; + +} // end namespace Impl +} // end namespace Kokkos + +#include <Cuda/Kokkos_Cuda_GraphNodeKernel.hpp> + +#endif // defined(KOKKOS_ENABLE_CUDA) +#endif // KOKKOS_KOKKOS_CUDA_GRAPHNODE_IMPL_HPP diff --git a/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Graph_Impl.hpp b/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Graph_Impl.hpp new file mode 100644 index 000000000..3de7a6991 --- /dev/null +++ b/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Graph_Impl.hpp @@ -0,0 +1,219 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_KOKKOS_CUDA_GRAPH_IMPL_HPP +#define KOKKOS_KOKKOS_CUDA_GRAPH_IMPL_HPP + +#include <Kokkos_Macros.hpp> + +#if defined(KOKKOS_ENABLE_CUDA) && defined(KOKKOS_CUDA_ENABLE_GRAPHS) + +#include <Kokkos_Graph_fwd.hpp> + +#include <impl/Kokkos_GraphImpl.hpp> // GraphAccess needs to be complete + +// GraphNodeImpl needs to be complete because GraphImpl here is a full +// specialization and not just a partial one +#include <impl/Kokkos_GraphNodeImpl.hpp> +#include <Cuda/Kokkos_Cuda_GraphNode_Impl.hpp> + +#include <Kokkos_Cuda.hpp> +#include <cuda_runtime_api.h> + +namespace Kokkos { +namespace Impl { + +template <> +struct GraphImpl<Kokkos::Cuda> { + public: + using execution_space = Kokkos::Cuda; + + private: + execution_space m_execution_space; + cudaGraph_t m_graph = nullptr; + cudaGraphExec_t m_graph_exec = nullptr; + + using cuda_graph_flags_t = unsigned int; + + using node_details_t = GraphNodeBackendSpecificDetails<Kokkos::Cuda>; + + void _instantiate_graph() { + constexpr size_t error_log_size = 256; + cudaGraphNode_t error_node = nullptr; + char error_log[error_log_size]; + CUDA_SAFE_CALL(cudaGraphInstantiate(&m_graph_exec, m_graph, &error_node, + error_log, error_log_size)); + // TODO @graphs print out errors + } + + public: + using root_node_impl_t = + GraphNodeImpl<Kokkos::Cuda, Kokkos::Experimental::TypeErasedTag, + Kokkos::Experimental::TypeErasedTag>; + using aggregate_kernel_impl_t = CudaGraphNodeAggregateKernel; + using aggregate_node_impl_t = + GraphNodeImpl<Kokkos::Cuda, aggregate_kernel_impl_t, + Kokkos::Experimental::TypeErasedTag>; + + // Not moveable or copyable; it spends its whole life as a shared_ptr in the + // Graph object + GraphImpl() = delete; + GraphImpl(GraphImpl const&) = delete; + GraphImpl(GraphImpl&&) = delete; + GraphImpl& operator=(GraphImpl const&) = delete; + GraphImpl& operator=(GraphImpl&&) = delete; + ~GraphImpl() { + // TODO @graphs we need to somehow indicate the need for a fence in the + // destructor of the GraphImpl object (so that we don't have to + // just always do it) + m_execution_space.fence(); + KOKKOS_EXPECTS(bool(m_graph)) + if (bool(m_graph_exec)) { + CUDA_SAFE_CALL(cudaGraphExecDestroy(m_graph_exec)); + } + CUDA_SAFE_CALL(cudaGraphDestroy(m_graph)); + }; + + explicit GraphImpl(Kokkos::Cuda arg_instance) + : m_execution_space(std::move(arg_instance)) { + CUDA_SAFE_CALL(cudaGraphCreate(&m_graph, cuda_graph_flags_t{0})); + } + + void add_node(std::shared_ptr<aggregate_node_impl_t> const& arg_node_ptr) { + // All of the predecessors are just added as normal, so all we need to + // do here is add an empty node + CUDA_SAFE_CALL(cudaGraphAddEmptyNode(&(arg_node_ptr->node_details_t::node), + m_graph, + /* dependencies = */ nullptr, + /* numDependencies = */ 0)); + } + + template <class NodeImpl> + // requires NodeImplPtr is a shared_ptr to specialization of GraphNodeImpl + // Also requires that the kernel has the graph node tag in it's policy + void add_node(std::shared_ptr<NodeImpl> const& arg_node_ptr) { + static_assert( + NodeImpl::kernel_type::Policy::is_graph_kernel::value, + "Something has gone horribly wrong, but it's too complicated to " + "explain here. Buy Daisy a coffee and she'll explain it to you."); + KOKKOS_EXPECTS(bool(arg_node_ptr)); + // The Kernel launch from the execute() method has been shimmed to insert + // the node into the graph + auto& kernel = arg_node_ptr->get_kernel(); + // note: using arg_node_ptr->node_details_t::node caused an ICE in NVCC 10.1 + auto& cuda_node = static_cast<node_details_t*>(arg_node_ptr.get())->node; + KOKKOS_EXPECTS(!bool(cuda_node)); + kernel.set_cuda_graph_ptr(&m_graph); + kernel.set_cuda_graph_node_ptr(&cuda_node); + kernel.execute(); + KOKKOS_ENSURES(bool(cuda_node)); + } + + template <class NodeImplPtr, class PredecessorRef> + // requires PredecessorRef is a specialization of GraphNodeRef that has + // already been added to this graph and NodeImpl is a specialization of + // GraphNodeImpl that has already been added to this graph. + void add_predecessor(NodeImplPtr arg_node_ptr, PredecessorRef arg_pred_ref) { + KOKKOS_EXPECTS(bool(arg_node_ptr)) + auto pred_ptr = GraphAccess::get_node_ptr(arg_pred_ref); + KOKKOS_EXPECTS(bool(pred_ptr)) + + // clang-format off + // NOTE const-qualifiers below are commented out because of an API break + // from CUDA 10.0 to CUDA 10.1 + // cudaGraphAddDependencies(cudaGraph_t, cudaGraphNode_t*, cudaGraphNode_t*, size_t) + // cudaGraphAddDependencies(cudaGraph_t, const cudaGraphNode_t*, const cudaGraphNode_t*, size_t) + // clang-format on + auto /*const*/& pred_cuda_node = pred_ptr->node_details_t::node; + KOKKOS_EXPECTS(bool(pred_cuda_node)) + + auto /*const*/& cuda_node = arg_node_ptr->node_details_t::node; + KOKKOS_EXPECTS(bool(cuda_node)) + + CUDA_SAFE_CALL( + cudaGraphAddDependencies(m_graph, &pred_cuda_node, &cuda_node, 1)); + } + + void submit() { + if (!bool(m_graph_exec)) { + _instantiate_graph(); + } + CUDA_SAFE_CALL( + cudaGraphLaunch(m_graph_exec, m_execution_space.cuda_stream())); + } + + execution_space const& get_execution_space() const noexcept { + return m_execution_space; + } + + auto create_root_node_ptr() { + KOKKOS_EXPECTS(bool(m_graph)) + KOKKOS_EXPECTS(!bool(m_graph_exec)) + auto rv = std::make_shared<root_node_impl_t>( + get_execution_space(), _graph_node_is_root_ctor_tag{}); + CUDA_SAFE_CALL(cudaGraphAddEmptyNode(&(rv->node_details_t::node), m_graph, + /* dependencies = */ nullptr, + /* numDependencies = */ 0)); + KOKKOS_ENSURES(bool(rv->node_details_t::node)) + return rv; + } + + template <class... PredecessorRefs> + // See requirements/expectations in GraphBuilder + auto create_aggregate_ptr(PredecessorRefs&&...) { + // The attachment to predecessors, which is all we really need, happens + // in the generic layer, which calls through to add_predecessor for + // each predecessor ref, so all we need to do here is create the (trivial) + // aggregate node. + return std::make_shared<aggregate_node_impl_t>( + m_execution_space, _graph_node_kernel_ctor_tag{}, + aggregate_kernel_impl_t{}); + } +}; + +} // end namespace Impl +} // end namespace Kokkos + +#endif // defined(KOKKOS_ENABLE_CUDA) +#endif // KOKKOS_KOKKOS_CUDA_GRAPH_IMPL_HPP diff --git a/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Half.hpp b/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Half.hpp new file mode 100644 index 000000000..a9a62380e --- /dev/null +++ b/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Half.hpp @@ -0,0 +1,710 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_CUDA_HALF_HPP_ +#define KOKKOS_CUDA_HALF_HPP_ + +#include <Kokkos_Macros.hpp> +#ifdef KOKKOS_ENABLE_CUDA +#if !(defined(KOKKOS_COMPILER_CLANG) && KOKKOS_COMPILER_CLANG < 900) && \ + !(defined(KOKKOS_ARCH_KEPLER) || defined(KOKKOS_ARCH_MAXWELL50) || \ + defined(KOKKOS_ARCH_MAXWELL52)) +#include <cuda_fp16.h> + +#ifndef KOKKOS_IMPL_HALF_TYPE_DEFINED +// Make sure no one else tries to define half_t +#define KOKKOS_IMPL_HALF_TYPE_DEFINED + +namespace Kokkos { +namespace Impl { +struct half_impl_t { + using type = __half; +}; +} // namespace Impl +namespace Experimental { + +// Forward declarations +class half_t; + +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(float val); +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(bool val); +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(double val); +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(short val); +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(int val); +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(long val); +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(long long val); +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(unsigned short val); +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(unsigned int val); +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(unsigned long val); +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(unsigned long long val); + +template <class T> +KOKKOS_INLINE_FUNCTION std::enable_if_t<std::is_same<T, float>::value, T> + cast_from_half(half_t); +template <class T> +KOKKOS_INLINE_FUNCTION std::enable_if_t<std::is_same<T, bool>::value, T> + cast_from_half(half_t); +template <class T> +KOKKOS_INLINE_FUNCTION std::enable_if_t<std::is_same<T, double>::value, T> + cast_from_half(half_t); +template <class T> +KOKKOS_INLINE_FUNCTION std::enable_if_t<std::is_same<T, short>::value, T> + cast_from_half(half_t); +template <class T> +KOKKOS_INLINE_FUNCTION std::enable_if_t<std::is_same<T, int>::value, T> + cast_from_half(half_t); +template <class T> +KOKKOS_INLINE_FUNCTION std::enable_if_t<std::is_same<T, long>::value, T> + cast_from_half(half_t); +template <class T> +KOKKOS_INLINE_FUNCTION std::enable_if_t<std::is_same<T, long long>::value, T> + cast_from_half(half_t); +template <class T> +KOKKOS_INLINE_FUNCTION + std::enable_if_t<std::is_same<T, unsigned short>::value, T> + cast_from_half(half_t); +template <class T> +KOKKOS_INLINE_FUNCTION std::enable_if_t<std::is_same<T, unsigned int>::value, T> + cast_from_half(half_t); +template <class T> +KOKKOS_INLINE_FUNCTION + std::enable_if_t<std::is_same<T, unsigned long>::value, T> + cast_from_half(half_t); +template <class T> +KOKKOS_INLINE_FUNCTION + std::enable_if_t<std::is_same<T, unsigned long long>::value, T> + cast_from_half(half_t); + +class half_t { + public: + using impl_type = Kokkos::Impl::half_impl_t::type; + + private: + impl_type val; + + public: + KOKKOS_FUNCTION + half_t() : val(0.0F) {} + + // Don't support implicit conversion back to impl_type. + // impl_type is a storage only type on host. + KOKKOS_FUNCTION + explicit operator impl_type() const { return val; } + KOKKOS_FUNCTION + explicit operator float() const { return cast_from_half<float>(*this); } + KOKKOS_FUNCTION + explicit operator bool() const { return cast_from_half<bool>(*this); } + KOKKOS_FUNCTION + explicit operator double() const { return cast_from_half<double>(*this); } + KOKKOS_FUNCTION + explicit operator short() const { return cast_from_half<short>(*this); } + KOKKOS_FUNCTION + explicit operator int() const { return cast_from_half<int>(*this); } + KOKKOS_FUNCTION + explicit operator long() const { return cast_from_half<long>(*this); } + KOKKOS_FUNCTION + explicit operator long long() const { + return cast_from_half<long long>(*this); + } + KOKKOS_FUNCTION + explicit operator unsigned short() const { + return cast_from_half<unsigned short>(*this); + } + KOKKOS_FUNCTION + explicit operator unsigned int() const { + return cast_from_half<unsigned int>(*this); + } + KOKKOS_FUNCTION + explicit operator unsigned long() const { + return cast_from_half<unsigned long>(*this); + } + KOKKOS_FUNCTION + explicit operator unsigned long long() const { + return cast_from_half<unsigned long long>(*this); + } + + KOKKOS_FUNCTION + half_t(impl_type rhs) : val(rhs) {} + KOKKOS_FUNCTION + explicit half_t(float rhs) : val(cast_to_half(rhs).val) {} + KOKKOS_FUNCTION + explicit half_t(bool rhs) : val(cast_to_half(rhs).val) {} + KOKKOS_FUNCTION + explicit half_t(double rhs) : val(cast_to_half(rhs).val) {} + KOKKOS_FUNCTION + explicit half_t(short rhs) : val(cast_to_half(rhs).val) {} + KOKKOS_FUNCTION + explicit half_t(int rhs) : val(cast_to_half(rhs).val) {} + KOKKOS_FUNCTION + explicit half_t(long rhs) : val(cast_to_half(rhs).val) {} + KOKKOS_FUNCTION + explicit half_t(long long rhs) : val(cast_to_half(rhs).val) {} + KOKKOS_FUNCTION + explicit half_t(unsigned short rhs) : val(cast_to_half(rhs).val) {} + KOKKOS_FUNCTION + explicit half_t(unsigned int rhs) : val(cast_to_half(rhs).val) {} + KOKKOS_FUNCTION + explicit half_t(unsigned long rhs) : val(cast_to_half(rhs).val) {} + KOKKOS_FUNCTION + explicit half_t(unsigned long long rhs) : val(cast_to_half(rhs).val) {} + + // Unary operators + KOKKOS_FUNCTION + half_t operator+() const { + half_t tmp = *this; +#ifdef __CUDA_ARCH__ + tmp.val = +tmp.val; +#else + tmp.val = __float2half(+__half2float(tmp.val)); +#endif + return tmp; + } + + KOKKOS_FUNCTION + half_t operator-() const { + half_t tmp = *this; +#ifdef __CUDA_ARCH__ + tmp.val = -tmp.val; +#else + tmp.val = __float2half(-__half2float(tmp.val)); +#endif + return tmp; + } + + // Prefix operators + KOKKOS_FUNCTION + half_t& operator++() { +#ifdef __CUDA_ARCH__ + ++val; +#else + float tmp = __half2float(val); + ++tmp; + val = __float2half(tmp); +#endif + return *this; + } + + KOKKOS_FUNCTION + half_t& operator--() { +#ifdef __CUDA_ARCH__ + --val; +#else + float tmp = __half2float(val); + --tmp; + val = __float2half(tmp); +#endif + return *this; + } + + // Postfix operators + KOKKOS_FUNCTION + half_t operator++(int) { + half_t tmp = *this; + operator++(); + return tmp; + } + + KOKKOS_FUNCTION + half_t operator--(int) { + half_t tmp = *this; + operator--(); + return tmp; + } + + // Binary operators + KOKKOS_FUNCTION + half_t& operator=(impl_type rhs) { + val = rhs; + return *this; + } + + template <class T> + KOKKOS_FUNCTION half_t& operator=(T rhs) { + val = cast_to_half(rhs).val; + return *this; + } + + // Compound operators + KOKKOS_FUNCTION + half_t& operator+=(half_t rhs) { +#ifdef __CUDA_ARCH__ + val += rhs.val; +#else + val = __float2half(__half2float(val) + __half2float(rhs.val)); +#endif + return *this; + } + + KOKKOS_FUNCTION + half_t& operator-=(half_t rhs) { +#ifdef __CUDA_ARCH__ + val -= rhs.val; +#else + val = __float2half(__half2float(val) - __half2float(rhs.val)); +#endif + return *this; + } + + KOKKOS_FUNCTION + half_t& operator*=(half_t rhs) { +#ifdef __CUDA_ARCH__ + val *= rhs.val; +#else + val = __float2half(__half2float(val) * __half2float(rhs.val)); +#endif + return *this; + } + + KOKKOS_FUNCTION + half_t& operator/=(half_t rhs) { +#ifdef __CUDA_ARCH__ + val /= rhs.val; +#else + val = __float2half(__half2float(val) / __half2float(rhs.val)); +#endif + return *this; + } + + // Binary Arithmetic + KOKKOS_FUNCTION + half_t friend operator+(half_t lhs, half_t rhs) { +#ifdef __CUDA_ARCH__ + lhs.val += rhs.val; +#else + lhs.val = __float2half(__half2float(lhs.val) + __half2float(rhs.val)); +#endif + return lhs; + } + + KOKKOS_FUNCTION + half_t friend operator-(half_t lhs, half_t rhs) { +#ifdef __CUDA_ARCH__ + lhs.val -= rhs.val; +#else + lhs.val = __float2half(__half2float(lhs.val) - __half2float(rhs.val)); +#endif + return lhs; + } + + KOKKOS_FUNCTION + half_t friend operator*(half_t lhs, half_t rhs) { +#ifdef __CUDA_ARCH__ + lhs.val *= rhs.val; +#else + lhs.val = __float2half(__half2float(lhs.val) * __half2float(rhs.val)); +#endif + return lhs; + } + + KOKKOS_FUNCTION + half_t friend operator/(half_t lhs, half_t rhs) { +#ifdef __CUDA_ARCH__ + lhs.val /= rhs.val; +#else + lhs.val = __float2half(__half2float(lhs.val) / __half2float(rhs.val)); +#endif + return lhs; + } + + // Logical operators + KOKKOS_FUNCTION + bool operator!() const { +#ifdef __CUDA_ARCH__ + return static_cast<bool>(!val); +#else + return !__half2float(val); +#endif + } + + // NOTE: Loses short-circuit evaluation + KOKKOS_FUNCTION + bool operator&&(half_t rhs) const { +#ifdef __CUDA_ARCH__ + return static_cast<bool>(val && rhs.val); +#else + return __half2float(val) && __half2float(rhs.val); +#endif + } + + // NOTE: Loses short-circuit evaluation + KOKKOS_FUNCTION + bool operator||(half_t rhs) const { +#ifdef __CUDA_ARCH__ + return static_cast<bool>(val || rhs.val); +#else + return __half2float(val) || __half2float(rhs.val); +#endif + } + + // Comparison operators + KOKKOS_FUNCTION + bool operator==(half_t rhs) const { +#ifdef __CUDA_ARCH__ + return static_cast<bool>(val == rhs.val); +#else + return __half2float(val) == __half2float(rhs.val); +#endif + } + + KOKKOS_FUNCTION + bool operator!=(half_t rhs) const { +#ifdef __CUDA_ARCH__ + return static_cast<bool>(val != rhs.val); +#else + return __half2float(val) != __half2float(rhs.val); +#endif + } + + KOKKOS_FUNCTION + bool operator<(half_t rhs) const { +#ifdef __CUDA_ARCH__ + return static_cast<bool>(val < rhs.val); +#else + return __half2float(val) < __half2float(rhs.val); +#endif + } + + KOKKOS_FUNCTION + bool operator>(half_t rhs) const { +#ifdef __CUDA_ARCH__ + return static_cast<bool>(val > rhs.val); +#else + return __half2float(val) > __half2float(rhs.val); +#endif + } + + KOKKOS_FUNCTION + bool operator<=(half_t rhs) const { +#ifdef __CUDA_ARCH__ + return static_cast<bool>(val <= rhs.val); +#else + return __half2float(val) <= __half2float(rhs.val); +#endif + } + + KOKKOS_FUNCTION + bool operator>=(half_t rhs) const { +#ifdef __CUDA_ARCH__ + return static_cast<bool>(val >= rhs.val); +#else + return __half2float(val) >= __half2float(rhs.val); +#endif + } +}; + +// CUDA before 11.1 only has the half <-> float conversions marked host device +// So we will largely convert to float on the host for conversion +// But still call the correct functions on the device +#if (CUDA_VERSION < 11100) + +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(half_t val) { return val; } + +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(float val) { return half_t(__float2half(val)); } + +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(bool val) { return cast_to_half(static_cast<float>(val)); } + +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(double val) { + // double2half was only introduced in CUDA 11 too + return half_t(__float2half(static_cast<float>(val))); +} + +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(short val) { +#ifdef __CUDA_ARCH__ + return half_t(__short2half_rn(val)); +#else + return half_t(__float2half(static_cast<float>(val))); +#endif +} + +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(unsigned short val) { +#ifdef __CUDA_ARCH__ + return half_t(__ushort2half_rn(val)); +#else + return half_t(__float2half(static_cast<float>(val))); +#endif +} + +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(int val) { +#ifdef __CUDA_ARCH__ + return half_t(__int2half_rn(val)); +#else + return half_t(__float2half(static_cast<float>(val))); +#endif +} + +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(unsigned int val) { +#ifdef __CUDA_ARCH__ + return half_t(__uint2half_rn(val)); +#else + return half_t(__float2half(static_cast<float>(val))); +#endif +} + +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(long long val) { +#ifdef __CUDA_ARCH__ + return half_t(__ll2half_rn(val)); +#else + return half_t(__float2half(static_cast<float>(val))); +#endif +} + +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(unsigned long long val) { +#ifdef __CUDA_ARCH__ + return half_t(__ull2half_rn(val)); +#else + return half_t(__float2half(static_cast<float>(val))); +#endif +} + +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(long val) { + return cast_to_half(static_cast<long long>(val)); +} + +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(unsigned long val) { + return cast_to_half(static_cast<unsigned long long>(val)); +} + +template <class T> +KOKKOS_INLINE_FUNCTION std::enable_if_t<std::is_same<T, float>::value, T> +cast_from_half(half_t val) { + return __half2float(half_t::impl_type(val)); +} + +template <class T> +KOKKOS_INLINE_FUNCTION std::enable_if_t<std::is_same<T, bool>::value, T> +cast_from_half(half_t val) { + return static_cast<T>(cast_from_half<float>(val)); +} + +template <class T> +KOKKOS_INLINE_FUNCTION std::enable_if_t<std::is_same<T, double>::value, T> +cast_from_half(half_t val) { + return static_cast<T>(__half2float(half_t::impl_type(val))); +} + +template <class T> +KOKKOS_INLINE_FUNCTION std::enable_if_t<std::is_same<T, short>::value, T> +cast_from_half(half_t val) { +#ifdef __CUDA_ARCH__ + return __half2short_rz(half_t::impl_type(val)); +#else + return static_cast<T>(__half2float(half_t::impl_type(val))); +#endif +} + +template <class T> +KOKKOS_INLINE_FUNCTION + std::enable_if_t<std::is_same<T, unsigned short>::value, T> + cast_from_half(half_t val) { +#ifdef __CUDA_ARCH__ + return __half2ushort_rz(half_t::impl_type(val)); +#else + return static_cast<T>(__half2float(half_t::impl_type(val))); +#endif +} +template <class T> +KOKKOS_INLINE_FUNCTION std::enable_if_t<std::is_same<T, int>::value, T> +cast_from_half(half_t val) { +#ifdef __CUDA_ARCH__ + return __half2int_rz(half_t::impl_type(val)); +#else + return static_cast<T>(__half2float(half_t::impl_type(val))); +#endif +} + +template <class T> +KOKKOS_INLINE_FUNCTION std::enable_if_t<std::is_same<T, unsigned>::value, T> +cast_from_half(half_t val) { +#ifdef __CUDA_ARCH__ + return __half2uint_rz(half_t::impl_type(val)); +#else + return static_cast<T>(__half2float(half_t::impl_type(val))); +#endif +} + +template <class T> +KOKKOS_INLINE_FUNCTION std::enable_if_t<std::is_same<T, long long>::value, T> +cast_from_half(half_t val) { +#ifdef __CUDA_ARCH__ + return __half2ll_rz(half_t::impl_type(val)); +#else + return static_cast<T>(__half2float(half_t::impl_type(val))); +#endif +} + +template <class T> +KOKKOS_INLINE_FUNCTION + std::enable_if_t<std::is_same<T, unsigned long long>::value, T> + cast_from_half(half_t val) { +#ifdef __CUDA_ARCH__ + return __half2ull_rz(half_t::impl_type(val)); +#else + return static_cast<T>(__half2float(half_t::impl_type(val))); +#endif +} + +template <class T> +KOKKOS_INLINE_FUNCTION std::enable_if_t<std::is_same<T, long>::value, T> +cast_from_half(half_t val) { + return static_cast<T>(cast_from_half<long long>(val)); +} + +template <class T> +KOKKOS_INLINE_FUNCTION + std::enable_if_t<std::is_same<T, unsigned long>::value, T> + cast_from_half(half_t val) { + return static_cast<T>(cast_from_half<unsigned long long>(val)); +} + +#else // CUDA 11.1 versions follow + +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(float val) { return __float2half(val); } +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(double val) { return __double2half(val); } +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(short val) { return __short2half_rn(val); } +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(unsigned short val) { return __ushort2half_rn(val); } +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(int val) { return __int2half_rn(val); } +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(unsigned int val) { return __uint2half_rn(val); } +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(long long val) { return __ll2half_rn(val); } +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(unsigned long long val) { return __ull2half_rn(val); } +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(long val) { + return cast_to_half(static_cast<long long>(val)); +} +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(unsigned long val) { + return cast_to_half(static_cast<unsigned long long>(val)); +} + +template <class T> +KOKKOS_INLINE_FUNCTION std::enable_if_t<std::is_same<T, float>::value, T> +cast_from_half(half_t val) { + return __half2float(val); +} +template <class T> +KOKKOS_INLINE_FUNCTION std::enable_if_t<std::is_same<T, double>::value, T> +cast_from_half(half_t val) { + return __half2double(val); +} +template <class T> +KOKKOS_INLINE_FUNCTION std::enable_if_t<std::is_same<T, short>::value, T> +cast_from_half(half_t val) { + return __half2short_rz(val); +} +template <class T> +KOKKOS_INLINE_FUNCTION + std::enable_if_t<std::is_same<T, unsigned short>::value, T> + cast_from_half(half_t val) { + return __half2ushort_rz(val); +} +template <class T> +KOKKOS_INLINE_FUNCTION std::enable_if_t<std::is_same<T, int>::value, T> +cast_from_half(half_t val) { + return __half2int_rz(val); +} +template <class T> +KOKKOS_INLINE_FUNCTION std::enable_if_t<std::is_same<T, unsigned int>::value, T> +cast_from_half(half_t val) { + return __half2uint_rz(val); +} +template <class T> +KOKKOS_INLINE_FUNCTION std::enable_if_t<std::is_same<T, long long>::value, T> +cast_from_half(half_t val) { + return __half2ll_rz(val); +} +template <class T> +KOKKOS_INLINE_FUNCTION + std::enable_if_t<std::is_same<T, unsigned long long>::value, T> + cast_from_half(half_t val) { + return __half2ull_rz(val); +} +template <class T> +KOKKOS_INLINE_FUNCTION std::enable_if_t<std::is_same<T, long>::value, T> +cast_from_half(half_t val) { + return static_cast<T>(cast_from_half<long long>(val)); +} +template <class T> +KOKKOS_INLINE_FUNCTION + std::enable_if_t<std::is_same<T, unsigned long>::value, T> + cast_from_half(half_t val) { + return static_cast<T>(cast_from_half<unsigned long long>(val)); +} +#endif +} // namespace Experimental +} // namespace Kokkos +#endif // KOKKOS_IMPL_HALF_TYPE_DEFINED +#endif // KOKKOS_ENABLE_CUDA +#endif // Disables for half_t on cuda: + // Clang/8||KEPLER30||KEPLER32||KEPLER37||MAXWELL50||MAXWELL52 +#endif diff --git a/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Instance.cpp b/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Instance.cpp index 37d0ffb68..b8e816345 100644 --- a/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Instance.cpp +++ b/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Instance.cpp @@ -55,7 +55,7 @@ #include <Cuda/Kokkos_Cuda_Instance.hpp> #include <Cuda/Kokkos_Cuda_Locks.hpp> #include <impl/Kokkos_Error.hpp> -#include <impl/Kokkos_Profiling_Interface.hpp> +#include <impl/Kokkos_Tools.hpp> /*--------------------------------------------------------------------------*/ /* Standard 'C' libraries */ @@ -132,9 +132,9 @@ int cuda_kernel_arch() { bool cuda_launch_blocking() { const char *env = getenv("CUDA_LAUNCH_BLOCKING"); - if (env == 0) return false; + if (env == nullptr) return false; - return atoi(env); + return std::stoi(env); } #endif @@ -239,8 +239,9 @@ const CudaInternalDevices &CudaInternalDevices::singleton() { } // namespace -int CudaInternal::was_initialized = 0; -int CudaInternal::was_finalized = 0; +unsigned long *CudaInternal::constantMemHostStaging = nullptr; +cudaEvent_t CudaInternal::constantMemReusable = nullptr; + //---------------------------------------------------------------------------- void CudaInternal::print_configuration(std::ostream &s) const { @@ -276,23 +277,25 @@ CudaInternal::~CudaInternal() { std::cerr.flush(); } - m_cudaDev = -1; - m_cudaArch = -1; - m_multiProcCount = 0; - m_maxWarpCount = 0; - m_maxBlock = 0; - m_maxSharedWords = 0; - m_maxConcurrency = 0; - m_scratchSpaceCount = 0; - m_scratchFlagsCount = 0; - m_scratchUnifiedCount = 0; - m_scratchUnifiedSupported = 0; - m_streamCount = 0; - m_scratchSpace = 0; - m_scratchFlags = 0; - m_scratchUnified = 0; - m_scratchConcurrentBitset = 0; - m_stream = 0; + m_cudaDev = -1; + m_cudaArch = -1; + m_multiProcCount = 0; + m_maxWarpCount = 0; + m_maxBlock = 0; + m_maxSharedWords = 0; + m_maxConcurrency = 0; + m_scratchSpaceCount = 0; + m_scratchFlagsCount = 0; + m_scratchUnifiedCount = 0; + m_scratchUnifiedSupported = 0; + m_streamCount = 0; + m_scratchSpace = nullptr; + m_scratchFlags = nullptr; + m_scratchUnified = nullptr; + m_scratchConcurrentBitset = nullptr; + m_stream = nullptr; + m_team_scratch_current_size = 0; + m_team_scratch_ptr = nullptr; } int CudaInternal::verify_is_initialized(const char *const label) const { @@ -307,22 +310,20 @@ CudaInternal &CudaInternal::singleton() { static CudaInternal self; return self; } -void CudaInternal::fence() const { cudaStreamSynchronize(m_stream); } +void CudaInternal::fence() const { + CUDA_SAFE_CALL(cudaStreamSynchronize(m_stream)); +} void CudaInternal::initialize(int cuda_device_id, cudaStream_t stream) { if (was_finalized) Kokkos::abort("Calling Cuda::initialize after Cuda::finalize is illegal\n"); - was_initialized = 1; + was_initialized = true; if (is_initialized()) return; enum { WordSize = sizeof(size_type) }; #ifndef KOKKOS_IMPL_TURN_OFF_CUDA_HOST_INIT_CHECK -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - if (!HostSpace::execution_space::is_initialized()) { -#else if (!HostSpace::execution_space::impl_is_initialized()) { -#endif const std::string msg( "Cuda::initialize ERROR : HostSpace::execution_space is not " "initialized"); @@ -332,7 +333,7 @@ void CudaInternal::initialize(int cuda_device_id, cudaStream_t stream) { const CudaInternalDevices &dev_info = CudaInternalDevices::singleton(); - const bool ok_init = 0 == m_scratchSpace || 0 == m_scratchFlags; + const bool ok_init = nullptr == m_scratchSpace || nullptr == m_scratchFlags; const bool ok_id = 0 <= cuda_device_id && cuda_device_id < dev_info.m_cudaDevCount; @@ -366,7 +367,7 @@ void CudaInternal::initialize(int cuda_device_id, cudaStream_t stream) { int compiled_major = m_cudaArch / 100; int compiled_minor = (m_cudaArch % 100) / 10; - if (compiled_major != cudaProp.major || compiled_minor < cudaProp.minor) { + if (compiled_major != cudaProp.major || compiled_minor > cudaProp.minor) { std::stringstream ss; ss << "Kokkos::Cuda::initialize ERROR: running kernels compiled for " "compute capability " @@ -453,8 +454,8 @@ void CudaInternal::initialize(int cuda_device_id, cudaStream_t stream) { // Allocate and initialize uint32_t[ buffer_bound ] - typedef Kokkos::Impl::SharedAllocationRecord<Kokkos::CudaSpace, void> - Record; + using Record = + Kokkos::Impl::SharedAllocationRecord<Kokkos::CudaSpace, void>; Record *const r = Record::allocate(Kokkos::CudaSpace(), "InternalScratchBitset", @@ -508,14 +509,14 @@ void CudaInternal::initialize(int cuda_device_id, cudaStream_t stream) { const char *env_force_device_alloc = getenv("CUDA_MANAGED_FORCE_DEVICE_ALLOC"); bool force_device_alloc; - if (env_force_device_alloc == 0) + if (env_force_device_alloc == nullptr) force_device_alloc = false; else - force_device_alloc = atoi(env_force_device_alloc) != 0; + force_device_alloc = std::stoi(env_force_device_alloc) != 0; const char *env_visible_devices = getenv("CUDA_VISIBLE_DEVICES"); bool visible_devices_one = true; - if (env_visible_devices == 0) visible_devices_one = false; + if (env_visible_devices == nullptr) visible_devices_one = false; if (Kokkos::show_warnings() && (!visible_devices_one && !force_device_alloc)) { @@ -542,14 +543,25 @@ void CudaInternal::initialize(int cuda_device_id, cudaStream_t stream) { #endif // Init the array for used for arbitrarily sized atomics - if (stream == 0) Impl::initialize_host_cuda_lock_arrays(); + if (stream == nullptr) Impl::initialize_host_cuda_lock_arrays(); + + // Allocate a staging buffer for constant mem in pinned host memory + // and an event to avoid overwriting driver for previous kernel launches + if (stream == nullptr) { + CUDA_SAFE_CALL(cudaMallocHost((void **)&constantMemHostStaging, + CudaTraits::ConstantMemoryUsage)); - m_stream = stream; + CUDA_SAFE_CALL(cudaEventCreate(&constantMemReusable)); + } + + m_stream = stream; + m_team_scratch_current_size = 0; + m_team_scratch_ptr = nullptr; } //---------------------------------------------------------------------------- -typedef Cuda::size_type ScratchGrain[Impl::CudaTraits::WarpSize]; +using ScratchGrain = Cuda::size_type[Impl::CudaTraits::WarpSize]; enum { sizeScratchGrain = sizeof(ScratchGrain) }; Cuda::size_type *CudaInternal::scratch_flags(const Cuda::size_type size) const { @@ -557,8 +569,8 @@ Cuda::size_type *CudaInternal::scratch_flags(const Cuda::size_type size) const { m_scratchFlagsCount * sizeScratchGrain < size) { m_scratchFlagsCount = (size + sizeScratchGrain - 1) / sizeScratchGrain; - typedef Kokkos::Impl::SharedAllocationRecord<Kokkos::CudaSpace, void> - Record; + using Record = + Kokkos::Impl::SharedAllocationRecord<Kokkos::CudaSpace, void>; if (m_scratchFlags) Record::decrement(Record::get_record(m_scratchFlags)); @@ -582,8 +594,8 @@ Cuda::size_type *CudaInternal::scratch_space(const Cuda::size_type size) const { m_scratchSpaceCount * sizeScratchGrain < size) { m_scratchSpaceCount = (size + sizeScratchGrain - 1) / sizeScratchGrain; - typedef Kokkos::Impl::SharedAllocationRecord<Kokkos::CudaSpace, void> - Record; + using Record = + Kokkos::Impl::SharedAllocationRecord<Kokkos::CudaSpace, void>; if (m_scratchSpace) Record::decrement(Record::get_record(m_scratchSpace)); @@ -605,9 +617,8 @@ Cuda::size_type *CudaInternal::scratch_unified( m_scratchUnifiedCount * sizeScratchGrain < size) { m_scratchUnifiedCount = (size + sizeScratchGrain - 1) / sizeScratchGrain; - typedef Kokkos::Impl::SharedAllocationRecord<Kokkos::CudaHostPinnedSpace, - void> - Record; + using Record = + Kokkos::Impl::SharedAllocationRecord<Kokkos::CudaHostPinnedSpace, void>; if (m_scratchUnified) Record::decrement(Record::get_record(m_scratchUnified)); @@ -629,8 +640,8 @@ Cuda::size_type *CudaInternal::scratch_functor( if (verify_is_initialized("scratch_functor") && m_scratchFunctorSize < size) { m_scratchFunctorSize = size; - typedef Kokkos::Impl::SharedAllocationRecord<Kokkos::CudaSpace, void> - Record; + using Record = + Kokkos::Impl::SharedAllocationRecord<Kokkos::CudaSpace, void>; if (m_scratchFunctor) Record::decrement(Record::get_record(m_scratchFunctor)); @@ -646,18 +657,35 @@ Cuda::size_type *CudaInternal::scratch_functor( return m_scratchFunctor; } +void *CudaInternal::resize_team_scratch_space(std::int64_t bytes, + bool force_shrink) { + if (m_team_scratch_current_size == 0) { + m_team_scratch_current_size = bytes; + m_team_scratch_ptr = Kokkos::kokkos_malloc<Kokkos::CudaSpace>( + "CudaSpace::ScratchMemory", m_team_scratch_current_size); + } + if ((bytes > m_team_scratch_current_size) || + ((bytes < m_team_scratch_current_size) && (force_shrink))) { + m_team_scratch_current_size = bytes; + m_team_scratch_ptr = Kokkos::kokkos_realloc<Kokkos::CudaSpace>( + m_team_scratch_ptr, m_team_scratch_current_size); + } + return m_team_scratch_ptr; +} + //---------------------------------------------------------------------------- void CudaInternal::finalize() { - was_finalized = 1; - if (0 != m_scratchSpace || 0 != m_scratchFlags) { - Impl::finalize_host_cuda_lock_arrays(); - - if (m_stream != 0) cudaStreamDestroy(m_stream); + was_finalized = true; + if (nullptr != m_scratchSpace || nullptr != m_scratchFlags) { + // Only finalize this if we're the singleton + if (this == &singleton()) { + Impl::finalize_host_cuda_lock_arrays(); + } - typedef Kokkos::Impl::SharedAllocationRecord<CudaSpace> RecordCuda; - typedef Kokkos::Impl::SharedAllocationRecord<CudaHostPinnedSpace> - RecordHost; + using RecordCuda = Kokkos::Impl::SharedAllocationRecord<CudaSpace>; + using RecordHost = + Kokkos::Impl::SharedAllocationRecord<CudaHostPinnedSpace>; RecordCuda::decrement(RecordCuda::get_record(m_scratchFlags)); RecordCuda::decrement(RecordCuda::get_record(m_scratchSpace)); @@ -666,20 +694,31 @@ void CudaInternal::finalize() { if (m_scratchFunctorSize > 0) RecordCuda::decrement(RecordCuda::get_record(m_scratchFunctor)); - m_cudaDev = -1; - m_multiProcCount = 0; - m_maxWarpCount = 0; - m_maxBlock = 0; - m_maxSharedWords = 0; - m_scratchSpaceCount = 0; - m_scratchFlagsCount = 0; - m_scratchUnifiedCount = 0; - m_streamCount = 0; - m_scratchSpace = 0; - m_scratchFlags = 0; - m_scratchUnified = 0; - m_scratchConcurrentBitset = 0; - m_stream = 0; + if (m_team_scratch_current_size > 0) + Kokkos::kokkos_free<Kokkos::CudaSpace>(m_team_scratch_ptr); + + m_cudaDev = -1; + m_multiProcCount = 0; + m_maxWarpCount = 0; + m_maxBlock = 0; + m_maxSharedWords = 0; + m_scratchSpaceCount = 0; + m_scratchFlagsCount = 0; + m_scratchUnifiedCount = 0; + m_streamCount = 0; + m_scratchSpace = nullptr; + m_scratchFlags = nullptr; + m_scratchUnified = nullptr; + m_scratchConcurrentBitset = nullptr; + m_stream = nullptr; + m_team_scratch_current_size = 0; + m_team_scratch_ptr = nullptr; + } + + // only destroy these if we're finalizing the singleton + if (this == &singleton()) { + cudaFreeHost(constantMemHostStaging); + cudaEventDestroy(constantMemReusable); } } @@ -743,27 +782,13 @@ int Cuda::concurrency() { return Impl::CudaInternal::singleton().m_maxConcurrency; } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -int Cuda::is_initialized() -#else -int Cuda::impl_is_initialized() -#endif -{ +int Cuda::impl_is_initialized() { return Impl::CudaInternal::singleton().is_initialized(); } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -void Cuda::initialize(const Cuda::SelectDevice config, size_t num_instances) -#else void Cuda::impl_initialize(const Cuda::SelectDevice config, - size_t /*num_instances*/) -#endif -{ - Impl::CudaInternal::singleton().initialize(config.cuda_device_id, 0); - -#if defined(KOKKOS_ENABLE_PROFILING) - Kokkos::Profiling::initialize(); -#endif + size_t /*num_instances*/) { + Impl::CudaInternal::singleton().initialize(config.cuda_device_id, nullptr); } std::vector<unsigned> Cuda::detect_device_arch() { @@ -793,48 +818,72 @@ Cuda::size_type Cuda::device_arch() { return dev_arch; } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -void Cuda::finalize() -#else -void Cuda::impl_finalize() -#endif -{ - Impl::CudaInternal::singleton().finalize(); - -#if defined(KOKKOS_ENABLE_PROFILING) - Kokkos::Profiling::finalize(); -#endif -} +void Cuda::impl_finalize() { Impl::CudaInternal::singleton().finalize(); } -Cuda::Cuda() : m_space_instance(&Impl::CudaInternal::singleton()) { +Cuda::Cuda() + : m_space_instance(&Impl::CudaInternal::singleton()), m_counter(nullptr) { Impl::CudaInternal::singleton().verify_is_initialized( "Cuda instance constructor"); } -Cuda::Cuda(cudaStream_t stream) : m_space_instance(new Impl::CudaInternal) { +Cuda::Cuda(cudaStream_t stream) + : m_space_instance(new Impl::CudaInternal), m_counter(new int(1)) { Impl::CudaInternal::singleton().verify_is_initialized( "Cuda instance constructor"); m_space_instance->initialize(Impl::CudaInternal::singleton().m_cudaDev, stream); } -void Cuda::print_configuration(std::ostream &s, const bool) { - Impl::CudaInternal::singleton().print_configuration(s); +KOKKOS_FUNCTION Cuda::Cuda(Cuda &&other) noexcept { + m_space_instance = other.m_space_instance; + other.m_space_instance = nullptr; + m_counter = other.m_counter; + other.m_counter = nullptr; } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -bool Cuda::sleep() { return false; } +KOKKOS_FUNCTION Cuda::Cuda(const Cuda &other) + : m_space_instance(other.m_space_instance), m_counter(other.m_counter) { +#ifndef KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_CUDA + if (m_counter) Kokkos::atomic_add(m_counter, 1); +#endif +} -bool Cuda::wake() { return true; } +KOKKOS_FUNCTION Cuda &Cuda::operator=(Cuda &&other) noexcept { + m_space_instance = other.m_space_instance; + other.m_space_instance = nullptr; + m_counter = other.m_counter; + other.m_counter = nullptr; + return *this; +} + +KOKKOS_FUNCTION Cuda &Cuda::operator=(const Cuda &other) { + m_space_instance = other.m_space_instance; + m_counter = other.m_counter; +#ifndef KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_CUDA + if (m_counter) Kokkos::atomic_add(m_counter, 1); #endif + return *this; +} + +KOKKOS_FUNCTION Cuda::~Cuda() noexcept { +#ifndef KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_CUDA + if (m_counter == nullptr) return; + int const count = Kokkos::atomic_fetch_sub(m_counter, 1); + if (count == 1) { + delete m_counter; + m_space_instance->finalize(); + delete m_space_instance; + } +#endif +} + +void Cuda::print_configuration(std::ostream &s, const bool) { + Impl::CudaInternal::singleton().print_configuration(s); +} void Cuda::impl_static_fence() { Kokkos::Impl::cuda_device_synchronize(); } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -void Cuda::fence() { impl_static_fence(); } -#else void Cuda::fence() const { m_space_instance->fence(); } -#endif const char *Cuda::name() { return "Cuda"; } @@ -844,6 +893,92 @@ const cudaDeviceProp &Cuda::cuda_device_prop() const { return m_space_instance->m_deviceProp; } +namespace Impl { + +int get_gpu(const InitArguments &args); + +int g_cuda_space_factory_initialized = + initialize_space_factory<CudaSpaceInitializer>("150_Cuda"); + +void CudaSpaceInitializer::initialize(const InitArguments &args) { + int use_gpu = get_gpu(args); + if (std::is_same<Kokkos::Cuda, Kokkos::DefaultExecutionSpace>::value || + 0 < use_gpu) { + if (use_gpu > -1) { + Kokkos::Cuda::impl_initialize(Kokkos::Cuda::SelectDevice(use_gpu)); + } else { + Kokkos::Cuda::impl_initialize(); + } + } +} + +void CudaSpaceInitializer::finalize(bool all_spaces) { + if ((std::is_same<Kokkos::Cuda, Kokkos::DefaultExecutionSpace>::value || + all_spaces) && + Kokkos::Cuda::impl_is_initialized()) { + Kokkos::Cuda::impl_finalize(); + } +} + +void CudaSpaceInitializer::fence() { Kokkos::Cuda::impl_static_fence(); } + +void CudaSpaceInitializer::print_configuration(std::ostream &msg, + const bool detail) { + msg << "Device Execution Space:" << std::endl; + msg << " KOKKOS_ENABLE_CUDA: "; + msg << "yes" << std::endl; + + msg << "Cuda Atomics:" << std::endl; + msg << " KOKKOS_ENABLE_CUDA_ATOMICS: "; +#ifdef KOKKOS_ENABLE_CUDA_ATOMICS + msg << "yes" << std::endl; +#else + msg << "no" << std::endl; +#endif + + msg << "Cuda Options:" << std::endl; + msg << " KOKKOS_ENABLE_CUDA_LAMBDA: "; +#ifdef KOKKOS_ENABLE_CUDA_LAMBDA + msg << "yes" << std::endl; +#else + msg << "no" << std::endl; +#endif + msg << " KOKKOS_ENABLE_CUDA_LDG_INTRINSIC: "; +#ifdef KOKKOS_ENABLE_CUDA_LDG_INTRINSIC + msg << "yes" << std::endl; +#else + msg << "no" << std::endl; +#endif + msg << " KOKKOS_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE: "; +#ifdef KOKKOS_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE + msg << "yes" << std::endl; +#else + msg << "no" << std::endl; +#endif + msg << " KOKKOS_ENABLE_CUDA_UVM: "; +#ifdef KOKKOS_ENABLE_CUDA_UVM + msg << "yes" << std::endl; +#else + msg << "no" << std::endl; +#endif + msg << " KOKKOS_ENABLE_CUSPARSE: "; +#ifdef KOKKOS_ENABLE_CUSPARSE + msg << "yes" << std::endl; +#else + msg << "no" << std::endl; +#endif + msg << " KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA: "; +#ifdef KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA + msg << "yes" << std::endl; +#else + msg << "no" << std::endl; +#endif + + msg << "\nCuda Runtime Configuration:" << std::endl; + Cuda::print_configuration(msg, detail); +} +} // namespace Impl + } // namespace Kokkos namespace Kokkos { diff --git a/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Instance.hpp b/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Instance.hpp index 2158f03dd..13773d70c 100644 --- a/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Instance.hpp +++ b/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Instance.hpp @@ -1,6 +1,8 @@ #ifndef KOKKOS_CUDA_INSTANCE_HPP_ #define KOKKOS_CUDA_INSTANCE_HPP_ +#include <vector> +#include <impl/Kokkos_Tools.hpp> //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- // These functions fulfill the purpose of allowing to work around @@ -15,25 +17,30 @@ namespace Kokkos { namespace Impl { struct CudaTraits { - enum { WarpSize = 32 /* 0x0020 */ }; - enum { WarpIndexMask = 0x001f /* Mask for warpindex */ }; - enum { WarpIndexShift = 5 /* WarpSize == 1 << WarpShift */ }; - - enum { ConstantMemoryUsage = 0x008000 /* 32k bytes */ }; - enum { ConstantMemoryCache = 0x002000 /* 8k bytes */ }; - enum { KernelArgumentLimit = 0x001000 /* 4k bytes */ }; - - typedef unsigned long - ConstantGlobalBufferType[ConstantMemoryUsage / sizeof(unsigned long)]; + enum : CudaSpace::size_type { WarpSize = 32 /* 0x0020 */ }; + enum : CudaSpace::size_type { + WarpIndexMask = 0x001f /* Mask for warpindex */ + }; + enum : CudaSpace::size_type { + WarpIndexShift = 5 /* WarpSize == 1 << WarpShift */ + }; -#if defined(KOKKOS_ARCH_VOLTA) || defined(KOKKOS_ARCH_PASCAL) - enum { - ConstantMemoryUseThreshold = - 0x000200 /* 0 bytes -> always use constant (or global)*/ + enum : CudaSpace::size_type { + ConstantMemoryUsage = 0x008000 /* 32k bytes */ + }; + enum : CudaSpace::size_type { + ConstantMemoryCache = 0x002000 /* 8k bytes */ + }; + enum : CudaSpace::size_type { + KernelArgumentLimit = 0x001000 /* 4k bytes */ + }; + enum : CudaSpace::size_type { + MaxHierarchicalParallelism = 1024 /* team_size * vector_length */ }; -#else + using ConstantGlobalBufferType = + unsigned long[ConstantMemoryUsage / sizeof(unsigned long)]; + enum { ConstantMemoryUseThreshold = 0x000200 /* 512 bytes */ }; -#endif KOKKOS_INLINE_FUNCTION static CudaSpace::size_type warp_count( CudaSpace::size_type i) { @@ -42,7 +49,7 @@ struct CudaTraits { KOKKOS_INLINE_FUNCTION static CudaSpace::size_type warp_align( CudaSpace::size_type i) { - enum { Mask = ~CudaSpace::size_type(WarpIndexMask) }; + constexpr CudaSpace::size_type Mask = ~WarpIndexMask; return (i + WarpIndexMask) & Mask; } }; @@ -79,7 +86,7 @@ class CudaInternal { #endif public: - typedef Cuda::size_type size_type; + using size_type = Cuda::size_type; int m_cudaDev; @@ -99,10 +106,12 @@ class CudaInternal { cudaDeviceProp m_deviceProp; + // Scratch Spaces for Reductions mutable size_type m_scratchSpaceCount; mutable size_type m_scratchFlagsCount; mutable size_type m_scratchUnifiedCount; mutable size_type m_scratchFunctorSize; + size_type m_scratchUnifiedSupported; size_type m_streamCount; mutable size_type* m_scratchSpace; @@ -112,18 +121,27 @@ class CudaInternal { uint32_t* m_scratchConcurrentBitset; cudaStream_t m_stream; - static int was_initialized; - static int was_finalized; + // Team Scratch Level 1 Space + mutable int64_t m_team_scratch_current_size; + mutable void* m_team_scratch_ptr; + + bool was_initialized = false; + bool was_finalized = false; + + // FIXME_CUDA: these want to be per-device, not per-stream... use of 'static' + // here will break once there are multiple devices though + static unsigned long* constantMemHostStaging; + static cudaEvent_t constantMemReusable; static CudaInternal& singleton(); int verify_is_initialized(const char* const label) const; int is_initialized() const { - return 0 != m_scratchSpace && 0 != m_scratchFlags; + return nullptr != m_scratchSpace && nullptr != m_scratchFlags; } - void initialize(int cuda_device_id, cudaStream_t stream = 0); + void initialize(int cuda_device_id, cudaStream_t stream = nullptr); void finalize(); void print_configuration(std::ostream&) const; @@ -157,17 +175,24 @@ class CudaInternal { m_scratchFunctorSize(0), m_scratchUnifiedSupported(0), m_streamCount(0), - m_scratchSpace(0), - m_scratchFlags(0), - m_scratchUnified(0), - m_scratchFunctor(0), - m_scratchConcurrentBitset(0), - m_stream(0) {} - + m_scratchSpace(nullptr), + m_scratchFlags(nullptr), + m_scratchUnified(nullptr), + m_scratchFunctor(nullptr), + m_scratchConcurrentBitset(nullptr), + m_stream(nullptr), + m_team_scratch_current_size(0), + m_team_scratch_ptr(nullptr) {} + + // Resizing of reduction related scratch spaces size_type* scratch_space(const size_type size) const; size_type* scratch_flags(const size_type size) const; size_type* scratch_unified(const size_type size) const; size_type* scratch_functor(const size_type size) const; + + // Resizing of team level 1 scratch + void* resize_team_scratch_space(std::int64_t bytes, + bool force_shrink = false); }; } // Namespace Impl diff --git a/packages/kokkos/core/src/Cuda/Kokkos_Cuda_KernelLaunch.hpp b/packages/kokkos/core/src/Cuda/Kokkos_Cuda_KernelLaunch.hpp index ca72b3b30..39404e0bf 100644 --- a/packages/kokkos/core/src/Cuda/Kokkos_Cuda_KernelLaunch.hpp +++ b/packages/kokkos/core/src/Cuda/Kokkos_Cuda_KernelLaunch.hpp @@ -48,20 +48,23 @@ #include <Kokkos_Macros.hpp> #ifdef KOKKOS_ENABLE_CUDA +#include <mutex> #include <string> #include <cstdint> +#include <cmath> #include <Kokkos_Parallel.hpp> #include <impl/Kokkos_Error.hpp> #include <Cuda/Kokkos_Cuda_abort.hpp> #include <Cuda/Kokkos_Cuda_Error.hpp> #include <Cuda/Kokkos_Cuda_Locks.hpp> #include <Cuda/Kokkos_Cuda_Instance.hpp> +#include <impl/Kokkos_GraphImpl_fwd.hpp> +#include <Cuda/Kokkos_Cuda_GraphNodeKernel.hpp> +#include <Cuda/Kokkos_Cuda_BlockSize_Deduction.hpp> //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- -#if defined(__CUDACC__) - /** \brief Access to constant memory on the device */ #ifdef KOKKOS_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE @@ -75,12 +78,6 @@ __device__ __constant__ unsigned long kokkos_impl_cuda_constant_memory_buffer #endif -namespace Kokkos { -namespace Impl { -void* cuda_resize_scratch_space(std::int64_t bytes, bool force_shrink = false); -} -} // namespace Kokkos - template <typename T> inline __device__ T* kokkos_impl_cuda_shared_memory() { extern __shared__ Kokkos::CudaSpace::size_type sh[]; @@ -146,29 +143,85 @@ __global__ __launch_bounds__( driver->operator()(); } -template <class DriverType> -__global__ static void cuda_parallel_launch_constant_or_global_memory( - const DriverType* driver_ptr) { - const DriverType& driver = - driver_ptr != nullptr - ? *driver_ptr - : *((const DriverType*)kokkos_impl_cuda_constant_memory_buffer); +//============================================================================== +// <editor-fold desc="Some helper functions for launch code readability"> {{{1 - driver(); +inline bool is_empty_launch(dim3 const& grid, dim3 const& block) { + return (grid.x == 0) || ((block.x * block.y * block.z) == 0); } -template <class DriverType, unsigned int maxTperB, unsigned int minBperSM> -__global__ -__launch_bounds__(maxTperB, minBperSM) static void cuda_parallel_launch_constant_or_global_memory( - const DriverType* driver_ptr) { - const DriverType& driver = - driver_ptr != nullptr - ? *driver_ptr - : *((const DriverType*)kokkos_impl_cuda_constant_memory_buffer); +inline void check_shmem_request(CudaInternal const* cuda_instance, int shmem) { + if (cuda_instance->m_maxShmemPerBlock < shmem) { + Kokkos::Impl::throw_runtime_exception( + std::string("CudaParallelLaunch (or graph node creation) FAILED: shared" + " memory request is too large")); + } +} - driver(); +template <class DriverType, class LaunchBounds, class KernelFuncPtr> +inline void configure_shmem_preference(KernelFuncPtr const& func, + bool prefer_shmem) { +#ifndef KOKKOS_ARCH_KEPLER + // On Kepler the L1 has no benefit since it doesn't cache reads + auto set_cache_config = [&] { + CUDA_SAFE_CALL(cudaFuncSetCacheConfig( + func, + (prefer_shmem ? cudaFuncCachePreferShared : cudaFuncCachePreferL1))); + return prefer_shmem; + }; + static bool cache_config_preference_cached = set_cache_config(); + if (cache_config_preference_cached != prefer_shmem) { + cache_config_preference_cached = set_cache_config(); + } +#else + // Use the parameters so we don't get a warning + (void)func; + (void)prefer_shmem; +#endif } +template <class Policy> +std::enable_if_t<Policy::experimental_contains_desired_occupancy> +modify_launch_configuration_if_desired_occupancy_is_specified( + Policy const& policy, cudaDeviceProp const& properties, + cudaFuncAttributes const& attributes, dim3 const& block, int& shmem, + bool& prefer_shmem) { + int const block_size = block.x * block.y * block.z; + int const desired_occupancy = policy.impl_get_desired_occupancy().value(); + + size_t const shmem_per_sm_prefer_l1 = get_shmem_per_sm_prefer_l1(properties); + size_t const static_shmem = attributes.sharedSizeBytes; + + // round to nearest integer and avoid division by zero + int active_blocks = std::max( + 1, static_cast<int>(std::round( + static_cast<double>(properties.maxThreadsPerMultiProcessor) / + block_size * desired_occupancy / 100))); + int const dynamic_shmem = + shmem_per_sm_prefer_l1 / active_blocks - static_shmem; + + if (dynamic_shmem > shmem) { + shmem = dynamic_shmem; + prefer_shmem = false; + } +} + +template <class Policy> +std::enable_if_t<!Policy::experimental_contains_desired_occupancy> +modify_launch_configuration_if_desired_occupancy_is_specified( + Policy const&, cudaDeviceProp const&, cudaFuncAttributes const&, + dim3 const& /*block*/, int& /*shmem*/, bool& /*prefer_shmem*/) {} + +// </editor-fold> end Some helper functions for launch code readability }}}1 +//============================================================================== + +//============================================================================== +// <editor-fold desc="DeduceCudaLaunchMechanism"> {{{2 + +// Use local memory up to ConstantMemoryUseThreshold +// Use global memory above ConstantMemoryUsage +// In between use ConstantMemory + template <class DriverType> struct DeduceCudaLaunchMechanism { constexpr static const Kokkos::Experimental::WorkItemProperty:: @@ -223,339 +276,437 @@ struct DeduceCudaLaunchMechanism { : Experimental::CudaLaunchMechanism::GlobalMemory) : (default_launch_mechanism)); }; -// Use local memory up to ConstantMemoryUseThreshold -// Use global memory above ConstantMemoryUsage -// In between use ConstantMemory -template <class DriverType, class LaunchBounds = Kokkos::LaunchBounds<>, - Experimental::CudaLaunchMechanism LaunchMechanism = - DeduceCudaLaunchMechanism<DriverType>::launch_mechanism> -struct CudaParallelLaunch; -template <class DriverType, unsigned int MaxThreadsPerBlock, - unsigned int MinBlocksPerSM> -struct CudaParallelLaunch< - DriverType, Kokkos::LaunchBounds<MaxThreadsPerBlock, MinBlocksPerSM>, - Experimental::CudaLaunchMechanism::ConstantMemory> { - static_assert(sizeof(DriverType) < CudaTraits::ConstantMemoryUsage, - "Kokkos Error: Requested CudaLaunchConstantMemory with a " - "Functor larger than 32kB."); - inline CudaParallelLaunch(const DriverType& driver, const dim3& grid, - const dim3& block, const int shmem, - const CudaInternal* cuda_instance, - const bool prefer_shmem) { - if ((grid.x != 0) && ((block.x * block.y * block.z) != 0)) { - // Fence before changing settings and copying closure - Kokkos::Cuda().fence(); - - if (cuda_instance->m_maxShmemPerBlock < shmem) { - Kokkos::Impl::throw_runtime_exception(std::string( - "CudaParallelLaunch FAILED: shared memory request is too large")); - } -#ifndef KOKKOS_ARCH_KEPLER - // On Kepler the L1 has no benefit since it doesn't cache reads - else { - CUDA_SAFE_CALL(cudaFuncSetCacheConfig( - cuda_parallel_launch_constant_memory<DriverType, MaxThreadsPerBlock, - MinBlocksPerSM>, - (prefer_shmem ? cudaFuncCachePreferShared - : cudaFuncCachePreferL1))); - } -#else - (void)prefer_shmem; -#endif +// </editor-fold> end DeduceCudaLaunchMechanism }}}2 +//============================================================================== - // Copy functor to constant memory on the device - cudaMemcpyToSymbolAsync(kokkos_impl_cuda_constant_memory_buffer, &driver, - sizeof(DriverType), 0, cudaMemcpyHostToDevice, - cudaStream_t(cuda_instance->m_stream)); +//============================================================================== +// <editor-fold desc="CudaParallelLaunchKernelInvoker"> {{{1 - KOKKOS_ENSURE_CUDA_LOCK_ARRAYS_ON_DEVICE(); +// Base classes that summarize the differences between the different launch +// mechanisms - // Invoke the driver function on the device - cuda_parallel_launch_constant_memory<DriverType, MaxThreadsPerBlock, - MinBlocksPerSM> - <<<grid, block, shmem, cuda_instance->m_stream>>>(); +template <class DriverType, class LaunchBounds, + Experimental::CudaLaunchMechanism LaunchMechanism> +struct CudaParallelLaunchKernelFunc; -#if defined(KOKKOS_ENABLE_DEBUG_BOUNDS_CHECK) - CUDA_SAFE_CALL(cudaGetLastError()); - Kokkos::Cuda().fence(); -#endif - } - } +template <class DriverType, class LaunchBounds, + Experimental::CudaLaunchMechanism LaunchMechanism> +struct CudaParallelLaunchKernelInvoker; - static cudaFuncAttributes get_cuda_func_attributes() { - cudaFuncAttributes attr; - CUDA_SAFE_CALL(cudaFuncGetAttributes( - &attr, - cuda_parallel_launch_constant_memory<DriverType, MaxThreadsPerBlock, - MinBlocksPerSM>)); - return attr; +//------------------------------------------------------------------------------ +// <editor-fold desc="Local memory"> {{{2 + +template <class DriverType, unsigned int MaxThreadsPerBlock, + unsigned int MinBlocksPerSM> +struct CudaParallelLaunchKernelFunc< + DriverType, Kokkos::LaunchBounds<MaxThreadsPerBlock, MinBlocksPerSM>, + Experimental::CudaLaunchMechanism::LocalMemory> { + static std::decay_t<decltype(cuda_parallel_launch_local_memory< + DriverType, MaxThreadsPerBlock, MinBlocksPerSM>)> + get_kernel_func() { + return cuda_parallel_launch_local_memory<DriverType, MaxThreadsPerBlock, + MinBlocksPerSM>; } }; template <class DriverType> -struct CudaParallelLaunch<DriverType, Kokkos::LaunchBounds<0, 0>, - Experimental::CudaLaunchMechanism::ConstantMemory> { - static_assert(sizeof(DriverType) < CudaTraits::ConstantMemoryUsage, - "Kokkos Error: Requested CudaLaunchConstantMemory with a " - "Functor larger than 32kB."); - inline CudaParallelLaunch(const DriverType& driver, const dim3& grid, - const dim3& block, const int shmem, - const CudaInternal* cuda_instance, - const bool prefer_shmem) { - if ((grid.x != 0) && ((block.x * block.y * block.z) != 0)) { - // Fence before changing settings and copying closure - Kokkos::Cuda().fence(); - - if (cuda_instance->m_maxShmemPerBlock < shmem) { - Kokkos::Impl::throw_runtime_exception(std::string( - "CudaParallelLaunch FAILED: shared memory request is too large")); - } -#ifndef KOKKOS_ARCH_KEPLER - // On Kepler the L1 has no benefit since it doesn't cache reads - else { - CUDA_SAFE_CALL(cudaFuncSetCacheConfig( - cuda_parallel_launch_constant_memory<DriverType>, - (prefer_shmem ? cudaFuncCachePreferShared - : cudaFuncCachePreferL1))); - } -#else - (void)prefer_shmem; -#endif - - // Copy functor to constant memory on the device - cudaMemcpyToSymbolAsync(kokkos_impl_cuda_constant_memory_buffer, &driver, - sizeof(DriverType), 0, cudaMemcpyHostToDevice, - cudaStream_t(cuda_instance->m_stream)); +struct CudaParallelLaunchKernelFunc< + DriverType, Kokkos::LaunchBounds<0, 0>, + Experimental::CudaLaunchMechanism::LocalMemory> { + static std::decay_t<decltype(cuda_parallel_launch_local_memory<DriverType>)> + get_kernel_func() { + return cuda_parallel_launch_local_memory<DriverType>; + } +}; - KOKKOS_ENSURE_CUDA_LOCK_ARRAYS_ON_DEVICE(); +//------------------------------------------------------------------------------ - // Invoke the driver function on the device - cuda_parallel_launch_constant_memory<DriverType> - <<<grid, block, shmem, cuda_instance->m_stream>>>(); +template <class DriverType, class LaunchBounds> +struct CudaParallelLaunchKernelInvoker< + DriverType, LaunchBounds, Experimental::CudaLaunchMechanism::LocalMemory> + : CudaParallelLaunchKernelFunc< + DriverType, LaunchBounds, + Experimental::CudaLaunchMechanism::LocalMemory> { + using base_t = CudaParallelLaunchKernelFunc< + DriverType, LaunchBounds, Experimental::CudaLaunchMechanism::LocalMemory>; + static_assert(sizeof(DriverType) < CudaTraits::KernelArgumentLimit, + "Kokkos Error: Requested CudaLaunchLocalMemory with a Functor " + "larger than 4096 bytes."); -#if defined(KOKKOS_ENABLE_DEBUG_BOUNDS_CHECK) - CUDA_SAFE_CALL(cudaGetLastError()); - Kokkos::Cuda().fence(); -#endif - } + static void invoke_kernel(DriverType const& driver, dim3 const& grid, + dim3 const& block, int shmem, + CudaInternal const* cuda_instance) { + (base_t:: + get_kernel_func())<<<grid, block, shmem, cuda_instance->m_stream>>>( + driver); } - static cudaFuncAttributes get_cuda_func_attributes() { - cudaFuncAttributes attr; - CUDA_SAFE_CALL(cudaFuncGetAttributes( - &attr, cuda_parallel_launch_constant_memory<DriverType>)); - return attr; +#ifdef KOKKOS_CUDA_ENABLE_GRAPHS + inline static void create_parallel_launch_graph_node( + DriverType const& driver, dim3 const& grid, dim3 const& block, int shmem, + CudaInternal const* cuda_instance, bool prefer_shmem) { + //---------------------------------------- + auto const& graph = Impl::get_cuda_graph_from_kernel(driver); + KOKKOS_EXPECTS(bool(graph)); + auto& graph_node = Impl::get_cuda_graph_node_from_kernel(driver); + // Expect node not yet initialized + KOKKOS_EXPECTS(!bool(graph_node)); + + if (!Impl::is_empty_launch(grid, block)) { + Impl::check_shmem_request(cuda_instance, shmem); + Impl::configure_shmem_preference<DriverType, LaunchBounds, + decltype(base_t::get_kernel_func())>( + base_t::get_kernel_func(), prefer_shmem); + + void const* args[] = {&driver}; + + cudaKernelNodeParams params = {}; + + params.blockDim = block; + params.gridDim = grid; + params.sharedMemBytes = shmem; + params.func = (void*)base_t::get_kernel_func(); + params.kernelParams = (void**)args; + params.extra = nullptr; + + CUDA_SAFE_CALL(cudaGraphAddKernelNode( + &graph_node, graph, /* dependencies = */ nullptr, + /* numDependencies = */ 0, ¶ms)); + } else { + // We still need an empty node for the dependency structure + CUDA_SAFE_CALL(cudaGraphAddEmptyNode(&graph_node, graph, + /* dependencies = */ nullptr, + /* numDependencies = */ 0)); + } + KOKKOS_ENSURES(bool(graph_node)) } +#endif }; +// </editor-fold> end local memory }}}2 +//------------------------------------------------------------------------------ + +//------------------------------------------------------------------------------ +// <editor-fold desc="Global Memory"> {{{2 + template <class DriverType, unsigned int MaxThreadsPerBlock, unsigned int MinBlocksPerSM> -struct CudaParallelLaunch< +struct CudaParallelLaunchKernelFunc< DriverType, Kokkos::LaunchBounds<MaxThreadsPerBlock, MinBlocksPerSM>, - Experimental::CudaLaunchMechanism::LocalMemory> { - static_assert(sizeof(DriverType) < CudaTraits::KernelArgumentLimit, - "Kokkos Error: Requested CudaLaunchLocalMemory with a Functor " - "larger than 4096 bytes."); - inline CudaParallelLaunch(const DriverType& driver, const dim3& grid, - const dim3& block, const int shmem, - const CudaInternal* cuda_instance, - const bool prefer_shmem) { - if ((grid.x != 0) && ((block.x * block.y * block.z) != 0)) { - if (cuda_instance->m_maxShmemPerBlock < shmem) { - Kokkos::Impl::throw_runtime_exception(std::string( - "CudaParallelLaunch FAILED: shared memory request is too large")); - } -#ifndef KOKKOS_ARCH_KEPLER - // On Kepler the L1 has no benefit since it doesn't cache reads - else { - CUDA_SAFE_CALL(cudaFuncSetCacheConfig( - cuda_parallel_launch_local_memory<DriverType, MaxThreadsPerBlock, - MinBlocksPerSM>, - (prefer_shmem ? cudaFuncCachePreferShared - : cudaFuncCachePreferL1))); - } -#else - (void)prefer_shmem; -#endif + Experimental::CudaLaunchMechanism::GlobalMemory> { + static void* get_kernel_func() { + return cuda_parallel_launch_global_memory<DriverType, MaxThreadsPerBlock, + MinBlocksPerSM>; + } +}; - KOKKOS_ENSURE_CUDA_LOCK_ARRAYS_ON_DEVICE(); +template <class DriverType> +struct CudaParallelLaunchKernelFunc< + DriverType, Kokkos::LaunchBounds<0, 0>, + Experimental::CudaLaunchMechanism::GlobalMemory> { + static std::decay_t<decltype(cuda_parallel_launch_global_memory<DriverType>)> + get_kernel_func() { + return cuda_parallel_launch_global_memory<DriverType>; + } +}; - // Invoke the driver function on the device - cuda_parallel_launch_local_memory<DriverType, MaxThreadsPerBlock, - MinBlocksPerSM> - <<<grid, block, shmem, cuda_instance->m_stream>>>(driver); +//------------------------------------------------------------------------------ + +template <class DriverType, class LaunchBounds> +struct CudaParallelLaunchKernelInvoker< + DriverType, LaunchBounds, Experimental::CudaLaunchMechanism::GlobalMemory> + : CudaParallelLaunchKernelFunc< + DriverType, LaunchBounds, + Experimental::CudaLaunchMechanism::GlobalMemory> { + using base_t = CudaParallelLaunchKernelFunc< + DriverType, LaunchBounds, + Experimental::CudaLaunchMechanism::GlobalMemory>; + + static void invoke_kernel(DriverType const& driver, dim3 const& grid, + dim3 const& block, int shmem, + CudaInternal const* cuda_instance) { + DriverType* driver_ptr = reinterpret_cast<DriverType*>( + cuda_instance->scratch_functor(sizeof(DriverType))); + + cudaMemcpyAsync(driver_ptr, &driver, sizeof(DriverType), cudaMemcpyDefault, + cuda_instance->m_stream); + (base_t:: + get_kernel_func())<<<grid, block, shmem, cuda_instance->m_stream>>>( + driver_ptr); + } -#if defined(KOKKOS_ENABLE_DEBUG_BOUNDS_CHECK) - CUDA_SAFE_CALL(cudaGetLastError()); - Kokkos::Cuda().fence(); -#endif +#ifdef KOKKOS_CUDA_ENABLE_GRAPHS + inline static void create_parallel_launch_graph_node( + DriverType const& driver, dim3 const& grid, dim3 const& block, int shmem, + CudaInternal const* cuda_instance, bool prefer_shmem) { + //---------------------------------------- + auto const& graph = Impl::get_cuda_graph_from_kernel(driver); + KOKKOS_EXPECTS(bool(graph)); + auto& graph_node = Impl::get_cuda_graph_node_from_kernel(driver); + // Expect node not yet initialized + KOKKOS_EXPECTS(!bool(graph_node)); + + if (!Impl::is_empty_launch(grid, block)) { + Impl::check_shmem_request(cuda_instance, shmem); + Impl::configure_shmem_preference<DriverType, LaunchBounds, + decltype(base_t::get_kernel_func())>( + base_t::get_kernel_func(), prefer_shmem); + + auto* driver_ptr = Impl::allocate_driver_storage_for_kernel(driver); + + // Unlike in the non-graph case, we can get away with doing an async copy + // here because the `DriverType` instance is held in the GraphNodeImpl + // which is guaranteed to be alive until the graph instance itself is + // destroyed, where there should be a fence ensuring that the allocation + // associated with this kernel on the device side isn't deleted. + cudaMemcpyAsync(driver_ptr, &driver, sizeof(DriverType), + cudaMemcpyDefault, cuda_instance->m_stream); + + void const* args[] = {&driver_ptr}; + + cudaKernelNodeParams params = {}; + + params.blockDim = block; + params.gridDim = grid; + params.sharedMemBytes = shmem; + params.func = (void*)base_t::get_kernel_func(); + params.kernelParams = (void**)args; + params.extra = nullptr; + + CUDA_SAFE_CALL(cudaGraphAddKernelNode( + &graph_node, graph, /* dependencies = */ nullptr, + /* numDependencies = */ 0, ¶ms)); + } else { + // We still need an empty node for the dependency structure + CUDA_SAFE_CALL(cudaGraphAddEmptyNode(&graph_node, graph, + /* dependencies = */ nullptr, + /* numDependencies = */ 0)); } + KOKKOS_ENSURES(bool(graph_node)) } +#endif +}; - static cudaFuncAttributes get_cuda_func_attributes() { - cudaFuncAttributes attr; - CUDA_SAFE_CALL(cudaFuncGetAttributes( - &attr, cuda_parallel_launch_local_memory<DriverType, MaxThreadsPerBlock, - MinBlocksPerSM>)); - return attr; +// </editor-fold> end Global Memory }}}2 +//------------------------------------------------------------------------------ + +//------------------------------------------------------------------------------ +// <editor-fold desc="Constant Memory"> {{{2 + +template <class DriverType, unsigned int MaxThreadsPerBlock, + unsigned int MinBlocksPerSM> +struct CudaParallelLaunchKernelFunc< + DriverType, Kokkos::LaunchBounds<MaxThreadsPerBlock, MinBlocksPerSM>, + Experimental::CudaLaunchMechanism::ConstantMemory> { + static std::decay_t<decltype(cuda_parallel_launch_constant_memory< + DriverType, MaxThreadsPerBlock, MinBlocksPerSM>)> + get_kernel_func() { + return cuda_parallel_launch_constant_memory<DriverType, MaxThreadsPerBlock, + MinBlocksPerSM>; } }; template <class DriverType> -struct CudaParallelLaunch<DriverType, Kokkos::LaunchBounds<0, 0>, - Experimental::CudaLaunchMechanism::LocalMemory> { - static_assert(sizeof(DriverType) < CudaTraits::KernelArgumentLimit, - "Kokkos Error: Requested CudaLaunchLocalMemory with a Functor " - "larger than 4096 bytes."); - inline CudaParallelLaunch(const DriverType& driver, const dim3& grid, - const dim3& block, const int shmem, - const CudaInternal* cuda_instance, - const bool prefer_shmem) { - if ((grid.x != 0) && ((block.x * block.y * block.z) != 0)) { - if (cuda_instance->m_maxShmemPerBlock < shmem) { - Kokkos::Impl::throw_runtime_exception(std::string( - "CudaParallelLaunch FAILED: shared memory request is too large")); - } -#ifndef KOKKOS_ARCH_KEPLER - // On Kepler the L1 has no benefit since it doesn't cache reads - else { - CUDA_SAFE_CALL(cudaFuncSetCacheConfig( - cuda_parallel_launch_local_memory<DriverType>, - (prefer_shmem ? cudaFuncCachePreferShared - : cudaFuncCachePreferL1))); - } -#else - (void)prefer_shmem; -#endif +struct CudaParallelLaunchKernelFunc< + DriverType, Kokkos::LaunchBounds<0, 0>, + Experimental::CudaLaunchMechanism::ConstantMemory> { + static std::decay_t< + decltype(cuda_parallel_launch_constant_memory<DriverType>)> + get_kernel_func() { + return cuda_parallel_launch_constant_memory<DriverType>; + } +}; - KOKKOS_ENSURE_CUDA_LOCK_ARRAYS_ON_DEVICE(); +//------------------------------------------------------------------------------ + +template <class DriverType, class LaunchBounds> +struct CudaParallelLaunchKernelInvoker< + DriverType, LaunchBounds, Experimental::CudaLaunchMechanism::ConstantMemory> + : CudaParallelLaunchKernelFunc< + DriverType, LaunchBounds, + Experimental::CudaLaunchMechanism::ConstantMemory> { + using base_t = CudaParallelLaunchKernelFunc< + DriverType, LaunchBounds, + Experimental::CudaLaunchMechanism::ConstantMemory>; + static_assert(sizeof(DriverType) < CudaTraits::ConstantMemoryUsage, + "Kokkos Error: Requested CudaLaunchConstantMemory with a " + "Functor larger than 32kB."); - // Invoke the driver function on the device - cuda_parallel_launch_local_memory<DriverType> - <<<grid, block, shmem, cuda_instance->m_stream>>>(driver); + static void invoke_kernel(DriverType const& driver, dim3 const& grid, + dim3 const& block, int shmem, + CudaInternal const* cuda_instance) { + // Wait until the previous kernel that uses the constant buffer is done + CUDA_SAFE_CALL(cudaEventSynchronize(cuda_instance->constantMemReusable)); -#if defined(KOKKOS_ENABLE_DEBUG_BOUNDS_CHECK) - CUDA_SAFE_CALL(cudaGetLastError()); - Kokkos::Cuda().fence(); -#endif - } + // Copy functor (synchronously) to staging buffer in pinned host memory + unsigned long* staging = cuda_instance->constantMemHostStaging; + memcpy(staging, &driver, sizeof(DriverType)); + + // Copy functor asynchronously from there to constant memory on the device + cudaMemcpyToSymbolAsync(kokkos_impl_cuda_constant_memory_buffer, staging, + sizeof(DriverType), 0, cudaMemcpyHostToDevice, + cudaStream_t(cuda_instance->m_stream)); + + // Invoke the driver function on the device + (base_t:: + get_kernel_func())<<<grid, block, shmem, cuda_instance->m_stream>>>(); + + // Record an event that says when the constant buffer can be reused + CUDA_SAFE_CALL(cudaEventRecord(cuda_instance->constantMemReusable, + cudaStream_t(cuda_instance->m_stream))); } - static cudaFuncAttributes get_cuda_func_attributes() { - cudaFuncAttributes attr; - CUDA_SAFE_CALL(cudaFuncGetAttributes( - &attr, cuda_parallel_launch_local_memory<DriverType>)); - return attr; +#ifdef KOKKOS_CUDA_ENABLE_GRAPHS + inline static void create_parallel_launch_graph_node( + DriverType const& driver, dim3 const& grid, dim3 const& block, int shmem, + CudaInternal const* cuda_instance, bool prefer_shmem) { + // Just use global memory; coordinating through events to share constant + // memory with the non-graph interface is not really reasonable since + // events don't work with Graphs directly, and this would anyway require + // a much more complicated structure that finds previous nodes in the + // dependency structure of the graph and creates an implicit dependence + // based on the need for constant memory (which we would then have to + // somehow go and prove was not creating a dependency cycle, and I don't + // even know if there's an efficient way to do that, let alone in the + // structure we currenty have). + using global_launch_impl_t = CudaParallelLaunchKernelInvoker< + DriverType, LaunchBounds, + Experimental::CudaLaunchMechanism::GlobalMemory>; + global_launch_impl_t::create_parallel_launch_graph_node( + driver, grid, block, shmem, cuda_instance, prefer_shmem); } +#endif }; +// </editor-fold> end Constant Memory }}}2 +//------------------------------------------------------------------------------ + +// </editor-fold> end CudaParallelLaunchKernelInvoker }}}1 +//============================================================================== + +//============================================================================== +// <editor-fold desc="CudaParallelLaunchImpl"> {{{1 + +template <class DriverType, class LaunchBounds, + Experimental::CudaLaunchMechanism LaunchMechanism> +struct CudaParallelLaunchImpl; + template <class DriverType, unsigned int MaxThreadsPerBlock, - unsigned int MinBlocksPerSM> -struct CudaParallelLaunch< + unsigned int MinBlocksPerSM, + Experimental::CudaLaunchMechanism LaunchMechanism> +struct CudaParallelLaunchImpl< DriverType, Kokkos::LaunchBounds<MaxThreadsPerBlock, MinBlocksPerSM>, - Experimental::CudaLaunchMechanism::GlobalMemory> { - inline CudaParallelLaunch(const DriverType& driver, const dim3& grid, - const dim3& block, const int shmem, - CudaInternal* cuda_instance, - const bool prefer_shmem) { - if ((grid.x != 0) && ((block.x * block.y * block.z) != 0)) { - if (cuda_instance->m_maxShmemPerBlock < shmem) { - Kokkos::Impl::throw_runtime_exception(std::string( - "CudaParallelLaunch FAILED: shared memory request is too large")); - } -#ifndef KOKKOS_ARCH_KEPLER - // On Kepler the L1 has no benefit since it doesn't cache reads - else { - CUDA_SAFE_CALL(cudaFuncSetCacheConfig( - cuda_parallel_launch_global_memory<DriverType, MaxThreadsPerBlock, - MinBlocksPerSM>, - (prefer_shmem ? cudaFuncCachePreferShared - : cudaFuncCachePreferL1))); - } -#else - (void)prefer_shmem; -#endif + LaunchMechanism> + : CudaParallelLaunchKernelInvoker< + DriverType, Kokkos::LaunchBounds<MaxThreadsPerBlock, MinBlocksPerSM>, + LaunchMechanism> { + using base_t = CudaParallelLaunchKernelInvoker< + DriverType, Kokkos::LaunchBounds<MaxThreadsPerBlock, MinBlocksPerSM>, + LaunchMechanism>; + + inline static void launch_kernel(const DriverType& driver, const dim3& grid, + const dim3& block, int shmem, + const CudaInternal* cuda_instance, + bool prefer_shmem) { + if (!Impl::is_empty_launch(grid, block)) { + // Prevent multiple threads to simultaneously set the cache configuration + // preference and launch the same kernel + static std::mutex mutex; + std::lock_guard<std::mutex> lock(mutex); + + Impl::check_shmem_request(cuda_instance, shmem); + + // If a desired occupancy is specified, we compute how much shared memory + // to ask for to achieve that occupancy, assuming that the cache + // configuration is `cudaFuncCachePreferL1`. If the amount of dynamic + // shared memory computed is actually smaller than `shmem` we overwrite + // `shmem` and set `prefer_shmem` to `false`. + modify_launch_configuration_if_desired_occupancy_is_specified( + driver.get_policy(), cuda_instance->m_deviceProp, + get_cuda_func_attributes(), block, shmem, prefer_shmem); + + Impl::configure_shmem_preference< + DriverType, Kokkos::LaunchBounds<MaxThreadsPerBlock, MinBlocksPerSM>, + decltype(base_t::get_kernel_func())>(base_t::get_kernel_func(), + prefer_shmem); KOKKOS_ENSURE_CUDA_LOCK_ARRAYS_ON_DEVICE(); - DriverType* driver_ptr = nullptr; - driver_ptr = reinterpret_cast<DriverType*>( - cuda_instance->scratch_functor(sizeof(DriverType))); - cudaMemcpyAsync(driver_ptr, &driver, sizeof(DriverType), - cudaMemcpyDefault, cuda_instance->m_stream); - // Invoke the driver function on the device - cuda_parallel_launch_global_memory<DriverType, MaxThreadsPerBlock, - MinBlocksPerSM> - <<<grid, block, shmem, cuda_instance->m_stream>>>(driver_ptr); + base_t::invoke_kernel(driver, grid, block, shmem, cuda_instance); #if defined(KOKKOS_ENABLE_DEBUG_BOUNDS_CHECK) CUDA_SAFE_CALL(cudaGetLastError()); - Kokkos::Cuda().fence(); + cuda_instance->fence(); #endif } } + static cudaFuncAttributes get_cuda_func_attributes() { - cudaFuncAttributes attr; - CUDA_SAFE_CALL(cudaFuncGetAttributes( - &attr, - cuda_parallel_launch_global_memory<DriverType, MaxThreadsPerBlock, - MinBlocksPerSM>)); + // Race condition inside of cudaFuncGetAttributes if the same address is + // given requires using a local variable as input instead of a static Rely + // on static variable initialization to make sure only one thread executes + // the code and the result is visible. + auto wrap_get_attributes = []() -> cudaFuncAttributes { + cudaFuncAttributes attr_tmp; + CUDA_SAFE_CALL( + cudaFuncGetAttributes(&attr_tmp, base_t::get_kernel_func())); + return attr_tmp; + }; + static cudaFuncAttributes attr = wrap_get_attributes(); return attr; } }; -template <class DriverType> -struct CudaParallelLaunch<DriverType, Kokkos::LaunchBounds<0, 0>, - Experimental::CudaLaunchMechanism::GlobalMemory> { - inline CudaParallelLaunch(const DriverType& driver, const dim3& grid, - const dim3& block, const int shmem, - CudaInternal* cuda_instance, - const bool prefer_shmem) { - if ((grid.x != 0) && ((block.x * block.y * block.z) != 0)) { - if (cuda_instance->m_maxShmemPerBlock < shmem) { - Kokkos::Impl::throw_runtime_exception(std::string( - "CudaParallelLaunch FAILED: shared memory request is too large")); - } -#ifndef KOKKOS_ARCH_KEPLER - // On Kepler the L1 has no benefit since it doesn't cache reads - else { - CUDA_SAFE_CALL(cudaFuncSetCacheConfig( - cuda_parallel_launch_global_memory<DriverType>, - (prefer_shmem ? cudaFuncCachePreferShared - : cudaFuncCachePreferL1))); - } -#else - (void)prefer_shmem; -#endif +// </editor-fold> end CudaParallelLaunchImpl }}}1 +//============================================================================== - KOKKOS_ENSURE_CUDA_LOCK_ARRAYS_ON_DEVICE(); +//============================================================================== +// <editor-fold desc="CudaParallelLaunch"> {{{1 - DriverType* driver_ptr = nullptr; - driver_ptr = reinterpret_cast<DriverType*>( - cuda_instance->scratch_functor(sizeof(DriverType))); - cudaMemcpyAsync(driver_ptr, &driver, sizeof(DriverType), - cudaMemcpyDefault, cuda_instance->m_stream); - - cuda_parallel_launch_global_memory<DriverType> - <<<grid, block, shmem, cuda_instance->m_stream>>>(driver_ptr); - -#if defined(KOKKOS_ENABLE_DEBUG_BOUNDS_CHECK) - CUDA_SAFE_CALL(cudaGetLastError()); - Kokkos::Cuda().fence(); +template <class DriverType, class LaunchBounds = Kokkos::LaunchBounds<>, + Experimental::CudaLaunchMechanism LaunchMechanism = + DeduceCudaLaunchMechanism<DriverType>::launch_mechanism, + bool DoGraph = DriverType::Policy::is_graph_kernel::value +#ifndef KOKKOS_CUDA_ENABLE_GRAPHS + && false #endif - } + > +struct CudaParallelLaunch; + +// General launch mechanism +template <class DriverType, class LaunchBounds, + Experimental::CudaLaunchMechanism LaunchMechanism> +struct CudaParallelLaunch<DriverType, LaunchBounds, LaunchMechanism, + /* DoGraph = */ false> + : CudaParallelLaunchImpl<DriverType, LaunchBounds, LaunchMechanism> { + using base_t = + CudaParallelLaunchImpl<DriverType, LaunchBounds, LaunchMechanism>; + template <class... Args> + CudaParallelLaunch(Args&&... args) { + base_t::launch_kernel((Args &&) args...); } +}; - static cudaFuncAttributes get_cuda_func_attributes() { - cudaFuncAttributes attr; - CUDA_SAFE_CALL(cudaFuncGetAttributes( - &attr, cuda_parallel_launch_global_memory<DriverType>)); - return attr; +#ifdef KOKKOS_CUDA_ENABLE_GRAPHS +// Launch mechanism for creating graph nodes +template <class DriverType, class LaunchBounds, + Experimental::CudaLaunchMechanism LaunchMechanism> +struct CudaParallelLaunch<DriverType, LaunchBounds, LaunchMechanism, + /* DoGraph = */ true> + : CudaParallelLaunchImpl<DriverType, LaunchBounds, LaunchMechanism> { + using base_t = + CudaParallelLaunchImpl<DriverType, LaunchBounds, LaunchMechanism>; + template <class... Args> + CudaParallelLaunch(Args&&... args) { + base_t::create_parallel_launch_graph_node((Args &&) args...); } }; -//---------------------------------------------------------------------------- +#endif + +// </editor-fold> end CudaParallelLaunch }}}1 +//============================================================================== } // namespace Impl } // namespace Kokkos @@ -563,6 +714,5 @@ struct CudaParallelLaunch<DriverType, Kokkos::LaunchBounds<0, 0>, //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- -#endif /* defined( __CUDACC__ ) */ #endif /* defined( KOKKOS_ENABLE_CUDA ) */ #endif /* #ifndef KOKKOS_CUDAEXEC_HPP */ diff --git a/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Locks.cpp b/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Locks.cpp index 07dadb3c1..ff3164954 100644 --- a/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Locks.cpp +++ b/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Locks.cpp @@ -42,13 +42,10 @@ //@HEADER */ -#include <Kokkos_Macros.hpp> - +#include <Kokkos_Core.hpp> #ifdef KOKKOS_ENABLE_CUDA - #include <Cuda/Kokkos_Cuda_Locks.hpp> #include <Cuda/Kokkos_Cuda_Error.hpp> -#include <Kokkos_Cuda.hpp> #ifdef KOKKOS_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE namespace Kokkos { diff --git a/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Locks.hpp b/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Locks.hpp index a4b5d08cc..7640b8084 100644 --- a/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Locks.hpp +++ b/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Locks.hpp @@ -81,8 +81,6 @@ void finalize_host_cuda_lock_arrays(); } // namespace Impl } // namespace Kokkos -#if defined(__CUDACC__) - namespace Kokkos { namespace Impl { @@ -173,8 +171,6 @@ inline int eliminate_warning_for_lock_array() { return lock_array_copied; } KOKKOS_COPY_CUDA_LOCK_ARRAYS_TO_DEVICE() #endif -#endif /* defined( __CUDACC__ ) */ - #endif /* defined( KOKKOS_ENABLE_CUDA ) */ #endif /* #ifndef KOKKOS_CUDA_LOCKS_HPP */ diff --git a/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Parallel.hpp b/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Parallel.hpp index 71ddadf74..131d18098 100644 --- a/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Parallel.hpp +++ b/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Parallel.hpp @@ -46,10 +46,10 @@ #define KOKKOS_CUDA_PARALLEL_HPP #include <Kokkos_Macros.hpp> -#if defined(__CUDACC__) && defined(KOKKOS_ENABLE_CUDA) +#if defined(KOKKOS_ENABLE_CUDA) -#include <iostream> #include <algorithm> +#include <string> #include <cstdio> #include <cstdint> @@ -63,10 +63,8 @@ #include <Kokkos_Vectorization.hpp> #include <Cuda/Kokkos_Cuda_Version_9_8_Compatibility.hpp> -#if defined(KOKKOS_ENABLE_PROFILING) -#include <impl/Kokkos_Profiling_Interface.hpp> +#include <impl/Kokkos_Tools.hpp> #include <typeinfo> -#endif #include <KokkosExp_MDRangePolicy.hpp> @@ -84,9 +82,9 @@ class TeamPolicyInternal<Kokkos::Cuda, Properties...> : public PolicyTraits<Properties...> { public: //! Tag this class as a kokkos execution policy - typedef TeamPolicyInternal execution_policy; + using execution_policy = TeamPolicyInternal; - typedef PolicyTraits<Properties...> traits; + using traits = PolicyTraits<Properties...>; template <class ExecSpace, class... OtherProperties> friend class TeamPolicyInternal; @@ -101,10 +99,12 @@ class TeamPolicyInternal<Kokkos::Cuda, Properties...> int m_team_scratch_size[2]; int m_thread_scratch_size[2]; int m_chunk_size; + bool m_tune_team; + bool m_tune_vector; public: //! Execution space of this execution policy - typedef Kokkos::Cuda execution_space; + using execution_space = Kokkos::Cuda; template <class... OtherProperties> TeamPolicyInternal(const TeamPolicyInternal<OtherProperties...>& p) { @@ -117,52 +117,16 @@ class TeamPolicyInternal<Kokkos::Cuda, Properties...> m_thread_scratch_size[1] = p.m_thread_scratch_size[1]; m_chunk_size = p.m_chunk_size; m_space = p.m_space; - } - - TeamPolicyInternal& operator=(const TeamPolicyInternal& p) { - m_league_size = p.m_league_size; - m_team_size = p.m_team_size; - m_vector_length = p.m_vector_length; - m_team_scratch_size[0] = p.m_team_scratch_size[0]; - m_team_scratch_size[1] = p.m_team_scratch_size[1]; - m_thread_scratch_size[0] = p.m_thread_scratch_size[0]; - m_thread_scratch_size[1] = p.m_thread_scratch_size[1]; - m_chunk_size = p.m_chunk_size; - m_space = p.m_space; - return *this; + m_tune_team = p.m_tune_team; + m_tune_vector = p.m_tune_vector; } //---------------------------------------- -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - template <class FunctorType> - static inline int team_size_max(const FunctorType& functor) { - int n = MAX_WARP * Impl::CudaTraits::WarpSize; - - for (; n; n >>= 1) { - const int shmem_size = - /* for global reduce */ Impl:: - cuda_single_inter_block_reduce_scan_shmem< - false, FunctorType, typename traits::work_tag>(functor, n) - /* for team reduce */ - + (n + 2) * sizeof(double) - /* for team shared */ - + Impl::FunctorTeamShmemSize<FunctorType>::value(functor, n); - - if (shmem_size < typename traits::execution_space() - .impl_internal_space_instance() - ->m_maxShmemPerBlock) - break; - } - - return n; - } -#endif - template <class FunctorType> int team_size_max(const FunctorType& f, const ParallelForTag&) const { - typedef Impl::ParallelFor<FunctorType, TeamPolicy<Properties...>> - closure_type; + using closure_type = + Impl::ParallelFor<FunctorType, TeamPolicy<Properties...>>; cudaFuncAttributes attr = CudaParallelLaunch<closure_type, typename traits::launch_bounds>:: get_cuda_func_attributes(); @@ -170,24 +134,24 @@ class TeamPolicyInternal<Kokkos::Cuda, Properties...> Kokkos::Impl::cuda_get_max_block_size<FunctorType, typename traits::launch_bounds>( space().impl_internal_space_instance(), attr, f, - (size_t)vector_length(), + (size_t)impl_vector_length(), (size_t)team_scratch_size(0) + 2 * sizeof(double), (size_t)thread_scratch_size(0) + sizeof(double)); - return block_size / vector_length(); + return block_size / impl_vector_length(); } template <class FunctorType> inline int team_size_max(const FunctorType& f, const ParallelReduceTag&) const { - typedef Impl::FunctorAnalysis<Impl::FunctorPatternInterface::REDUCE, - TeamPolicyInternal, FunctorType> - functor_analysis_type; - typedef typename Impl::ParallelReduceReturnValue< + using functor_analysis_type = + Impl::FunctorAnalysis<Impl::FunctorPatternInterface::REDUCE, + TeamPolicyInternal, FunctorType>; + using reducer_type = typename Impl::ParallelReduceReturnValue< void, typename functor_analysis_type::value_type, - FunctorType>::reducer_type reducer_type; - typedef Impl::ParallelReduce<FunctorType, TeamPolicy<Properties...>, - reducer_type> - closure_type; + FunctorType>::reducer_type; + using closure_type = + Impl::ParallelReduce<FunctorType, TeamPolicy<Properties...>, + reducer_type>; return internal_team_size_max<closure_type>(f); } @@ -200,25 +164,10 @@ class TeamPolicyInternal<Kokkos::Cuda, Properties...> return internal_team_size_max<closure_type>(f); } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - template <class FunctorType> - static int team_size_recommended(const FunctorType& functor) { - return team_size_max(functor); - } - - template <class FunctorType> - static int team_size_recommended(const FunctorType& functor, - const int vector_length) { - int max = team_size_max(functor) / vector_length; - if (max < 1) max = 1; - return max; - } -#endif - template <class FunctorType> int team_size_recommended(const FunctorType& f, const ParallelForTag&) const { - typedef Impl::ParallelFor<FunctorType, TeamPolicy<Properties...>> - closure_type; + using closure_type = + Impl::ParallelFor<FunctorType, TeamPolicy<Properties...>>; cudaFuncAttributes attr = CudaParallelLaunch<closure_type, typename traits::launch_bounds>:: get_cuda_func_attributes(); @@ -226,33 +175,33 @@ class TeamPolicyInternal<Kokkos::Cuda, Properties...> Kokkos::Impl::cuda_get_opt_block_size<FunctorType, typename traits::launch_bounds>( space().impl_internal_space_instance(), attr, f, - (size_t)vector_length(), + (size_t)impl_vector_length(), (size_t)team_scratch_size(0) + 2 * sizeof(double), (size_t)thread_scratch_size(0) + sizeof(double)); - return block_size / vector_length(); + return block_size / impl_vector_length(); } template <class FunctorType> inline int team_size_recommended(const FunctorType& f, const ParallelReduceTag&) const { - typedef Impl::FunctorAnalysis<Impl::FunctorPatternInterface::REDUCE, - TeamPolicyInternal, FunctorType> - functor_analysis_type; - typedef typename Impl::ParallelReduceReturnValue< + using functor_analysis_type = + Impl::FunctorAnalysis<Impl::FunctorPatternInterface::REDUCE, + TeamPolicyInternal, FunctorType>; + using reducer_type = typename Impl::ParallelReduceReturnValue< void, typename functor_analysis_type::value_type, - FunctorType>::reducer_type reducer_type; - typedef Impl::ParallelReduce<FunctorType, TeamPolicy<Properties...>, - reducer_type> - closure_type; + FunctorType>::reducer_type; + using closure_type = + Impl::ParallelReduce<FunctorType, TeamPolicy<Properties...>, + reducer_type>; return internal_team_size_recommended<closure_type>(f); } template <class FunctorType, class ReducerType> int team_size_recommended(const FunctorType& f, const ReducerType&, const ParallelReduceTag&) const { - typedef Impl::ParallelReduce<FunctorType, TeamPolicy<Properties...>, - ReducerType> - closure_type; + using closure_type = + Impl::ParallelReduce<FunctorType, TeamPolicy<Properties...>, + ReducerType>; return internal_team_size_recommended<closure_type>(f); } @@ -289,9 +238,18 @@ class TeamPolicyInternal<Kokkos::Cuda, Properties...> //---------------------------------------- - inline int vector_length() const { return m_vector_length; } + KOKKOS_DEPRECATED inline int vector_length() const { + return impl_vector_length(); + } + inline int impl_vector_length() const { return m_vector_length; } inline int team_size() const { return m_team_size; } inline int league_size() const { return m_league_size; } + inline bool impl_auto_team_size() const { return m_tune_team; } + inline bool impl_auto_vector_length() const { return m_tune_vector; } + inline void impl_set_team_size(size_t team_size) { m_team_size = team_size; } + inline void impl_set_vector_length(size_t vector_length) { + m_vector_length = vector_length; + } inline int scratch_size(int level, int team_size_ = -1) const { if (team_size_ < 0) team_size_ = m_team_size; return m_team_scratch_size[level] + @@ -313,18 +271,25 @@ class TeamPolicyInternal<Kokkos::Cuda, Properties...> m_vector_length(0), m_team_scratch_size{0, 0}, m_thread_scratch_size{0, 0}, - m_chunk_size(32) {} + m_chunk_size(Impl::CudaTraits::WarpSize), + m_tune_team(false), + m_tune_vector(false) {} - /** \brief Specify league size, request team size */ + /** \brief Specify league size, specify team size, specify vector length */ TeamPolicyInternal(const execution_space space_, int league_size_, int team_size_request, int vector_length_request = 1) : m_space(space_), m_league_size(league_size_), m_team_size(team_size_request), - m_vector_length(verify_requested_vector_length(vector_length_request)), + m_vector_length( + (vector_length_request > 0) + ? verify_requested_vector_length(vector_length_request) + : verify_requested_vector_length(1)), m_team_scratch_size{0, 0}, m_thread_scratch_size{0, 0}, - m_chunk_size(32) { + m_chunk_size(Impl::CudaTraits::WarpSize), + m_tune_team(bool(team_size_request <= 0)), + m_tune_vector(bool(vector_length_request <= 0)) { // Make sure league size is permissible if (league_size_ >= int(Impl::cuda_internal_maximum_grid_count())) Impl::throw_runtime_exception( @@ -332,113 +297,59 @@ class TeamPolicyInternal<Kokkos::Cuda, Properties...> "space."); // Make sure total block size is permissible - if (m_team_size * m_vector_length > 1024) { + if (m_team_size * m_vector_length > + int(Impl::CudaTraits::MaxHierarchicalParallelism)) { Impl::throw_runtime_exception( std::string("Kokkos::TeamPolicy< Cuda > the team size is too large. " "Team size x vector length must be smaller than 1024.")); } } - /** \brief Specify league size, request team size */ + /** \brief Specify league size, request team size, specify vector length */ TeamPolicyInternal(const execution_space space_, int league_size_, const Kokkos::AUTO_t& /* team_size_request */ , int vector_length_request = 1) - : m_space(space_), - m_league_size(league_size_), - m_team_size(-1), - m_vector_length(verify_requested_vector_length(vector_length_request)), - m_team_scratch_size{0, 0}, - m_thread_scratch_size{0, 0}, - m_chunk_size(32) { - // Make sure league size is permissible - if (league_size_ >= int(Impl::cuda_internal_maximum_grid_count())) - Impl::throw_runtime_exception( - "Requested too large league_size for TeamPolicy on Cuda execution " - "space."); - } + : TeamPolicyInternal(space_, league_size_, -1, vector_length_request) {} + + /** \brief Specify league size, request team size and vector length */ + TeamPolicyInternal(const execution_space space_, int league_size_, + const Kokkos::AUTO_t& /* team_size_request */, + const Kokkos::AUTO_t& /* vector_length_request */ + ) + : TeamPolicyInternal(space_, league_size_, -1, -1) {} + + /** \brief Specify league size, specify team size, request vector length */ + TeamPolicyInternal(const execution_space space_, int league_size_, + int team_size_request, const Kokkos::AUTO_t&) + : TeamPolicyInternal(space_, league_size_, team_size_request, -1) {} TeamPolicyInternal(int league_size_, int team_size_request, int vector_length_request = 1) - : m_space(typename traits::execution_space()), - m_league_size(league_size_), - m_team_size(team_size_request), - m_vector_length(verify_requested_vector_length(vector_length_request)), - m_team_scratch_size{0, 0}, - m_thread_scratch_size{0, 0}, - m_chunk_size(32) { - // Make sure league size is permissible - if (league_size_ >= int(Impl::cuda_internal_maximum_grid_count())) - Impl::throw_runtime_exception( - "Requested too large league_size for TeamPolicy on Cuda execution " - "space."); - - // Make sure total block size is permissible - if (m_team_size * m_vector_length > 1024) { - Impl::throw_runtime_exception( - std::string("Kokkos::TeamPolicy< Cuda > the team size is too large. " - "Team size x vector length must be smaller than 1024.")); - } - } + : TeamPolicyInternal(typename traits::execution_space(), league_size_, + team_size_request, vector_length_request) {} - TeamPolicyInternal(int league_size_, - const Kokkos::AUTO_t& /* team_size_request */ - , + TeamPolicyInternal(int league_size_, const Kokkos::AUTO_t& team_size_request, int vector_length_request = 1) - : m_space(typename traits::execution_space()), - m_league_size(league_size_), - m_team_size(-1), - m_vector_length(verify_requested_vector_length(vector_length_request)), - m_team_scratch_size{0, 0}, - m_thread_scratch_size{0, 0}, - m_chunk_size(32) { - // Make sure league size is permissible - if (league_size_ >= int(Impl::cuda_internal_maximum_grid_count())) - Impl::throw_runtime_exception( - "Requested too large league_size for TeamPolicy on Cuda execution " - "space."); - } + : TeamPolicyInternal(typename traits::execution_space(), league_size_, + team_size_request, vector_length_request) - inline int chunk_size() const { return m_chunk_size; } + {} -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - /** \brief set chunk_size to a discrete value*/ - inline TeamPolicyInternal set_chunk_size( - typename traits::index_type chunk_size_) const { - TeamPolicyInternal p = *this; - p.m_chunk_size = chunk_size_; - return p; - } + /** \brief Specify league size, request team size */ + TeamPolicyInternal(int league_size_, const Kokkos::AUTO_t& team_size_request, + const Kokkos::AUTO_t& vector_length_request) + : TeamPolicyInternal(typename traits::execution_space(), league_size_, + team_size_request, vector_length_request) {} - /** \brief set per team scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal set_scratch_size( - const int& level, const PerTeamValue& per_team) const { - TeamPolicyInternal p = *this; - p.m_team_scratch_size[level] = per_team.value; - return p; - }; + /** \brief Specify league size, request team size */ + TeamPolicyInternal(int league_size_, int team_size_request, + const Kokkos::AUTO_t& vector_length_request) + : TeamPolicyInternal(typename traits::execution_space(), league_size_, + team_size_request, vector_length_request) {} - /** \brief set per thread scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal set_scratch_size( - const int& level, const PerThreadValue& per_thread) const { - TeamPolicyInternal p = *this; - p.m_thread_scratch_size[level] = per_thread.value; - return p; - }; + inline int chunk_size() const { return m_chunk_size; } - /** \brief set per thread and per team scratch size for a specific level of - * the scratch hierarchy */ - inline TeamPolicyInternal set_scratch_size( - const int& level, const PerTeamValue& per_team, - const PerThreadValue& per_thread) const { - TeamPolicyInternal p = *this; - p.m_team_scratch_size[level] = per_team.value; - p.m_thread_scratch_size[level] = per_thread.value; - return p; - }; -#else /** \brief set chunk_size to a discrete value*/ inline TeamPolicyInternal& set_chunk_size( typename traits::index_type chunk_size_) { @@ -471,46 +382,10 @@ class TeamPolicyInternal<Kokkos::Cuda, Properties...> m_thread_scratch_size[level] = per_thread.value; return *this; } -#endif - typedef Kokkos::Impl::CudaTeamMember member_type; + using member_type = Kokkos::Impl::CudaTeamMember; protected: -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - /** \brief set chunk_size to a discrete value*/ - inline TeamPolicyInternal internal_set_chunk_size( - typename traits::index_type chunk_size_) { - m_chunk_size = chunk_size_; - return *this; - } - - /** \brief set per team scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal internal_set_scratch_size( - const int& level, const PerTeamValue& per_team) { - m_team_scratch_size[level] = per_team.value; - return *this; - } - - /** \brief set per thread scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal internal_set_scratch_size( - const int& level, const PerThreadValue& per_thread) { - m_thread_scratch_size[level] = per_thread.value; - return *this; - } - - /** \brief set per thread and per team scratch size for a specific level of - * the scratch hierarchy */ - inline TeamPolicyInternal internal_set_scratch_size( - const int& level, const PerTeamValue& per_team, - const PerThreadValue& per_thread) { - m_team_scratch_size[level] = per_team.value; - m_thread_scratch_size[level] = per_thread.value; - return *this; - } -#endif - template <class ClosureType, class FunctorType, class BlockSizeCallable> int internal_team_size_common(const FunctorType& f, BlockSizeCallable&& block_size_callable) const { @@ -523,7 +398,7 @@ class TeamPolicyInternal<Kokkos::Cuda, Properties...> get_cuda_func_attributes(); const int block_size = std::forward<BlockSizeCallable>(block_size_callable)( space().impl_internal_space_instance(), attr, f, - (size_t)vector_length(), + (size_t)impl_vector_length(), (size_t)team_scratch_size(0) + 2 * sizeof(double), (size_t)thread_scratch_size(0) + sizeof(double) + ((functor_value_traits::StaticValueSize != 0) @@ -535,7 +410,7 @@ class TeamPolicyInternal<Kokkos::Cuda, Properties...> int p2 = 1; while (p2 <= block_size) p2 *= 2; p2 /= 2; - return p2 / vector_length(); + return p2 / impl_vector_length(); } template <class ClosureType, class FunctorType> @@ -567,12 +442,12 @@ namespace Impl { template <class FunctorType, class... Traits> class ParallelFor<FunctorType, Kokkos::RangePolicy<Traits...>, Kokkos::Cuda> { public: - typedef Kokkos::RangePolicy<Traits...> Policy; + using Policy = Kokkos::RangePolicy<Traits...>; private: - typedef typename Policy::member_type Member; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::launch_bounds LaunchBounds; + using Member = typename Policy::member_type; + using WorkTag = typename Policy::work_tag; + using LaunchBounds = typename Policy::launch_bounds; const FunctorType m_functor; const Policy m_policy; @@ -595,7 +470,9 @@ class ParallelFor<FunctorType, Kokkos::RangePolicy<Traits...>, Kokkos::Cuda> { } public: - typedef FunctorType functor_type; + using functor_type = FunctorType; + + Policy const& get_policy() const { return m_policy; } inline __device__ void operator()(void) const { const Member work_stride = blockDim.y * gridDim.x; @@ -620,6 +497,7 @@ class ParallelFor<FunctorType, Kokkos::RangePolicy<Traits...>, Kokkos::Cuda> { Kokkos::Impl::cuda_get_opt_block_size<FunctorType, LaunchBounds>( m_policy.space().impl_internal_space_instance(), attr, m_functor, 1, 0, 0); + KOKKOS_ASSERT(block_size > 0); dim3 block(1, block_size, 1); dim3 grid( std::min( @@ -646,49 +524,58 @@ class ParallelFor<FunctorType, Kokkos::RangePolicy<Traits...>, Kokkos::Cuda> { template <class FunctorType, class... Traits> class ParallelFor<FunctorType, Kokkos::MDRangePolicy<Traits...>, Kokkos::Cuda> { public: - typedef Kokkos::MDRangePolicy<Traits...> Policy; + using Policy = Kokkos::MDRangePolicy<Traits...>; + using functor_type = FunctorType; private: - using RP = Policy; - typedef typename Policy::array_index_type array_index_type; - typedef typename Policy::index_type index_type; - typedef typename Policy::launch_bounds LaunchBounds; + using RP = Policy; + using array_index_type = typename Policy::array_index_type; + using index_type = typename Policy::index_type; + using LaunchBounds = typename Policy::launch_bounds; const FunctorType m_functor; const Policy m_rp; public: + Policy const& get_policy() const { return m_rp; } + inline __device__ void operator()(void) const { - Kokkos::Impl::Refactor::DeviceIterateTile<Policy::rank, Policy, FunctorType, - typename Policy::work_tag>( - m_rp, m_functor) + Kokkos::Impl::DeviceIterateTile<Policy::rank, Policy, FunctorType, + typename Policy::work_tag>(m_rp, m_functor) .exec_range(); } inline void execute() const { + using namespace std; + if (m_rp.m_num_tiles == 0) return; const array_index_type maxblocks = static_cast<array_index_type>( m_rp.space().impl_internal_space_instance()->m_maxBlock); if (RP::rank == 2) { const dim3 block(m_rp.m_tile[0], m_rp.m_tile[1], 1); + KOKKOS_ASSERT(block.x > 0); + KOKKOS_ASSERT(block.y > 0); const dim3 grid( - std::min((m_rp.m_upper[0] - m_rp.m_lower[0] + block.x - 1) / block.x, - maxblocks), - std::min((m_rp.m_upper[1] - m_rp.m_lower[1] + block.y - 1) / block.y, - maxblocks), + min((m_rp.m_upper[0] - m_rp.m_lower[0] + block.x - 1) / block.x, + maxblocks), + min((m_rp.m_upper[1] - m_rp.m_lower[1] + block.y - 1) / block.y, + maxblocks), 1); CudaParallelLaunch<ParallelFor, LaunchBounds>( *this, grid, block, 0, m_rp.space().impl_internal_space_instance(), false); } else if (RP::rank == 3) { const dim3 block(m_rp.m_tile[0], m_rp.m_tile[1], m_rp.m_tile[2]); + KOKKOS_ASSERT(block.x > 0); + KOKKOS_ASSERT(block.y > 0); + KOKKOS_ASSERT(block.z > 0); const dim3 grid( - std::min((m_rp.m_upper[0] - m_rp.m_lower[0] + block.x - 1) / block.x, - maxblocks), - std::min((m_rp.m_upper[1] - m_rp.m_lower[1] + block.y - 1) / block.y, - maxblocks), - std::min((m_rp.m_upper[2] - m_rp.m_lower[2] + block.z - 1) / block.z, - maxblocks)); + min((m_rp.m_upper[0] - m_rp.m_lower[0] + block.x - 1) / block.x, + maxblocks), + min((m_rp.m_upper[1] - m_rp.m_lower[1] + block.y - 1) / block.y, + maxblocks), + min((m_rp.m_upper[2] - m_rp.m_lower[2] + block.z - 1) / block.z, + maxblocks)); CudaParallelLaunch<ParallelFor, LaunchBounds>( *this, grid, block, 0, m_rp.space().impl_internal_space_instance(), false); @@ -697,14 +584,15 @@ class ParallelFor<FunctorType, Kokkos::MDRangePolicy<Traits...>, Kokkos::Cuda> { // threadIdx.z const dim3 block(m_rp.m_tile[0] * m_rp.m_tile[1], m_rp.m_tile[2], m_rp.m_tile[3]); + KOKKOS_ASSERT(block.y > 0); + KOKKOS_ASSERT(block.z > 0); const dim3 grid( - std::min( - static_cast<index_type>(m_rp.m_tile_end[0] * m_rp.m_tile_end[1]), + min(static_cast<index_type>(m_rp.m_tile_end[0] * m_rp.m_tile_end[1]), static_cast<index_type>(maxblocks)), - std::min((m_rp.m_upper[2] - m_rp.m_lower[2] + block.y - 1) / block.y, - maxblocks), - std::min((m_rp.m_upper[3] - m_rp.m_lower[3] + block.z - 1) / block.z, - maxblocks)); + min((m_rp.m_upper[2] - m_rp.m_lower[2] + block.y - 1) / block.y, + maxblocks), + min((m_rp.m_upper[3] - m_rp.m_lower[3] + block.z - 1) / block.z, + maxblocks)); CudaParallelLaunch<ParallelFor, LaunchBounds>( *this, grid, block, 0, m_rp.space().impl_internal_space_instance(), false); @@ -713,15 +601,14 @@ class ParallelFor<FunctorType, Kokkos::MDRangePolicy<Traits...>, Kokkos::Cuda> { // threadIdx.z const dim3 block(m_rp.m_tile[0] * m_rp.m_tile[1], m_rp.m_tile[2] * m_rp.m_tile[3], m_rp.m_tile[4]); + KOKKOS_ASSERT(block.z > 0); const dim3 grid( - std::min( - static_cast<index_type>(m_rp.m_tile_end[0] * m_rp.m_tile_end[1]), + min(static_cast<index_type>(m_rp.m_tile_end[0] * m_rp.m_tile_end[1]), static_cast<index_type>(maxblocks)), - std::min( - static_cast<index_type>(m_rp.m_tile_end[2] * m_rp.m_tile_end[3]), + min(static_cast<index_type>(m_rp.m_tile_end[2] * m_rp.m_tile_end[3]), static_cast<index_type>(maxblocks)), - std::min((m_rp.m_upper[4] - m_rp.m_lower[4] + block.z - 1) / block.z, - maxblocks)); + min((m_rp.m_upper[4] - m_rp.m_lower[4] + block.z - 1) / block.z, + maxblocks)); CudaParallelLaunch<ParallelFor, LaunchBounds>( *this, grid, block, 0, m_rp.space().impl_internal_space_instance(), false); @@ -732,21 +619,17 @@ class ParallelFor<FunctorType, Kokkos::MDRangePolicy<Traits...>, Kokkos::Cuda> { m_rp.m_tile[2] * m_rp.m_tile[3], m_rp.m_tile[4] * m_rp.m_tile[5]); const dim3 grid( - std::min( - static_cast<index_type>(m_rp.m_tile_end[0] * m_rp.m_tile_end[1]), + min(static_cast<index_type>(m_rp.m_tile_end[0] * m_rp.m_tile_end[1]), static_cast<index_type>(maxblocks)), - std::min( - static_cast<index_type>(m_rp.m_tile_end[2] * m_rp.m_tile_end[3]), + min(static_cast<index_type>(m_rp.m_tile_end[2] * m_rp.m_tile_end[3]), static_cast<index_type>(maxblocks)), - std::min( - static_cast<index_type>(m_rp.m_tile_end[4] * m_rp.m_tile_end[5]), + min(static_cast<index_type>(m_rp.m_tile_end[4] * m_rp.m_tile_end[5]), static_cast<index_type>(maxblocks))); CudaParallelLaunch<ParallelFor, LaunchBounds>( *this, grid, block, 0, m_rp.space().impl_internal_space_instance(), false); } else { - printf("Kokkos::MDRange Error: Exceeded rank bounds with Cuda\n"); - Kokkos::abort("Aborting"); + Kokkos::abort("Kokkos::MDRange Error: Exceeded rank bounds with Cuda\n"); } } // end execute @@ -760,16 +643,16 @@ template <class FunctorType, class... Properties> class ParallelFor<FunctorType, Kokkos::TeamPolicy<Properties...>, Kokkos::Cuda> { public: - typedef TeamPolicyInternal<Kokkos::Cuda, Properties...> Policy; + using Policy = TeamPolicy<Properties...>; private: - typedef typename Policy::member_type Member; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::launch_bounds LaunchBounds; + using Member = typename Policy::member_type; + using WorkTag = typename Policy::work_tag; + using LaunchBounds = typename Policy::launch_bounds; public: - typedef FunctorType functor_type; - typedef Cuda::size_type size_type; + using functor_type = FunctorType; + using size_type = Cuda::size_type; private: // Algorithmic constraints: blockDim.y is a power of two AND blockDim.y == @@ -804,6 +687,8 @@ class ParallelFor<FunctorType, Kokkos::TeamPolicy<Properties...>, } public: + Policy const& get_policy() const { return m_policy; } + __device__ inline void operator()(void) const { // Iterate this block through the league int64_t threadid = 0; @@ -873,7 +758,7 @@ class ParallelFor<FunctorType, Kokkos::TeamPolicy<Properties...>, m_policy(arg_policy), m_league_size(arg_policy.league_size()), m_team_size(arg_policy.team_size()), - m_vector_size(arg_policy.vector_length()) { + m_vector_size(arg_policy.impl_vector_length()) { cudaFuncAttributes attr = CudaParallelLaunch<ParallelFor, LaunchBounds>::get_cuda_func_attributes(); @@ -899,10 +784,12 @@ class ParallelFor<FunctorType, Kokkos::TeamPolicy<Properties...>, m_scratch_ptr[1] = m_team_size <= 0 ? nullptr - : cuda_resize_scratch_space( - static_cast<ptrdiff_t>(m_scratch_size[1]) * - static_cast<ptrdiff_t>(Cuda::concurrency() / - (m_team_size * m_vector_size))); + : m_policy.space() + .impl_internal_space_instance() + ->resize_team_scratch_space( + static_cast<ptrdiff_t>(m_scratch_size[1]) * + static_cast<ptrdiff_t>(Cuda::concurrency() / + (m_team_size * m_vector_size))); const int shmem_size_total = m_shmem_begin + m_shmem_size; if (m_policy.space().impl_internal_space_instance()->m_maxShmemPerBlock < @@ -918,10 +805,10 @@ class ParallelFor<FunctorType, Kokkos::TeamPolicy<Properties...>, if (int(m_team_size) > int(Kokkos::Impl::cuda_get_max_block_size<FunctorType, LaunchBounds>( m_policy.space().impl_internal_space_instance(), attr, - arg_functor, arg_policy.vector_length(), + arg_functor, arg_policy.impl_vector_length(), arg_policy.team_scratch_size(0), arg_policy.thread_scratch_size(0)) / - arg_policy.vector_length())) { + arg_policy.impl_vector_length())) { Kokkos::Impl::throw_runtime_exception(std::string( "Kokkos::Impl::ParallelFor< Cuda > requested too large team size.")); } @@ -941,34 +828,35 @@ template <class FunctorType, class ReducerType, class... Traits> class ParallelReduce<FunctorType, Kokkos::RangePolicy<Traits...>, ReducerType, Kokkos::Cuda> { public: - typedef Kokkos::RangePolicy<Traits...> Policy; + using Policy = Kokkos::RangePolicy<Traits...>; private: - typedef typename Policy::WorkRange WorkRange; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::member_type Member; - typedef typename Policy::launch_bounds LaunchBounds; - - typedef Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, - FunctorType, ReducerType> - ReducerConditional; - typedef typename ReducerConditional::type ReducerTypeFwd; - typedef + using WorkRange = typename Policy::WorkRange; + using WorkTag = typename Policy::work_tag; + using Member = typename Policy::member_type; + using LaunchBounds = typename Policy::launch_bounds; + + using ReducerConditional = + Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, + FunctorType, ReducerType>; + using ReducerTypeFwd = typename ReducerConditional::type; + using WorkTagFwd = typename Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, - WorkTag, void>::type WorkTagFwd; + WorkTag, void>::type; - typedef Kokkos::Impl::FunctorValueTraits<ReducerTypeFwd, WorkTagFwd> - ValueTraits; - typedef Kokkos::Impl::FunctorValueInit<ReducerTypeFwd, WorkTagFwd> ValueInit; - typedef Kokkos::Impl::FunctorValueJoin<ReducerTypeFwd, WorkTagFwd> ValueJoin; + using ValueTraits = + Kokkos::Impl::FunctorValueTraits<ReducerTypeFwd, WorkTagFwd>; + using ValueInit = Kokkos::Impl::FunctorValueInit<ReducerTypeFwd, WorkTagFwd>; + using ValueJoin = Kokkos::Impl::FunctorValueJoin<ReducerTypeFwd, WorkTagFwd>; public: - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::value_type value_type; - typedef typename ValueTraits::reference_type reference_type; - typedef FunctorType functor_type; - typedef Kokkos::Cuda::size_type size_type; - typedef typename Policy::index_type index_type; + using pointer_type = typename ValueTraits::pointer_type; + using value_type = typename ValueTraits::value_type; + using reference_type = typename ValueTraits::reference_type; + using functor_type = FunctorType; + using size_type = Kokkos::Cuda::size_type; + using index_type = typename Policy::index_type; + using reducer_type = ReducerType; // Algorithmic constraints: blockSize is a power of two AND blockDim.y == // blockDim.z == 1 @@ -978,6 +866,7 @@ class ParallelReduce<FunctorType, Kokkos::RangePolicy<Traits...>, ReducerType, const ReducerType m_reducer; const pointer_type m_result_ptr; const bool m_result_ptr_device_accessible; + const bool m_result_ptr_host_accessible; size_type* m_scratch_space; size_type* m_scratch_flags; size_type* m_unified_space; @@ -990,10 +879,12 @@ class ParallelReduce<FunctorType, Kokkos::RangePolicy<Traits...>, ReducerType, //}; // Some crutch to do function overloading private: - typedef double DummyShflReductionType; - typedef int DummySHMEMReductionType; + using DummyShflReductionType = double; + using DummySHMEMReductionType = int; public: + Policy const& get_policy() const { return m_policy; } + // Make the exec_range calls call to Reduce::DeviceIterateTile template <class TagType> __device__ inline @@ -1043,11 +934,11 @@ class ParallelReduce<FunctorType, Kokkos::RangePolicy<Traits...>, ReducerType, } } + // Doing code duplication here to fix issue #3428 + // Suspect optimizer bug?? // Reduce with final value at blockDim.y - 1 location. - if (cuda_single_inter_block_reduce_scan<false, ReducerTypeFwd, WorkTagFwd>( - ReducerConditional::select(m_functor, m_reducer), blockIdx.x, - gridDim.x, kokkos_impl_cuda_shared_memory<size_type>(), - m_scratch_space, m_scratch_flags)) { + // Shortcut for length zero reduction + if (m_policy.begin() == m_policy.end()) { // This is the final block with the final result at the final threads' // location @@ -1070,9 +961,44 @@ class ParallelReduce<FunctorType, Kokkos::RangePolicy<Traits...>, ReducerType, for (unsigned i = threadIdx.y; i < word_count.value; i += blockDim.y) { global[i] = shared[i]; } + // return ; } - } + if (m_policy.begin() != m_policy.end()) { + { + if (cuda_single_inter_block_reduce_scan<false, ReducerTypeFwd, + WorkTagFwd>( + ReducerConditional::select(m_functor, m_reducer), blockIdx.x, + gridDim.x, kokkos_impl_cuda_shared_memory<size_type>(), + m_scratch_space, m_scratch_flags)) { + // This is the final block with the final result at the final threads' + // location + + size_type* const shared = + kokkos_impl_cuda_shared_memory<size_type>() + + (blockDim.y - 1) * word_count.value; + size_type* const global = + m_result_ptr_device_accessible + ? reinterpret_cast<size_type*>(m_result_ptr) + : (m_unified_space ? m_unified_space : m_scratch_space); + + if (threadIdx.y == 0) { + Kokkos::Impl::FunctorFinal<ReducerTypeFwd, WorkTagFwd>::final( + ReducerConditional::select(m_functor, m_reducer), shared); + } + + if (CudaTraits::WarpSize < word_count.value) { + __syncthreads(); + } + + for (unsigned i = threadIdx.y; i < word_count.value; + i += blockDim.y) { + global[i] = shared[i]; + } + } + } + } + } /* __device__ inline void run(const DummyShflReductionType&) const { @@ -1124,13 +1050,19 @@ class ParallelReduce<FunctorType, Kokkos::RangePolicy<Traits...>, ReducerType, int shmem_size = cuda_single_inter_block_reduce_scan_shmem<false, FunctorType, WorkTag>( f, n); + using closure_type = Impl::ParallelReduce<FunctorType, Policy, ReducerType>; + cudaFuncAttributes attr = + CudaParallelLaunch<closure_type, + LaunchBounds>::get_cuda_func_attributes(); while ( (n && (m_policy.space().impl_internal_space_instance()->m_maxShmemPerBlock < shmem_size)) || - (n > static_cast<unsigned>( - Kokkos::Impl::cuda_get_max_block_size< - ParallelReduce, LaunchBounds>(f, 1, shmem_size, 0)))) { + (n > + static_cast<unsigned>( + Kokkos::Impl::cuda_get_max_block_size<FunctorType, LaunchBounds>( + m_policy.space().impl_internal_space_instance(), attr, f, 1, + shmem_size, 0)))) { n >>= 1; shmem_size = cuda_single_inter_block_reduce_scan_shmem<false, FunctorType, WorkTag>(f, n); @@ -1139,10 +1071,19 @@ class ParallelReduce<FunctorType, Kokkos::RangePolicy<Traits...>, ReducerType, } inline void execute() { - const index_type nwork = m_policy.end() - m_policy.begin(); - if (nwork) { + const index_type nwork = m_policy.end() - m_policy.begin(); + const bool need_device_set = ReduceFunctorHasInit<FunctorType>::value || + ReduceFunctorHasFinal<FunctorType>::value || + !m_result_ptr_host_accessible || +#ifdef KOKKOS_CUDA_ENABLE_GRAPHS + Policy::is_graph_kernel::value || +#endif + !std::is_same<ReducerType, InvalidType>::value; + if ((nwork > 0) || need_device_set) { const int block_size = local_block_size(m_functor); + KOKKOS_ASSERT(block_size > 0); + m_scratch_space = cuda_internal_scratch_space( m_policy.space(), ValueTraits::value_size(ReducerConditional::select( m_functor, m_reducer)) * @@ -1159,6 +1100,7 @@ class ParallelReduce<FunctorType, Kokkos::RangePolicy<Traits...>, ReducerType, dim3 grid(std::min(int(block.y), int((nwork + block.y - 1) / block.y)), 1, 1); + // TODO @graph We need to effectively insert this in to the graph const int shmem = UseShflReduction ? 0 @@ -1166,12 +1108,14 @@ class ParallelReduce<FunctorType, Kokkos::RangePolicy<Traits...>, ReducerType, WorkTag>(m_functor, block.y); + if ((nwork == 0) #ifdef KOKKOS_IMPL_DEBUG_CUDA_SERIAL_EXECUTION - if (Kokkos::Impl::CudaInternal::cuda_use_serial_execution()) { + || Kokkos::Impl::CudaInternal::cuda_use_serial_execution() +#endif + ) { block = dim3(1, 1, 1); grid = dim3(1, 1, 1); } -#endif CudaParallelLaunch<ParallelReduce, LaunchBounds>( *this, grid, block, shmem, @@ -1179,7 +1123,7 @@ class ParallelReduce<FunctorType, Kokkos::RangePolicy<Traits...>, ReducerType, false); // copy to device and execute if (!m_result_ptr_device_accessible) { - Cuda().fence(); + m_policy.space().fence(); if (m_result_ptr) { if (m_unified_space) { @@ -1197,6 +1141,7 @@ class ParallelReduce<FunctorType, Kokkos::RangePolicy<Traits...>, ReducerType, } } else { if (m_result_ptr) { + // TODO @graph We need to effectively insert this in to the graph ValueInit::init(ReducerConditional::select(m_functor, m_reducer), m_result_ptr); } @@ -1215,9 +1160,12 @@ class ParallelReduce<FunctorType, Kokkos::RangePolicy<Traits...>, ReducerType, m_result_ptr_device_accessible( MemorySpaceAccess<Kokkos::CudaSpace, typename ViewType::memory_space>::accessible), - m_scratch_space(0), - m_scratch_flags(0), - m_unified_space(0) {} + m_result_ptr_host_accessible( + MemorySpaceAccess<Kokkos::HostSpace, + typename ViewType::memory_space>::accessible), + m_scratch_space(nullptr), + m_scratch_flags(nullptr), + m_unified_space(nullptr) {} ParallelReduce(const FunctorType& arg_functor, const Policy& arg_policy, const ReducerType& reducer) @@ -1229,9 +1177,13 @@ class ParallelReduce<FunctorType, Kokkos::RangePolicy<Traits...>, ReducerType, MemorySpaceAccess<Kokkos::CudaSpace, typename ReducerType::result_view_type:: memory_space>::accessible), - m_scratch_space(0), - m_scratch_flags(0), - m_unified_space(0) {} + m_result_ptr_host_accessible( + MemorySpaceAccess<Kokkos::HostSpace, + typename ReducerType::result_view_type:: + memory_space>::accessible), + m_scratch_space(nullptr), + m_scratch_flags(nullptr), + m_unified_space(nullptr) {} }; // MDRangePolicy impl @@ -1239,35 +1191,36 @@ template <class FunctorType, class ReducerType, class... Traits> class ParallelReduce<FunctorType, Kokkos::MDRangePolicy<Traits...>, ReducerType, Kokkos::Cuda> { public: - typedef Kokkos::MDRangePolicy<Traits...> Policy; + using Policy = Kokkos::MDRangePolicy<Traits...>; private: - typedef typename Policy::array_index_type array_index_type; - typedef typename Policy::index_type index_type; - - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::member_type Member; - typedef typename Policy::launch_bounds LaunchBounds; - - typedef Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, - FunctorType, ReducerType> - ReducerConditional; - typedef typename ReducerConditional::type ReducerTypeFwd; - typedef + using array_index_type = typename Policy::array_index_type; + using index_type = typename Policy::index_type; + + using WorkTag = typename Policy::work_tag; + using Member = typename Policy::member_type; + using LaunchBounds = typename Policy::launch_bounds; + + using ReducerConditional = + Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, + FunctorType, ReducerType>; + using ReducerTypeFwd = typename ReducerConditional::type; + using WorkTagFwd = typename Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, - WorkTag, void>::type WorkTagFwd; + WorkTag, void>::type; - typedef Kokkos::Impl::FunctorValueTraits<ReducerTypeFwd, WorkTagFwd> - ValueTraits; - typedef Kokkos::Impl::FunctorValueInit<ReducerTypeFwd, WorkTagFwd> ValueInit; - typedef Kokkos::Impl::FunctorValueJoin<ReducerTypeFwd, WorkTagFwd> ValueJoin; + using ValueTraits = + Kokkos::Impl::FunctorValueTraits<ReducerTypeFwd, WorkTagFwd>; + using ValueInit = Kokkos::Impl::FunctorValueInit<ReducerTypeFwd, WorkTagFwd>; + using ValueJoin = Kokkos::Impl::FunctorValueJoin<ReducerTypeFwd, WorkTagFwd>; public: - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::value_type value_type; - typedef typename ValueTraits::reference_type reference_type; - typedef FunctorType functor_type; - typedef Cuda::size_type size_type; + using pointer_type = typename ValueTraits::pointer_type; + using value_type = typename ValueTraits::value_type; + using reference_type = typename ValueTraits::reference_type; + using functor_type = FunctorType; + using size_type = Cuda::size_type; + using reducer_type = ReducerType; // Algorithmic constraints: blockSize is a power of two AND blockDim.y == // blockDim.z == 1 @@ -1281,23 +1234,22 @@ class ParallelReduce<FunctorType, Kokkos::MDRangePolicy<Traits...>, ReducerType, size_type* m_scratch_flags; size_type* m_unified_space; - typedef typename Kokkos::Impl::Reduce::DeviceIterateTile< + using DeviceIteratePattern = typename Kokkos::Impl::Reduce::DeviceIterateTile< Policy::rank, Policy, FunctorType, typename Policy::work_tag, - reference_type> - DeviceIteratePattern; + reference_type>; // Shall we use the shfl based reduction or not (only use it for static sized // types of more than 128bit - enum { - UseShflReduction = ((sizeof(value_type) > 2 * sizeof(double)) && - (ValueTraits::StaticValueSize != 0)) - }; + static constexpr bool UseShflReduction = false; + //((sizeof(value_type)>2*sizeof(double)) && ValueTraits::StaticValueSize) // Some crutch to do function overloading private: - typedef double DummyShflReductionType; - typedef int DummySHMEMReductionType; + using DummyShflReductionType = double; + using DummySHMEMReductionType = int; public: + Policy const& get_policy() const { return m_policy; } + inline __device__ void exec_range(reference_type update) const { Kokkos::Impl::Reduce::DeviceIterateTile<Policy::rank, Policy, FunctorType, typename Policy::work_tag, @@ -1414,13 +1366,19 @@ class ParallelReduce<FunctorType, Kokkos::MDRangePolicy<Traits...>, ReducerType, int shmem_size = cuda_single_inter_block_reduce_scan_shmem<false, FunctorType, WorkTag>( f, n); + using closure_type = Impl::ParallelReduce<FunctorType, Policy, ReducerType>; + cudaFuncAttributes attr = + CudaParallelLaunch<closure_type, + LaunchBounds>::get_cuda_func_attributes(); while ( (n && (m_policy.space().impl_internal_space_instance()->m_maxShmemPerBlock < shmem_size)) || - (n > static_cast<unsigned>( - Kokkos::Impl::cuda_get_max_block_size< - ParallelReduce, LaunchBounds>(f, 1, shmem_size, 0)))) { + (n > + static_cast<unsigned>( + Kokkos::Impl::cuda_get_max_block_size<FunctorType, LaunchBounds>( + m_policy.space().impl_internal_space_instance(), attr, f, 1, + shmem_size, 0)))) { n >>= 1; shmem_size = cuda_single_inter_block_reduce_scan_shmem<false, FunctorType, WorkTag>(f, n); @@ -1458,6 +1416,7 @@ class ParallelReduce<FunctorType, Kokkos::MDRangePolicy<Traits...>, ReducerType, // Required grid.x <= block.y const dim3 grid(std::min(int(block.y), int(nwork)), 1, 1); + // TODO @graph We need to effectively insert this in to the graph const int shmem = UseShflReduction ? 0 @@ -1471,7 +1430,7 @@ class ParallelReduce<FunctorType, Kokkos::MDRangePolicy<Traits...>, ReducerType, false); // copy to device and execute if (!m_result_ptr_device_accessible) { - Cuda().fence(); + m_policy.space().fence(); if (m_result_ptr) { if (m_unified_space) { @@ -1489,6 +1448,7 @@ class ParallelReduce<FunctorType, Kokkos::MDRangePolicy<Traits...>, ReducerType, } } else { if (m_result_ptr) { + // TODO @graph We need to effectively insert this in to the graph ValueInit::init(ReducerConditional::select(m_functor, m_reducer), m_result_ptr); } @@ -1507,9 +1467,9 @@ class ParallelReduce<FunctorType, Kokkos::MDRangePolicy<Traits...>, ReducerType, m_result_ptr_device_accessible( MemorySpaceAccess<Kokkos::CudaSpace, typename ViewType::memory_space>::accessible), - m_scratch_space(0), - m_scratch_flags(0), - m_unified_space(0) {} + m_scratch_space(nullptr), + m_scratch_flags(nullptr), + m_unified_space(nullptr) {} ParallelReduce(const FunctorType& arg_functor, const Policy& arg_policy, const ReducerType& reducer) @@ -1521,9 +1481,9 @@ class ParallelReduce<FunctorType, Kokkos::MDRangePolicy<Traits...>, ReducerType, MemorySpaceAccess<Kokkos::CudaSpace, typename ReducerType::result_view_type:: memory_space>::accessible), - m_scratch_space(0), - m_scratch_flags(0), - m_unified_space(0) {} + m_scratch_space(nullptr), + m_scratch_flags(nullptr), + m_unified_space(nullptr) {} }; //---------------------------------------------------------------------------- @@ -1532,39 +1492,42 @@ template <class FunctorType, class ReducerType, class... Properties> class ParallelReduce<FunctorType, Kokkos::TeamPolicy<Properties...>, ReducerType, Kokkos::Cuda> { public: - typedef TeamPolicyInternal<Kokkos::Cuda, Properties...> Policy; + using Policy = TeamPolicy<Properties...>; private: - typedef typename Policy::member_type Member; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::launch_bounds LaunchBounds; - - typedef Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, - FunctorType, ReducerType> - ReducerConditional; - typedef typename ReducerConditional::type ReducerTypeFwd; - typedef + using Member = typename Policy::member_type; + using WorkTag = typename Policy::work_tag; + using LaunchBounds = typename Policy::launch_bounds; + + using ReducerConditional = + Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, + FunctorType, ReducerType>; + using ReducerTypeFwd = typename ReducerConditional::type; + using WorkTagFwd = typename Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, - WorkTag, void>::type WorkTagFwd; + WorkTag, void>::type; - typedef Kokkos::Impl::FunctorValueTraits<ReducerTypeFwd, WorkTagFwd> - ValueTraits; - typedef Kokkos::Impl::FunctorValueInit<ReducerTypeFwd, WorkTagFwd> ValueInit; - typedef Kokkos::Impl::FunctorValueJoin<ReducerTypeFwd, WorkTagFwd> ValueJoin; + using ValueTraits = + Kokkos::Impl::FunctorValueTraits<ReducerTypeFwd, WorkTagFwd>; + using ValueInit = Kokkos::Impl::FunctorValueInit<ReducerTypeFwd, WorkTagFwd>; + using ValueJoin = Kokkos::Impl::FunctorValueJoin<ReducerTypeFwd, WorkTagFwd>; - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::reference_type reference_type; - typedef typename ValueTraits::value_type value_type; + using pointer_type = typename ValueTraits::pointer_type; + using reference_type = typename ValueTraits::reference_type; + using value_type = typename ValueTraits::value_type; public: - typedef FunctorType functor_type; - typedef Cuda::size_type size_type; + using functor_type = FunctorType; + using size_type = Cuda::size_type; + using reducer_type = ReducerType; - enum { UseShflReduction = (true && (ValueTraits::StaticValueSize != 0)) }; + enum : bool { + UseShflReduction = (true && (ValueTraits::StaticValueSize != 0)) + }; private: - typedef double DummyShflReductionType; - typedef int DummySHMEMReductionType; + using DummyShflReductionType = double; + using DummySHMEMReductionType = int; // Algorithmic constraints: blockDim.y is a power of two AND blockDim.y == // blockDim.z == 1 shared memory utilization: @@ -1579,6 +1542,7 @@ class ParallelReduce<FunctorType, Kokkos::TeamPolicy<Properties...>, const ReducerType m_reducer; const pointer_type m_result_ptr; const bool m_result_ptr_device_accessible; + const bool m_result_ptr_host_accessible; size_type* m_scratch_space; size_type* m_scratch_flags; size_type* m_unified_space; @@ -1606,6 +1570,8 @@ class ParallelReduce<FunctorType, Kokkos::TeamPolicy<Properties...>, } public: + Policy const& get_policy() const { return m_policy; } + __device__ inline void operator()() const { int64_t threadid = 0; if (m_scratch_size[1] > 0) { @@ -1673,10 +1639,9 @@ class ParallelReduce<FunctorType, Kokkos::TeamPolicy<Properties...>, } // Reduce with final value at blockDim.y - 1 location. - if (cuda_single_inter_block_reduce_scan<false, FunctorType, WorkTag>( - ReducerConditional::select(m_functor, m_reducer), blockIdx.x, - gridDim.x, kokkos_impl_cuda_shared_memory<size_type>(), - m_scratch_space, m_scratch_flags)) { + // Doing code duplication here to fix issue #3428 + // Suspect optimizer bug?? + if (m_league_size == 0) { // This is the final block with the final result at the final threads' // location @@ -1700,6 +1665,36 @@ class ParallelReduce<FunctorType, Kokkos::TeamPolicy<Properties...>, global[i] = shared[i]; } } + + if (m_league_size != 0) { + if (cuda_single_inter_block_reduce_scan<false, FunctorType, WorkTag>( + ReducerConditional::select(m_functor, m_reducer), blockIdx.x, + gridDim.x, kokkos_impl_cuda_shared_memory<size_type>(), + m_scratch_space, m_scratch_flags)) { + // This is the final block with the final result at the final threads' + // location + + size_type* const shared = kokkos_impl_cuda_shared_memory<size_type>() + + (blockDim.y - 1) * word_count.value; + size_type* const global = + m_result_ptr_device_accessible + ? reinterpret_cast<size_type*>(m_result_ptr) + : (m_unified_space ? m_unified_space : m_scratch_space); + + if (threadIdx.y == 0) { + Kokkos::Impl::FunctorFinal<ReducerTypeFwd, WorkTagFwd>::final( + ReducerConditional::select(m_functor, m_reducer), shared); + } + + if (CudaTraits::WarpSize < word_count.value) { + __syncthreads(); + } + + for (unsigned i = threadIdx.y; i < word_count.value; i += blockDim.y) { + global[i] = shared[i]; + } + } + } } __device__ inline void run(const DummyShflReductionType&, @@ -1729,7 +1724,13 @@ class ParallelReduce<FunctorType, Kokkos::TeamPolicy<Properties...>, value_type init; ValueInit::init(ReducerConditional::select(m_functor, m_reducer), &init); - if (Impl::cuda_inter_block_reduction<FunctorType, ValueJoin, WorkTag>( + + if (int_league_size == 0) { + Kokkos::Impl::FunctorFinal<ReducerTypeFwd, WorkTagFwd>::final( + ReducerConditional::select(m_functor, m_reducer), (void*)&value); + *result = value; + } else if ( + Impl::cuda_inter_block_reduction<FunctorType, ValueJoin, WorkTag>( value, init, ValueJoin(ReducerConditional::select(m_functor, m_reducer)), m_scratch_space, result, m_scratch_flags, blockDim.y) @@ -1749,8 +1750,15 @@ class ParallelReduce<FunctorType, Kokkos::TeamPolicy<Properties...>, } inline void execute() { - const int nwork = m_league_size * m_team_size; - if (nwork) { + const int nwork = m_league_size * m_team_size; + const bool need_device_set = ReduceFunctorHasInit<FunctorType>::value || + ReduceFunctorHasFinal<FunctorType>::value || + !m_result_ptr_host_accessible || +#ifdef KOKKOS_CUDA_ENABLE_GRAPHS + Policy::is_graph_kernel::value || +#endif + !std::is_same<ReducerType, InvalidType>::value; + if ((nwork > 0) || need_device_set) { const int block_count = UseShflReduction ? std::min(m_league_size, size_type(1024 * 32)) : std::min(int(m_league_size), m_team_size); @@ -1769,12 +1777,14 @@ class ParallelReduce<FunctorType, Kokkos::TeamPolicy<Properties...>, dim3 grid(block_count, 1, 1); const int shmem_size_total = m_team_begin + m_shmem_begin + m_shmem_size; + if ((nwork == 0) #ifdef KOKKOS_IMPL_DEBUG_CUDA_SERIAL_EXECUTION - if (Kokkos::Impl::CudaInternal::cuda_use_serial_execution()) { + || Kokkos::Impl::CudaInternal::cuda_use_serial_execution() +#endif + ) { block = dim3(1, 1, 1); grid = dim3(1, 1, 1); } -#endif CudaParallelLaunch<ParallelReduce, LaunchBounds>( *this, grid, block, shmem_size_total, @@ -1782,7 +1792,7 @@ class ParallelReduce<FunctorType, Kokkos::TeamPolicy<Properties...>, true); // copy to device and execute if (!m_result_ptr_device_accessible) { - Cuda().fence(); + m_policy.space().fence(); if (m_result_ptr) { if (m_unified_space) { @@ -1800,6 +1810,7 @@ class ParallelReduce<FunctorType, Kokkos::TeamPolicy<Properties...>, } } else { if (m_result_ptr) { + // TODO @graph We need to effectively insert this in to the graph ValueInit::init(ReducerConditional::select(m_functor, m_reducer), m_result_ptr); } @@ -1818,16 +1829,19 @@ class ParallelReduce<FunctorType, Kokkos::TeamPolicy<Properties...>, m_result_ptr_device_accessible( MemorySpaceAccess<Kokkos::CudaSpace, typename ViewType::memory_space>::accessible), - m_scratch_space(0), - m_scratch_flags(0), - m_unified_space(0), + m_result_ptr_host_accessible( + MemorySpaceAccess<Kokkos::HostSpace, + typename ViewType::memory_space>::accessible), + m_scratch_space(nullptr), + m_scratch_flags(nullptr), + m_unified_space(nullptr), m_team_begin(0), m_shmem_begin(0), m_shmem_size(0), m_scratch_ptr{nullptr, nullptr}, m_league_size(arg_policy.league_size()), m_team_size(arg_policy.team_size()), - m_vector_size(arg_policy.vector_length()) { + m_vector_size(arg_policy.impl_vector_length()) { cudaFuncAttributes attr = CudaParallelLaunch<ParallelReduce, LaunchBounds>::get_cuda_func_attributes(); @@ -1840,13 +1854,6 @@ class ParallelReduce<FunctorType, Kokkos::TeamPolicy<Properties...>, m_policy.thread_scratch_size(0)) / m_vector_size; - // Return Init value if the number of worksets is zero - if (m_league_size * m_team_size == 0) { - ValueInit::init(ReducerConditional::select(m_functor, m_reducer), - arg_result.data()); - return; - } - m_team_begin = UseShflReduction ? 0 @@ -1862,14 +1869,17 @@ class ParallelReduce<FunctorType, Kokkos::TeamPolicy<Properties...>, m_scratch_ptr[1] = m_team_size <= 0 ? nullptr - : cuda_resize_scratch_space( - static_cast<std::int64_t>(m_scratch_size[1]) * - (static_cast<std::int64_t>(Cuda::concurrency() / - (m_team_size * m_vector_size)))); + : m_policy.space() + .impl_internal_space_instance() + ->resize_team_scratch_space( + static_cast<std::int64_t>(m_scratch_size[1]) * + (static_cast<std::int64_t>( + Cuda::concurrency() / + (m_team_size * m_vector_size)))); // The global parallel_reduce does not support vector_length other than 1 at // the moment - if ((arg_policy.vector_length() > 1) && !UseShflReduction) + if ((arg_policy.impl_vector_length() > 1) && !UseShflReduction) Impl::throw_runtime_exception( "Kokkos::parallel_reduce with a TeamPolicy using a vector length of " "greater than 1 is not currently supported for CUDA for dynamic " @@ -1917,16 +1927,20 @@ class ParallelReduce<FunctorType, Kokkos::TeamPolicy<Properties...>, MemorySpaceAccess<Kokkos::CudaSpace, typename ReducerType::result_view_type:: memory_space>::accessible), - m_scratch_space(0), - m_scratch_flags(0), - m_unified_space(0), + m_result_ptr_host_accessible( + MemorySpaceAccess<Kokkos::HostSpace, + typename ReducerType::result_view_type:: + memory_space>::accessible), + m_scratch_space(nullptr), + m_scratch_flags(nullptr), + m_unified_space(nullptr), m_team_begin(0), m_shmem_begin(0), m_shmem_size(0), m_scratch_ptr{nullptr, nullptr}, m_league_size(arg_policy.league_size()), m_team_size(arg_policy.team_size()), - m_vector_size(arg_policy.vector_length()) { + m_vector_size(arg_policy.impl_vector_length()) { cudaFuncAttributes attr = CudaParallelLaunch<ParallelReduce, LaunchBounds>::get_cuda_func_attributes(); @@ -1939,13 +1953,6 @@ class ParallelReduce<FunctorType, Kokkos::TeamPolicy<Properties...>, m_policy.thread_scratch_size(0)) / m_vector_size; - // Return Init value if the number of worksets is zero - if (arg_policy.league_size() == 0) { - ValueInit::init(ReducerConditional::select(m_functor, m_reducer), - m_result_ptr); - return; - } - m_team_begin = UseShflReduction ? 0 @@ -1961,14 +1968,16 @@ class ParallelReduce<FunctorType, Kokkos::TeamPolicy<Properties...>, m_scratch_ptr[1] = m_team_size <= 0 ? nullptr - : cuda_resize_scratch_space( - static_cast<ptrdiff_t>(m_scratch_size[1]) * - static_cast<ptrdiff_t>(Cuda::concurrency() / - (m_team_size * m_vector_size))); + : m_policy.space() + .impl_internal_space_instance() + ->resize_team_scratch_space( + static_cast<ptrdiff_t>(m_scratch_size[1]) * + static_cast<ptrdiff_t>(Cuda::concurrency() / + (m_team_size * m_vector_size))); // The global parallel_reduce does not support vector_length other than 1 at // the moment - if ((arg_policy.vector_length() > 1) && !UseShflReduction) + if ((arg_policy.impl_vector_length() > 1) && !UseShflReduction) Impl::throw_runtime_exception( "Kokkos::parallel_reduce with a TeamPolicy using a vector length of " "greater than 1 is not currently supported for CUDA for dynamic " @@ -2013,23 +2022,23 @@ namespace Impl { template <class FunctorType, class... Traits> class ParallelScan<FunctorType, Kokkos::RangePolicy<Traits...>, Kokkos::Cuda> { public: - typedef Kokkos::RangePolicy<Traits...> Policy; + using Policy = Kokkos::RangePolicy<Traits...>; private: - typedef typename Policy::member_type Member; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::WorkRange WorkRange; - typedef typename Policy::launch_bounds LaunchBounds; + using Member = typename Policy::member_type; + using WorkTag = typename Policy::work_tag; + using WorkRange = typename Policy::WorkRange; + using LaunchBounds = typename Policy::launch_bounds; - typedef Kokkos::Impl::FunctorValueTraits<FunctorType, WorkTag> ValueTraits; - typedef Kokkos::Impl::FunctorValueInit<FunctorType, WorkTag> ValueInit; - typedef Kokkos::Impl::FunctorValueOps<FunctorType, WorkTag> ValueOps; + using ValueTraits = Kokkos::Impl::FunctorValueTraits<FunctorType, WorkTag>; + using ValueInit = Kokkos::Impl::FunctorValueInit<FunctorType, WorkTag>; + using ValueOps = Kokkos::Impl::FunctorValueOps<FunctorType, WorkTag>; public: - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::reference_type reference_type; - typedef FunctorType functor_type; - typedef Cuda::size_type size_type; + using pointer_type = typename ValueTraits::pointer_type; + using reference_type = typename ValueTraits::reference_type; + using functor_type = FunctorType; + using size_type = Cuda::size_type; private: // Algorithmic constraints: @@ -2182,6 +2191,8 @@ class ParallelScan<FunctorType, Kokkos::RangePolicy<Traits...>, Kokkos::Cuda> { } public: + Policy const& get_policy() const { return m_policy; } + //---------------------------------------- __device__ inline void operator()(void) const { @@ -2233,6 +2244,7 @@ class ParallelScan<FunctorType, Kokkos::RangePolicy<Traits...>, Kokkos::Cuda> { enum { GridMaxComputeCapability_2x = 0x0ffff }; const int block_size = local_block_size(m_functor); + KOKKOS_ASSERT(block_size > 0); const int grid_max = (block_size * block_size) < GridMaxComputeCapability_2x @@ -2283,8 +2295,8 @@ class ParallelScan<FunctorType, Kokkos::RangePolicy<Traits...>, Kokkos::Cuda> { ParallelScan(const FunctorType& arg_functor, const Policy& arg_policy) : m_functor(arg_functor), m_policy(arg_policy), - m_scratch_space(0), - m_scratch_flags(0), + m_scratch_space(nullptr), + m_scratch_flags(nullptr), m_final(false) #ifdef KOKKOS_IMPL_DEBUG_CUDA_SERIAL_EXECUTION , @@ -2299,23 +2311,23 @@ template <class FunctorType, class ReturnType, class... Traits> class ParallelScanWithTotal<FunctorType, Kokkos::RangePolicy<Traits...>, ReturnType, Kokkos::Cuda> { public: - typedef Kokkos::RangePolicy<Traits...> Policy; + using Policy = Kokkos::RangePolicy<Traits...>; private: - typedef typename Policy::member_type Member; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::WorkRange WorkRange; - typedef typename Policy::launch_bounds LaunchBounds; + using Member = typename Policy::member_type; + using WorkTag = typename Policy::work_tag; + using WorkRange = typename Policy::WorkRange; + using LaunchBounds = typename Policy::launch_bounds; - typedef Kokkos::Impl::FunctorValueTraits<FunctorType, WorkTag> ValueTraits; - typedef Kokkos::Impl::FunctorValueInit<FunctorType, WorkTag> ValueInit; - typedef Kokkos::Impl::FunctorValueOps<FunctorType, WorkTag> ValueOps; + using ValueTraits = Kokkos::Impl::FunctorValueTraits<FunctorType, WorkTag>; + using ValueInit = Kokkos::Impl::FunctorValueInit<FunctorType, WorkTag>; + using ValueOps = Kokkos::Impl::FunctorValueOps<FunctorType, WorkTag>; public: - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::reference_type reference_type; - typedef FunctorType functor_type; - typedef Cuda::size_type size_type; + using pointer_type = typename ValueTraits::pointer_type; + using reference_type = typename ValueTraits::reference_type; + using functor_type = FunctorType; + using size_type = Cuda::size_type; private: // Algorithmic constraints: @@ -2471,6 +2483,8 @@ class ParallelScanWithTotal<FunctorType, Kokkos::RangePolicy<Traits...>, } public: + Policy const& get_policy() const { return m_policy; } + //---------------------------------------- __device__ inline void operator()(void) const { @@ -2523,6 +2537,7 @@ class ParallelScanWithTotal<FunctorType, Kokkos::RangePolicy<Traits...>, enum { GridMaxComputeCapability_2x = 0x0ffff }; const int block_size = local_block_size(m_functor); + KOKKOS_ASSERT(block_size > 0); const int grid_max = (block_size * block_size) < GridMaxComputeCapability_2x @@ -2585,8 +2600,8 @@ class ParallelScanWithTotal<FunctorType, Kokkos::RangePolicy<Traits...>, const Policy& arg_policy, ReturnType& arg_returnvalue) : m_functor(arg_functor), m_policy(arg_policy), - m_scratch_space(0), - m_scratch_flags(0), + m_scratch_space(nullptr), + m_scratch_flags(nullptr), m_final(false), m_returnvalue(arg_returnvalue) #ifdef KOKKOS_IMPL_DEBUG_CUDA_SERIAL_EXECUTION @@ -2610,7 +2625,7 @@ template <class FunctorType, class ExecPolicy, class ValueType, class Tag = typename ExecPolicy::work_tag> struct CudaFunctorAdapter { const FunctorType f; - typedef ValueType value_type; + using value_type = ValueType; CudaFunctorAdapter(const FunctorType& f_) : f(f_) {} __device__ inline void operator()(typename ExecPolicy::work_tag, @@ -2680,7 +2695,7 @@ struct CudaFunctorAdapter { template <class FunctorType, class ExecPolicy, class ValueType> struct CudaFunctorAdapter<FunctorType, ExecPolicy, ValueType, void> { const FunctorType f; - typedef ValueType value_type; + using value_type = ValueType; CudaFunctorAdapter(const FunctorType& f_) : f(f_) {} __device__ inline void operator()(const typename ExecPolicy::member_type& i, @@ -2801,13 +2816,14 @@ struct CudaFunctorAdapter<FunctorType, ExecPolicy, ValueType, void> { template <class FunctorType, class ResultType, class Tag, bool Enable = IsNonTrivialReduceFunctor<FunctorType>::value> struct FunctorReferenceType { - typedef ResultType& reference_type; + using reference_type = ResultType&; }; template <class FunctorType, class ResultType, class Tag> struct FunctorReferenceType<FunctorType, ResultType, Tag, true> { - typedef typename Kokkos::Impl::FunctorValueTraits< - FunctorType, Tag>::reference_type reference_type; + using reference_type = + typename Kokkos::Impl::FunctorValueTraits<FunctorType, + Tag>::reference_type; }; template <class FunctorTypeIn, class ExecPolicy, class ValueType> @@ -2815,10 +2831,9 @@ struct ParallelReduceFunctorType<FunctorTypeIn, ExecPolicy, ValueType, Cuda> { enum { FunctorHasValueType = IsNonTrivialReduceFunctor<FunctorTypeIn>::value }; - typedef typename Kokkos::Impl::if_c< + using functor_type = typename Kokkos::Impl::if_c< FunctorHasValueType, FunctorTypeIn, - Impl::CudaFunctorAdapter<FunctorTypeIn, ExecPolicy, ValueType>>::type - functor_type; + Impl::CudaFunctorAdapter<FunctorTypeIn, ExecPolicy, ValueType>>::type; static functor_type functor(const FunctorTypeIn& functor_in) { return Impl::if_c<FunctorHasValueType, FunctorTypeIn, functor_type>::select( functor_in, functor_type(functor_in)); @@ -2829,5 +2844,5 @@ struct ParallelReduceFunctorType<FunctorTypeIn, ExecPolicy, ValueType, Cuda> { } // namespace Kokkos -#endif /* defined( __CUDACC__ ) */ +#endif /* defined(KOKKOS_ENABLE_CUDA) */ #endif /* #ifndef KOKKOS_CUDA_PARALLEL_HPP */ diff --git a/packages/kokkos/core/src/Cuda/Kokkos_Cuda_ReduceScan.hpp b/packages/kokkos/core/src/Cuda/Kokkos_Cuda_ReduceScan.hpp index 8795eb5a3..fc9fc3770 100644 --- a/packages/kokkos/core/src/Cuda/Kokkos_Cuda_ReduceScan.hpp +++ b/packages/kokkos/core/src/Cuda/Kokkos_Cuda_ReduceScan.hpp @@ -46,7 +46,7 @@ #define KOKKOS_CUDA_REDUCESCAN_HPP #include <Kokkos_Macros.hpp> -#if defined(__CUDACC__) && defined(KOKKOS_ENABLE_CUDA) +#if defined(KOKKOS_ENABLE_CUDA) #include <utility> @@ -140,10 +140,10 @@ __device__ bool cuda_inter_block_reduction( Cuda::size_type* const m_scratch_flags, const int max_active_thread = blockDim.y) { #ifdef __CUDA_ARCH__ - typedef typename FunctorValueTraits<FunctorType, ArgTag>::pointer_type - pointer_type; - typedef - typename FunctorValueTraits<FunctorType, ArgTag>::value_type value_type; + using pointer_type = + typename FunctorValueTraits<FunctorType, ArgTag>::pointer_type; + using value_type = + typename FunctorValueTraits<FunctorType, ArgTag>::value_type; // Do the intra-block reduction with shfl operations and static shared memory cuda_intra_block_reduction(value, join, max_active_thread); @@ -255,7 +255,7 @@ __device__ inline cuda_intra_warp_reduction(const ReducerType& reducer, typename ReducerType::value_type& result, const uint32_t max_active_thread = blockDim.y) { - typedef typename ReducerType::value_type ValueType; + using ValueType = typename ReducerType::value_type; unsigned int shift = 1; @@ -278,7 +278,7 @@ __device__ inline cuda_inter_warp_reduction(const ReducerType& reducer, typename ReducerType::value_type value, const int max_active_thread = blockDim.y) { - typedef typename ReducerType::value_type ValueType; + using ValueType = typename ReducerType::value_type; #define STEP_WIDTH 4 // Depending on the ValueType _shared__ memory must be aligned up to 8byte @@ -336,8 +336,8 @@ __device__ inline Cuda::size_type* const m_scratch_flags, const int max_active_thread = blockDim.y) { #ifdef __CUDA_ARCH__ - typedef typename ReducerType::value_type* pointer_type; - typedef typename ReducerType::value_type value_type; + using pointer_type = typename ReducerType::value_type*; + using value_type = typename ReducerType::value_type; // Do the intra-block reduction with shfl operations and static shared memory cuda_intra_block_reduction(reducer, max_active_thread); @@ -450,12 +450,12 @@ struct CudaReductionsFunctor; template <class FunctorType, class ArgTag> struct CudaReductionsFunctor<FunctorType, ArgTag, false, true> { - typedef FunctorValueTraits<FunctorType, ArgTag> ValueTraits; - typedef FunctorValueJoin<FunctorType, ArgTag> ValueJoin; - typedef FunctorValueInit<FunctorType, ArgTag> ValueInit; - typedef FunctorValueOps<FunctorType, ArgTag> ValueOps; - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::value_type Scalar; + using ValueTraits = FunctorValueTraits<FunctorType, ArgTag>; + using ValueJoin = FunctorValueJoin<FunctorType, ArgTag>; + using ValueInit = FunctorValueInit<FunctorType, ArgTag>; + using ValueOps = FunctorValueOps<FunctorType, ArgTag>; + using pointer_type = typename ValueTraits::pointer_type; + using Scalar = typename ValueTraits::value_type; __device__ static inline void scalar_intra_warp_reduction( const FunctorType& functor, @@ -533,8 +533,12 @@ struct CudaReductionsFunctor<FunctorType, ArgTag, false, true> { __threadfence(); __syncthreads(); unsigned int num_teams_done = 0; + // The cast in the atomic call is necessary to find matching call with + // MSVC/NVCC if (threadIdx.x + threadIdx.y == 0) { - num_teams_done = Kokkos::atomic_fetch_add(global_flags, 1) + 1; + num_teams_done = + Kokkos::atomic_fetch_add(global_flags, static_cast<unsigned int>(1)) + + 1; } bool is_last_block = false; if (__syncthreads_or(num_teams_done == gridDim.x)) { @@ -555,12 +559,12 @@ struct CudaReductionsFunctor<FunctorType, ArgTag, false, true> { template <class FunctorType, class ArgTag> struct CudaReductionsFunctor<FunctorType, ArgTag, false, false> { - typedef FunctorValueTraits<FunctorType, ArgTag> ValueTraits; - typedef FunctorValueJoin<FunctorType, ArgTag> ValueJoin; - typedef FunctorValueInit<FunctorType, ArgTag> ValueInit; - typedef FunctorValueOps<FunctorType, ArgTag> ValueOps; - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::value_type Scalar; + using ValueTraits = FunctorValueTraits<FunctorType, ArgTag>; + using ValueJoin = FunctorValueJoin<FunctorType, ArgTag>; + using ValueInit = FunctorValueInit<FunctorType, ArgTag>; + using ValueOps = FunctorValueOps<FunctorType, ArgTag>; + using pointer_type = typename ValueTraits::pointer_type; + using Scalar = typename ValueTraits::value_type; __device__ static inline void scalar_intra_warp_reduction( const FunctorType& functor, @@ -635,8 +639,12 @@ struct CudaReductionsFunctor<FunctorType, ArgTag, false, false> { __syncthreads(); unsigned int num_teams_done = 0; + // The cast in the atomic call is necessary to find matching call with + // MSVC/NVCC if (threadIdx.x + threadIdx.y == 0) { - num_teams_done = Kokkos::atomic_fetch_add(global_flags, 1) + 1; + num_teams_done = + Kokkos::atomic_fetch_add(global_flags, static_cast<unsigned int>(1)) + + 1; } bool is_last_block = false; if (__syncthreads_or(num_teams_done == gridDim.x)) { @@ -677,10 +685,10 @@ __device__ void cuda_intra_block_reduce_scan( const FunctorType& functor, const typename FunctorValueTraits<FunctorType, ArgTag>::pointer_type base_data) { - typedef FunctorValueTraits<FunctorType, ArgTag> ValueTraits; - typedef FunctorValueJoin<FunctorType, ArgTag> ValueJoin; + using ValueTraits = FunctorValueTraits<FunctorType, ArgTag>; + using ValueJoin = FunctorValueJoin<FunctorType, ArgTag>; - typedef typename ValueTraits::pointer_type pointer_type; + using pointer_type = typename ValueTraits::pointer_type; const unsigned value_count = ValueTraits::value_count(functor); const unsigned BlockSizeMask = blockDim.y - 1; @@ -855,13 +863,13 @@ __device__ bool cuda_single_inter_block_reduce_scan2( const FunctorType& functor, const Cuda::size_type block_id, const Cuda::size_type block_count, Cuda::size_type* const shared_data, Cuda::size_type* const global_data, Cuda::size_type* const global_flags) { - typedef Cuda::size_type size_type; - typedef FunctorValueTraits<FunctorType, ArgTag> ValueTraits; - typedef FunctorValueJoin<FunctorType, ArgTag> ValueJoin; - typedef FunctorValueInit<FunctorType, ArgTag> ValueInit; - typedef FunctorValueOps<FunctorType, ArgTag> ValueOps; + using size_type = Cuda::size_type; + using ValueTraits = FunctorValueTraits<FunctorType, ArgTag>; + using ValueJoin = FunctorValueJoin<FunctorType, ArgTag>; + using ValueInit = FunctorValueInit<FunctorType, ArgTag>; + using ValueOps = FunctorValueOps<FunctorType, ArgTag>; - typedef typename ValueTraits::pointer_type pointer_type; + using pointer_type = typename ValueTraits::pointer_type; // '__ffs' = position of the least significant bit set to 1. // 'blockDim.y' is guaranteed to be a power of two so this @@ -950,8 +958,8 @@ __device__ bool cuda_single_inter_block_reduce_scan( const FunctorType& functor, const Cuda::size_type block_id, const Cuda::size_type block_count, Cuda::size_type* const shared_data, Cuda::size_type* const global_data, Cuda::size_type* const global_flags) { - typedef FunctorValueTraits<FunctorType, ArgTag> ValueTraits; - if (!DoScan && ValueTraits::StaticValueSize) + using ValueTraits = FunctorValueTraits<FunctorType, ArgTag>; + if (!DoScan && ValueTraits::StaticValueSize > 0) return Kokkos::Impl::CudaReductionsFunctor< FunctorType, ArgTag, false, (ValueTraits::StaticValueSize > 16)>:: scalar_inter_block_reduction(functor, block_id, block_count, @@ -975,5 +983,5 @@ inline unsigned cuda_single_inter_block_reduce_scan_shmem( //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- -#endif /* #if defined( __CUDACC__ ) */ +#endif /* #if defined(KOKKOS_ENABLE_CUDA) */ #endif /* KOKKOS_CUDA_REDUCESCAN_HPP */ diff --git a/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Task.hpp b/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Task.hpp index decbecc5e..2004edbea 100644 --- a/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Task.hpp +++ b/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Task.hpp @@ -390,7 +390,7 @@ class TaskQueueSpecializationConstrained< ((int*)&task_ptr)[0] = KOKKOS_IMPL_CUDA_SHFL(((int*)&task_ptr)[0], 0, 32); ((int*)&task_ptr)[1] = KOKKOS_IMPL_CUDA_SHFL(((int*)&task_ptr)[1], 0, 32); -#if defined(KOKKOS_DEBUG) +#if defined(KOKKOS_ENABLE_DEBUG) KOKKOS_IMPL_CUDA_SYNCWARP_OR_RETURN("TaskQueue CUDA task_ptr"); #endif @@ -754,7 +754,7 @@ namespace Kokkos { // TeamThreadRange( const Impl::TaskExec< Kokkos::Cuda > & thread // , const iType1 & begin, const iType2 & end ) //{ -// typedef typename std::common_type< iType1, iType2 >::type iType; +// using iType = typename std::common_type< iType1, iType2 >::type; // return Impl::TeamThreadRangeBoundariesStruct< iType, Impl::TaskExec< // Kokkos::Cuda > >( // thread, iType(begin), iType(end) ); @@ -799,7 +799,6 @@ namespace Kokkos { * i=0..N-1. * * The range i=0..N-1 is mapped to all threads of the the calling thread team. - * This functionality requires C++11 support. */ template <typename iType, class Lambda, class Scheduler> KOKKOS_INLINE_FUNCTION void parallel_for( @@ -921,7 +920,7 @@ KOKKOS_INLINE_FUNCTION void parallel_reduce( const Impl::TeamThreadRangeBoundariesStruct< iType, Impl::TaskExec<Kokkos::Cuda, Scheduler>>& loop_boundaries, const Lambda& lambda, const ReducerType& reducer) { - typedef typename ReducerType::value_type ValueType; + using ValueType = typename ReducerType::value_type; // TODO @internal_documentation what is the point of creating this temporary? ValueType result = ValueType(); reducer.init(result); @@ -1005,7 +1004,7 @@ KOKKOS_INLINE_FUNCTION void parallel_reduce( const Impl::ThreadVectorRangeBoundariesStruct< iType, Impl::TaskExec<Kokkos::Cuda, Scheduler>>& loop_boundaries, const Lambda& lambda, const ReducerType& reducer) { - typedef typename ReducerType::value_type ValueType; + using ValueType = typename ReducerType::value_type; ValueType result = ValueType(); reducer.init(result); diff --git a/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Team.hpp b/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Team.hpp index d9d5ed0bf..4b472f5d4 100644 --- a/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Team.hpp +++ b/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Team.hpp @@ -45,14 +45,12 @@ #ifndef KOKKOS_CUDA_TEAM_HPP #define KOKKOS_CUDA_TEAM_HPP -#include <iostream> #include <algorithm> -#include <stdio.h> #include <Kokkos_Macros.hpp> /* only compile this file if CUDA is enabled for Kokkos */ -#if defined(__CUDACC__) && defined(KOKKOS_ENABLE_CUDA) +#if defined(KOKKOS_ENABLE_CUDA) #include <utility> #include <Kokkos_Parallel.hpp> @@ -62,10 +60,8 @@ #include <Cuda/Kokkos_Cuda_BlockSize_Deduction.hpp> #include <Kokkos_Vectorization.hpp> -#if defined(KOKKOS_ENABLE_PROFILING) -#include <impl/Kokkos_Profiling_Interface.hpp> +#include <impl/Kokkos_Tools.hpp> #include <typeinfo> -#endif //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- @@ -75,7 +71,7 @@ namespace Impl { template <typename Type> struct CudaJoinFunctor { - typedef Type value_type; + using value_type = Type; KOKKOS_INLINE_FUNCTION static void join(volatile value_type& update, @@ -104,8 +100,8 @@ struct CudaJoinFunctor { */ class CudaTeamMember { public: - typedef Kokkos::Cuda execution_space; - typedef execution_space::scratch_memory_space scratch_memory_space; + using execution_space = Kokkos::Cuda; + using scratch_memory_space = execution_space::scratch_memory_space; private: mutable void* m_team_reduce; @@ -294,7 +290,7 @@ class CudaTeamMember { */ template <typename Type> KOKKOS_INLINE_FUNCTION Type team_scan(const Type& value) const { - return this->template team_scan<Type>(value, 0); + return this->template team_scan<Type>(value, nullptr); } //---------------------------------------- @@ -357,8 +353,8 @@ class CudaTeamMember { int const shmem_size) { #ifdef __CUDA_ARCH__ - typedef typename ReducerType::value_type value_type; - typedef value_type volatile* pointer_type; + using value_type = typename ReducerType::value_type; + using pointer_type = value_type volatile*; // Number of shared memory entries for the reduction: const int nsh = shmem_size / sizeof(value_type); @@ -563,7 +559,7 @@ namespace Impl { template <typename iType> struct TeamThreadRangeBoundariesStruct<iType, CudaTeamMember> { - typedef iType index_type; + using index_type = iType; const CudaTeamMember& member; const iType start; const iType end; @@ -580,7 +576,7 @@ struct TeamThreadRangeBoundariesStruct<iType, CudaTeamMember> { template <typename iType> struct TeamVectorRangeBoundariesStruct<iType, CudaTeamMember> { - typedef iType index_type; + using index_type = iType; const CudaTeamMember& member; const iType start; const iType end; @@ -598,7 +594,7 @@ struct TeamVectorRangeBoundariesStruct<iType, CudaTeamMember> { template <typename iType> struct ThreadVectorRangeBoundariesStruct<iType, CudaTeamMember> { - typedef iType index_type; + using index_type = iType; const index_type start; const index_type end; @@ -634,7 +630,7 @@ template <typename iType1, typename iType2> KOKKOS_INLINE_FUNCTION Impl::TeamThreadRangeBoundariesStruct< typename std::common_type<iType1, iType2>::type, Impl::CudaTeamMember> TeamThreadRange(const Impl::CudaTeamMember& thread, iType1 begin, iType2 end) { - typedef typename std::common_type<iType1, iType2>::type iType; + using iType = typename std::common_type<iType1, iType2>::type; return Impl::TeamThreadRangeBoundariesStruct<iType, Impl::CudaTeamMember>( thread, iType(begin), iType(end)); } @@ -652,7 +648,7 @@ KOKKOS_INLINE_FUNCTION Impl::TeamVectorRangeBoundariesStruct< typename std::common_type<iType1, iType2>::type, Impl::CudaTeamMember> TeamVectorRange(const Impl::CudaTeamMember& thread, const iType1& begin, const iType2& end) { - typedef typename std::common_type<iType1, iType2>::type iType; + using iType = typename std::common_type<iType1, iType2>::type; return Impl::TeamVectorRangeBoundariesStruct<iType, Impl::CudaTeamMember>( thread, iType(begin), iType(end)); } @@ -939,6 +935,54 @@ KOKKOS_INLINE_FUNCTION //---------------------------------------------------------------------------- +/** \brief Inter-thread parallel exclusive prefix sum. + * + * Executes closure(iType i, ValueType & val, bool final) for each i=[0..N) + * + * The range [0..N) is mapped to each rank in the team (whose global rank is + * less than N) and a scan operation is performed. The last call to closure has + * final == true. + */ +// This is the same code as in HIP and largely the same as in OpenMPTarget +template <typename iType, typename FunctorType> +KOKKOS_INLINE_FUNCTION void parallel_scan( + const Impl::TeamThreadRangeBoundariesStruct<iType, Impl::CudaTeamMember>& + loop_bounds, + const FunctorType& lambda) { + // Extract value_type from lambda + using value_type = typename Kokkos::Impl::FunctorAnalysis< + Kokkos::Impl::FunctorPatternInterface::SCAN, void, + FunctorType>::value_type; + + const auto start = loop_bounds.start; + const auto end = loop_bounds.end; + auto& member = loop_bounds.member; + const auto team_size = member.team_size(); + const auto team_rank = member.team_rank(); + const auto nchunk = (end - start + team_size - 1) / team_size; + value_type accum = 0; + // each team has to process one or more chunks of the prefix scan + for (iType i = 0; i < nchunk; ++i) { + auto ii = start + i * team_size + team_rank; + // local accumulation for this chunk + value_type local_accum = 0; + // user updates value with prefix value + if (ii < loop_bounds.end) lambda(ii, local_accum, false); + // perform team scan + local_accum = member.team_scan(local_accum); + // add this blocks accum to total accumulation + auto val = accum + local_accum; + // user updates their data with total accumulation + if (ii < loop_bounds.end) lambda(ii, val, true); + // the last value needs to be propogated to next chunk + if (team_rank == team_size - 1) accum = val; + // broadcast last value to rest of the team + member.team_broadcast(accum, team_size - 1); + } +} + +//---------------------------------------------------------------------------- + /** \brief Intra-thread vector parallel exclusive prefix sum. * * Executes closure(iType i, ValueType & val, bool final) for each i=[0..N) @@ -1093,6 +1137,6 @@ KOKKOS_INLINE_FUNCTION void single( } // namespace Kokkos -#endif /* defined( __CUDACC__ ) */ +#endif /* defined(KOKKOS_ENABLE_CUDA) */ #endif /* #ifndef KOKKOS_CUDA_TEAM_HPP */ diff --git a/packages/kokkos/core/src/Cuda/Kokkos_Cuda_UniqueToken.hpp b/packages/kokkos/core/src/Cuda/Kokkos_Cuda_UniqueToken.hpp index 3b470edbc..f846c06ce 100644 --- a/packages/kokkos/core/src/Cuda/Kokkos_Cuda_UniqueToken.hpp +++ b/packages/kokkos/core/src/Cuda/Kokkos_Cuda_UniqueToken.hpp @@ -59,7 +59,7 @@ namespace Experimental { // both global and instance Unique Tokens are implemented in the same way template <> class UniqueToken<Cuda, UniqueTokenScope::Global> { - private: + protected: uint32_t volatile* m_buffer; uint32_t m_count; @@ -67,14 +67,7 @@ class UniqueToken<Cuda, UniqueTokenScope::Global> { using execution_space = Cuda; using size_type = int32_t; -#if defined(KOKKOS_ENABLE_DEPRECATED_CODE) - explicit UniqueToken(execution_space const&); - - KOKKOS_INLINE_FUNCTION - UniqueToken() : m_buffer(0), m_count(0) {} -#else explicit UniqueToken(execution_space const& = execution_space()); -#endif KOKKOS_DEFAULTED_FUNCTION UniqueToken(const UniqueToken&) = default; @@ -101,7 +94,7 @@ class UniqueToken<Cuda, UniqueTokenScope::Global> { if (result.first < 0) { Kokkos::abort( - "UniqueToken<Cuda> failure to release tokens, no tokens available"); + "UniqueToken<Cuda> failure to acquire tokens, no tokens available"); } return result.first; @@ -117,14 +110,20 @@ class UniqueToken<Cuda, UniqueTokenScope::Global> { template <> class UniqueToken<Cuda, UniqueTokenScope::Instance> : public UniqueToken<Cuda, UniqueTokenScope::Global> { + private: + Kokkos::View<uint32_t*, ::Kokkos::CudaSpace> m_buffer_view; + public: -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - explicit UniqueToken(execution_space const& arg) - : UniqueToken<Cuda, UniqueTokenScope::Global>(arg) {} -#else explicit UniqueToken(execution_space const& arg = execution_space()) : UniqueToken<Cuda, UniqueTokenScope::Global>(arg) {} -#endif + + UniqueToken(size_type max_size, execution_space const& = execution_space()) + : m_buffer_view( + "UniqueToken::m_buffer_view", + ::Kokkos::Impl::concurrent_bitset::buffer_bound(max_size)) { + m_buffer = m_buffer_view.data(); + m_count = max_size; + } }; } // namespace Experimental diff --git a/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Vectorization.hpp b/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Vectorization.hpp index 62966f859..7f7b7b6e7 100644 --- a/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Vectorization.hpp +++ b/packages/kokkos/core/src/Cuda/Kokkos_Cuda_Vectorization.hpp @@ -47,7 +47,7 @@ #include <Kokkos_Macros.hpp> #ifdef KOKKOS_ENABLE_CUDA -#include <Kokkos_Cuda.hpp> +#include <type_traits> #include <Cuda/Kokkos_Cuda_Version_9_8_Compatibility.hpp> namespace Kokkos { diff --git a/packages/kokkos/core/src/Cuda/Kokkos_Cuda_View.hpp b/packages/kokkos/core/src/Cuda/Kokkos_Cuda_View.hpp index 364f334a4..f24abb377 100644 --- a/packages/kokkos/core/src/Cuda/Kokkos_Cuda_View.hpp +++ b/packages/kokkos/core/src/Cuda/Kokkos_Cuda_View.hpp @@ -257,8 +257,8 @@ class ViewDataHandle< // which can only occur on the host. In addition, 'get_record' is only // valid if called in a host execution space - typedef typename Traits::memory_space memory_space; - typedef typename Impl::SharedAllocationRecord<memory_space, void> record; + using memory_space = typename Traits::memory_space; + using record = typename Impl::SharedAllocationRecord<memory_space, void>; record* const r = arg_tracker.template get_record<memory_space>(); diff --git a/packages/kokkos/core/src/Cuda/Kokkos_Cuda_WorkGraphPolicy.hpp b/packages/kokkos/core/src/Cuda/Kokkos_Cuda_WorkGraphPolicy.hpp index 0753e383a..05876a9f0 100644 --- a/packages/kokkos/core/src/Cuda/Kokkos_Cuda_WorkGraphPolicy.hpp +++ b/packages/kokkos/core/src/Cuda/Kokkos_Cuda_WorkGraphPolicy.hpp @@ -45,6 +45,8 @@ #ifndef KOKKOS_CUDA_WORKGRAPHPOLICY_HPP #define KOKKOS_CUDA_WORKGRAPHPOLICY_HPP +#include <Kokkos_Cuda.hpp> + namespace Kokkos { namespace Impl { @@ -52,8 +54,8 @@ template <class FunctorType, class... Traits> class ParallelFor<FunctorType, Kokkos::WorkGraphPolicy<Traits...>, Kokkos::Cuda> { public: - typedef Kokkos::WorkGraphPolicy<Traits...> Policy; - typedef ParallelFor<FunctorType, Policy, Kokkos::Cuda> Self; + using Policy = Kokkos::WorkGraphPolicy<Traits...>; + using Self = ParallelFor<FunctorType, Policy, Kokkos::Cuda>; private: Policy m_policy; @@ -75,6 +77,8 @@ class ParallelFor<FunctorType, Kokkos::WorkGraphPolicy<Traits...>, } public: + Policy const& get_policy() const { return m_policy; } + __device__ inline void operator()() const noexcept { if (0 == (threadIdx.y % 16)) { // Spin until COMPLETED_TOKEN. diff --git a/packages/kokkos/core/src/Cuda/Kokkos_Cuda_abort.hpp b/packages/kokkos/core/src/Cuda/Kokkos_Cuda_abort.hpp index 698695dbd..c0daa274f 100644 --- a/packages/kokkos/core/src/Cuda/Kokkos_Cuda_abort.hpp +++ b/packages/kokkos/core/src/Cuda/Kokkos_Cuda_abort.hpp @@ -48,7 +48,7 @@ //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- #include <Kokkos_Macros.hpp> -#if defined(__CUDACC__) && defined(KOKKOS_ENABLE_CUDA) +#if defined(KOKKOS_ENABLE_CUDA) #include <cuda.h> @@ -64,18 +64,38 @@ extern __device__ void __assertfail(const void *message, const void *file, namespace Kokkos { namespace Impl { +#if !defined(__APPLE__) +// required to workaround failures in random number generator unit tests with +// pre-volta architectures +#if defined(KOKKOS_ENABLE_DEBUG_BOUNDS_CHECK) __device__ inline void cuda_abort(const char *const message) { -#ifndef __APPLE__ +#else +[[noreturn]] __device__ inline void cuda_abort(const char *const message) { +#endif const char empty[] = ""; __assertfail((const void *)message, (const void *)empty, (unsigned int)0, (const void *)empty, sizeof(char)); + + // This loop is never executed. It's intended to suppress warnings that the + // function returns, even though it does not. This is necessary because + // __assertfail is not marked as [[noreturn]], even though it does not return. + // Disable with KOKKOS_ENABLE_DEBUG_BOUNDS_CHECK to workaround failures + // in random number generator unit tests with pre-volta architectures +#if !defined(KOKKOS_ENABLE_DEBUG_BOUNDS_CHECK) + while (true) + ; #endif } +#else +__device__ inline void cuda_abort(const char *const message) { + // __assertfail is not supported on MAC +} +#endif } // namespace Impl } // namespace Kokkos #else void KOKKOS_CORE_SRC_CUDA_ABORT_PREVENT_LINK_ERROR() {} -#endif /* #if defined(__CUDACC__) && defined( KOKKOS_ENABLE_CUDA ) */ +#endif /* #if defined( KOKKOS_ENABLE_CUDA ) */ #endif /* #ifndef KOKKOS_CUDA_ABORT_HPP */ diff --git a/packages/kokkos/core/src/HIP/Kokkos_HIP_Abort.hpp b/packages/kokkos/core/src/HIP/Kokkos_HIP_Abort.hpp index 1eaae3830..98b457d8c 100644 --- a/packages/kokkos/core/src/HIP/Kokkos_HIP_Abort.hpp +++ b/packages/kokkos/core/src/HIP/Kokkos_HIP_Abort.hpp @@ -53,12 +53,21 @@ namespace Kokkos { namespace Impl { -__device__ inline void hip_abort(char const *msg) { - printf("%s", msg); - // FIXME_HIP both abort and the __assertfail system call are currently - // implemented with __builtin_trap which causes the program to exit abnormally - // without printing the error message. - // abort(); +[[noreturn]] __device__ __attribute__((noinline)) void hip_abort( + char const *msg) { +#ifdef NDEBUG + (void)msg; +#else + // disable printf on release builds, as it has a non-trivial performance + // impact + printf("Aborting with message `%s'.\n", msg); +#endif + abort(); + // This loop is never executed. It's intended to suppress warnings that the + // function returns, even though it does not. This is necessary because + // abort() is not marked as [[noreturn]], even though it does not return. + while (true) + ; } } // namespace Impl diff --git a/packages/kokkos/core/src/HIP/Kokkos_HIP_Atomic.hpp b/packages/kokkos/core/src/HIP/Kokkos_HIP_Atomic.hpp index c09e09f50..263ba97d7 100644 --- a/packages/kokkos/core/src/HIP/Kokkos_HIP_Atomic.hpp +++ b/packages/kokkos/core/src/HIP/Kokkos_HIP_Atomic.hpp @@ -45,8 +45,11 @@ #ifndef KOKKOS_HIP_ATOMIC_HPP #define KOKKOS_HIP_ATOMIC_HPP -#ifdef KOKKOS_ENABLE_HIP_ATOMICS +#include <impl/Kokkos_Atomic_Memory_Order.hpp> +#include <impl/Kokkos_Memory_Fence.hpp> +#include <HIP/Kokkos_HIP_Locks.hpp> +#if defined(KOKKOS_ENABLE_HIP_ATOMICS) namespace Kokkos { // HIP can do: // Types int/unsigned int @@ -91,7 +94,7 @@ __inline__ __device__ T atomic_exchange( typename std::enable_if<sizeof(T) != sizeof(int) && sizeof(T) == sizeof(unsigned long long int), const T &>::type val) { - typedef unsigned long long int type; + using type = unsigned long long int; type tmp = atomicExch(reinterpret_cast<type *>(const_cast<T *>(dest)), *reinterpret_cast<type *>(const_cast<T *>(&val))); @@ -104,19 +107,16 @@ atomic_exchange(volatile T *const dest, typename std::enable_if<sizeof(T) != sizeof(int) && sizeof(T) != sizeof(long long), const T>::type &val) { - // FIXME_HIP - Kokkos::abort("atomic_exchange not implemented for large types.\n"); T return_val; int done = 0; unsigned int active = __ballot(1); unsigned int done_active = 0; while (active != done_active) { if (!done) { - // if (Impl::lock_address_hip_space((void*)dest)) - { + if (Impl::lock_address_hip_space((void *)dest)) { return_val = *dest; *dest = val; - // Impl::unlock_address_hip_space((void*)dest); + Impl::unlock_address_hip_space((void *)dest); done = 1; } } @@ -141,7 +141,7 @@ __inline__ __device__ void atomic_assign( typename std::enable_if<sizeof(T) != sizeof(int) && sizeof(T) == sizeof(unsigned long long int), const T &>::type val) { - typedef unsigned long long int type; + using type = unsigned long long int; atomicExch(reinterpret_cast<type *>(const_cast<T *>(dest)), *reinterpret_cast<type *>(const_cast<T *>(&val))); } @@ -216,19 +216,16 @@ __inline__ __device__ T atomic_compare_exchange( typename std::enable_if<sizeof(T) != sizeof(int) && sizeof(T) != sizeof(long long), const T>::type &val) { - // FIXME_HIP - Kokkos::abort("atomic_compare_exchange not implemented for large types.\n"); T return_val; int done = 0; unsigned int active = __ballot(1); unsigned int done_active = 0; while (active != done_active) { if (!done) { - // if (Impl::lock_address_hip_space((void*)dest)) - { + if (Impl::lock_address_hip_space((void *)dest)) { return_val = *dest; if (return_val == compare) *dest = val; - // Impl::unlock_address_hip_space((void*)dest); + Impl::unlock_address_hip_space((void *)dest); done = 1; } } @@ -351,19 +348,16 @@ atomic_fetch_add(volatile T *dest, typename std::enable_if<sizeof(T) != sizeof(int) && sizeof(T) != sizeof(long long), const T &>::type val) { - // FIXME_HIP - Kokkos::abort("atomic_fetch_add not implemented for large types.\n"); T return_val; int done = 0; unsigned int active = __ballot(1); unsigned int done_active = 0; while (active != done_active) { if (!done) { - // if(Kokkos::Impl::lock_address_hip_space((void *)dest)) - { + if (Kokkos::Impl::lock_address_hip_space((void *)dest)) { return_val = *dest; *dest = return_val + val; - // Kokkos::Impl::unlock_address_hip_space((void *)dest); + Kokkos::Impl::unlock_address_hip_space((void *)dest); done = 1; } } @@ -514,19 +508,16 @@ atomic_fetch_sub(volatile T *const dest, typename std::enable_if<sizeof(T) != sizeof(int) && sizeof(T) != sizeof(long long), const T>::type &val) { - // FIXME_HIP - Kokkos::abort("atomic_fetch_sub not implemented for large types.\n"); T return_val; int done = 0; unsigned int active = __ballot(1); unsigned int done_active = 0; while (active != done_active) { if (!done) { - /*if (Impl::lock_address_hip_space((void*)dest)) */ - { + if (Impl::lock_address_hip_space((void *)dest)) { return_val = *dest; *dest = return_val - val; - // Impl::unlock_address_hip_space((void*)dest); + Impl::unlock_address_hip_space((void *)dest); done = 1; } } @@ -570,6 +561,62 @@ __inline__ __device__ unsigned long long int atomic_fetch_and( unsigned long long int const val) { return atomicAnd(const_cast<unsigned long long int *>(dest), val); } + +namespace Impl { + +template <typename T> +__inline__ __device__ void _atomic_store(T *ptr, T val, + memory_order_relaxed_t) { + (void)atomic_exchange(ptr, val); +} + +template <typename T> +__inline__ __device__ void _atomic_store(T *ptr, T val, + memory_order_seq_cst_t) { + memory_fence(); + atomic_store(ptr, val, memory_order_relaxed); + memory_fence(); +} + +template <typename T> +__inline__ __device__ void _atomic_store(T *ptr, T val, + memory_order_release_t) { + memory_fence(); + atomic_store(ptr, val, memory_order_relaxed); +} + +template <typename T> +__inline__ __device__ void _atomic_store(T *ptr, T val) { + atomic_store(ptr, val, memory_order_relaxed); +} + +template <typename T> +__inline__ __device__ T _atomic_load(T *ptr, memory_order_relaxed_t) { + T dummy{}; + return atomic_compare_exchange(ptr, dummy, dummy); +} + +template <typename T> +__inline__ __device__ T _atomic_load(T *ptr, memory_order_seq_cst_t) { + memory_fence(); + T rv = atomic_load(ptr, memory_order_relaxed); + memory_fence(); + return rv; +} + +template <typename T> +__inline__ __device__ T _atomic_load(T *ptr, memory_order_acquire_t) { + T rv = atomic_load(ptr, memory_order_relaxed); + memory_fence(); + return rv; +} + +template <typename T> +__inline__ __device__ T _atomic_load(T *ptr) { + return atomic_load(ptr, memory_order_relaxed); +} + +} // namespace Impl } // namespace Kokkos #endif diff --git a/packages/kokkos/core/src/HIP/Kokkos_HIP_BlockSize_Deduction.hpp b/packages/kokkos/core/src/HIP/Kokkos_HIP_BlockSize_Deduction.hpp index 8799d359f..89135b6c4 100644 --- a/packages/kokkos/core/src/HIP/Kokkos_HIP_BlockSize_Deduction.hpp +++ b/packages/kokkos/core/src/HIP/Kokkos_HIP_BlockSize_Deduction.hpp @@ -55,6 +55,26 @@ namespace Kokkos { namespace Experimental { namespace Impl { + +template <typename DriverType, bool, int MaxThreadsPerBlock, int MinBlocksPerSM> +void hipOccupancy(int *numBlocks, int blockSize, int sharedmem) { + // FIXME_HIP - currently the "constant" path is unimplemented. + // we should look at whether it's functional, and + // perform some simple scaling studies to see when / + // if the constant launcher outperforms the current + // pass by pointer shared launcher + HIP_SAFE_CALL(hipOccupancyMaxActiveBlocksPerMultiprocessor( + numBlocks, + hip_parallel_launch_local_memory<DriverType, MaxThreadsPerBlock, + MinBlocksPerSM>, + blockSize, sharedmem)); +} + +template <typename DriverType, bool constant> +void hipOccupancy(int *numBlocks, int blockSize, int sharedmem) { + hipOccupancy<DriverType, constant, HIPTraits::MaxThreadsPerBlock, 1>( + numBlocks, blockSize, sharedmem); +} template <typename DriverType, typename LaunchBounds, bool Large> struct HIPGetMaxBlockSize; @@ -67,42 +87,112 @@ int hip_get_max_block_size(typename DriverType::functor_type const &f, f, vector_length, shmem_extra_block, shmem_extra_thread); } -template <class FunctorType, class LaunchBounds> -int hip_get_max_block_size(const HIPInternal * /*hip_instance*/, - const hipFuncAttributes &attr, - const FunctorType & /*f*/, - const size_t /*vector_length*/, - const size_t /*shmem_block*/, - const size_t /*shmem_thread*/) { - // FIXME_HIP find a better algorithm. Be aware that - // maxThreadsPerMultiProcessor, regsPerBlock, and l2CacheSize are bugged and - // always return zero - // https://github.com/ROCm-Developer-Tools/HIP/blob/6c5fa32815650cc20a4f783d09b013610348a4d5/include/hip/hcc_detail/hip_runtime_api.h#L438-L440 - // and we don't have access to the same information than we do for CUDA - - int const max_threads_per_block_mi60 = 1024; - int const max_threads_per_block = LaunchBounds::maxTperB == 0 - ? max_threads_per_block_mi60 +template <class FunctorType, class LaunchBounds, typename F> +int hip_internal_get_block_size(const F &condition_check, + const HIPInternal *hip_instance, + const hipFuncAttributes &attr, + const FunctorType &f, + const size_t vector_length, + const size_t shmem_block, + const size_t shmem_thread) { + const int min_blocks_per_sm = + LaunchBounds::minBperSM == 0 ? 1 : LaunchBounds::minBperSM; + const int max_threads_per_block = LaunchBounds::maxTperB == 0 + ? HIPTraits::MaxThreadsPerBlock : LaunchBounds::maxTperB; - return std::min(attr.maxThreadsPerBlock, max_threads_per_block); + + const int regs_per_wavefront = std::max(attr.numRegs, 1); + const int regs_per_sm = hip_instance->m_regsPerSM; + const int shmem_per_sm = hip_instance->m_shmemPerSM; + const int max_shmem_per_block = hip_instance->m_maxShmemPerBlock; + const int max_blocks_per_sm = hip_instance->m_maxBlocksPerSM; + const int max_threads_per_sm = hip_instance->m_maxThreadsPerSM; + + int block_size = max_threads_per_block; + KOKKOS_ASSERT(block_size > 0); + const int blocks_per_warp = + (block_size + HIPTraits::WarpSize - 1) / HIPTraits::WarpSize; + + int functor_shmem = ::Kokkos::Impl::FunctorTeamShmemSize<FunctorType>::value( + f, block_size / vector_length); + int total_shmem = shmem_block + shmem_thread * (block_size / vector_length) + + functor_shmem + attr.sharedSizeBytes; + int max_blocks_regs = regs_per_sm / (regs_per_wavefront * blocks_per_warp); + int max_blocks_shmem = + (total_shmem < max_shmem_per_block) + ? (total_shmem > 0 ? shmem_per_sm / total_shmem : max_blocks_regs) + : 0; + int blocks_per_sm = std::min(max_blocks_regs, max_blocks_shmem); + int threads_per_sm = blocks_per_sm * block_size; + if (threads_per_sm > max_threads_per_sm) { + blocks_per_sm = max_threads_per_sm / block_size; + threads_per_sm = blocks_per_sm * block_size; + } + int opt_block_size = + (blocks_per_sm >= min_blocks_per_sm) ? block_size : min_blocks_per_sm; + int opt_threads_per_sm = threads_per_sm; + // printf("BlockSizeMax: %i Shmem: %i %i %i %i Regs: %i %i Blocks: %i %i + // Achieved: %i %i Opt: %i %i\n",block_size, + // shmem_per_sm,max_shmem_per_block,functor_shmem,total_shmem, + // regs_per_sm,regs_per_wavefront,max_blocks_shmem,max_blocks_regs,blocks_per_sm,threads_per_sm,opt_block_size,opt_threads_per_sm); + block_size -= HIPTraits::WarpSize; + while (condition_check(blocks_per_sm) && + (block_size >= HIPTraits::WarpSize)) { + functor_shmem = ::Kokkos::Impl::FunctorTeamShmemSize<FunctorType>::value( + f, block_size / vector_length); + total_shmem = shmem_block + shmem_thread * (block_size / vector_length) + + functor_shmem + attr.sharedSizeBytes; + max_blocks_regs = regs_per_sm / (regs_per_wavefront * blocks_per_warp); + max_blocks_shmem = + (total_shmem < max_shmem_per_block) + ? (total_shmem > 0 ? shmem_per_sm / total_shmem : max_blocks_regs) + : 0; + blocks_per_sm = std::min(max_blocks_regs, max_blocks_shmem); + threads_per_sm = blocks_per_sm * block_size; + if (threads_per_sm > max_threads_per_sm) { + blocks_per_sm = max_threads_per_sm / block_size; + threads_per_sm = blocks_per_sm * block_size; + } + if ((blocks_per_sm >= min_blocks_per_sm) && + (blocks_per_sm <= max_blocks_per_sm)) { + if (threads_per_sm >= opt_threads_per_sm) { + opt_block_size = block_size; + opt_threads_per_sm = threads_per_sm; + } + } + // printf("BlockSizeMax: %i Shmem: %i %i %i %i Regs: %i %i Blocks: %i %i + // Achieved: %i %i Opt: %i %i\n",block_size, + // shmem_per_sm,max_shmem_per_block,functor_shmem,total_shmem, + // regs_per_sm,regs_per_wavefront,max_blocks_shmem,max_blocks_regs,blocks_per_sm,threads_per_sm,opt_block_size,opt_threads_per_sm); + block_size -= HIPTraits::WarpSize; + } + return opt_block_size; } -template <typename DriverType> -struct HIPGetMaxBlockSize<DriverType, Kokkos::LaunchBounds<>, true> { +template <class FunctorType, class LaunchBounds> +int hip_get_max_block_size(const HIPInternal *hip_instance, + const hipFuncAttributes &attr, const FunctorType &f, + const size_t vector_length, const size_t shmem_block, + const size_t shmem_thread) { + return hip_internal_get_block_size<FunctorType, LaunchBounds>( + [](int x) { return x == 0; }, hip_instance, attr, f, vector_length, + shmem_block, shmem_thread); +} +template <typename DriverType, class LaunchBounds> +struct HIPGetMaxBlockSize<DriverType, LaunchBounds, true> { static int get_block_size(typename DriverType::functor_type const &f, size_t const vector_length, size_t const shmem_extra_block, size_t const shmem_extra_thread) { - unsigned int numBlocks = 0; - int blockSize = 1024; + int numBlocks = 0; + int blockSize = LaunchBounds::maxTperB == 0 ? 1024 : LaunchBounds::maxTperB; int sharedmem = shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + ::Kokkos::Impl::FunctorTeamShmemSize< typename DriverType::functor_type>::value(f, blockSize / vector_length); - hipOccupancyMaxActiveBlocksPerMultiprocessor( - &numBlocks, hip_parallel_launch_constant_memory<DriverType>, blockSize, - sharedmem); + + hipOccupancy<DriverType, true>(&numBlocks, blockSize, sharedmem); if (numBlocks > 0) return blockSize; while (blockSize > HIPTraits::WarpSize && numBlocks == 0) { @@ -113,9 +203,7 @@ struct HIPGetMaxBlockSize<DriverType, Kokkos::LaunchBounds<>, true> { typename DriverType::functor_type>::value(f, blockSize / vector_length); - hipOccupancyMaxActiveBlocksPerMultiprocessor( - &numBlocks, hip_parallel_launch_constant_memory<DriverType>, - blockSize, sharedmem); + hipOccupancy<DriverType, true>(&numBlocks, blockSize, sharedmem); } int blockSizeUpperBound = blockSize * 2; while (blockSize < blockSizeUpperBound && numBlocks > 0) { @@ -126,9 +214,7 @@ struct HIPGetMaxBlockSize<DriverType, Kokkos::LaunchBounds<>, true> { typename DriverType::functor_type>::value(f, blockSize / vector_length); - hipOccupancyMaxActiveBlocksPerMultiprocessor( - &numBlocks, hip_parallel_launch_constant_memory<DriverType>, - blockSize, sharedmem); + hipOccupancy<DriverType, true>(&numBlocks, blockSize, sharedmem); } return blockSize - HIPTraits::WarpSize; } @@ -150,23 +236,13 @@ int hip_get_opt_block_size(typename DriverType::functor_type const &f, } template <typename FunctorType, typename LaunchBounds> -int hip_get_opt_block_size(HIPInternal const * /*hip_instance*/, - hipFuncAttributes const &attr, - FunctorType const & /*f*/, - size_t const /*vector_length*/, - size_t const /*shmem_block*/, - size_t const /*shmem_thread*/) { - // FIXME_HIP find a better algorithm. Be aware that - // maxThreadsPerMultiProcessor, regsPerBlock, and l2CacheSize are bugged and - // always return zero - // https://github.com/ROCm-Developer-Tools/HIP/blob/6c5fa32815650cc20a4f783d09b013610348a4d5/include/hip/hcc_detail/hip_runtime_api.h#L438-L440 - // and we don't have access to the same information than we do for CUDA - - int const max_threads_per_block_mi60 = 1024; - int const max_threads_per_block = LaunchBounds::maxTperB == 0 - ? max_threads_per_block_mi60 - : LaunchBounds::maxTperB; - return std::min(attr.maxThreadsPerBlock, max_threads_per_block); +int hip_get_opt_block_size(HIPInternal const *hip_instance, + hipFuncAttributes const &attr, FunctorType const &f, + size_t const vector_length, size_t const shmem_block, + size_t const shmem_thread) { + return hip_internal_get_block_size<FunctorType, LaunchBounds>( + [](int) { return true; }, hip_instance, attr, f, vector_length, + shmem_block, shmem_thread); } // FIXME_HIP the code is identical to the false struct except for @@ -183,7 +259,7 @@ struct HIPGetOptBlockSize<DriverType, Kokkos::LaunchBounds<0, 0>, true> { int maxOccupancy = 0; int bestBlockSize = 0; - while (blockSize < 1024) { + while (blockSize < HIPTraits::MaxThreadsPerBlock) { blockSize *= 2; // calculate the occupancy with that optBlockSize and check whether its @@ -193,9 +269,7 @@ struct HIPGetOptBlockSize<DriverType, Kokkos::LaunchBounds<0, 0>, true> { ::Kokkos::Impl::FunctorTeamShmemSize< typename DriverType::functor_type>::value(f, blockSize / vector_length); - hipOccupancyMaxActiveBlocksPerMultiprocessor( - &numBlocks, hip_parallel_launch_constant_memory<DriverType>, - blockSize, sharedmem); + hipOccupancy<DriverType, true>(&numBlocks, blockSize, sharedmem); if (maxOccupancy < numBlocks * blockSize) { maxOccupancy = numBlocks * blockSize; bestBlockSize = blockSize; @@ -217,7 +291,7 @@ struct HIPGetOptBlockSize<DriverType, Kokkos::LaunchBounds<0, 0>, false> { int maxOccupancy = 0; int bestBlockSize = 0; - while (blockSize < 1024) { + while (blockSize < HIPTraits::MaxThreadsPerBlock) { blockSize *= 2; sharedmem = shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + @@ -225,9 +299,7 @@ struct HIPGetOptBlockSize<DriverType, Kokkos::LaunchBounds<0, 0>, false> { typename DriverType::functor_type>::value(f, blockSize / vector_length); - hipOccupancyMaxActiveBlocksPerMultiprocessor( - &numBlocks, hip_parallel_launch_local_memory<DriverType>, blockSize, - sharedmem); + hipOccupancy<DriverType, false>(&numBlocks, blockSize, sharedmem); if (maxOccupancy < numBlocks * blockSize) { maxOccupancy = numBlocks * blockSize; @@ -268,11 +340,8 @@ struct HIPGetOptBlockSize< ::Kokkos::Impl::FunctorTeamShmemSize< typename DriverType::functor_type>::value(f, blockSize / vector_length); - hipOccupancyMaxActiveBlocksPerMultiprocessor( - &numBlocks, - hip_parallel_launch_constant_memory<DriverType, MaxThreadsPerBlock, - MinBlocksPerSM>, - blockSize, sharedmem); + hipOccupancy<DriverType, true, MaxThreadsPerBlock, MinBlocksPerSM>( + &numBlocks, blockSize, sharedmem); if (numBlocks >= static_cast<int>(MinBlocksPerSM) && blockSize <= static_cast<int>(MaxThreadsPerBlock)) { if (maxOccupancy < numBlocks * blockSize) { @@ -312,11 +381,8 @@ struct HIPGetOptBlockSize< typename DriverType::functor_type>::value(f, blockSize / vector_length); - hipOccupancyMaxActiveBlocksPerMultiprocessor( - &numBlocks, - hip_parallel_launch_local_memory<DriverType, MaxThreadsPerBlock, - MinBlocksPerSM>, - blockSize, sharedmem); + hipOccupancy<DriverType, false, MaxThreadsPerBlock, MinBlocksPerSM>( + &numBlocks, blockSize, sharedmem); if (numBlocks >= int(MinBlocksPerSM) && blockSize <= int(MaxThreadsPerBlock)) { if (maxOccupancy < numBlocks * blockSize) { diff --git a/packages/kokkos/core/src/HIP/Kokkos_HIP_Error.hpp b/packages/kokkos/core/src/HIP/Kokkos_HIP_Error.hpp index 2abded0e9..b3480bcad 100644 --- a/packages/kokkos/core/src/HIP/Kokkos_HIP_Error.hpp +++ b/packages/kokkos/core/src/HIP/Kokkos_HIP_Error.hpp @@ -56,10 +56,10 @@ namespace Kokkos { namespace Impl { void hip_internal_error_throw(hipError_t e, const char* name, - const char* file = NULL, const int line = 0); + const char* file = nullptr, const int line = 0); inline void hip_internal_safe_call(hipError_t e, const char* name, - const char* file = NULL, + const char* file = nullptr, const int line = 0) { if (hipSuccess != e) { hip_internal_error_throw(e, name, file, line); diff --git a/packages/kokkos/core/src/HIP/Kokkos_HIP_Instance.cpp b/packages/kokkos/core/src/HIP/Kokkos_HIP_Instance.cpp index 1dcba0ff3..45512038a 100644 --- a/packages/kokkos/core/src/HIP/Kokkos_HIP_Instance.cpp +++ b/packages/kokkos/core/src/HIP/Kokkos_HIP_Instance.cpp @@ -97,56 +97,53 @@ const HIPInternalDevices &HIPInternalDevices::singleton() { namespace Impl { -int HIPInternal::was_initialized = 0; -int HIPInternal::was_finalized = 0; //---------------------------------------------------------------------------- -void HIPInternal::print_configuration(std::ostream & /*s*/) const { - // FIXME_HIP - Kokkos::abort("print_configuration not implemented!\n"); - /*const HIPInternalDevices & dev_info = HIPInternalDevices::singleton(); +void HIPInternal::print_configuration(std::ostream &s) const { + const HIPInternalDevices &dev_info = HIPInternalDevices::singleton(); -#if defined( KOKKOS_ENABLE_HIP ) - s << "macro KOKKOS_ENABLE_HIP : defined" << std::endl ; -#endif -#if defined( __hcc_version__ ) - s << "macro __hcc_version__ = " << __hcc_version__ - << std::endl ; + s << "macro KOKKOS_ENABLE_HIP : defined" << '\n'; +#if defined(HIP_VERSION) + s << "macro HIP_VERSION = " << HIP_VERSION << " = version " + << HIP_VERSION / 100 << "." << HIP_VERSION % 100 << '\n'; #endif - for ( int i = 0 ; i < dev_info.m_hipDevCount ; ++i ) { + for (int i = 0; i < dev_info.m_hipDevCount; ++i) { s << "Kokkos::Experimental::HIP[ " << i << " ] " - << dev_info.m_hipProp[i].name - << " version " << (dev_info.m_hipProp[i].major) << "." << -dev_info.m_hipProp[i].minor - << ", Total Global Memory: " << -human_memory_size(dev_info.m_hipProp[i].totalGlobalMem) - << ", Shared Memory per Wavefront: " << -human_memory_size(dev_info.m_hipProp[i].sharedMemPerWavefront); if ( m_hipDev == -i ) s << " : Selected" ; s << std::endl ; - }*/ + << dev_info.m_hipProp[i].name << " version " + << (dev_info.m_hipProp[i].major) << "." << dev_info.m_hipProp[i].minor + << ", Total Global Memory: " + << ::Kokkos::Impl::human_memory_size(dev_info.m_hipProp[i].totalGlobalMem) + << ", Shared Memory per Block: " + << ::Kokkos::Impl::human_memory_size( + dev_info.m_hipProp[i].sharedMemPerBlock); + if (m_hipDev == i) s << " : Selected"; + s << '\n'; + } } //---------------------------------------------------------------------------- HIPInternal::~HIPInternal() { - if (m_scratchSpace || m_scratchFlags) { + if (m_scratchSpace || m_scratchFlags || m_scratchConcurrentBitset) { std::cerr << "Kokkos::Experimental::HIP ERROR: Failed to call " "Kokkos::Experimental::HIP::finalize()" << std::endl; std::cerr.flush(); } - m_hipDev = -1; - m_hipArch = -1; - m_multiProcCount = 0; - m_maxWarpCount = 0; - m_maxSharedWords = 0; - m_maxShmemPerBlock = 0; - m_scratchSpaceCount = 0; - m_scratchFlagsCount = 0; - m_scratchSpace = 0; - m_scratchFlags = 0; + m_hipDev = -1; + m_hipArch = -1; + m_multiProcCount = 0; + m_maxWarpCount = 0; + m_maxSharedWords = 0; + m_maxShmemPerBlock = 0; + m_scratchSpaceCount = 0; + m_scratchFlagsCount = 0; + m_scratchSpace = nullptr; + m_scratchFlags = nullptr; + m_scratchConcurrentBitset = nullptr; + m_stream = nullptr; } int HIPInternal::verify_is_initialized(const char *const label) const { @@ -165,13 +162,17 @@ HIPInternal &HIPInternal::singleton() { return *self; } -void HIPInternal::initialize(int hip_device_id) { +void HIPInternal::fence() const { + HIP_SAFE_CALL(hipStreamSynchronize(m_stream)); +} + +void HIPInternal::initialize(int hip_device_id, hipStream_t stream) { if (was_finalized) Kokkos::abort("Calling HIP::initialize after HIP::finalize is illegal\n"); if (is_initialized()) return; - enum { WordSize = sizeof(size_type) }; + int constexpr WordSize = sizeof(size_type); if (!HostSpace::execution_space::impl_is_initialized()) { const std::string msg( @@ -182,7 +183,7 @@ void HIPInternal::initialize(int hip_device_id) { const HIPInternalDevices &dev_info = HIPInternalDevices::singleton(); - const bool ok_init = 0 == m_scratchSpace || 0 == m_scratchFlags; + const bool ok_init = nullptr == m_scratchSpace || nullptr == m_scratchFlags; // Need at least a GPU device const bool ok_id = @@ -191,12 +192,14 @@ void HIPInternal::initialize(int hip_device_id) { if (ok_init && ok_id) { const struct hipDeviceProp_t &hipProp = dev_info.m_hipProp[hip_device_id]; - m_hipDev = hip_device_id; + m_hipDev = hip_device_id; + m_deviceProp = hipProp; - hipSetDevice(m_hipDev); + HIP_SAFE_CALL(hipSetDevice(m_hipDev)); - // FIXME_HIP for now always uses default stream - m_stream = 0; + m_stream = stream; + m_team_scratch_current_size = 0; + m_team_scratch_ptr = nullptr; // number of multiprocessors m_multiProcCount = hipProp.multiProcessorCount; @@ -214,11 +217,20 @@ void HIPInternal::initialize(int hip_device_id) { // Maximum number of blocks m_maxBlock = hipProp.maxGridSize[0]; - m_shmemPerSM = hipProp.maxSharedMemoryPerMultiProcessor; - m_maxShmemPerBlock = hipProp.sharedMemPerBlock; - m_maxThreadsPerSM = hipProp.maxThreadsPerMultiProcessor; - m_maxThreadsPerBlock = hipProp.maxThreadsPerBlock; - + // theoretically, we can get 40 WF's / CU, but only can sustain 32 + // see + // https://github.com/ROCm-Developer-Tools/HIP/blob/a0b5dfd625d99af7e288629747b40dd057183173/vdi/hip_platform.cpp#L742 + m_maxBlocksPerSM = 32; + // FIXME_HIP - Nick to implement this upstream + // Register count comes from Sec. 2.2. "Data Sharing" of the + // Vega 7nm ISA document (see the diagram) + // https://developer.amd.com/wp-content/resources/Vega_7nm_Shader_ISA.pdf + // VGPRS = 4 (SIMD/CU) * 256 VGPR/SIMD * 64 registers / VGPR = + // 65536 VGPR/CU + m_regsPerSM = 65536; + m_shmemPerSM = hipProp.maxSharedMemoryPerMultiProcessor; + m_maxShmemPerBlock = hipProp.sharedMemPerBlock; + m_maxThreadsPerSM = m_maxBlocksPerSM * HIPTraits::WarpSize; //---------------------------------- // Multiblock reduction uses scratch flags for counters // and scratch space for partial reduction values. @@ -231,6 +243,31 @@ void HIPInternal::initialize(int hip_device_id) { (void)scratch_space(reduce_block_count * 16 * sizeof(size_type)); } //---------------------------------- + // Concurrent bitset for obtaining unique tokens from within + // an executing kernel. + { + const int32_t buffer_bound = + Kokkos::Impl::concurrent_bitset::buffer_bound(HIP::concurrency()); + + // Allocate and initialize uint32_t[ buffer_bound ] + + using Record = + Kokkos::Impl::SharedAllocationRecord<Kokkos::Experimental::HIPSpace, + void>; + + Record *const r = Record::allocate(Kokkos::Experimental::HIPSpace(), + "InternalScratchBitset", + sizeof(uint32_t) * buffer_bound); + + Record::increment(r); + + m_scratchConcurrentBitset = reinterpret_cast<uint32_t *>(r->data()); + + HIP_SAFE_CALL(hipMemset(m_scratchConcurrentBitset, 0, + sizeof(uint32_t) * buffer_bound)); + } + //---------------------------------- + } else { std::ostringstream msg; msg << "Kokkos::Experimental::HIP::initialize(" << hip_device_id @@ -247,14 +284,13 @@ void HIPInternal::initialize(int hip_device_id) { } // Init the array for used for arbitrarily sized atomics - // FIXME_HIP uncomment this when global variable works - // if (m_stream == 0) ::Kokkos::Impl::initialize_host_hip_lock_arrays(); + if (m_stream == nullptr) ::Kokkos::Impl::initialize_host_hip_lock_arrays(); } //---------------------------------------------------------------------------- -typedef Kokkos::Experimental::HIP::size_type - ScratchGrain[Impl::HIPTraits::WarpSize]; +using ScratchGrain = + Kokkos::Experimental::HIP::size_type[Impl::HIPTraits::WarpSize]; enum { sizeScratchGrain = sizeof(ScratchGrain) }; Kokkos::Experimental::HIP::size_type *HIPInternal::scratch_space( @@ -263,9 +299,9 @@ Kokkos::Experimental::HIP::size_type *HIPInternal::scratch_space( m_scratchSpaceCount * sizeScratchGrain < size) { m_scratchSpaceCount = (size + sizeScratchGrain - 1) / sizeScratchGrain; - typedef Kokkos::Impl::SharedAllocationRecord<Kokkos::Experimental::HIPSpace, - void> - Record; + using Record = + Kokkos::Impl::SharedAllocationRecord<Kokkos::Experimental::HIPSpace, + void>; static Record *const r = Record::allocate( Kokkos::Experimental::HIPSpace(), "InternalScratchSpace", @@ -285,9 +321,9 @@ Kokkos::Experimental::HIP::size_type *HIPInternal::scratch_flags( m_scratchFlagsCount * sizeScratchGrain < size) { m_scratchFlagsCount = (size + sizeScratchGrain - 1) / sizeScratchGrain; - typedef Kokkos::Impl::SharedAllocationRecord<Kokkos::Experimental::HIPSpace, - void> - Record; + using Record = + Kokkos::Impl::SharedAllocationRecord<Kokkos::Experimental::HIPSpace, + void>; Record *const r = Record::allocate( Kokkos::Experimental::HIPSpace(), "InternalScratchFlags", @@ -297,40 +333,69 @@ Kokkos::Experimental::HIP::size_type *HIPInternal::scratch_flags( m_scratchFlags = reinterpret_cast<size_type *>(r->data()); - hipMemset(m_scratchFlags, 0, m_scratchFlagsCount * sizeScratchGrain); + HIP_SAFE_CALL( + hipMemset(m_scratchFlags, 0, m_scratchFlagsCount * sizeScratchGrain)); } return m_scratchFlags; } +void *HIPInternal::resize_team_scratch_space(std::int64_t bytes, + bool force_shrink) { + if (m_team_scratch_current_size == 0) { + m_team_scratch_current_size = bytes; + m_team_scratch_ptr = Kokkos::kokkos_malloc<Kokkos::Experimental::HIPSpace>( + "HIPSpace::ScratchMemory", m_team_scratch_current_size); + } + if ((bytes > m_team_scratch_current_size) || + ((bytes < m_team_scratch_current_size) && (force_shrink))) { + m_team_scratch_current_size = bytes; + m_team_scratch_ptr = Kokkos::kokkos_realloc<Kokkos::Experimental::HIPSpace>( + m_team_scratch_ptr, m_team_scratch_current_size); + } + return m_team_scratch_ptr; +} + //---------------------------------------------------------------------------- void HIPInternal::finalize() { - HIP().fence(); - was_finalized = 1; - if (0 != m_scratchSpace || 0 != m_scratchFlags) { - typedef Kokkos::Impl::SharedAllocationRecord<Kokkos::Experimental::HIPSpace> - RecordHIP; + this->fence(); + was_finalized = true; + if (nullptr != m_scratchSpace || nullptr != m_scratchFlags) { + using RecordHIP = + Kokkos::Impl::SharedAllocationRecord<Kokkos::Experimental::HIPSpace>; RecordHIP::decrement(RecordHIP::get_record(m_scratchFlags)); RecordHIP::decrement(RecordHIP::get_record(m_scratchSpace)); - - m_hipDev = -1; - m_hipArch = -1; - m_multiProcCount = 0; - m_maxWarpCount = 0; - m_maxBlock = 0; - m_maxSharedWords = 0; - m_maxShmemPerBlock = 0; - m_scratchSpaceCount = 0; - m_scratchFlagsCount = 0; - m_scratchSpace = 0; - m_scratchFlags = 0; + RecordHIP::decrement(RecordHIP::get_record(m_scratchConcurrentBitset)); + + if (m_team_scratch_current_size > 0) + Kokkos::kokkos_free<Kokkos::Experimental::HIPSpace>(m_team_scratch_ptr); + + m_hipDev = -1; + m_hipArch = -1; + m_multiProcCount = 0; + m_maxWarpCount = 0; + m_maxBlock = 0; + m_maxSharedWords = 0; + m_maxShmemPerBlock = 0; + m_scratchSpaceCount = 0; + m_scratchFlagsCount = 0; + m_scratchSpace = nullptr; + m_scratchFlags = nullptr; + m_scratchConcurrentBitset = nullptr; + m_stream = nullptr; + m_team_scratch_current_size = 0; + m_team_scratch_ptr = nullptr; } } //---------------------------------------------------------------------------- +Kokkos::Experimental::HIP::size_type hip_internal_multiprocessor_count() { + return HIPInternal::singleton().m_multiProcCount; +} + Kokkos::Experimental::HIP::size_type hip_internal_maximum_warp_count() { return HIPInternal::singleton().m_maxWarpCount; } @@ -371,3 +436,13 @@ void hip_internal_error_throw(hipError_t e, const char *name, const char *file, } } // namespace Impl } // namespace Kokkos + +//---------------------------------------------------------------------------- + +namespace Kokkos { +namespace Experimental { +HIP::size_type HIP::detect_device_count() { + return HIPInternalDevices::singleton().m_hipDevCount; +} +} // namespace Experimental +} // namespace Kokkos diff --git a/packages/kokkos/core/src/HIP/Kokkos_HIP_Instance.hpp b/packages/kokkos/core/src/HIP/Kokkos_HIP_Instance.hpp index c66fb2776..07ec8625e 100644 --- a/packages/kokkos/core/src/HIP/Kokkos_HIP_Instance.hpp +++ b/packages/kokkos/core/src/HIP/Kokkos_HIP_Instance.hpp @@ -55,7 +55,10 @@ namespace Impl { struct HIPTraits { static int constexpr WarpSize = 64; - static int constexpr WarpIndexShift = 6; /* WarpSize == 1 << WarpShift*/ + static int constexpr WarpIndexMask = 0x003f; /* hexadecimal for 63 */ + static int constexpr WarpIndexShift = 6; /* WarpSize == 1 << WarpShift*/ + static int constexpr MaxThreadsPerBlock = + 1024; // FIXME_HIP -- assumed constant for now static int constexpr ConstantMemoryUsage = 0x008000; /* 32k bytes */ static int constexpr ConstantMemoryUseThreshold = 0x000200; /* 512 bytes */ @@ -65,6 +68,7 @@ struct HIPTraits { HIP::size_type hip_internal_maximum_warp_count(); HIP::size_type hip_internal_maximum_grid_count(); +HIP::size_type hip_internal_multiprocessor_count(); HIP::size_type *hip_internal_scratch_space(const HIP::size_type size); HIP::size_type *hip_internal_scratch_flags(const HIP::size_type size); @@ -84,20 +88,30 @@ class HIPInternal { unsigned m_multiProcCount; unsigned m_maxWarpCount; unsigned m_maxBlock; + unsigned m_maxBlocksPerSM; unsigned m_maxSharedWords; + int m_regsPerSM; int m_shmemPerSM; int m_maxShmemPerBlock; int m_maxThreadsPerSM; - int m_maxThreadsPerBlock; + + // Scratch Spaces for Reductions size_type m_scratchSpaceCount; size_type m_scratchFlagsCount; + size_type *m_scratchSpace; size_type *m_scratchFlags; + uint32_t *m_scratchConcurrentBitset = nullptr; + + hipDeviceProp_t m_deviceProp; hipStream_t m_stream; - static int was_initialized; - static int was_finalized; + // Team Scratch Level 1 Space + mutable int64_t m_team_scratch_current_size; + mutable void *m_team_scratch_ptr; + + bool was_finalized = false; static HIPInternal &singleton(); @@ -107,11 +121,13 @@ class HIPInternal { return m_hipDev >= 0; } // 0 != m_scratchSpace && 0 != m_scratchFlags ; } - void initialize(int hip_device_id); + void initialize(int hip_device_id, hipStream_t stream = nullptr); void finalize(); void print_configuration(std::ostream &) const; + void fence() const; + ~HIPInternal(); HIPInternal() @@ -124,14 +140,21 @@ class HIPInternal { m_shmemPerSM(0), m_maxShmemPerBlock(0), m_maxThreadsPerSM(0), - m_maxThreadsPerBlock(0), m_scratchSpaceCount(0), m_scratchFlagsCount(0), - m_scratchSpace(0), - m_scratchFlags(0) {} + m_scratchSpace(nullptr), + m_scratchFlags(nullptr), + m_stream(nullptr), + m_team_scratch_current_size(0), + m_team_scratch_ptr(nullptr) {} + // Resizing of reduction related scratch spaces size_type *scratch_space(const size_type size); size_type *scratch_flags(const size_type size); + + // Resizing of team level 1 scratch + void *resize_team_scratch_space(std::int64_t bytes, + bool force_shrink = false); }; } // namespace Impl diff --git a/packages/kokkos/core/src/HIP/Kokkos_HIP_KernelLaunch.hpp b/packages/kokkos/core/src/HIP/Kokkos_HIP_KernelLaunch.hpp index 5c19a3e0d..3e972c734 100644 --- a/packages/kokkos/core/src/HIP/Kokkos_HIP_KernelLaunch.hpp +++ b/packages/kokkos/core/src/HIP/Kokkos_HIP_KernelLaunch.hpp @@ -53,16 +53,18 @@ #include <HIP/Kokkos_HIP_Error.hpp> #include <HIP/Kokkos_HIP_Instance.hpp> -// FIXME_HIP cannot use global variable on the device with ROCm 2.9 -//__device__ __constant__ unsigned long kokkos_impl_hip_constant_memory_buffer -// [Kokkos::Experimental::Impl::HIPTraits::ConstantMemoryUsage / -// sizeof(unsigned long)]; +// Must use global variable on the device with HIP-Clang +#ifdef __HIP__ +__device__ __constant__ unsigned long kokkos_impl_hip_constant_memory_buffer + [Kokkos::Experimental::Impl::HIPTraits::ConstantMemoryUsage / + sizeof(unsigned long)]; +#endif namespace Kokkos { namespace Experimental { template <typename T> inline __device__ T *kokkos_impl_hip_shared_memory() { - extern __shared__ HIPSpace::size_type sh[]; + HIP_DYNAMIC_SHARED(HIPSpace::size_type, sh); return (T *)sh; } } // namespace Experimental @@ -72,32 +74,34 @@ namespace Kokkos { namespace Experimental { namespace Impl { -void *hip_resize_scratch_space(std::int64_t bytes, bool force_shrink = false); - template <typename DriverType> __global__ static void hip_parallel_launch_constant_memory() { - __device__ __constant__ unsigned long kokkos_impl_hip_constant_memory_buffer - [Kokkos::Experimental::Impl::HIPTraits::ConstantMemoryUsage / - sizeof(unsigned long)]; + const DriverType &driver = *(reinterpret_cast<const DriverType *>( + kokkos_impl_hip_constant_memory_buffer)); + driver(); +} +template <typename DriverType, unsigned int maxTperB, unsigned int minBperSM> +__global__ __launch_bounds__( + maxTperB, minBperSM) static void hip_parallel_launch_constant_memory() { const DriverType &driver = *(reinterpret_cast<const DriverType *>( kokkos_impl_hip_constant_memory_buffer)); - driver(); + driver->operator()(); } template <class DriverType> __global__ static void hip_parallel_launch_local_memory( - const DriverType driver) { - driver(); + const DriverType *driver) { + driver->operator()(); } template <class DriverType, unsigned int maxTperB, unsigned int minBperSM> __global__ __launch_bounds__( maxTperB, minBperSM) static void hip_parallel_launch_local_memory(const DriverType - driver) { - driver(); + *driver) { + driver->operator()(); } enum class HIPLaunchMechanism : unsigned { @@ -142,30 +146,39 @@ struct HIPParallelLaunch< "HIPParallelLaunch FAILED: shared memory request is too large"); } - // Invoke the driver function on the device - printf("%i %i %i | %i %i %i | %i\n", grid.x, grid.y, grid.z, block.x, - block.y, block.z, shmem); - printf("Pre Launch Error: %s\n", hipGetErrorName(hipGetLastError())); + KOKKOS_ENSURE_HIP_LOCK_ARRAYS_ON_DEVICE(); + + // FIXME_HIP -- there is currently an error copying (some) structs + // by value to the device in HIP-Clang / VDI + // As a workaround, we can malloc the DriverType and explictly copy over. + // To remove once solved in HIP + DriverType *d_driver; + HIP_SAFE_CALL(hipMalloc(&d_driver, sizeof(DriverType))); + HIP_SAFE_CALL(hipMemcpyAsync(d_driver, &driver, sizeof(DriverType), + hipMemcpyHostToDevice, + hip_instance->m_stream)); + hip_parallel_launch_local_memory<DriverType, MaxThreadsPerBlock, + MinBlocksPerSM> + <<<grid, block, shmem, hip_instance->m_stream>>>(d_driver); - hipLaunchKernelGGL( - (hip_parallel_launch_local_memory<DriverType, MaxThreadsPerBlock, - MinBlocksPerSM>), - grid, block, shmem, hip_instance->m_stream, driver); - - Kokkos::Experimental::HIP().fence(); - printf("Post Launch Error: %s\n", hipGetErrorName(hipGetLastError())); #if defined(KOKKOS_ENABLE_DEBUG_BOUNDS_CHECK) HIP_SAFE_CALL(hipGetLastError()); - Kokkos::Experimental::HIP().fence(); + hip_instance->fence(); #endif + HIP_SAFE_CALL(hipFree(d_driver)); } } static hipFuncAttributes get_hip_func_attributes() { - hipFuncAttributes attr; - hipFuncGetAttributes( - &attr, hip_parallel_launch_local_memory<DriverType, MaxThreadsPerBlock, - MinBlocksPerSM>); + static hipFuncAttributes attr = []() { + hipFuncAttributes attr; + HIP_SAFE_CALL(hipFuncGetAttributes( + &attr, + reinterpret_cast<void const *>( + hip_parallel_launch_local_memory<DriverType, MaxThreadsPerBlock, + MinBlocksPerSM>))); + return attr; + }(); return attr; } }; @@ -183,23 +196,35 @@ struct HIPParallelLaunch<DriverType, Kokkos::LaunchBounds<0, 0>, "HIPParallelLaunch FAILED: shared memory request is too large")); } + KOKKOS_ENSURE_HIP_LOCK_ARRAYS_ON_DEVICE(); + // Invoke the driver function on the device - hipLaunchKernelGGL(hip_parallel_launch_local_memory<DriverType>, grid, - block, shmem, hip_instance->m_stream, driver); - Kokkos::Experimental::HIP().fence(); + // FIXME_HIP -- see note about struct copy by value above + DriverType *d_driver; + HIP_SAFE_CALL(hipMalloc(&d_driver, sizeof(DriverType))); + HIP_SAFE_CALL(hipMemcpyAsync(d_driver, &driver, sizeof(DriverType), + hipMemcpyHostToDevice, + hip_instance->m_stream)); + hip_parallel_launch_local_memory<DriverType, 1024, 1> + <<<grid, block, shmem, hip_instance->m_stream>>>(d_driver); + #if defined(KOKKOS_ENABLE_DEBUG_BOUNDS_CHECK) HIP_SAFE_CALL(hipGetLastError()); - Kokkos::Experimental::HIP().fence(); + hip_instance->fence(); #endif + HIP_SAFE_CALL(hipFree(d_driver)); } } static hipFuncAttributes get_hip_func_attributes() { - hipFuncAttributes attr; - hipFuncGetAttributes(&attr, - reinterpret_cast<void *>( - &hip_parallel_launch_local_memory<DriverType>)); + static hipFuncAttributes attr = []() { + hipFuncAttributes attr; + HIP_SAFE_CALL(hipFuncGetAttributes( + &attr, reinterpret_cast<void const *>( + hip_parallel_launch_local_memory<DriverType, 1024, 1>))); + return attr; + }(); return attr; } }; diff --git a/packages/kokkos/core/src/HIP/Kokkos_HIP_Locks.cpp b/packages/kokkos/core/src/HIP/Kokkos_HIP_Locks.cpp index 0a34ed505..4f5271b6f 100644 --- a/packages/kokkos/core/src/HIP/Kokkos_HIP_Locks.cpp +++ b/packages/kokkos/core/src/HIP/Kokkos_HIP_Locks.cpp @@ -52,26 +52,28 @@ #include <iostream> +namespace Kokkos { + #ifdef KOKKOS_ENABLE_HIP_RELOCATABLE_DEVICE_CODE +namespace Impl { __device__ __constant__ HIPLockArrays g_device_hip_lock_arrays = {nullptr, nullptr, 0}; +} #endif -namespace Kokkos { - namespace { __global__ void init_lock_array_kernel_atomic() { - unsigned i = hipBlockIdx_x * hipBlockDim_x + hipThreadIdx_x; + unsigned i = blockIdx.x * blockDim.x + threadIdx.x; if (i < KOKKOS_IMPL_HIP_SPACE_ATOMIC_MASK + 1) { - g_device_hip_lock_arrays.atomic[i] = 0; + Kokkos::Impl::g_device_hip_lock_arrays.atomic[i] = 0; } } __global__ void init_lock_array_kernel_threadid(int N) { - unsigned i = hipBlockIdx_x * hipBlockDim_x + hipThreadIdx_x; + unsigned i = blockIdx.x * blockDim.x + threadIdx.x; if (i < static_cast<unsigned>(N)) { - g_device_hip_lock_arrays.scratch[i] = 0; + Kokkos::Impl::g_device_hip_lock_arrays.scratch[i] = 0; } } @@ -93,19 +95,18 @@ void initialize_host_hip_lock_arrays() { g_host_hip_lock_arrays.n = ::Kokkos::Experimental::HIP::concurrency(); KOKKOS_COPY_HIP_LOCK_ARRAYS_TO_DEVICE(); - hipLaunchKernelGGL(init_lock_array_kernel_atomic, - (KOKKOS_IMPL_HIP_SPACE_ATOMIC_MASK + 1 + 255) / 256, 256, - 0, 0); - hipLaunchKernelGGL(init_lock_array_kernel_threadid, - (::Kokkos::Experimental::HIP::concurrency() + 255) / 256, - 256, 0, 0, ::Kokkos::Experimental::HIP::concurrency()); + init_lock_array_kernel_atomic<<< + (KOKKOS_IMPL_HIP_SPACE_ATOMIC_MASK + 1 + 255) / 256, 256, 0, nullptr>>>(); + init_lock_array_kernel_threadid<<< + (::Kokkos::Experimental::HIP::concurrency() + 255) / 256, 256, 0, + nullptr>>>(::Kokkos::Experimental::HIP::concurrency()); } void finalize_host_hip_lock_arrays() { if (g_host_hip_lock_arrays.atomic == nullptr) return; - hipFree(g_host_hip_lock_arrays.atomic); + HIP_SAFE_CALL(hipFree(g_host_hip_lock_arrays.atomic)); g_host_hip_lock_arrays.atomic = nullptr; - hipFree(g_host_hip_lock_arrays.scratch); + HIP_SAFE_CALL(hipFree(g_host_hip_lock_arrays.scratch)); g_host_hip_lock_arrays.scratch = nullptr; g_host_hip_lock_arrays.n = 0; #ifdef KOKKOS_ENABLE_HIP_RELOCATABLE_DEVICE_CODE diff --git a/packages/kokkos/core/src/HIP/Kokkos_HIP_Locks.hpp b/packages/kokkos/core/src/HIP/Kokkos_HIP_Locks.hpp index fb6728ea1..f34f85f43 100644 --- a/packages/kokkos/core/src/HIP/Kokkos_HIP_Locks.hpp +++ b/packages/kokkos/core/src/HIP/Kokkos_HIP_Locks.hpp @@ -51,7 +51,8 @@ #include <HIP/Kokkos_HIP_Error.hpp> -// FIXME_HIP We cannot use global variables defined in a namespace +namespace Kokkos { +namespace Impl { struct HIPLockArrays { std::int32_t* atomic; @@ -63,9 +64,6 @@ struct HIPLockArrays { /// of these arrays. extern HIPLockArrays g_host_hip_lock_arrays; -namespace Kokkos { -namespace Impl { - /// \brief After this call, the g_host_hip_lock_arrays variable has /// valid, initialized arrays. /// @@ -78,9 +76,6 @@ void initialize_host_hip_lock_arrays(); /// This call is idempotent. void finalize_host_hip_lock_arrays(); -} // namespace Impl -} // namespace Kokkos - #if defined(__HIPCC__) /// \brief This global variable in HIP space is what kernels use @@ -108,9 +103,6 @@ __device__ #define KOKKOS_IMPL_HIP_SPACE_ATOMIC_MASK 0x1FFFF -namespace Kokkos { -namespace Impl { - /// \brief Acquire a lock for the address /// /// This function tries to acquire the lock for the hash value derived @@ -152,14 +144,15 @@ inline int eliminate_warning_for_lock_array() { return lock_array_copied; } /* Dan Ibanez: it is critical that this code be a macro, so that it will capture the right address for g_device_hip_lock_arrays! putting this in an inline function will NOT do the right thing! */ -#define KOKKOS_COPY_HIP_LOCK_ARRAYS_TO_DEVICE() \ - { \ - if (::Kokkos::Impl::lock_array_copied == 0) { \ - HIP_SAFE_CALL(hipMemcpyToSymbol(HIP_SYMBOL(g_device_hip_lock_arrays), \ - &g_host_hip_lock_arrays, \ - sizeof(HIPLockArrays))); \ - } \ - lock_array_copied = 1; \ +#define KOKKOS_COPY_HIP_LOCK_ARRAYS_TO_DEVICE() \ + { \ + if (::Kokkos::Impl::lock_array_copied == 0) { \ + HIP_SAFE_CALL(hipMemcpyToSymbol( \ + HIP_SYMBOL(::Kokkos::Impl::g_device_hip_lock_arrays), \ + &::Kokkos::Impl::g_host_hip_lock_arrays, \ + sizeof(::Kokkos::Impl::HIPLockArrays))); \ + } \ + ::Kokkos::Impl::lock_array_copied = 1; \ } #ifdef KOKKOS_ENABLE_HIP_RELOCATABLE_DEVICE_CODE diff --git a/packages/kokkos/core/src/HIP/Kokkos_HIP_Parallel_MDRange.hpp b/packages/kokkos/core/src/HIP/Kokkos_HIP_Parallel_MDRange.hpp index 7a6161346..6b831ff7a 100644 --- a/packages/kokkos/core/src/HIP/Kokkos_HIP_Parallel_MDRange.hpp +++ b/packages/kokkos/core/src/HIP/Kokkos_HIP_Parallel_MDRange.hpp @@ -113,14 +113,14 @@ class ParallelFor<FunctorType, Kokkos::MDRangePolicy<Traits...>, *this, grid, block, 0, m_policy.space().impl_internal_space_instance(), false); } else if (Policy::rank == 4) { - // id0,id1 encoded within hipThreadIdx_x; id2 to hipThreadIdx_y; id3 to - // hipThreadIdx_z + // id0,id1 encoded within threadIdx.x; id2 to threadIdx.y; id3 to + // threadIdx.z dim3 const block(m_policy.m_tile[0] * m_policy.m_tile[1], m_policy.m_tile[2], m_policy.m_tile[3]); dim3 const grid( - std::min(static_cast<index_type>(m_policy.m_tile_end[0] * - m_policy.m_tile_end[1]), - static_cast<index_type>(maxblocks)), + std::min(static_cast<uint32_t>(m_policy.m_tile_end[0] * + m_policy.m_tile_end[1]), + static_cast<uint32_t>(maxblocks)), std::min((m_policy.m_upper[2] - m_policy.m_lower[2] + block.y - 1) / block.y, maxblocks), @@ -131,8 +131,8 @@ class ParallelFor<FunctorType, Kokkos::MDRangePolicy<Traits...>, *this, grid, block, 0, m_policy.space().impl_internal_space_instance(), false); } else if (Policy::rank == 5) { - // id0,id1 encoded within hipThreadIdx_x; id2,id3 to hipThreadIdx_y; id4 - // to hipThreadIdx_z + // id0,id1 encoded within threadIdx.x; id2,id3 to threadIdx.y; id4 + // to threadIdx.z dim3 const block(m_policy.m_tile[0] * m_policy.m_tile[1], m_policy.m_tile[2] * m_policy.m_tile[3], m_policy.m_tile[4]); @@ -150,8 +150,8 @@ class ParallelFor<FunctorType, Kokkos::MDRangePolicy<Traits...>, *this, grid, block, 0, m_policy.space().impl_internal_space_instance(), false); } else if (Policy::rank == 6) { - // id0,id1 encoded within hipThreadIdx_x; id2,id3 to hipThreadIdx_y; - // id4,id5 to hipThreadIdx_z + // id0,id1 encoded within threadIdx.x; id2,id3 to threadIdx.y; + // id4,id5 to threadIdx.z dim3 const block(m_policy.m_tile[0] * m_policy.m_tile[1], m_policy.m_tile[2] * m_policy.m_tile[3], m_policy.m_tile[4] * m_policy.m_tile[5]); @@ -168,8 +168,7 @@ class ParallelFor<FunctorType, Kokkos::MDRangePolicy<Traits...>, *this, grid, block, 0, m_policy.space().impl_internal_space_instance(), false); } else { - printf("Kokkos::MDRange Error: Exceeded rank bounds with HIP\n"); - Kokkos::abort("Aborting"); + Kokkos::abort("Kokkos::MDRange Error: Exceeded rank bounds with HIP\n"); } } // end execute @@ -213,8 +212,8 @@ class ParallelReduce<FunctorType, Kokkos::MDRangePolicy<Traits...>, ReducerType, using functor_type = FunctorType; using size_type = Experimental::HIP::size_type; - // Algorithmic constraints: blockSize is a power of two AND hipBlockDim_y == - // hipBlockDim_z == 1 + // Algorithmic constraints: blockSize is a power of two AND blockDim.y == + // blockDim.z == 1 const FunctorType m_functor; const Policy m_policy; // used for workrange and nwork @@ -227,17 +226,6 @@ class ParallelReduce<FunctorType, Kokkos::MDRangePolicy<Traits...>, ReducerType, using DeviceIteratePattern = typename Kokkos::Impl::Reduce::DeviceIterateTile< Policy::rank, Policy, FunctorType, WorkTag, reference_type>; - // Shall we use the shfl based reduction or not (only use it for static sized - // types of more than 128bit - enum { - UseShflReduction = ((sizeof(value_type) > 2 * sizeof(double)) && - (ValueTraits::StaticValueSize != 0)) - }; - // Some crutch to do function overloading - private: - using DummyShflReductionType = double; - using DummySHMEMReductionType = int; - public: inline __device__ void exec_range(reference_type update) const { DeviceIteratePattern(m_policy, m_functor, update).exec_range(); @@ -254,7 +242,7 @@ class ParallelReduce<FunctorType, Kokkos::MDRangePolicy<Traits...>, ReducerType, reference_type value = ValueInit::init( ReducerConditional::select(m_functor, m_reducer), Experimental::kokkos_impl_hip_shared_memory<size_type>() + - hipThreadIdx_y * word_count.value); + threadIdx.y * word_count.value); // Number of blocks is bounded so that the reduction can be limited to two // passes. Each thread block is given an approximately equal amount of @@ -265,24 +253,23 @@ class ParallelReduce<FunctorType, Kokkos::MDRangePolicy<Traits...>, ReducerType, this->exec_range(value); } - // Reduce with final value at hipBlockDim_y - 1 location. + // Reduce with final value at blockDim.y - 1 location. // Problem: non power-of-two blockDim if (::Kokkos::Impl::hip_single_inter_block_reduce_scan< false, ReducerTypeFwd, WorkTagFwd>( - ReducerConditional::select(m_functor, m_reducer), hipBlockIdx_x, - hipGridDim_x, - Experimental::kokkos_impl_hip_shared_memory<size_type>(), + ReducerConditional::select(m_functor, m_reducer), blockIdx.x, + gridDim.x, Experimental::kokkos_impl_hip_shared_memory<size_type>(), m_scratch_space, m_scratch_flags)) { // This is the final block with the final result at the final threads' // location size_type* const shared = Experimental::kokkos_impl_hip_shared_memory<size_type>() + - (hipBlockDim_y - 1) * word_count.value; + (blockDim.y - 1) * word_count.value; size_type* const global = m_result_ptr_device_accessible ? reinterpret_cast<size_type*>(m_result_ptr) : m_scratch_space; - if (hipThreadIdx_y == 0) { + if (threadIdx.y == 0) { Kokkos::Impl::FunctorFinal<ReducerTypeFwd, WorkTagFwd>::final( ReducerConditional::select(m_functor, m_reducer), shared); } @@ -291,8 +278,7 @@ class ParallelReduce<FunctorType, Kokkos::MDRangePolicy<Traits...>, ReducerType, __syncthreads(); } - for (unsigned i = hipThreadIdx_y; i < word_count.value; - i += hipBlockDim_y) { + for (unsigned i = threadIdx.y; i < word_count.value; i += blockDim.y) { global[i] = shared[i]; } } @@ -301,7 +287,8 @@ class ParallelReduce<FunctorType, Kokkos::MDRangePolicy<Traits...>, ReducerType, // Determine block size constrained by shared memory: // This is copy/paste from Kokkos_HIP_Parallel_Range inline unsigned local_block_size(const FunctorType& f) { - unsigned n = Experimental::Impl::HIPTraits::WarpSize * 8; + unsigned int n = + ::Kokkos::Experimental::Impl::HIPTraits::MaxThreadsPerBlock; int shmem_size = ::Kokkos::Impl::hip_single_inter_block_reduce_scan_shmem< false, FunctorType, WorkTag>(f, n); while ( @@ -345,13 +332,13 @@ class ParallelReduce<FunctorType, Kokkos::MDRangePolicy<Traits...>, ReducerType, // REQUIRED ( 1 , N , 1 ) const dim3 block(1, block_size, 1); // Required grid.x <= block.y - const dim3 grid(std::min(int(block.y), int(nwork)), 1, 1); + const dim3 grid(std::min(static_cast<uint32_t>(block.y), + static_cast<uint32_t>(nwork)), + 1, 1); const int shmem = - UseShflReduction - ? 0 - : ::Kokkos::Impl::hip_single_inter_block_reduce_scan_shmem< - false, FunctorType, WorkTag>(m_functor, block.y); + ::Kokkos::Impl::hip_single_inter_block_reduce_scan_shmem< + false, FunctorType, WorkTag>(m_functor, block.y); Kokkos::Experimental::Impl::HIPParallelLaunch<ParallelReduce, LaunchBounds>( @@ -360,7 +347,7 @@ class ParallelReduce<FunctorType, Kokkos::MDRangePolicy<Traits...>, ReducerType, false); // copy to device and execute if (!m_result_ptr_device_accessible) { - Experimental::HIP().fence(); + m_policy.space().fence(); if (m_result_ptr) { const int size = ValueTraits::value_size( @@ -381,7 +368,7 @@ class ParallelReduce<FunctorType, Kokkos::MDRangePolicy<Traits...>, ReducerType, ParallelReduce(const FunctorType& arg_functor, const Policy& arg_policy, const ViewType& arg_result, typename std::enable_if<Kokkos::is_view<ViewType>::value, - void*>::type = NULL) + void*>::type = nullptr) : m_functor(arg_functor), m_policy(arg_policy), m_reducer(InvalidType()), @@ -389,8 +376,8 @@ class ParallelReduce<FunctorType, Kokkos::MDRangePolicy<Traits...>, ReducerType, m_result_ptr_device_accessible( MemorySpaceAccess<Kokkos::Experimental::HIPSpace, typename ViewType::memory_space>::accessible), - m_scratch_space(0), - m_scratch_flags(0) {} + m_scratch_space(nullptr), + m_scratch_flags(nullptr) {} ParallelReduce(const FunctorType& arg_functor, const Policy& arg_policy, const ReducerType& reducer) @@ -402,8 +389,8 @@ class ParallelReduce<FunctorType, Kokkos::MDRangePolicy<Traits...>, ReducerType, MemorySpaceAccess<Kokkos::Experimental::HIPSpace, typename ReducerType::result_view_type:: memory_space>::accessible), - m_scratch_space(0), - m_scratch_flags(0) {} + m_scratch_space(nullptr), + m_scratch_flags(nullptr) {} }; } // namespace Impl } // namespace Kokkos diff --git a/packages/kokkos/core/src/HIP/Kokkos_HIP_Parallel_Range.hpp b/packages/kokkos/core/src/HIP/Kokkos_HIP_Parallel_Range.hpp index a9c44606e..5607f1c91 100644 --- a/packages/kokkos/core/src/HIP/Kokkos_HIP_Parallel_Range.hpp +++ b/packages/kokkos/core/src/HIP/Kokkos_HIP_Parallel_Range.hpp @@ -52,6 +52,8 @@ #include <HIP/Kokkos_HIP_BlockSize_Deduction.hpp> #include <HIP/Kokkos_HIP_KernelLaunch.hpp> #include <HIP/Kokkos_HIP_ReduceScan.hpp> +#include <HIP/Kokkos_HIP_Shuffle_Reduce.hpp> +#include <impl/Kokkos_Traits.hpp> namespace Kokkos { namespace Impl { @@ -91,11 +93,11 @@ class ParallelFor<FunctorType, Kokkos::RangePolicy<Traits...>, using functor_type = FunctorType; inline __device__ void operator()(void) const { - const Member work_stride = hipBlockDim_y * hipGridDim_x; + const Member work_stride = blockDim.y * gridDim.x; const Member work_end = m_policy.end(); for (Member iwork = - m_policy.begin() + hipThreadIdx_y + hipBlockDim_y * hipBlockIdx_x; + m_policy.begin() + threadIdx.y + blockDim.y * blockIdx.x; iwork < work_end; iwork = iwork < work_end - work_stride ? iwork + work_stride : work_end) { @@ -106,7 +108,11 @@ class ParallelFor<FunctorType, Kokkos::RangePolicy<Traits...>, inline void execute() const { const typename Policy::index_type nwork = m_policy.end() - m_policy.begin(); - const int block_size = 256; // FIXME_HIP Choose block_size better + const int block_size = + LaunchBounds::maxTperB + ? LaunchBounds::maxTperB + : ::Kokkos::Experimental::Impl::HIPTraits:: + MaxThreadsPerBlock; // FIXME_HIP Choose block_size better const dim3 block(1, block_size, 1); const dim3 grid( typename Policy::index_type((nwork + block.y - 1) / block.y), 1, 1); @@ -156,29 +162,28 @@ class ParallelReduce<FunctorType, Kokkos::RangePolicy<Traits...>, ReducerType, using size_type = Kokkos::Experimental::HIP::size_type; using index_type = typename Policy::index_type; - // Algorithmic constraints: blockSize is a power of two AND hipBlockDim_y == - // hipBlockDim_z == 1 + // Algorithmic constraints: blockSize is a power of two AND blockDim.y == + // blockDim.z == 1 const FunctorType m_functor; const Policy m_policy; const ReducerType m_reducer; const pointer_type m_result_ptr; const bool m_result_ptr_device_accessible; + const bool m_result_ptr_host_accessible; size_type* m_scratch_space = nullptr; size_type* m_scratch_flags = nullptr; - // Shall we use the shfl based reduction or not (only use it for static sized - // types of more than 128bit) - enum { - UseShflReduction = false - }; //((sizeof(value_type)>2*sizeof(double)) && ValueTraits::StaticValueSize) - //}; - // Some crutch to do function overloading + // FIXME_HIP_PERFORMANCE Need a rule to choose when to use shared memory and + // when to use shuffle + static bool constexpr UseShflReduction = + ((sizeof(value_type) > 2 * sizeof(double)) && + static_cast<bool>(ValueTraits::StaticValueSize)); + private: - using DummyShflReductionType = double; - using DummySHMEMReductionType = int; + struct ShflReductionTag {}; + struct SHMEMReductionTag {}; - public: // Make the exec_range calls call to Reduce::DeviceIterateTile template <class TagType> __device__ inline @@ -194,7 +199,15 @@ class ParallelReduce<FunctorType, Kokkos::RangePolicy<Traits...>, ReducerType, m_functor(TagType(), i, update); } + public: __device__ inline void operator()() const { + using ReductionTag = + typename std::conditional<UseShflReduction, ShflReductionTag, + SHMEMReductionTag>::type; + run(ReductionTag{}); + } + + __device__ inline void run(SHMEMReductionTag) const { const integral_nonzero_constant<size_type, ValueTraits::StaticValueSize / sizeof(size_type)> word_count(ValueTraits::value_size( @@ -205,7 +218,7 @@ class ParallelReduce<FunctorType, Kokkos::RangePolicy<Traits...>, ReducerType, reference_type value = ValueInit::init( ReducerConditional::select(m_functor, m_reducer), ::Kokkos::Experimental::kokkos_impl_hip_shared_memory<size_type>() + - hipThreadIdx_y * word_count.value); + threadIdx.y * word_count.value); // Number of blocks is bounded so that the reduction can be limited to two // passes. Each thread block is given an approximately equal amount of @@ -213,32 +226,36 @@ class ParallelReduce<FunctorType, Kokkos::RangePolicy<Traits...>, ReducerType, // ordering does not match the final pass, but is arithmetically // equivalent. - const WorkRange range(m_policy, hipBlockIdx_x, hipGridDim_x); + const WorkRange range(m_policy, blockIdx.x, gridDim.x); - for (Member iwork = range.begin() + hipThreadIdx_y, - iwork_end = range.end(); - iwork < iwork_end; iwork += hipBlockDim_y) { + for (Member iwork = range.begin() + threadIdx.y, iwork_end = range.end(); + iwork < iwork_end; iwork += blockDim.y) { this->template exec_range<WorkTag>(iwork, value); } } - // Reduce with final value at hipBlockDim_y - 1 location. - if (hip_single_inter_block_reduce_scan<false, ReducerTypeFwd, WorkTagFwd>( - ReducerConditional::select(m_functor, m_reducer), hipBlockIdx_x, - hipGridDim_x, - ::Kokkos::Experimental::kokkos_impl_hip_shared_memory<size_type>(), - m_scratch_space, m_scratch_flags)) { + // Reduce with final value at blockDim.y - 1 location. + // Shortcut for length zero reduction + bool do_final_reduction = m_policy.begin() == m_policy.end(); + if (!do_final_reduction) + do_final_reduction = hip_single_inter_block_reduce_scan< + false, ReducerTypeFwd, WorkTagFwd>( + ReducerConditional::select(m_functor, m_reducer), blockIdx.x, + gridDim.x, + ::Kokkos::Experimental::kokkos_impl_hip_shared_memory<size_type>(), + m_scratch_space, m_scratch_flags); + if (do_final_reduction) { // This is the final block with the final result at the final threads' // location size_type* const shared = ::Kokkos::Experimental::kokkos_impl_hip_shared_memory<size_type>() + - (hipBlockDim_y - 1) * word_count.value; + (blockDim.y - 1) * word_count.value; size_type* const global = m_result_ptr_device_accessible ? reinterpret_cast<size_type*>(m_result_ptr) : m_scratch_space; - if (hipThreadIdx_y == 0) { + if (threadIdx.y == 0) { Kokkos::Impl::FunctorFinal<ReducerTypeFwd, WorkTagFwd>::final( ReducerConditional::select(m_functor, m_reducer), shared); } @@ -248,17 +265,68 @@ class ParallelReduce<FunctorType, Kokkos::RangePolicy<Traits...>, ReducerType, __syncthreads(); } - for (unsigned i = hipThreadIdx_y; i < word_count.value; - i += hipBlockDim_y) { + for (unsigned i = threadIdx.y; i < word_count.value; i += blockDim.y) { global[i] = shared[i]; } } } + __device__ inline void run(ShflReductionTag) const { + value_type value; + ValueInit::init(ReducerConditional::select(m_functor, m_reducer), &value); + // Number of blocks is bounded so that the reduction can be limited to two + // passes. Each thread block is given an approximately equal amount of work + // to perform. Accumulate the values for this block. The accumulation + // ordering does not match the final pass, but is arithmetically equivalent. + + WorkRange const range(m_policy, blockIdx.x, gridDim.x); + + for (Member iwork = range.begin() + threadIdx.y, iwork_end = range.end(); + iwork < iwork_end; iwork += blockDim.y) { + this->template exec_range<WorkTag>(iwork, value); + } + + pointer_type const result = reinterpret_cast<pointer_type>(m_scratch_space); + + int max_active_thread = static_cast<int>(range.end() - range.begin()) < + static_cast<int>(blockDim.y) + ? range.end() - range.begin() + : blockDim.y; + + max_active_thread = + (max_active_thread == 0) ? blockDim.y : max_active_thread; + + value_type init; + ValueInit::init(ReducerConditional::select(m_functor, m_reducer), &init); + if (m_policy.begin() == m_policy.end()) { + Kokkos::Impl::FunctorFinal<ReducerTypeFwd, WorkTagFwd>::final( + ReducerConditional::select(m_functor, m_reducer), + reinterpret_cast<void*>(&value)); + pointer_type const final_result = + m_result_ptr_device_accessible ? m_result_ptr : result; + *final_result = value; + } else if (Impl::hip_inter_block_shuffle_reduction<ReducerTypeFwd, + ValueJoin, WorkTagFwd>( + value, init, + ValueJoin(ReducerConditional::select(m_functor, m_reducer)), + m_scratch_space, result, m_scratch_flags, + max_active_thread)) { + unsigned int const id = threadIdx.y * blockDim.x + threadIdx.x; + if (id == 0) { + Kokkos::Impl::FunctorFinal<ReducerTypeFwd, WorkTagFwd>::final( + ReducerConditional::select(m_functor, m_reducer), + reinterpret_cast<void*>(&value)); + pointer_type const final_result = + m_result_ptr_device_accessible ? m_result_ptr : result; + *final_result = value; + } + } + } + // Determine block size constrained by shared memory: inline unsigned local_block_size(const FunctorType& f) { - // FIXME_HIP I don't know where 8 comes from - unsigned int n = ::Kokkos::Experimental::Impl::HIPTraits::WarpSize * 8; + unsigned int n = + ::Kokkos::Experimental::Impl::HIPTraits::MaxThreadsPerBlock; int shmem_size = hip_single_inter_block_reduce_scan_shmem<false, FunctorType, WorkTag>( f, n); @@ -278,9 +346,14 @@ class ParallelReduce<FunctorType, Kokkos::RangePolicy<Traits...>, ReducerType, } inline void execute() { - const index_type nwork = m_policy.end() - m_policy.begin(); - if (nwork) { + const index_type nwork = m_policy.end() - m_policy.begin(); + const bool need_device_set = ReduceFunctorHasInit<FunctorType>::value || + ReduceFunctorHasFinal<FunctorType>::value || + !m_result_ptr_host_accessible || + !std::is_same<ReducerType, InvalidType>::value; + if ((nwork > 0) || need_device_set) { const int block_size = local_block_size(m_functor); + KOKKOS_ASSERT(block_size > 0); m_scratch_space = ::Kokkos::Experimental::Impl::hip_internal_scratch_space( @@ -292,11 +365,16 @@ class ParallelReduce<FunctorType, Kokkos::RangePolicy<Traits...>, ReducerType, sizeof(size_type)); // REQUIRED ( 1 , N , 1 ) - const dim3 block(1, block_size, 1); + dim3 block(1, block_size, 1); // Required grid.x <= block.y - const dim3 grid( - std::min(int(block.y), int((nwork + block.y - 1) / block.y)), 1, 1); + dim3 grid(std::min(block.y, static_cast<uint32_t>((nwork + block.y - 1) / + block.y)), + 1, 1); + if (nwork == 0) { + block = dim3(1, 1, 1); + grid = dim3(1, 1, 1); + } const int shmem = UseShflReduction ? 0 @@ -311,7 +389,7 @@ class ParallelReduce<FunctorType, Kokkos::RangePolicy<Traits...>, ReducerType, false); // copy to device and execute if (!m_result_ptr_device_accessible) { - ::Kokkos::Experimental::HIP().fence(); + m_policy.space().impl_internal_space_instance()->fence(); if (m_result_ptr) { const int size = ValueTraits::value_size( @@ -332,13 +410,16 @@ class ParallelReduce<FunctorType, Kokkos::RangePolicy<Traits...>, ReducerType, ParallelReduce(const FunctorType& arg_functor, const Policy& arg_policy, const ViewType& arg_result, typename std::enable_if<Kokkos::is_view<ViewType>::value, - void*>::type = NULL) + void*>::type = nullptr) : m_functor(arg_functor), m_policy(arg_policy), m_reducer(InvalidType()), m_result_ptr(arg_result.data()), m_result_ptr_device_accessible( MemorySpaceAccess<Kokkos::Experimental::HIPSpace, + typename ViewType::memory_space>::accessible), + m_result_ptr_host_accessible( + MemorySpaceAccess<Kokkos::HostSpace, typename ViewType::memory_space>::accessible) {} ParallelReduce(const FunctorType& arg_functor, const Policy& arg_policy, @@ -349,6 +430,10 @@ class ParallelReduce<FunctorType, Kokkos::RangePolicy<Traits...>, ReducerType, m_result_ptr(reducer.view().data()), m_result_ptr_device_accessible( MemorySpaceAccess<Kokkos::Experimental::HIPSpace, + typename ReducerType::result_view_type:: + memory_space>::accessible), + m_result_ptr_host_accessible( + MemorySpaceAccess<Kokkos::HostSpace, typename ReducerType::result_view_type:: memory_space>::accessible) {} }; @@ -377,10 +462,10 @@ class ParallelScanHIPBase { protected: // Algorithmic constraints: - // (a) hipBlockDim_y is a power of two - // (b) hipBlockDim_x == hipBlockDim_z == 1 - // (c) hipGridDim_x <= hipBlockDim_y * hipBlockDim_y - // (d) hipGridDim_y == hipGridDim_z == 1 + // (a) blockDim.y is a power of two + // (b) blockDim.x == blockDim.z == 1 + // (c) gridDim.x <= blockDim.y * blockDim.y + // (d) gridDim.y == gridDim.z == 1 const FunctorType m_functor; const Policy m_policy; @@ -415,7 +500,7 @@ class ParallelScanHIPBase { size_type* const shared_value = Kokkos::Experimental::kokkos_impl_hip_shared_memory<size_type>() + - word_count.value * hipThreadIdx_y; + word_count.value * threadIdx.y; ValueInit::init(m_functor, shared_value); @@ -424,20 +509,20 @@ class ParallelScanHIPBase { // to perform. Accumulate the values for this block. The accumulation // ordering does not match the final pass, but is arithmetically equivalent. - const WorkRange range(m_policy, hipBlockIdx_x, hipGridDim_x); + const WorkRange range(m_policy, blockIdx.x, gridDim.x); - for (Member iwork = range.begin() + hipThreadIdx_y, iwork_end = range.end(); - iwork < iwork_end; iwork += hipBlockDim_y) { + for (Member iwork = range.begin() + threadIdx.y, iwork_end = range.end(); + iwork < iwork_end; iwork += blockDim.y) { this->template exec_range<WorkTag>( iwork, ValueOps::reference(shared_value), false); } // Reduce and scan, writing out scan of blocks' totals and block-groups' - // totals. Blocks' scan values are written to 'hipBlockIdx_x' location. - // Block-groups' scan values are at: i = ( j * hipBlockDim_y - 1 ) for i < - // hipGridDim_x + // totals. Blocks' scan values are written to 'blockIdx.x' location. + // Block-groups' scan values are at: i = ( j * blockDim.y - 1 ) for i < + // gridDim.x hip_single_inter_block_reduce_scan<true, FunctorType, WorkTag>( - m_functor, hipBlockIdx_x, hipGridDim_x, + m_functor, blockIdx.x, gridDim.x, Kokkos::Experimental::kokkos_impl_hip_shared_memory<size_type>(), m_scratch_space, m_scratch_flags); } @@ -454,26 +539,26 @@ class ParallelScanHIPBase { size_type* const shared_data = Kokkos::Experimental::kokkos_impl_hip_shared_memory<size_type>(); size_type* const shared_prefix = - shared_data + word_count.value * hipThreadIdx_y; + shared_data + word_count.value * threadIdx.y; size_type* const shared_accum = - shared_data + word_count.value * (hipBlockDim_y + 1); + shared_data + word_count.value * (blockDim.y + 1); // Starting value for this thread block is the previous block's total. - if (hipBlockIdx_x) { + if (blockIdx.x) { size_type* const block_total = - m_scratch_space + word_count.value * (hipBlockIdx_x - 1); - for (unsigned i = hipThreadIdx_y; i < word_count.value; ++i) { + m_scratch_space + word_count.value * (blockIdx.x - 1); + for (unsigned i = threadIdx.y; i < word_count.value; ++i) { shared_accum[i] = block_total[i]; } - } else if (0 == hipThreadIdx_y) { + } else if (0 == threadIdx.y) { ValueInit::init(m_functor, shared_accum); } - const WorkRange range(m_policy, hipBlockIdx_x, hipGridDim_x); + const WorkRange range(m_policy, blockIdx.x, gridDim.x); for (typename Policy::member_type iwork_base = range.begin(); - iwork_base < range.end(); iwork_base += hipBlockDim_y) { - const typename Policy::member_type iwork = iwork_base + hipThreadIdx_y; + iwork_base < range.end(); iwork_base += blockDim.y) { + const typename Policy::member_type iwork = iwork_base + threadIdx.y; __syncthreads(); // Don't overwrite previous iteration values until they // are used @@ -482,7 +567,7 @@ class ParallelScanHIPBase { // Copy previous block's accumulation total into thread[0] prefix and // inclusive scan value of this block - for (unsigned i = hipThreadIdx_y; i < word_count.value; ++i) { + for (unsigned i = threadIdx.y; i < word_count.value; ++i) { shared_data[i + word_count.value] = shared_data[i] = shared_accum[i]; } @@ -497,15 +582,15 @@ class ParallelScanHIPBase { false); } - // Scan block values into locations shared_data[1..hipBlockDim_y] + // Scan block values into locations shared_data[1..blockDim.y] hip_intra_block_reduce_scan<true, FunctorType, WorkTag>( m_functor, typename ValueTraits::pointer_type(shared_data + word_count.value)); { size_type* const block_total = - shared_data + word_count.value * hipBlockDim_y; - for (unsigned i = hipThreadIdx_y; i < word_count.value; ++i) { + shared_data + word_count.value * blockDim.y; + for (unsigned i = threadIdx.y; i < word_count.value; ++i) { shared_accum[i] = block_total[i]; } } @@ -531,8 +616,8 @@ class ParallelScanHIPBase { // Determine block size constrained by shared memory: inline unsigned local_block_size(const FunctorType& f) { - // hipBlockDim_y must be power of two = 128 (2 warps) or 256 (4 warps) or - // 512 (8 warps) hipGridDim_x <= hipBlockDim_y * hipBlockDim_y + // blockDim.y must be power of two = 128 (2 warps) or 256 (4 warps) or + // 512 (8 warps) gridDim.x <= blockDim.y * blockDim.y // // TODO check best option @@ -554,10 +639,8 @@ class ParallelScanHIPBase { // correctly, the unit tests fail with wrong results const int gridMaxComputeCapability_2x = 0x01fff; - // FIXME_HIP block sizes greater than 256 don't work correctly, - // the unit tests fail with wrong results - const int block_size = - std::min(static_cast<int>(local_block_size(m_functor)), 256); + const int block_size = static_cast<int>(local_block_size(m_functor)); + KOKKOS_ASSERT(block_size > 0); const int grid_max = std::min(block_size * block_size, gridMaxComputeCapability_2x); diff --git a/packages/kokkos/core/src/HIP/Kokkos_HIP_Parallel_Team.hpp b/packages/kokkos/core/src/HIP/Kokkos_HIP_Parallel_Team.hpp index 53097f364..5da83d289 100644 --- a/packages/kokkos/core/src/HIP/Kokkos_HIP_Parallel_Team.hpp +++ b/packages/kokkos/core/src/HIP/Kokkos_HIP_Parallel_Team.hpp @@ -77,6 +77,8 @@ class TeamPolicyInternal<Kokkos::Experimental::HIP, Properties...> int m_team_scratch_size[2]; int m_thread_scratch_size[2]; int m_chunk_size; + bool m_tune_team_size; + bool m_tune_vector_length; public: using execution_space = Kokkos::Experimental::HIP; @@ -92,19 +94,8 @@ class TeamPolicyInternal<Kokkos::Experimental::HIP, Properties...> m_thread_scratch_size[1] = p.m_thread_scratch_size[1]; m_chunk_size = p.m_chunk_size; m_space = p.m_space; - } - - TeamPolicyInternal& operator=(TeamPolicyInternal const& p) { - m_league_size = p.m_league_size; - m_team_size = p.m_team_size; - m_vector_length = p.m_vector_length; - m_team_scratch_size[0] = p.m_team_scratch_size[0]; - m_team_scratch_size[1] = p.m_team_scratch_size[1]; - m_thread_scratch_size[0] = p.m_thread_scratch_size[0]; - m_thread_scratch_size[1] = p.m_thread_scratch_size[1]; - m_chunk_size = p.m_chunk_size; - m_space = p.m_space; - return *this; + m_tune_team_size = p.m_tune_team_size; + m_tune_vector_length = p.m_tune_vector_length; } template <typename FunctorType> @@ -117,28 +108,77 @@ class TeamPolicyInternal<Kokkos::Experimental::HIP, Properties...> int const block_size = ::Kokkos::Experimental::Impl::hip_get_max_block_size< FunctorType, typename traits::launch_bounds>( space().impl_internal_space_instance(), attr, f, - static_cast<size_t>(vector_length()), + static_cast<size_t>(impl_vector_length()), static_cast<size_t>(team_scratch_size(0)) + 2 * sizeof(double), static_cast<size_t>(thread_scratch_size(0)) + sizeof(double)); - return block_size / vector_length(); + return block_size / impl_vector_length(); + } + + template <class FunctorType> + inline int team_size_max(const FunctorType& f, + const ParallelReduceTag&) const { + using functor_analysis_type = + Impl::FunctorAnalysis<Impl::FunctorPatternInterface::REDUCE, + TeamPolicyInternal, FunctorType>; + using reducer_type = typename Impl::ParallelReduceReturnValue< + void, typename functor_analysis_type::value_type, + FunctorType>::reducer_type; + using closure_type = + Impl::ParallelReduce<FunctorType, TeamPolicy<Properties...>, + reducer_type>; + return internal_team_size_max<closure_type>(f); + } + + template <class FunctorType, class ReducerType> + inline int team_size_max(const FunctorType& f, const ReducerType& /*r*/, + const ParallelReduceTag&) const { + using closure_type = + Impl::ParallelReduce<FunctorType, TeamPolicy<Properties...>, + ReducerType>; + return internal_team_size_max<closure_type>(f); } template <typename FunctorType> int team_size_recommended(FunctorType const& f, ParallelForTag const&) const { - typedef Impl::ParallelFor<FunctorType, TeamPolicy<Properties...> > - closure_type; + using closure_type = + Impl::ParallelFor<FunctorType, TeamPolicy<Properties...> >; hipFuncAttributes attr = ::Kokkos::Experimental::Impl::HIPParallelLaunch< closure_type, typename traits::launch_bounds>::get_hip_func_attributes(); int const block_size = ::Kokkos::Experimental::Impl::hip_get_opt_block_size< FunctorType, typename traits::launch_bounds>( space().impl_internal_space_instance(), attr, f, - static_cast<size_t>(vector_length()), + static_cast<size_t>(impl_vector_length()), static_cast<size_t>(team_scratch_size(0)) + 2 * sizeof(double), static_cast<size_t>(thread_scratch_size(0)) + sizeof(double)); - return block_size / vector_length(); + return block_size / impl_vector_length(); } + template <typename FunctorType> + inline int team_size_recommended(FunctorType const& f, + ParallelReduceTag const&) const { + using functor_analysis_type = + Impl::FunctorAnalysis<Impl::FunctorPatternInterface::REDUCE, + TeamPolicyInternal, FunctorType>; + using reducer_type = typename Impl::ParallelReduceReturnValue< + void, typename functor_analysis_type::value_type, + FunctorType>::reducer_type; + using closure_type = + Impl::ParallelReduce<FunctorType, TeamPolicy<Properties...>, + reducer_type>; + return internal_team_size_recommended<closure_type>(f); + } + + template <class FunctorType, class ReducerType> + int team_size_recommended(FunctorType const& f, ReducerType const&, + ParallelReduceTag const&) const { + using closure_type = + Impl::ParallelReduce<FunctorType, TeamPolicy<Properties...>, + ReducerType>; + return internal_team_size_recommended<closure_type>(f); + } + inline bool impl_auto_vector_length() const { return m_tune_vector_length; } + inline bool impl_auto_team_size() const { return m_tune_team_size; } static int vector_length_max() { return ::Kokkos::Experimental::Impl::HIPTraits::WarpSize; } @@ -149,9 +189,10 @@ class TeamPolicyInternal<Kokkos::Experimental::HIP, Properties...> // Allow only power-of-two vector_length if (!(is_integral_power_of_two(test_vector_length))) { - int test_pow2 = 1; - for (int i = 0; i < 5; i++) { - test_pow2 = test_pow2 << 1; + int test_pow2 = 1; + int constexpr warp_size = Experimental::Impl::HIPTraits::WarpSize; + while (test_pow2 < warp_size) { + test_pow2 <<= 1; if (test_pow2 > test_vector_length) { break; } @@ -167,8 +208,10 @@ class TeamPolicyInternal<Kokkos::Experimental::HIP, Properties...> level == 0 ? 1024 * 40 : // FIXME_HIP arbitrarily setting this to 48kB 20 * 1024 * 1024); // FIXME_HIP arbitrarily setting this to 20MB } - - int vector_length() const { return m_vector_length; } + inline void impl_set_vector_length(size_t size) { m_vector_length = size; } + inline void impl_set_team_size(size_t size) { m_team_size = size; } + int impl_vector_length() const { return m_vector_length; } + KOKKOS_DEPRECATED int vector_length() const { return impl_vector_length(); } int team_size() const { return m_team_size; } @@ -195,7 +238,9 @@ class TeamPolicyInternal<Kokkos::Experimental::HIP, Properties...> m_vector_length(0), m_team_scratch_size{0, 0}, m_thread_scratch_size{0, 0}, - m_chunk_size(::Kokkos::Experimental::Impl::HIPTraits::WarpSize) {} + m_chunk_size(::Kokkos::Experimental::Impl::HIPTraits::WarpSize), + m_tune_team_size(false), + m_tune_vector_length(false) {} /** \brief Specify league size, request team size */ TeamPolicyInternal(const execution_space space_, int league_size_, @@ -203,11 +248,16 @@ class TeamPolicyInternal<Kokkos::Experimental::HIP, Properties...> : m_space(space_), m_league_size(league_size_), m_team_size(team_size_request), - m_vector_length(verify_requested_vector_length(vector_length_request)), + m_vector_length( + (vector_length_request > 0) + ? verify_requested_vector_length(vector_length_request) + : (verify_requested_vector_length(1))), m_team_scratch_size{0, 0}, m_thread_scratch_size{0, 0}, - m_chunk_size(::Kokkos::Experimental::Impl::HIPTraits::WarpSize) { - // Make sure league size is permissable + m_chunk_size(::Kokkos::Experimental::Impl::HIPTraits::WarpSize), + m_tune_team_size(bool(team_size_request <= 0)), + m_tune_vector_length(bool(vector_length_request <= 0)) { + // Make sure league size is permissible if (league_size_ >= static_cast<int>( ::Kokkos::Experimental::Impl::hip_internal_maximum_grid_count())) @@ -215,7 +265,7 @@ class TeamPolicyInternal<Kokkos::Experimental::HIP, Properties...> "Requested too large league_size for TeamPolicy on HIP execution " "space."); - // Make sure total block size is permissable + // Make sure total block size is permissible if (m_team_size * m_vector_length > 1024) { Impl::throw_runtime_exception( std::string("Kokkos::TeamPolicy< HIP > the team size is too large. " @@ -227,65 +277,56 @@ class TeamPolicyInternal<Kokkos::Experimental::HIP, Properties...> TeamPolicyInternal(const execution_space space_, int league_size_, const Kokkos::AUTO_t& /* team_size_request */, int vector_length_request = 1) - : m_space(space_), - m_league_size(league_size_), - m_team_size(-1), - m_vector_length(verify_requested_vector_length(vector_length_request)), - m_team_scratch_size{0, 0}, - m_thread_scratch_size{0, 0}, - m_chunk_size(::Kokkos::Experimental::Impl::HIPTraits::WarpSize) { - // Make sure league size is permissable - if (league_size_ >= - static_cast<int>( - ::Kokkos::Experimental::Impl::hip_internal_maximum_grid_count())) - Impl::throw_runtime_exception( - "Requested too large league_size for TeamPolicy on HIP execution " - "space."); - } + : TeamPolicyInternal(space_, league_size_, -1, vector_length_request) {} + // FLAG + /** \brief Specify league size and team size, request vector length*/ + TeamPolicyInternal(const execution_space space_, int league_size_, + int team_size_request, + const Kokkos::AUTO_t& /* vector_length_request */ + ) + : TeamPolicyInternal(space_, league_size_, team_size_request, -1) + + {} + + /** \brief Specify league size, request team size and vector length*/ + TeamPolicyInternal(const execution_space space_, int league_size_, + const Kokkos::AUTO_t& /* team_size_request */, + const Kokkos::AUTO_t& /* vector_length_request */ + + ) + : TeamPolicyInternal(space_, league_size_, -1, -1) + + {} TeamPolicyInternal(int league_size_, int team_size_request, int vector_length_request = 1) - : m_space(typename traits::execution_space()), - m_league_size(league_size_), - m_team_size(team_size_request), - m_vector_length(verify_requested_vector_length(vector_length_request)), - m_team_scratch_size{0, 0}, - m_thread_scratch_size{0, 0}, - m_chunk_size(::Kokkos::Experimental::Impl::HIPTraits::WarpSize) { - // Make sure league size is permissable - if (league_size_ >= - static_cast<int>( - ::Kokkos::Experimental::Impl::hip_internal_maximum_grid_count())) - Impl::throw_runtime_exception( - "Requested too large league_size for TeamPolicy on HIP execution " - "space."); - - // Make sure total block size is permissable - if (m_team_size * m_vector_length > 1024) { - Impl::throw_runtime_exception( - std::string("Kokkos::TeamPolicy< HIP > the team size is too large. " - "Team size x vector length must be smaller than 1024.")); - } - } + : TeamPolicyInternal(typename traits::execution_space(), league_size_, + team_size_request, vector_length_request) {} TeamPolicyInternal(int league_size_, const Kokkos::AUTO_t& /* team_size_request */, int vector_length_request = 1) - : m_space(typename traits::execution_space()), - m_league_size(league_size_), - m_team_size(-1), - m_vector_length(verify_requested_vector_length(vector_length_request)), - m_team_scratch_size{0, 0}, - m_thread_scratch_size{0, 0}, - m_chunk_size(::Kokkos::Experimental::Impl::HIPTraits::WarpSize) { - // Make sure league size is permissable - if (league_size_ >= - static_cast<int>( - ::Kokkos::Experimental::Impl::hip_internal_maximum_grid_count())) - Impl::throw_runtime_exception( - "Requested too large league_size for TeamPolicy on HIP execution " - "space."); - } + : TeamPolicyInternal(typename traits::execution_space(), league_size_, -1, + vector_length_request) {} + + /** \brief Specify league size and team size, request vector length*/ + TeamPolicyInternal(int league_size_, int team_size_request, + const Kokkos::AUTO_t& /* vector_length_request */ + + ) + : TeamPolicyInternal(typename traits::execution_space(), league_size_, + team_size_request, -1) + + {} + + /** \brief Specify league size, request team size and vector length*/ + TeamPolicyInternal(int league_size_, + const Kokkos::AUTO_t& /* team_size_request */, + const Kokkos::AUTO_t& /* vector_length_request */ + + ) + : TeamPolicyInternal(typename traits::execution_space(), league_size_, -1, + -1) {} int chunk_size() const { return m_chunk_size; } @@ -334,7 +375,7 @@ class TeamPolicyInternal<Kokkos::Experimental::HIP, Properties...> typename traits::launch_bounds>::get_hip_func_attributes(); const int block_size = std::forward<BlockSizeCallable>(block_size_callable)( space().impl_internal_space_instance(), attr, f, - static_cast<size_t>(vector_length()), + static_cast<size_t>(impl_vector_length()), static_cast<size_t>(team_scratch_size(0)) + 2 * sizeof(double), static_cast<size_t>(thread_scratch_size(0)) + sizeof(double) + ((functor_value_traits::StaticValueSize != 0) @@ -346,7 +387,7 @@ class TeamPolicyInternal<Kokkos::Experimental::HIP, Properties...> int p2 = 1; while (p2 <= block_size) p2 *= 2; p2 /= 2; - return p2 / vector_length(); + return p2 / impl_vector_length(); } template <class ClosureType, class FunctorType> @@ -364,12 +405,6 @@ class TeamPolicyInternal<Kokkos::Experimental::HIP, Properties...> } }; -struct HIPLockArrays { - std::int32_t* atomic = nullptr; - std::int32_t* scratch = nullptr; - std::int32_t n = 0; -}; - template <typename FunctorType, typename... Properties> class ParallelFor<FunctorType, Kokkos::TeamPolicy<Properties...>, Kokkos::Experimental::HIP> { @@ -379,12 +414,12 @@ class ParallelFor<FunctorType, Kokkos::TeamPolicy<Properties...>, using size_type = ::Kokkos::Experimental::HIP::size_type; private: - using Member = typename Policy::member_type; - using WorkTag = typename Policy::work_tag; - using LaunchBounds = typename Policy::launch_bounds; + using member_type = typename Policy::member_type; + using work_tag = typename Policy::work_tag; + using launch_bounds = typename Policy::launch_bounds; - // Algorithmic constraints: hipBlockDim_y is a power of two AND hipBlockDim_y - // == hipBlockDim_z == 1 shared memory utilization: + // Algorithmic constraints: blockDim.y is a power of two AND + // blockDim.y == blockDim.z == 1 shared memory utilization: // // [ team reduce space ] // [ team shared space ] @@ -398,19 +433,18 @@ class ParallelFor<FunctorType, Kokkos::TeamPolicy<Properties...>, int m_shmem_size; void* m_scratch_ptr[2]; int m_scratch_size[2]; - mutable HIPLockArrays hip_lock_arrays; template <typename TagType> __device__ inline typename std::enable_if<std::is_same<TagType, void>::value>::type - exec_team(const Member& member) const { + exec_team(const member_type& member) const { m_functor(member); } template <typename TagType> __device__ inline typename std::enable_if<!std::is_same<TagType, void>::value>::type - exec_team(const Member& member) const { + exec_team(const member_type& member) const { m_functor(TagType(), member); } @@ -420,17 +454,21 @@ class ParallelFor<FunctorType, Kokkos::TeamPolicy<Properties...>, int64_t threadid = 0; if (m_scratch_size[1] > 0) { __shared__ int64_t base_thread_id; - if (hipThreadIdx_x == 0 && hipThreadIdx_y == 0) { - threadid = (hipBlockIdx_x * hipBlockDim_z + hipThreadIdx_z) % - (hip_lock_arrays.n / (hipBlockDim_x * hipBlockDim_y)); - threadid *= hipBlockDim_x * hipBlockDim_y; + if (threadIdx.x == 0 && threadIdx.y == 0) { + threadid = (blockIdx.x * blockDim.z + threadIdx.z) % + (Kokkos::Impl::g_device_hip_lock_arrays.n / + (blockDim.x * blockDim.y)); + threadid *= blockDim.x * blockDim.y; int done = 0; while (!done) { - done = (0 == atomicCAS(&hip_lock_arrays.scratch[threadid], 0, 1)); + done = (0 == + atomicCAS( + &Kokkos::Impl::g_device_hip_lock_arrays.scratch[threadid], + 0, 1)); if (!done) { - threadid += hipBlockDim_x * hipBlockDim_y; - if (int64_t(threadid + hipBlockDim_x * hipBlockDim_y) >= - int64_t(hip_lock_arrays.n)) + threadid += blockDim.x * blockDim.y; + if (int64_t(threadid + blockDim.x * blockDim.y) >= + int64_t(Kokkos::Impl::g_device_hip_lock_arrays.n)) threadid = 0; } } @@ -441,55 +479,33 @@ class ParallelFor<FunctorType, Kokkos::TeamPolicy<Properties...>, } int const int_league_size = static_cast<int>(m_league_size); - for (int league_rank = hipBlockIdx_x; league_rank < int_league_size; - league_rank += hipGridDim_x) { - this->template exec_team<WorkTag>(typename Policy::member_type( + for (int league_rank = blockIdx.x; league_rank < int_league_size; + league_rank += gridDim.x) { + this->template exec_team<work_tag>(typename Policy::member_type( ::Kokkos::Experimental::kokkos_impl_hip_shared_memory<void>(), m_shmem_begin, m_shmem_size, - static_cast<void*>( - static_cast<char*>(m_scratch_ptr[1]) + - ptrdiff_t(threadid / (hipBlockDim_x * hipBlockDim_y)) * - m_scratch_size[1]), + static_cast<void*>(static_cast<char*>(m_scratch_ptr[1]) + + ptrdiff_t(threadid / (blockDim.x * blockDim.y)) * + m_scratch_size[1]), m_scratch_size[1], league_rank, m_league_size)); } if (m_scratch_size[1] > 0) { __syncthreads(); - if (hipThreadIdx_x == 0 && hipThreadIdx_y == 0) - hip_lock_arrays.scratch[threadid] = 0; + if (threadIdx.x == 0 && threadIdx.y == 0) + Kokkos::Impl::g_device_hip_lock_arrays.scratch[threadid] = 0; } } inline void execute() const { - HIP_SAFE_CALL(hipMalloc( - &hip_lock_arrays.atomic, - sizeof(std::int32_t) * (KOKKOS_IMPL_HIP_SPACE_ATOMIC_MASK + 1))); - HIP_SAFE_CALL(hipMalloc( - &hip_lock_arrays.scratch, - sizeof(std::int32_t) * (::Kokkos::Experimental::HIP::concurrency()))); - HIP_SAFE_CALL(hipMemset( - hip_lock_arrays.scratch, 0, - sizeof(std::int32_t) * (::Kokkos::Experimental::HIP::concurrency()))); - hip_lock_arrays.n = ::Kokkos::Experimental::HIP::concurrency(); - int64_t const shmem_size_total = m_shmem_begin + m_shmem_size; dim3 const grid(static_cast<int>(m_league_size), 1, 1); dim3 const block(static_cast<int>(m_vector_size), static_cast<int>(m_team_size), 1); - ::Kokkos::Experimental::Impl::HIPParallelLaunch<ParallelFor, LaunchBounds>( + ::Kokkos::Experimental::Impl::HIPParallelLaunch<ParallelFor, launch_bounds>( *this, grid, block, shmem_size_total, m_policy.space().impl_internal_space_instance(), true); // copy to device and execute - - if (hip_lock_arrays.atomic) { - HIP_SAFE_CALL(hipFree(hip_lock_arrays.atomic)); - hip_lock_arrays.atomic = nullptr; - } - if (hip_lock_arrays.scratch) { - HIP_SAFE_CALL(hipFree(hip_lock_arrays.scratch)); - hip_lock_arrays.scratch = nullptr; - } - hip_lock_arrays.n = 0; } ParallelFor(FunctorType const& arg_functor, Policy const& arg_policy) @@ -497,14 +513,14 @@ class ParallelFor<FunctorType, Kokkos::TeamPolicy<Properties...>, m_policy(arg_policy), m_league_size(arg_policy.league_size()), m_team_size(arg_policy.team_size()), - m_vector_size(arg_policy.vector_length()) { + m_vector_size(arg_policy.impl_vector_length()) { hipFuncAttributes attr = ::Kokkos::Experimental::Impl::HIPParallelLaunch< - ParallelFor, LaunchBounds>::get_hip_func_attributes(); + ParallelFor, launch_bounds>::get_hip_func_attributes(); m_team_size = m_team_size >= 0 ? m_team_size : ::Kokkos::Experimental::Impl::hip_get_opt_block_size< - FunctorType, LaunchBounds>( + FunctorType, launch_bounds>( m_policy.space().impl_internal_space_instance(), attr, m_functor, m_vector_size, m_policy.team_scratch_size(0), m_policy.thread_scratch_size(0)) / @@ -523,11 +539,13 @@ class ParallelFor<FunctorType, Kokkos::TeamPolicy<Properties...>, m_scratch_ptr[1] = m_team_size <= 0 ? nullptr - : ::Kokkos::Experimental::Impl::hip_resize_scratch_space( - static_cast<ptrdiff_t>(m_scratch_size[1]) * - static_cast<ptrdiff_t>( - ::Kokkos::Experimental::HIP::concurrency() / - (m_team_size * m_vector_size))); + : m_policy.space() + .impl_internal_space_instance() + ->resize_team_scratch_space( + static_cast<ptrdiff_t>(m_scratch_size[1]) * + static_cast<ptrdiff_t>( + ::Kokkos::Experimental::HIP::concurrency() / + (m_team_size * m_vector_size))); int const shmem_size_total = m_shmem_begin + m_shmem_size; if (m_policy.space().impl_internal_space_instance()->m_maxShmemPerBlock < @@ -543,17 +561,492 @@ class ParallelFor<FunctorType, Kokkos::TeamPolicy<Properties...>, if (static_cast<int>(m_team_size) > static_cast<int>( ::Kokkos::Experimental::Impl::hip_get_max_block_size<FunctorType, - LaunchBounds>( + launch_bounds>( m_policy.space().impl_internal_space_instance(), attr, - arg_functor, arg_policy.vector_length(), + arg_functor, arg_policy.impl_vector_length(), arg_policy.team_scratch_size(0), arg_policy.thread_scratch_size(0)) / - arg_policy.vector_length())) { + arg_policy.impl_vector_length())) { Kokkos::Impl::throw_runtime_exception(std::string( "Kokkos::Impl::ParallelFor< HIP > requested too large team size.")); } } }; + +//---------------------------------------------------------------------------- +//---------------------------------------------------------------------------- + +template <class FunctorType, class ReducerType, class... Properties> +class ParallelReduce<FunctorType, Kokkos::TeamPolicy<Properties...>, + ReducerType, Kokkos::Experimental::HIP> { + public: + using Policy = TeamPolicyInternal<Kokkos::Experimental::HIP, Properties...>; + + private: + using member_type = typename Policy::member_type; + using work_tag = typename Policy::work_tag; + using launch_bounds = typename Policy::launch_bounds; + + using reducer_conditional = + Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, + FunctorType, ReducerType>; + using reducer_type_fwd = typename reducer_conditional::type; + using work_tag_fwd = + typename Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, + work_tag, void>::type; + + using value_traits = + Kokkos::Impl::FunctorValueTraits<reducer_type_fwd, work_tag_fwd>; + using value_init = + Kokkos::Impl::FunctorValueInit<reducer_type_fwd, work_tag_fwd>; + using value_join = + Kokkos::Impl::FunctorValueJoin<reducer_type_fwd, work_tag_fwd>; + + using pointer_type = typename value_traits::pointer_type; + using reference_type = typename value_traits::reference_type; + using value_type = typename value_traits::value_type; + + public: + using functor_type = FunctorType; + using size_type = Kokkos::Experimental::HIP::size_type; + + static int constexpr UseShflReduction = (value_traits::StaticValueSize != 0); + + private: + struct ShflReductionTag {}; + struct SHMEMReductionTag {}; + + // Algorithmic constraints: blockDim.y is a power of two AND + // blockDim.y == blockDim.z == 1 shared memory utilization: + // + // [ global reduce space ] + // [ team reduce space ] + // [ team shared space ] + // + + const FunctorType m_functor; + const Policy m_policy; + const ReducerType m_reducer; + const pointer_type m_result_ptr; + const bool m_result_ptr_device_accessible; + const bool m_result_ptr_host_accessible; + size_type* m_scratch_space; + size_type* m_scratch_flags; + size_type m_team_begin; + size_type m_shmem_begin; + size_type m_shmem_size; + void* m_scratch_ptr[2]; + int m_scratch_size[2]; + const size_type m_league_size; + int m_team_size; + const size_type m_vector_size; + + template <class TagType> + __device__ inline + typename std::enable_if<std::is_same<TagType, void>::value>::type + exec_team(member_type const& member, reference_type update) const { + m_functor(member, update); + } + + template <class TagType> + __device__ inline + typename std::enable_if<!std::is_same<TagType, void>::value>::type + exec_team(member_type const& member, reference_type update) const { + m_functor(TagType(), member, update); + } + + __device__ inline void iterate_through_league(int const threadid, + reference_type value) const { + int const int_league_size = static_cast<int>(m_league_size); + for (int league_rank = blockIdx.x; league_rank < int_league_size; + league_rank += gridDim.x) { + this->template exec_team<work_tag>( + member_type( + Kokkos::Experimental::kokkos_impl_hip_shared_memory<char>() + + m_team_begin, + m_shmem_begin, m_shmem_size, + reinterpret_cast<void*>( + reinterpret_cast<char*>(m_scratch_ptr[1]) + + static_cast<ptrdiff_t>(threadid / (blockDim.x * blockDim.y)) * + m_scratch_size[1]), + m_scratch_size[1], league_rank, m_league_size), + value); + } + } + + public: + __device__ inline void operator()() const { + int64_t threadid = 0; + if (m_scratch_size[1] > 0) { + __shared__ int64_t base_thread_id; + if (threadIdx.x == 0 && threadIdx.y == 0) { + threadid = (blockIdx.x * blockDim.z + threadIdx.z) % + (Kokkos::Impl::g_device_hip_lock_arrays.n / + (blockDim.x * blockDim.y)); + threadid *= blockDim.x * blockDim.y; + int done = 0; + while (!done) { + done = (0 == + atomicCAS( + &Kokkos::Impl::g_device_hip_lock_arrays.scratch[threadid], + 0, 1)); + if (!done) { + threadid += blockDim.x * blockDim.y; + if (static_cast<int64_t>(threadid + blockDim.x * blockDim.y) >= + static_cast<int64_t>(Kokkos::Impl::g_device_hip_lock_arrays.n)) + threadid = 0; + } + } + base_thread_id = threadid; + } + __syncthreads(); + threadid = base_thread_id; + } + + using ReductionTag = std::conditional_t<UseShflReduction, ShflReductionTag, + SHMEMReductionTag>; + run(ReductionTag{}, threadid); + + if (m_scratch_size[1] > 0) { + __syncthreads(); + if (threadIdx.x == 0 && threadIdx.y == 0) { + Kokkos::Impl::g_device_hip_lock_arrays.scratch[threadid] = 0; + } + } + } + + __device__ inline void run(SHMEMReductionTag, int const threadid) const { + integral_nonzero_constant<size_type, value_traits::StaticValueSize / + sizeof(size_type)> const + word_count(value_traits::value_size( + reducer_conditional::select(m_functor, m_reducer)) / + sizeof(size_type)); + + reference_type value = value_init::init( + reducer_conditional::select(m_functor, m_reducer), + Kokkos::Experimental::kokkos_impl_hip_shared_memory<size_type>() + + threadIdx.y * word_count.value); + + // Iterate this block through the league + iterate_through_league(threadid, value); + + // Reduce with final value at blockDim.y - 1 location. + bool do_final_reduce = (m_league_size == 0); + if (!do_final_reduce) + do_final_reduce = + hip_single_inter_block_reduce_scan<false, FunctorType, work_tag>( + reducer_conditional::select(m_functor, m_reducer), blockIdx.x, + gridDim.x, + Kokkos::Experimental::kokkos_impl_hip_shared_memory<size_type>(), + m_scratch_space, m_scratch_flags); + if (do_final_reduce) { + // This is the final block with the final result at the final threads' + // location + + size_type* const shared = + Kokkos::Experimental::kokkos_impl_hip_shared_memory<size_type>() + + (blockDim.y - 1) * word_count.value; + size_type* const global = m_result_ptr_device_accessible + ? reinterpret_cast<size_type*>(m_result_ptr) + : m_scratch_space; + + if (threadIdx.y == 0) { + Kokkos::Impl::FunctorFinal<reducer_type_fwd, work_tag_fwd>::final( + reducer_conditional::select(m_functor, m_reducer), shared); + } + + if (Kokkos::Experimental::Impl::HIPTraits::WarpSize < word_count.value) { + __syncthreads(); + } + + for (unsigned i = threadIdx.y; i < word_count.value; i += blockDim.y) { + global[i] = shared[i]; + } + } + } + + __device__ inline void run(ShflReductionTag, int const threadid) const { + value_type value; + value_init::init(reducer_conditional::select(m_functor, m_reducer), &value); + + // Iterate this block through the league + iterate_through_league(threadid, value); + + pointer_type const result = + m_result_ptr_device_accessible + ? m_result_ptr + : reinterpret_cast<pointer_type>(m_scratch_space); + + value_type init; + value_init::init(reducer_conditional::select(m_functor, m_reducer), &init); + if (m_league_size == 0) { + Kokkos::Impl::FunctorFinal<reducer_type_fwd, work_tag_fwd>::final( + reducer_conditional::select(m_functor, m_reducer), + reinterpret_cast<void*>(&value)); + *result = value; + } else if (Impl::hip_inter_block_shuffle_reduction<FunctorType, value_join, + work_tag>( + value, init, + value_join( + reducer_conditional::select(m_functor, m_reducer)), + m_scratch_space, result, m_scratch_flags, blockDim.y)) { + unsigned int const id = threadIdx.y * blockDim.x + threadIdx.x; + if (id == 0) { + Kokkos::Impl::FunctorFinal<reducer_type_fwd, work_tag_fwd>::final( + reducer_conditional::select(m_functor, m_reducer), + reinterpret_cast<void*>(&value)); + *result = value; + } + } + } + + inline void execute() { + const int nwork = m_league_size * m_team_size; + const bool need_device_set = ReduceFunctorHasInit<FunctorType>::value || + ReduceFunctorHasFinal<FunctorType>::value || + !m_result_ptr_host_accessible || + !std::is_same<ReducerType, InvalidType>::value; + if ((nwork > 0) || need_device_set) { + const int block_count = + UseShflReduction + ? std::min( + m_league_size, + size_type(1024 * + Kokkos::Experimental::Impl::HIPTraits::WarpSize)) + : std::min(static_cast<int>(m_league_size), m_team_size); + + m_scratch_space = Kokkos::Experimental::Impl::hip_internal_scratch_space( + value_traits::value_size( + reducer_conditional::select(m_functor, m_reducer)) * + block_count); + m_scratch_flags = Kokkos::Experimental::Impl::hip_internal_scratch_flags( + sizeof(size_type)); + + dim3 block(m_vector_size, m_team_size, 1); + dim3 grid(block_count, 1, 1); + if (nwork == 0) { + block = dim3(1, 1, 1); + grid = dim3(1, 1, 1); + } + const int shmem_size_total = m_team_begin + m_shmem_begin + m_shmem_size; + + Kokkos::Experimental::Impl::HIPParallelLaunch<ParallelReduce, + launch_bounds>( + *this, grid, block, shmem_size_total, + m_policy.space().impl_internal_space_instance(), + true); // copy to device and execute + + if (!m_result_ptr_device_accessible) { + m_policy.space().impl_internal_space_instance()->fence(); + + if (m_result_ptr) { + const int size = value_traits::value_size( + reducer_conditional::select(m_functor, m_reducer)); + DeepCopy<HostSpace, Kokkos::Experimental::HIPSpace>( + m_result_ptr, m_scratch_space, size); + } + } + } else { + if (m_result_ptr) { + value_init::init(reducer_conditional::select(m_functor, m_reducer), + m_result_ptr); + } + } + } + + template <class ViewType> + ParallelReduce(FunctorType const& arg_functor, Policy const& arg_policy, + ViewType const& arg_result, + typename std::enable_if<Kokkos::is_view<ViewType>::value, + void*>::type = nullptr) + : m_functor(arg_functor), + m_policy(arg_policy), + m_reducer(InvalidType()), + m_result_ptr(arg_result.data()), + m_result_ptr_device_accessible( + MemorySpaceAccess<Kokkos::Experimental::HIPSpace, + typename ViewType::memory_space>::accessible), + m_result_ptr_host_accessible( + MemorySpaceAccess<Kokkos::HostSpace, + typename ViewType::memory_space>::accessible), + m_scratch_space(nullptr), + m_scratch_flags(nullptr), + m_team_begin(0), + m_shmem_begin(0), + m_shmem_size(0), + m_scratch_ptr{nullptr, nullptr}, + m_league_size(arg_policy.league_size()), + m_team_size(arg_policy.team_size()), + m_vector_size(arg_policy.impl_vector_length()) { + hipFuncAttributes attr = Kokkos::Experimental::Impl::HIPParallelLaunch< + ParallelReduce, launch_bounds>::get_hip_func_attributes(); + m_team_size = + m_team_size >= 0 + ? m_team_size + : Kokkos::Experimental::Impl::hip_get_opt_block_size<FunctorType, + launch_bounds>( + m_policy.space().impl_internal_space_instance(), attr, + m_functor, m_vector_size, m_policy.team_scratch_size(0), + m_policy.thread_scratch_size(0)) / + m_vector_size; + + m_team_begin = + UseShflReduction + ? 0 + : hip_single_inter_block_reduce_scan_shmem<false, FunctorType, + work_tag>(arg_functor, + m_team_size); + m_shmem_begin = sizeof(double) * (m_team_size + 2); + m_shmem_size = + m_policy.scratch_size(0, m_team_size) + + FunctorTeamShmemSize<FunctorType>::value(arg_functor, m_team_size); + m_scratch_size[0] = m_shmem_size; + m_scratch_size[1] = m_policy.scratch_size(1, m_team_size); + m_scratch_ptr[1] = + m_team_size <= 0 + ? nullptr + : m_policy.space() + .impl_internal_space_instance() + ->resize_team_scratch_space( + static_cast<std::int64_t>(m_scratch_size[1]) * + (static_cast<std::int64_t>( + Kokkos::Experimental::HIP::concurrency() / + (m_team_size * m_vector_size)))); + + // The global parallel_reduce does not support vector_length other than 1 at + // the moment + if ((arg_policy.impl_vector_length() > 1) && !UseShflReduction) + Impl::throw_runtime_exception( + "Kokkos::parallel_reduce with a TeamPolicy using a vector length of " + "greater than 1 is not currently supported for HIP for dynamic " + "sized reduction types."); + + if ((m_team_size < Kokkos::Experimental::Impl::HIPTraits::WarpSize) && + !UseShflReduction) + Impl::throw_runtime_exception( + "Kokkos::parallel_reduce with a TeamPolicy using a team_size smaller " + "than 64 is not currently supported with HIP for dynamic sized " + "reduction types."); + + // Functor's reduce memory, team scan memory, and team shared memory depend + // upon team size. + + const int shmem_size_total = m_team_begin + m_shmem_begin + m_shmem_size; + + if (!Kokkos::Impl::is_integral_power_of_two(m_team_size) && + !UseShflReduction) { + Kokkos::Impl::throw_runtime_exception( + std::string("Kokkos::Impl::ParallelReduce< HIP > bad team size")); + } + + if (m_policy.space().impl_internal_space_instance()->m_maxShmemPerBlock < + shmem_size_total) { + Kokkos::Impl::throw_runtime_exception( + std::string("Kokkos::Impl::ParallelReduce< HIP > requested too much " + "L0 scratch memory")); + } + + if (static_cast<int>(m_team_size) > + arg_policy.team_size_max(m_functor, m_reducer, ParallelReduceTag())) { + Kokkos::Impl::throw_runtime_exception( + std::string("Kokkos::Impl::ParallelReduce< HIP > requested too " + "large team size.")); + } + } + + ParallelReduce(FunctorType const& arg_functor, Policy const& arg_policy, + ReducerType const& reducer) + : m_functor(arg_functor), + m_policy(arg_policy), + m_reducer(reducer), + m_result_ptr(reducer.view().data()), + m_result_ptr_device_accessible( + MemorySpaceAccess<Kokkos::Experimental::HIPSpace, + typename ReducerType::result_view_type:: + memory_space>::accessible), + m_result_ptr_host_accessible( + MemorySpaceAccess<Kokkos::HostSpace, + typename ReducerType::result_view_type:: + memory_space>::accessible), + m_scratch_space(nullptr), + m_scratch_flags(nullptr), + m_team_begin(0), + m_shmem_begin(0), + m_shmem_size(0), + m_scratch_ptr{nullptr, nullptr}, + m_league_size(arg_policy.league_size()), + m_team_size(arg_policy.team_size()), + m_vector_size(arg_policy.impl_vector_length()) { + hipFuncAttributes attr = Kokkos::Experimental::Impl::HIPParallelLaunch< + ParallelReduce, launch_bounds>::get_hip_func_attributes(); + m_team_size = + m_team_size >= 0 + ? m_team_size + : Kokkos::Experimental::Impl::hip_get_opt_block_size<FunctorType, + launch_bounds>( + m_policy.space().impl_internal_space_instance(), attr, + m_functor, m_vector_size, m_policy.team_scratch_size(0), + m_policy.thread_scratch_size(0)) / + m_vector_size; + + m_team_begin = + UseShflReduction + ? 0 + : hip_single_inter_block_reduce_scan_shmem<false, FunctorType, + work_tag>(arg_functor, + m_team_size); + m_shmem_begin = sizeof(double) * (m_team_size + 2); + m_shmem_size = + m_policy.scratch_size(0, m_team_size) + + FunctorTeamShmemSize<FunctorType>::value(arg_functor, m_team_size); + m_scratch_size[0] = m_shmem_size; + m_scratch_size[1] = m_policy.scratch_size(1, m_team_size); + m_scratch_ptr[1] = + m_team_size <= 0 + ? nullptr + : m_policy.space() + .impl_internal_space_instance() + ->resize_team_scratch_space( + static_cast<ptrdiff_t>(m_scratch_size[1]) * + static_cast<ptrdiff_t>( + Kokkos::Experimental::HIP::concurrency() / + (m_team_size * m_vector_size))); + + // The global parallel_reduce does not support vector_length other than 1 at + // the moment + if ((arg_policy.impl_vector_length() > 1) && !UseShflReduction) + Impl::throw_runtime_exception( + "Kokkos::parallel_reduce with a TeamPolicy using a vector length of " + "greater than 1 is not currently supported for HIP for dynamic " + "sized reduction types."); + + if ((m_team_size < Kokkos::Experimental::Impl::HIPTraits::WarpSize) && + !UseShflReduction) + Impl::throw_runtime_exception( + "Kokkos::parallel_reduce with a TeamPolicy using a team_size smaller " + "than 64 is not currently supported with HIP for dynamic sized " + "reduction types."); + + // Functor's reduce memory, team scan memory, and team shared memory depend + // upon team size. + + const int shmem_size_total = m_team_begin + m_shmem_begin + m_shmem_size; + + if ((!Kokkos::Impl::is_integral_power_of_two(m_team_size) && + !UseShflReduction) || + m_policy.space().impl_internal_space_instance()->m_maxShmemPerBlock < + shmem_size_total) { + Kokkos::Impl::throw_runtime_exception( + std::string("Kokkos::Impl::ParallelReduce< HIP > bad team size")); + } + if (static_cast<int>(m_team_size) > + arg_policy.team_size_max(m_functor, m_reducer, ParallelReduceTag())) { + Kokkos::Impl::throw_runtime_exception( + std::string("Kokkos::Impl::ParallelReduce< HIP > requested too " + "large team size.")); + } + } +}; } // namespace Impl } // namespace Kokkos diff --git a/packages/kokkos/core/src/HIP/Kokkos_HIP_ReduceScan.hpp b/packages/kokkos/core/src/HIP/Kokkos_HIP_ReduceScan.hpp index 362128c41..98dab9a0f 100644 --- a/packages/kokkos/core/src/HIP/Kokkos_HIP_ReduceScan.hpp +++ b/packages/kokkos/core/src/HIP/Kokkos_HIP_ReduceScan.hpp @@ -49,13 +49,138 @@ #if defined(__HIPCC__) +#include <HIP/Kokkos_HIP_Vectorization.hpp> + namespace Kokkos { namespace Impl { -template <class FunctorType, class ArgTag, bool DoScan, bool UseShfl> + +//---------------------------------------------------------------------------- +// Reduction-only implementation +//---------------------------------------------------------------------------- + +template <class FunctorType, class ArgTag, bool UseShfl> struct HIPReductionsFunctor; template <typename FunctorType, typename ArgTag> -struct HIPReductionsFunctor<FunctorType, ArgTag, false, false> { +struct HIPReductionsFunctor<FunctorType, ArgTag, true> { + using ValueTraits = FunctorValueTraits<FunctorType, ArgTag>; + using ValueJoin = FunctorValueJoin<FunctorType, ArgTag>; + using ValueInit = FunctorValueInit<FunctorType, ArgTag>; + using ValueOps = FunctorValueOps<FunctorType, ArgTag>; + using pointer_type = typename ValueTraits::pointer_type; + using Scalar = typename ValueTraits::value_type; + + __device__ static inline void scalar_intra_warp_reduction( + FunctorType const& functor, + Scalar value, // Contribution + bool const skip_vector, // Skip threads if Kokkos vector lanes are not + // part of the reduction + int const width, // How much of the warp participates + Scalar& result) { + for (int delta = skip_vector ? blockDim.x : 1; delta < width; delta *= 2) { + Scalar tmp = Kokkos::Experimental::shfl_down(value, delta, width); + ValueJoin::join(functor, &value, &tmp); + } + + Experimental::Impl::in_place_shfl(result, value, 0, width); + } + + __device__ static inline void scalar_intra_block_reduction( + FunctorType const& functor, Scalar value, bool const skip, + Scalar* my_global_team_buffer_element, int const shared_elements, + Scalar* shared_team_buffer_element) { + unsigned int constexpr warp_size = + Kokkos::Experimental::Impl::HIPTraits::WarpSize; + int const warp_id = (threadIdx.y * blockDim.x) / warp_size; + Scalar* const my_shared_team_buffer_element = + shared_team_buffer_element + warp_id % shared_elements; + + // Warp Level Reduction, ignoring Kokkos vector entries + scalar_intra_warp_reduction(functor, value, skip, warp_size, value); + + if (warp_id < shared_elements) { + *my_shared_team_buffer_element = value; + } + // Wait for every warp to be done before using one warp to do the final + // cross warp reduction + __syncthreads(); + + int const num_warps = blockDim.x * blockDim.y / warp_size; + for (int w = shared_elements; w < num_warps; w += shared_elements) { + if (warp_id >= w && warp_id < w + shared_elements) { + if ((threadIdx.y * blockDim.x + threadIdx.x) % warp_size == 0) + ValueJoin::join(functor, my_shared_team_buffer_element, &value); + } + __syncthreads(); + } + + if (warp_id == 0) { + ValueInit::init(functor, &value); + for (unsigned int i = threadIdx.y * blockDim.x + threadIdx.x; + i < blockDim.y * blockDim.x / warp_size; i += warp_size) { + ValueJoin::join(functor, &value, &shared_team_buffer_element[i]); + } + scalar_intra_warp_reduction(functor, value, false, warp_size, + *my_global_team_buffer_element); + } + } + + __device__ static inline bool scalar_inter_block_reduction( + FunctorType const& functor, + ::Kokkos::Experimental::HIP::size_type const block_count, + ::Kokkos::Experimental::HIP::size_type* const shared_data, + ::Kokkos::Experimental::HIP::size_type* const global_data, + ::Kokkos::Experimental::HIP::size_type* const global_flags) { + Scalar* const global_team_buffer_element = + reinterpret_cast<Scalar*>(global_data); + Scalar* const my_global_team_buffer_element = + global_team_buffer_element + blockIdx.x; + Scalar* shared_team_buffer_elements = + reinterpret_cast<Scalar*>(shared_data); + Scalar value = shared_team_buffer_elements[threadIdx.y]; + unsigned int constexpr warp_size = + Kokkos::Experimental::Impl::HIPTraits::WarpSize; + int shared_elements = blockDim.x * blockDim.y / warp_size; + int global_elements = block_count; + __syncthreads(); + + scalar_intra_block_reduction(functor, value, true, + my_global_team_buffer_element, shared_elements, + shared_team_buffer_elements); + __threadfence(); + __syncthreads(); + + // Use the last block that is done to do the do the reduction across the + // block + __shared__ unsigned int num_teams_done; + if (threadIdx.x + threadIdx.y == 0) { + __threadfence(); + num_teams_done = Kokkos::atomic_fetch_add(global_flags, 1) + 1; + } + bool is_last_block = false; + // FIXME_HIP HIP does not support syncthreads_or. That's why we need to make + // num_teams_done __shared__ + // if (__syncthreads_or(num_teams_done == gridDim.x)) {*/ + __syncthreads(); + if (num_teams_done == gridDim.x) { + is_last_block = true; + *global_flags = 0; + ValueInit::init(functor, &value); + for (int i = threadIdx.y * blockDim.x + threadIdx.x; i < global_elements; + i += blockDim.x * blockDim.y) { + ValueJoin::join(functor, &value, &global_team_buffer_element[i]); + } + scalar_intra_block_reduction( + functor, value, false, shared_team_buffer_elements + blockDim.y - 1, + shared_elements, shared_team_buffer_elements); + } + + return is_last_block; + } +}; + +template <typename FunctorType, typename ArgTag> +struct HIPReductionsFunctor<FunctorType, ArgTag, false> { using ValueTraits = FunctorValueTraits<FunctorType, ArgTag>; using ValueJoin = FunctorValueJoin<FunctorType, ArgTag>; using ValueInit = FunctorValueInit<FunctorType, ArgTag>; @@ -70,10 +195,9 @@ struct HIPReductionsFunctor<FunctorType, ArgTag, false, false> { // part of the reduction int const width) // How much of the warp participates { - int const lane_id = (hipThreadIdx_y * hipBlockDim_x + hipThreadIdx_x) % + int const lane_id = (threadIdx.y * blockDim.x + threadIdx.x) % ::Kokkos::Experimental::Impl::HIPTraits::WarpSize; - for (int delta = skip_vector ? hipBlockDim_x : 1; delta < width; - delta *= 2) { + for (int delta = skip_vector ? blockDim.x : 1; delta < width; delta *= 2) { if (lane_id + delta < ::Kokkos::Experimental::Impl::HIPTraits::WarpSize) { ValueJoin::join(functor, value, value + delta); } @@ -84,11 +208,10 @@ struct HIPReductionsFunctor<FunctorType, ArgTag, false, false> { __device__ static inline void scalar_intra_block_reduction( FunctorType const& functor, Scalar value, bool const skip, Scalar* result, int const /*shared_elements*/, Scalar* shared_team_buffer_element) { - int const warp_id = (hipThreadIdx_y * hipBlockDim_x) / + int const warp_id = (threadIdx.y * blockDim.x) / ::Kokkos::Experimental::Impl::HIPTraits::WarpSize; Scalar* const my_shared_team_buffer_element = - shared_team_buffer_element + hipThreadIdx_y * hipBlockDim_x + - hipThreadIdx_x; + shared_team_buffer_element + threadIdx.y * blockDim.x + threadIdx.x; *my_shared_team_buffer_element = value; // Warp Level Reduction, ignoring Kokkos vector entries scalar_intra_warp_reduction( @@ -100,22 +223,20 @@ struct HIPReductionsFunctor<FunctorType, ArgTag, false, false> { if (warp_id == 0) { const unsigned int delta = - (hipThreadIdx_y * hipBlockDim_x + hipThreadIdx_x) * + (threadIdx.y * blockDim.x + threadIdx.x) * ::Kokkos::Experimental::Impl::HIPTraits::WarpSize; - if (delta < hipBlockDim_x * hipBlockDim_y) + if (delta < blockDim.x * blockDim.y) *my_shared_team_buffer_element = shared_team_buffer_element[delta]; scalar_intra_warp_reduction( functor, my_shared_team_buffer_element, false, - hipBlockDim_x * hipBlockDim_y / + blockDim.x * blockDim.y / ::Kokkos::Experimental::Impl::HIPTraits::WarpSize); - if (hipThreadIdx_x + hipThreadIdx_y == 0) - *result = *shared_team_buffer_element; + if (threadIdx.x + threadIdx.y == 0) *result = *shared_team_buffer_element; } } __device__ static inline bool scalar_inter_block_reduction( FunctorType const& functor, - ::Kokkos::Experimental::HIP::size_type const /*block_id*/, ::Kokkos::Experimental::HIP::size_type const block_count, ::Kokkos::Experimental::HIP::size_type* const shared_data, ::Kokkos::Experimental::HIP::size_type* const global_data, @@ -123,11 +244,11 @@ struct HIPReductionsFunctor<FunctorType, ArgTag, false, false> { Scalar* const global_team_buffer_element = reinterpret_cast<Scalar*>(global_data); Scalar* const my_global_team_buffer_element = - global_team_buffer_element + hipBlockIdx_x; + global_team_buffer_element + blockIdx.x; Scalar* shared_team_buffer_elements = reinterpret_cast<Scalar*>(shared_data); - Scalar value = shared_team_buffer_elements[hipThreadIdx_y]; - int shared_elements = (hipBlockDim_x * hipBlockDim_y) / + Scalar value = shared_team_buffer_elements[threadIdx.y]; + int shared_elements = (blockDim.x * blockDim.y) / ::Kokkos::Experimental::Impl::HIPTraits::WarpSize; int global_elements = block_count; __syncthreads(); @@ -141,39 +262,40 @@ struct HIPReductionsFunctor<FunctorType, ArgTag, false, false> { // Use the last block that is done to do the do the reduction across the // block __shared__ unsigned int num_teams_done; - if (hipThreadIdx_x + hipThreadIdx_y == 0) { + if (threadIdx.x + threadIdx.y == 0) { __threadfence(); num_teams_done = Kokkos::atomic_fetch_add(global_flags, 1) + 1; } bool is_last_block = false; // FIXME_HIP HIP does not support syncthreads_or. That's why we need to make // num_teams_done __shared__ - // if (__syncthreads_or(num_teams_done == hipGridDim_x)) {*/ + // if (__syncthreads_or(num_teams_done == gridDim.x)) {*/ __syncthreads(); - if (num_teams_done == hipGridDim_x) { + if (num_teams_done == gridDim.x) { is_last_block = true; *global_flags = 0; ValueInit::init(functor, &value); - for (int i = hipThreadIdx_y * hipBlockDim_x + hipThreadIdx_x; - i < global_elements; i += hipBlockDim_x * hipBlockDim_y) { + for (int i = threadIdx.y * blockDim.x + threadIdx.x; i < global_elements; + i += blockDim.x * blockDim.y) { ValueJoin::join(functor, &value, &global_team_buffer_element[i]); } scalar_intra_block_reduction( - functor, value, false, - shared_team_buffer_elements + (hipBlockDim_y - 1), shared_elements, - shared_team_buffer_elements); + functor, value, false, shared_team_buffer_elements + (blockDim.y - 1), + shared_elements, shared_team_buffer_elements); } return is_last_block; } }; +//---------------------------------------------------------------------------- +// Fused reduction and scan implementation //---------------------------------------------------------------------------- /* * Algorithmic constraints: - * (a) hipBlockDim_y is a power of two - * (b) hipBlockDim_y <= 1024 - * (c) hipBlockDim_x == hipBlockDim_z == 1 + * (a) blockDim.y is a power of two + * (b) blockDim.y <= 1024 + * (c) blockDim.x == blockDim.z == 1 */ template <bool DoScan, class FunctorType, class ArgTag> @@ -187,14 +309,14 @@ __device__ void hip_intra_block_reduce_scan( using pointer_type = typename ValueTraits::pointer_type; unsigned int const value_count = ValueTraits::value_count(functor); - unsigned int const BlockSizeMask = hipBlockDim_y - 1; + unsigned int const BlockSizeMask = blockDim.y - 1; int const WarpMask = Experimental::Impl::HIPTraits::WarpSize - 1; // Must have power of two thread count - if ((hipBlockDim_y - 1) & hipBlockDim_y) { + if ((blockDim.y - 1) & blockDim.y) { Kokkos::abort( "HIP::hip_intra_block_reduce_scan requires power-of-two " - "hipBlockDim_y\n"); + "blockDim.y\n"); } auto block_reduce_step = @@ -205,8 +327,8 @@ __device__ void hip_intra_block_reduce_scan( }; { // Intra-warp reduction: - const unsigned rtid_intra = hipThreadIdx_y & WarpMask; - const pointer_type tdata_intra = base_data + value_count * hipThreadIdx_y; + const unsigned rtid_intra = threadIdx.y & WarpMask; + const pointer_type tdata_intra = base_data + value_count * threadIdx.y; block_reduce_step(rtid_intra, tdata_intra, 0); block_reduce_step(rtid_intra, tdata_intra, 1); @@ -220,11 +342,10 @@ __device__ void hip_intra_block_reduce_scan( { // Inter-warp reduce-scan by a single warp to avoid extra synchronizations unsigned int const rtid_inter = - ((hipThreadIdx_y + 1) - << Experimental::Impl::HIPTraits::WarpIndexShift) - + ((threadIdx.y + 1) << Experimental::Impl::HIPTraits::WarpIndexShift) - 1; - if (rtid_inter < hipBlockDim_y) { + if (rtid_inter < blockDim.y) { pointer_type const tdata_inter = base_data + value_count * rtid_inter; if ((1 << 6) < BlockSizeMask) { @@ -250,12 +371,11 @@ __device__ void hip_intra_block_reduce_scan( if (DoScan) { // Update all the values for the respective warps (except for the last one) // by adding from the last value of the previous warp. - if (hipThreadIdx_y >= Experimental::Impl::HIPTraits::WarpSize && - (hipThreadIdx_y & WarpMask) != + if (threadIdx.y >= Experimental::Impl::HIPTraits::WarpSize && + (threadIdx.y & WarpMask) != Experimental::Impl::HIPTraits::WarpSize - 1) { - const int offset_to_previous_warp_total = - (hipThreadIdx_y & (~WarpMask)) - 1; - ValueJoin::join(functor, base_data + value_count * hipThreadIdx_y, + const int offset_to_previous_warp_total = (threadIdx.y & (~WarpMask)) - 1; + ValueJoin::join(functor, base_data + value_count * threadIdx.y, base_data + value_count * offset_to_previous_warp_total); } } @@ -271,7 +391,7 @@ __device__ void hip_intra_block_reduce_scan( */ template <bool DoScan, class FunctorType, class ArgTag> -__device__ bool hip_single_inter_block_reduce_scan2( +__device__ bool hip_single_inter_block_reduce_scan_impl( FunctorType const& functor, ::Kokkos::Experimental::HIP::size_type const block_id, ::Kokkos::Experimental::HIP::size_type const block_count, @@ -287,13 +407,13 @@ __device__ bool hip_single_inter_block_reduce_scan2( using pointer_type = typename ValueTraits::pointer_type; // '__ffs' = position of the least significant bit set to 1. - // 'hipBlockDim_y' is guaranteed to be a power of two so this + // 'blockDim.y' is guaranteed to be a power of two so this // is the integral shift value that can replace an integral divide. - unsigned int const BlockSizeShift = __ffs(hipBlockDim_y) - 1; - unsigned int const BlockSizeMask = hipBlockDim_y - 1; + unsigned int const BlockSizeShift = __ffs(blockDim.y) - 1; + unsigned int const BlockSizeMask = blockDim.y - 1; // Must have power of two thread count - if (BlockSizeMask & hipBlockDim_y) { + if (BlockSizeMask & blockDim.y) { Kokkos::abort( "HIP::hip_single_inter_block_reduce_scan requires power-of-two " "blockDim"); @@ -313,7 +433,7 @@ __device__ bool hip_single_inter_block_reduce_scan2( size_type* const shared = shared_data + word_count.value * BlockSizeMask; size_type* const global = global_data + word_count.value * block_id; - for (size_t i = hipThreadIdx_y; i < word_count.value; i += hipBlockDim_y) { + for (size_t i = threadIdx.y; i < word_count.value; i += blockDim.y) { global[i] = shared[i]; } } @@ -329,7 +449,7 @@ __device__ bool hip_single_inter_block_reduce_scan2( __shared__ int n_done; n_done = 0; __syncthreads(); - if (hipThreadIdx_y == 0) { + if (threadIdx.y == 0) { __threadfence(); n_done = 1 + atomicInc(global_flags, block_count - 1); } @@ -338,14 +458,14 @@ __device__ bool hip_single_inter_block_reduce_scan2( if (is_last_block) { size_type const b = (static_cast<long long int>(block_count) * - static_cast<long long int>(hipThreadIdx_y)) >> + static_cast<long long int>(threadIdx.y)) >> BlockSizeShift; size_type const e = (static_cast<long long int>(block_count) * - static_cast<long long int>(hipThreadIdx_y + 1)) >> + static_cast<long long int>(threadIdx.y + 1)) >> BlockSizeShift; { - void* const shared_ptr = shared_data + word_count.value * hipThreadIdx_y; + void* const shared_ptr = shared_data + word_count.value * threadIdx.y; /* reference_type shared_value = */ ValueInit::init(functor, shared_ptr); for (size_type i = b; i < e; ++i) { @@ -359,10 +479,10 @@ __device__ bool hip_single_inter_block_reduce_scan2( if (DoScan) { size_type* const shared_value = - shared_data + word_count.value * (hipThreadIdx_y ? hipThreadIdx_y - 1 - : hipBlockDim_y); + shared_data + + word_count.value * (threadIdx.y ? threadIdx.y - 1 : blockDim.y); - if (!hipThreadIdx_y) { + if (!threadIdx.y) { ValueInit::init(functor, shared_value); } @@ -387,19 +507,18 @@ __device__ bool hip_single_inter_block_reduce_scan( ::Kokkos::Experimental::HIP::size_type* const global_data, ::Kokkos::Experimental::HIP::size_type* const global_flags) { using ValueTraits = FunctorValueTraits<FunctorType, ArgTag>; - if (!DoScan && /*FIXME*/ (bool)ValueTraits::StaticValueSize) - // FIXME_HIP For now we don't use shuffle - // return Kokkos::Impl::HIPReductionsFunctor< - // FunctorType, ArgTag, false, (ValueTraits::StaticValueSize > 16)>:: - // scalar_inter_block_reduction(functor, block_id, block_count, - // shared_data, global_data, global_flags); + // If we are doing a reduction and StaticValueSize is true, we use the + // reduction-only path. Otherwise, we use the common path between reduction + // and scan. + if (!DoScan && static_cast<bool>(ValueTraits::StaticValueSize)) + // FIXME_HIP_PERFORMANCE I don't know where 16 comes from. This inequality + // determines if we use shared memory (false) or shuffle (true) return Kokkos::Impl::HIPReductionsFunctor< - FunctorType, ArgTag, false, - false>::scalar_inter_block_reduction(functor, block_id, block_count, - shared_data, global_data, - global_flags); + FunctorType, ArgTag, (ValueTraits::StaticValueSize > 16)>:: + scalar_inter_block_reduction(functor, block_count, shared_data, + global_data, global_flags); else { - return hip_single_inter_block_reduce_scan2<DoScan, FunctorType, ArgTag>( + return hip_single_inter_block_reduce_scan_impl<DoScan, FunctorType, ArgTag>( functor, block_id, block_count, shared_data, global_data, global_flags); } } diff --git a/packages/kokkos/core/src/HIP/Kokkos_HIP_Shuffle_Reduce.hpp b/packages/kokkos/core/src/HIP/Kokkos_HIP_Shuffle_Reduce.hpp new file mode 100644 index 000000000..fe7c34bb8 --- /dev/null +++ b/packages/kokkos/core/src/HIP/Kokkos_HIP_Shuffle_Reduce.hpp @@ -0,0 +1,339 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_HIP_SHUFFLE_REDUCE_HPP +#define KOKKOS_HIP_SHUFFLE_REDUCE_HPP + +#include <Kokkos_Macros.hpp> + +#if defined(__HIPCC__) + +#include <HIP/Kokkos_HIP_Vectorization.hpp> + +#include <climits> + +namespace Kokkos { +namespace Impl { + +/* Algorithmic constraints: + * (a) threads with the same threadIdx.x have same value + * (b) blockDim.x == power of two + * (x) blockDim.z == 1 + */ +template <typename ValueType, typename JoinOp, + typename std::enable_if<!Kokkos::is_reducer<ValueType>::value, + int>::type = 0> +__device__ inline void hip_intra_warp_shuffle_reduction( + ValueType& result, JoinOp const& join, + uint32_t const max_active_thread = blockDim.y) { + unsigned int shift = 1; + + // Reduce over values from threads with different threadIdx.y + unsigned int constexpr warp_size = + Kokkos::Experimental::Impl::HIPTraits::WarpSize; + while (blockDim.x * shift < warp_size) { + ValueType const tmp = + Kokkos::Experimental::shfl_down(result, blockDim.x * shift, warp_size); + // Only join if upper thread is active (this allows non power of two for + // blockDim.y) + if (threadIdx.y + shift < max_active_thread) { + join(result, tmp); + } + shift *= 2; + } + + // Broadcast the result to all the threads in the warp + result = Kokkos::Experimental::shfl(result, 0, warp_size); +} + +template <typename ValueType, typename JoinOp, + typename std::enable_if<!Kokkos::is_reducer<ValueType>::value, + int>::type = 0> +__device__ inline void hip_inter_warp_shuffle_reduction( + ValueType& value, const JoinOp& join, + const int max_active_thread = blockDim.y) { + unsigned int constexpr warp_size = + Kokkos::Experimental::Impl::HIPTraits::WarpSize; + int constexpr step_width = 8; + // Depending on the ValueType __shared__ memory must be aligned up to 8 byte + // boundaries. The reason not to use ValueType directly is that for types with + // constructors it could lead to race conditions. + __shared__ double sh_result[(sizeof(ValueType) + 7) / 8 * step_width]; + ValueType* result = reinterpret_cast<ValueType*>(&sh_result); + int const step = warp_size / blockDim.x; + int shift = step_width; + // Skip the code below if threadIdx.y % step != 0 + int const id = threadIdx.y % step == 0 ? threadIdx.y / step : INT_MAX; + if (id < step_width) { + result[id] = value; + } + __syncthreads(); + while (shift <= max_active_thread / step) { + if (shift <= id && shift + step_width > id && threadIdx.x == 0) { + join(result[id % step_width], value); + } + __syncthreads(); + shift += step_width; + } + + value = result[0]; + for (int i = 1; (i * step < max_active_thread) && (i < step_width); ++i) + join(value, result[i]); +} + +template <typename ValueType, typename JoinOp, + typename std::enable_if<!Kokkos::is_reducer<ValueType>::value, + int>::type = 0> +__device__ inline void hip_intra_block_shuffle_reduction( + ValueType& value, JoinOp const& join, + int const max_active_thread = blockDim.y) { + hip_intra_warp_shuffle_reduction(value, join, max_active_thread); + hip_inter_warp_shuffle_reduction(value, join, max_active_thread); +} + +template <class FunctorType, class JoinOp, class ArgTag = void> +__device__ inline bool hip_inter_block_shuffle_reduction( + typename FunctorValueTraits<FunctorType, ArgTag>::reference_type value, + typename FunctorValueTraits<FunctorType, ArgTag>::reference_type neutral, + JoinOp const& join, + Kokkos::Experimental::HIP::size_type* const m_scratch_space, + typename FunctorValueTraits<FunctorType, + ArgTag>::pointer_type const /*result*/, + Kokkos::Experimental::HIP::size_type* const m_scratch_flags, + int const max_active_thread = blockDim.y) { + using pointer_type = + typename FunctorValueTraits<FunctorType, ArgTag>::pointer_type; + using value_type = + typename FunctorValueTraits<FunctorType, ArgTag>::value_type; + + // Do the intra-block reduction with shfl operations for the intra warp + // reduction and static shared memory for the inter warp reduction + hip_intra_block_shuffle_reduction(value, join, max_active_thread); + + int const id = threadIdx.y * blockDim.x + threadIdx.x; + + // One thread in the block writes block result to global scratch_memory + if (id == 0) { + pointer_type global = + reinterpret_cast<pointer_type>(m_scratch_space) + blockIdx.x; + *global = value; + } + + // One warp of last block performs inter block reduction through loading the + // block values from global scratch_memory + bool last_block = false; + __threadfence(); + __syncthreads(); + int constexpr warp_size = Kokkos::Experimental::Impl::HIPTraits::WarpSize; + if (id < warp_size) { + Kokkos::Experimental::HIP::size_type count; + + // Figure out whether this is the last block + if (id == 0) count = Kokkos::atomic_fetch_add(m_scratch_flags, 1); + count = Kokkos::Experimental::shfl(count, 0, warp_size); + + // Last block does the inter block reduction + if (count == gridDim.x - 1) { + // set flag back to zero + if (id == 0) *m_scratch_flags = 0; + last_block = true; + value = neutral; + + pointer_type const volatile global = + reinterpret_cast<pointer_type>(m_scratch_space); + + // Reduce all global values with splitting work over threads in one warp + const int step_size = blockDim.x * blockDim.y < warp_size + ? blockDim.x * blockDim.y + : warp_size; + for (int i = id; i < static_cast<int>(gridDim.x); i += step_size) { + value_type tmp = global[i]; + join(value, tmp); + } + + // Perform shfl reductions within the warp only join if contribution is + // valid (allows gridDim.x non power of two and <warp_size) + for (unsigned int i = 1; i < warp_size; i *= 2) { + if ((blockDim.x * blockDim.y) > i) { + value_type tmp = Kokkos::Experimental::shfl_down(value, i, warp_size); + if (id + i < gridDim.x) join(value, tmp); + } + } + } + } + // The last block has in its thread=0 the global reduction value through + // "value" + return last_block; +} + +// We implemente the same functions as above but the user provide a Reducer +// instead of JoinOP +template <typename ReducerType, + typename std::enable_if<Kokkos::is_reducer<ReducerType>::value, + int>::type = 0> +__device__ inline void hip_intra_warp_shuffle_reduction( + const ReducerType& reducer, typename ReducerType::value_type& result, + const uint32_t max_active_thread = blockDim.y) { + using ValueType = typename ReducerType::value_type; + auto join_op = [&](ValueType& result, ValueType const& tmp) { + reducer.join(result, tmp); + }; + hip_intra_warp_shuffle_reduction(result, join_op, max_active_thread); + + reducer.reference() = result; +} + +template <typename ReducerType, + typename std::enable_if<Kokkos::is_reducer<ReducerType>::value, + int>::type = 0> +__device__ inline void hip_inter_warp_shuffle_reduction( + ReducerType const& reducer, typename ReducerType::value_type value, + int const max_active_thread = blockDim.y) { + using ValueType = typename ReducerType::value_type; + auto join_op = [&](ValueType& a, ValueType& b) { reducer.join(a, b); }; + hip_inter_warp_shuffle_reduction(value, join_op, max_active_thread); + + reducer.reference() = value; +} + +template <typename ReducerType, + typename std::enable_if<Kokkos::is_reducer<ReducerType>::value, + int>::type = 0> +__device__ inline void hip_intra_block_shuffle_reduction( + ReducerType const& reducer, typename ReducerType::value_type value, + int const max_active_thread = blockDim.y) { + hip_intra_warp_shuffle_reduction(reducer, value, max_active_thread); + hip_inter_warp_shuffle_reduction(reducer, value, max_active_thread); +} + +template <typename ReducerType, + typename std::enable_if<Kokkos::is_reducer<ReducerType>::value, + int>::type = 0> +__device__ inline void hip_intra_block_shuffle_reduction( + ReducerType const& reducer, int const max_active_thread = blockDim.y) { + hip_intra_block_shuffle_reduction(reducer, reducer.reference(), + max_active_thread); +} + +template <typename ReducerType, + typename std::enable_if<Kokkos::is_reducer<ReducerType>::value, + int>::type = 0> +__device__ inline bool hip_inter_block_shuffle_reduction( + ReducerType const& reducer, + Kokkos::Experimental::HIP::size_type* const m_scratch_space, + Kokkos::Experimental::HIP::size_type* const m_scratch_flags, + int const max_active_thread = blockDim.y) { + using pointer_type = typename ReducerType::value_type*; + using value_type = typename ReducerType::value_type; + + // Do the intra-block reduction with shfl operations for the intra warp + // reduction and static shared memory for the inter warp reduction + hip_intra_block_shuffle_reduction(reducer, max_active_thread); + + value_type value = reducer.reference(); + + int const id = threadIdx.y * blockDim.x + threadIdx.x; + + // One thread in the block writes block result to global scratch_memory + if (id == 0) { + pointer_type global = + reinterpret_cast<pointer_type>(m_scratch_space) + blockIdx.x; + *global = value; + } + + // One warp of last block performs inter block reduction through loading the + // block values from global scratch_memory + bool last_block = false; + + __threadfence(); + __syncthreads(); + int constexpr warp_size = Kokkos::Experimental::Impl::HIPTraits::WarpSize; + if (id < warp_size) { + Kokkos::Experimental::HIP::size_type count; + + // Figure out whether this is the last block + if (id == 0) count = Kokkos::atomic_fetch_add(m_scratch_flags, 1); + count = Kokkos::Experimental::shfl(count, 0, warp_size); + + // Last block does the inter block reduction + if (count == gridDim.x - 1) { + // Set flag back to zero + if (id == 0) *m_scratch_flags = 0; + last_block = true; + reducer.init(value); + + pointer_type const volatile global = + reinterpret_cast<pointer_type>(m_scratch_space); + + // Reduce all global values with splitting work over threads in one warp + int const step_size = blockDim.x * blockDim.y < warp_size + ? blockDim.x * blockDim.y + : warp_size; + for (int i = id; i < static_cast<int>(gridDim.x); i += step_size) { + value_type tmp = global[i]; + reducer.join(value, tmp); + } + + // Perform shfl reductions within the warp only join if contribution is + // valid (allows gridDim.x non power of two and <warp_size) + for (unsigned int i = 1; i < warp_size; i *= 2) { + if ((blockDim.x * blockDim.y) > i) { + value_type tmp = Kokkos::Experimental::shfl_down(value, i, warp_size); + if (id + i < gridDim.x) reducer.join(value, tmp); + } + __syncthreads(); + } + } + } + + // The last block has in its thread = 0 the global reduction value through + // "value" + return last_block; +} +} // namespace Impl +} // namespace Kokkos + +#endif + +#endif diff --git a/packages/kokkos/core/src/HIP/Kokkos_HIP_Space.cpp b/packages/kokkos/core/src/HIP/Kokkos_HIP_Space.cpp index 2dca7f13c..00cef28f8 100644 --- a/packages/kokkos/core/src/HIP/Kokkos_HIP_Space.cpp +++ b/packages/kokkos/core/src/HIP/Kokkos_HIP_Space.cpp @@ -64,8 +64,8 @@ namespace Impl { namespace { hipStream_t get_deep_copy_stream() { - static hipStream_t s = 0; - if (s == 0) { + static hipStream_t s = nullptr; + if (s == nullptr) { HIP_SAFE_CALL(hipStreamCreate(&s)); } return s; @@ -92,25 +92,25 @@ DeepCopy<Kokkos::Experimental::HIPSpace, HostSpace, DeepCopy<Kokkos::Experimental::HIPSpace, Kokkos::Experimental::HIPSpace, Kokkos::Experimental::HIP>::DeepCopy(const Kokkos::Experimental::HIP& - /*instance*/, + instance, void* dst, const void* src, size_t n) { - // FIXME_HIP use instance - HIP_SAFE_CALL(hipMemcpy(dst, src, n, hipMemcpyDefault)); + HIP_SAFE_CALL( + hipMemcpyAsync(dst, src, n, hipMemcpyDefault, instance.hip_stream())); } DeepCopy<HostSpace, Kokkos::Experimental::HIPSpace, Kokkos::Experimental::HIP>:: - DeepCopy(const Kokkos::Experimental::HIP& /*instance*/, void* dst, + DeepCopy(const Kokkos::Experimental::HIP& instance, void* dst, const void* src, size_t n) { - // FIXME_HIP use instance - HIP_SAFE_CALL(hipMemcpy(dst, src, n, hipMemcpyDefault)); + HIP_SAFE_CALL( + hipMemcpyAsync(dst, src, n, hipMemcpyDefault, instance.hip_stream())); } DeepCopy<Kokkos::Experimental::HIPSpace, HostSpace, Kokkos::Experimental::HIP>:: - DeepCopy(const Kokkos::Experimental::HIP& /*instance*/, void* dst, + DeepCopy(const Kokkos::Experimental::HIP& instance, void* dst, const void* src, size_t n) { - // FIXME_HIP use instance - HIP_SAFE_CALL(hipMemcpy(dst, src, n, hipMemcpyDefault)); + HIP_SAFE_CALL( + hipMemcpyAsync(dst, src, n, hipMemcpyDefault, instance.hip_stream())); } DeepCopy<Kokkos::Experimental::HIPHostPinnedSpace, @@ -134,34 +134,34 @@ DeepCopy<Kokkos::Experimental::HIPHostPinnedSpace, HostSpace, DeepCopy<Kokkos::Experimental::HIPHostPinnedSpace, Kokkos::Experimental::HIPHostPinnedSpace, Kokkos::Experimental::HIP>:: - DeepCopy(const Kokkos::Experimental::HIP& /*instance*/, void* dst, + DeepCopy(const Kokkos::Experimental::HIP& instance, void* dst, const void* src, size_t n) { - // FIXME_HIP use instance - HIP_SAFE_CALL(hipMemcpy(dst, src, n, hipMemcpyDefault)); + HIP_SAFE_CALL( + hipMemcpyAsync(dst, src, n, hipMemcpyDefault, instance.hip_stream())); } DeepCopy<HostSpace, Kokkos::Experimental::HIPHostPinnedSpace, Kokkos::Experimental::HIP>::DeepCopy(const Kokkos::Experimental::HIP& - /*instance*/, + instance, void* dst, const void* src, size_t n) { - // FIXME_HIP use instance - HIP_SAFE_CALL(hipMemcpy(dst, src, n, hipMemcpyDefault)); + HIP_SAFE_CALL( + hipMemcpyAsync(dst, src, n, hipMemcpyDefault, instance.hip_stream())); } DeepCopy<Kokkos::Experimental::HIPHostPinnedSpace, HostSpace, Kokkos::Experimental::HIP>::DeepCopy(const Kokkos::Experimental::HIP& - /*instance*/, + instance, void* dst, const void* src, size_t n) { - // FIXME_HIP use instance - HIP_SAFE_CALL(hipMemcpy(dst, src, n, hipMemcpyDefault)); + HIP_SAFE_CALL( + hipMemcpyAsync(dst, src, n, hipMemcpyDefault, instance.hip_stream())); } void DeepCopyAsyncHIP(void* dst, void const* src, size_t n) { hipStream_t s = get_deep_copy_stream(); HIP_SAFE_CALL(hipMemcpyAsync(dst, src, n, hipMemcpyDefault, s)); - hipStreamSynchronize(s); + HIP_SAFE_CALL(hipStreamSynchronize(s)); } } // namespace Impl @@ -199,44 +199,113 @@ HIPSpace::HIPSpace() : m_device(HIP().hip_device()) {} HIPHostPinnedSpace::HIPHostPinnedSpace() {} void* HIPSpace::allocate(const size_t arg_alloc_size) const { + return allocate("[unlabeled]", arg_alloc_size); +} +void* HIPSpace::allocate( + + const char* arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size) const { + return impl_allocate(arg_label, arg_alloc_size, arg_logical_size); +} +void* HIPSpace::impl_allocate( + + const char* arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size, + const Kokkos::Tools::SpaceHandle arg_handle) const { void* ptr = nullptr; auto const error_code = hipMalloc(&ptr, arg_alloc_size); if (error_code != hipSuccess) { - hipGetLastError(); // This is the only way to clear the last error, which - // we should do here since we're turning it into an - // exception here + // This is the only way to clear the last error, which we should do here + // since we're turning it into an exception here + (void)hipGetLastError(); throw HIPRawMemoryAllocationFailure( arg_alloc_size, error_code, RawMemoryAllocationFailure::AllocationMechanism::HIPMalloc); } + if (Kokkos::Profiling::profileLibraryLoaded()) { + const size_t reported_size = + (arg_logical_size > 0) ? arg_logical_size : arg_alloc_size; + Kokkos::Profiling::allocateData(arg_handle, arg_label, ptr, reported_size); + } return ptr; } void* HIPHostPinnedSpace::allocate(const size_t arg_alloc_size) const { + return allocate("[unlabeled]", arg_alloc_size); +} +void* HIPHostPinnedSpace::allocate(const char* arg_label, + const size_t arg_alloc_size, + const size_t arg_logical_size) const { + return impl_allocate(arg_label, arg_alloc_size, arg_logical_size); +} +void* HIPHostPinnedSpace::impl_allocate( + const char* arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size, + const Kokkos::Tools::SpaceHandle arg_handle) const { void* ptr = nullptr; auto const error_code = hipHostMalloc(&ptr, arg_alloc_size); if (error_code != hipSuccess) { - hipGetLastError(); // This is the only way to clear the last error, which - // we should do here since we're turning it into an - // exception here + // This is the only way to clear the last error, which we should do here + // since we're turning it into an exception here + (void)hipGetLastError(); throw HIPRawMemoryAllocationFailure( arg_alloc_size, error_code, RawMemoryAllocationFailure::AllocationMechanism::HIPHostMalloc); } + if (Kokkos::Profiling::profileLibraryLoaded()) { + const size_t reported_size = + (arg_logical_size > 0) ? arg_logical_size : arg_alloc_size; + Kokkos::Profiling::allocateData(arg_handle, arg_label, ptr, reported_size); + } return ptr; } - void HIPSpace::deallocate(void* const arg_alloc_ptr, - const size_t /* arg_alloc_size */) const { + const size_t arg_alloc_size) const { + deallocate("[unlabeled]", arg_alloc_ptr, arg_alloc_size); +} +void HIPSpace::deallocate(const char* arg_label, void* const arg_alloc_ptr, + const size_t arg_alloc_size, + const size_t arg_logical_size) const { + impl_deallocate(arg_label, arg_alloc_ptr, arg_alloc_size, arg_logical_size); +} +void HIPSpace::impl_deallocate( + const char* arg_label, void* const arg_alloc_ptr, + const size_t arg_alloc_size, const size_t arg_logical_size, + const Kokkos::Tools::SpaceHandle arg_handle) const { + if (Kokkos::Profiling::profileLibraryLoaded()) { + const size_t reported_size = + (arg_logical_size > 0) ? arg_logical_size : arg_alloc_size; + Kokkos::Profiling::deallocateData(arg_handle, arg_label, arg_alloc_ptr, + reported_size); + } HIP_SAFE_CALL(hipFree(arg_alloc_ptr)); } void HIPHostPinnedSpace::deallocate(void* const arg_alloc_ptr, - const size_t /* arg_alloc_size */) const { + const size_t arg_alloc_size) const { + deallocate("[unlabeled]", arg_alloc_ptr, arg_alloc_size); +} + +void HIPHostPinnedSpace::deallocate(const char* arg_label, + void* const arg_alloc_ptr, + const size_t arg_alloc_size, + const size_t arg_logical_size) const { + impl_deallocate(arg_label, arg_alloc_ptr, arg_alloc_size, arg_logical_size); +} +void HIPHostPinnedSpace::impl_deallocate( + const char* arg_label, void* const arg_alloc_ptr, + const size_t arg_alloc_size, const size_t arg_logical_size, + const Kokkos::Tools::SpaceHandle arg_handle) const { + if (Kokkos::Profiling::profileLibraryLoaded()) { + const size_t reported_size = + (arg_logical_size > 0) ? arg_logical_size : arg_alloc_size; + Kokkos::Profiling::deallocateData(arg_handle, arg_label, arg_alloc_ptr, + reported_size); + } HIP_SAFE_CALL(hipHostFree(arg_alloc_ptr)); } @@ -249,7 +318,7 @@ void HIPHostPinnedSpace::deallocate(void* const arg_alloc_ptr, namespace Kokkos { namespace Impl { -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG SharedAllocationRecord<void, void> SharedAllocationRecord<Kokkos::Experimental::HIPSpace, void>::s_root_record; @@ -298,34 +367,22 @@ void SharedAllocationRecord<Kokkos::Experimental::HIPHostPinnedSpace, void>:: SharedAllocationRecord<Kokkos::Experimental::HIPSpace, void>::~SharedAllocationRecord() { -#if defined(KOKKOS_ENABLE_PROFILING) + const char* label = nullptr; if (Kokkos::Profiling::profileLibraryLoaded()) { SharedAllocationHeader header; Kokkos::Impl::DeepCopy<Kokkos::Experimental::HIPSpace, HostSpace>( &header, RecordBase::m_alloc_ptr, sizeof(SharedAllocationHeader)); - - Kokkos::Profiling::deallocateData( - Kokkos::Profiling::SpaceHandle(Kokkos::Experimental::HIPSpace::name()), - header.m_label, data(), size()); + label = header.label(); } -#endif - - m_space.deallocate(SharedAllocationRecord<void, void>::m_alloc_ptr, - SharedAllocationRecord<void, void>::m_alloc_size); + auto alloc_size = SharedAllocationRecord<void, void>::m_alloc_size; + m_space.deallocate(label, SharedAllocationRecord<void, void>::m_alloc_ptr, + alloc_size, (alloc_size - sizeof(SharedAllocationHeader))); } SharedAllocationRecord<Kokkos::Experimental::HIPHostPinnedSpace, void>::~SharedAllocationRecord() { -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::deallocateData( - Kokkos::Profiling::SpaceHandle( - Kokkos::Experimental::HIPHostPinnedSpace::name()), - RecordBase::m_alloc_ptr->m_label, data(), size()); - } -#endif - - m_space.deallocate(SharedAllocationRecord<void, void>::m_alloc_ptr, + m_space.deallocate(RecordBase::m_alloc_ptr->m_label, + SharedAllocationRecord<void, void>::m_alloc_ptr, SharedAllocationRecord<void, void>::m_alloc_size); } @@ -337,7 +394,7 @@ SharedAllocationRecord<Kokkos::Experimental::HIPSpace, void>:: // Pass through allocated [ SharedAllocationHeader , user_memory ] // Pass through deallocation function : SharedAllocationRecord<void, void>( -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG &SharedAllocationRecord<Kokkos::Experimental::HIPSpace, void>::s_root_record, #endif @@ -345,13 +402,6 @@ SharedAllocationRecord<Kokkos::Experimental::HIPSpace, void>:: arg_alloc_size), sizeof(SharedAllocationHeader) + arg_alloc_size, arg_dealloc), m_space(arg_space) { -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::allocateData( - Kokkos::Profiling::SpaceHandle(arg_space.name()), arg_label, data(), - arg_alloc_size); - } -#endif SharedAllocationHeader header; @@ -376,7 +426,7 @@ SharedAllocationRecord<Kokkos::Experimental::HIPHostPinnedSpace, void>:: // Pass through allocated [ SharedAllocationHeader , user_memory ] // Pass through deallocation function : SharedAllocationRecord<void, void>( -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG &SharedAllocationRecord<Kokkos::Experimental::HIPHostPinnedSpace, void>::s_root_record, #endif @@ -384,13 +434,6 @@ SharedAllocationRecord<Kokkos::Experimental::HIPHostPinnedSpace, void>:: arg_alloc_size), sizeof(SharedAllocationHeader) + arg_alloc_size, arg_dealloc), m_space(arg_space) { -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::allocateData( - Kokkos::Profiling::SpaceHandle(arg_space.name()), arg_label, data(), - arg_alloc_size); - } -#endif // Fill in the Header information, directly accessible via host pinned memory RecordBase::m_alloc_ptr->m_record = this; @@ -408,7 +451,7 @@ void* SharedAllocationRecord<Kokkos::Experimental::HIPSpace, void>:: allocate_tracked(const Kokkos::Experimental::HIPSpace& arg_space, const std::string& arg_alloc_label, const size_t arg_alloc_size) { - if (!arg_alloc_size) return (void*)0; + if (!arg_alloc_size) return nullptr; SharedAllocationRecord* const r = allocate(arg_space, arg_alloc_label, arg_alloc_size); @@ -421,7 +464,7 @@ void* SharedAllocationRecord<Kokkos::Experimental::HIPSpace, void>:: void SharedAllocationRecord<Kokkos::Experimental::HIPSpace, void>::deallocate_tracked(void* const arg_alloc_ptr) { - if (arg_alloc_ptr != 0) { + if (arg_alloc_ptr != nullptr) { SharedAllocationRecord* const r = get_record(arg_alloc_ptr); RecordBase::decrement(r); @@ -444,6 +487,46 @@ void* SharedAllocationRecord<Kokkos::Experimental::HIPSpace, void>:: return r_new->data(); } +void* SharedAllocationRecord<Kokkos::Experimental::HIPHostPinnedSpace, void>:: + allocate_tracked(const Kokkos::Experimental::HIPHostPinnedSpace& arg_space, + const std::string& arg_alloc_label, + const size_t arg_alloc_size) { + if (!arg_alloc_size) return nullptr; + + SharedAllocationRecord* const r = + allocate(arg_space, arg_alloc_label, arg_alloc_size); + + RecordBase::increment(r); + + return r->data(); +} + +void SharedAllocationRecord<Kokkos::Experimental::HIPHostPinnedSpace, + void>::deallocate_tracked(void* const + arg_alloc_ptr) { + if (arg_alloc_ptr) { + SharedAllocationRecord* const r = get_record(arg_alloc_ptr); + + RecordBase::decrement(r); + } +} + +void* SharedAllocationRecord<Kokkos::Experimental::HIPHostPinnedSpace, void>:: + reallocate_tracked(void* const arg_alloc_ptr, const size_t arg_alloc_size) { + SharedAllocationRecord* const r_old = get_record(arg_alloc_ptr); + SharedAllocationRecord* const r_new = + allocate(r_old->m_space, r_old->get_label(), arg_alloc_size); + + using HIPHostPinnedSpace = Kokkos::Experimental::HIPHostPinnedSpace; + Kokkos::Impl::DeepCopy<HIPHostPinnedSpace, HIPHostPinnedSpace>( + r_new->data(), r_old->data(), std::min(r_old->size(), r_new->size())); + + RecordBase::increment(r_new); + RecordBase::decrement(r_old); + + return r_new->data(); +} + //---------------------------------------------------------------------------- SharedAllocationRecord<Kokkos::Experimental::HIPSpace, void>* @@ -457,7 +540,7 @@ SharedAllocationRecord<Kokkos::Experimental::HIPSpace, void>::get_record( Header head; Header const* const head_hip = - alloc_ptr ? Header::get_header(alloc_ptr) : (Header*)0; + alloc_ptr ? Header::get_header(alloc_ptr) : nullptr; if (alloc_ptr) { Kokkos::Impl::DeepCopy<HostSpace, Kokkos::Experimental::HIPSpace>( @@ -465,7 +548,7 @@ SharedAllocationRecord<Kokkos::Experimental::HIPSpace, void>::get_record( } RecordHIP* const record = - alloc_ptr ? static_cast<RecordHIP*>(head.m_record) : (RecordHIP*)0; + alloc_ptr ? static_cast<RecordHIP*>(head.m_record) : nullptr; if (!alloc_ptr || record->m_alloc_ptr != head_hip) { Kokkos::Impl::throw_runtime_exception(std::string( @@ -476,11 +559,30 @@ SharedAllocationRecord<Kokkos::Experimental::HIPSpace, void>::get_record( return record; } +SharedAllocationRecord<Kokkos::Experimental::HIPHostPinnedSpace, void>* +SharedAllocationRecord<Kokkos::Experimental::HIPHostPinnedSpace, + void>::get_record(void* alloc_ptr) { + using Header = SharedAllocationHeader; + using RecordHIP = + SharedAllocationRecord<Kokkos::Experimental::HIPHostPinnedSpace, void>; + + Header* const h = + alloc_ptr ? reinterpret_cast<Header*>(alloc_ptr) - 1 : nullptr; + + if (!alloc_ptr || h->m_record->m_alloc_ptr != h) { + Kokkos::Impl::throw_runtime_exception(std::string( + "Kokkos::Impl::SharedAllocationRecord< " + "Kokkos::Experimental::HIPHostPinnedSpace , void >::get_record ERROR")); + } + + return static_cast<RecordHIP*>(h->m_record); +} + // Iterate records to print orphaned memory ... void SharedAllocationRecord<Kokkos::Experimental::HIPSpace, void>:: - print_records(std::ostream& s, const Kokkos::Experimental::HIPSpace& space, + print_records(std::ostream& s, const Kokkos::Experimental::HIPSpace&, bool detail) { -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG SharedAllocationRecord<void, void>* r = &s_root_record; char buffer[256]; @@ -515,7 +617,7 @@ void SharedAllocationRecord<Kokkos::Experimental::HIPSpace, void>:: reinterpret_cast<uintptr_t>(r->m_alloc_ptr), r->m_alloc_size, r->m_count, reinterpret_cast<uintptr_t>(r->m_dealloc), head.m_label); - std::cout << buffer; + s << buffer; r = r->m_next; } while (r != &s_root_record); } else { @@ -539,60 +641,33 @@ void SharedAllocationRecord<Kokkos::Experimental::HIPSpace, void>:: } else { snprintf(buffer, 256, "HIP [ 0 + 0 ]\n"); } - std::cout << buffer; + s << buffer; r = r->m_next; } while (r != &s_root_record); } #else (void)s; - (void)space; (void)detail; throw_runtime_exception( "Kokkos::Impl::SharedAllocationRecord<HIPSpace>::print_records" - " only works with KOKKOS_DEBUG enabled"); + " only works with KOKKOS_ENABLE_DEBUG enabled"); #endif } -/*--------------------------------------------------------------------------*/ -/*--------------------------------------------------------------------------*/ - -void* hip_resize_scratch_space(size_t bytes, bool force_shrink) { - static void* ptr = NULL; - static size_t current_size = 0; - if (current_size == 0) { - current_size = bytes; - ptr = Kokkos::kokkos_malloc<Kokkos::Experimental::HIPSpace>( - "HIPSpace::ScratchMemory", current_size); - } - if (bytes > current_size) { - current_size = bytes; - ptr = Kokkos::kokkos_realloc<Kokkos::Experimental::HIPSpace>(ptr, - current_size); - } - if ((bytes < current_size) && (force_shrink)) { - current_size = bytes; - Kokkos::kokkos_free<Kokkos::Experimental::HIPSpace>(ptr); - ptr = Kokkos::kokkos_malloc<Kokkos::Experimental::HIPSpace>( - "HIPSpace::ScratchMemory", current_size); - } - return ptr; -} - } // namespace Impl } // namespace Kokkos /*--------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------*/ namespace Kokkos { +namespace Impl { +int get_gpu(const InitArguments& args); +} namespace Experimental { -// HIP::size_type HIP::detect_device_count() -//{ return Impl::HIPInternalDevices::singleton().m_hipDevCount ; } - int HIP::concurrency() { - // FIXME_HIP - // MI60: ThreadsPerComputeUnit*ComputeUnits/ShaderEngine*ShaderEngines) - return 2536 * 16 * 4; + auto const& prop = hip_device_prop(); + return prop.maxThreadsPerMultiProcessor * prop.multiProcessorCount; } int HIP::impl_is_initialized() { return Impl::HIPInternal::singleton().is_initialized(); @@ -600,37 +675,138 @@ int HIP::impl_is_initialized() { void HIP::impl_initialize(const HIP::SelectDevice config) { Impl::HIPInternal::singleton().initialize(config.hip_device_id); - -#if defined(KOKKOS_ENABLE_PROFILING) - Kokkos::Profiling::initialize(); -#endif } -void HIP::impl_finalize() { - Impl::HIPInternal::singleton().finalize(); +void HIP::impl_finalize() { Impl::HIPInternal::singleton().finalize(); } -#if defined(KOKKOS_ENABLE_PROFILING) - Kokkos::Profiling::finalize(); -#endif +HIP::HIP() + : m_space_instance(&Impl::HIPInternal::singleton()), m_counter(nullptr) { + Impl::HIPInternal::singleton().verify_is_initialized( + "HIP instance constructor"); } -HIP::HIP() : m_space_instance(&Impl::HIPInternal::singleton()) { +HIP::HIP(hipStream_t const stream) + : m_space_instance(new Impl::HIPInternal), m_counter(new int(1)) { Impl::HIPInternal::singleton().verify_is_initialized( "HIP instance constructor"); + m_space_instance->initialize(Impl::HIPInternal::singleton().m_hipDev, stream); +} + +KOKKOS_FUNCTION HIP::HIP(HIP&& other) noexcept { + m_space_instance = other.m_space_instance; + other.m_space_instance = nullptr; + m_counter = other.m_counter; + other.m_counter = nullptr; +} + +KOKKOS_FUNCTION HIP::HIP(HIP const& other) + : m_space_instance(other.m_space_instance), m_counter(other.m_counter) { +#ifndef KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HIP_GPU + if (m_counter) Kokkos::atomic_add(m_counter, 1); +#endif } -// HIP::HIP( const int instance_id ) -// : m_device( Impl::HIPInternal::singleton().m_hipDev ) -//{} +KOKKOS_FUNCTION HIP& HIP::operator=(HIP&& other) noexcept { + m_space_instance = other.m_space_instance; + other.m_space_instance = nullptr; + m_counter = other.m_counter; + other.m_counter = nullptr; + + return *this; +} + +KOKKOS_FUNCTION HIP& HIP::operator=(HIP const& other) { + m_space_instance = other.m_space_instance; + m_counter = other.m_counter; +#ifndef KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HIP_GPU + if (m_counter) Kokkos::atomic_add(m_counter, 1); +#endif + + return *this; +} + +KOKKOS_FUNCTION HIP::~HIP() noexcept { +#ifndef KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HIP_GPU + if (m_counter == nullptr) return; + int const count = Kokkos::atomic_fetch_sub(m_counter, 1); + if (count == 1) { + delete m_counter; + m_space_instance->finalize(); + delete m_space_instance; + } +#endif +} void HIP::print_configuration(std::ostream& s, const bool) { Impl::HIPInternal::singleton().print_configuration(s); } -void HIP::fence() const { HIP_SAFE_CALL(hipDeviceSynchronize()); } +void HIP::impl_static_fence() { HIP_SAFE_CALL(hipDeviceSynchronize()); } + +void HIP::fence() const { m_space_instance->fence(); } + +hipStream_t HIP::hip_stream() const { return m_space_instance->m_stream; } int HIP::hip_device() const { return impl_internal_space_instance()->m_hipDev; } + +hipDeviceProp_t const& HIP::hip_device_prop() { + return Impl::HIPInternal::singleton().m_deviceProp; +} + const char* HIP::name() { return "HIP"; } } // namespace Experimental + +namespace Impl { + +int g_hip_space_factory_initialized = + initialize_space_factory<HIPSpaceInitializer>("150_HIP"); + +void HIPSpaceInitializer::initialize(const InitArguments& args) { + int use_gpu = Impl::get_gpu(args); + + if (std::is_same<Kokkos::Experimental::HIP, + Kokkos::DefaultExecutionSpace>::value || + 0 < use_gpu) { + if (use_gpu > -1) { + Kokkos::Experimental::HIP::impl_initialize( + Kokkos::Experimental::HIP::SelectDevice(use_gpu)); + } else { + Kokkos::Experimental::HIP::impl_initialize(); + } + } +} + +void HIPSpaceInitializer::finalize(const bool all_spaces) { + if (std::is_same<Kokkos::Experimental::HIP, + Kokkos::DefaultExecutionSpace>::value || + all_spaces) { + if (Kokkos::Experimental::HIP::impl_is_initialized()) + Kokkos::Experimental::HIP::impl_finalize(); + } +} + +void HIPSpaceInitializer::fence() { + Kokkos::Experimental::HIP::impl_static_fence(); +} + +void HIPSpaceInitializer::print_configuration(std::ostream& msg, + const bool detail) { + msg << "Devices:" << std::endl; + msg << " KOKKOS_ENABLE_HIP: "; + msg << "yes" << std::endl; + + msg << "HIP Options:" << std::endl; + msg << " KOKKOS_ENABLE_HIP_RELOCATABLE_DEVICE_CODE: "; +#ifdef KOKKOS_ENABLE_HIP_RELOCATABLE_DEVICE_CODE + msg << "yes" << std::endl; +#else + msg << "no" << std::endl; +#endif + + msg << "\nRuntime Configuration:" << std::endl; + Experimental::HIP::print_configuration(msg, detail); +} + +} // namespace Impl } // namespace Kokkos diff --git a/packages/kokkos/core/src/HIP/Kokkos_HIP_Team.hpp b/packages/kokkos/core/src/HIP/Kokkos_HIP_Team.hpp index b3c4f4609..7571510c3 100644 --- a/packages/kokkos/core/src/HIP/Kokkos_HIP_Team.hpp +++ b/packages/kokkos/core/src/HIP/Kokkos_HIP_Team.hpp @@ -54,6 +54,7 @@ #include <HIP/Kokkos_HIP_KernelLaunch.hpp> #include <HIP/Kokkos_HIP_ReduceScan.hpp> +#include <HIP/Kokkos_HIP_Shuffle_Reduce.hpp> #include <HIP/Kokkos_HIP_BlockSize_Deduction.hpp> #include <Kokkos_Vectorization.hpp> @@ -65,7 +66,7 @@ namespace Impl { template <typename Type> struct HIPJoinFunctor { - typedef Type value_type; + using value_type = Type; KOKKOS_INLINE_FUNCTION static void join(volatile value_type& update, @@ -77,16 +78,16 @@ struct HIPJoinFunctor { /**\brief Team member_type passed to TeamPolicy or TeamTask closures. * * HIP thread blocks for team closures are dimensioned as: - * hipBlockDim_x == number of "vector lanes" per "thread" - * hipBlockDim_y == number of "threads" per team - * hipBlockDim_z == number of teams in a block + * blockDim.x == number of "vector lanes" per "thread" + * blockDim.y == number of "threads" per team + * blockDim.z == number of teams in a block * where * A set of teams exactly fill a warp OR a team is the whole block - * ( 0 == WarpSize % ( hipBlockDim_x * hipBlockDim_y ) ) + * ( 0 == WarpSize % ( blockDim.x * blockDim.y ) ) * OR - * ( 1 == hipBlockDim_z ) + * ( 1 == blockDim.z ) - * Thus when 1 < hipBlockDim_z the team is warp-synchronous + * Thus when 1 < blockDim.z the team is warp-synchronous * and __syncthreads should not be called in team collectives. * * When multiple teams are mapped onto a single block then the @@ -126,7 +127,7 @@ class HIPTeamMember { KOKKOS_INLINE_FUNCTION int league_size() const { return m_league_size; } KOKKOS_INLINE_FUNCTION int team_rank() const { #ifdef __HIP_DEVICE_COMPILE__ - return hipThreadIdx_y; + return threadIdx.y; #else return 0; #endif @@ -134,15 +135,15 @@ class HIPTeamMember { KOKKOS_INLINE_FUNCTION int team_size() const { #ifdef __HIP_DEVICE_COMPILE__ - return hipBlockDim_y; + return blockDim.y; #else - return 1; + return 0; #endif } KOKKOS_INLINE_FUNCTION void team_barrier() const { #ifdef __HIP_DEVICE_COMPILE__ - if (1 == hipBlockDim_z) + if (1 == blockDim.z) __syncthreads(); // team == block else __threadfence_block(); // team <= warp @@ -155,11 +156,11 @@ class HIPTeamMember { KOKKOS_INLINE_FUNCTION void team_broadcast(ValueType& val, const int& thread_id) const { #ifdef __HIP_DEVICE_COMPILE__ - if (1 == hipBlockDim_z) { // team == block + if (blockDim.z == 1) { // team == block __syncthreads(); // Wait for shared data write until all threads arrive here - if (hipThreadIdx_x == 0u && - hipThreadIdx_y == static_cast<uint32_t>(thread_id)) { + if (threadIdx.x == 0u && + threadIdx.y == static_cast<uint32_t>(thread_id)) { *(reinterpret_cast<ValueType*>(m_team_reduce)) = val; } __syncthreads(); // Wait for shared data read until root thread writes @@ -167,7 +168,7 @@ class HIPTeamMember { } else { // team <= warp ValueType tmp(val); // input might not be a register variable ::Kokkos::Experimental::Impl::in_place_shfl( - val, tmp, hipBlockDim_x * thread_id, hipBlockDim_x * hipBlockDim_y); + val, tmp, blockDim.x * thread_id, blockDim.x * blockDim.y); } #else (void)val; @@ -178,44 +179,24 @@ class HIPTeamMember { template <class Closure, class ValueType> KOKKOS_INLINE_FUNCTION void team_broadcast(Closure const& f, ValueType& val, const int& thread_id) const { -#ifdef __HIP_DEVICE_COMPILE__ f(val); - - if (1 == hipBlockDim_z) { // team == block - __syncthreads(); - // Wait for shared data write until all threads arrive here - if (hipThreadIdx_x == 0u && - hipThreadIdx_y == static_cast<uint32_t>(thread_id)) { - *(reinterpret_cast<ValueType*>(m_team_reduce)) = val; - } - __syncthreads(); // Wait for shared data read until root thread writes - val = *(reinterpret_cast<ValueType*>(m_team_reduce)); - } else { // team <= warp - ValueType tmp(val); // input might not be a register variable - ::Kokkos::Experimental::Impl::in_place_shfl( - val, tmp, hipBlockDim_x * thread_id, hipBlockDim_x * hipBlockDim_y); - } -#else - (void)f; - (void)val; - (void)thread_id; -#endif + team_broadcast(val, thread_id); } //-------------------------------------------------------------------------- /**\brief Reduction across a team * * Mapping of teams onto blocks: - * hipBlockDim_x is "vector lanes" - * hipBlockDim_y is team "threads" - * hipBlockDim_z is number of teams per block + * blockDim.x is "vector lanes" + * blockDim.y is team "threads" + * blockDim.z is number of teams per block * * Requires: - * hipBlockDim_x is power two - * hipBlockDim_x <= HIPTraits::WarpSize - * ( 0 == HIPTraits::WarpSize % ( hipBlockDim_x * hipBlockDim_y ) + * blockDim.x is power two + * blockDim.x <= HIPTraits::WarpSize + * ( 0 == HIPTraits::WarpSize % ( blockDim.x * blockDim.y ) * OR - * ( 1 == hipBlockDim_z ) + * ( 1 == blockDim.z ) */ template <typename ReducerType> KOKKOS_INLINE_FUNCTION @@ -230,7 +211,7 @@ class HIPTeamMember { team_reduce(ReducerType const& reducer, typename ReducerType::value_type& value) const noexcept { #ifdef __HIP_DEVICE_COMPILE__ - hip_intra_block_reduction(reducer, value, hipBlockDim_y); + hip_intra_block_shuffle_reduction(reducer, value, blockDim.y); #else (void)reducer; (void)value; @@ -256,25 +237,25 @@ class HIPTeamMember { __syncthreads(); // Don't write in to shared data until all threads have // entered this function - if (0 == hipThreadIdx_y) { + if (0 == threadIdx.y) { base_data[0] = 0; } - base_data[hipThreadIdx_y + 1] = value; + base_data[threadIdx.y + 1] = value; Impl::hip_intra_block_reduce_scan<true, Impl::HIPJoinFunctor<Type>, void>( Impl::HIPJoinFunctor<Type>(), base_data + 1); if (global_accum) { - if (hipBlockDim_y == hipThreadIdx_y + 1) { - base_data[hipBlockDim_y] = - atomic_fetch_add(global_accum, base_data[hipBlockDim_y]); + if (blockDim.y == threadIdx.y + 1) { + base_data[blockDim.y] = + atomic_fetch_add(global_accum, base_data[blockDim.y]); } __syncthreads(); // Wait for atomic - base_data[hipThreadIdx_y] += base_data[hipBlockDim_y]; + base_data[threadIdx.y] += base_data[blockDim.y]; } - return base_data[hipThreadIdx_y]; + return base_data[threadIdx.y]; #else (void)value; (void)global_accum; @@ -289,7 +270,7 @@ class HIPTeamMember { */ template <typename Type> KOKKOS_INLINE_FUNCTION Type team_scan(const Type& value) const { - return this->template team_scan<Type>(value, 0); + return this->template team_scan<Type>(value, nullptr); } //---------------------------------------- @@ -307,24 +288,16 @@ class HIPTeamMember { vector_reduce(ReducerType const& reducer, typename ReducerType::value_type& value) { #ifdef __HIP_DEVICE_COMPILE__ - if (hipBlockDim_x == 1) return; + if (blockDim.x == 1) return; // Intra vector lane shuffle reduction: typename ReducerType::value_type tmp(value); typename ReducerType::value_type tmp2 = tmp; - int constexpr warp_size = ::Kokkos::Experimental::Impl::HIPTraits::WarpSize; - unsigned mask = - hipBlockDim_x == warp_size - ? 0xffffffff - : ((1 << hipBlockDim_x) - 1) - << ((hipThreadIdx_y % (warp_size / hipBlockDim_x)) * - hipBlockDim_x); - - for (int i = hipBlockDim_x; (i >>= 1);) { + for (int i = blockDim.x; (i >>= 1);) { ::Kokkos::Experimental::Impl::in_place_shfl_down(tmp2, tmp, i, - hipBlockDim_x, mask); - if (static_cast<int>(hipThreadIdx_x) < i) { + blockDim.x); + if (static_cast<int>(threadIdx.x) < i) { reducer.join(tmp, tmp2); } } @@ -334,8 +307,7 @@ class HIPTeamMember { // because floating point summation is not associative // and thus different threads could have different results. - ::Kokkos::Experimental::Impl::in_place_shfl(tmp2, tmp, 0, hipBlockDim_x, - mask); + ::Kokkos::Experimental::Impl::in_place_shfl(tmp2, tmp, 0, blockDim.x); value = tmp2; reducer.reference() = tmp2; #else @@ -355,19 +327,17 @@ class HIPTeamMember { global_reduce(ReducerType const& reducer, int* const global_scratch_flags, void* const global_scratch_space, void* const shmem, int const shmem_size) { -#ifdef __HIP_COMPILE_DEVICE__ - - typedef typename ReducerType::value_type value_type; - typedef value_type volatile* pointer_type; +#ifdef __HIP_DEVICE_COMPILE__ + using value_type = typename ReducerType::value_type; + using pointer_type = value_type volatile*; // Number of shared memory entries for the reduction: const int nsh = shmem_size / sizeof(value_type); // Number of HIP threads in the block, rank within the block - const int nid = hipBlockDim_x * hipBlockDim_y * hipBlockDim_z; + const int nid = blockDim.x * blockDim.y * blockDim.z; const int tid = - hipThreadIdx_x + - hipBlockDim_x * (hipThreadIdx_y + hipBlockDim_y * hipThreadIdx_z); + threadIdx.x + blockDim.x * (threadIdx.y + blockDim.y * threadIdx.z); // Reduces within block using all available shared memory // Contributes if it is the root "vector lane" @@ -376,23 +346,24 @@ class HIPTeamMember { // wx == which lane within the warp // wy == which warp within the block - const int wn = - (nid + HIPTraits::WarpIndexMask) >> HIPTraits::WarpIndexShift; - const int wx = tid & HIPTraits::WarpIndexMask; - const int wy = tid >> HIPTraits::WarpIndexShift; + const int wn = (nid + Experimental::Impl::HIPTraits::WarpIndexMask) >> + Experimental::Impl::HIPTraits::WarpIndexShift; + const int wx = tid & Experimental::Impl::HIPTraits::WarpIndexMask; + const int wy = tid >> Experimental::Impl::HIPTraits::WarpIndexShift; //------------------------ - { // Intra warp shuffle reduction from contributing CUDA threads + { // Intra warp shuffle reduction from contributing HIP threads value_type tmp(reducer.reference()); int constexpr warp_size = ::Kokkos::Experimental::Impl::HIPTraits::WarpSize; - for (int i = warp_size; static_cast<int>(hipBlockDim_x) <= (i >>= 1);) { - Impl::in_place_shfl_down(reducer.reference(), tmp, i, warp_size); + for (int i = warp_size; static_cast<int>(blockDim.x) <= (i >>= 1);) { + Experimental::Impl::in_place_shfl_down(reducer.reference(), tmp, i, + warp_size); // Root of each vector lane reduces "thread" contribution - if (0 == hipThreadIdx_x && wx < i) { + if (0 == threadIdx.x && wx < i) { reducer.join(&tmp, reducer.data()); } } @@ -432,7 +403,7 @@ class HIPTeamMember { if (0 == wy) { // Start fan-in at power of two covering nentry - for (int i = (1 << (32 - __clz(nentry - 1))); (i >>= 1);) { + for (int i = (1 << (warp_size - __clz(nentry - 1))); (i >>= 1);) { const int k = wx + i; if (wx < i && k < nentry) { reducer.join((reinterpret_cast<pointer_type>(shmem)) + wx, @@ -449,12 +420,12 @@ class HIPTeamMember { if (0 == wx) { reducer.copy((reinterpret_cast<pointer_type>(global_scratch_space)) + - hipBlockIdx_x * reducer.length(), + blockIdx.x * reducer.length(), reducer.data()); __threadfence(); // Wait until global write is visible. - last_block = static_cast<int>(hipGridDim_x) == + last_block = static_cast<int>(gridDim.x) == 1 + Kokkos::atomic_fetch_add(global_scratch_flags, 1); // If last block then reset count @@ -473,9 +444,8 @@ class HIPTeamMember { //------------------------ // Last block reads global_scratch_memory into shared memory. - const int nentry = nid < hipGridDim_x - ? (nid < nsh ? nid : nsh) - : (hipGridDim_x < nsh ? hipGridDim_x : nsh); + const int nentry = nid < gridDim.x ? (nid < nsh ? nid : nsh) + : (gridDim.x < nsh ? gridDim.x : nsh); // nentry = min( nid , nsh , gridDim.x ) @@ -488,8 +458,7 @@ class HIPTeamMember { (reinterpret_cast<pointer_type>(shmem)) + offset, (reinterpret_cast<pointer_type>(global_scratch_space)) + offset); - for (int i = nentry + tid; i < static_cast<int>(hipGridDim_x); - i += nentry) { + for (int i = nentry + tid; i < static_cast<int>(gridDim.x); i += nentry) { reducer.join((reinterpret_cast<pointer_type>(shmem)) + offset, (reinterpret_cast<pointer_type>(global_scratch_space)) + i * reducer.length()); @@ -529,12 +498,11 @@ class HIPTeamMember { } } return 0; - #else (void)reducer; (void)global_scratch_flags; - (void)shmem; (void)global_scratch_space; + (void)shmem; (void)shmem_size; return 0; #endif @@ -574,7 +542,7 @@ namespace Impl { template <typename iType> struct TeamThreadRangeBoundariesStruct<iType, HIPTeamMember> { - typedef iType index_type; + using index_type = iType; const HIPTeamMember& member; const iType start; const iType end; @@ -591,7 +559,7 @@ struct TeamThreadRangeBoundariesStruct<iType, HIPTeamMember> { template <typename iType> struct TeamVectorRangeBoundariesStruct<iType, HIPTeamMember> { - typedef iType index_type; + using index_type = iType; const HIPTeamMember& member; const iType start; const iType end; @@ -609,7 +577,7 @@ struct TeamVectorRangeBoundariesStruct<iType, HIPTeamMember> { template <typename iType> struct ThreadVectorRangeBoundariesStruct<iType, HIPTeamMember> { - typedef iType index_type; + using index_type = iType; const index_type start; const index_type end; @@ -645,7 +613,7 @@ template <typename iType1, typename iType2> KOKKOS_INLINE_FUNCTION Impl::TeamThreadRangeBoundariesStruct< typename std::common_type<iType1, iType2>::type, Impl::HIPTeamMember> TeamThreadRange(const Impl::HIPTeamMember& thread, iType1 begin, iType2 end) { - typedef typename std::common_type<iType1, iType2>::type iType; + using iType = typename std::common_type<iType1, iType2>::type; return Impl::TeamThreadRangeBoundariesStruct<iType, Impl::HIPTeamMember>( thread, iType(begin), iType(end)); } @@ -663,7 +631,7 @@ KOKKOS_INLINE_FUNCTION Impl::TeamVectorRangeBoundariesStruct< typename std::common_type<iType1, iType2>::type, Impl::HIPTeamMember> TeamVectorRange(const Impl::HIPTeamMember& thread, const iType1& begin, const iType2& end) { - typedef typename std::common_type<iType1, iType2>::type iType; + using iType = typename std::common_type<iType1, iType2>::type; return Impl::TeamVectorRangeBoundariesStruct<iType, Impl::HIPTeamMember>( thread, iType(begin), iType(end)); } @@ -711,8 +679,8 @@ KOKKOS_INLINE_FUNCTION void parallel_for( loop_boundaries, const Closure& closure) { #ifdef __HIP_DEVICE_COMPILE__ - for (iType i = loop_boundaries.start + hipThreadIdx_y; - i < loop_boundaries.end; i += hipBlockDim_y) + for (iType i = loop_boundaries.start + threadIdx.y; i < loop_boundaries.end; + i += blockDim.y) closure(i); #else (void)loop_boundaries; @@ -740,8 +708,8 @@ KOKKOS_INLINE_FUNCTION typename ReducerType::value_type value; reducer.init(value); - for (iType i = loop_boundaries.start + hipThreadIdx_y; - i < loop_boundaries.end; i += hipBlockDim_y) { + for (iType i = loop_boundaries.start + threadIdx.y; i < loop_boundaries.end; + i += blockDim.y) { closure(i, value); } @@ -773,8 +741,8 @@ KOKKOS_INLINE_FUNCTION reducer.init(reducer.reference()); - for (iType i = loop_boundaries.start + hipThreadIdx_y; - i < loop_boundaries.end; i += hipBlockDim_y) { + for (iType i = loop_boundaries.start + threadIdx.y; i < loop_boundaries.end; + i += blockDim.y) { closure(i, val); } @@ -787,15 +755,60 @@ KOKKOS_INLINE_FUNCTION #endif } +/** \brief Inter-thread parallel exclusive prefix sum. + * + * Executes closure(iType i, ValueType & val, bool final) for each i=[0..N) + * + * The range [0..N) is mapped to each rank in the team (whose global rank is + * less than N) and a scan operation is performed. The last call to closure has + * final == true. + */ +// This is the same code as in CUDA and largely the same as in OpenMPTarget +template <typename iType, typename FunctorType> +KOKKOS_INLINE_FUNCTION void parallel_scan( + const Impl::TeamThreadRangeBoundariesStruct<iType, Impl::HIPTeamMember>& + loop_bounds, + const FunctorType& lambda) { + // Extract value_type from lambda + using value_type = typename Kokkos::Impl::FunctorAnalysis< + Kokkos::Impl::FunctorPatternInterface::SCAN, void, + FunctorType>::value_type; + + const auto start = loop_bounds.start; + const auto end = loop_bounds.end; + auto& member = loop_bounds.member; + const auto team_size = member.team_size(); + const auto team_rank = member.team_rank(); + const auto nchunk = (end - start + team_size - 1) / team_size; + value_type accum = 0; + // each team has to process one or more chunks of the prefix scan + for (iType i = 0; i < nchunk; ++i) { + auto ii = start + i * team_size + team_rank; + // local accumulation for this chunk + value_type local_accum = 0; + // user updates value with prefix value + if (ii < loop_bounds.end) lambda(ii, local_accum, false); + // perform team scan + local_accum = member.team_scan(local_accum); + // add this blocks accum to total accumulation + auto val = accum + local_accum; + // user updates their data with total accumulation + if (ii < loop_bounds.end) lambda(ii, val, true); + // the last value needs to be propogated to next chunk + if (team_rank == team_size - 1) accum = val; + // broadcast last value to rest of the team + member.team_broadcast(accum, team_size - 1); + } +} + template <typename iType, class Closure> KOKKOS_INLINE_FUNCTION void parallel_for( const Impl::TeamVectorRangeBoundariesStruct<iType, Impl::HIPTeamMember>& loop_boundaries, const Closure& closure) { #ifdef __HIP_DEVICE_COMPILE__ - for (iType i = loop_boundaries.start + hipThreadIdx_y * hipBlockDim_x + - hipThreadIdx_x; - i < loop_boundaries.end; i += hipBlockDim_y * hipBlockDim_x) + for (iType i = loop_boundaries.start + threadIdx.y * blockDim.x + threadIdx.x; + i < loop_boundaries.end; i += blockDim.y * blockDim.x) closure(i); #else (void)loop_boundaries; @@ -813,9 +826,8 @@ KOKKOS_INLINE_FUNCTION typename ReducerType::value_type value; reducer.init(value); - for (iType i = loop_boundaries.start + hipThreadIdx_y * hipBlockDim_x + - hipThreadIdx_x; - i < loop_boundaries.end; i += hipBlockDim_y * hipBlockDim_x) { + for (iType i = loop_boundaries.start + threadIdx.y * blockDim.x + threadIdx.x; + i < loop_boundaries.end; i += blockDim.y * blockDim.x) { closure(i, value); } @@ -840,9 +852,8 @@ KOKKOS_INLINE_FUNCTION reducer.init(reducer.reference()); - for (iType i = loop_boundaries.start + hipThreadIdx_y * hipBlockDim_x + - hipThreadIdx_x; - i < loop_boundaries.end; i += hipBlockDim_y * hipBlockDim_x) { + for (iType i = loop_boundaries.start + threadIdx.y * blockDim.x + threadIdx.x; + i < loop_boundaries.end; i += blockDim.y * blockDim.x) { closure(i, val); } @@ -870,8 +881,8 @@ KOKKOS_INLINE_FUNCTION void parallel_for( loop_boundaries, const Closure& closure) { #ifdef __HIP_DEVICE_COMPILE__ - for (iType i = loop_boundaries.start + hipThreadIdx_x; - i < loop_boundaries.end; i += hipBlockDim_x) { + for (iType i = loop_boundaries.start + threadIdx.x; i < loop_boundaries.end; + i += blockDim.x) { closure(i); } #else @@ -902,8 +913,8 @@ KOKKOS_INLINE_FUNCTION #ifdef __HIP_DEVICE_COMPILE__ reducer.init(reducer.reference()); - for (iType i = loop_boundaries.start + hipThreadIdx_x; - i < loop_boundaries.end; i += hipBlockDim_x) { + for (iType i = loop_boundaries.start + threadIdx.x; i < loop_boundaries.end; + i += blockDim.x) { closure(i, reducer.reference()); } @@ -935,8 +946,8 @@ KOKKOS_INLINE_FUNCTION #ifdef __HIP_DEVICE_COMPILE__ result = ValueType(); - for (iType i = loop_boundaries.start + hipThreadIdx_x; - i < loop_boundaries.end; i += hipBlockDim_x) { + for (iType i = loop_boundaries.start + threadIdx.x; i < loop_boundaries.end; + i += blockDim.x) { closure(i, result); } @@ -977,22 +988,15 @@ KOKKOS_INLINE_FUNCTION void parallel_scan( // All thread "lanes" must loop the same number of times. // Determine an loop end for all thread "lanes." // Requires: - // hipBlockDim_x is power of two and thus - // ( end % hipBlockDim_x ) == ( end & ( hipBlockDim_x - 1 ) ) - // 1 <= hipBlockDim_x <= HIPTraits::WarpSize - - int constexpr warp_size = ::Kokkos::Experimental::Impl::HIPTraits::WarpSize; - const int mask = hipBlockDim_x - 1; - const unsigned active_mask = - blockDim.x == warp_size - ? 0xffffffff - : ((1 << hipBlockDim_x) - 1) - << (hipThreadIdx_y % (warp_size / hipBlockDim_x)) * - hipBlockDim_x; - const int rem = loop_boundaries.end & mask; // == end % hipBlockDim_x - const int end = loop_boundaries.end + (rem ? hipBlockDim_x - rem : 0); - - for (int i = hipThreadIdx_x; i < end; i += hipBlockDim_x) { + // blockDim.x is power of two and thus + // ( end % blockDim.x ) == ( end & ( blockDim.x - 1 ) ) + // 1 <= blockDim.x <= HIPTraits::WarpSize + + const int mask = blockDim.x - 1; + const int rem = loop_boundaries.end & mask; // == end % blockDim.x + const int end = loop_boundaries.end + (rem ? blockDim.x - rem : 0); + + for (int i = threadIdx.x; i < end; i += blockDim.x) { value_type val = 0; // First acquire per-lane contributions: @@ -1008,11 +1012,10 @@ KOKKOS_INLINE_FUNCTION void parallel_scan( // [t] += [t-4] if t >= 4 // ... - for (int j = 1; j < static_cast<int>(hipBlockDim_x); j <<= 1) { + for (int j = 1; j < static_cast<int>(blockDim.x); j <<= 1) { value_type tmp = 0; - ::Kokkos::Experimental::Impl::in_place_shfl_up( - tmp, sval, j, hipBlockDim_x, active_mask); - if (j <= static_cast<int>(hipThreadIdx_x)) { + ::Kokkos::Experimental::Impl::in_place_shfl_up(tmp, sval, j, blockDim.x); + if (j <= static_cast<int>(threadIdx.x)) { sval += tmp; } } @@ -1024,8 +1027,8 @@ KOKKOS_INLINE_FUNCTION void parallel_scan( if (i < loop_boundaries.end) closure(i, val, true); // Accumulate the last value in the inclusive scan: - ::Kokkos::Experimental::Impl::in_place_shfl(sval, sval, mask, blockDim.x, - active_mask); + ::Kokkos::Experimental::Impl::in_place_shfl(sval, sval, blockDim.x - 1, + blockDim.x); accum += sval; } @@ -1044,7 +1047,7 @@ KOKKOS_INLINE_FUNCTION void single( const Impl::VectorSingleStruct<Impl::HIPTeamMember>&, const FunctorType& lambda) { #ifdef __HIP_DEVICE_COMPILE__ - if (hipThreadIdx_x == 0) lambda(); + if (threadIdx.x == 0) lambda(); #else (void)lambda; #endif @@ -1055,7 +1058,7 @@ KOKKOS_INLINE_FUNCTION void single( const Impl::ThreadSingleStruct<Impl::HIPTeamMember>&, const FunctorType& lambda) { #ifdef __HIP_DEVICE_COMPILE__ - if (hipThreadIdx_x == 0 && hipThreadIdx_y == 0) lambda(); + if (threadIdx.x == 0 && threadIdx.y == 0) lambda(); #else (void)lambda; #endif @@ -1066,14 +1069,8 @@ KOKKOS_INLINE_FUNCTION void single( const Impl::VectorSingleStruct<Impl::HIPTeamMember>&, const FunctorType& lambda, ValueType& val) { #ifdef __HIP_DEVICE_COMPILE__ - int constexpr warp_size = ::Kokkos::Experimental::Impl::HIPTraits::WarpSize; - if (hipThreadIdx_x == 0) lambda(val); - unsigned mask = hipBlockDim_x == warp_size - ? 0xffffffff - : ((1 << hipBlockDim_x) - 1) - << ((hipThreadIdx_y % (warp_size / hipBlockDim_x)) * - hipBlockDim_x); - ::Kokkos::Experimental::Impl::in_place_shfl(val, val, 0, hipBlockDim_x, mask); + if (threadIdx.x == 0) lambda(val); + ::Kokkos::Experimental::Impl::in_place_shfl(val, val, 0, blockDim.x); #else (void)lambda; (void)val; @@ -1084,11 +1081,8 @@ template <class FunctorType, class ValueType> KOKKOS_INLINE_FUNCTION void single( const Impl::ThreadSingleStruct<Impl::HIPTeamMember>& single_struct, const FunctorType& lambda, ValueType& val) { - (void)single_struct; - (void)lambda; - (void)val; #ifdef __HIP_DEVICE_COMPILE__ - if (hipThreadIdx_x == 0 && hipThreadIdx_y == 0) { + if (threadIdx.x == 0 && threadIdx.y == 0) { lambda(val); } single_struct.team_member.team_broadcast(val, 0); @@ -1103,4 +1097,4 @@ KOKKOS_INLINE_FUNCTION void single( #endif /* defined( __HIPCC__ ) */ -#endif /* #ifndef KOKKOS_CUDA_TEAM_HPP */ +#endif /* #ifndef KOKKOS_HIP_TEAM_HPP */ diff --git a/packages/kokkos/core/src/HIP/Kokkos_HIP_UniqueToken.hpp b/packages/kokkos/core/src/HIP/Kokkos_HIP_UniqueToken.hpp new file mode 100644 index 000000000..f7e38a508 --- /dev/null +++ b/packages/kokkos/core/src/HIP/Kokkos_HIP_UniqueToken.hpp @@ -0,0 +1,129 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_HIP_UNIQUE_TOKEN_HPP +#define KOKKOS_HIP_UNIQUE_TOKEN_HPP + +#include <impl/Kokkos_ConcurrentBitset.hpp> +#include <Kokkos_HIP_Space.hpp> +#include <Kokkos_UniqueToken.hpp> + +namespace Kokkos { +namespace Experimental { + +// both global and instance Unique Tokens are implemented in the same way +template <> +class UniqueToken<HIP, UniqueTokenScope::Global> { + protected: + uint32_t volatile* m_buffer; + uint32_t m_count; + + public: + using execution_space = HIP; + using size_type = int32_t; + + explicit UniqueToken(execution_space const& = execution_space()) + : m_buffer(Impl::HIPInternal::singleton().m_scratchConcurrentBitset), + m_count(HIP::concurrency()) {} + + KOKKOS_DEFAULTED_FUNCTION + UniqueToken(const UniqueToken&) = default; + + KOKKOS_DEFAULTED_FUNCTION + UniqueToken(UniqueToken&&) = default; + + KOKKOS_DEFAULTED_FUNCTION + UniqueToken& operator=(const UniqueToken&) = default; + + KOKKOS_DEFAULTED_FUNCTION + UniqueToken& operator=(UniqueToken&&) = default; + + /// \brief upper bound for acquired values, i.e. 0 <= value < size() + KOKKOS_INLINE_FUNCTION + size_type size() const noexcept { return m_count; } + + /// \brief acquire value such that 0 <= value < size() + KOKKOS_INLINE_FUNCTION + size_type acquire() const { + const Kokkos::pair<int, int> result = + Kokkos::Impl::concurrent_bitset::acquire_bounded( + m_buffer, m_count, Kokkos::Impl::clock_tic() % m_count); + + if (result.first < 0) { + Kokkos::abort( + "UniqueToken<HIP> failure to acquire tokens, no tokens available"); + } + + return result.first; + } + + /// \brief release an acquired value + KOKKOS_INLINE_FUNCTION + void release(size_type i) const noexcept { + Kokkos::Impl::concurrent_bitset::release(m_buffer, i); + } +}; + +template <> +class UniqueToken<HIP, UniqueTokenScope::Instance> + : public UniqueToken<HIP, UniqueTokenScope::Global> { + View<uint32_t*, HIPSpace> m_buffer_view; + + public: + explicit UniqueToken(execution_space const& arg = execution_space()) + : UniqueToken<HIP, UniqueTokenScope::Global>(arg) {} + + UniqueToken(size_type max_size, execution_space const& = execution_space()) + : m_buffer_view( + "UniqueToken::m_buffer_view", + ::Kokkos::Impl::concurrent_bitset::buffer_bound(max_size)) { + m_buffer = m_buffer_view.data(); + m_count = max_size; + } +}; + +} // namespace Experimental +} // namespace Kokkos + +#endif diff --git a/packages/kokkos/core/src/HIP/Kokkos_HIP_Vectorization.hpp b/packages/kokkos/core/src/HIP/Kokkos_HIP_Vectorization.hpp index 58b5abb2e..c5ca89a9f 100644 --- a/packages/kokkos/core/src/HIP/Kokkos_HIP_Vectorization.hpp +++ b/packages/kokkos/core/src/HIP/Kokkos_HIP_Vectorization.hpp @@ -46,20 +46,16 @@ #define KOKKOS_HIP_VECTORIZATION_HPP #include <Kokkos_Macros.hpp> -#include <Kokkos_HIP.hpp> namespace Kokkos { namespace Experimental { namespace Impl { -// Include all lanes -constexpr unsigned shfl_all_mask = 0xffffffff; - //---------------------------------------------------------------------------- // Shuffle operations require input to be a register (stack) variable -// Derived implements do_shfl_op(unsigned mask, T& in, int lane, int width), -// which turns in to one of KOKKOS_IMPL_HIP_SHFL(_UP_|_DOWN_|_)MASK +// Derived implements do_shfl_op( T& in, int lane, int width), +// which turns in to one of __shfl_XXX // Since the logic with respect to value sizes, etc., is the same everywhere, // put it all in one place. template <class Derived> @@ -69,52 +65,76 @@ struct in_place_shfl_op { return *static_cast<Derived const*>(this); } + // FIXME_HIP depends on UB + // sizeof(Scalar) < sizeof(int) case + template <class Scalar> + // requires _assignable_from_bits<Scalar> + __device__ inline typename std::enable_if<sizeof(Scalar) < sizeof(int)>::type + operator()(Scalar& out, Scalar const& in, int lane_or_delta, int width) const + noexcept { + using shfl_type = int; + union conv_type { + Scalar orig; + shfl_type conv; + }; + conv_type tmp_in; + tmp_in.orig = in; + conv_type tmp_out; + tmp_out.conv = tmp_in.conv; + conv_type res; + //------------------------------------------------ + res.conv = self().do_shfl_op( + reinterpret_cast<shfl_type const&>(tmp_out.conv), lane_or_delta, width); + //------------------------------------------------ + out = res.orig; + } + // sizeof(Scalar) == sizeof(int) case template <class Scalar> // requires _assignable_from_bits<Scalar> __device__ inline typename std::enable_if<sizeof(Scalar) == sizeof(int)>::type - operator()(Scalar& out, Scalar const& in, int lane_or_delta, int width, - unsigned mask = shfl_all_mask) const noexcept { - //------------------------------------------------ + operator()(Scalar& out, Scalar const& in, int lane_or_delta, int width) const + noexcept { reinterpret_cast<int&>(out) = self().do_shfl_op( - mask, reinterpret_cast<int const&>(in), lane_or_delta, width); - //------------------------------------------------ + reinterpret_cast<int const&>(in), lane_or_delta, width); } template <class Scalar> __device__ inline typename std::enable_if<sizeof(Scalar) == sizeof(double)>::type - operator()(Scalar& out, Scalar const& in, int lane_or_delta, int width, - unsigned mask = shfl_all_mask) const noexcept { - //------------------------------------------------ + operator()(Scalar& out, Scalar const& in, int lane_or_delta, + int width) const noexcept { reinterpret_cast<double&>(out) = self().do_shfl_op( - mask, *reinterpret_cast<double const*>(&in), lane_or_delta, width); - //------------------------------------------------ + *reinterpret_cast<double const*>(&in), lane_or_delta, width); } // sizeof(Scalar) > sizeof(double) case template <typename Scalar> __device__ inline typename std::enable_if<(sizeof(Scalar) > sizeof(double))>::type - operator()(Scalar& out, const Scalar& val, int lane_or_delta, int width, - unsigned mask = shfl_all_mask) const noexcept { + operator()(Scalar& out, const Scalar& val, int lane_or_delta, + int width) const noexcept { using shuffle_as_t = int; - enum : int { N = sizeof(Scalar) / sizeof(shuffle_as_t) }; + int constexpr N = sizeof(Scalar) / sizeof(shuffle_as_t); for (int i = 0; i < N; ++i) { reinterpret_cast<shuffle_as_t*>(&out)[i] = self().do_shfl_op( - mask, reinterpret_cast<shuffle_as_t const*>(&val)[i], lane_or_delta, - width); + reinterpret_cast<shuffle_as_t const*>(&val)[i], lane_or_delta, width); } } }; struct in_place_shfl_fn : in_place_shfl_op<in_place_shfl_fn> { template <class T> - __device__ KOKKOS_IMPL_FORCEINLINE T do_shfl_op(unsigned mask, T& val, - int lane, int width) const - noexcept { - return KOKKOS_IMPL_HIP_SHFL_MASK(mask, val, lane, width); + __device__ KOKKOS_IMPL_FORCEINLINE T do_shfl_op(T& val, int lane, + int width) const noexcept { + // FIXME_HIP Not sure why there is a race condition here. Note that the + // problem was also found in the CUDA backend with CUDA clang + // (https://github.com/kokkos/kokkos/issues/941) but it seems more limited + // in CUDA clang. + auto return_val = __shfl(val, lane, width); + __threadfence(); + return return_val; } }; @@ -125,10 +145,15 @@ __device__ KOKKOS_IMPL_FORCEINLINE void in_place_shfl(Args&&... args) noexcept { struct in_place_shfl_up_fn : in_place_shfl_op<in_place_shfl_up_fn> { template <class T> - __device__ KOKKOS_IMPL_FORCEINLINE T do_shfl_op(unsigned mask, T& val, - int lane, int width) const - noexcept { - return KOKKOS_IMPL_HIP_SHFL_UP_MASK(mask, val, lane, width); + __device__ KOKKOS_IMPL_FORCEINLINE T do_shfl_op(T& val, int lane, + int width) const noexcept { + // FIXME_HIP Not sure why there is a race condition here. Note that the + // problem was also found in the CUDA backend with CUDA clang + // (https://github.com/kokkos/kokkos/issues/941) but it seems more limited + // in CUDA clang. + auto return_val = __shfl_up(val, lane, width); + __threadfence(); + return return_val; } }; @@ -140,10 +165,15 @@ __device__ KOKKOS_IMPL_FORCEINLINE void in_place_shfl_up( struct in_place_shfl_down_fn : in_place_shfl_op<in_place_shfl_down_fn> { template <class T> - __device__ KOKKOS_IMPL_FORCEINLINE T do_shfl_op(unsigned mask, T& val, - int lane, int width) const - noexcept { - return KOKKOS_IMPL_HIP_SHFL_DOWN_MASK(mask, val, lane, width); + __device__ KOKKOS_IMPL_FORCEINLINE T do_shfl_op(T& val, int lane, + int width) const noexcept { + // FIXME_HIP Not sure why there is a race condition here. Note that the + // problem was also found in the CUDA backend with CUDA clang + // (https://github.com/kokkos/kokkos/issues/941) but it seems more limited + // in CUDA clang. + auto return_val = __shfl_down(val, lane, width); + __threadfence(); + return return_val; } }; @@ -154,6 +184,31 @@ __device__ KOKKOS_IMPL_FORCEINLINE void in_place_shfl_down( } } // namespace Impl + +template <class T> +// requires default_constructible<T> && _assignable_from_bits<T> +__device__ inline T shfl(const T& val, const int& srcLane, const int& width) { + T rv = {}; + Impl::in_place_shfl(rv, val, srcLane, width); + return rv; +} + +template <class T> +// requires default_constructible<T> && _assignable_from_bits<T> +__device__ inline T shfl_down(const T& val, int delta, int width) { + T rv = {}; + Impl::in_place_shfl_down(rv, val, delta, width); + return rv; +} + +template <class T> +// requires default_constructible<T> && _assignable_from_bits<T> +__device__ inline T shfl_up(const T& val, int delta, int width) { + T rv = {}; + Impl::in_place_shfl_up(rv, val, delta, width); + return rv; +} + } // namespace Experimental } // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/HIP/Kokkos_HIP_WorkGraphPolicy.hpp similarity index 52% rename from packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp rename to packages/kokkos/core/src/HIP/Kokkos_HIP_WorkGraphPolicy.hpp index cf7972a44..3e053d8f1 100644 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp +++ b/packages/kokkos/core/src/HIP/Kokkos_HIP_WorkGraphPolicy.hpp @@ -1,3 +1,4 @@ +/* //@HEADER // ************************************************************************ // @@ -8,8 +9,6 @@ // Under the terms of Contract DE-NA0003525 with NTESS, // the U.S. Government retains certain rights in this software. // -// Kokkos is licensed under 3-clause BSD terms of use: -// // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: @@ -41,19 +40,73 @@ // // ************************************************************************ //@HEADER +*/ + +#ifndef KOKKOS_HIP_WORKGRAPHPOLICY_HPP +#define KOKKOS_HIP_WORKGRAPHPOLICY_HPP + +#include <Kokkos_HIP.hpp> -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> namespace Kokkos { namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutLeft, Experimental::ROCm, - int64_t) + +template <class FunctorType, class... Traits> +class ParallelFor<FunctorType, Kokkos::WorkGraphPolicy<Traits...>, + Kokkos::Experimental::HIP> { + public: + using Policy = Kokkos::WorkGraphPolicy<Traits...>; + using Self = ParallelFor<FunctorType, Policy, Kokkos::Experimental::HIP>; + + private: + Policy m_policy; + FunctorType m_functor; + + template <class TagType> + __device__ inline + typename std::enable_if<std::is_same<TagType, void>::value>::type + exec_one(const std::int32_t w) const noexcept { + m_functor(w); + } + + template <class TagType> + __device__ inline + typename std::enable_if<!std::is_same<TagType, void>::value>::type + exec_one(const std::int32_t w) const noexcept { + const TagType t{}; + m_functor(t, w); + } + + public: + __device__ inline void operator()() const noexcept { + // Spin until COMPLETED_TOKEN. + // END_TOKEN indicates no work is currently available. + for (std::int32_t w = Policy::END_TOKEN; + Policy::COMPLETED_TOKEN != (w = m_policy.pop_work());) { + if (Policy::END_TOKEN != w) { + exec_one<typename Policy::work_tag>(w); + m_policy.completed_work(w); + } + } + } + + inline void execute() { + const int warps_per_block = 4; + const dim3 grid( + Kokkos::Experimental::Impl::hip_internal_multiprocessor_count(), 1, 1); + const dim3 block(1, Kokkos::Experimental::Impl::HIPTraits::WarpSize, + warps_per_block); + const int shared = 0; + + Kokkos::Experimental::Impl::HIPParallelLaunch<Self>( + *this, grid, block, shared, + Experimental::HIP().impl_internal_space_instance(), false); + } + + inline ParallelFor(const FunctorType& arg_functor, const Policy& arg_policy) + : m_policy(arg_policy), m_functor(arg_functor) {} +}; } // namespace Impl } // namespace Kokkos + +#endif /* #define KOKKOS_HIP_WORKGRAPHPOLICY_HPP */ diff --git a/packages/kokkos/core/src/HPX/Kokkos_HPX.cpp b/packages/kokkos/core/src/HPX/Kokkos_HPX.cpp index acbd1074f..910d5e52e 100644 --- a/packages/kokkos/core/src/HPX/Kokkos_HPX.cpp +++ b/packages/kokkos/core/src/HPX/Kokkos_HPX.cpp @@ -42,7 +42,7 @@ //@HEADER */ -#include <Kokkos_Macros.hpp> +#include <Kokkos_Core.hpp> #ifdef KOKKOS_ENABLE_HPX #include <Kokkos_HPX.hpp> @@ -53,9 +53,12 @@ namespace Kokkos { namespace Experimental { bool HPX::m_hpx_initialized = false; -Kokkos::Impl::thread_buffer HPX::m_buffer; +std::atomic<uint32_t> HPX::m_next_instance_id{1}; #if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) -hpx::future<void> HPX::m_future = hpx::make_ready_future<void>(); +std::atomic<uint32_t> HPX::m_active_parallel_region_count{0}; +HPX::instance_data HPX::m_global_instance_data; +#else +Kokkos::Impl::thread_buffer HPX::m_global_buffer; #endif int HPX::concurrency() { @@ -76,7 +79,7 @@ void HPX::impl_initialize(int thread_count) { if (rt == nullptr) { std::vector<std::string> config = { "hpx.os_threads=" + std::to_string(thread_count), -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG "--hpx:attach-debugger=exception", #endif }; @@ -107,7 +110,7 @@ void HPX::impl_initialize() { hpx::runtime *rt = hpx::get_runtime_ptr(); if (rt == nullptr) { std::vector<std::string> config = { -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG "--hpx:attach-debugger=exception", #endif }; @@ -150,6 +153,56 @@ void HPX::impl_finalize() { } } // namespace Experimental + +namespace Impl { + +int g_hpx_space_factory_initialized = + initialize_space_factory<HPXSpaceInitializer>("060_HPX"); + +void HPXSpaceInitializer::initialize(const InitArguments &args) { + const int num_threads = args.num_threads; + + if (std::is_same<Kokkos::Experimental::HPX, + Kokkos::DefaultExecutionSpace>::value || + std::is_same<Kokkos::Experimental::HPX, + Kokkos::HostSpace::execution_space>::value) { + if (num_threads > 0) { + Kokkos::Experimental::HPX::impl_initialize(num_threads); + } else { + Kokkos::Experimental::HPX::impl_initialize(); + } + // std::cout << "Kokkos::initialize() fyi: HPX enabled and initialized" << + // std::endl ; + } else { + // std::cout << "Kokkos::initialize() fyi: HPX enabled but not initialized" + // << std::endl ; + } +} + +void HPXSpaceInitializer::finalize(const bool all_spaces) { + if (std::is_same<Kokkos::Experimental::HPX, + Kokkos::DefaultExecutionSpace>::value || + std::is_same<Kokkos::Experimental::HPX, + Kokkos::HostSpace::execution_space>::value || + all_spaces) { + if (Kokkos::Experimental::HPX::impl_is_initialized()) + Kokkos::Experimental::HPX::impl_finalize(); + } +} + +void HPXSpaceInitializer::fence() { Kokkos::Experimental::HPX().fence(); } + +void HPXSpaceInitializer::print_configuration(std::ostream &msg, + const bool detail) { + msg << "HPX Execution Space:" << std::endl; + msg << " KOKKOS_ENABLE_HPX: "; + msg << "yes" << std::endl; + + msg << "\nHPX Runtime Configuration:" << std::endl; + Kokkos::Experimental::HPX::print_configuration(msg, detail); +} + +} // namespace Impl } // namespace Kokkos #else diff --git a/packages/kokkos/core/src/HPX/Kokkos_HPX_Task.hpp b/packages/kokkos/core/src/HPX/Kokkos_HPX_Task.hpp index 803d95591..df09e026f 100644 --- a/packages/kokkos/core/src/HPX/Kokkos_HPX_Task.hpp +++ b/packages/kokkos/core/src/HPX/Kokkos_HPX_Task.hpp @@ -80,7 +80,8 @@ class TaskQueueSpecialization< // This is not necessarily the most efficient, but can be improved later. TaskQueueSpecialization<scheduler_type> task_queue; task_queue.scheduler = &scheduler; - Kokkos::Impl::dispatch_execute_task(&task_queue); + Kokkos::Impl::dispatch_execute_task(&task_queue, + Kokkos::Experimental::HPX()); Kokkos::Experimental::HPX().fence(); } @@ -92,7 +93,7 @@ class TaskQueueSpecialization< const int num_worker_threads = Kokkos::Experimental::HPX::concurrency(); - thread_buffer &buffer = Kokkos::Experimental::HPX::impl_get_buffer(); + thread_buffer &buffer = Kokkos::Experimental::HPX().impl_get_buffer(); buffer.resize(num_worker_threads, 512); auto &queue = scheduler->queue(); @@ -138,6 +139,10 @@ class TaskQueueSpecialization< } num_tasks_remaining.wait(); + +#if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) + Kokkos::Experimental::HPX::impl_decrement_active_parallel_region_count(); +#endif } static uint32_t get_max_team_count(execution_space const &espace) { @@ -207,7 +212,8 @@ class TaskQueueSpecializationConstrained< // This is not necessarily the most efficient, but can be improved later. TaskQueueSpecializationConstrained<scheduler_type> task_queue; task_queue.scheduler = &scheduler; - Kokkos::Impl::dispatch_execute_task(&task_queue); + Kokkos::Impl::dispatch_execute_task(&task_queue, + Kokkos::Experimental::HPX()); Kokkos::Experimental::HPX().fence(); } @@ -222,7 +228,7 @@ class TaskQueueSpecializationConstrained< static task_base_type *const end = (task_base_type *)task_base_type::EndTag; constexpr task_base_type *no_more_tasks_sentinel = nullptr; - thread_buffer &buffer = Kokkos::Experimental::HPX::impl_get_buffer(); + thread_buffer &buffer = Kokkos::Experimental::HPX().impl_get_buffer(); buffer.resize(num_worker_threads, 512); auto &queue = scheduler->queue(); @@ -276,6 +282,10 @@ class TaskQueueSpecializationConstrained< } num_tasks_remaining.wait(); + +#if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) + Kokkos::Experimental::HPX::impl_decrement_active_parallel_region_count(); +#endif } template <typename TaskType> diff --git a/packages/kokkos/core/src/HPX/Kokkos_HPX_ViewCopyETIAvail.hpp b/packages/kokkos/core/src/HPX/Kokkos_HPX_ViewCopyETIAvail.hpp deleted file mode 100644 index 99020a3e0..000000000 --- a/packages/kokkos/core/src/HPX/Kokkos_HPX_ViewCopyETIAvail.hpp +++ /dev/null @@ -1,57 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#ifndef KOKKOS_HPX_VIEWETIAVAIL_HPP -#define KOKKOS_HPX_VIEWETIAVAIL_HPP - -namespace Kokkos { -namespace Impl { -#define KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE Kokkos::Experimental::HPX - -#include <eti/common/Kokkos_ViewFillCopyETIAvail_Macros.hpp> - -#undef KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE -} // namespace Impl -} // namespace Kokkos -#endif diff --git a/packages/kokkos/core/src/HPX/Kokkos_HPX_WorkGraphPolicy.hpp b/packages/kokkos/core/src/HPX/Kokkos_HPX_WorkGraphPolicy.hpp index 6705005c1..527fe12ad 100644 --- a/packages/kokkos/core/src/HPX/Kokkos_HPX_WorkGraphPolicy.hpp +++ b/packages/kokkos/core/src/HPX/Kokkos_HPX_WorkGraphPolicy.hpp @@ -45,7 +45,7 @@ #ifndef KOKKOS_HPX_WORKGRAPHPOLICY_HPP #define KOKKOS_HPX_WORKGRAPHPOLICY_HPP -#include <HPX/Kokkos_HPX_ChunkedRoundRobinExecutor.hpp> +#include <Kokkos_HPX.hpp> #include <hpx/apply.hpp> #include <hpx/lcos/local/latch.hpp> @@ -78,8 +78,8 @@ class ParallelFor<FunctorType, Kokkos::WorkGraphPolicy<Traits...>, public: void execute() const { - dispatch_execute_task(this); - Kokkos::Experimental::HPX().fence(); + dispatch_execute_task(this, m_policy.space()); + m_policy.space().fence(); } void execute_task() const { diff --git a/packages/kokkos/core/src/KokkosExp_MDRangePolicy.hpp b/packages/kokkos/core/src/KokkosExp_MDRangePolicy.hpp index 3195dbded..140376425 100644 --- a/packages/kokkos/core/src/KokkosExp_MDRangePolicy.hpp +++ b/packages/kokkos/core/src/KokkosExp_MDRangePolicy.hpp @@ -52,19 +52,11 @@ #include <impl/KokkosExp_Host_IterateTile.hpp> #include <Kokkos_ExecPolicy.hpp> #include <Kokkos_Parallel.hpp> +#include <type_traits> -#if defined(__CUDACC__) && defined(KOKKOS_ENABLE_CUDA) -#include <Cuda/KokkosExp_Cuda_IterateTile.hpp> -#include <Cuda/KokkosExp_Cuda_IterateTile_Refactor.hpp> -#endif - -#if defined(__HCC__) && defined(KOKKOS_ENABLE_ROCM) -//#include<ROCm/KokkosExp_ROCm_IterateTile.hpp> -#include <ROCm/KokkosExp_ROCm_IterateTile_Refactor.hpp> -#endif - -#if defined(__HIPCC__) && defined(KOKKOS_ENABLE_HIP) -#include <HIP/KokkosExp_HIP_IterateTile.hpp> +#if defined(KOKKOS_ENABLE_CUDA) || \ + (defined(__HIPCC__) && defined(KOKKOS_ENABLE_HIP)) +#include <impl/KokkosExp_IterateTileGPU.hpp> #endif namespace Kokkos { @@ -83,8 +75,7 @@ enum class Iterate template <typename ExecSpace> struct default_outer_direction { using type = Iterate; -#if defined(KOKKOS_ENABLE_CUDA) || defined(KOKKOS_ENABLE_ROCM) || \ - defined(KOKKOS_ENABLE_HIP) +#if defined(KOKKOS_ENABLE_CUDA) || defined(KOKKOS_ENABLE_HIP) static constexpr Iterate value = Iterate::Left; #else static constexpr Iterate value = Iterate::Right; @@ -94,8 +85,7 @@ struct default_outer_direction { template <typename ExecSpace> struct default_inner_direction { using type = Iterate; -#if defined(KOKKOS_ENABLE_CUDA) || defined(KOKKOS_ENABLE_ROCM) || \ - defined(KOKKOS_ENABLE_HIP) +#if defined(KOKKOS_ENABLE_CUDA) || defined(KOKKOS_ENABLE_HIP) static constexpr Iterate value = Iterate::Left; #else static constexpr Iterate value = Iterate::Right; @@ -118,6 +108,79 @@ struct Rank { static constexpr Iterate inner_direction = InnerDir; }; +namespace Impl { +// NOTE the comparison below is encapsulated to silent warnings about pointless +// comparison of unsigned integer with zero +template <class T> +constexpr std::enable_if_t<!std::is_signed<T>::value, bool> +is_less_than_value_initialized_variable(T) { + return false; +} + +template <class T> +constexpr std::enable_if_t<std::is_signed<T>::value, bool> +is_less_than_value_initialized_variable(T arg) { + return arg < T{}; +} + +// Checked narrowing conversion that calls abort if the cast changes the value +template <class To, class From> +constexpr To checked_narrow_cast(From arg) { + constexpr const bool is_different_signedness = + (std::is_signed<To>::value != std::is_signed<From>::value); + auto const ret = static_cast<To>(arg); + if (static_cast<From>(ret) != arg || + (is_different_signedness && + is_less_than_value_initialized_variable(arg) != + is_less_than_value_initialized_variable(ret))) { + Kokkos::abort("unsafe narrowing conversion"); + } + return ret; +} +// NOTE prefer C array U[M] to std::initalizer_list<U> so that the number of +// elements can be deduced (https://stackoverflow.com/q/40241370) +// NOTE for some unfortunate reason the policy bounds are stored as signed +// integer arrays (point_type which is Kokkos::Array<std::int64_t>) so we +// specify the index type (actual policy index_type from the traits) and check +// ahead of time that narrowing conversions will be safe. +template <class IndexType, class Array, class U, std::size_t M> +constexpr Array to_array_potentially_narrowing(const U (&init)[M]) { + using T = typename Array::value_type; + Array a{}; + constexpr std::size_t N = a.size(); + static_assert(M <= N, ""); + auto* ptr = a.data(); + // NOTE equivalent to + // std::transform(std::begin(init), std::end(init), a.data(), + // [](U x) { return static_cast<T>(x); }); + // except that std::transform is not constexpr. + for (auto x : init) { + *ptr++ = checked_narrow_cast<T>(x); + (void)checked_narrow_cast<IndexType>(x); // see note above + } + return a; +} + +// NOTE Making a copy even when std::is_same<Array, Kokkos::Array<U, M>>::value +// is true to reduce code complexity. You may change this if you have a good +// reason to. Intentionally not enabling std::array at this time but this may +// change too. +template <class IndexType, class NVCC_WONT_LET_ME_CALL_YOU_Array, class U, + std::size_t M> +constexpr NVCC_WONT_LET_ME_CALL_YOU_Array to_array_potentially_narrowing( + Kokkos::Array<U, M> const& other) { + using T = typename NVCC_WONT_LET_ME_CALL_YOU_Array::value_type; + NVCC_WONT_LET_ME_CALL_YOU_Array a{}; + constexpr std::size_t N = a.size(); + static_assert(M <= N, ""); + for (std::size_t i = 0; i < M; ++i) { + a[i] = checked_narrow_cast<T>(other[i]); + (void)checked_narrow_cast<IndexType>(other[i]); // see note above + } + return a; +} +} // namespace Impl + // multi-dimensional iteration pattern template <typename... Properties> struct MDRangePolicy : public Kokkos::Impl::PolicyTraits<Properties...> { @@ -130,8 +193,9 @@ struct MDRangePolicy : public Kokkos::Impl::PolicyTraits<Properties...> { RangePolicy<typename traits::execution_space, typename traits::schedule_type, typename traits::index_type>; - typedef MDRangePolicy - execution_policy; // needed for is_execution_space interrogation + using execution_policy = + MDRangePolicy<Properties...>; // needed for is_execution_space + // interrogation template <class... OtherProperties> friend struct MDRangePolicy; @@ -147,7 +211,7 @@ struct MDRangePolicy : public Kokkos::Impl::PolicyTraits<Properties...> { enum { rank = static_cast<int>(iteration_pattern::rank) }; using index_type = typename traits::index_type; - using array_index_type = long; + using array_index_type = std::int64_t; using point_type = Kokkos::Array<array_index_type, rank>; // was index_type using tile_type = Kokkos::Array<array_index_type, rank>; // If point_type or tile_type is not templated on a signed integral type (if @@ -161,12 +225,12 @@ struct MDRangePolicy : public Kokkos::Impl::PolicyTraits<Properties...> { // as template parameter to the MDRangePolicy or static_cast the individual // values - point_type m_lower; - point_type m_upper; - tile_type m_tile; - point_type m_tile_end; - index_type m_num_tiles; - index_type m_prod_tile_dims; + point_type m_lower = {}; + point_type m_upper = {}; + tile_type m_tile = {}; + point_type m_tile_end = {}; + index_type m_num_tiles = 1; + index_type m_prod_tile_dims = 1; /* // NDE enum impl definition alternative - replace static constexpr int ? @@ -202,49 +266,89 @@ struct MDRangePolicy : public Kokkos::Impl::PolicyTraits<Properties...> { KOKKOS_INLINE_FUNCTION const typename traits::execution_space& space() const { return m_space; } - template <typename LT, typename UT, typename TT = array_index_type> - MDRangePolicy(std::initializer_list<LT> const& lower, - std::initializer_list<UT> const& upper, - std::initializer_list<TT> const& tile = {}) - : m_space() { - init(lower, upper, tile); + + MDRangePolicy() = default; + + template <typename LT, std::size_t LN, typename UT, std::size_t UN, + typename TT = array_index_type, std::size_t TN = rank, + typename = std::enable_if_t<std::is_integral<LT>::value && + std::is_integral<UT>::value && + std::is_integral<TT>::value>> + MDRangePolicy(const LT (&lower)[LN], const UT (&upper)[UN], + const TT (&tile)[TN] = {}) + : MDRangePolicy( + Impl::to_array_potentially_narrowing<index_type, decltype(m_lower)>( + lower), + Impl::to_array_potentially_narrowing<index_type, decltype(m_upper)>( + upper), + Impl::to_array_potentially_narrowing<index_type, decltype(m_tile)>( + tile)) { + static_assert( + LN == rank && UN == rank && TN <= rank, + "MDRangePolicy: Constructor initializer lists have wrong size"); } - template <typename LT, typename UT, typename TT = array_index_type> + template <typename LT, std::size_t LN, typename UT, std::size_t UN, + typename TT = array_index_type, std::size_t TN = rank, + typename = std::enable_if_t<std::is_integral<LT>::value && + std::is_integral<UT>::value && + std::is_integral<TT>::value>> MDRangePolicy(const typename traits::execution_space& work_space, - std::initializer_list<LT> const& lower, - std::initializer_list<UT> const& upper, - std::initializer_list<TT> const& tile = {}) - : m_space(work_space) { - init(lower, upper, tile); + const LT (&lower)[LN], const UT (&upper)[UN], + const TT (&tile)[TN] = {}) + : MDRangePolicy( + work_space, + Impl::to_array_potentially_narrowing<index_type, decltype(m_lower)>( + lower), + Impl::to_array_potentially_narrowing<index_type, decltype(m_upper)>( + upper), + Impl::to_array_potentially_narrowing<index_type, decltype(m_tile)>( + tile)) { + static_assert( + LN == rank && UN == rank && TN <= rank, + "MDRangePolicy: Constructor initializer lists have wrong size"); } + // NOTE: Keeping these two constructor despite the templated constructors + // from Kokkos arrays for backwards compability to allow construction from + // double-braced initializer lists. MDRangePolicy(point_type const& lower, point_type const& upper, tile_type const& tile = tile_type{}) - : m_space(), - m_lower(lower), - m_upper(upper), - m_tile(tile), - m_num_tiles(1), - m_prod_tile_dims(1) { - init(); - } + : MDRangePolicy(typename traits::execution_space(), lower, upper, tile) {} MDRangePolicy(const typename traits::execution_space& work_space, point_type const& lower, point_type const& upper, tile_type const& tile = tile_type{}) - : m_space(work_space), - m_lower(lower), - m_upper(upper), - m_tile(tile), - m_num_tiles(1), - m_prod_tile_dims(1) { + : m_space(work_space), m_lower(lower), m_upper(upper), m_tile(tile) { init(); } + template <typename T, std::size_t NT = rank, + typename = std::enable_if_t<std::is_integral<T>::value>> + MDRangePolicy(Kokkos::Array<T, rank> const& lower, + Kokkos::Array<T, rank> const& upper, + Kokkos::Array<T, NT> const& tile = Kokkos::Array<T, NT>{}) + : MDRangePolicy(typename traits::execution_space(), lower, upper, tile) {} + + template <typename T, std::size_t NT = rank, + typename = std::enable_if_t<std::is_integral<T>::value>> + MDRangePolicy(const typename traits::execution_space& work_space, + Kokkos::Array<T, rank> const& lower, + Kokkos::Array<T, rank> const& upper, + Kokkos::Array<T, NT> const& tile = Kokkos::Array<T, NT>{}) + : MDRangePolicy( + work_space, + Impl::to_array_potentially_narrowing<index_type, decltype(m_lower)>( + lower), + Impl::to_array_potentially_narrowing<index_type, decltype(m_upper)>( + upper), + Impl::to_array_potentially_narrowing<index_type, decltype(m_tile)>( + tile)) {} + template <class... OtherProperties> MDRangePolicy(const MDRangePolicy<OtherProperties...> p) - : m_space(p.m_space), + : traits(p), // base class may contain data such as desired occupancy + m_space(p.m_space), m_lower(p.m_lower), m_upper(p.m_upper), m_tile(p.m_tile), @@ -259,10 +363,6 @@ struct MDRangePolicy : public Kokkos::Impl::PolicyTraits<Properties...> { #if defined(KOKKOS_ENABLE_CUDA) && !std::is_same<typename traits::execution_space, Kokkos::Cuda>::value #endif -#if defined(KOKKOS_ENABLE_ROCM) - && !std::is_same<typename traits::execution_space, - Kokkos::Experimental::ROCm>::value -#endif #if defined(KOKKOS_ENABLE_HIP) && !std::is_same<typename traits::execution_space, Kokkos::Experimental::HIP>::value @@ -286,7 +386,7 @@ struct MDRangePolicy : public Kokkos::Impl::PolicyTraits<Properties...> { } } #if defined(KOKKOS_ENABLE_CUDA) || defined(KOKKOS_ENABLE_HIP) - else // Cuda + else // Cuda or HIP { index_type span; int increment = 1; @@ -306,7 +406,7 @@ struct MDRangePolicy : public Kokkos::Impl::PolicyTraits<Properties...> { for (int i = rank_start; i != rank_end; i += increment) { span = m_upper[i] - m_lower[i]; if (m_tile[i] <= 0) { - // TODO: determine what is a good default tile size for cuda and HIP + // TODO: determine what is a good default tile size for Cuda and HIP // may be rank dependent if (((int)inner_direction == (int)Right && (i < rank - 1)) || ((int)inner_direction == (int)Left && (i > 0))) { @@ -330,9 +430,8 @@ struct MDRangePolicy : public Kokkos::Impl::PolicyTraits<Properties...> { if (is_cuda_exec_space) { printf(" Tile dimensions exceed Cuda limits\n"); Kokkos::abort( - " Cuda ExecSpace Error: MDRange tile dims exceed maximum number " - "of " - "threads per block - choose smaller tile dims"); + "Cuda ExecSpace Error: MDRange tile dims exceed maximum number " + "of threads per block - choose smaller tile dims"); } else { printf(" Tile dimensions exceed HIP limits\n"); Kokkos::abort( @@ -341,200 +440,6 @@ struct MDRangePolicy : public Kokkos::Impl::PolicyTraits<Properties...> { } } } -#endif -#if defined(KOKKOS_ENABLE_ROCM) - else // ROCm - { - index_type span; - int increment = 1; - int rank_start = 0; - int rank_end = rank; - if ((int)inner_direction == (int)Right) { - increment = -1; - rank_start = rank - 1; - rank_end = -1; - } - for (int i = rank_start; i != rank_end; i += increment) { - span = m_upper[i] - m_lower[i]; - if (m_tile[i] <= 0) { - // TODO: determine what is a good default tile size for rocm - // may be rank dependent - if (((int)inner_direction == (int)Right && (i < rank - 1)) || - ((int)inner_direction == (int)Left && (i > 0))) { - if (m_prod_tile_dims < 256) { - m_tile[i] = 4; - } else { - m_tile[i] = 1; - } - } else { - m_tile[i] = 16; - } - } - m_tile_end[i] = - static_cast<index_type>((span + m_tile[i] - 1) / m_tile[i]); - m_num_tiles *= m_tile_end[i]; - m_prod_tile_dims *= m_tile[i]; - } - if (m_prod_tile_dims > 1024) { // but product num_threads < 1024 - printf(" Tile dimensions exceed ROCm limits\n"); - Kokkos::abort( - " ROCm ExecSpace Error: MDRange tile dims exceed maximum number of " - "threads per block - choose smaller tile dims"); - // Kokkos::Impl::throw_runtime_exception( " Cuda ExecSpace Error: - // MDRange tile dims exceed maximum number of threads per block - choose - // smaller tile dims"); - } - } -#endif - } - - template <typename LT, typename UT, typename TT = array_index_type> - void init(std::initializer_list<LT> const& lower, - std::initializer_list<UT> const& upper, - std::initializer_list<TT> const& tile = {}) { - if (static_cast<int>(m_lower.size()) != rank || - static_cast<int>(m_upper.size()) != rank) - Kokkos::abort( - "MDRangePolicy: Constructor initializer lists have wrong size"); - - for (auto i = 0; i < rank; ++i) { - m_lower[i] = static_cast<array_index_type>(lower.begin()[i]); - m_upper[i] = static_cast<array_index_type>(upper.begin()[i]); - if (static_cast<int>(tile.size()) == rank) - m_tile[i] = static_cast<array_index_type>(tile.begin()[i]); - else - m_tile[i] = 0; - } - - m_num_tiles = 1; - m_prod_tile_dims = 1; - - // Host - if (true -#if defined(KOKKOS_ENABLE_CUDA) - && !std::is_same<typename traits::execution_space, Kokkos::Cuda>::value -#endif -#if defined(KOKKOS_ENABLE_ROCM) - && !std::is_same<typename traits::execution_space, - Kokkos::Experimental::ROCm>::value -#endif -#if defined(KOKKOS_ENABLE_HIP) - && !std::is_same<typename traits::execution_space, - Kokkos::Experimental::HIP>::value -#endif - ) { - index_type span; - for (int i = 0; i < rank; ++i) { - span = m_upper[i] - m_lower[i]; - if (m_tile[i] <= 0) { - if (((int)inner_direction == (int)Right && (i < rank - 1)) || - ((int)inner_direction == (int)Left && (i > 0))) { - m_tile[i] = 2; - } else { - m_tile[i] = (span == 0 ? 1 : span); - } - } - m_tile_end[i] = - static_cast<index_type>((span + m_tile[i] - 1) / m_tile[i]); - m_num_tiles *= m_tile_end[i]; - m_prod_tile_dims *= m_tile[i]; - } - } -#if defined(KOKKOS_ENABLE_CUDA) || defined(KOKKOS_ENABLE_HIP) - else // Cuda or HIP - { - index_type span; - int increment = 1; - int rank_start = 0; - int rank_end = rank; - if ((int)inner_direction == (int)Right) { - increment = -1; - rank_start = rank - 1; - rank_end = -1; - } - for (int i = rank_start; i != rank_end; i += increment) { - span = m_upper[i] - m_lower[i]; - if (m_tile[i] <= 0) { - // TODO: determine what is a good default tile size for cuda - // may be rank dependent - if (((int)inner_direction == (int)Right && (i < rank - 1)) || - ((int)inner_direction == (int)Left && (i > 0))) { - if (m_prod_tile_dims < 256) { - m_tile[i] = 2; - } else { - m_tile[i] = 1; - } - } else { - m_tile[i] = 16; - } - } - m_tile_end[i] = - static_cast<index_type>((span + m_tile[i] - 1) / m_tile[i]); - m_num_tiles *= m_tile_end[i]; - m_prod_tile_dims *= m_tile[i]; - } - if (m_prod_tile_dims > - 1024) { // Match Cuda restriction for ParallelReduce; 1024,1024,64 - // max per dim (Kepler), but product num_threads < 1024 -#if defined(KOKKOS_ENABLE_CUDA) - printf(" Tile dimensions exceed Cuda limits\n"); - Kokkos::abort( - " Cuda ExecSpace Error: MDRange tile dims exceed maximum number of " - "threads per block - choose smaller tile dims"); -#else - printf(" Tile dimensions exceed HIP limits\n"); - Kokkos::abort( - " HIP ExecSpace Error: MDRange tile dims exceed maximum number of " - "threads per block - choose smaller tile dims"); -#endif - } - } -#endif -#if defined(KOKKOS_ENABLE_ROCM) - else // ROCm - { - index_type span; - int increment = 1; - int rank_start = 0; - int rank_end = rank; - if ((int)inner_direction == (int)Right) { - increment = -1; - rank_start = rank - 1; - rank_end = -1; - } - for (int i = rank_start; i != rank_end; i += increment) { - span = m_upper[i] - m_lower[i]; - if (m_tile[i] <= 0) { - // TODO: determine what is a good default tile size for cuda - // may be rank dependent - if (((int)inner_direction == (int)Right && (i < rank - 1)) || - ((int)inner_direction == (int)Left && (i > 0))) { - if (m_prod_tile_dims < 256) { - m_tile[i] = 2; - } else { - m_tile[i] = 1; - } - } else { - m_tile[i] = 16; - } - } - m_tile_end[i] = - static_cast<index_type>((span + m_tile[i] - 1) / m_tile[i]); - m_num_tiles *= m_tile_end[i]; - m_prod_tile_dims *= m_tile[i]; - } - if (m_prod_tile_dims > - 1024) { // Match ROCm restriction for ParallelReduce; 1024,1024,1024 - // max per dim , but product num_threads < 1024 - printf(" Tile dimensions exceed ROCm limits\n"); - Kokkos::abort( - " ROCm ExecSpace Error: MDRange tile dims exceed maximum number of " - "threads per block - choose smaller tile dims"); - // Kokkos::Impl::throw_runtime_exception( " Cuda ExecSpace Error: - // MDRange tile dims exceed maximum number of threads per block - choose - // smaller tile dims"); - } - } #endif } }; @@ -549,170 +454,5 @@ using Kokkos::MDRangePolicy; using Kokkos::Rank; } // namespace Experimental } // namespace Kokkos -// ------------------------------------------------------------------ // - -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -// ------------------------------------------------------------------ // -// md_parallel_for - deprecated use parallel_for -// ------------------------------------------------------------------ // - -namespace Kokkos { -namespace Experimental { - -template <typename MDRange, typename Functor, typename Enable = void> -void md_parallel_for( - MDRange const& range, Functor const& f, const std::string& str = "", - typename std::enable_if< - (true -#if defined(KOKKOS_ENABLE_CUDA) - && !std::is_same<typename MDRange::range_policy::execution_space, - Kokkos::Cuda>::value -#endif -#if defined(KOKKOS_ENABLE_ROCM) - && !std::is_same<typename MDRange::range_policy::execution_space, - Kokkos::Experimental::ROCm>::value -#endif - )>::type* = 0) { - Kokkos::Impl::Experimental::MDFunctor<MDRange, Functor, void> g(range, f); - - using range_policy = typename MDRange::impl_range_policy; - - Kokkos::parallel_for(range_policy(0, range.m_num_tiles).set_chunk_size(1), g, - str); -} - -template <typename MDRange, typename Functor> -void md_parallel_for( - const std::string& str, MDRange const& range, Functor const& f, - typename std::enable_if< - (true -#if defined(KOKKOS_ENABLE_CUDA) - && !std::is_same<typename MDRange::range_policy::execution_space, - Kokkos::Cuda>::value -#endif -#if defined(KOKKOS_ENABLE_ROCM) - && !std::is_same<typename MDRange::range_policy::execution_space, - Kokkos::Experimental::ROCm>::value -#endif - )>::type* = 0) { - Kokkos::Impl::Experimental::MDFunctor<MDRange, Functor, void> g(range, f); - - using range_policy = typename MDRange::impl_range_policy; - - Kokkos::parallel_for(range_policy(0, range.m_num_tiles).set_chunk_size(1), g, - str); -} - -// Cuda specialization -#if defined(__CUDACC__) && defined(KOKKOS_ENABLE_CUDA) -template <typename MDRange, typename Functor> -void md_parallel_for( - const std::string& str, MDRange const& range, Functor const& f, - typename std::enable_if< - (true -#if defined(KOKKOS_ENABLE_CUDA) - && std::is_same<typename MDRange::range_policy::execution_space, - Kokkos::Cuda>::value -#endif - )>::type* = 0) { - Kokkos::Impl::DeviceIterateTile<MDRange, Functor, typename MDRange::work_tag> - closure(range, f); - closure.execute(); -} - -template <typename MDRange, typename Functor> -void md_parallel_for( - MDRange const& range, Functor const& f, const std::string& str = "", - typename std::enable_if< - (true -#if defined(KOKKOS_ENABLE_CUDA) - && std::is_same<typename MDRange::range_policy::execution_space, - Kokkos::Cuda>::value -#endif - )>::type* = 0) { - Kokkos::Impl::DeviceIterateTile<MDRange, Functor, typename MDRange::work_tag> - closure(range, f); - closure.execute(); -} -#endif -// ------------------------------------------------------------------ // - -// ------------------------------------------------------------------ // -// md_parallel_reduce - deprecated use parallel_reduce -// ------------------------------------------------------------------ // -template <typename MDRange, typename Functor, typename ValueType> -void md_parallel_reduce( - MDRange const& range, Functor const& f, ValueType& v, - const std::string& str = "", - typename std::enable_if< - (true -#if defined(KOKKOS_ENABLE_CUDA) - && !std::is_same<typename MDRange::range_policy::execution_space, - Kokkos::Cuda>::value -#endif -#if defined(KOKKOS_ENABLE_ROCM) - && !std::is_same<typename MDRange::range_policy::execution_space, - Kokkos::Experimental::ROCm>::value -#endif - )>::type* = 0) { - Kokkos::Impl::Experimental::MDFunctor<MDRange, Functor, ValueType> g(range, - f); - - using range_policy = typename MDRange::impl_range_policy; - Kokkos::parallel_reduce( - str, range_policy(0, range.m_num_tiles).set_chunk_size(1), g, v); -} - -template <typename MDRange, typename Functor, typename ValueType> -void md_parallel_reduce( - const std::string& str, MDRange const& range, Functor const& f, - ValueType& v, - typename std::enable_if< - (true -#if defined(KOKKOS_ENABLE_CUDA) - && !std::is_same<typename MDRange::range_policy::execution_space, - Kokkos::Cuda>::value -#endif -#if defined(KOKKOS_ENABLE_ROCM) - && !std::is_same<typename MDRange::range_policy::execution_space, - Kokkos::Experimental::ROCm>::value -#endif - )>::type* = 0) { - Kokkos::Impl::Experimental::MDFunctor<MDRange, Functor, ValueType> g(range, - f); - - using range_policy = typename MDRange::impl_range_policy; - - Kokkos::parallel_reduce( - str, range_policy(0, range.m_num_tiles).set_chunk_size(1), g, v); -} - -// Cuda - md_parallel_reduce not implemented - use parallel_reduce - -} // namespace Experimental -} // namespace Kokkos -#endif - -namespace Kokkos { -namespace Experimental { -namespace Impl { - -template <unsigned long P, class... Properties> -struct PolicyPropertyAdaptor<WorkItemProperty::ImplWorkItemProperty<P>, - MDRangePolicy<Properties...>> { - typedef MDRangePolicy<Properties...> policy_in_t; - typedef MDRangePolicy<typename policy_in_t::traits::execution_space, - typename policy_in_t::traits::schedule_type, - typename policy_in_t::traits::work_tag, - typename policy_in_t::traits::index_type, - typename policy_in_t::traits::iteration_pattern, - typename policy_in_t::traits::launch_bounds, - WorkItemProperty::ImplWorkItemProperty<P>> - policy_out_t; -}; - -} // namespace Impl -} // namespace Experimental -} // namespace Kokkos #endif // KOKKOS_CORE_EXP_MD_RANGE_POLICY_HPP diff --git a/packages/kokkos/core/src/HIP/Kokkos_HIP_KernelLaunch.cpp b/packages/kokkos/core/src/Kokkos_AcquireUniqueTokenImpl.hpp similarity index 70% rename from packages/kokkos/core/src/HIP/Kokkos_HIP_KernelLaunch.cpp rename to packages/kokkos/core/src/Kokkos_AcquireUniqueTokenImpl.hpp index 7c8582ef0..d6227b7bc 100644 --- a/packages/kokkos/core/src/HIP/Kokkos_HIP_KernelLaunch.cpp +++ b/packages/kokkos/core/src/Kokkos_AcquireUniqueTokenImpl.hpp @@ -42,31 +42,34 @@ //@HEADER */ -#include <Kokkos_Core.hpp> -#include <Kokkos_HIP_Space.hpp> -#include <HIP/Kokkos_HIP_KernelLaunch.hpp> +#ifndef KOKKOS_ACQUIRE_UNIQUE_TOKEN_IMPL_HPP +#define KOKKOS_ACQUIRE_UNIQUE_TOKEN_IMPL_HPP +#include <Kokkos_Core.hpp> +#include <Kokkos_UniqueToken.hpp> namespace Kokkos { namespace Experimental { -namespace Impl { -void *hip_resize_scratch_space(std::int64_t bytes, bool force_shrink) { - static void *ptr = nullptr; - static std::int64_t current_size = 0; - if (bytes > current_size) { - current_size = bytes; - if (ptr) Kokkos::kokkos_free<::Kokkos::Experimental::HIPSpace>(ptr); - ptr = Kokkos::kokkos_malloc<Kokkos::Experimental::HIPSpace>( - "HIPSpace::ScratchMemory", current_size); - } - if ((bytes < current_size) && (force_shrink)) { - current_size = bytes; - Kokkos::kokkos_free<::Kokkos::Experimental::HIPSpace>(ptr); - ptr = Kokkos::kokkos_malloc<Kokkos::Experimental::HIPSpace>( - "HIPSpace::ScratchMemory", current_size); - } - return ptr; +template <typename TeamPolicy> +KOKKOS_FUNCTION AcquireTeamUniqueToken<TeamPolicy>::AcquireTeamUniqueToken( + AcquireTeamUniqueToken<TeamPolicy>::token_type t, team_member_type team) + : my_token(t), my_team_acquired_val(team.team_scratch(0)), my_team(team) { + Kokkos::single(Kokkos::PerTeam(my_team), + [&]() { my_team_acquired_val() = my_token.acquire(); }); + my_team.team_barrier(); + + my_acquired_val = my_team_acquired_val(); } -} // namespace Impl + +template <typename TeamPolicy> +KOKKOS_FUNCTION AcquireTeamUniqueToken<TeamPolicy>::~AcquireTeamUniqueToken() { + my_team.team_barrier(); + Kokkos::single(Kokkos::PerTeam(my_team), + [&]() { my_token.release(my_acquired_val); }); + my_team.team_barrier(); +} + } // namespace Experimental } // namespace Kokkos + +#endif // KOKKOS_UNIQUE_TOKEN_HPP diff --git a/packages/kokkos/core/src/Kokkos_AnonymousSpace.hpp b/packages/kokkos/core/src/Kokkos_AnonymousSpace.hpp index a4e887668..8e226a078 100644 --- a/packages/kokkos/core/src/Kokkos_AnonymousSpace.hpp +++ b/packages/kokkos/core/src/Kokkos_AnonymousSpace.hpp @@ -56,12 +56,12 @@ namespace Kokkos { class AnonymousSpace { public: //! Tag this class as a kokkos memory space - typedef AnonymousSpace memory_space; - typedef Kokkos::DefaultExecutionSpace execution_space; - typedef size_t size_type; + using memory_space = AnonymousSpace; + using execution_space = Kokkos::DefaultExecutionSpace; + using size_type = size_t; //! This memory space preferred device_type - typedef Kokkos::Device<execution_space, memory_space> device_type; + using device_type = Kokkos::Device<execution_space, memory_space>; /**\brief Default memory space instance */ AnonymousSpace() = default; @@ -85,23 +85,23 @@ namespace Impl { template <typename OtherSpace> struct MemorySpaceAccess<Kokkos::AnonymousSpace, OtherSpace> { - enum { assignable = true }; - enum { accessible = true }; - enum { deepcopy = true }; + enum : bool { assignable = true }; + enum : bool { accessible = true }; + enum : bool { deepcopy = true }; }; template <typename OtherSpace> struct MemorySpaceAccess<OtherSpace, Kokkos::AnonymousSpace> { - enum { assignable = true }; - enum { accessible = true }; - enum { deepcopy = true }; + enum : bool { assignable = true }; + enum : bool { accessible = true }; + enum : bool { deepcopy = true }; }; template <> struct MemorySpaceAccess<Kokkos::AnonymousSpace, Kokkos::AnonymousSpace> { - enum { assignable = true }; - enum { accessible = true }; - enum { deepcopy = true }; + enum : bool { assignable = true }; + enum : bool { accessible = true }; + enum : bool { deepcopy = true }; }; template <typename OtherSpace> diff --git a/packages/kokkos/core/src/Kokkos_Array.hpp b/packages/kokkos/core/src/Kokkos_Array.hpp index d830616bd..0d1408df1 100644 --- a/packages/kokkos/core/src/Kokkos_Array.hpp +++ b/packages/kokkos/core/src/Kokkos_Array.hpp @@ -122,13 +122,13 @@ struct Array { T m_internal_implementation_private_member_data[N]; public: - typedef T& reference; - typedef typename std::add_const<T>::type& const_reference; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef T value_type; - typedef T* pointer; - typedef typename std::add_const<T>::type* const_pointer; + using reference = T&; + using const_reference = typename std::add_const<T>::type&; + using size_type = size_t; + using difference_type = ptrdiff_t; + using value_type = T; + using pointer = T*; + using const_pointer = typename std::add_const<T>::type*; KOKKOS_INLINE_FUNCTION static constexpr size_type size() { return N; } KOKKOS_INLINE_FUNCTION static constexpr bool empty() { return false; } @@ -158,38 +158,18 @@ struct Array { KOKKOS_INLINE_FUNCTION const_pointer data() const { return &m_internal_implementation_private_member_data[0]; } - -#ifdef KOKKOS_IMPL_HIP_CLANG_WORKAROUND - // Do not default unless move and move-assignment are also defined - KOKKOS_DEFAULTED_FUNCTION ~Array() = default; - KOKKOS_DEFAULTED_FUNCTION Array() = default; - KOKKOS_DEFAULTED_FUNCTION Array(const Array&) = default; - KOKKOS_DEFAULTED_FUNCTION Array& operator=(const Array&) = default; - - // Some supported compilers are not sufficiently C++11 compliant - // for default move constructor and move assignment operator. - KOKKOS_DEFAULTED_FUNCTION Array(Array&&) = default; - KOKKOS_DEFAULTED_FUNCTION Array& operator=(Array&&) = default; - - KOKKOS_INLINE_FUNCTION - Array(const std::initializer_list<T>& vals) { - for (size_t i = 0; i < N; i++) { - m_internal_implementation_private_member_data[i] = vals.begin()[i]; - } - } -#endif }; template <class T, class Proxy> struct Array<T, 0, Proxy> { public: - typedef T& reference; - typedef typename std::add_const<T>::type& const_reference; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef T value_type; - typedef T* pointer; - typedef typename std::add_const<T>::type* const_pointer; + using reference = T&; + using const_reference = typename std::add_const<T>::type&; + using size_type = size_t; + using difference_type = ptrdiff_t; + using value_type = T; + using pointer = T*; + using const_pointer = typename std::add_const<T>::type*; KOKKOS_INLINE_FUNCTION static constexpr size_type size() { return 0; } KOKKOS_INLINE_FUNCTION static constexpr bool empty() { return true; } @@ -240,13 +220,13 @@ struct Array<T, KOKKOS_INVALID_INDEX, Array<>::contiguous> { size_t m_size; public: - typedef T& reference; - typedef typename std::add_const<T>::type& const_reference; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef T value_type; - typedef T* pointer; - typedef typename std::add_const<T>::type* const_pointer; + using reference = T&; + using const_reference = typename std::add_const<T>::type&; + using size_type = size_t; + using difference_type = ptrdiff_t; + using value_type = T; + using pointer = T*; + using const_pointer = typename std::add_const<T>::type*; KOKKOS_INLINE_FUNCTION constexpr size_type size() const { return m_size; } KOKKOS_INLINE_FUNCTION constexpr bool empty() const { return 0 != m_size; } @@ -309,13 +289,13 @@ struct Array<T, KOKKOS_INVALID_INDEX, Array<>::strided> { size_t m_stride; public: - typedef T& reference; - typedef typename std::add_const<T>::type& const_reference; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef T value_type; - typedef T* pointer; - typedef typename std::add_const<T>::type* const_pointer; + using reference = T&; + using const_reference = typename std::add_const<T>::type&; + using size_type = size_t; + using difference_type = ptrdiff_t; + using value_type = T; + using pointer = T*; + using const_pointer = typename std::add_const<T>::type*; KOKKOS_INLINE_FUNCTION constexpr size_type size() const { return m_size; } KOKKOS_INLINE_FUNCTION constexpr bool empty() const { return 0 != m_size; } diff --git a/packages/kokkos/core/src/Kokkos_Atomic.hpp b/packages/kokkos/core/src/Kokkos_Atomic.hpp index 55139d07b..8cd60fa6b 100644 --- a/packages/kokkos/core/src/Kokkos_Atomic.hpp +++ b/packages/kokkos/core/src/Kokkos_Atomic.hpp @@ -73,20 +73,27 @@ #include <impl/Kokkos_Traits.hpp> //---------------------------------------------------------------------------- + +// Need to fix this for pure clang on windows #if defined(_WIN32) #define KOKKOS_ENABLE_WINDOWS_ATOMICS -#else + +#if defined(KOKKOS_ENABLE_CUDA) +#define KOKKOS_ENABLE_CUDA_ATOMICS +#if defined(KOKKOS_COMPILER_CLANG) +#define KOKKOS_ENABLE_GNU_ATOMICS +#endif +#endif + +#else // _WIN32 #if defined(KOKKOS_ENABLE_CUDA) // Compiling NVIDIA device code, must use Cuda atomics: #define KOKKOS_ENABLE_CUDA_ATOMICS -#elif defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_ROCM_GPU) - -#define KOKKOS_ENABLE_ROCM_ATOMICS - -#elif defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HIP_GPU) +#elif defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HIP_GPU) || \ + defined(KOKKOS_IMPL_ENABLE_OVERLOAD_HOST_DEVICE) #define KOKKOS_ENABLE_HIP_ATOMICS @@ -107,7 +114,7 @@ #define KOKKOS_ENABLE_SERIAL_ATOMICS #elif defined(KOKKOS_COMPILER_GNU) || defined(KOKKOS_COMPILER_CLANG) || \ - (defined(KOKKOS_COMPILER_NVCC)) + (defined(KOKKOS_COMPILER_NVCC) || defined(KOKKOS_COMPILER_IBM)) #define KOKKOS_ENABLE_GNU_ATOMICS @@ -172,23 +179,13 @@ inline const char* atomic_query_version() { // Implements Strongly-typed analogs of C++ standard memory orders #include "impl/Kokkos_Atomic_Memory_Order.hpp" -#if defined(KOKKOS_ENABLE_ROCM) -namespace Kokkos { -namespace Impl { -extern KOKKOS_INLINE_FUNCTION bool lock_address_rocm_space(void* ptr); - -extern KOKKOS_INLINE_FUNCTION void unlock_address_rocm_space(void* ptr); -} // namespace Impl -} // namespace Kokkos -#include <ROCm/Kokkos_ROCm_Atomic.hpp> -#endif #if defined(KOKKOS_ENABLE_HIP) #include <HIP/Kokkos_HIP_Atomic.hpp> #endif -#ifdef _WIN32 +#if defined(KOKKOS_ENABLE_WINDOWS_ATOMICS) #include "impl/Kokkos_Atomic_Windows.hpp" -#else +#endif //---------------------------------------------------------------------------- // Atomic Assembly // @@ -196,6 +193,15 @@ extern KOKKOS_INLINE_FUNCTION void unlock_address_rocm_space(void* ptr); #include "impl/Kokkos_Atomic_Assembly.hpp" +//---------------------------------------------------------------------------- +// Memory fence +// +// All loads and stores from this thread will be globally consistent before +// continuing +// +// void memory_fence() {...}; +#include "impl/Kokkos_Memory_Fence.hpp" + //---------------------------------------------------------------------------- // Atomic exchange // @@ -215,11 +221,8 @@ extern KOKKOS_INLINE_FUNCTION void unlock_address_rocm_space(void* ptr); #include "impl/Kokkos_Atomic_Compare_Exchange_Strong.hpp" -#endif //_WIN32 - #include "impl/Kokkos_Atomic_Generic.hpp" -#ifndef _WIN32 //---------------------------------------------------------------------------- // Atomic fetch and add // @@ -285,16 +288,6 @@ extern KOKKOS_INLINE_FUNCTION void unlock_address_rocm_space(void* ptr); // { T tmp = *dest ; *dest = max(*dest, val); return tmp ; } #include "impl/Kokkos_Atomic_MinMax.hpp" -#endif /*Not _WIN32*/ - -//---------------------------------------------------------------------------- -// Memory fence -// -// All loads and stores from this thread will be globally consistent before -// continuing -// -// void memory_fence() {...}; -#include "impl/Kokkos_Memory_Fence.hpp" //---------------------------------------------------------------------------- // Provide volatile_load and safe_load diff --git a/packages/kokkos/core/src/Kokkos_Complex.hpp b/packages/kokkos/core/src/Kokkos_Complex.hpp index fec5d62c3..fb2925a06 100644 --- a/packages/kokkos/core/src/Kokkos_Complex.hpp +++ b/packages/kokkos/core/src/Kokkos_Complex.hpp @@ -47,7 +47,11 @@ #include <Kokkos_Atomic.hpp> #include <Kokkos_NumericTraits.hpp> #include <complex> -#include <iostream> +#include <iosfwd> + +#ifdef KOKKOS_ENABLE_SYCL +#include <CL/sycl.hpp> +#endif namespace Kokkos { @@ -219,10 +223,7 @@ class // Scale (by the "1-norm" of y) to avoid unwarranted overflow. // If the real part is +/-Inf and the imaginary part is -/+Inf, // this won't change the result. -#if !defined(__HIP_DEVICE_COMPILE__) // FIXME_HIP - using std::fabs; -#endif - const RealType s = fabs(y.real()) + fabs(y.imag()); + const RealType s = std::fabs(y.real()) + std::fabs(y.imag()); // If s is 0, then y is zero, so x/y == real(x)/0 + i*imag(x)/0. // In that case, the relation x/y == (x/s) / (y/s) doesn't hold, @@ -250,10 +251,7 @@ class // Scale (by the "1-norm" of y) to avoid unwarranted overflow. // If the real part is +/-Inf and the imaginary part is -/+Inf, // this won't change the result. -#if !defined(__HIP_DEVICE_COMPILE__) // FIXME_HIP - using std::fabs; -#endif - const RealType s = fabs(y.real()) + fabs(y.imag()); + const RealType s = std::fabs(y.real()) + std::fabs(y.imag()); // If s is 0, then y is zero, so x/y == real(x)/0 + i*imag(x)/0. // In that case, the relation x/y == (x/s) / (y/s) doesn't hold, @@ -698,8 +696,9 @@ KOKKOS_INLINE_FUNCTION RealType real(const complex<RealType>& x) noexcept { //! Absolute value (magnitude) of a complex number. template <class RealType> KOKKOS_INLINE_FUNCTION RealType abs(const complex<RealType>& x) { -#if !defined(__CUDA_ARCH__) && \ - !defined(__HIP_DEVICE_COMPILE__) // FIXME_CUDA FIXME_HIP +#ifdef KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_SYCL + using cl::sycl::hypot; +#else using std::hypot; #endif return hypot(x.real(), x.imag()); @@ -710,31 +709,47 @@ template <class RealType> KOKKOS_INLINE_FUNCTION Kokkos::complex<RealType> pow(const complex<RealType>& x, const RealType& e) { RealType r = abs(x); -#if !defined(__HIP_DEVICE_COMPILE__) // FIXME_HIP +#ifdef KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_SYCL + using cl::sycl::atan; + using cl::sycl::cos; + using cl::sycl::pow; + using cl::sycl::sin; +#else using std::atan; using std::cos; using std::pow; using std::sin; #endif - using ::pow; RealType phi = atan(x.imag() / x.real()); return pow(r, e) * Kokkos::complex<RealType>(cos(phi * e), sin(phi * e)); } -//! Square root of a complex number. +//! Square root of a complex number. This is intended to match the stdc++ +//! implementation, which returns sqrt(z*z) = z; where z is complex number. template <class RealType> KOKKOS_INLINE_FUNCTION Kokkos::complex<RealType> sqrt( const complex<RealType>& x) { - RealType r = abs(x); -#if !defined(__HIP_DEVICE_COMPILE__) // FIXME_HIP - using std::atan; - using std::cos; - using std::sin; +#ifdef KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_SYCL + using cl::sycl::abs; + using cl::sycl::sqrt; +#else + using std::abs; using std::sqrt; #endif - using ::sqrt; - RealType phi = atan(x.imag() / x.real()); - return sqrt(r) * Kokkos::complex<RealType>(cos(phi * 0.5), sin(phi * 0.5)); + + RealType r = x.real(); + RealType i = x.imag(); + + if (r == RealType()) { + RealType t = sqrt(abs(i) / 2); + return Kokkos::complex<RealType>(t, i < RealType() ? -t : t); + } else { + RealType t = sqrt(2 * (abs(x) + abs(r))); + RealType u = t / 2; + return r > RealType() + ? Kokkos::complex<RealType>(u, i / t) + : Kokkos::complex<RealType>(abs(i) / t, i < RealType() ? -u : u); + } } //! Conjugate of a complex number. @@ -747,16 +762,213 @@ KOKKOS_INLINE_FUNCTION complex<RealType> conj( //! Exponential of a complex number. template <class RealType> KOKKOS_INLINE_FUNCTION complex<RealType> exp(const complex<RealType>& x) { -#if !defined(__HIP_DEVICE_COMPILE__) // FIXME_HIP +#ifdef KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_SYCL + using cl::sycl::cos; + using cl::sycl::exp; + using cl::sycl::sin; +#else using std::cos; using std::exp; using std::sin; -#else - using ::exp; #endif return exp(x.real()) * complex<RealType>(cos(x.imag()), sin(x.imag())); } +//! natural log of a complex number. +template <class RealType> +KOKKOS_INLINE_FUNCTION Kokkos::complex<RealType> log( + const complex<RealType>& x) { +#ifdef KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_SYCL + using cl::sycl::atan; + using cl::sycl::log; +#else + using std::atan; + using std::log; +#endif + RealType phi = atan(x.imag() / x.real()); + return Kokkos::complex<RealType>(log(abs(x)), phi); +} + +//! sine of a complex number. +template <class RealType> +KOKKOS_INLINE_FUNCTION Kokkos::complex<RealType> sin( + const complex<RealType>& x) { +#ifdef KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_SYCL + using cl::sycl::cos; + using cl::sycl::cosh; + using cl::sycl::sin; + using cl::sycl::sinh; +#else + using std::cos; + using std::cosh; + using std::sin; + using std::sinh; +#endif + return Kokkos::complex<RealType>(sin(x.real()) * cosh(x.imag()), + cos(x.real()) * sinh(x.imag())); +} + +//! cosine of a complex number. +template <class RealType> +KOKKOS_INLINE_FUNCTION Kokkos::complex<RealType> cos( + const complex<RealType>& x) { +#ifdef KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_SYCL + using cl::sycl::cos; + using cl::sycl::cosh; + using cl::sycl::sin; + using cl::sycl::sinh; +#else + using std::cos; + using std::cosh; + using std::sin; + using std::sinh; +#endif + return Kokkos::complex<RealType>(cos(x.real()) * cosh(x.imag()), + -sin(x.real()) * sinh(x.imag())); +} + +//! tangent of a complex number. +template <class RealType> +KOKKOS_INLINE_FUNCTION Kokkos::complex<RealType> tan( + const complex<RealType>& x) { + return sin(x) / cos(x); +} + +//! hyperbolic sine of a complex number. +template <class RealType> +KOKKOS_INLINE_FUNCTION Kokkos::complex<RealType> sinh( + const complex<RealType>& x) { +#ifdef KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_SYCL + using cl::sycl::cos; + using cl::sycl::cosh; + using cl::sycl::sin; + using cl::sycl::sinh; +#else + using std::cos; + using std::cosh; + using std::sin; + using std::sinh; +#endif + return Kokkos::complex<RealType>(sinh(x.real()) * cos(x.imag()), + cosh(x.real()) * sin(x.imag())); +} + +//! hyperbolic cosine of a complex number. +template <class RealType> +KOKKOS_INLINE_FUNCTION Kokkos::complex<RealType> cosh( + const complex<RealType>& x) { +#ifdef KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_SYCL + using cl::sycl::cos; + using cl::sycl::cosh; + using cl::sycl::sin; + using cl::sycl::sinh; +#else + using std::cos; + using std::cosh; + using std::sin; + using std::sinh; +#endif + return Kokkos::complex<RealType>(cosh(x.real()) * cos(x.imag()), + sinh(x.real()) * sin(x.imag())); +} + +//! hyperbolic tangent of a complex number. +template <class RealType> +KOKKOS_INLINE_FUNCTION Kokkos::complex<RealType> tanh( + const complex<RealType>& x) { + return sinh(x) / cosh(x); +} + +//! inverse hyperbolic sine of a complex number. +template <class RealType> +KOKKOS_INLINE_FUNCTION Kokkos::complex<RealType> asinh( + const complex<RealType>& x) { + return log(x + sqrt(x * x + RealType(1.0))); +} + +//! inverse hyperbolic cosine of a complex number. +template <class RealType> +KOKKOS_INLINE_FUNCTION Kokkos::complex<RealType> acosh( + const complex<RealType>& x) { + return RealType(2.0) * log(sqrt(RealType(0.5) * (x + RealType(1.0))) + + sqrt(RealType(0.5) * (x - RealType(1.0)))); +} + +//! inverse hyperbolic tangent of a complex number. +template <class RealType> +KOKKOS_INLINE_FUNCTION Kokkos::complex<RealType> atanh( + const complex<RealType>& x) { +#ifdef KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_SYCL + using cl::sycl::atan2; + using cl::sycl::log; +#else + using std::atan2; + using std::log; +#endif + + const RealType i2 = x.imag() * x.imag(); + const RealType r = RealType(1.0) - i2 - x.real() * x.real(); + + RealType p = RealType(1.0) + x.real(); + RealType m = RealType(1.0) - x.real(); + + p = i2 + p * p; + m = i2 + m * m; + + RealType phi = atan2(RealType(2.0) * x.imag(), r); + return Kokkos::complex<RealType>(RealType(0.25) * (log(p) - log(m)), + RealType(0.5) * phi); +} + +//! inverse sine of a complex number. +template <class RealType> +KOKKOS_INLINE_FUNCTION Kokkos::complex<RealType> asin( + const complex<RealType>& x) { + Kokkos::complex<RealType> t = + asinh(Kokkos::complex<RealType>(-x.imag(), x.real())); + return Kokkos::complex<RealType>(t.imag(), -t.real()); +} + +//! inverse cosine of a complex number. +template <class RealType> +KOKKOS_INLINE_FUNCTION Kokkos::complex<RealType> acos( + const complex<RealType>& x) { +#ifdef KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_SYCL + using cl::sycl::acos; + +#else + using std::acos; +#endif + Kokkos::complex<RealType> t = asin(x); + RealType pi_2 = acos(RealType(0.0)); + return Kokkos::complex<RealType>(pi_2 - t.real(), -t.imag()); +} + +//! inverse tangent of a complex number. +template <class RealType> +KOKKOS_INLINE_FUNCTION Kokkos::complex<RealType> atan( + const complex<RealType>& x) { +#ifdef KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_SYCL + using cl::sycl::atan2; + using cl::sycl::log; +#else + using std::atan2; + using std::log; +#endif + const RealType r2 = x.real() * x.real(); + const RealType i = RealType(1.0) - r2 - x.imag() * x.imag(); + + RealType p = x.imag() + RealType(1.0); + RealType m = x.imag() - RealType(1.0); + + p = r2 + p * p; + m = r2 + m * m; + + return Kokkos::complex<RealType>( + RealType(0.5) * atan2(RealType(2.0) * x.real(), i), + RealType(0.25) * log(p / m)); +} + /// This function cannot be called in a CUDA device function, /// because std::complex's methods and nonmember functions are not /// marked as CUDA device functions. @@ -787,12 +999,9 @@ KOKKOS_INLINE_FUNCTION // Scale (by the "1-norm" of y) to avoid unwarranted overflow. // If the real part is +/-Inf and the imaginary part is -/+Inf, // this won't change the result. -#if !defined(__HIP_DEVICE_COMPILE__) // FIXME_HIP - using std::fabs; -#endif - typedef - typename std::common_type<RealType1, RealType2>::type common_real_type; - const common_real_type s = fabs(real(y)) + fabs(imag(y)); + using common_real_type = + typename std::common_type<RealType1, RealType2>::type; + const common_real_type s = std::fabs(real(y)) + std::fabs(imag(y)); // If s is 0, then y is zero, so x/y == real(x)/0 + i*imag(x)/0. // In that case, the relation x/y == (x/s) / (y/s) doesn't hold, @@ -838,7 +1047,7 @@ std::istream& operator>>(std::istream& is, complex<RealType>& x) { template <class T> struct reduction_identity<Kokkos::complex<T> > { - typedef reduction_identity<T> t_red_ident; + using t_red_ident = reduction_identity<T>; KOKKOS_FORCEINLINE_FUNCTION constexpr static Kokkos::complex<T> sum() noexcept { return Kokkos::complex<T>(t_red_ident::sum(), t_red_ident::sum()); diff --git a/packages/kokkos/core/src/Kokkos_Concepts.hpp b/packages/kokkos/core/src/Kokkos_Concepts.hpp index 13d7925c1..2aba18948 100644 --- a/packages/kokkos/core/src/Kokkos_Concepts.hpp +++ b/packages/kokkos/core/src/Kokkos_Concepts.hpp @@ -95,11 +95,11 @@ struct WorkItemProperty { ImplWorkItemProperty<4>(); constexpr static const ImplWorkItemProperty<8> HintIrregular = ImplWorkItemProperty<8>(); - typedef ImplWorkItemProperty<0> None_t; - typedef ImplWorkItemProperty<1> HintLightWeight_t; - typedef ImplWorkItemProperty<2> HintHeavyWeight_t; - typedef ImplWorkItemProperty<4> HintRegular_t; - typedef ImplWorkItemProperty<8> HintIrregular_t; + using None_t = ImplWorkItemProperty<0>; + using HintLightWeight_t = ImplWorkItemProperty<1>; + using HintHeavyWeight_t = ImplWorkItemProperty<2>; + using HintRegular_t = ImplWorkItemProperty<4>; + using HintIrregular_t = ImplWorkItemProperty<8>; }; template <unsigned long pv1, unsigned long pv2> @@ -196,6 +196,7 @@ KOKKOS_IMPL_IS_CONCEPT(index_type) KOKKOS_IMPL_IS_CONCEPT(launch_bounds) KOKKOS_IMPL_IS_CONCEPT(thread_team_member) KOKKOS_IMPL_IS_CONCEPT(host_thread_team_member) +KOKKOS_IMPL_IS_CONCEPT(graph_kernel) } // namespace Impl @@ -219,7 +220,7 @@ class has_member_team_shmem_size { public: constexpr static bool value = - sizeof(test_for_member<Object>(0)) == sizeof(int32_t); + sizeof(test_for_member<Object>(nullptr)) == sizeof(int32_t); }; template <class Object> @@ -250,9 +251,9 @@ struct Device { "Execution space is not valid"); static_assert(Kokkos::is_memory_space<MemorySpace>::value, "Memory space is not valid"); - typedef ExecutionSpace execution_space; - typedef MemorySpace memory_space; - typedef Device<execution_space, memory_space> device_type; + using execution_space = ExecutionSpace; + using memory_space = MemorySpace; + using device_type = Device<execution_space, memory_space>; }; namespace Impl { @@ -277,88 +278,85 @@ struct is_space { private: template <typename, typename = void> struct exe : std::false_type { - typedef void space; + using space = void; }; template <typename, typename = void> struct mem : std::false_type { - typedef void space; + using space = void; }; template <typename, typename = void> struct dev : std::false_type { - typedef void space; + using space = void; }; template <typename U> struct exe<U, typename std::conditional<true, void, typename U::execution_space>::type> : std::is_same<U, typename U::execution_space>::type { - typedef typename U::execution_space space; + using space = typename U::execution_space; }; template <typename U> struct mem< U, typename std::conditional<true, void, typename U::memory_space>::type> : std::is_same<U, typename U::memory_space>::type { - typedef typename U::memory_space space; + using space = typename U::memory_space; }; template <typename U> struct dev< U, typename std::conditional<true, void, typename U::device_type>::type> : std::is_same<U, typename U::device_type>::type { - typedef typename U::device_type space; + using space = typename U::device_type; }; - typedef typename is_space::template exe<typename std::remove_cv<T>::type> - is_exe; - typedef typename is_space::template mem<typename std::remove_cv<T>::type> - is_mem; - typedef typename is_space::template dev<typename std::remove_cv<T>::type> - is_dev; + using is_exe = + typename is_space<T>::template exe<typename std::remove_cv<T>::type>; + using is_mem = + typename is_space<T>::template mem<typename std::remove_cv<T>::type>; + using is_dev = + typename is_space<T>::template dev<typename std::remove_cv<T>::type>; public: static constexpr bool value = is_exe::value || is_mem::value || is_dev::value; constexpr operator bool() const noexcept { return value; } - typedef typename is_exe::space execution_space; - typedef typename is_mem::space memory_space; + using execution_space = typename is_exe::space; + using memory_space = typename is_mem::space; // For backward compatibility, deprecated in favor of // Kokkos::Impl::HostMirror<S>::host_mirror_space - typedef typename std::conditional< + using host_memory_space = typename std::conditional< std::is_same<memory_space, Kokkos::HostSpace>::value #if defined(KOKKOS_ENABLE_CUDA) || std::is_same<memory_space, Kokkos::CudaUVMSpace>::value || std::is_same<memory_space, Kokkos::CudaHostPinnedSpace>::value #endif /* #if defined( KOKKOS_ENABLE_CUDA ) */ , - memory_space, Kokkos::HostSpace>::type host_memory_space; + memory_space, Kokkos::HostSpace>::type; #if defined(KOKKOS_ENABLE_CUDA) - typedef typename std::conditional< + using host_execution_space = typename std::conditional< std::is_same<execution_space, Kokkos::Cuda>::value, - Kokkos::DefaultHostExecutionSpace, execution_space>::type - host_execution_space; + Kokkos::DefaultHostExecutionSpace, execution_space>::type; #else #if defined(KOKKOS_ENABLE_OPENMPTARGET) - typedef typename std::conditional< + using host_execution_space = typename std::conditional< std::is_same<execution_space, Kokkos::Experimental::OpenMPTarget>::value, - Kokkos::DefaultHostExecutionSpace, execution_space>::type - host_execution_space; + Kokkos::DefaultHostExecutionSpace, execution_space>::type; #else - typedef execution_space host_execution_space; + using host_execution_space = execution_space; #endif #endif - typedef typename std::conditional< + using host_mirror_space = typename std::conditional< std::is_same<execution_space, host_execution_space>::value && std::is_same<memory_space, host_memory_space>::value, - T, Kokkos::Device<host_execution_space, host_memory_space>>::type - host_mirror_space; + T, Kokkos::Device<host_execution_space, host_memory_space>>::type; }; // For backward compatibility @@ -447,13 +445,12 @@ struct SpaceAccessibility { typename AccessSpace::memory_space>::accessible, "template argument #1 is an invalid space"); - typedef Kokkos::Impl::MemorySpaceAccess< - typename AccessSpace::execution_space::memory_space, MemorySpace> - exe_access; + using exe_access = Kokkos::Impl::MemorySpaceAccess< + typename AccessSpace::execution_space::memory_space, MemorySpace>; - typedef Kokkos::Impl::MemorySpaceAccess<typename AccessSpace::memory_space, - MemorySpace> - mem_access; + using mem_access = + Kokkos::Impl::MemorySpaceAccess<typename AccessSpace::memory_space, + MemorySpace>; public: /**\brief Can AccessSpace::execution_space access MemorySpace ? @@ -479,12 +476,11 @@ struct SpaceAccessibility { // to be able to access MemorySpace? // If same memory space or not accessible use the AccessSpace // else construct a device with execution space and memory space. - typedef typename std::conditional< + using space = typename std::conditional< std::is_same<typename AccessSpace::memory_space, MemorySpace>::value || !exe_access::accessible, AccessSpace, - Kokkos::Device<typename AccessSpace::execution_space, MemorySpace>>::type - space; + Kokkos::Device<typename AccessSpace::execution_space, MemorySpace>>::type; }; } // namespace Kokkos diff --git a/packages/kokkos/core/src/Kokkos_CopyViews.hpp b/packages/kokkos/core/src/Kokkos_CopyViews.hpp index 810b71273..a27d5f0e4 100644 --- a/packages/kokkos/core/src/Kokkos_CopyViews.hpp +++ b/packages/kokkos/core/src/Kokkos_CopyViews.hpp @@ -45,14 +45,12 @@ #ifndef KOKKOS_COPYVIEWS_HPP_ #define KOKKOS_COPYVIEWS_HPP_ #include <string> +#include <Kokkos_Parallel.hpp> +#include <KokkosExp_MDRangePolicy.hpp> //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- -#ifndef KOKKOS_IMPL_COMPILING_LIBRARY -#define KOKKOS_IMPL_COMPILING_LIBRARY false -#endif - namespace Kokkos { namespace Impl { @@ -73,116 +71,12 @@ struct ViewFillLayoutSelector<Kokkos::LayoutRight> { } // namespace Impl } // namespace Kokkos -#include <impl/Kokkos_ViewFillCopyETIAvail.hpp> - namespace Kokkos { namespace Impl { -template <class ViewType, class Layout, class ExecSpace, typename iType, - bool ETIAvail> -struct ViewFill<ViewType, Layout, ExecSpace, 0, iType, ETIAvail> { - ViewType a; - typename ViewType::const_value_type val; - typedef typename ViewType::non_const_value_type ST; - ViewFill(const ViewType&, const ST&, const ExecSpace&); -}; - -template <class ViewType, class Layout, class ExecSpace, typename iType, - bool ETIAvail> -struct ViewFill<ViewType, Layout, ExecSpace, 1, iType, ETIAvail> { - ViewType a; - typename ViewType::const_value_type val; - typedef typename ViewType::non_const_value_type ST; - ViewFill(const ViewType&, const ST&, const ExecSpace&); - KOKKOS_INLINE_FUNCTION - void operator()(const iType&) const; -}; - -template <class ViewType, class Layout, class ExecSpace, typename iType, - bool ETIAvail> -struct ViewFill<ViewType, Layout, ExecSpace, 2, iType, ETIAvail> { - ViewType a; - typename ViewType::const_value_type val; - typedef typename ViewType::non_const_value_type ST; - ViewFill(const ViewType&, const ST&, const ExecSpace&); - KOKKOS_INLINE_FUNCTION - void operator()(const iType&, const iType&) const; -}; - -template <class ViewType, class Layout, class ExecSpace, typename iType, - bool ETIAvail> -struct ViewFill<ViewType, Layout, ExecSpace, 3, iType, ETIAvail> { - ViewType a; - typename ViewType::const_value_type val; - typedef typename ViewType::non_const_value_type ST; - ViewFill(const ViewType&, const ST&, const ExecSpace&); - KOKKOS_INLINE_FUNCTION - void operator()(const iType&, const iType&, const iType&) const; -}; - -template <class ViewType, class Layout, class ExecSpace, typename iType, - bool ETIAvail> -struct ViewFill<ViewType, Layout, ExecSpace, 4, iType, ETIAvail> { - ViewType a; - typename ViewType::const_value_type val; - typedef typename ViewType::non_const_value_type ST; - ViewFill(const ViewType&, const ST&, const ExecSpace&); - KOKKOS_INLINE_FUNCTION - void operator()(const iType&, const iType&, const iType&, const iType&) const; -}; - -template <class ViewType, class Layout, class ExecSpace, typename iType, - bool ETIAvail> -struct ViewFill<ViewType, Layout, ExecSpace, 5, iType, ETIAvail> { - ViewType a; - typename ViewType::const_value_type val; - typedef typename ViewType::non_const_value_type ST; - ViewFill(const ViewType&, const ST&, const ExecSpace&); - KOKKOS_INLINE_FUNCTION - void operator()(const iType&, const iType&, const iType&, const iType&, - const iType&) const; -}; - -template <class ViewType, class Layout, class ExecSpace, typename iType, - bool ETIAvail> -struct ViewFill<ViewType, Layout, ExecSpace, 6, iType, ETIAvail> { - ViewType a; - typename ViewType::const_value_type val; - typedef typename ViewType::non_const_value_type ST; - ViewFill(const ViewType&, const ST&, const ExecSpace&); - KOKKOS_INLINE_FUNCTION - void operator()(const iType&, const iType&, const iType&, const iType&, - const iType&, const iType&) const; -}; - -template <class ViewType, class Layout, class ExecSpace, typename iType, - bool ETIAvail> -struct ViewFill<ViewType, Layout, ExecSpace, 7, iType, ETIAvail> { - ViewType a; - typename ViewType::const_value_type val; - typedef typename ViewType::non_const_value_type ST; - ViewFill(const ViewType&, const ST&, const ExecSpace&); - KOKKOS_INLINE_FUNCTION - void operator()(const iType&, const iType&, const iType&, const iType&, - const iType&, const iType&, const iType&) const; -}; - -template <class ViewType, class Layout, class ExecSpace, typename iType, - bool ETIAvail> -struct ViewFill<ViewType, Layout, ExecSpace, 8, iType, ETIAvail> { - ViewType a; - typename ViewType::const_value_type val; - typedef typename ViewType::non_const_value_type ST; - ViewFill(const ViewType&, const ST&, const ExecSpace&); - KOKKOS_INLINE_FUNCTION - void operator()(const iType&, const iType&, const iType&, const iType&, - const iType&, const iType&, const iType&, const iType&) const; -}; - template <class ViewType, class Layout, class ExecSpace, typename iType> -struct ViewFill<ViewType, Layout, ExecSpace, 0, iType, - KOKKOS_IMPL_COMPILING_LIBRARY> { - typedef typename ViewType::non_const_value_type ST; +struct ViewFill<ViewType, Layout, ExecSpace, 0, iType> { + using ST = typename ViewType::non_const_value_type; ViewFill(const ViewType& a, const ST& val, const ExecSpace& space) { Kokkos::Impl::DeepCopy<typename ViewType::memory_space, Kokkos::HostSpace, ExecSpace>(space, a.data(), &val, sizeof(ST)); @@ -190,11 +84,10 @@ struct ViewFill<ViewType, Layout, ExecSpace, 0, iType, }; template <class ViewType, class Layout, class ExecSpace, typename iType> -struct ViewFill<ViewType, Layout, ExecSpace, 1, iType, - KOKKOS_IMPL_COMPILING_LIBRARY> { +struct ViewFill<ViewType, Layout, ExecSpace, 1, iType> { ViewType a; typename ViewType::const_value_type val; - typedef Kokkos::RangePolicy<ExecSpace, Kokkos::IndexType<iType>> policy_type; + using policy_type = Kokkos::RangePolicy<ExecSpace, Kokkos::IndexType<iType>>; ViewFill(const ViewType& a_, typename ViewType::const_value_type& val_, const ExecSpace& space) @@ -208,17 +101,14 @@ struct ViewFill<ViewType, Layout, ExecSpace, 1, iType, }; template <class ViewType, class Layout, class ExecSpace, typename iType> -struct ViewFill<ViewType, Layout, ExecSpace, 2, iType, - KOKKOS_IMPL_COMPILING_LIBRARY> { +struct ViewFill<ViewType, Layout, ExecSpace, 2, iType> { ViewType a; typename ViewType::const_value_type val; - typedef Kokkos::Rank<2, ViewFillLayoutSelector<Layout>::iterate, - ViewFillLayoutSelector<Layout>::iterate> - iterate_type; - typedef Kokkos::MDRangePolicy<ExecSpace, iterate_type, - Kokkos::IndexType<iType>> - policy_type; + using iterate_type = Kokkos::Rank<2, ViewFillLayoutSelector<Layout>::iterate, + ViewFillLayoutSelector<Layout>::iterate>; + using policy_type = + Kokkos::MDRangePolicy<ExecSpace, iterate_type, Kokkos::IndexType<iType>>; ViewFill(const ViewType& a_, typename ViewType::const_value_type& val_, const ExecSpace& space) @@ -233,17 +123,14 @@ struct ViewFill<ViewType, Layout, ExecSpace, 2, iType, }; template <class ViewType, class Layout, class ExecSpace, typename iType> -struct ViewFill<ViewType, Layout, ExecSpace, 3, iType, - KOKKOS_IMPL_COMPILING_LIBRARY> { +struct ViewFill<ViewType, Layout, ExecSpace, 3, iType> { ViewType a; typename ViewType::const_value_type val; - typedef Kokkos::Rank<3, ViewFillLayoutSelector<Layout>::iterate, - ViewFillLayoutSelector<Layout>::iterate> - iterate_type; - typedef Kokkos::MDRangePolicy<ExecSpace, iterate_type, - Kokkos::IndexType<iType>> - policy_type; + using iterate_type = Kokkos::Rank<3, ViewFillLayoutSelector<Layout>::iterate, + ViewFillLayoutSelector<Layout>::iterate>; + using policy_type = + Kokkos::MDRangePolicy<ExecSpace, iterate_type, Kokkos::IndexType<iType>>; ViewFill(const ViewType& a_, typename ViewType::const_value_type& val_, const ExecSpace& space) @@ -261,17 +148,14 @@ struct ViewFill<ViewType, Layout, ExecSpace, 3, iType, }; template <class ViewType, class Layout, class ExecSpace, typename iType> -struct ViewFill<ViewType, Layout, ExecSpace, 4, iType, - KOKKOS_IMPL_COMPILING_LIBRARY> { +struct ViewFill<ViewType, Layout, ExecSpace, 4, iType> { ViewType a; typename ViewType::const_value_type val; - typedef Kokkos::Rank<4, ViewFillLayoutSelector<Layout>::iterate, - ViewFillLayoutSelector<Layout>::iterate> - iterate_type; - typedef Kokkos::MDRangePolicy<ExecSpace, iterate_type, - Kokkos::IndexType<iType>> - policy_type; + using iterate_type = Kokkos::Rank<4, ViewFillLayoutSelector<Layout>::iterate, + ViewFillLayoutSelector<Layout>::iterate>; + using policy_type = + Kokkos::MDRangePolicy<ExecSpace, iterate_type, Kokkos::IndexType<iType>>; ViewFill(const ViewType& a_, typename ViewType::const_value_type& val_, const ExecSpace& space) @@ -291,17 +175,14 @@ struct ViewFill<ViewType, Layout, ExecSpace, 4, iType, }; template <class ViewType, class Layout, class ExecSpace, typename iType> -struct ViewFill<ViewType, Layout, ExecSpace, 5, iType, - KOKKOS_IMPL_COMPILING_LIBRARY> { +struct ViewFill<ViewType, Layout, ExecSpace, 5, iType> { ViewType a; typename ViewType::const_value_type val; - typedef Kokkos::Rank<5, ViewFillLayoutSelector<Layout>::iterate, - ViewFillLayoutSelector<Layout>::iterate> - iterate_type; - typedef Kokkos::MDRangePolicy<ExecSpace, iterate_type, - Kokkos::IndexType<iType>> - policy_type; + using iterate_type = Kokkos::Rank<5, ViewFillLayoutSelector<Layout>::iterate, + ViewFillLayoutSelector<Layout>::iterate>; + using policy_type = + Kokkos::MDRangePolicy<ExecSpace, iterate_type, Kokkos::IndexType<iType>>; ViewFill(const ViewType& a_, typename ViewType::const_value_type& val_, const ExecSpace& space) @@ -321,17 +202,14 @@ struct ViewFill<ViewType, Layout, ExecSpace, 5, iType, }; template <class ViewType, class Layout, class ExecSpace, typename iType> -struct ViewFill<ViewType, Layout, ExecSpace, 6, iType, - KOKKOS_IMPL_COMPILING_LIBRARY> { +struct ViewFill<ViewType, Layout, ExecSpace, 6, iType> { ViewType a; typename ViewType::const_value_type val; - typedef Kokkos::Rank<6, ViewFillLayoutSelector<Layout>::iterate, - ViewFillLayoutSelector<Layout>::iterate> - iterate_type; - typedef Kokkos::MDRangePolicy<ExecSpace, iterate_type, - Kokkos::IndexType<iType>> - policy_type; + using iterate_type = Kokkos::Rank<6, ViewFillLayoutSelector<Layout>::iterate, + ViewFillLayoutSelector<Layout>::iterate>; + using policy_type = + Kokkos::MDRangePolicy<ExecSpace, iterate_type, Kokkos::IndexType<iType>>; ViewFill(const ViewType& a_, typename ViewType::const_value_type& val_, const ExecSpace& space) @@ -351,17 +229,14 @@ struct ViewFill<ViewType, Layout, ExecSpace, 6, iType, }; template <class ViewType, class Layout, class ExecSpace, typename iType> -struct ViewFill<ViewType, Layout, ExecSpace, 7, iType, - KOKKOS_IMPL_COMPILING_LIBRARY> { +struct ViewFill<ViewType, Layout, ExecSpace, 7, iType> { ViewType a; typename ViewType::const_value_type val; - typedef Kokkos::Rank<6, ViewFillLayoutSelector<Layout>::iterate, - ViewFillLayoutSelector<Layout>::iterate> - iterate_type; - typedef Kokkos::MDRangePolicy<ExecSpace, iterate_type, - Kokkos::IndexType<iType>> - policy_type; + using iterate_type = Kokkos::Rank<6, ViewFillLayoutSelector<Layout>::iterate, + ViewFillLayoutSelector<Layout>::iterate>; + using policy_type = + Kokkos::MDRangePolicy<ExecSpace, iterate_type, Kokkos::IndexType<iType>>; ViewFill(const ViewType& a_, typename ViewType::const_value_type& val_, const ExecSpace& space) @@ -382,17 +257,14 @@ struct ViewFill<ViewType, Layout, ExecSpace, 7, iType, }; template <class ViewType, class Layout, class ExecSpace, typename iType> -struct ViewFill<ViewType, Layout, ExecSpace, 8, iType, - KOKKOS_IMPL_COMPILING_LIBRARY> { +struct ViewFill<ViewType, Layout, ExecSpace, 8, iType> { ViewType a; typename ViewType::const_value_type val; - typedef Kokkos::Rank<6, ViewFillLayoutSelector<Layout>::iterate, - ViewFillLayoutSelector<Layout>::iterate> - iterate_type; - typedef Kokkos::MDRangePolicy<ExecSpace, iterate_type, - Kokkos::IndexType<iType>> - policy_type; + using iterate_type = Kokkos::Rank<6, ViewFillLayoutSelector<Layout>::iterate, + ViewFillLayoutSelector<Layout>::iterate>; + using policy_type = + Kokkos::MDRangePolicy<ExecSpace, iterate_type, Kokkos::IndexType<iType>>; ViewFill(const ViewType& a_, typename ViewType::const_value_type& val_, const ExecSpace& space) @@ -413,101 +285,14 @@ struct ViewFill<ViewType, Layout, ExecSpace, 8, iType, }; }; -template <class ViewTypeA, class ViewTypeB, class Layout, class ExecSpace, - typename iType, bool ETIAvail> -struct ViewCopy<ViewTypeA, ViewTypeB, Layout, ExecSpace, 1, iType, ETIAvail> { - ViewTypeA a; - ViewTypeB b; - ViewCopy(const ViewTypeA&, const ViewTypeB&, const ExecSpace&); - KOKKOS_INLINE_FUNCTION - void operator()(const iType& i0) const; -}; - -template <class ViewTypeA, class ViewTypeB, class Layout, class ExecSpace, - typename iType, bool ETIAvail> -struct ViewCopy<ViewTypeA, ViewTypeB, Layout, ExecSpace, 2, iType, ETIAvail> { - ViewTypeA a; - ViewTypeB b; - ViewCopy(const ViewTypeA&, const ViewTypeB&, const ExecSpace&); - KOKKOS_INLINE_FUNCTION - void operator()(const iType& i0, const iType& i1) const; -}; - -template <class ViewTypeA, class ViewTypeB, class Layout, class ExecSpace, - typename iType, bool ETIAvail> -struct ViewCopy<ViewTypeA, ViewTypeB, Layout, ExecSpace, 3, iType, ETIAvail> { - ViewTypeA a; - ViewTypeB b; - ViewCopy(const ViewTypeA&, const ViewTypeB&, const ExecSpace&); - KOKKOS_INLINE_FUNCTION - void operator()(const iType& i0, const iType& i1, const iType& i2) const; -}; - -template <class ViewTypeA, class ViewTypeB, class Layout, class ExecSpace, - typename iType, bool ETIAvail> -struct ViewCopy<ViewTypeA, ViewTypeB, Layout, ExecSpace, 4, iType, ETIAvail> { - ViewTypeA a; - ViewTypeB b; - ViewCopy(const ViewTypeA&, const ViewTypeB&, const ExecSpace&); - KOKKOS_INLINE_FUNCTION - void operator()(const iType& i0, const iType& i1, const iType& i2, - const iType& i3) const; -}; - -template <class ViewTypeA, class ViewTypeB, class Layout, class ExecSpace, - typename iType, bool ETIAvail> -struct ViewCopy<ViewTypeA, ViewTypeB, Layout, ExecSpace, 5, iType, ETIAvail> { - ViewTypeA a; - ViewTypeB b; - ViewCopy(const ViewTypeA&, const ViewTypeB&, const ExecSpace&); - KOKKOS_INLINE_FUNCTION - void operator()(const iType& i0, const iType& i1, const iType& i2, - const iType& i3, const iType& i4) const; -}; - -template <class ViewTypeA, class ViewTypeB, class Layout, class ExecSpace, - typename iType, bool ETIAvail> -struct ViewCopy<ViewTypeA, ViewTypeB, Layout, ExecSpace, 6, iType, ETIAvail> { - ViewTypeA a; - ViewTypeB b; - ViewCopy(const ViewTypeA&, const ViewTypeB&, const ExecSpace&); - KOKKOS_INLINE_FUNCTION - void operator()(const iType& i0, const iType& i1, const iType& i2, - const iType& i3, const iType& i4, const iType& i5) const; -}; - -template <class ViewTypeA, class ViewTypeB, class Layout, class ExecSpace, - typename iType, bool ETIAvail> -struct ViewCopy<ViewTypeA, ViewTypeB, Layout, ExecSpace, 7, iType, ETIAvail> { - ViewTypeA a; - ViewTypeB b; - ViewCopy(const ViewTypeA&, const ViewTypeB&, const ExecSpace&); - KOKKOS_INLINE_FUNCTION - void operator()(const iType& i0, const iType& i1, const iType& i2, - const iType& i3, const iType& i4, const iType& i5, - const iType& i6) const; -}; - -template <class ViewTypeA, class ViewTypeB, class Layout, class ExecSpace, - typename iType, bool ETIAvail> -struct ViewCopy<ViewTypeA, ViewTypeB, Layout, ExecSpace, 8, iType, ETIAvail> { - ViewTypeA a; - ViewTypeB b; - ViewCopy(const ViewTypeA&, const ViewTypeB&, const ExecSpace&); - KOKKOS_INLINE_FUNCTION - void operator()(const iType& i0, const iType& i1, const iType& i2, - const iType& i3, const iType& i4, const iType& i5, - const iType& i6, const iType& i7) const; -}; - template <class ViewTypeA, class ViewTypeB, class Layout, class ExecSpace, typename iType> -struct ViewCopy<ViewTypeA, ViewTypeB, Layout, ExecSpace, 1, iType, - KOKKOS_IMPL_COMPILING_LIBRARY> { +struct ViewCopy<ViewTypeA, ViewTypeB, Layout, ExecSpace, 1, iType> { ViewTypeA a; ViewTypeB b; - typedef Kokkos::RangePolicy<ExecSpace, Kokkos::IndexType<iType>> policy_type; + using policy_type = Kokkos::RangePolicy<ExecSpace, Kokkos::IndexType<iType>>; + using value_type = typename ViewTypeA::value_type; ViewCopy(const ViewTypeA& a_, const ViewTypeB& b_, const ExecSpace space = ExecSpace()) @@ -517,24 +302,25 @@ struct ViewCopy<ViewTypeA, ViewTypeB, Layout, ExecSpace, 1, iType, } KOKKOS_INLINE_FUNCTION - void operator()(const iType& i0) const { a(i0) = b(i0); }; + void operator()(const iType& i0) const { + a(i0) = static_cast<value_type>(b(i0)); + }; }; template <class ViewTypeA, class ViewTypeB, class Layout, class ExecSpace, typename iType> -struct ViewCopy<ViewTypeA, ViewTypeB, Layout, ExecSpace, 2, iType, - KOKKOS_IMPL_COMPILING_LIBRARY> { +struct ViewCopy<ViewTypeA, ViewTypeB, Layout, ExecSpace, 2, iType> { ViewTypeA a; ViewTypeB b; static const Kokkos::Iterate outer_iteration_pattern = Kokkos::layout_iterate_type_selector<Layout>::outer_iteration_pattern; static const Kokkos::Iterate inner_iteration_pattern = Kokkos::layout_iterate_type_selector<Layout>::inner_iteration_pattern; - typedef Kokkos::Rank<2, outer_iteration_pattern, inner_iteration_pattern> - iterate_type; - typedef Kokkos::MDRangePolicy<ExecSpace, iterate_type, - Kokkos::IndexType<iType>> - policy_type; + using iterate_type = + Kokkos::Rank<2, outer_iteration_pattern, inner_iteration_pattern>; + using policy_type = + Kokkos::MDRangePolicy<ExecSpace, iterate_type, Kokkos::IndexType<iType>>; + using value_type = typename ViewTypeA::value_type; ViewCopy(const ViewTypeA& a_, const ViewTypeB& b_, const ExecSpace space = ExecSpace()) @@ -546,14 +332,13 @@ struct ViewCopy<ViewTypeA, ViewTypeB, Layout, ExecSpace, 2, iType, KOKKOS_INLINE_FUNCTION void operator()(const iType& i0, const iType& i1) const { - a(i0, i1) = b(i0, i1); + a(i0, i1) = static_cast<value_type>(b(i0, i1)); }; }; template <class ViewTypeA, class ViewTypeB, class Layout, class ExecSpace, typename iType> -struct ViewCopy<ViewTypeA, ViewTypeB, Layout, ExecSpace, 3, iType, - KOKKOS_IMPL_COMPILING_LIBRARY> { +struct ViewCopy<ViewTypeA, ViewTypeB, Layout, ExecSpace, 3, iType> { ViewTypeA a; ViewTypeB b; @@ -561,11 +346,11 @@ struct ViewCopy<ViewTypeA, ViewTypeB, Layout, ExecSpace, 3, iType, Kokkos::layout_iterate_type_selector<Layout>::outer_iteration_pattern; static const Kokkos::Iterate inner_iteration_pattern = Kokkos::layout_iterate_type_selector<Layout>::inner_iteration_pattern; - typedef Kokkos::Rank<3, outer_iteration_pattern, inner_iteration_pattern> - iterate_type; - typedef Kokkos::MDRangePolicy<ExecSpace, iterate_type, - Kokkos::IndexType<iType>> - policy_type; + using iterate_type = + Kokkos::Rank<3, outer_iteration_pattern, inner_iteration_pattern>; + using policy_type = + Kokkos::MDRangePolicy<ExecSpace, iterate_type, Kokkos::IndexType<iType>>; + using value_type = typename ViewTypeA::value_type; ViewCopy(const ViewTypeA& a_, const ViewTypeB& b_, const ExecSpace space = ExecSpace()) @@ -578,14 +363,13 @@ struct ViewCopy<ViewTypeA, ViewTypeB, Layout, ExecSpace, 3, iType, KOKKOS_INLINE_FUNCTION void operator()(const iType& i0, const iType& i1, const iType& i2) const { - a(i0, i1, i2) = b(i0, i1, i2); + a(i0, i1, i2) = static_cast<value_type>(b(i0, i1, i2)); }; }; template <class ViewTypeA, class ViewTypeB, class Layout, class ExecSpace, typename iType> -struct ViewCopy<ViewTypeA, ViewTypeB, Layout, ExecSpace, 4, iType, - KOKKOS_IMPL_COMPILING_LIBRARY> { +struct ViewCopy<ViewTypeA, ViewTypeB, Layout, ExecSpace, 4, iType> { ViewTypeA a; ViewTypeB b; @@ -593,11 +377,10 @@ struct ViewCopy<ViewTypeA, ViewTypeB, Layout, ExecSpace, 4, iType, Kokkos::layout_iterate_type_selector<Layout>::outer_iteration_pattern; static const Kokkos::Iterate inner_iteration_pattern = Kokkos::layout_iterate_type_selector<Layout>::inner_iteration_pattern; - typedef Kokkos::Rank<4, outer_iteration_pattern, inner_iteration_pattern> - iterate_type; - typedef Kokkos::MDRangePolicy<ExecSpace, iterate_type, - Kokkos::IndexType<iType>> - policy_type; + using iterate_type = + Kokkos::Rank<4, outer_iteration_pattern, inner_iteration_pattern>; + using policy_type = + Kokkos::MDRangePolicy<ExecSpace, iterate_type, Kokkos::IndexType<iType>>; ViewCopy(const ViewTypeA& a_, const ViewTypeB& b_, const ExecSpace space = ExecSpace()) @@ -618,8 +401,7 @@ struct ViewCopy<ViewTypeA, ViewTypeB, Layout, ExecSpace, 4, iType, template <class ViewTypeA, class ViewTypeB, class Layout, class ExecSpace, typename iType> -struct ViewCopy<ViewTypeA, ViewTypeB, Layout, ExecSpace, 5, iType, - KOKKOS_IMPL_COMPILING_LIBRARY> { +struct ViewCopy<ViewTypeA, ViewTypeB, Layout, ExecSpace, 5, iType> { ViewTypeA a; ViewTypeB b; @@ -627,11 +409,10 @@ struct ViewCopy<ViewTypeA, ViewTypeB, Layout, ExecSpace, 5, iType, Kokkos::layout_iterate_type_selector<Layout>::outer_iteration_pattern; static const Kokkos::Iterate inner_iteration_pattern = Kokkos::layout_iterate_type_selector<Layout>::inner_iteration_pattern; - typedef Kokkos::Rank<5, outer_iteration_pattern, inner_iteration_pattern> - iterate_type; - typedef Kokkos::MDRangePolicy<ExecSpace, iterate_type, - Kokkos::IndexType<iType>> - policy_type; + using iterate_type = + Kokkos::Rank<5, outer_iteration_pattern, inner_iteration_pattern>; + using policy_type = + Kokkos::MDRangePolicy<ExecSpace, iterate_type, Kokkos::IndexType<iType>>; ViewCopy(const ViewTypeA& a_, const ViewTypeB& b_, const ExecSpace space = ExecSpace()) @@ -652,8 +433,7 @@ struct ViewCopy<ViewTypeA, ViewTypeB, Layout, ExecSpace, 5, iType, template <class ViewTypeA, class ViewTypeB, class Layout, class ExecSpace, typename iType> -struct ViewCopy<ViewTypeA, ViewTypeB, Layout, ExecSpace, 6, iType, - KOKKOS_IMPL_COMPILING_LIBRARY> { +struct ViewCopy<ViewTypeA, ViewTypeB, Layout, ExecSpace, 6, iType> { ViewTypeA a; ViewTypeB b; @@ -661,11 +441,10 @@ struct ViewCopy<ViewTypeA, ViewTypeB, Layout, ExecSpace, 6, iType, Kokkos::layout_iterate_type_selector<Layout>::outer_iteration_pattern; static const Kokkos::Iterate inner_iteration_pattern = Kokkos::layout_iterate_type_selector<Layout>::inner_iteration_pattern; - typedef Kokkos::Rank<6, outer_iteration_pattern, inner_iteration_pattern> - iterate_type; - typedef Kokkos::MDRangePolicy<ExecSpace, iterate_type, - Kokkos::IndexType<iType>> - policy_type; + using iterate_type = + Kokkos::Rank<6, outer_iteration_pattern, inner_iteration_pattern>; + using policy_type = + Kokkos::MDRangePolicy<ExecSpace, iterate_type, Kokkos::IndexType<iType>>; ViewCopy(const ViewTypeA& a_, const ViewTypeB& b_, const ExecSpace space = ExecSpace()) @@ -686,8 +465,7 @@ struct ViewCopy<ViewTypeA, ViewTypeB, Layout, ExecSpace, 6, iType, template <class ViewTypeA, class ViewTypeB, class Layout, class ExecSpace, typename iType> -struct ViewCopy<ViewTypeA, ViewTypeB, Layout, ExecSpace, 7, iType, - KOKKOS_IMPL_COMPILING_LIBRARY> { +struct ViewCopy<ViewTypeA, ViewTypeB, Layout, ExecSpace, 7, iType> { ViewTypeA a; ViewTypeB b; @@ -695,11 +473,10 @@ struct ViewCopy<ViewTypeA, ViewTypeB, Layout, ExecSpace, 7, iType, Kokkos::layout_iterate_type_selector<Layout>::outer_iteration_pattern; static const Kokkos::Iterate inner_iteration_pattern = Kokkos::layout_iterate_type_selector<Layout>::inner_iteration_pattern; - typedef Kokkos::Rank<6, outer_iteration_pattern, inner_iteration_pattern> - iterate_type; - typedef Kokkos::MDRangePolicy<ExecSpace, iterate_type, - Kokkos::IndexType<iType>> - policy_type; + using iterate_type = + Kokkos::Rank<6, outer_iteration_pattern, inner_iteration_pattern>; + using policy_type = + Kokkos::MDRangePolicy<ExecSpace, iterate_type, Kokkos::IndexType<iType>>; ViewCopy(const ViewTypeA& a_, const ViewTypeB& b_, const ExecSpace space = ExecSpace()) @@ -721,8 +498,7 @@ struct ViewCopy<ViewTypeA, ViewTypeB, Layout, ExecSpace, 7, iType, template <class ViewTypeA, class ViewTypeB, class Layout, class ExecSpace, typename iType> -struct ViewCopy<ViewTypeA, ViewTypeB, Layout, ExecSpace, 8, iType, - KOKKOS_IMPL_COMPILING_LIBRARY> { +struct ViewCopy<ViewTypeA, ViewTypeB, Layout, ExecSpace, 8, iType> { ViewTypeA a; ViewTypeB b; @@ -730,11 +506,10 @@ struct ViewCopy<ViewTypeA, ViewTypeB, Layout, ExecSpace, 8, iType, Kokkos::layout_iterate_type_selector<Layout>::outer_iteration_pattern; static const Kokkos::Iterate inner_iteration_pattern = Kokkos::layout_iterate_type_selector<Layout>::inner_iteration_pattern; - typedef Kokkos::Rank<6, outer_iteration_pattern, inner_iteration_pattern> - iterate_type; - typedef Kokkos::MDRangePolicy<ExecSpace, iterate_type, - Kokkos::IndexType<iType>> - policy_type; + using iterate_type = + Kokkos::Rank<6, outer_iteration_pattern, inner_iteration_pattern>; + using policy_type = + Kokkos::MDRangePolicy<ExecSpace, iterate_type, Kokkos::IndexType<iType>>; ViewCopy(const ViewTypeA& a_, const ViewTypeB& b_, const ExecSpace space = ExecSpace()) @@ -758,16 +533,14 @@ struct ViewCopy<ViewTypeA, ViewTypeB, Layout, ExecSpace, 8, iType, } // namespace Impl } // namespace Kokkos -#include <impl/Kokkos_ViewFillCopyETIDecl.hpp> - namespace Kokkos { namespace Impl { template <class ExecutionSpace, class DstType, class SrcType> void view_copy(const ExecutionSpace& space, const DstType& dst, const SrcType& src) { - typedef typename DstType::memory_space dst_memory_space; - typedef typename SrcType::memory_space src_memory_space; + using dst_memory_space = typename DstType::memory_space; + using src_memory_space = typename SrcType::memory_space; enum { ExecCanAccessSrc = @@ -844,10 +617,10 @@ void view_copy(const ExecutionSpace& space, const DstType& dst, template <class DstType, class SrcType> void view_copy(const DstType& dst, const SrcType& src) { - typedef typename DstType::execution_space dst_execution_space; - typedef typename SrcType::execution_space src_execution_space; - typedef typename DstType::memory_space dst_memory_space; - typedef typename SrcType::memory_space src_memory_space; + using dst_execution_space = typename DstType::execution_space; + using src_execution_space = typename SrcType::execution_space; + using dst_memory_space = typename DstType::memory_space; + using src_memory_space = typename SrcType::memory_space; enum { DstExecCanAccessSrc = @@ -962,8 +735,8 @@ struct CommonSubview; template <class DstType, class SrcType, class Arg0, class... Args> struct CommonSubview<DstType, SrcType, 1, Arg0, Args...> { - typedef typename Kokkos::Subview<DstType, Arg0> dst_subview_type; - typedef typename Kokkos::Subview<SrcType, Arg0> src_subview_type; + using dst_subview_type = typename Kokkos::Subview<DstType, Arg0>; + using src_subview_type = typename Kokkos::Subview<SrcType, Arg0>; dst_subview_type dst_sub; src_subview_type src_sub; CommonSubview(const DstType& dst, const SrcType& src, const Arg0& arg0, @@ -973,8 +746,8 @@ struct CommonSubview<DstType, SrcType, 1, Arg0, Args...> { template <class DstType, class SrcType, class Arg0, class Arg1, class... Args> struct CommonSubview<DstType, SrcType, 2, Arg0, Arg1, Args...> { - typedef typename Kokkos::Subview<DstType, Arg0, Arg1> dst_subview_type; - typedef typename Kokkos::Subview<SrcType, Arg0, Arg1> src_subview_type; + using dst_subview_type = typename Kokkos::Subview<DstType, Arg0, Arg1>; + using src_subview_type = typename Kokkos::Subview<SrcType, Arg0, Arg1>; dst_subview_type dst_sub; src_subview_type src_sub; CommonSubview(const DstType& dst, const SrcType& src, const Arg0& arg0, @@ -985,8 +758,8 @@ struct CommonSubview<DstType, SrcType, 2, Arg0, Arg1, Args...> { template <class DstType, class SrcType, class Arg0, class Arg1, class Arg2, class... Args> struct CommonSubview<DstType, SrcType, 3, Arg0, Arg1, Arg2, Args...> { - typedef typename Kokkos::Subview<DstType, Arg0, Arg1, Arg2> dst_subview_type; - typedef typename Kokkos::Subview<SrcType, Arg0, Arg1, Arg2> src_subview_type; + using dst_subview_type = typename Kokkos::Subview<DstType, Arg0, Arg1, Arg2>; + using src_subview_type = typename Kokkos::Subview<SrcType, Arg0, Arg1, Arg2>; dst_subview_type dst_sub; src_subview_type src_sub; CommonSubview(const DstType& dst, const SrcType& src, const Arg0& arg0, @@ -997,10 +770,10 @@ struct CommonSubview<DstType, SrcType, 3, Arg0, Arg1, Arg2, Args...> { template <class DstType, class SrcType, class Arg0, class Arg1, class Arg2, class Arg3, class... Args> struct CommonSubview<DstType, SrcType, 4, Arg0, Arg1, Arg2, Arg3, Args...> { - typedef typename Kokkos::Subview<DstType, Arg0, Arg1, Arg2, Arg3> - dst_subview_type; - typedef typename Kokkos::Subview<SrcType, Arg0, Arg1, Arg2, Arg3> - src_subview_type; + using dst_subview_type = + typename Kokkos::Subview<DstType, Arg0, Arg1, Arg2, Arg3>; + using src_subview_type = + typename Kokkos::Subview<SrcType, Arg0, Arg1, Arg2, Arg3>; dst_subview_type dst_sub; src_subview_type src_sub; CommonSubview(const DstType& dst, const SrcType& src, const Arg0& arg0, @@ -1014,10 +787,10 @@ template <class DstType, class SrcType, class Arg0, class Arg1, class Arg2, class Arg3, class Arg4, class... Args> struct CommonSubview<DstType, SrcType, 5, Arg0, Arg1, Arg2, Arg3, Arg4, Args...> { - typedef typename Kokkos::Subview<DstType, Arg0, Arg1, Arg2, Arg3, Arg4> - dst_subview_type; - typedef typename Kokkos::Subview<SrcType, Arg0, Arg1, Arg2, Arg3, Arg4> - src_subview_type; + using dst_subview_type = + typename Kokkos::Subview<DstType, Arg0, Arg1, Arg2, Arg3, Arg4>; + using src_subview_type = + typename Kokkos::Subview<SrcType, Arg0, Arg1, Arg2, Arg3, Arg4>; dst_subview_type dst_sub; src_subview_type src_sub; CommonSubview(const DstType& dst, const SrcType& src, const Arg0& arg0, @@ -1031,10 +804,10 @@ template <class DstType, class SrcType, class Arg0, class Arg1, class Arg2, class Arg3, class Arg4, class Arg5, class... Args> struct CommonSubview<DstType, SrcType, 6, Arg0, Arg1, Arg2, Arg3, Arg4, Arg5, Args...> { - typedef typename Kokkos::Subview<DstType, Arg0, Arg1, Arg2, Arg3, Arg4, Arg5> - dst_subview_type; - typedef typename Kokkos::Subview<SrcType, Arg0, Arg1, Arg2, Arg3, Arg4, Arg5> - src_subview_type; + using dst_subview_type = + typename Kokkos::Subview<DstType, Arg0, Arg1, Arg2, Arg3, Arg4, Arg5>; + using src_subview_type = + typename Kokkos::Subview<SrcType, Arg0, Arg1, Arg2, Arg3, Arg4, Arg5>; dst_subview_type dst_sub; src_subview_type src_sub; CommonSubview(const DstType& dst, const SrcType& src, const Arg0& arg0, @@ -1048,12 +821,10 @@ template <class DstType, class SrcType, class Arg0, class Arg1, class Arg2, class Arg3, class Arg4, class Arg5, class Arg6, class... Args> struct CommonSubview<DstType, SrcType, 7, Arg0, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Args...> { - typedef typename Kokkos::Subview<DstType, Arg0, Arg1, Arg2, Arg3, Arg4, Arg5, - Arg6> - dst_subview_type; - typedef typename Kokkos::Subview<SrcType, Arg0, Arg1, Arg2, Arg3, Arg4, Arg5, - Arg6> - src_subview_type; + using dst_subview_type = typename Kokkos::Subview<DstType, Arg0, Arg1, Arg2, + Arg3, Arg4, Arg5, Arg6>; + using src_subview_type = typename Kokkos::Subview<SrcType, Arg0, Arg1, Arg2, + Arg3, Arg4, Arg5, Arg6>; dst_subview_type dst_sub; src_subview_type src_sub; CommonSubview(const DstType& dst, const SrcType& src, const Arg0& arg0, @@ -1067,12 +838,12 @@ template <class DstType, class SrcType, class Arg0, class Arg1, class Arg2, class Arg3, class Arg4, class Arg5, class Arg6, class Arg7> struct CommonSubview<DstType, SrcType, 8, Arg0, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7> { - typedef typename Kokkos::Subview<DstType, Arg0, Arg1, Arg2, Arg3, Arg4, Arg5, - Arg6, Arg7> - dst_subview_type; - typedef typename Kokkos::Subview<SrcType, Arg0, Arg1, Arg2, Arg3, Arg4, Arg5, - Arg6, Arg7> - src_subview_type; + using dst_subview_type = + typename Kokkos::Subview<DstType, Arg0, Arg1, Arg2, Arg3, Arg4, Arg5, + Arg6, Arg7>; + using src_subview_type = + typename Kokkos::Subview<SrcType, Arg0, Arg1, Arg2, Arg3, Arg4, Arg5, + Arg6, Arg7>; dst_subview_type dst_sub; src_subview_type src_sub; CommonSubview(const DstType& dst, const SrcType& src, const Arg0& arg0, @@ -1090,14 +861,14 @@ struct ViewRemap; template <class DstType, class SrcType, class ExecSpace> struct ViewRemap<DstType, SrcType, ExecSpace, 1> { - typedef Kokkos::pair<int64_t, int64_t> p_type; + using p_type = Kokkos::pair<int64_t, int64_t>; ViewRemap(const DstType& dst, const SrcType& src) { if (dst.extent(0) == src.extent(0)) { view_copy(dst, src); } else { p_type ext0(0, std::min(dst.extent(0), src.extent(0))); - typedef CommonSubview<DstType, SrcType, 1, p_type> sv_adapter_type; + using sv_adapter_type = CommonSubview<DstType, SrcType, 1, p_type>; sv_adapter_type common_subview(dst, src, ext0); view_copy(common_subview.dst_sub, common_subview.src_sub); } @@ -1106,7 +877,7 @@ struct ViewRemap<DstType, SrcType, ExecSpace, 1> { template <class DstType, class SrcType, class ExecSpace> struct ViewRemap<DstType, SrcType, ExecSpace, 2> { - typedef Kokkos::pair<int64_t, int64_t> p_type; + using p_type = Kokkos::pair<int64_t, int64_t>; ViewRemap(const DstType& dst, const SrcType& src) { if (dst.extent(0) == src.extent(0)) { @@ -1114,23 +885,23 @@ struct ViewRemap<DstType, SrcType, ExecSpace, 2> { view_copy(dst, src); } else { p_type ext1(0, std::min(dst.extent(1), src.extent(1))); - typedef CommonSubview<DstType, SrcType, 2, Kokkos::Impl::ALL_t, p_type> - sv_adapter_type; + using sv_adapter_type = + CommonSubview<DstType, SrcType, 2, Kokkos::Impl::ALL_t, p_type>; sv_adapter_type common_subview(dst, src, Kokkos::ALL, ext1); view_copy(common_subview.dst_sub, common_subview.src_sub); } } else { if (dst.extent(1) == src.extent(1)) { p_type ext0(0, std::min(dst.extent(0), src.extent(0))); - typedef CommonSubview<DstType, SrcType, 2, p_type, Kokkos::Impl::ALL_t> - sv_adapter_type; + using sv_adapter_type = + CommonSubview<DstType, SrcType, 2, p_type, Kokkos::Impl::ALL_t>; sv_adapter_type common_subview(dst, src, ext0, Kokkos::ALL); view_copy(common_subview.dst_sub, common_subview.src_sub); } else { p_type ext0(0, std::min(dst.extent(0), src.extent(0))); p_type ext1(0, std::min(dst.extent(1), src.extent(1))); - typedef CommonSubview<DstType, SrcType, 2, p_type, p_type> - sv_adapter_type; + using sv_adapter_type = + CommonSubview<DstType, SrcType, 2, p_type, p_type>; sv_adapter_type common_subview(dst, src, ext0, ext1); view_copy(common_subview.dst_sub, common_subview.src_sub); } @@ -1140,24 +911,24 @@ struct ViewRemap<DstType, SrcType, ExecSpace, 2> { template <class DstType, class SrcType, class ExecSpace> struct ViewRemap<DstType, SrcType, ExecSpace, 3> { - typedef Kokkos::pair<int64_t, int64_t> p_type; + using p_type = Kokkos::pair<int64_t, int64_t>; ViewRemap(const DstType& dst, const SrcType& src) { if (dst.extent(0) == src.extent(0)) { if (dst.extent(2) == src.extent(2)) { p_type ext1(0, std::min(dst.extent(1), src.extent(1))); - typedef CommonSubview<DstType, SrcType, 3, Kokkos::Impl::ALL_t, p_type, - Kokkos::Impl::ALL_t> - sv_adapter_type; + using sv_adapter_type = + CommonSubview<DstType, SrcType, 3, Kokkos::Impl::ALL_t, p_type, + Kokkos::Impl::ALL_t>; sv_adapter_type common_subview(dst, src, Kokkos::ALL, ext1, Kokkos::ALL); view_copy(common_subview.dst_sub, common_subview.src_sub); } else { p_type ext1(0, std::min(dst.extent(1), src.extent(1))); p_type ext2(0, std::min(dst.extent(2), src.extent(2))); - typedef CommonSubview<DstType, SrcType, 3, Kokkos::Impl::ALL_t, p_type, - p_type> - sv_adapter_type; + using sv_adapter_type = + CommonSubview<DstType, SrcType, 3, Kokkos::Impl::ALL_t, p_type, + p_type>; sv_adapter_type common_subview(dst, src, Kokkos::ALL, ext1, ext2); view_copy(common_subview.dst_sub, common_subview.src_sub); } @@ -1165,17 +936,16 @@ struct ViewRemap<DstType, SrcType, ExecSpace, 3> { if (dst.extent(2) == src.extent(2)) { p_type ext0(0, std::min(dst.extent(0), src.extent(0))); p_type ext1(0, std::min(dst.extent(1), src.extent(1))); - typedef CommonSubview<DstType, SrcType, 3, p_type, p_type, - Kokkos::Impl::ALL_t> - sv_adapter_type; + using sv_adapter_type = CommonSubview<DstType, SrcType, 3, p_type, + p_type, Kokkos::Impl::ALL_t>; sv_adapter_type common_subview(dst, src, ext0, ext1, Kokkos::ALL); view_copy(common_subview.dst_sub, common_subview.src_sub); } else { p_type ext0(0, std::min(dst.extent(0), src.extent(0))); p_type ext1(0, std::min(dst.extent(1), src.extent(1))); p_type ext2(0, std::min(dst.extent(2), src.extent(2))); - typedef CommonSubview<DstType, SrcType, 3, p_type, p_type, p_type> - sv_adapter_type; + using sv_adapter_type = + CommonSubview<DstType, SrcType, 3, p_type, p_type, p_type>; sv_adapter_type common_subview(dst, src, ext0, ext1, ext2); view_copy(common_subview.dst_sub, common_subview.src_sub); } @@ -1185,16 +955,16 @@ struct ViewRemap<DstType, SrcType, ExecSpace, 3> { template <class DstType, class SrcType, class ExecSpace> struct ViewRemap<DstType, SrcType, ExecSpace, 4> { - typedef Kokkos::pair<int64_t, int64_t> p_type; + using p_type = Kokkos::pair<int64_t, int64_t>; ViewRemap(const DstType& dst, const SrcType& src) { if (dst.extent(0) == src.extent(0)) { if (dst.extent(3) == src.extent(3)) { p_type ext1(0, std::min(dst.extent(1), src.extent(1))); p_type ext2(0, std::min(dst.extent(2), src.extent(2))); - typedef CommonSubview<DstType, SrcType, 4, Kokkos::Impl::ALL_t, p_type, - p_type, Kokkos::Impl::ALL_t> - sv_adapter_type; + using sv_adapter_type = + CommonSubview<DstType, SrcType, 4, Kokkos::Impl::ALL_t, p_type, + p_type, Kokkos::Impl::ALL_t>; sv_adapter_type common_subview(dst, src, Kokkos::ALL, ext1, ext2, Kokkos::ALL); view_copy(common_subview.dst_sub, common_subview.src_sub); @@ -1202,9 +972,9 @@ struct ViewRemap<DstType, SrcType, ExecSpace, 4> { p_type ext1(0, std::min(dst.extent(1), src.extent(1))); p_type ext2(0, std::min(dst.extent(2), src.extent(2))); p_type ext3(0, std::min(dst.extent(3), src.extent(3))); - typedef CommonSubview<DstType, SrcType, 4, Kokkos::Impl::ALL_t, p_type, - p_type, p_type> - sv_adapter_type; + using sv_adapter_type = + CommonSubview<DstType, SrcType, 4, Kokkos::Impl::ALL_t, p_type, + p_type, p_type>; sv_adapter_type common_subview(dst, src, Kokkos::ALL, ext1, ext2, ext3); view_copy(common_subview.dst_sub, common_subview.src_sub); } @@ -1213,9 +983,9 @@ struct ViewRemap<DstType, SrcType, ExecSpace, 4> { p_type ext0(0, std::min(dst.extent(0), src.extent(0))); p_type ext1(0, std::min(dst.extent(1), src.extent(1))); p_type ext2(0, std::min(dst.extent(2), src.extent(2))); - typedef CommonSubview<DstType, SrcType, 4, p_type, p_type, p_type, - Kokkos::Impl::ALL_t> - sv_adapter_type; + using sv_adapter_type = + CommonSubview<DstType, SrcType, 4, p_type, p_type, p_type, + Kokkos::Impl::ALL_t>; sv_adapter_type common_subview(dst, src, ext0, ext1, ext2, Kokkos::ALL); view_copy(common_subview.dst_sub, common_subview.src_sub); } else { @@ -1223,9 +993,8 @@ struct ViewRemap<DstType, SrcType, ExecSpace, 4> { p_type ext1(0, std::min(dst.extent(1), src.extent(1))); p_type ext2(0, std::min(dst.extent(2), src.extent(2))); p_type ext3(0, std::min(dst.extent(3), src.extent(3))); - typedef CommonSubview<DstType, SrcType, 4, p_type, p_type, p_type, - p_type> - sv_adapter_type; + using sv_adapter_type = + CommonSubview<DstType, SrcType, 4, p_type, p_type, p_type, p_type>; sv_adapter_type common_subview(dst, src, ext0, ext1, ext2, ext3); view_copy(common_subview.dst_sub, common_subview.src_sub); } @@ -1235,7 +1004,7 @@ struct ViewRemap<DstType, SrcType, ExecSpace, 4> { template <class DstType, class SrcType, class ExecSpace> struct ViewRemap<DstType, SrcType, ExecSpace, 5> { - typedef Kokkos::pair<int64_t, int64_t> p_type; + using p_type = Kokkos::pair<int64_t, int64_t>; ViewRemap(const DstType& dst, const SrcType& src) { if (dst.extent(0) == src.extent(0)) { @@ -1243,9 +1012,9 @@ struct ViewRemap<DstType, SrcType, ExecSpace, 5> { p_type ext1(0, std::min(dst.extent(1), src.extent(1))); p_type ext2(0, std::min(dst.extent(2), src.extent(2))); p_type ext3(0, std::min(dst.extent(3), src.extent(3))); - typedef CommonSubview<DstType, SrcType, 5, Kokkos::Impl::ALL_t, p_type, - p_type, p_type, Kokkos::Impl::ALL_t> - sv_adapter_type; + using sv_adapter_type = + CommonSubview<DstType, SrcType, 5, Kokkos::Impl::ALL_t, p_type, + p_type, p_type, Kokkos::Impl::ALL_t>; sv_adapter_type common_subview(dst, src, Kokkos::ALL, ext1, ext2, ext3, Kokkos::ALL); view_copy(common_subview.dst_sub, common_subview.src_sub); @@ -1254,9 +1023,9 @@ struct ViewRemap<DstType, SrcType, ExecSpace, 5> { p_type ext2(0, std::min(dst.extent(2), src.extent(2))); p_type ext3(0, std::min(dst.extent(3), src.extent(3))); p_type ext4(0, std::min(dst.extent(4), src.extent(4))); - typedef CommonSubview<DstType, SrcType, 5, Kokkos::Impl::ALL_t, p_type, - p_type, p_type, p_type> - sv_adapter_type; + using sv_adapter_type = + CommonSubview<DstType, SrcType, 5, Kokkos::Impl::ALL_t, p_type, + p_type, p_type, p_type>; sv_adapter_type common_subview(dst, src, Kokkos::ALL, ext1, ext2, ext3, ext4); view_copy(common_subview.dst_sub, common_subview.src_sub); @@ -1267,9 +1036,9 @@ struct ViewRemap<DstType, SrcType, ExecSpace, 5> { p_type ext1(0, std::min(dst.extent(1), src.extent(1))); p_type ext2(0, std::min(dst.extent(2), src.extent(2))); p_type ext3(0, std::min(dst.extent(3), src.extent(3))); - typedef CommonSubview<DstType, SrcType, 5, p_type, p_type, p_type, - p_type, Kokkos::Impl::ALL_t> - sv_adapter_type; + using sv_adapter_type = + CommonSubview<DstType, SrcType, 5, p_type, p_type, p_type, p_type, + Kokkos::Impl::ALL_t>; sv_adapter_type common_subview(dst, src, ext0, ext1, ext2, ext3, Kokkos::ALL); view_copy(common_subview.dst_sub, common_subview.src_sub); @@ -1279,9 +1048,8 @@ struct ViewRemap<DstType, SrcType, ExecSpace, 5> { p_type ext2(0, std::min(dst.extent(2), src.extent(2))); p_type ext3(0, std::min(dst.extent(3), src.extent(3))); p_type ext4(0, std::min(dst.extent(4), src.extent(4))); - typedef CommonSubview<DstType, SrcType, 5, p_type, p_type, p_type, - p_type, p_type> - sv_adapter_type; + using sv_adapter_type = CommonSubview<DstType, SrcType, 5, p_type, + p_type, p_type, p_type, p_type>; sv_adapter_type common_subview(dst, src, ext0, ext1, ext2, ext3, ext4); view_copy(common_subview.dst_sub, common_subview.src_sub); } @@ -1290,7 +1058,7 @@ struct ViewRemap<DstType, SrcType, ExecSpace, 5> { }; template <class DstType, class SrcType, class ExecSpace> struct ViewRemap<DstType, SrcType, ExecSpace, 6> { - typedef Kokkos::pair<int64_t, int64_t> p_type; + using p_type = Kokkos::pair<int64_t, int64_t>; ViewRemap(const DstType& dst, const SrcType& src) { if (dst.extent(0) == src.extent(0)) { @@ -1299,9 +1067,9 @@ struct ViewRemap<DstType, SrcType, ExecSpace, 6> { p_type ext2(0, std::min(dst.extent(2), src.extent(2))); p_type ext3(0, std::min(dst.extent(3), src.extent(3))); p_type ext4(0, std::min(dst.extent(4), src.extent(4))); - typedef CommonSubview<DstType, SrcType, 6, Kokkos::Impl::ALL_t, p_type, - p_type, p_type, p_type, Kokkos::Impl::ALL_t> - sv_adapter_type; + using sv_adapter_type = + CommonSubview<DstType, SrcType, 6, Kokkos::Impl::ALL_t, p_type, + p_type, p_type, p_type, Kokkos::Impl::ALL_t>; sv_adapter_type common_subview(dst, src, Kokkos::ALL, ext1, ext2, ext3, ext4, Kokkos::ALL); view_copy(common_subview.dst_sub, common_subview.src_sub); @@ -1311,9 +1079,9 @@ struct ViewRemap<DstType, SrcType, ExecSpace, 6> { p_type ext3(0, std::min(dst.extent(3), src.extent(3))); p_type ext4(0, std::min(dst.extent(4), src.extent(4))); p_type ext5(0, std::min(dst.extent(5), src.extent(5))); - typedef CommonSubview<DstType, SrcType, 6, Kokkos::Impl::ALL_t, p_type, - p_type, p_type, p_type, p_type> - sv_adapter_type; + using sv_adapter_type = + CommonSubview<DstType, SrcType, 6, Kokkos::Impl::ALL_t, p_type, + p_type, p_type, p_type, p_type>; sv_adapter_type common_subview(dst, src, Kokkos::ALL, ext1, ext2, ext3, ext4, ext5); view_copy(common_subview.dst_sub, common_subview.src_sub); @@ -1326,9 +1094,9 @@ struct ViewRemap<DstType, SrcType, ExecSpace, 6> { p_type ext3(0, std::min(dst.extent(3), src.extent(3))); p_type ext4(0, std::min(dst.extent(4), src.extent(4))); - typedef CommonSubview<DstType, SrcType, 6, p_type, p_type, p_type, - p_type, p_type, Kokkos::Impl::ALL_t> - sv_adapter_type; + using sv_adapter_type = + CommonSubview<DstType, SrcType, 6, p_type, p_type, p_type, p_type, + p_type, Kokkos::Impl::ALL_t>; sv_adapter_type common_subview(dst, src, ext0, ext1, ext2, ext3, ext4, Kokkos::ALL); view_copy(common_subview.dst_sub, common_subview.src_sub); @@ -1340,9 +1108,9 @@ struct ViewRemap<DstType, SrcType, ExecSpace, 6> { p_type ext4(0, std::min(dst.extent(4), src.extent(4))); p_type ext5(0, std::min(dst.extent(5), src.extent(5))); - typedef CommonSubview<DstType, SrcType, 6, p_type, p_type, p_type, - p_type, p_type, p_type> - sv_adapter_type; + using sv_adapter_type = + CommonSubview<DstType, SrcType, 6, p_type, p_type, p_type, p_type, + p_type, p_type>; sv_adapter_type common_subview(dst, src, ext0, ext1, ext2, ext3, ext4, ext5); view_copy(common_subview.dst_sub, common_subview.src_sub); @@ -1353,7 +1121,7 @@ struct ViewRemap<DstType, SrcType, ExecSpace, 6> { template <class DstType, class SrcType, class ExecSpace> struct ViewRemap<DstType, SrcType, ExecSpace, 7> { - typedef Kokkos::pair<int64_t, int64_t> p_type; + using p_type = Kokkos::pair<int64_t, int64_t>; ViewRemap(const DstType& dst, const SrcType& src) { if (dst.extent(0) == src.extent(0)) { @@ -1363,10 +1131,9 @@ struct ViewRemap<DstType, SrcType, ExecSpace, 7> { p_type ext3(0, std::min(dst.extent(3), src.extent(3))); p_type ext4(0, std::min(dst.extent(4), src.extent(4))); p_type ext5(0, std::min(dst.extent(5), src.extent(5))); - typedef CommonSubview<DstType, SrcType, 7, Kokkos::Impl::ALL_t, p_type, - p_type, p_type, p_type, p_type, - Kokkos::Impl::ALL_t> - sv_adapter_type; + using sv_adapter_type = + CommonSubview<DstType, SrcType, 7, Kokkos::Impl::ALL_t, p_type, + p_type, p_type, p_type, p_type, Kokkos::Impl::ALL_t>; sv_adapter_type common_subview(dst, src, Kokkos::ALL, ext1, ext2, ext3, ext4, ext5, Kokkos::ALL); view_copy(common_subview.dst_sub, common_subview.src_sub); @@ -1377,9 +1144,9 @@ struct ViewRemap<DstType, SrcType, ExecSpace, 7> { p_type ext4(0, std::min(dst.extent(4), src.extent(4))); p_type ext5(0, std::min(dst.extent(5), src.extent(5))); p_type ext6(0, std::min(dst.extent(6), src.extent(6))); - typedef CommonSubview<DstType, SrcType, 7, Kokkos::Impl::ALL_t, p_type, - p_type, p_type, p_type, p_type, p_type> - sv_adapter_type; + using sv_adapter_type = + CommonSubview<DstType, SrcType, 7, Kokkos::Impl::ALL_t, p_type, + p_type, p_type, p_type, p_type, p_type>; sv_adapter_type common_subview(dst, src, Kokkos::ALL, ext1, ext2, ext3, ext4, ext5, ext6); view_copy(common_subview.dst_sub, common_subview.src_sub); @@ -1392,9 +1159,9 @@ struct ViewRemap<DstType, SrcType, ExecSpace, 7> { p_type ext3(0, std::min(dst.extent(3), src.extent(3))); p_type ext4(0, std::min(dst.extent(4), src.extent(4))); p_type ext5(0, std::min(dst.extent(5), src.extent(5))); - typedef CommonSubview<DstType, SrcType, 7, p_type, p_type, p_type, - p_type, p_type, p_type, Kokkos::Impl::ALL_t> - sv_adapter_type; + using sv_adapter_type = + CommonSubview<DstType, SrcType, 7, p_type, p_type, p_type, p_type, + p_type, p_type, Kokkos::Impl::ALL_t>; sv_adapter_type common_subview(dst, src, ext0, ext1, ext2, ext3, ext4, ext5, Kokkos::ALL); view_copy(common_subview.dst_sub, common_subview.src_sub); @@ -1406,9 +1173,9 @@ struct ViewRemap<DstType, SrcType, ExecSpace, 7> { p_type ext4(0, std::min(dst.extent(4), src.extent(4))); p_type ext5(0, std::min(dst.extent(5), src.extent(5))); p_type ext6(0, std::min(dst.extent(6), src.extent(6))); - typedef CommonSubview<DstType, SrcType, 7, p_type, p_type, p_type, - p_type, p_type, p_type, p_type> - sv_adapter_type; + using sv_adapter_type = + CommonSubview<DstType, SrcType, 7, p_type, p_type, p_type, p_type, + p_type, p_type, p_type>; sv_adapter_type common_subview(dst, src, ext0, ext1, ext2, ext3, ext4, ext5, ext6); view_copy(common_subview.dst_sub, common_subview.src_sub); @@ -1419,7 +1186,7 @@ struct ViewRemap<DstType, SrcType, ExecSpace, 7> { template <class DstType, class SrcType, class ExecSpace> struct ViewRemap<DstType, SrcType, ExecSpace, 8> { - typedef Kokkos::pair<int64_t, int64_t> p_type; + using p_type = Kokkos::pair<int64_t, int64_t>; ViewRemap(const DstType& dst, const SrcType& src) { if (dst.extent(0) == src.extent(0)) { @@ -1430,10 +1197,10 @@ struct ViewRemap<DstType, SrcType, ExecSpace, 8> { p_type ext4(0, std::min(dst.extent(4), src.extent(4))); p_type ext5(0, std::min(dst.extent(5), src.extent(5))); p_type ext6(0, std::min(dst.extent(6), src.extent(6))); - typedef CommonSubview<DstType, SrcType, 8, Kokkos::Impl::ALL_t, p_type, - p_type, p_type, p_type, p_type, p_type, - Kokkos::Impl::ALL_t> - sv_adapter_type; + using sv_adapter_type = + CommonSubview<DstType, SrcType, 8, Kokkos::Impl::ALL_t, p_type, + p_type, p_type, p_type, p_type, p_type, + Kokkos::Impl::ALL_t>; sv_adapter_type common_subview(dst, src, Kokkos::ALL, ext1, ext2, ext3, ext4, ext5, ext6, Kokkos::ALL); view_copy(common_subview.dst_sub, common_subview.src_sub); @@ -1445,9 +1212,9 @@ struct ViewRemap<DstType, SrcType, ExecSpace, 8> { p_type ext5(0, std::min(dst.extent(5), src.extent(5))); p_type ext6(0, std::min(dst.extent(6), src.extent(6))); p_type ext7(0, std::min(dst.extent(7), src.extent(7))); - typedef CommonSubview<DstType, SrcType, 8, Kokkos::Impl::ALL_t, p_type, - p_type, p_type, p_type, p_type, p_type, p_type> - sv_adapter_type; + using sv_adapter_type = + CommonSubview<DstType, SrcType, 8, Kokkos::Impl::ALL_t, p_type, + p_type, p_type, p_type, p_type, p_type, p_type>; sv_adapter_type common_subview(dst, src, Kokkos::ALL, ext1, ext2, ext3, ext4, ext5, ext6, ext7); view_copy(common_subview.dst_sub, common_subview.src_sub); @@ -1461,10 +1228,9 @@ struct ViewRemap<DstType, SrcType, ExecSpace, 8> { p_type ext4(0, std::min(dst.extent(4), src.extent(4))); p_type ext5(0, std::min(dst.extent(5), src.extent(5))); p_type ext6(0, std::min(dst.extent(6), src.extent(6))); - typedef CommonSubview<DstType, SrcType, 8, p_type, p_type, p_type, - p_type, p_type, p_type, p_type, - Kokkos::Impl::ALL_t> - sv_adapter_type; + using sv_adapter_type = + CommonSubview<DstType, SrcType, 8, p_type, p_type, p_type, p_type, + p_type, p_type, p_type, Kokkos::Impl::ALL_t>; sv_adapter_type common_subview(dst, src, ext0, ext1, ext2, ext3, ext4, ext5, ext6, Kokkos::ALL); view_copy(common_subview.dst_sub, common_subview.src_sub); @@ -1477,9 +1243,9 @@ struct ViewRemap<DstType, SrcType, ExecSpace, 8> { p_type ext5(0, std::min(dst.extent(5), src.extent(5))); p_type ext6(0, std::min(dst.extent(6), src.extent(6))); p_type ext7(0, std::min(dst.extent(7), src.extent(7))); - typedef CommonSubview<DstType, SrcType, 8, p_type, p_type, p_type, - p_type, p_type, p_type, p_type, p_type> - sv_adapter_type; + using sv_adapter_type = + CommonSubview<DstType, SrcType, 8, p_type, p_type, p_type, p_type, + p_type, p_type, p_type, p_type>; sv_adapter_type common_subview(dst, src, ext0, ext1, ext2, ext3, ext4, ext5, ext6, ext7); view_copy(common_subview.dst_sub, common_subview.src_sub); @@ -1498,26 +1264,22 @@ inline void deep_copy( typename std::enable_if<std::is_same< typename ViewTraits<DT, DP...>::specialize, void>::value>::type* = nullptr) { - typedef View<DT, DP...> ViewType; + using ViewType = View<DT, DP...>; using exec_space_type = typename ViewType::execution_space; -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { + if (Kokkos::Tools::Experimental::get_callbacks().begin_deep_copy != nullptr) { Kokkos::Profiling::beginDeepCopy( - Kokkos::Profiling::SpaceHandle(ViewType::memory_space::name()), + Kokkos::Profiling::make_space_handle(ViewType::memory_space::name()), dst.label(), dst.data(), - Kokkos::Profiling::SpaceHandle(Kokkos::HostSpace::name()), "Scalar", - &value, dst.span() * sizeof(typename ViewType::value_type)); + Kokkos::Profiling::make_space_handle(Kokkos::HostSpace::name()), + "Scalar", &value, dst.span() * sizeof(typename ViewType::value_type)); } -#endif if (dst.data() == nullptr) { Kokkos::fence(); -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { + if (Kokkos::Tools::Experimental::get_callbacks().end_deep_copy != nullptr) { Kokkos::Profiling::endDeepCopy(); } -#endif return; } @@ -1528,14 +1290,13 @@ inline void deep_copy( // If contiguous we can simply do a 1D flat loop if (dst.span_is_contiguous()) { - typedef Kokkos::View< + using ViewTypeFlat = Kokkos::View< typename ViewType::value_type*, Kokkos::LayoutRight, Kokkos::Device<typename ViewType::execution_space, typename std::conditional< ViewType::Rank == 0, typename ViewType::memory_space, Kokkos::AnonymousSpace>::type>, - Kokkos::MemoryTraits<0>> - ViewTypeFlat; + Kokkos::MemoryTraits<0>>; ViewTypeFlat dst_flat(dst.data(), dst.size()); if (dst.span() < static_cast<size_t>(std::numeric_limits<int>::max())) { @@ -1547,11 +1308,9 @@ inline void deep_copy( ViewTypeFlat::Rank, int64_t>(dst_flat, value, exec_space_type()); Kokkos::fence(); -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { + if (Kokkos::Tools::Experimental::get_callbacks().end_deep_copy != nullptr) { Kokkos::Profiling::endDeepCopy(); } -#endif return; } @@ -1581,9 +1340,9 @@ inline void deep_copy( // Lets call the right ViewFill functor based on integer space needed and // iteration type - typedef typename std::conditional< + using ViewTypeUniform = typename std::conditional< ViewType::Rank == 0, typename ViewType::uniform_runtime_type, - typename ViewType::uniform_runtime_nomemspace_type>::type ViewTypeUniform; + typename ViewType::uniform_runtime_nomemspace_type>::type; if (dst.span() > static_cast<size_t>(std::numeric_limits<int>::max())) { if (iterate == Kokkos::Iterate::Right) Kokkos::Impl::ViewFill<ViewTypeUniform, Kokkos::LayoutRight, @@ -1605,11 +1364,9 @@ inline void deep_copy( } Kokkos::fence(); -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { + if (Kokkos::Tools::Experimental::get_callbacks().end_deep_copy != nullptr) { Kokkos::Profiling::endDeepCopy(); } -#endif } /** \brief Deep copy into a value in Host memory from a view. */ @@ -1620,39 +1377,34 @@ inline void deep_copy( typename std::enable_if<std::is_same< typename ViewTraits<ST, SP...>::specialize, void>::value>::type* = nullptr) { - typedef ViewTraits<ST, SP...> src_traits; - typedef typename src_traits::memory_space src_memory_space; + using src_traits = ViewTraits<ST, SP...>; + using src_memory_space = typename src_traits::memory_space; static_assert(src_traits::rank == 0, "ERROR: Non-rank-zero view in deep_copy( value , View )"); -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { + if (Kokkos::Tools::Experimental::get_callbacks().begin_deep_copy != nullptr) { Kokkos::Profiling::beginDeepCopy( - Kokkos::Profiling::SpaceHandle(Kokkos::HostSpace::name()), "Scalar", - &dst, Kokkos::Profiling::SpaceHandle(src_memory_space::name()), + Kokkos::Profiling::make_space_handle(Kokkos::HostSpace::name()), + "Scalar", &dst, + Kokkos::Profiling::make_space_handle(src_memory_space::name()), src.label(), src.data(), src.span() * sizeof(typename src_traits::value_type)); } -#endif if (src.data() == nullptr) { Kokkos::fence(); -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { + if (Kokkos::Tools::Experimental::get_callbacks().end_deep_copy != nullptr) { Kokkos::Profiling::endDeepCopy(); } -#endif return; } Kokkos::Impl::DeepCopy<HostSpace, src_memory_space>(&dst, src.data(), sizeof(ST)); -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { + if (Kokkos::Tools::Experimental::get_callbacks().end_deep_copy != nullptr) { Kokkos::Profiling::endDeepCopy(); } -#endif } //---------------------------------------------------------------------------- @@ -1666,34 +1418,31 @@ inline void deep_copy( (unsigned(ViewTraits<DT, DP...>::rank) == unsigned(0) && unsigned(ViewTraits<ST, SP...>::rank) == unsigned(0)))>::type* = nullptr) { - typedef View<DT, DP...> dst_type; - typedef View<ST, SP...> src_type; + using dst_type = View<DT, DP...>; + using src_type = View<ST, SP...>; - typedef typename dst_type::value_type value_type; - typedef typename dst_type::memory_space dst_memory_space; - typedef typename src_type::memory_space src_memory_space; + using value_type = typename dst_type::value_type; + using dst_memory_space = typename dst_type::memory_space; + using src_memory_space = typename src_type::memory_space; static_assert(std::is_same<typename dst_type::value_type, typename src_type::non_const_value_type>::value, "deep_copy requires matching non-const destination type"); -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { + if (Kokkos::Tools::Experimental::get_callbacks().begin_deep_copy != nullptr) { Kokkos::Profiling::beginDeepCopy( - Kokkos::Profiling::SpaceHandle(dst_memory_space::name()), dst.label(), - dst.data(), Kokkos::Profiling::SpaceHandle(src_memory_space::name()), + Kokkos::Profiling::make_space_handle(dst_memory_space::name()), + dst.label(), dst.data(), + Kokkos::Profiling::make_space_handle(src_memory_space::name()), src.label(), src.data(), src.span() * sizeof(typename dst_type::value_type)); } -#endif if (dst.data() == nullptr && src.data() == nullptr) { Kokkos::fence(); -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { + if (Kokkos::Tools::Experimental::get_callbacks().end_deep_copy != nullptr) { Kokkos::Profiling::endDeepCopy(); } -#endif return; } @@ -1703,11 +1452,9 @@ inline void deep_copy( dst.data(), src.data(), sizeof(value_type)); Kokkos::fence(); } -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { + if (Kokkos::Tools::Experimental::get_callbacks().end_deep_copy != nullptr) { Kokkos::Profiling::endDeepCopy(); } -#endif } //---------------------------------------------------------------------------- @@ -1722,14 +1469,14 @@ inline void deep_copy( std::is_same<typename ViewTraits<ST, SP...>::specialize, void>::value && (unsigned(ViewTraits<DT, DP...>::rank) != 0 || unsigned(ViewTraits<ST, SP...>::rank) != 0))>::type* = nullptr) { - typedef View<DT, DP...> dst_type; - typedef View<ST, SP...> src_type; - typedef typename dst_type::execution_space dst_execution_space; - typedef typename src_type::execution_space src_execution_space; - typedef typename dst_type::memory_space dst_memory_space; - typedef typename src_type::memory_space src_memory_space; - typedef typename dst_type::value_type dst_value_type; - typedef typename src_type::value_type src_value_type; + using dst_type = View<DT, DP...>; + using src_type = View<ST, SP...>; + using dst_execution_space = typename dst_type::execution_space; + using src_execution_space = typename src_type::execution_space; + using dst_memory_space = typename dst_type::memory_space; + using src_memory_space = typename src_type::memory_space; + using dst_value_type = typename dst_type::value_type; + using src_value_type = typename src_type::value_type; static_assert(std::is_same<typename dst_type::value_type, typename dst_type::non_const_value_type>::value, @@ -1738,20 +1485,16 @@ inline void deep_copy( static_assert((unsigned(dst_type::rank) == unsigned(src_type::rank)), "deep_copy requires Views of equal rank"); -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { + if (Kokkos::Tools::Experimental::get_callbacks().begin_deep_copy != nullptr) { Kokkos::Profiling::beginDeepCopy( - Kokkos::Profiling::SpaceHandle(dst_memory_space::name()), dst.label(), - dst.data(), Kokkos::Profiling::SpaceHandle(src_memory_space::name()), + Kokkos::Profiling::make_space_handle(dst_memory_space::name()), + dst.label(), dst.data(), + Kokkos::Profiling::make_space_handle(src_memory_space::name()), src.label(), src.data(), src.span() * sizeof(typename dst_type::value_type)); } -#endif if (dst.data() == nullptr || src.data() == nullptr) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - // do nothing -#else // throw if dimension mismatch if ((src.extent(0) != dst.extent(0)) || (src.extent(1) != dst.extent(1)) || (src.extent(2) != dst.extent(2)) || (src.extent(3) != dst.extent(3)) || @@ -1779,13 +1522,10 @@ inline void deep_copy( Kokkos::Impl::throw_runtime_exception(message); } -#endif Kokkos::fence(); -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { + if (Kokkos::Tools::Experimental::get_callbacks().end_deep_copy != nullptr) { Kokkos::Profiling::endDeepCopy(); } -#endif return; } @@ -1810,11 +1550,9 @@ inline void deep_copy( ((std::ptrdiff_t)dst_end == (std::ptrdiff_t)src_end) && (dst.span_is_contiguous() && src.span_is_contiguous())) { Kokkos::fence(); -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { + if (Kokkos::Tools::Experimental::get_callbacks().end_deep_copy != nullptr) { Kokkos::Profiling::endDeepCopy(); } -#endif return; } @@ -1842,29 +1580,6 @@ inline void deep_copy( (src.extent(2) != dst.extent(2)) || (src.extent(3) != dst.extent(3)) || (src.extent(4) != dst.extent(4)) || (src.extent(5) != dst.extent(5)) || (src.extent(6) != dst.extent(6)) || (src.extent(7) != dst.extent(7))) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - Kokkos::fence(); - if (DstExecCanAccessSrc) { - // Copying data between views in accessible memory spaces and either - // non-contiguous or incompatible shape. - Kokkos::Impl::ViewRemap<dst_type, src_type>(dst, src); - } else if (SrcExecCanAccessDst) { - // Copying data between views in accessible memory spaces and either - // non-contiguous or incompatible shape. - Kokkos::Impl::ViewRemap<dst_type, src_type, src_execution_space>(dst, - src); - } else { - Kokkos::Impl::throw_runtime_exception( - "deep_copy given views that would require a temporary allocation"); - } - Kokkos::fence(); -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::endDeepCopy(); - } -#endif - return; -#else std::string message( "Deprecation Error: Kokkos::deep_copy extents of views don't match: "); message += dst.label(); @@ -1885,7 +1600,6 @@ inline void deep_copy( message += ") "; Kokkos::Impl::throw_runtime_exception(message); -#endif } // If same type, equal layout, equal dimensions, equal span, and contiguous @@ -1910,18 +1624,16 @@ inline void deep_copy( if ((void*)dst.data() != (void*)src.data()) { Kokkos::Impl::DeepCopy<dst_memory_space, src_memory_space>( dst.data(), src.data(), nbytes); + Kokkos::fence(); } - Kokkos::fence(); } else { Kokkos::fence(); Impl::view_copy(dst, src); Kokkos::fence(); } -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { + if (Kokkos::Tools::Experimental::get_callbacks().end_deep_copy != nullptr) { Kokkos::Profiling::endDeepCopy(); } -#endif } //---------------------------------------------------------------------------- @@ -2712,19 +2424,18 @@ inline void deep_copy( ExecSpace, typename ViewTraits<DT, DP...>::memory_space>::accessible>::type* = nullptr) { - typedef ViewTraits<DT, DP...> dst_traits; + using dst_traits = ViewTraits<DT, DP...>; static_assert(std::is_same<typename dst_traits::non_const_value_type, typename dst_traits::value_type>::value, "deep_copy requires non-const type"); -#if defined(KOKKOS_ENABLE_PROFILING) - typedef typename dst_traits::memory_space dst_memory_space; - if (Kokkos::Profiling::profileLibraryLoaded()) { + using dst_memory_space = typename dst_traits::memory_space; + if (Kokkos::Tools::Experimental::get_callbacks().begin_deep_copy != nullptr) { Kokkos::Profiling::beginDeepCopy( - Kokkos::Profiling::SpaceHandle(dst_memory_space::name()), dst.label(), - dst.data(), Kokkos::Profiling::SpaceHandle(Kokkos::HostSpace::name()), + Kokkos::Profiling::make_space_handle(dst_memory_space::name()), + dst.label(), dst.data(), + Kokkos::Profiling::make_space_handle(Kokkos::HostSpace::name()), "(none)", &value, dst.span() * sizeof(typename dst_traits::value_type)); } -#endif if (dst.data() == nullptr) { space.fence(); } else { @@ -2735,11 +2446,9 @@ inline void deep_copy( Kokkos::Impl::ViewFill<ViewTypeUniform, typename dst_traits::array_layout, ExecSpace>(dst, value, space); } -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { + if (Kokkos::Tools::Experimental::get_callbacks().end_deep_copy != nullptr) { Kokkos::Profiling::endDeepCopy(); } -#endif } /** \brief Deep copy a value from Host memory into a view. ExecSpace can not @@ -2755,19 +2464,18 @@ inline void deep_copy( ExecSpace, typename ViewTraits<DT, DP...>::memory_space>::accessible>::type* = nullptr) { - typedef ViewTraits<DT, DP...> dst_traits; + using dst_traits = ViewTraits<DT, DP...>; static_assert(std::is_same<typename dst_traits::non_const_value_type, typename dst_traits::value_type>::value, "deep_copy requires non-const type"); -#if defined(KOKKOS_ENABLE_PROFILING) - typedef typename dst_traits::memory_space dst_memory_space; - if (Kokkos::Profiling::profileLibraryLoaded()) { + using dst_memory_space = typename dst_traits::memory_space; + if (Kokkos::Tools::Experimental::get_callbacks().begin_deep_copy != nullptr) { Kokkos::Profiling::beginDeepCopy( - Kokkos::Profiling::SpaceHandle(dst_memory_space::name()), dst.label(), - dst.data(), Kokkos::Profiling::SpaceHandle(Kokkos::HostSpace::name()), + Kokkos::Profiling::make_space_handle(dst_memory_space::name()), + dst.label(), dst.data(), + Kokkos::Profiling::make_space_handle(Kokkos::HostSpace::name()), "(none)", &value, dst.span() * sizeof(typename dst_traits::value_type)); } -#endif if (dst.data() == nullptr) { space.fence(); } else { @@ -2781,11 +2489,9 @@ inline void deep_copy( fill_exec_space>(dst, value, fill_exec_space()); fill_exec_space().fence(); } -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { + if (Kokkos::Tools::Experimental::get_callbacks().end_deep_copy != nullptr) { Kokkos::Profiling::endDeepCopy(); } -#endif } /** \brief Deep copy into a value in Host memory from a view. */ @@ -2797,37 +2503,32 @@ inline void deep_copy( typename std::enable_if< Kokkos::Impl::is_execution_space<ExecSpace>::value && std::is_same<typename ViewTraits<ST, SP...>::specialize, - void>::value>::type* = 0) { - typedef ViewTraits<ST, SP...> src_traits; - typedef typename src_traits::memory_space src_memory_space; + void>::value>::type* = nullptr) { + using src_traits = ViewTraits<ST, SP...>; + using src_memory_space = typename src_traits::memory_space; static_assert(src_traits::rank == 0, "ERROR: Non-rank-zero view in deep_copy( value , View )"); -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { + if (Kokkos::Tools::Experimental::get_callbacks().begin_deep_copy != nullptr) { Kokkos::Profiling::beginDeepCopy( - Kokkos::Profiling::SpaceHandle(Kokkos::HostSpace::name()), "(none)", - &dst, Kokkos::Profiling::SpaceHandle(src_memory_space::name()), + Kokkos::Profiling::make_space_handle(Kokkos::HostSpace::name()), + "(none)", &dst, + Kokkos::Profiling::make_space_handle(src_memory_space::name()), src.label(), src.data(), sizeof(ST)); } -#endif if (src.data() == nullptr) { exec_space.fence(); -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { + if (Kokkos::Tools::Experimental::get_callbacks().end_deep_copy != nullptr) { Kokkos::Profiling::endDeepCopy(); } -#endif return; } Kokkos::Impl::DeepCopy<HostSpace, src_memory_space, ExecSpace>( exec_space, &dst, src.data(), sizeof(ST)); -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { + if (Kokkos::Tools::Experimental::get_callbacks().end_deep_copy != nullptr) { Kokkos::Profiling::endDeepCopy(); } -#endif } //---------------------------------------------------------------------------- @@ -2841,32 +2542,30 @@ inline void deep_copy( std::is_same<typename ViewTraits<DT, DP...>::specialize, void>::value && std::is_same<typename ViewTraits<ST, SP...>::specialize, void>::value && (unsigned(ViewTraits<DT, DP...>::rank) == unsigned(0) && - unsigned(ViewTraits<ST, SP...>::rank) == unsigned(0)))>::type* = 0) { - typedef ViewTraits<ST, SP...> src_traits; - typedef ViewTraits<DT, DP...> dst_traits; + unsigned(ViewTraits<ST, SP...>::rank) == unsigned(0)))>::type* = + nullptr) { + using src_traits = ViewTraits<ST, SP...>; + using dst_traits = ViewTraits<DT, DP...>; - typedef typename src_traits::memory_space src_memory_space; - typedef typename dst_traits::memory_space dst_memory_space; + using src_memory_space = typename src_traits::memory_space; + using dst_memory_space = typename dst_traits::memory_space; static_assert(std::is_same<typename dst_traits::value_type, typename src_traits::non_const_value_type>::value, "deep_copy requires matching non-const destination type"); -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { + if (Kokkos::Tools::Experimental::get_callbacks().begin_deep_copy != nullptr) { Kokkos::Profiling::beginDeepCopy( - Kokkos::Profiling::SpaceHandle(dst_memory_space::name()), dst.label(), - dst.data(), Kokkos::Profiling::SpaceHandle(src_memory_space::name()), + Kokkos::Profiling::make_space_handle(dst_memory_space::name()), + dst.label(), dst.data(), + Kokkos::Profiling::make_space_handle(src_memory_space::name()), src.label(), src.data(), sizeof(DT)); } -#endif if (dst.data() == nullptr && src.data() == nullptr) { exec_space.fence(); -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { + if (Kokkos::Tools::Experimental::get_callbacks().end_deep_copy != nullptr) { Kokkos::Profiling::endDeepCopy(); } -#endif return; } @@ -2875,11 +2574,9 @@ inline void deep_copy( exec_space, dst.data(), src.data(), sizeof(typename dst_traits::value_type)); } -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { + if (Kokkos::Tools::Experimental::get_callbacks().end_deep_copy != nullptr) { Kokkos::Profiling::endDeepCopy(); } -#endif } //---------------------------------------------------------------------------- @@ -2896,8 +2593,8 @@ inline void deep_copy( std::is_same<typename ViewTraits<ST, SP...>::specialize, void>::value && (unsigned(ViewTraits<DT, DP...>::rank) != 0 || unsigned(ViewTraits<ST, SP...>::rank) != 0))>::type* = nullptr) { - typedef View<DT, DP...> dst_type; - typedef View<ST, SP...> src_type; + using dst_type = View<DT, DP...>; + using src_type = View<ST, SP...>; static_assert(std::is_same<typename dst_type::value_type, typename dst_type::non_const_value_type>::value, @@ -2906,21 +2603,20 @@ inline void deep_copy( static_assert((unsigned(dst_type::rank) == unsigned(src_type::rank)), "deep_copy requires Views of equal rank"); - typedef typename dst_type::execution_space dst_execution_space; - typedef typename src_type::execution_space src_execution_space; - typedef typename dst_type::memory_space dst_memory_space; - typedef typename src_type::memory_space src_memory_space; - typedef typename dst_type::value_type dst_value_type; - typedef typename src_type::value_type src_value_type; + using dst_execution_space = typename dst_type::execution_space; + using src_execution_space = typename src_type::execution_space; + using dst_memory_space = typename dst_type::memory_space; + using src_memory_space = typename src_type::memory_space; + using dst_value_type = typename dst_type::value_type; + using src_value_type = typename src_type::value_type; -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { + if (Kokkos::Tools::Experimental::get_callbacks().begin_deep_copy != nullptr) { Kokkos::Profiling::beginDeepCopy( - Kokkos::Profiling::SpaceHandle(dst_memory_space::name()), dst.label(), - dst.data(), Kokkos::Profiling::SpaceHandle(src_memory_space::name()), + Kokkos::Profiling::make_space_handle(dst_memory_space::name()), + dst.label(), dst.data(), + Kokkos::Profiling::make_space_handle(src_memory_space::name()), src.label(), src.data(), dst.span() * sizeof(dst_value_type)); } -#endif dst_value_type* dst_start = dst.data(); dst_value_type* dst_end = dst.data() + dst.span(); @@ -2931,9 +2627,6 @@ inline void deep_copy( if ((dst_start == nullptr || src_start == nullptr) || ((std::ptrdiff_t(dst_start) == std::ptrdiff_t(src_start)) && (std::ptrdiff_t(dst_end) == std::ptrdiff_t(src_end)))) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - // do nothing -#else // throw if dimension mismatch if ((src.extent(0) != dst.extent(0)) || (src.extent(1) != dst.extent(1)) || (src.extent(2) != dst.extent(2)) || (src.extent(3) != dst.extent(3)) || @@ -2961,12 +2654,9 @@ inline void deep_copy( Kokkos::Impl::throw_runtime_exception(message); } -#endif -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { + if (Kokkos::Tools::Experimental::get_callbacks().end_deep_copy != nullptr) { Kokkos::Profiling::endDeepCopy(); } -#endif return; } @@ -3014,35 +2704,6 @@ inline void deep_copy( (src.extent(2) != dst.extent(2)) || (src.extent(3) != dst.extent(3)) || (src.extent(4) != dst.extent(4)) || (src.extent(5) != dst.extent(5)) || (src.extent(6) != dst.extent(6)) || (src.extent(7) != dst.extent(7))) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - if (ExecCanAccessSrcDst) { - Kokkos::Impl::ViewRemap<dst_type, src_type, ExecSpace>(dst, src); - exec_space.fence(); - } else if (DstExecCanAccessSrc) { - // Copying data between views in accessible memory spaces and either - // non-contiguous or incompatible shape. - exec_space.fence(); - Kokkos::Impl::ViewRemap<dst_type, src_type, dst_execution_space>(dst, - src); - dst_execution_space().fence(); - } else if (SrcExecCanAccessDst) { - // Copying data between views in accessible memory spaces and either - // non-contiguous or incompatible shape. - exec_space.fence(); - Kokkos::Impl::ViewRemap<dst_type, src_type, src_execution_space>(dst, - src); - src_execution_space().fence(); - } else { - Kokkos::Impl::throw_runtime_exception( - "deep_copy given views that would require a temporary allocation"); - } -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::endDeepCopy(); - } -#endif - return; -#else std::string message( "Deprecation Error: Kokkos::deep_copy extents of views don't match: "); message += dst.label(); @@ -3063,7 +2724,6 @@ inline void deep_copy( message += ") "; Kokkos::Impl::throw_runtime_exception(message); -#endif } // If same type, equal layout, equal dimensions, equal span, and contiguous @@ -3105,11 +2765,9 @@ inline void deep_copy( "deep_copy given views that would require a temporary allocation"); } } -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { + if (Kokkos::Tools::Experimental::get_callbacks().end_deep_copy != nullptr) { Kokkos::Profiling::endDeepCopy(); } -#endif } } /* namespace Kokkos */ @@ -3135,7 +2793,7 @@ resize(Kokkos::View<T, P...>& v, const size_t n0 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, const size_t n5 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, const size_t n6 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, const size_t n7 = KOKKOS_IMPL_CTOR_DEFAULT_ARG) { - typedef Kokkos::View<T, P...> view_type; + using view_type = Kokkos::View<T, P...>; static_assert(Kokkos::ViewTraits<T, P...>::is_managed, "Can only resize managed views"); @@ -3232,7 +2890,7 @@ resize(const I& arg_prop, Kokkos::View<T, P...>& v, const size_t n5 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, const size_t n6 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, const size_t n7 = KOKKOS_IMPL_CTOR_DEFAULT_ARG) { - typedef Kokkos::View<T, P...> view_type; + using view_type = Kokkos::View<T, P...>; static_assert(Kokkos::ViewTraits<T, P...>::is_managed, "Can only resize managed views"); @@ -3318,7 +2976,7 @@ resize(const I& arg_prop, Kokkos::View<T, P...>& v, template <class T, class... P> inline void resize(Kokkos::View<T, P...>& v, const typename Kokkos::View<T, P...>::array_layout& layout) { - typedef Kokkos::View<T, P...> view_type; + using view_type = Kokkos::View<T, P...>; static_assert(Kokkos::ViewTraits<T, P...>::is_managed, "Can only resize managed views"); @@ -3346,7 +3004,7 @@ realloc(Kokkos::View<T, P...>& v, const size_t n5 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, const size_t n6 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, const size_t n7 = KOKKOS_IMPL_CTOR_DEFAULT_ARG) { - typedef Kokkos::View<T, P...> view_type; + using view_type = Kokkos::View<T, P...>; static_assert(Kokkos::ViewTraits<T, P...>::is_managed, "Can only realloc managed views"); @@ -3362,7 +3020,7 @@ template <class T, class... P> inline void realloc( Kokkos::View<T, P...>& v, const typename Kokkos::View<T, P...>::array_layout& layout) { - typedef Kokkos::View<T, P...> view_type; + using view_type = Kokkos::View<T, P...>; static_assert(Kokkos::ViewTraits<T, P...>::is_managed, "Can only realloc managed views"); @@ -3384,45 +3042,45 @@ namespace Impl { template <class Space, class T, class... P> struct MirrorViewType { // The incoming view_type - typedef typename Kokkos::View<T, P...> src_view_type; + using src_view_type = typename Kokkos::View<T, P...>; // The memory space for the mirror view - typedef typename Space::memory_space memory_space; + using memory_space = typename Space::memory_space; // Check whether it is the same memory space enum { is_same_memspace = std::is_same<memory_space, typename src_view_type::memory_space>::value }; // The array_layout - typedef typename src_view_type::array_layout array_layout; + using array_layout = typename src_view_type::array_layout; // The data type (we probably want it non-const since otherwise we can't even // deep_copy to it. - typedef typename src_view_type::non_const_data_type data_type; + using data_type = typename src_view_type::non_const_data_type; // The destination view type if it is not the same memory space - typedef Kokkos::View<data_type, array_layout, Space> dest_view_type; + using dest_view_type = Kokkos::View<data_type, array_layout, Space>; // If it is the same memory_space return the existsing view_type // This will also keep the unmanaged trait if necessary - typedef typename std::conditional<is_same_memspace, src_view_type, - dest_view_type>::type view_type; + using view_type = typename std::conditional<is_same_memspace, src_view_type, + dest_view_type>::type; }; template <class Space, class T, class... P> struct MirrorType { // The incoming view_type - typedef typename Kokkos::View<T, P...> src_view_type; + using src_view_type = typename Kokkos::View<T, P...>; // The memory space for the mirror view - typedef typename Space::memory_space memory_space; + using memory_space = typename Space::memory_space; // Check whether it is the same memory space enum { is_same_memspace = std::is_same<memory_space, typename src_view_type::memory_space>::value }; // The array_layout - typedef typename src_view_type::array_layout array_layout; + using array_layout = typename src_view_type::array_layout; // The data type (we probably want it non-const since otherwise we can't even // deep_copy to it. - typedef typename src_view_type::non_const_data_type data_type; + using data_type = typename src_view_type::non_const_data_type; // The destination view type if it is not the same memory space - typedef Kokkos::View<data_type, array_layout, Space> view_type; + using view_type = Kokkos::View<data_type, array_layout, Space>; }; } // namespace Impl @@ -3434,33 +3092,19 @@ inline typename Kokkos::View<T, P...>::HostMirror create_mirror( std::is_same<typename ViewTraits<T, P...>::specialize, void>::value && !std::is_same<typename Kokkos::ViewTraits<T, P...>::array_layout, Kokkos::LayoutStride>::value>::type* = nullptr) { - typedef View<T, P...> src_type; - typedef typename src_type::HostMirror dst_type; - - return dst_type(std::string(src.label()).append("_mirror") -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - , - src.extent(0), src.extent(1), src.extent(2), src.extent(3), - src.extent(4), src.extent(5), src.extent(6), src.extent(7)); -#else - , - src.rank_dynamic > 0 ? src.extent(0) - : KOKKOS_IMPL_CTOR_DEFAULT_ARG, - src.rank_dynamic > 1 ? src.extent(1) - : KOKKOS_IMPL_CTOR_DEFAULT_ARG, - src.rank_dynamic > 2 ? src.extent(2) - : KOKKOS_IMPL_CTOR_DEFAULT_ARG, - src.rank_dynamic > 3 ? src.extent(3) - : KOKKOS_IMPL_CTOR_DEFAULT_ARG, - src.rank_dynamic > 4 ? src.extent(4) - : KOKKOS_IMPL_CTOR_DEFAULT_ARG, - src.rank_dynamic > 5 ? src.extent(5) - : KOKKOS_IMPL_CTOR_DEFAULT_ARG, - src.rank_dynamic > 6 ? src.extent(6) - : KOKKOS_IMPL_CTOR_DEFAULT_ARG, - src.rank_dynamic > 7 ? src.extent(7) - : KOKKOS_IMPL_CTOR_DEFAULT_ARG); -#endif + using src_type = View<T, P...>; + using dst_type = typename src_type::HostMirror; + + return dst_type( + std::string(src.label()).append("_mirror"), + src.rank_dynamic > 0 ? src.extent(0) : KOKKOS_IMPL_CTOR_DEFAULT_ARG, + src.rank_dynamic > 1 ? src.extent(1) : KOKKOS_IMPL_CTOR_DEFAULT_ARG, + src.rank_dynamic > 2 ? src.extent(2) : KOKKOS_IMPL_CTOR_DEFAULT_ARG, + src.rank_dynamic > 3 ? src.extent(3) : KOKKOS_IMPL_CTOR_DEFAULT_ARG, + src.rank_dynamic > 4 ? src.extent(4) : KOKKOS_IMPL_CTOR_DEFAULT_ARG, + src.rank_dynamic > 5 ? src.extent(5) : KOKKOS_IMPL_CTOR_DEFAULT_ARG, + src.rank_dynamic > 6 ? src.extent(6) : KOKKOS_IMPL_CTOR_DEFAULT_ARG, + src.rank_dynamic > 7 ? src.extent(7) : KOKKOS_IMPL_CTOR_DEFAULT_ARG); } template <class T, class... P> @@ -3470,8 +3114,8 @@ inline typename Kokkos::View<T, P...>::HostMirror create_mirror( std::is_same<typename ViewTraits<T, P...>::specialize, void>::value && std::is_same<typename Kokkos::ViewTraits<T, P...>::array_layout, Kokkos::LayoutStride>::value>::type* = nullptr) { - typedef View<T, P...> src_type; - typedef typename src_type::HostMirror dst_type; + using src_type = View<T, P...>; + using dst_type = typename src_type::HostMirror; Kokkos::LayoutStride layout; @@ -3529,7 +3173,7 @@ inline typename Kokkos::View<T, P...>::HostMirror create_mirror_view( typename Kokkos::View<T, P...>::HostMirror::memory_space>::value && std::is_same<typename Kokkos::View<T, P...>::data_type, typename Kokkos::View<T, P...>::HostMirror::data_type>:: - value)>::type* = 0) { + value)>::type* = nullptr) { return Kokkos::create_mirror(src); } @@ -3548,7 +3192,8 @@ template <class Space, class T, class... P> typename Impl::MirrorViewType<Space, T, P...>::view_type create_mirror_view( const Space&, const Kokkos::View<T, P...>& src, typename std::enable_if< - !Impl::MirrorViewType<Space, T, P...>::is_same_memspace>::type* = 0) { + !Impl::MirrorViewType<Space, T, P...>::is_same_memspace>::type* = + nullptr) { return typename Impl::MirrorViewType<Space, T, P...>::view_type(src.label(), src.layout()); } @@ -3576,11 +3221,12 @@ create_mirror_view_and_copy( const Space&, const Kokkos::View<T, P...>& src, std::string const& name = "", typename std::enable_if< - !Impl::MirrorViewType<Space, T, P...>::is_same_memspace>::type* = 0) { + !Impl::MirrorViewType<Space, T, P...>::is_same_memspace>::type* = + nullptr) { using Mirror = typename Impl::MirrorViewType<Space, T, P...>::view_type; std::string label = name.empty() ? src.label() : name; auto mirror = typename Mirror::non_const_type{ - ViewAllocateWithoutInitializing(label), src.layout()}; + view_alloc(WithoutInitializing, label), src.layout()}; deep_copy(mirror, src); return mirror; } @@ -3604,10 +3250,10 @@ typename Impl::MirrorViewType<Space, T, P...>::view_type create_mirror_view( const Space&, const Kokkos::View<T, P...>& src, Kokkos::Impl::WithoutInitializing_t, typename std::enable_if< - !Impl::MirrorViewType<Space, T, P...>::is_same_memspace>::type* = 0) { + !Impl::MirrorViewType<Space, T, P...>::is_same_memspace>::type* = + nullptr) { using Mirror = typename Impl::MirrorViewType<Space, T, P...>::view_type; - return Mirror(Kokkos::ViewAllocateWithoutInitializing(src.label()), - src.layout()); + return Mirror(view_alloc(WithoutInitializing, src.label()), src.layout()); } } /* namespace Kokkos */ diff --git a/packages/kokkos/core/src/Kokkos_Core.hpp b/packages/kokkos/core/src/Kokkos_Core.hpp index 8392f0f3e..4dac463a6 100644 --- a/packages/kokkos/core/src/Kokkos_Core.hpp +++ b/packages/kokkos/core/src/Kokkos_Core.hpp @@ -50,39 +50,13 @@ #include <Kokkos_Core_fwd.hpp> -#if defined(KOKKOS_ENABLE_SERIAL) -#include <Kokkos_Serial.hpp> -#endif - -#if defined(KOKKOS_ENABLE_OPENMP) -#include <Kokkos_OpenMP.hpp> -#endif - -#if defined(KOKKOS_ENABLE_OPENMPTARGET) -#include <Kokkos_OpenMPTarget.hpp> -#include <Kokkos_OpenMPTargetSpace.hpp> -#endif - -#if defined(KOKKOS_ENABLE_HPX) -#include <Kokkos_HPX.hpp> -#endif - -#if defined(KOKKOS_ENABLE_THREADS) -#include <Kokkos_Threads.hpp> -#endif - -#if defined(KOKKOS_ENABLE_CUDA) -#include <Kokkos_Cuda.hpp> -#endif - -#if defined(KOKKOS_ENABLE_ROCM) -#include <Kokkos_ROCm.hpp> -#endif -#if defined(KOKKOS_ENABLE_HIP) -#include <Kokkos_HIP.hpp> -#endif +// Fundamental type description for half precision +// Should not rely on other backend infrastructure +#include <Kokkos_Half.hpp> +#include <KokkosCore_Config_DeclareBackend.hpp> #include <Kokkos_AnonymousSpace.hpp> +#include <Kokkos_LogicalSpaces.hpp> #include <Kokkos_Pair.hpp> #include <Kokkos_MemoryPool.hpp> #include <Kokkos_Array.hpp> @@ -91,11 +65,14 @@ #include <Kokkos_Atomic.hpp> #include <Kokkos_hwloc.hpp> #include <Kokkos_Timer.hpp> +#include <Kokkos_Tuners.hpp> #include <Kokkos_TaskScheduler.hpp> #include <Kokkos_Complex.hpp> #include <Kokkos_CopyViews.hpp> #include <functional> #include <iosfwd> +#include <map> +#include <memory> //---------------------------------------------------------------------------- @@ -108,16 +85,50 @@ struct InitArguments { int ndevices; int skip_device; bool disable_warnings; - - InitArguments(int nt = -1, int nn = -1, int dv = -1, bool dw = false) + bool tune_internals; + InitArguments(int nt = -1, int nn = -1, int dv = -1, bool dw = false, + bool ti = false) : num_threads{nt}, num_numa{nn}, device_id{dv}, ndevices{-1}, skip_device{9999}, - disable_warnings{dw} {} + disable_warnings{dw}, + tune_internals{ti} {} }; +namespace Impl { + +/* ExecSpaceManager - Responsible for initializing all of the registered + * backends. Backends are registered using the register_space_initializer() + * function which should be called from a global context so that it is called + * prior to initialize_spaces() which is called from Kokkos::initialize() + */ +class ExecSpaceManager { + std::map<std::string, std::unique_ptr<ExecSpaceInitializerBase>> + exec_space_factory_list; + + public: + ExecSpaceManager() = default; + + void register_space_factory(std::string name, + std::unique_ptr<ExecSpaceInitializerBase> ptr); + void initialize_spaces(const Kokkos::InitArguments& args); + void finalize_spaces(const bool all_spaces); + void static_fence(); + void print_configuration(std::ostream& msg, const bool detail); + static ExecSpaceManager& get_instance(); +}; + +template <class SpaceInitializerType> +int initialize_space_factory(std::string name) { + auto space_ptr = std::make_unique<SpaceInitializerType>(); + ExecSpaceManager::get_instance().register_space_factory(name, + std::move(space_ptr)); + return 1; +} + +} // namespace Impl void initialize(int& narg, char* arg[]); void initialize(InitArguments args = InitArguments()); @@ -133,6 +144,7 @@ void post_initialize(const InitArguments& args); bool is_initialized() noexcept; bool show_warnings() noexcept; +bool tune_internals() noexcept; /** \brief Finalize the spaces that were initialized via Kokkos::initialize */ void finalize(); @@ -181,28 +193,28 @@ namespace Kokkos { template <class Space = typename Kokkos::DefaultExecutionSpace::memory_space> inline void* kokkos_malloc(const std::string& arg_alloc_label, const size_t arg_alloc_size) { - typedef typename Space::memory_space MemorySpace; + using MemorySpace = typename Space::memory_space; return Impl::SharedAllocationRecord<MemorySpace>::allocate_tracked( MemorySpace(), arg_alloc_label, arg_alloc_size); } template <class Space = typename Kokkos::DefaultExecutionSpace::memory_space> inline void* kokkos_malloc(const size_t arg_alloc_size) { - typedef typename Space::memory_space MemorySpace; + using MemorySpace = typename Space::memory_space; return Impl::SharedAllocationRecord<MemorySpace>::allocate_tracked( MemorySpace(), "no-label", arg_alloc_size); } template <class Space = typename Kokkos::DefaultExecutionSpace::memory_space> inline void kokkos_free(void* arg_alloc) { - typedef typename Space::memory_space MemorySpace; + using MemorySpace = typename Space::memory_space; return Impl::SharedAllocationRecord<MemorySpace>::deallocate_tracked( arg_alloc); } template <class Space = typename Kokkos::DefaultExecutionSpace::memory_space> inline void* kokkos_realloc(void* arg_alloc, const size_t arg_alloc_size) { - typedef typename Space::memory_space MemorySpace; + using MemorySpace = typename Space::memory_space; return Impl::SharedAllocationRecord<MemorySpace>::reallocate_tracked( arg_alloc, arg_alloc_size); } @@ -255,7 +267,17 @@ class ScopeGuard { #include <Kokkos_Crs.hpp> #include <Kokkos_WorkGraphPolicy.hpp> - +// Including this in Kokkos_Parallel_Reduce.hpp led to a circular dependency +// because Kokkos::Sum is used in Kokkos_Combined_Reducer.hpp and the default. +// The real answer is to finally break up Kokkos_Parallel_Reduce.hpp into +// smaller parts... +#include <impl/Kokkos_Combined_Reducer.hpp> +// Yet another workaround to deal with circular dependency issues because the +// implementation of the RAII wrapper is using Kokkos::single. +#include <Kokkos_AcquireUniqueTokenImpl.hpp> + +// Specializations requires after core definitions +#include <KokkosCore_Config_PostInclude.hpp> //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- diff --git a/packages/kokkos/core/src/Kokkos_Core_fwd.hpp b/packages/kokkos/core/src/Kokkos_Core_fwd.hpp index 4828a9577..7502719c7 100644 --- a/packages/kokkos/core/src/Kokkos_Core_fwd.hpp +++ b/packages/kokkos/core/src/Kokkos_Core_fwd.hpp @@ -52,7 +52,6 @@ #include <Kokkos_Macros.hpp> #include <impl/Kokkos_Utilities.hpp> -#include <Kokkos_UniqueToken.hpp> #include <Kokkos_MasterLock.hpp> //---------------------------------------------------------------------------- @@ -88,58 +87,16 @@ namespace Kokkos { class HostSpace; ///< Memory space for main process and CPU execution spaces class AnonymousSpace; -#ifdef KOKKOS_ENABLE_HBWSPACE -namespace Experimental { -class HBWSpace; /// Memory space for hbw_malloc from memkind (e.g. for KNL - /// processor) -} -#endif - -#if defined(KOKKOS_ENABLE_SERIAL) -class Serial; ///< Execution space main process on CPU. -#endif - -#if defined(KOKKOS_ENABLE_HPX) -namespace Experimental { -class HPX; ///< Execution space with HPX back-end. -} -#endif - -#if defined(KOKKOS_ENABLE_THREADS) -class Threads; ///< Execution space with pthreads back-end. -#endif - -#if defined(KOKKOS_ENABLE_OPENMP) -class OpenMP; ///< OpenMP execution space. -#endif - -#if defined(KOKKOS_ENABLE_OPENMPTARGET) -namespace Experimental { -class OpenMPTarget; ///< OpenMPTarget execution space. -class OpenMPTargetSpace; -} // namespace Experimental -#endif - -#if defined(KOKKOS_ENABLE_ROCM) -namespace Experimental { -class ROCmSpace; ///< Memory space on ROCm GPU -class ROCm; ///< Execution space for ROCm GPU -} // namespace Experimental -#endif - -#if defined(KOKKOS_ENABLE_HIP) -namespace Experimental { -class HIPSpace; ///< Memory space on HIP GPU -class HIP; ///< Execution space for HIP GPU -} // namespace Experimental -#endif - template <class ExecutionSpace, class MemorySpace> struct Device; +// forward declare here so that backend initializer calls can use it. +struct InitArguments; + } // namespace Kokkos -#include "Cuda/Kokkos_Cuda_fwd.hpp" +// Include backend forward statements as determined by build options +#include <KokkosCore_Config_FwdBackend.hpp> //---------------------------------------------------------------------------- // Set the default execution space. @@ -149,45 +106,67 @@ struct Device; /// Kokkos::Cuda, Kokkos::Experimental::OpenMPTarget, Kokkos::OpenMP, /// Kokkos::Threads, Kokkos::Serial +#if defined(__clang_analyzer__) +#define KOKKOS_IMPL_DEFAULT_EXEC_SPACE_ANNOTATION \ + [[clang::annotate("DefaultExecutionSpace")]] +#define KOKKOS_IMPL_DEFAULT_HOST_EXEC_SPACE_ANNOTATION \ + [[clang::annotate("DefaultHostExecutionSpace")]] +#else +#define KOKKOS_IMPL_DEFAULT_EXEC_SPACE_ANNOTATION +#define KOKKOS_IMPL_DEFAULT_HOST_EXEC_SPACE_ANNOTATION +#endif + namespace Kokkos { #if defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_CUDA) -typedef Cuda DefaultExecutionSpace; +using DefaultExecutionSpace KOKKOS_IMPL_DEFAULT_EXEC_SPACE_ANNOTATION = Cuda; #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_OPENMPTARGET) -typedef Experimental::OpenMPTarget DefaultExecutionSpace; +using DefaultExecutionSpace KOKKOS_IMPL_DEFAULT_EXEC_SPACE_ANNOTATION = + Experimental::OpenMPTarget; #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_HIP) -typedef Experimental::HIP DefaultExecutionSpace; -#elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_ROCM) -typedef Experimental::ROCm DefaultExecutionSpace; +using DefaultExecutionSpace KOKKOS_IMPL_DEFAULT_EXEC_SPACE_ANNOTATION = + Experimental::HIP; +#elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_SYCL) +using DefaultExecutionSpace KOKKOS_IMPL_DEFAULT_EXEC_SPACE_ANNOTATION = + Experimental::SYCL; #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_OPENMP) -typedef OpenMP DefaultExecutionSpace; +using DefaultExecutionSpace KOKKOS_IMPL_DEFAULT_EXEC_SPACE_ANNOTATION = OpenMP; #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_THREADS) -typedef Threads DefaultExecutionSpace; +using DefaultExecutionSpace KOKKOS_IMPL_DEFAULT_EXEC_SPACE_ANNOTATION = Threads; #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_HPX) -typedef Kokkos::Experimental::HPX DefaultExecutionSpace; +using DefaultExecutionSpace KOKKOS_IMPL_DEFAULT_EXEC_SPACE_ANNOTATION = + Kokkos::Experimental::HPX; #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_SERIAL) -typedef Serial DefaultExecutionSpace; +using DefaultExecutionSpace KOKKOS_IMPL_DEFAULT_EXEC_SPACE_ANNOTATION = Serial; #else #error \ - "At least one of the following execution spaces must be defined in order to use Kokkos: Kokkos::Cuda, Kokkos::Experimental::HIP, Kokkos::Experimental::OpenMPTarget, Kokkos::OpenMP, Kokkos::Threads, Kokkos::Experimental::HPX, or Kokkos::Serial." + "At least one of the following execution spaces must be defined in order to use Kokkos: Kokkos::Cuda, Kokkos::Experimental::HIP, Kokkos::Experimental::SYCL, Kokkos::Experimental::OpenMPTarget, Kokkos::OpenMP, Kokkos::Threads, Kokkos::Experimental::HPX, or Kokkos::Serial." #endif #if defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_OPENMP) -typedef OpenMP DefaultHostExecutionSpace; +using DefaultHostExecutionSpace KOKKOS_IMPL_DEFAULT_HOST_EXEC_SPACE_ANNOTATION = + OpenMP; #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_THREADS) -typedef Threads DefaultHostExecutionSpace; +using DefaultHostExecutionSpace KOKKOS_IMPL_DEFAULT_HOST_EXEC_SPACE_ANNOTATION = + Threads; #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_HPX) -typedef Kokkos::Experimental::HPX DefaultHostExecutionSpace; +using DefaultHostExecutionSpace KOKKOS_IMPL_DEFAULT_HOST_EXEC_SPACE_ANNOTATION = + Kokkos::Experimental::HPX; #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_SERIAL) -typedef Serial DefaultHostExecutionSpace; +using DefaultHostExecutionSpace KOKKOS_IMPL_DEFAULT_HOST_EXEC_SPACE_ANNOTATION = + Serial; #elif defined(KOKKOS_ENABLE_OPENMP) -typedef OpenMP DefaultHostExecutionSpace; +using DefaultHostExecutionSpace KOKKOS_IMPL_DEFAULT_HOST_EXEC_SPACE_ANNOTATION = + OpenMP; #elif defined(KOKKOS_ENABLE_THREADS) -typedef Threads DefaultHostExecutionSpace; +using DefaultHostExecutionSpace KOKKOS_IMPL_DEFAULT_HOST_EXEC_SPACE_ANNOTATION = + Threads; #elif defined(KOKKOS_ENABLE_HPX) -typedef Kokkos::Experimental::HPX DefaultHostExecutionSpace; +using DefaultHostExecutionSpace KOKKOS_IMPL_DEFAULT_HOST_EXEC_SPACE_ANNOTATION = + Kokkos::Experimental::HPX; #elif defined(KOKKOS_ENABLE_SERIAL) -typedef Serial DefaultHostExecutionSpace; +using DefaultHostExecutionSpace KOKKOS_IMPL_DEFAULT_HOST_EXEC_SPACE_ANNOTATION = + Serial; #else #error \ "At least one of the following execution spaces must be defined in order to use Kokkos: Kokkos::OpenMP, Kokkos::Threads, Kokkos::Experimental::HPX, or Kokkos::Serial." @@ -206,15 +185,15 @@ namespace Impl { #if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_CUDA) && \ defined(KOKKOS_ENABLE_CUDA) -typedef Kokkos::CudaSpace ActiveExecutionMemorySpace; -#elif defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_ROCM_GPU) -typedef Kokkos::HostSpace ActiveExecutionMemorySpace; +using ActiveExecutionMemorySpace = Kokkos::CudaSpace; +#elif defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_SYCL) +using ActiveExecutionMemorySpace = Kokkos::Experimental::SYCLDeviceUSMSpace; #elif defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HIP_GPU) -typedef Kokkos::Experimental::HIPSpace ActiveExecutionMemorySpace; +using ActiveExecutionMemorySpace = Kokkos::Experimental::HIPSpace; #elif defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) -typedef Kokkos::HostSpace ActiveExecutionMemorySpace; +using ActiveExecutionMemorySpace = Kokkos::HostSpace; #else -typedef void ActiveExecutionMemorySpace; +using ActiveExecutionMemorySpace = void; #endif template <class ActiveSpace, class MemorySpace> @@ -228,8 +207,17 @@ struct VerifyExecutionCanAccessMemorySpace<Space, Space> { KOKKOS_INLINE_FUNCTION static void verify(void) {} KOKKOS_INLINE_FUNCTION static void verify(const void *) {} }; + +// Base class for exec space initializer factories +class ExecSpaceInitializerBase; + } // namespace Impl +namespace Experimental { +template <class, class, class, class> +class LogicalMemorySpace; +} + } // namespace Kokkos #define KOKKOS_RESTRICT_EXECUTION_TO_DATA(DATA_SPACE, DATA_PTR) \ @@ -250,31 +238,22 @@ void fence(); namespace Kokkos { +template <class DataType, class... Properties> +class View; + namespace Impl { template <class DstSpace, class SrcSpace, class ExecutionSpace = typename DstSpace::execution_space> struct DeepCopy; -template <class ViewType, class Layout, class ExecSpace, int Rank, - typename iType> -struct ViewFillETIAvail; - template <class ViewType, class Layout = typename ViewType::array_layout, class ExecSpace = typename ViewType::execution_space, - int Rank = ViewType::Rank, typename iType = int64_t, - bool EtiAvail = - ViewFillETIAvail<ViewType, Layout, ExecSpace, Rank, iType>::value> + int Rank = ViewType::Rank, typename iType = int64_t> struct ViewFill; template <class ViewTypeA, class ViewTypeB, class Layout, class ExecSpace, int Rank, typename iType> -struct ViewCopyETIAvail; - -template <class ViewTypeA, class ViewTypeB, class Layout, class ExecSpace, - int Rank, typename iType, - bool EtiAvail = ViewCopyETIAvail<ViewTypeA, ViewTypeB, Layout, - ExecSpace, Rank, iType>::value> struct ViewCopy; template <class Functor, class Policy, class EnableFunctor = void, @@ -347,33 +326,5 @@ template <class ScalarType, class Space = HostSpace> struct LOr; } // namespace Kokkos -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -namespace Kokkos { -template <class ScalarType> -struct MinMaxScalar; -template <class ScalarType, class Index> -struct MinMaxLocScalar; -template <class ScalarType, class Index> -struct ValLocScalar; - -namespace Experimental { -using Kokkos::BAnd; -using Kokkos::BOr; -using Kokkos::LAnd; -using Kokkos::LOr; -using Kokkos::Max; -using Kokkos::MaxLoc; -using Kokkos::Min; -using Kokkos::MinLoc; -using Kokkos::MinMax; -using Kokkos::MinMaxLoc; -using Kokkos::MinMaxLocScalar; -using Kokkos::MinMaxScalar; -using Kokkos::Prod; -using Kokkos::Sum; -using Kokkos::ValLocScalar; -} // namespace Experimental -} // namespace Kokkos -#endif #endif /* #ifndef KOKKOS_CORE_FWD_HPP */ diff --git a/packages/kokkos/core/src/Kokkos_Crs.hpp b/packages/kokkos/core/src/Kokkos_Crs.hpp index 3725ba260..4a573d82c 100644 --- a/packages/kokkos/core/src/Kokkos_Crs.hpp +++ b/packages/kokkos/core/src/Kokkos_Crs.hpp @@ -45,6 +45,9 @@ #ifndef KOKKOS_CRS_HPP #define KOKKOS_CRS_HPP +#include <Kokkos_View.hpp> +#include <Kokkos_CopyViews.hpp> + namespace Kokkos { /// \class Crs @@ -82,22 +85,21 @@ template <class DataType, class Arg1Type, class Arg2Type = void, void>::size_type> class Crs { protected: - typedef ViewTraits<DataType*, Arg1Type, Arg2Type, void> traits; + using traits = ViewTraits<DataType*, Arg1Type, Arg2Type, void>; public: - typedef DataType data_type; - typedef typename traits::array_layout array_layout; - typedef typename traits::execution_space execution_space; - typedef typename traits::memory_space memory_space; - typedef typename traits::device_type device_type; - typedef SizeType size_type; - - typedef Crs<DataType, Arg1Type, Arg2Type, SizeType> staticcrsgraph_type; - typedef Crs<DataType, array_layout, typename traits::host_mirror_space, - SizeType> - HostMirror; - typedef View<size_type*, array_layout, device_type> row_map_type; - typedef View<DataType*, array_layout, device_type> entries_type; + using data_type = DataType; + using array_layout = typename traits::array_layout; + using execution_space = typename traits::execution_space; + using memory_space = typename traits::memory_space; + using device_type = typename traits::device_type; + using size_type = SizeType; + + using staticcrsgraph_type = Crs<DataType, Arg1Type, Arg2Type, SizeType>; + using HostMirror = + Crs<DataType, array_layout, typename traits::host_mirror_space, SizeType>; + using row_map_type = View<size_type*, array_layout, device_type>; + using entries_type = View<DataType*, array_layout, device_type>; row_map_type row_map; entries_type entries; @@ -285,7 +287,7 @@ void get_crs_transpose_counts( template <class OutRowMap, class InCounts> typename OutRowMap::value_type get_crs_row_map_from_counts( OutRowMap& out, InCounts const& in, std::string const& name) { - out = OutRowMap(ViewAllocateWithoutInitializing(name), in.size() + 1); + out = OutRowMap(view_alloc(WithoutInitializing, name), in.size() + 1); Kokkos::Impl::CrsRowMapFromCounts<InCounts, OutRowMap> functor(in, out); return functor.execute(); } @@ -293,9 +295,9 @@ typename OutRowMap::value_type get_crs_row_map_from_counts( template <class DataType, class Arg1Type, class Arg2Type, class SizeType> void transpose_crs(Crs<DataType, Arg1Type, Arg2Type, SizeType>& out, Crs<DataType, Arg1Type, Arg2Type, SizeType> const& in) { - typedef Crs<DataType, Arg1Type, Arg2Type, SizeType> crs_type; - typedef typename crs_type::memory_space memory_space; - typedef View<SizeType*, memory_space> counts_type; + using crs_type = Crs<DataType, Arg1Type, Arg2Type, SizeType>; + using memory_space = typename crs_type::memory_space; + using counts_type = View<SizeType*, memory_space>; { counts_type counts; Kokkos::get_crs_transpose_counts(counts, in); @@ -340,9 +342,14 @@ struct CountAndFillBase { CountAndFillBase(CrsType& crs, Functor const& f) : m_crs(crs), m_functor(f) {} }; +#if defined(KOKKOS_ENABLE_CUDA) || defined(KOKKOS_ENABLE_HIP) #if defined(KOKKOS_ENABLE_CUDA) +#define EXEC_SPACE Kokkos::Cuda +#elif defined(KOKKOS_ENABLE_HIP) +#define EXEC_SPACE Kokkos::Experimental::HIP +#endif template <class CrsType, class Functor> -struct CountAndFillBase<CrsType, Functor, Kokkos::Cuda> { +struct CountAndFillBase<CrsType, Functor, EXEC_SPACE> { using data_type = typename CrsType::data_type; using size_type = typename CrsType::size_type; using row_map_type = typename CrsType::row_map_type; diff --git a/packages/kokkos/core/src/Kokkos_Cuda.hpp b/packages/kokkos/core/src/Kokkos_Cuda.hpp index ed51e9577..81e11f3f1 100644 --- a/packages/kokkos/core/src/Kokkos_Cuda.hpp +++ b/packages/kokkos/core/src/Kokkos_Cuda.hpp @@ -62,6 +62,7 @@ #include <Kokkos_ScratchSpace.hpp> #include <Kokkos_MemoryTraits.hpp> #include <impl/Kokkos_Tags.hpp> +#include <impl/Kokkos_ExecSpaceInitializer.hpp> /*--------------------------------------------------------------------------*/ @@ -118,27 +119,27 @@ class Cuda { //@{ //! Tag this class as a kokkos execution space - typedef Cuda execution_space; + using execution_space = Cuda; #if defined(KOKKOS_ENABLE_CUDA_UVM) //! This execution space's preferred memory space. - typedef CudaUVMSpace memory_space; + using memory_space = CudaUVMSpace; #else //! This execution space's preferred memory space. - typedef CudaSpace memory_space; + using memory_space = CudaSpace; #endif //! This execution space preferred device_type - typedef Kokkos::Device<execution_space, memory_space> device_type; + using device_type = Kokkos::Device<execution_space, memory_space>; //! The size_type best suited for this execution space. - typedef memory_space::size_type size_type; + using size_type = memory_space::size_type; //! This execution space's preferred array layout. - typedef LayoutLeft array_layout; + using array_layout = LayoutLeft; //! - typedef ScratchMemorySpace<Cuda> scratch_memory_space; + using scratch_memory_space = ScratchMemorySpace<Cuda>; //@} //-------------------------------------------------- @@ -183,11 +184,7 @@ class Cuda { /// device have completed. static void impl_static_fence(); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - static void fence(); -#else void fence() const; -#endif /** \brief Return the maximum amount of concurrency. */ static int concurrency(); @@ -199,14 +196,17 @@ class Cuda { //-------------------------------------------------- //! \name Cuda space instances - ~Cuda() = default; - Cuda(); - Cuda(Cuda&&) = default; - Cuda(const Cuda&) = default; - Cuda& operator=(Cuda&&) = default; - Cuda& operator=(const Cuda&) = default; + KOKKOS_FUNCTION Cuda(Cuda&& other) noexcept; + + KOKKOS_FUNCTION Cuda(const Cuda& other); + + KOKKOS_FUNCTION Cuda& operator=(Cuda&& other) noexcept; + + KOKKOS_FUNCTION Cuda& operator=(const Cuda& other); + + KOKKOS_FUNCTION ~Cuda() noexcept; Cuda(cudaStream_t stream); @@ -220,17 +220,6 @@ class Cuda { explicit SelectDevice(int id) : cuda_device_id(id) {} }; -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - //! Free any resources being consumed by the device. - static void finalize(); - - //! Has been initialized - static int is_initialized(); - - //! Initialize, telling the CUDA run-time library which device to use. - static void initialize(const SelectDevice = SelectDevice(), - const size_t num_instances = 1); -#else //! Free any resources being consumed by the device. static void impl_finalize(); @@ -240,7 +229,6 @@ class Cuda { //! Initialize, telling the CUDA run-time library which device to use. static void impl_initialize(const SelectDevice = SelectDevice(), const size_t num_instances = 1); -#endif /// \brief Cuda device architecture of the selected device. /// @@ -271,9 +259,10 @@ class Cuda { private: Impl::CudaInternal* m_space_instance; + int* m_counter; }; -namespace Profiling { +namespace Tools { namespace Experimental { template <> struct DeviceTypeTraits<Cuda> { @@ -281,7 +270,21 @@ struct DeviceTypeTraits<Cuda> { static constexpr DeviceType id = DeviceType::Cuda; }; } // namespace Experimental -} // namespace Profiling +} // namespace Tools + +namespace Impl { + +class CudaSpaceInitializer : public ExecSpaceInitializerBase { + public: + CudaSpaceInitializer() = default; + ~CudaSpaceInitializer() = default; + void initialize(const InitArguments& args) final; + void finalize(const bool all_spaces) final; + void fence() final; + void print_configuration(std::ostream& msg, const bool detail) final; +}; + +} // namespace Impl } // namespace Kokkos /*--------------------------------------------------------------------------*/ @@ -293,9 +296,9 @@ namespace Impl { template <> struct MemorySpaceAccess<Kokkos::CudaSpace, Kokkos::Cuda::scratch_memory_space> { - enum { assignable = false }; - enum { accessible = true }; - enum { deepcopy = false }; + enum : bool { assignable = false }; + enum : bool { accessible = true }; + enum : bool { deepcopy = false }; }; #if defined(KOKKOS_ENABLE_CUDA_UVM) @@ -309,9 +312,9 @@ struct MemorySpaceAccess<Kokkos::CudaSpace, template <> struct MemorySpaceAccess<Kokkos::CudaUVMSpace, Kokkos::Cuda::scratch_memory_space> { - enum { assignable = false }; - enum { accessible = true }; - enum { deepcopy = false }; + enum : bool { assignable = false }; + enum : bool { accessible = true }; + enum : bool { deepcopy = false }; }; #endif @@ -319,7 +322,7 @@ struct MemorySpaceAccess<Kokkos::CudaUVMSpace, template <> struct VerifyExecutionCanAccessMemorySpace<Kokkos::CudaSpace, Kokkos::Cuda::scratch_memory_space> { - enum { value = true }; + enum : bool { value = true }; KOKKOS_INLINE_FUNCTION static void verify(void) {} KOKKOS_INLINE_FUNCTION static void verify(const void*) {} }; @@ -327,7 +330,7 @@ struct VerifyExecutionCanAccessMemorySpace<Kokkos::CudaSpace, template <> struct VerifyExecutionCanAccessMemorySpace<Kokkos::HostSpace, Kokkos::Cuda::scratch_memory_space> { - enum { value = false }; + enum : bool { value = false }; inline static void verify(void) { CudaSpace::access_error(); } inline static void verify(const void* p) { CudaSpace::access_error(p); } }; diff --git a/packages/kokkos/core/src/Kokkos_CudaSpace.hpp b/packages/kokkos/core/src/Kokkos_CudaSpace.hpp index 7db5dd956..fc1c0e2f8 100644 --- a/packages/kokkos/core/src/Kokkos_CudaSpace.hpp +++ b/packages/kokkos/core/src/Kokkos_CudaSpace.hpp @@ -74,11 +74,11 @@ namespace Kokkos { class CudaSpace { public: //! Tag this class as a kokkos memory space - typedef CudaSpace memory_space; - typedef Kokkos::Cuda execution_space; - typedef Kokkos::Device<execution_space, memory_space> device_type; + using memory_space = CudaSpace; + using execution_space = Kokkos::Cuda; + using device_type = Kokkos::Device<execution_space, memory_space>; - typedef unsigned int size_type; + using size_type = unsigned int; /*--------------------------------*/ @@ -91,10 +91,29 @@ class CudaSpace { /**\brief Allocate untracked memory in the cuda space */ void* allocate(const size_t arg_alloc_size) const; + void* allocate(const char* arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size = 0) const; /**\brief Deallocate untracked memory in the cuda space */ void deallocate(void* const arg_alloc_ptr, const size_t arg_alloc_size) const; + void deallocate(const char* arg_label, void* const arg_alloc_ptr, + const size_t arg_alloc_size, + const size_t arg_logical_size = 0) const; + private: + template <class, class, class, class> + friend class Kokkos::Experimental::LogicalMemorySpace; + void* impl_allocate(const char* arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size = 0, + const Kokkos::Tools::SpaceHandle = + Kokkos::Tools::make_space_handle(name())) const; + void impl_deallocate(const char* arg_label, void* const arg_alloc_ptr, + const size_t arg_alloc_size, + const size_t arg_logical_size = 0, + const Kokkos::Tools::SpaceHandle = + Kokkos::Tools::make_space_handle(name())) const; + + public: /**\brief Return Name of the MemorySpace */ static constexpr const char* name() { return m_name; } @@ -158,10 +177,10 @@ namespace Kokkos { class CudaUVMSpace { public: //! Tag this class as a kokkos memory space - typedef CudaUVMSpace memory_space; - typedef Cuda execution_space; - typedef Kokkos::Device<execution_space, memory_space> device_type; - typedef unsigned int size_type; + using memory_space = CudaUVMSpace; + using execution_space = Cuda; + using device_type = Kokkos::Device<execution_space, memory_space>; + using size_type = unsigned int; /** \brief If UVM capability is available */ static bool available(); @@ -183,10 +202,29 @@ class CudaUVMSpace { /**\brief Allocate untracked memory in the cuda space */ void* allocate(const size_t arg_alloc_size) const; + void* allocate(const char* arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size = 0) const; /**\brief Deallocate untracked memory in the cuda space */ void deallocate(void* const arg_alloc_ptr, const size_t arg_alloc_size) const; + void deallocate(const char* arg_label, void* const arg_alloc_ptr, + const size_t arg_alloc_size, + const size_t arg_logical_size = 0) const; + + private: + template <class, class, class, class> + friend class Kokkos::Experimental::LogicalMemorySpace; + void* impl_allocate(const char* arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size = 0, + const Kokkos::Tools::SpaceHandle = + Kokkos::Tools::make_space_handle(name())) const; + void impl_deallocate(const char* arg_label, void* const arg_alloc_ptr, + const size_t arg_alloc_size, + const size_t arg_logical_size = 0, + const Kokkos::Tools::SpaceHandle = + Kokkos::Tools::make_space_handle(name())) const; + public: /**\brief Return Name of the MemorySpace */ static constexpr const char* name() { return m_name; } @@ -219,10 +257,10 @@ class CudaHostPinnedSpace { public: //! Tag this class as a kokkos memory space /** \brief Memory is in HostSpace so use the HostSpace::execution_space */ - typedef HostSpace::execution_space execution_space; - typedef CudaHostPinnedSpace memory_space; - typedef Kokkos::Device<execution_space, memory_space> device_type; - typedef unsigned int size_type; + using execution_space = HostSpace::execution_space; + using memory_space = CudaHostPinnedSpace; + using device_type = Kokkos::Device<execution_space, memory_space>; + using size_type = unsigned int; /*--------------------------------*/ @@ -235,10 +273,29 @@ class CudaHostPinnedSpace { /**\brief Allocate untracked memory in the space */ void* allocate(const size_t arg_alloc_size) const; + void* allocate(const char* arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size = 0) const; /**\brief Deallocate untracked memory in the space */ void deallocate(void* const arg_alloc_ptr, const size_t arg_alloc_size) const; + void deallocate(const char* arg_label, void* const arg_alloc_ptr, + const size_t arg_alloc_size, + const size_t arg_logical_size = 0) const; + + private: + template <class, class, class, class> + friend class Kokkos::Experimental::LogicalMemorySpace; + void* impl_allocate(const char* arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size = 0, + const Kokkos::Tools::SpaceHandle = + Kokkos::Tools::make_space_handle(name())) const; + void impl_deallocate(const char* arg_label, void* const arg_alloc_ptr, + const size_t arg_alloc_size, + const size_t arg_logical_size = 0, + const Kokkos::Tools::SpaceHandle = + Kokkos::Tools::make_space_handle(name())) const; + public: /**\brief Return Name of the MemorySpace */ static constexpr const char* name() { return m_name; } @@ -271,50 +328,50 @@ static_assert( template <> struct MemorySpaceAccess<Kokkos::HostSpace, Kokkos::CudaSpace> { - enum { assignable = false }; - enum { accessible = false }; - enum { deepcopy = true }; + enum : bool { assignable = false }; + enum : bool { accessible = false }; + enum : bool { deepcopy = true }; }; template <> struct MemorySpaceAccess<Kokkos::HostSpace, Kokkos::CudaUVMSpace> { // HostSpace::execution_space != CudaUVMSpace::execution_space - enum { assignable = false }; - enum { accessible = true }; - enum { deepcopy = true }; + enum : bool { assignable = false }; + enum : bool { accessible = true }; + enum : bool { deepcopy = true }; }; template <> struct MemorySpaceAccess<Kokkos::HostSpace, Kokkos::CudaHostPinnedSpace> { // HostSpace::execution_space == CudaHostPinnedSpace::execution_space - enum { assignable = true }; - enum { accessible = true }; - enum { deepcopy = true }; + enum : bool { assignable = true }; + enum : bool { accessible = true }; + enum : bool { deepcopy = true }; }; //---------------------------------------- template <> struct MemorySpaceAccess<Kokkos::CudaSpace, Kokkos::HostSpace> { - enum { assignable = false }; - enum { accessible = false }; - enum { deepcopy = true }; + enum : bool { assignable = false }; + enum : bool { accessible = false }; + enum : bool { deepcopy = true }; }; template <> struct MemorySpaceAccess<Kokkos::CudaSpace, Kokkos::CudaUVMSpace> { // CudaSpace::execution_space == CudaUVMSpace::execution_space - enum { assignable = true }; - enum { accessible = true }; - enum { deepcopy = true }; + enum : bool { assignable = true }; + enum : bool { accessible = true }; + enum : bool { deepcopy = true }; }; template <> struct MemorySpaceAccess<Kokkos::CudaSpace, Kokkos::CudaHostPinnedSpace> { // CudaSpace::execution_space != CudaHostPinnedSpace::execution_space - enum { assignable = false }; - enum { accessible = true }; // CudaSpace::execution_space - enum { deepcopy = true }; + enum : bool { assignable = false }; + enum : bool { accessible = true }; // CudaSpace::execution_space + enum : bool { deepcopy = true }; }; //---------------------------------------- @@ -323,28 +380,28 @@ struct MemorySpaceAccess<Kokkos::CudaSpace, Kokkos::CudaHostPinnedSpace> { template <> struct MemorySpaceAccess<Kokkos::CudaUVMSpace, Kokkos::HostSpace> { - enum { assignable = false }; - enum { accessible = false }; // Cuda cannot access HostSpace - enum { deepcopy = true }; + enum : bool { assignable = false }; + enum : bool { accessible = false }; // Cuda cannot access HostSpace + enum : bool { deepcopy = true }; }; template <> struct MemorySpaceAccess<Kokkos::CudaUVMSpace, Kokkos::CudaSpace> { // CudaUVMSpace::execution_space == CudaSpace::execution_space // Can access CudaUVMSpace from Host but cannot access CudaSpace from Host - enum { assignable = false }; + enum : bool { assignable = false }; // CudaUVMSpace::execution_space can access CudaSpace - enum { accessible = true }; - enum { deepcopy = true }; + enum : bool { accessible = true }; + enum : bool { deepcopy = true }; }; template <> struct MemorySpaceAccess<Kokkos::CudaUVMSpace, Kokkos::CudaHostPinnedSpace> { // CudaUVMSpace::execution_space != CudaHostPinnedSpace::execution_space - enum { assignable = false }; - enum { accessible = true }; // CudaUVMSpace::execution_space - enum { deepcopy = true }; + enum : bool { assignable = false }; + enum : bool { accessible = true }; // CudaUVMSpace::execution_space + enum : bool { deepcopy = true }; }; //---------------------------------------- @@ -353,23 +410,23 @@ struct MemorySpaceAccess<Kokkos::CudaUVMSpace, Kokkos::CudaHostPinnedSpace> { template <> struct MemorySpaceAccess<Kokkos::CudaHostPinnedSpace, Kokkos::HostSpace> { - enum { assignable = false }; // Cannot access from Cuda - enum { accessible = true }; // CudaHostPinnedSpace::execution_space - enum { deepcopy = true }; + enum : bool { assignable = false }; // Cannot access from Cuda + enum : bool { accessible = true }; // CudaHostPinnedSpace::execution_space + enum : bool { deepcopy = true }; }; template <> struct MemorySpaceAccess<Kokkos::CudaHostPinnedSpace, Kokkos::CudaSpace> { - enum { assignable = false }; // Cannot access from Host - enum { accessible = false }; - enum { deepcopy = true }; + enum : bool { assignable = false }; // Cannot access from Host + enum : bool { accessible = false }; + enum : bool { deepcopy = true }; }; template <> struct MemorySpaceAccess<Kokkos::CudaHostPinnedSpace, Kokkos::CudaUVMSpace> { - enum { assignable = false }; // different execution_space - enum { accessible = true }; // same accessibility - enum { deepcopy = true }; + enum : bool { assignable = false }; // different execution_space + enum : bool { accessible = true }; // same accessibility + enum : bool { deepcopy = true }; }; //---------------------------------------- @@ -731,7 +788,7 @@ namespace Impl { template <> struct VerifyExecutionCanAccessMemorySpace<Kokkos::CudaSpace, Kokkos::HostSpace> { - enum { value = false }; + enum : bool { value = false }; KOKKOS_INLINE_FUNCTION static void verify(void) { Kokkos::abort("Cuda code attempted to access HostSpace memory"); } @@ -745,7 +802,7 @@ struct VerifyExecutionCanAccessMemorySpace<Kokkos::CudaSpace, template <> struct VerifyExecutionCanAccessMemorySpace<Kokkos::CudaSpace, Kokkos::CudaUVMSpace> { - enum { value = true }; + enum : bool { value = true }; KOKKOS_INLINE_FUNCTION static void verify(void) {} KOKKOS_INLINE_FUNCTION static void verify(const void*) {} }; @@ -754,7 +811,7 @@ struct VerifyExecutionCanAccessMemorySpace<Kokkos::CudaSpace, template <> struct VerifyExecutionCanAccessMemorySpace<Kokkos::CudaSpace, Kokkos::CudaHostPinnedSpace> { - enum { value = true }; + enum : bool { value = true }; KOKKOS_INLINE_FUNCTION static void verify(void) {} KOKKOS_INLINE_FUNCTION static void verify(const void*) {} }; @@ -765,7 +822,7 @@ struct VerifyExecutionCanAccessMemorySpace< typename std::enable_if<!std::is_same<Kokkos::CudaSpace, OtherSpace>::value, Kokkos::CudaSpace>::type, OtherSpace> { - enum { value = false }; + enum : bool { value = false }; KOKKOS_INLINE_FUNCTION static void verify(void) { Kokkos::abort("Cuda code attempted to access unknown Space memory"); } @@ -780,7 +837,7 @@ struct VerifyExecutionCanAccessMemorySpace< template <> struct VerifyExecutionCanAccessMemorySpace<Kokkos::HostSpace, Kokkos::CudaSpace> { - enum { value = false }; + enum : bool { value = false }; inline static void verify(void) { CudaSpace::access_error(); } inline static void verify(const void* p) { CudaSpace::access_error(p); } }; @@ -789,7 +846,7 @@ struct VerifyExecutionCanAccessMemorySpace<Kokkos::HostSpace, template <> struct VerifyExecutionCanAccessMemorySpace<Kokkos::HostSpace, Kokkos::CudaUVMSpace> { - enum { value = true }; + enum : bool { value = true }; inline static void verify(void) {} inline static void verify(const void*) {} }; @@ -798,7 +855,7 @@ struct VerifyExecutionCanAccessMemorySpace<Kokkos::HostSpace, template <> struct VerifyExecutionCanAccessMemorySpace<Kokkos::HostSpace, Kokkos::CudaHostPinnedSpace> { - enum { value = true }; + enum : bool { value = true }; KOKKOS_INLINE_FUNCTION static void verify(void) {} KOKKOS_INLINE_FUNCTION static void verify(const void*) {} }; @@ -818,7 +875,7 @@ class SharedAllocationRecord<Kokkos::CudaSpace, void> private: friend class SharedAllocationRecord<Kokkos::CudaUVMSpace, void>; - typedef SharedAllocationRecord<void, void> RecordBase; + using RecordBase = SharedAllocationRecord<void, void>; SharedAllocationRecord(const SharedAllocationRecord&) = delete; SharedAllocationRecord& operator=(const SharedAllocationRecord&) = delete; @@ -829,7 +886,7 @@ class SharedAllocationRecord<Kokkos::CudaSpace, void> const unsigned sizeof_alias, void* const alloc_ptr, const size_t alloc_size); -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG static RecordBase s_root_record; #endif @@ -897,7 +954,7 @@ template <> class SharedAllocationRecord<Kokkos::CudaUVMSpace, void> : public SharedAllocationRecord<void, void> { private: - typedef SharedAllocationRecord<void, void> RecordBase; + using RecordBase = SharedAllocationRecord<void, void>; SharedAllocationRecord(const SharedAllocationRecord&) = delete; SharedAllocationRecord& operator=(const SharedAllocationRecord&) = delete; @@ -971,7 +1028,7 @@ template <> class SharedAllocationRecord<Kokkos::CudaHostPinnedSpace, void> : public SharedAllocationRecord<void, void> { private: - typedef SharedAllocationRecord<void, void> RecordBase; + using RecordBase = SharedAllocationRecord<void, void>; SharedAllocationRecord(const SharedAllocationRecord&) = delete; SharedAllocationRecord& operator=(const SharedAllocationRecord&) = delete; diff --git a/packages/kokkos/core/src/Kokkos_ExecPolicy.hpp b/packages/kokkos/core/src/Kokkos_ExecPolicy.hpp index 11910138d..3afe08170 100644 --- a/packages/kokkos/core/src/Kokkos_ExecPolicy.hpp +++ b/packages/kokkos/core/src/Kokkos_ExecPolicy.hpp @@ -51,10 +51,7 @@ #include <impl/Kokkos_Tags.hpp> #include <impl/Kokkos_AnalyzePolicy.hpp> #include <Kokkos_Concepts.hpp> -#include <iostream> -#if defined(KOKKOS_ENABLE_PROFILING) #include <typeinfo> -#endif // KOKKOS_ENABLE_PROFILING //---------------------------------------------------------------------------- @@ -93,7 +90,7 @@ struct ChunkSize { template <class... Properties> class RangePolicy : public Impl::PolicyTraits<Properties...> { public: - typedef Impl::PolicyTraits<Properties...> traits; + using traits = Impl::PolicyTraits<Properties...>; private: typename traits::execution_space m_space; @@ -107,9 +104,9 @@ class RangePolicy : public Impl::PolicyTraits<Properties...> { public: //! Tag this class as an execution policy - typedef RangePolicy execution_policy; - typedef typename traits::index_type member_type; - typedef typename traits::index_type index_type; + using execution_policy = RangePolicy<Properties...>; + using member_type = typename traits::index_type; + using index_type = typename traits::index_type; KOKKOS_INLINE_FUNCTION const typename traits::execution_space& space() const { return m_space; @@ -124,19 +121,21 @@ class RangePolicy : public Impl::PolicyTraits<Properties...> { // doesn't match. void operator()(const int&) const {} - RangePolicy(const RangePolicy&) = default; - RangePolicy(RangePolicy&&) = default; - template <class... OtherProperties> - RangePolicy(const RangePolicy<OtherProperties...> p) { - m_space = p.m_space; - m_begin = p.m_begin; - m_end = p.m_end; - m_granularity = p.m_granularity; - m_granularity_mask = p.m_granularity_mask; - } - - inline RangePolicy() : m_space(), m_begin(0), m_end(0) {} + RangePolicy(const RangePolicy<OtherProperties...>& p) + : traits(p), // base class may contain data such as desired occupancy + m_space(p.m_space), + m_begin(p.m_begin), + m_end(p.m_end), + m_granularity(p.m_granularity), + m_granularity_mask(p.m_granularity_mask) {} + + inline RangePolicy() + : m_space(), + m_begin(0), + m_end(0), + m_granularity(0), + m_granularity_mask(0) {} /** \brief Total range */ inline RangePolicy(const typename traits::execution_space& work_space, @@ -241,8 +240,8 @@ class RangePolicy : public Impl::PolicyTraits<Properties...> { * Typically used to partition a range over a group of threads. */ struct WorkRange { - typedef typename RangePolicy::work_tag work_tag; - typedef typename RangePolicy::member_type member_type; + using work_tag = typename RangePolicy<Properties...>::work_tag; + using member_type = typename RangePolicy<Properties...>::member_type; KOKKOS_INLINE_FUNCTION member_type begin() const { return m_begin; } KOKKOS_INLINE_FUNCTION member_type end() const { return m_end; } @@ -290,10 +289,10 @@ namespace Impl { template <class ExecSpace, class... Properties> class TeamPolicyInternal : public Impl::PolicyTraits<Properties...> { private: - typedef Impl::PolicyTraits<Properties...> traits; + using traits = Impl::PolicyTraits<Properties...>; public: - typedef typename traits::index_type index_type; + using index_type = typename traits::index_type; //---------------------------------------- /** \brief Query maximum team size for a given functor. @@ -365,13 +364,20 @@ class TeamPolicyInternal : public Impl::PolicyTraits<Properties...> { */ KOKKOS_INLINE_FUNCTION int team_size() const; + /** \brief Whether the policy has an automatically determined team size + */ + inline bool impl_auto_team_size() const; + /** \brief Whether the policy has an automatically determined vector length + */ + inline bool impl_auto_vector_length() const; + + static int vector_length_max(); + + KOKKOS_INLINE_FUNCTION int impl_vector_length() const; + inline typename traits::index_type chunk_size() const; -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - inline TeamPolicyInternal set_chunk_size(int chunk_size) const; -#else inline TeamPolicyInternal& set_chunk_size(int chunk_size); -#endif /** \brief Parallel execution of a functor calls the functor once with * each member of the execution policy. @@ -504,6 +510,9 @@ struct ScratchRequest { } }; +// Throws a runtime exception if level is not `0` or `1` +void team_policy_check_valid_storage_level_argument(int level); + /** \brief Execution policy for parallel work over a league of teams of * threads. * @@ -535,214 +544,74 @@ class TeamPolicy : public Impl::TeamPolicyInternal< typename Impl::PolicyTraits<Properties...>::execution_space, Properties...> { - typedef Impl::TeamPolicyInternal< + using internal_policy = Impl::TeamPolicyInternal< typename Impl::PolicyTraits<Properties...>::execution_space, - Properties...> - internal_policy; + Properties...>; template <class... OtherProperties> friend class TeamPolicy; public: - typedef Impl::PolicyTraits<Properties...> traits; + using traits = Impl::PolicyTraits<Properties...>; - typedef TeamPolicy execution_policy; + using execution_policy = TeamPolicy<Properties...>; - TeamPolicy& operator=(const TeamPolicy&) = default; + TeamPolicy() : internal_policy(0, AUTO) {} /** \brief Construct policy with the given instance of the execution space */ TeamPolicy(const typename traits::execution_space& space_, int league_size_request, int team_size_request, int vector_length_request = 1) : internal_policy(space_, league_size_request, team_size_request, - vector_length_request) { - first_arg = false; - } + vector_length_request) {} TeamPolicy(const typename traits::execution_space& space_, int league_size_request, const Kokkos::AUTO_t&, int vector_length_request = 1) : internal_policy(space_, league_size_request, Kokkos::AUTO(), - vector_length_request) { - first_arg = false; - } + vector_length_request) {} + TeamPolicy(const typename traits::execution_space& space_, + int league_size_request, const Kokkos::AUTO_t&, + const Kokkos::AUTO_t&) + : internal_policy(space_, league_size_request, Kokkos::AUTO(), + Kokkos::AUTO()) {} + TeamPolicy(const typename traits::execution_space& space_, + int league_size_request, const int team_size_request, + const Kokkos::AUTO_t&) + : internal_policy(space_, league_size_request, team_size_request, + Kokkos::AUTO()) {} /** \brief Construct policy with the default instance of the execution space */ TeamPolicy(int league_size_request, int team_size_request, int vector_length_request = 1) : internal_policy(league_size_request, team_size_request, - vector_length_request) { - first_arg = false; - } + vector_length_request) {} TeamPolicy(int league_size_request, const Kokkos::AUTO_t&, int vector_length_request = 1) : internal_policy(league_size_request, Kokkos::AUTO(), - vector_length_request) { - first_arg = false; - } - -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - /** \brief Construct policy with the given instance of the execution space */ - template <class... Args> - TeamPolicy(const typename traits::execution_space&, int league_size_request, - int team_size_request, int vector_length_request, Args... args) - : internal_policy(typename traits::execution_space(), league_size_request, - team_size_request, vector_length_request) { - first_arg = false; - set(args...); - } - - template <class... Args> - TeamPolicy(const typename traits::execution_space&, int league_size_request, - const Kokkos::AUTO_t&, int vector_length_request, Args... args) - : internal_policy(typename traits::execution_space(), league_size_request, - Kokkos::AUTO(), vector_length_request) { - first_arg = false; - set(args...); - } + vector_length_request) {} - /** \brief Construct policy with the default instance of the execution space - */ - template <class... Args> - TeamPolicy(int league_size_request, int team_size_request, - int vector_length_request, Args... args) - : internal_policy(league_size_request, team_size_request, - vector_length_request) { - first_arg = false; - set(args...); - } - - template <class... Args> TeamPolicy(int league_size_request, const Kokkos::AUTO_t&, - int vector_length_request, Args... args) - : internal_policy(league_size_request, Kokkos::AUTO(), - vector_length_request) { - first_arg = false; - set(args...); - } - - /** \brief Construct policy with the given instance of the execution space */ - template <class... Args> - TeamPolicy(const typename traits::execution_space&, int league_size_request, - int team_size_request, Args... args) - : internal_policy(typename traits::execution_space(), league_size_request, - team_size_request, - Kokkos::Impl::extract_vector_length<Args...>(args...)) { - first_arg = true; - set(args...); - } - - template <class... Args> - TeamPolicy(const typename traits::execution_space&, int league_size_request, - const Kokkos::AUTO_t&, Args... args) - : internal_policy(typename traits::execution_space(), league_size_request, - Kokkos::AUTO(), - Kokkos::Impl::extract_vector_length<Args...>(args...)) { - first_arg = true; - set(args...); - } - - /** \brief Construct policy with the default instance of the execution space - */ - template <class... Args> - TeamPolicy(int league_size_request, int team_size_request, Args... args) + const Kokkos::AUTO_t&) + : internal_policy(league_size_request, Kokkos::AUTO(), Kokkos::AUTO()) {} + TeamPolicy(int league_size_request, const int team_size_request, + const Kokkos::AUTO_t&) : internal_policy(league_size_request, team_size_request, - Kokkos::Impl::extract_vector_length<Args...>(args...)) { - first_arg = true; - set(args...); - } - - template <class... Args> - TeamPolicy(int league_size_request, const Kokkos::AUTO_t&, Args... args) - : internal_policy(league_size_request, Kokkos::AUTO(), - Kokkos::Impl::extract_vector_length<Args...>(args...)) { - first_arg = true; - set(args...); - } -#endif + Kokkos::AUTO()) {} template <class... OtherProperties> TeamPolicy(const TeamPolicy<OtherProperties...> p) : internal_policy(p) { - first_arg = p.first_arg; + // Cannot call converting constructor in the member initializer list because + // it is not a direct base. + internal_policy::traits::operator=(p); } private: - bool first_arg; - TeamPolicy(const internal_policy& p) : internal_policy(p) { - first_arg = false; - } - -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - inline void set() {} -#endif + TeamPolicy(const internal_policy& p) : internal_policy(p) {} public: -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - template <class... Args> - inline void set(Args...) { - static_assert( - 0 == sizeof...(Args), - "Kokkos::TeamPolicy: unhandled constructor arguments encountered."); - } - - template <class iType, class... Args> - inline typename std::enable_if<std::is_integral<iType>::value>::type set( - iType, Args... args) { - if (first_arg) { - first_arg = false; - set(args...); - } else { - first_arg = false; - Kokkos::Impl::throw_runtime_exception( - "Kokkos::TeamPolicy: integer argument to constructor in illegal " - "place."); - } - } - - template <class... Args> - inline void set(const ChunkSize& chunksize, Args... args) { - first_arg = false; - internal_policy::internal_set_chunk_size(chunksize.value); - set(args...); - } - - template <class... Args> - inline void set(const ScratchRequest& scr_request, Args... args) { - first_arg = false; - internal_policy::internal_set_scratch_size( - scr_request.level, Impl::PerTeamValue(scr_request.per_team), - Impl::PerThreadValue(scr_request.per_thread)); - set(args...); - } - - inline TeamPolicy set_chunk_size(int chunk) const { - return TeamPolicy(internal_policy::set_chunk_size(chunk)); - } - - inline TeamPolicy set_scratch_size(const int& level, - const Impl::PerTeamValue& per_team) const { - return TeamPolicy(internal_policy::set_scratch_size(level, per_team)); - } - inline TeamPolicy set_scratch_size( - const int& level, const Impl::PerThreadValue& per_thread) const { - return TeamPolicy(internal_policy::set_scratch_size(level, per_thread)); - } - inline TeamPolicy set_scratch_size( - const int& level, const Impl::PerTeamValue& per_team, - const Impl::PerThreadValue& per_thread) const { - return TeamPolicy( - internal_policy::set_scratch_size(level, per_team, per_thread)); - } - inline TeamPolicy set_scratch_size(const int& level, - const Impl::PerThreadValue& per_thread, - const Impl::PerTeamValue& per_team) const { - return TeamPolicy( - internal_policy::set_scratch_size(level, per_team, per_thread)); - } - -#else inline TeamPolicy& set_chunk_size(int chunk) { static_assert(std::is_same<decltype(internal_policy::set_chunk_size(chunk)), internal_policy&>::value, @@ -756,27 +625,31 @@ class TeamPolicy level, per_team)), internal_policy&>::value, "internal set_chunk_size should return a reference"); + + team_policy_check_valid_storage_level_argument(level); return static_cast<TeamPolicy&>( internal_policy::set_scratch_size(level, per_team)); } inline TeamPolicy& set_scratch_size(const int& level, const Impl::PerThreadValue& per_thread) { + team_policy_check_valid_storage_level_argument(level); return static_cast<TeamPolicy&>( internal_policy::set_scratch_size(level, per_thread)); } inline TeamPolicy& set_scratch_size(const int& level, const Impl::PerTeamValue& per_team, const Impl::PerThreadValue& per_thread) { + team_policy_check_valid_storage_level_argument(level); return static_cast<TeamPolicy&>( internal_policy::set_scratch_size(level, per_team, per_thread)); } inline TeamPolicy& set_scratch_size(const int& level, const Impl::PerThreadValue& per_thread, const Impl::PerTeamValue& per_team) { + team_policy_check_valid_storage_level_argument(level); return static_cast<TeamPolicy&>( internal_policy::set_scratch_size(level, per_team, per_thread)); } -#endif }; namespace Impl { @@ -803,7 +676,7 @@ struct TeamThreadRangeBoundariesStruct { } public: - typedef iType index_type; + using index_type = iType; const iType start; const iType end; enum { increment = 1 }; @@ -849,7 +722,7 @@ struct TeamVectorRangeBoundariesStruct { } public: - typedef iType index_type; + using index_type = iType; const iType start; const iType end; enum { increment = 1 }; @@ -875,7 +748,7 @@ struct TeamVectorRangeBoundariesStruct { template <typename iType, class TeamMemberType> struct ThreadVectorRangeBoundariesStruct { - typedef iType index_type; + using index_type = iType; const index_type start; const index_type end; enum { increment = 1 }; @@ -989,7 +862,6 @@ KOKKOS_INLINE_FUNCTION_DELETED ThreadVectorRange(const TeamMemberType&, const iType& arg_begin, const iType& arg_end) = delete; -#if defined(KOKKOS_ENABLE_PROFILING) namespace Impl { template <typename FunctorType, typename TagType, @@ -1026,7 +898,6 @@ struct ParallelConstructName<FunctorType, TagType, false> { }; } // namespace Impl -#endif /* defined KOKKOS_ENABLE_PROFILING */ } // namespace Kokkos @@ -1037,32 +908,50 @@ namespace Impl { template <class Property, class Policy> struct PolicyPropertyAdaptor; -template <unsigned long P, class... Properties> +template <unsigned long P, template <class...> class Policy, + class... Properties> struct PolicyPropertyAdaptor<WorkItemProperty::ImplWorkItemProperty<P>, - RangePolicy<Properties...>> { - typedef RangePolicy<Properties...> policy_in_t; - typedef RangePolicy<typename policy_in_t::traits::execution_space, - typename policy_in_t::traits::schedule_type, - typename policy_in_t::traits::work_tag, - typename policy_in_t::traits::index_type, - typename policy_in_t::traits::iteration_pattern, - typename policy_in_t::traits::launch_bounds, - WorkItemProperty::ImplWorkItemProperty<P>> - policy_out_t; + Policy<Properties...>> { + using policy_in_t = Policy<Properties...>; + static_assert(is_execution_policy<policy_in_t>::value, ""); + using policy_out_t = Policy<typename policy_in_t::traits::execution_space, + typename policy_in_t::traits::schedule_type, + typename policy_in_t::traits::work_tag, + typename policy_in_t::traits::index_type, + typename policy_in_t::traits::iteration_pattern, + typename policy_in_t::traits::launch_bounds, + WorkItemProperty::ImplWorkItemProperty<P>, + typename policy_in_t::traits::occupancy_control>; }; -template <unsigned long P, class... Properties> -struct PolicyPropertyAdaptor<WorkItemProperty::ImplWorkItemProperty<P>, - TeamPolicy<Properties...>> { - typedef TeamPolicy<Properties...> policy_in_t; - typedef TeamPolicy<typename policy_in_t::traits::execution_space, - typename policy_in_t::traits::schedule_type, - typename policy_in_t::traits::work_tag, - typename policy_in_t::traits::index_type, - typename policy_in_t::traits::iteration_pattern, - typename policy_in_t::traits::launch_bounds, - WorkItemProperty::ImplWorkItemProperty<P>> - policy_out_t; +template <template <class...> class Policy, class... Properties> +struct PolicyPropertyAdaptor<DesiredOccupancy, Policy<Properties...>> { + using policy_in_t = Policy<Properties...>; + static_assert(is_execution_policy<policy_in_t>::value, ""); + using policy_out_t = Policy<typename policy_in_t::traits::execution_space, + typename policy_in_t::traits::schedule_type, + typename policy_in_t::traits::work_tag, + typename policy_in_t::traits::index_type, + typename policy_in_t::traits::iteration_pattern, + typename policy_in_t::traits::launch_bounds, + typename policy_in_t::traits::work_item_property, + DesiredOccupancy>; + static_assert(policy_out_t::experimental_contains_desired_occupancy, ""); +}; + +template <template <class...> class Policy, class... Properties> +struct PolicyPropertyAdaptor<MaximizeOccupancy, Policy<Properties...>> { + using policy_in_t = Policy<Properties...>; + static_assert(is_execution_policy<policy_in_t>::value, ""); + using policy_out_t = Policy<typename policy_in_t::traits::execution_space, + typename policy_in_t::traits::schedule_type, + typename policy_in_t::traits::work_tag, + typename policy_in_t::traits::index_type, + typename policy_in_t::traits::iteration_pattern, + typename policy_in_t::traits::launch_bounds, + typename policy_in_t::traits::work_item_property, + MaximizeOccupancy>; + static_assert(!policy_out_t::experimental_contains_desired_occupancy, ""); }; } // namespace Impl @@ -1073,6 +962,59 @@ require(const PolicyType p, WorkItemProperty::ImplWorkItemProperty<P>) { return typename Impl::PolicyPropertyAdaptor< WorkItemProperty::ImplWorkItemProperty<P>, PolicyType>::policy_out_t(p); } + +template <typename Policy> +/*constexpr*/ typename Impl::PolicyPropertyAdaptor<DesiredOccupancy, + Policy>::policy_out_t +prefer(Policy const& p, DesiredOccupancy occ) { + typename Impl::PolicyPropertyAdaptor<DesiredOccupancy, Policy>::policy_out_t + pwo{p}; + pwo.impl_set_desired_occupancy(occ); + return pwo; +} + +template <typename Policy> +constexpr typename Impl::PolicyPropertyAdaptor<MaximizeOccupancy, + Policy>::policy_out_t +prefer(Policy const& p, MaximizeOccupancy) { + return {p}; +} + } // namespace Experimental + +namespace Impl { + +template <class PatternTag, class... Args> +struct PatternImplSpecializationFromTag; + +template <class... Args> +struct PatternImplSpecializationFromTag<Kokkos::ParallelForTag, Args...> + : identity<ParallelFor<Args...>> {}; + +template <class... Args> +struct PatternImplSpecializationFromTag<Kokkos::ParallelReduceTag, Args...> + : identity<ParallelReduce<Args...>> {}; + +template <class... Args> +struct PatternImplSpecializationFromTag<Kokkos::ParallelScanTag, Args...> + : identity<ParallelScan<Args...>> {}; + +template <class PatternImpl> +struct PatternTagFromImplSpecialization; + +template <class... Args> +struct PatternTagFromImplSpecialization<ParallelFor<Args...>> + : identity<ParallelForTag> {}; + +template <class... Args> +struct PatternTagFromImplSpecialization<ParallelReduce<Args...>> + : identity<ParallelReduceTag> {}; + +template <class... Args> +struct PatternTagFromImplSpecialization<ParallelScan<Args...>> + : identity<ParallelScanTag> {}; + +} // end namespace Impl + } // namespace Kokkos #endif /* #define KOKKOS_EXECPOLICY_HPP */ diff --git a/packages/kokkos/core/src/Kokkos_Extents.hpp b/packages/kokkos/core/src/Kokkos_Extents.hpp index 856adf9cf..683b76e1f 100644 --- a/packages/kokkos/core/src/Kokkos_Extents.hpp +++ b/packages/kokkos/core/src/Kokkos_Extents.hpp @@ -45,6 +45,8 @@ #define KOKKOS_KOKKOS_EXTENTS_HPP #include <cstddef> +#include <type_traits> +#include <Kokkos_Macros.hpp> namespace Kokkos { namespace Experimental { diff --git a/packages/kokkos/core/src/Kokkos_Future.hpp b/packages/kokkos/core/src/Kokkos_Future.hpp index 1995e2609..b163bd1fc 100644 --- a/packages/kokkos/core/src/Kokkos_Future.hpp +++ b/packages/kokkos/core/src/Kokkos_Future.hpp @@ -311,7 +311,7 @@ class BasicFuture { KOKKOS_INLINE_FUNCTION int reference_count() const { - return 0 != m_task ? m_task->reference_count() : 0; + return nullptr != m_task ? m_task->reference_count() : 0; } //---------------------------------------- diff --git a/packages/kokkos/core/src/Kokkos_Graph.hpp b/packages/kokkos/core/src/Kokkos_Graph.hpp new file mode 100644 index 000000000..ef6057ae8 --- /dev/null +++ b/packages/kokkos/core/src/Kokkos_Graph.hpp @@ -0,0 +1,191 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_GRAPH_HPP +#define KOKKOS_GRAPH_HPP + +#include <Kokkos_Macros.hpp> +#include <impl/Kokkos_Error.hpp> // KOKKOS_EXPECTS + +#include <Kokkos_Graph_fwd.hpp> +#include <impl/Kokkos_GraphImpl_fwd.hpp> + +// GraphAccess needs to be defined, not just declared +#include <impl/Kokkos_GraphImpl.hpp> + +#include <impl/Kokkos_Utilities.hpp> // fold emulation + +#include <functional> +#include <memory> + +namespace Kokkos { +namespace Experimental { + +//============================================================================== +// <editor-fold desc="Graph"> {{{1 + +template <class ExecutionSpace> +struct KOKKOS_ATTRIBUTE_NODISCARD Graph { + public: + //---------------------------------------------------------------------------- + // <editor-fold desc="public member types"> {{{2 + + using execution_space = ExecutionSpace; + using graph = Graph; + + // </editor-fold> end public member types }}}2 + //---------------------------------------------------------------------------- + + private: + //---------------------------------------------------------------------------- + // <editor-fold desc="friends"> {{{2 + + friend struct Kokkos::Impl::GraphAccess; + + // </editor-fold> end friends }}}2 + //---------------------------------------------------------------------------- + + //---------------------------------------------------------------------------- + // <editor-fold desc="private data members"> {{{2 + + using impl_t = Kokkos::Impl::GraphImpl<ExecutionSpace>; + std::shared_ptr<impl_t> m_impl_ptr = nullptr; + + // </editor-fold> end private data members }}}2 + //---------------------------------------------------------------------------- + + //---------------------------------------------------------------------------- + // <editor-fold desc="private ctors"> {{{2 + + // Note: only create_graph() uses this constructor, but we can't just make + // that a friend instead of GraphAccess because of the way that friend + // function template injection works. + explicit Graph(std::shared_ptr<impl_t> arg_impl_ptr) + : m_impl_ptr(std::move(arg_impl_ptr)) {} + + // </editor-fold> end private ctors }}}2 + //---------------------------------------------------------------------------- + + public: + ExecutionSpace const& get_execution_space() const { + return m_impl_ptr->get_execution_space(); + } + + void submit() const { + KOKKOS_EXPECTS(bool(m_impl_ptr)) + (*m_impl_ptr).submit(); + } +}; + +// </editor-fold> end Graph }}}1 +//============================================================================== + +//============================================================================== +// <editor-fold desc="when_all"> {{{1 + +template <class... PredecessorRefs> +// constraints (not intended for subsumption, though...) +// ((remove_cvref_t<PredecessorRefs> is a specialization of +// GraphNodeRef with get_root().get_graph_impl() as its GraphImpl) +// && ...) +auto when_all(PredecessorRefs&&... arg_pred_refs) { + // TODO @graph @desul-integration check the constraints and preconditions + // once we have folded conjunctions from + // desul + static_assert(sizeof...(PredecessorRefs) > 0, + "when_all() needs at least one predecessor."); + auto graph_ptr_impl = + Kokkos::Impl::GraphAccess::get_graph_weak_ptr( + std::get<0>(std::forward_as_tuple(arg_pred_refs...))) + .lock(); + auto node_ptr_impl = graph_ptr_impl->create_aggregate_ptr(arg_pred_refs...); + graph_ptr_impl->add_node(node_ptr_impl); + KOKKOS_IMPL_FOLD_COMMA_OPERATOR( + graph_ptr_impl->add_predecessor(node_ptr_impl, arg_pred_refs) /* ... */); + return Kokkos::Impl::GraphAccess::make_graph_node_ref( + std::move(graph_ptr_impl), std::move(node_ptr_impl)); +} + +// </editor-fold> end when_all }}}1 +//============================================================================== + +//============================================================================== +// <editor-fold desc="create_graph"> {{{1 + +template <class ExecutionSpace, class Closure> +Graph<ExecutionSpace> create_graph(ExecutionSpace ex, Closure&& arg_closure) { + // Create a shared pointer to the graph: + // We need an attorney class here so we have an implementation friend to + // create a Graph class without graph having public constructors. We can't + // just make `create_graph` itself a friend because of the way that friend + // function template injection works. + auto rv = Kokkos::Impl::GraphAccess::construct_graph(std::move(ex)); + // Invoke the user's graph construction closure + ((Closure &&) arg_closure)(Kokkos::Impl::GraphAccess::create_root_ref(rv)); + // and given them back the graph + // KOKKOS_ENSURES(rv.m_impl_ptr.use_count() == 1) + return rv; +} + +template < + class ExecutionSpace = DefaultExecutionSpace, + class Closure = Kokkos::Impl::DoNotExplicitlySpecifyThisTemplateParameter> +Graph<ExecutionSpace> create_graph(Closure&& arg_closure) { + return create_graph(ExecutionSpace{}, (Closure &&) arg_closure); +} + +// </editor-fold> end create_graph }}}1 +//============================================================================== + +} // end namespace Experimental +} // namespace Kokkos + +// Even though these things are separable, include them here for now so that +// the user only needs to include Kokkos_Graph.hpp to get the whole facility. +#include <Kokkos_GraphNode.hpp> + +#include <impl/Kokkos_GraphNodeImpl.hpp> +#include <impl/Kokkos_Default_Graph_Impl.hpp> +#include <Cuda/Kokkos_Cuda_Graph_Impl.hpp> +#endif // KOKKOS_GRAPH_HPP diff --git a/packages/kokkos/core/src/Kokkos_GraphNode.hpp b/packages/kokkos/core/src/Kokkos_GraphNode.hpp new file mode 100644 index 000000000..56e7d706f --- /dev/null +++ b/packages/kokkos/core/src/Kokkos_GraphNode.hpp @@ -0,0 +1,462 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_KOKKOS_GRAPHNODE_HPP +#define KOKKOS_KOKKOS_GRAPHNODE_HPP + +#include <Kokkos_Macros.hpp> + +#include <impl/Kokkos_Error.hpp> // contract macros + +#include <Kokkos_Core_fwd.hpp> +#include <Kokkos_Graph_fwd.hpp> +#include <impl/Kokkos_GraphImpl_fwd.hpp> +#include <Kokkos_Parallel_Reduce.hpp> +#include <impl/Kokkos_GraphImpl_Utilities.hpp> +#include <impl/Kokkos_GraphImpl.hpp> // GraphAccess + +#include <memory> // std::shared_ptr + +namespace Kokkos { +namespace Experimental { + +template <class ExecutionSpace, class Kernel /*= TypeErasedTag*/, + class Predecessor /*= TypeErasedTag*/> +class GraphNodeRef { + //---------------------------------------------------------------------------- + // <editor-fold desc="template parameter constraints"> {{{2 + + // Note: because of these assertions, instantiating this class template is not + // intended to be SFINAE-safe, so do validation before you instantiate. + +// WORKAROUND Could not get it to compile with IBM XL V16.1.1 +#ifndef KOKKOS_COMPILER_IBM + static_assert( + std::is_same<Predecessor, TypeErasedTag>::value || + Kokkos::Impl::is_specialization_of<Predecessor, GraphNodeRef>::value, + "Invalid predecessor template parameter given to GraphNodeRef"); +#endif + + static_assert( + Kokkos::is_execution_space<ExecutionSpace>::value, + "Invalid execution space template parameter given to GraphNodeRef"); + + static_assert(std::is_same<Predecessor, TypeErasedTag>::value || + Kokkos::Impl::is_graph_kernel<Kernel>::value, + "Invalid kernel template parameter given to GraphNodeRef"); + + static_assert(!Kokkos::Impl::is_more_type_erased<Kernel, Predecessor>::value, + "The kernel of a graph node can't be more type-erased than the " + "predecessor"); + + // </editor-fold> end template parameter constraints }}}2 + //---------------------------------------------------------------------------- + + public: + //---------------------------------------------------------------------------- + // <editor-fold desc="public member types"> {{{2 + + using execution_space = ExecutionSpace; + using graph_kernel = Kernel; + using graph_predecessor = Predecessor; + + // </editor-fold> end public member types }}}2 + //---------------------------------------------------------------------------- + + private: + //---------------------------------------------------------------------------- + // <editor-fold desc="Friends"> {{{2 + + template <class, class, class> + friend class GraphNodeRef; + friend struct Kokkos::Impl::GraphAccess; + + // </editor-fold> end Friends }}}2 + //---------------------------------------------------------------------------- + + //---------------------------------------------------------------------------- + // <editor-fold desc="Private Data Members"> {{{2 + + using graph_impl_t = Kokkos::Impl::GraphImpl<ExecutionSpace>; + std::weak_ptr<graph_impl_t> m_graph_impl; + + // TODO @graphs figure out if we can get away with a weak reference here? + // GraphNodeRef instances shouldn't be stored by users outside + // of the create_graph closure, and so if we restructure things + // slightly, we could make it so that the graph owns the + // node_impl_t instance and this only holds a std::weak_ptr to + // it. + using node_impl_t = + Kokkos::Impl::GraphNodeImpl<ExecutionSpace, Kernel, Predecessor>; + std::shared_ptr<node_impl_t> m_node_impl; + + // </editor-fold> end Private Data Members }}}2 + //---------------------------------------------------------------------------- + + //---------------------------------------------------------------------------- + // <editor-fold desc="Implementation detail accessors"> {{{2 + + // Internally, use shallow constness + node_impl_t& get_node_impl() const { return *m_node_impl.get(); } + std::shared_ptr<node_impl_t> const& get_node_ptr() const& { + return m_node_impl; + } + std::shared_ptr<node_impl_t> get_node_ptr() && { + return std::move(m_node_impl); + } + std::weak_ptr<graph_impl_t> get_graph_weak_ptr() const { + return m_graph_impl; + } + + // </editor-fold> end Implementation detail accessors }}}2 + //---------------------------------------------------------------------------- + + // TODO kernel name propagation and exposure + + template <class NextKernelDeduced> + auto _then_kernel(NextKernelDeduced&& arg_kernel) const { + // readability note: + // std::remove_cvref_t<NextKernelDeduced> is a specialization of + // Kokkos::Impl::GraphNodeKernelImpl: + static_assert(Kokkos::Impl::is_specialization_of< + Kokkos::Impl::remove_cvref_t<NextKernelDeduced>, + Kokkos::Impl::GraphNodeKernelImpl>::value, + "Kokkos internal error"); + + auto graph_ptr = m_graph_impl.lock(); + KOKKOS_EXPECTS(bool(graph_ptr)) + + using next_kernel_t = Kokkos::Impl::remove_cvref_t<NextKernelDeduced>; + + using return_t = GraphNodeRef<ExecutionSpace, next_kernel_t, GraphNodeRef>; + + auto rv = Kokkos::Impl::GraphAccess::make_graph_node_ref( + m_graph_impl, + Kokkos::Impl::GraphAccess::make_node_shared_ptr< + typename return_t::node_impl_t>( + m_node_impl->execution_space_instance(), + Kokkos::Impl::_graph_node_kernel_ctor_tag{}, + (NextKernelDeduced &&) arg_kernel, + // *this is the predecessor + Kokkos::Impl::_graph_node_predecessor_ctor_tag{}, *this)); + + // Add the node itself to the backend's graph data structure, now that + // everything is set up. + graph_ptr->add_node(rv.m_node_impl); + // Add the predecessaor we stored in the constructor above in the backend's + // data structure, now that everything is set up. + graph_ptr->add_predecessor(rv.m_node_impl, *this); + KOKKOS_ENSURES(bool(rv.m_node_impl)) + return rv; + } + + //---------------------------------------------------------------------------- + // <editor-fold desc="Private constructors"> {{{2 + + GraphNodeRef(std::weak_ptr<graph_impl_t> arg_graph_impl, + std::shared_ptr<node_impl_t> arg_node_impl) + : m_graph_impl(std::move(arg_graph_impl)), + m_node_impl(std::move(arg_node_impl)) {} + + // </editor-fold> end Private constructors }}}2 + //---------------------------------------------------------------------------- + + public: + //---------------------------------------------------------------------------- + // <editor-fold desc="Constructors, destructors, and assignment"> {{{2 + + //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // <editor-fold desc="rule of 6 ctors"> {{{3 + + // Copyable and movable (basically just shared_ptr semantics + GraphNodeRef() noexcept = default; + GraphNodeRef(GraphNodeRef const&) = default; + GraphNodeRef(GraphNodeRef&&) noexcept = default; + GraphNodeRef& operator=(GraphNodeRef const&) = default; + GraphNodeRef& operator=(GraphNodeRef&&) noexcept = default; + ~GraphNodeRef() = default; + + // </editor-fold> end rule of 6 ctors }}}3 + //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // <editor-fold desc="Type-erasing converting ctor and assignment"> {{{3 + + template < + class OtherKernel, class OtherPredecessor, + typename std::enable_if_t< + // Not a copy/move constructor + !std::is_same<GraphNodeRef, GraphNodeRef<execution_space, OtherKernel, + OtherPredecessor>>::value && + // must be an allowed type erasure of the kernel + Kokkos::Impl::is_compatible_type_erasure<OtherKernel, + graph_kernel>::value && + // must be an allowed type erasure of the predecessor + Kokkos::Impl::is_compatible_type_erasure< + OtherPredecessor, graph_predecessor>::value, + int> = 0> + /* implicit */ + GraphNodeRef( + GraphNodeRef<execution_space, OtherKernel, OtherPredecessor> const& other) + : m_graph_impl(other.m_graph_impl), m_node_impl(other.m_node_impl) {} + + // Note: because this is an implicit conversion (as is supposed to be the + // case with most type-erasing wrappers like this), we don't also need + // a converting assignment operator. + + // </editor-fold> end Type-erasing converting ctor and assignment }}}3 + //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + // </editor-fold> end Constructors, destructors, and assignment }}}2 + //---------------------------------------------------------------------------- + + //---------------------------------------------------------------------------- + // <editor-fold desc="then_parallel_for"> {{{2 + + template < + class Policy, class Functor, + typename std::enable_if< + // equivalent to: + // requires Kokkos::ExecutionPolicy<remove_cvref_t<Policy>> + is_execution_policy<Kokkos::Impl::remove_cvref_t<Policy>>::value, + // -------------------- + int>::type = 0> + auto then_parallel_for(std::string arg_name, Policy&& arg_policy, + Functor&& functor) const { + //---------------------------------------- + KOKKOS_EXPECTS(!m_graph_impl.expired()) + KOKKOS_EXPECTS(bool(m_node_impl)) + // TODO @graph restore this expectation once we add comparability to space + // instances + // KOKKOS_EXPECTS( + // arg_policy.space() == m_graph_impl->get_execution_space()); + + // needs to static assert constraint: DataParallelFunctor<Functor> + + using policy_t = Kokkos::Impl::remove_cvref_t<Policy>; + // constraint check: same execution space type (or defaulted, maybe?) + static_assert( + std::is_same<typename policy_t::execution_space, + execution_space>::value, + // TODO @graph make defaulted execution space work + //|| policy_t::execution_space_is_defaulted, + "Execution Space mismatch between execution policy and graph"); + + auto policy = Experimental::require((Policy &&) arg_policy, + Kokkos::Impl::KernelInGraphProperty{}); + + using next_policy_t = decltype(policy); + using next_kernel_t = + Kokkos::Impl::GraphNodeKernelImpl<ExecutionSpace, next_policy_t, + std::decay_t<Functor>, + Kokkos::ParallelForTag>; + return this->_then_kernel(next_kernel_t{std::move(arg_name), policy.space(), + (Functor &&) functor, + (Policy &&) policy}); + } + + template < + class Policy, class Functor, + typename std::enable_if< + // equivalent to: + // requires Kokkos::ExecutionPolicy<remove_cvref_t<Policy>> + is_execution_policy<Kokkos::Impl::remove_cvref_t<Policy>>::value, + // -------------------- + int>::type = 0> + auto then_parallel_for(Policy&& policy, Functor&& functor) const { + // needs to static assert constraint: DataParallelFunctor<Functor> + return this->then_parallel_for("", (Policy &&) policy, + (Functor &&) functor); + } + + template <class Functor> + auto then_parallel_for(std::string name, std::size_t n, + Functor&& functor) const { + // needs to static assert constraint: DataParallelFunctor<Functor> + return this->then_parallel_for(std::move(name), + Kokkos::RangePolicy<execution_space>(0, n), + (Functor &&) functor); + } + + template <class Functor> + auto then_parallel_for(std::size_t n, Functor&& functor) const { + // needs to static assert constraint: DataParallelFunctor<Functor> + return this->then_parallel_for("", n, (Functor &&) functor); + } + + // </editor-fold> end then_parallel_for }}}2 + //---------------------------------------------------------------------------- + + //---------------------------------------------------------------------------- + // <editor-fold desc="then_parallel_reduce"> {{{2 + + template < + class Policy, class Functor, class ReturnType, + typename std::enable_if< + // equivalent to: + // requires Kokkos::ExecutionPolicy<remove_cvref_t<Policy>> + is_execution_policy<Kokkos::Impl::remove_cvref_t<Policy>>::value, + // -------------------- + int>::type = 0> + auto then_parallel_reduce(std::string arg_name, Policy&& arg_policy, + Functor&& functor, + ReturnType&& return_value) const { + auto graph_impl_ptr = m_graph_impl.lock(); + KOKKOS_EXPECTS(bool(graph_impl_ptr)) + KOKKOS_EXPECTS(bool(m_node_impl)) + // TODO @graph restore this expectation once we add comparability to space + // instances + // KOKKOS_EXPECTS( + // arg_policy.space() == m_graph_impl->get_execution_space()); + + // needs static assertion of constraint: + // DataParallelReductionFunctor<Functor, ReturnType> + + using policy_t = typename std::remove_cv< + typename std::remove_reference<Policy>::type>::type; + static_assert( + std::is_same<typename policy_t::execution_space, + execution_space>::value, + // TODO @graph make defaulted execution space work + // || policy_t::execution_space_is_defaulted, + "Execution Space mismatch between execution policy and graph"); + + // This is also just an expectation, but it's one that we expect the user + // to interact with (even in release mode), so we should throw an exception + // with an explanation rather than just doing a contract assertion. + // We can't static_assert this because of the way that Reducers store + // whether or not they point to a View as a runtime boolean rather than part + // of the type. + if (Kokkos::Impl::parallel_reduce_needs_fence( + graph_impl_ptr->get_execution_space(), return_value)) { + Kokkos::Impl::throw_runtime_exception( + "Parallel reductions in graphs can't operate on Reducers that " + "reference a scalar because they can't complete synchronously. Use a " + "Kokkos::View instead and keep in mind the result will only be " + "available once the graph is submitted (or in tasks that depend on " + "this one)."); + } + + //---------------------------------------- + // This is a disaster, but I guess it's not a my disaster to fix right now + using return_type_remove_cvref = typename std::remove_cv< + typename std::remove_reference<ReturnType>::type>::type; + static_assert(Kokkos::is_view<return_type_remove_cvref>::value || + Kokkos::is_reducer<return_type_remove_cvref>::value, + "Output argument to parallel reduce in a graph must be a " + "View or a Reducer"); + using return_type = + // Yes, you do really have to do this... + std::conditional_t<Kokkos::is_reducer<return_type_remove_cvref>::value, + return_type_remove_cvref, + const return_type_remove_cvref>; + using functor_type = Kokkos::Impl::remove_cvref_t<Functor>; + // see Kokkos_Parallel_Reduce.hpp for how these details are used there; + // we're just doing the same thing here + using return_value_adapter = + Kokkos::Impl::ParallelReduceReturnValue<void, return_type, + functor_type>; + using functor_adaptor = Kokkos::Impl::ParallelReduceFunctorType< + functor_type, Policy, typename return_value_adapter::value_type, + execution_space>; + // End of Kokkos reducer disaster + //---------------------------------------- + + auto policy = Experimental::require((Policy &&) arg_policy, + Kokkos::Impl::KernelInGraphProperty{}); + + using next_policy_t = decltype(policy); + using next_kernel_t = Kokkos::Impl::GraphNodeKernelImpl< + ExecutionSpace, next_policy_t, typename functor_adaptor::functor_type, + Kokkos::ParallelReduceTag, typename return_value_adapter::reducer_type>; + + return this->_then_kernel(next_kernel_t{ + std::move(arg_name), graph_impl_ptr->get_execution_space(), + (Functor &&) functor, (Policy &&) policy, + return_value_adapter::return_value(return_value, functor)}); + } + + template < + class Policy, class Functor, class ReturnType, + typename std::enable_if< + // equivalent to: + // requires Kokkos::ExecutionPolicy<remove_cvref_t<Policy>> + is_execution_policy<Kokkos::Impl::remove_cvref_t<Policy>>::value, + // -------------------- + int>::type = 0> + auto then_parallel_reduce(Policy&& arg_policy, Functor&& functor, + ReturnType&& return_value) const { + return this->then_parallel_reduce("", (Policy &&) arg_policy, + (Functor &&) functor, + (ReturnType &&) return_value); + } + + template <class Functor, class ReturnType> + auto then_parallel_reduce(std::string label, + typename execution_space::size_type idx_end, + Functor&& functor, + ReturnType&& return_value) const { + return this->then_parallel_reduce( + std::move(label), Kokkos::RangePolicy<execution_space>{0, idx_end}, + (Functor &&) functor, (ReturnType &&) return_value); + } + + template <class Functor, class ReturnType> + auto then_parallel_reduce(typename execution_space::size_type idx_end, + Functor&& functor, + ReturnType&& return_value) const { + return this->then_parallel_reduce("", idx_end, (Functor &&) functor, + (ReturnType &&) return_value); + } + + // </editor-fold> end then_parallel_reduce }}}2 + //---------------------------------------------------------------------------- + + // TODO @graph parallel scan, deep copy, etc. +}; + +} // end namespace Experimental +} // end namespace Kokkos + +#endif // KOKKOS_KOKKOS_GRAPHNODE_HPP diff --git a/packages/kokkos/core/src/HPX/Kokkos_HPX_ViewCopyETIDecl.hpp b/packages/kokkos/core/src/Kokkos_Graph_fwd.hpp similarity index 82% rename from packages/kokkos/core/src/HPX/Kokkos_HPX_ViewCopyETIDecl.hpp rename to packages/kokkos/core/src/Kokkos_Graph_fwd.hpp index fae486f4b..1ba58e4c8 100644 --- a/packages/kokkos/core/src/HPX/Kokkos_HPX_ViewCopyETIDecl.hpp +++ b/packages/kokkos/core/src/Kokkos_Graph_fwd.hpp @@ -42,16 +42,24 @@ //@HEADER */ -#ifndef KOKKOS_HPX_VIEWETIDECL_HPP -#define KOKKOS_HPX_VIEWETIDECL_HPP +#ifndef KOKKOS_KOKKOS_GRAPH_FWD_HPP +#define KOKKOS_KOKKOS_GRAPH_FWD_HPP + +#include <Kokkos_Macros.hpp> namespace Kokkos { -namespace Impl { -#define KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE Kokkos::Experimental::HPX +namespace Experimental { + +struct TypeErasedTag {}; + +template <class ExecutionSpace> +struct Graph; + +template <class ExecutionSpace, class Kernel = TypeErasedTag, + class Predecessor = TypeErasedTag> +class GraphNodeRef; -#include <eti/common/Kokkos_ViewFillCopyETIDecl_Macros.hpp> +} // end namespace Experimental +} // end namespace Kokkos -#undef KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE -} // namespace Impl -} // namespace Kokkos -#endif +#endif // KOKKOS_KOKKOS_GRAPH_FWD_HPP diff --git a/packages/kokkos/core/src/Kokkos_HBWSpace.hpp b/packages/kokkos/core/src/Kokkos_HBWSpace.hpp index ce36b018c..80a8f3ad3 100644 --- a/packages/kokkos/core/src/Kokkos_HBWSpace.hpp +++ b/packages/kokkos/core/src/Kokkos_HBWSpace.hpp @@ -97,8 +97,8 @@ namespace Experimental { class HBWSpace { public: //! Tag this class as a kokkos memory space - typedef HBWSpace memory_space; - typedef size_t size_type; + using memory_space = HBWSpace; + using size_type = size_t; /// \typedef execution_space /// \brief Default execution space for this memory space. @@ -106,23 +106,10 @@ class HBWSpace { /// Every memory space has a default execution space. This is /// useful for things like initializing a View (which happens in /// parallel using the View's default execution space). -#if defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_OPENMP) - typedef Kokkos::OpenMP execution_space; -#elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_THREADS) - typedef Kokkos::Threads execution_space; -#elif defined(KOKKOS_ENABLE_OPENMP) - typedef Kokkos::OpenMP execution_space; -#elif defined(KOKKOS_ENABLE_THREADS) - typedef Kokkos::Threads execution_space; -#elif defined(KOKKOS_ENABLE_SERIAL) - typedef Kokkos::Serial execution_space; -#else -#error \ - "At least one of the following host execution spaces must be defined: Kokkos::OpenMP, Kokkos::Threads, or Kokkos::Serial. You might be seeing this message if you disabled the Kokkos::Serial device explicitly using the Kokkos_ENABLE_Serial:BOOL=OFF CMake option, but did not enable any of the other host execution space devices." -#endif + using execution_space = Kokkos::DefaultHostExecutionSpace; //! This memory space preferred device_type - typedef Kokkos::Device<execution_space, memory_space> device_type; + using device_type = Kokkos::Device<execution_space, memory_space>; /**\brief Default memory space instance */ HBWSpace(); @@ -144,10 +131,30 @@ class HBWSpace { /**\brief Allocate untracked memory in the space */ void* allocate(const size_t arg_alloc_size) const; + void* allocate(const char* arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size = 0) const; /**\brief Deallocate untracked memory in the space */ void deallocate(void* const arg_alloc_ptr, const size_t arg_alloc_size) const; + void deallocate(const char* arg_label, void* const arg_alloc_ptr, + const size_t arg_alloc_size, + const size_t arg_logical_size = 0) const; + private: + template <class, class, class, class> + friend class LogicalMemorySpace; + + void* impl_allocate(const char* arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size = 0, + const Kokkos::Tools::SpaceHandle = + Kokkos::Tools::make_space_handle(name())) const; + void impl_deallocate(const char* arg_label, void* const arg_alloc_ptr, + const size_t arg_alloc_size, + const size_t arg_logical_size = 0, + const Kokkos::Tools::SpaceHandle = + Kokkos::Tools::make_space_handle(name())) const; + + public: /**\brief Return Name of the MemorySpace */ static constexpr const char* name() { return "HBW"; } @@ -173,14 +180,14 @@ class SharedAllocationRecord<Kokkos::Experimental::HBWSpace, void> private: friend Kokkos::Experimental::HBWSpace; - typedef SharedAllocationRecord<void, void> RecordBase; + using RecordBase = SharedAllocationRecord<void, void>; SharedAllocationRecord(const SharedAllocationRecord&) = delete; SharedAllocationRecord& operator=(const SharedAllocationRecord&) = delete; static void deallocate(RecordBase*); -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG /**\brief Root record for tracked allocations from this HBWSpace instance */ static RecordBase s_root_record; #endif @@ -252,16 +259,16 @@ static_assert( template <> struct MemorySpaceAccess<Kokkos::HostSpace, Kokkos::Experimental::HBWSpace> { - enum { assignable = true }; - enum { accessible = true }; - enum { deepcopy = true }; + enum : bool { assignable = true }; + enum : bool { accessible = true }; + enum : bool { deepcopy = true }; }; template <> struct MemorySpaceAccess<Kokkos::Experimental::HBWSpace, Kokkos::HostSpace> { - enum { assignable = false }; - enum { accessible = true }; - enum { deepcopy = true }; + enum : bool { assignable = false }; + enum : bool { accessible = true }; + enum : bool { deepcopy = true }; }; } // namespace Impl @@ -316,7 +323,7 @@ namespace Impl { template <> struct VerifyExecutionCanAccessMemorySpace<Kokkos::HostSpace, Kokkos::Experimental::HBWSpace> { - enum { value = true }; + enum : bool { value = true }; inline static void verify(void) {} inline static void verify(const void*) {} }; @@ -324,7 +331,7 @@ struct VerifyExecutionCanAccessMemorySpace<Kokkos::HostSpace, template <> struct VerifyExecutionCanAccessMemorySpace<Kokkos::Experimental::HBWSpace, Kokkos::HostSpace> { - enum { value = true }; + enum : bool { value = true }; inline static void verify(void) {} inline static void verify(const void*) {} }; diff --git a/packages/kokkos/core/src/Kokkos_HIP.hpp b/packages/kokkos/core/src/Kokkos_HIP.hpp index 4e9325c2d..7afda3b43 100644 --- a/packages/kokkos/core/src/Kokkos_HIP.hpp +++ b/packages/kokkos/core/src/Kokkos_HIP.hpp @@ -60,6 +60,7 @@ #include <HIP/Kokkos_HIP_Parallel_Range.hpp> #include <HIP/Kokkos_HIP_Parallel_MDRange.hpp> #include <HIP/Kokkos_HIP_Parallel_Team.hpp> +#include <HIP/Kokkos_HIP_UniqueToken.hpp> #endif #endif diff --git a/packages/kokkos/core/src/Kokkos_HIP_Space.hpp b/packages/kokkos/core/src/Kokkos_HIP_Space.hpp index 90bdb7b91..5d045aa27 100644 --- a/packages/kokkos/core/src/Kokkos_HIP_Space.hpp +++ b/packages/kokkos/core/src/Kokkos_HIP_Space.hpp @@ -60,6 +60,7 @@ #include <Kokkos_ScratchSpace.hpp> #include <impl/Kokkos_Profiling_Interface.hpp> +#include <impl/Kokkos_ExecSpaceInitializer.hpp> #include <hip/hip_runtime_api.h> /*--------------------------------------------------------------------------*/ @@ -88,10 +89,29 @@ class HIPSpace { /**\brief Allocate untracked memory in the hip space */ void* allocate(const size_t arg_alloc_size) const; + void* allocate(const char* arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size = 0) const; /**\brief Deallocate untracked memory in the hip space */ void deallocate(void* const arg_alloc_ptr, const size_t arg_alloc_size) const; + void deallocate(const char* arg_label, void* const arg_alloc_ptr, + const size_t arg_alloc_size, + const size_t arg_logical_size = 0) const; + private: + template <class, class, class, class> + friend class LogicalMemorySpace; + void* impl_allocate(const char* arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size = 0, + const Kokkos::Tools::SpaceHandle = + Kokkos::Tools::make_space_handle(name())) const; + void impl_deallocate(const char* arg_label, void* const arg_alloc_ptr, + const size_t arg_alloc_size, + const size_t arg_logical_size = 0, + const Kokkos::Tools::SpaceHandle = + Kokkos::Tools::make_space_handle(name())) const; + + public: /**\brief Return Name of the MemorySpace */ static constexpr const char* name() { return "HIP"; } @@ -175,10 +195,29 @@ class HIPHostPinnedSpace { /**\brief Allocate untracked memory in the space */ void* allocate(const size_t arg_alloc_size) const; + void* allocate(const char* arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size = 0) const; /**\brief Deallocate untracked memory in the space */ void deallocate(void* const arg_alloc_ptr, const size_t arg_alloc_size) const; + void deallocate(const char* arg_label, void* const arg_alloc_ptr, + const size_t arg_alloc_size, + const size_t arg_logical_size = 0) const; + + private: + template <class, class, class, class> + friend class LogicalMemorySpace; + void* impl_allocate(const char* arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size = 0, + const Kokkos::Tools::SpaceHandle = + Kokkos::Tools::make_space_handle(name())) const; + void impl_deallocate(const char* arg_label, void* const arg_alloc_ptr, + const size_t arg_alloc_size, + const size_t arg_logical_size = 0, + const Kokkos::Tools::SpaceHandle = + Kokkos::Tools::make_space_handle(name())) const; + public: /**\brief Return Name of the MemorySpace */ static constexpr const char* name() { return "HIPHostPinned"; } @@ -202,36 +241,36 @@ static_assert( template <> struct MemorySpaceAccess<Kokkos::HostSpace, Kokkos::Experimental::HIPSpace> { - enum { assignable = false }; - enum { accessible = false }; - enum { deepcopy = true }; + enum : bool { assignable = false }; + enum : bool { accessible = false }; + enum : bool { deepcopy = true }; }; template <> struct MemorySpaceAccess<Kokkos::HostSpace, Kokkos::Experimental::HIPHostPinnedSpace> { // HostSpace::execution_space == HIPHostPinnedSpace::execution_space - enum { assignable = true }; - enum { accessible = true }; - enum { deepcopy = true }; + enum : bool { assignable = true }; + enum : bool { accessible = true }; + enum : bool { deepcopy = true }; }; //---------------------------------------- template <> struct MemorySpaceAccess<Kokkos::Experimental::HIPSpace, Kokkos::HostSpace> { - enum { assignable = false }; - enum { accessible = false }; - enum { deepcopy = true }; + enum : bool { assignable = false }; + enum : bool { accessible = false }; + enum : bool { deepcopy = true }; }; template <> struct MemorySpaceAccess<Kokkos::Experimental::HIPSpace, Kokkos::Experimental::HIPHostPinnedSpace> { // HIPSpace::execution_space != HIPHostPinnedSpace::execution_space - enum { assignable = false }; - enum { accessible = true }; // HIPSpace::execution_space - enum { deepcopy = true }; + enum : bool { assignable = false }; + enum : bool { accessible = true }; // HIPSpace::execution_space + enum : bool { deepcopy = true }; }; //---------------------------------------- @@ -241,17 +280,17 @@ struct MemorySpaceAccess<Kokkos::Experimental::HIPSpace, template <> struct MemorySpaceAccess<Kokkos::Experimental::HIPHostPinnedSpace, Kokkos::HostSpace> { - enum { assignable = false }; // Cannot access from HIP - enum { accessible = true }; // HIPHostPinnedSpace::execution_space - enum { deepcopy = true }; + enum : bool { assignable = false }; // Cannot access from HIP + enum : bool { accessible = true }; // HIPHostPinnedSpace::execution_space + enum : bool { deepcopy = true }; }; template <> struct MemorySpaceAccess<Kokkos::Experimental::HIPHostPinnedSpace, Kokkos::Experimental::HIPSpace> { - enum { assignable = false }; // Cannot access from Host - enum { accessible = false }; - enum { deepcopy = true }; + enum : bool { assignable = false }; // Cannot access from Host + enum : bool { accessible = false }; + enum : bool { deepcopy = true }; }; }; // namespace Impl @@ -448,7 +487,7 @@ namespace Impl { template <> struct VerifyExecutionCanAccessMemorySpace<Kokkos::Experimental::HIPSpace, Kokkos::HostSpace> { - enum { value = false }; + enum : bool { value = false }; KOKKOS_INLINE_FUNCTION static void verify(void) { Kokkos::abort("HIP code attempted to access HostSpace memory"); } @@ -462,7 +501,7 @@ struct VerifyExecutionCanAccessMemorySpace<Kokkos::Experimental::HIPSpace, template <> struct VerifyExecutionCanAccessMemorySpace< Kokkos::Experimental::HIPSpace, Kokkos::Experimental::HIPHostPinnedSpace> { - enum { value = true }; + enum : bool { value = true }; KOKKOS_INLINE_FUNCTION static void verify(void) {} KOKKOS_INLINE_FUNCTION static void verify(const void*) {} }; @@ -474,7 +513,7 @@ struct VerifyExecutionCanAccessMemorySpace< !std::is_same<Kokkos::Experimental::HIPSpace, OtherSpace>::value, Kokkos::Experimental::HIPSpace>::type, OtherSpace> { - enum { value = false }; + enum : bool { value = false }; KOKKOS_INLINE_FUNCTION static void verify(void) { Kokkos::abort("HIP code attempted to access unknown Space memory"); } @@ -489,7 +528,7 @@ struct VerifyExecutionCanAccessMemorySpace< template <> struct VerifyExecutionCanAccessMemorySpace<Kokkos::HostSpace, Kokkos::Experimental::HIPSpace> { - enum { value = false }; + enum : bool { value = false }; inline static void verify(void) { Kokkos::Experimental::HIPSpace::access_error(); } @@ -502,7 +541,7 @@ struct VerifyExecutionCanAccessMemorySpace<Kokkos::HostSpace, template <> struct VerifyExecutionCanAccessMemorySpace< Kokkos::HostSpace, Kokkos::Experimental::HIPHostPinnedSpace> { - enum { value = true }; + enum : bool { value = true }; KOKKOS_INLINE_FUNCTION static void verify(void) {} KOKKOS_INLINE_FUNCTION static void verify(const void*) {} }; @@ -519,14 +558,14 @@ template <> class SharedAllocationRecord<Kokkos::Experimental::HIPSpace, void> : public SharedAllocationRecord<void, void> { private: - typedef SharedAllocationRecord<void, void> RecordBase; + using RecordBase = SharedAllocationRecord<void, void>; SharedAllocationRecord(const SharedAllocationRecord&) = delete; SharedAllocationRecord& operator=(const SharedAllocationRecord&) = delete; static void deallocate(RecordBase*); -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG static RecordBase s_root_record; #endif @@ -570,14 +609,14 @@ template <> class SharedAllocationRecord<Kokkos::Experimental::HIPHostPinnedSpace, void> : public SharedAllocationRecord<void, void> { private: - typedef SharedAllocationRecord<void, void> RecordBase; + using RecordBase = SharedAllocationRecord<void, void>; SharedAllocationRecord(const SharedAllocationRecord&) = delete; SharedAllocationRecord& operator=(const SharedAllocationRecord&) = delete; static void deallocate(RecordBase*); -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG static RecordBase s_root_record; #endif @@ -645,14 +684,15 @@ class HIP { using scratch_memory_space = ScratchMemorySpace<HIP>; - ~HIP() = default; HIP(); - // explicit HIP( const int instance_id ); + HIP(hipStream_t stream); + + KOKKOS_FUNCTION HIP(HIP&& other) noexcept; + KOKKOS_FUNCTION HIP(HIP const& other); + KOKKOS_FUNCTION HIP& operator=(HIP&&) noexcept; + KOKKOS_FUNCTION HIP& operator=(HIP const&); - HIP(HIP&&) = default; - HIP(const HIP&) = default; - HIP& operator=(HIP&&) = default; - HIP& operator=(const HIP&) = default; + KOKKOS_FUNCTION ~HIP() noexcept; //@} //------------------------------------ @@ -667,10 +707,18 @@ class HIP { #endif } - /** \brief Wait until all dispatched functors complete. A noop for OpenMP. */ + /** \brief Wait until all dispatched functors complete. + * + * The parallel_for or parallel_reduce dispatch of a functor may return + * asynchronously, before the functor completes. This method does not return + * until all dispatched functors on this device have completed. + */ static void impl_static_fence(); + void fence() const; + hipStream_t hip_stream() const; + /// \brief Print configuration information to the given output stream. static void print_configuration(std::ostream&, const bool detail = false); @@ -687,6 +735,7 @@ class HIP { }; int hip_device() const; + static hipDeviceProp_t const& hip_device_prop(); static void impl_initialize(const SelectDevice = SelectDevice()); @@ -694,7 +743,7 @@ class HIP { // static size_type device_arch(); - // static size_type detect_device_count(); + static size_type detect_device_count(); static int concurrency(); static const char* name(); @@ -707,16 +756,31 @@ class HIP { private: Impl::HIPInternal* m_space_instance; + int* m_counter; }; } // namespace Experimental -namespace Profiling { +namespace Tools { namespace Experimental { template <> struct DeviceTypeTraits<Kokkos::Experimental::HIP> { static constexpr DeviceType id = DeviceType::HIP; }; } // namespace Experimental -} // namespace Profiling +} // namespace Tools + +namespace Impl { + +class HIPSpaceInitializer : public Kokkos::Impl::ExecSpaceInitializerBase { + public: + HIPSpaceInitializer() = default; + ~HIPSpaceInitializer() = default; + void initialize(const InitArguments& args) final; + void finalize(const bool) final; + void fence() final; + void print_configuration(std::ostream& msg, const bool detail) final; +}; + +} // namespace Impl } // namespace Kokkos namespace Kokkos { @@ -725,16 +789,16 @@ namespace Impl { template <> struct MemorySpaceAccess<Kokkos::Experimental::HIPSpace, Kokkos::Experimental::HIP::scratch_memory_space> { - enum { assignable = false }; - enum { accessible = true }; - enum { deepcopy = false }; + enum : bool { assignable = false }; + enum : bool { accessible = true }; + enum : bool { deepcopy = false }; }; template <> struct VerifyExecutionCanAccessMemorySpace< Kokkos::Experimental::HIP::memory_space, Kokkos::Experimental::HIP::scratch_memory_space> { - enum { value = true }; + enum : bool { value = true }; KOKKOS_INLINE_FUNCTION static void verify(void) {} KOKKOS_INLINE_FUNCTION static void verify(const void*) {} }; @@ -742,7 +806,7 @@ struct VerifyExecutionCanAccessMemorySpace< template <> struct VerifyExecutionCanAccessMemorySpace< Kokkos::HostSpace, Kokkos::Experimental::HIP::scratch_memory_space> { - enum { value = false }; + enum : bool { value = false }; inline static void verify(void) { Kokkos::Experimental::HIPSpace::access_error(); } diff --git a/packages/kokkos/core/src/Kokkos_HPX.hpp b/packages/kokkos/core/src/Kokkos_HPX.hpp index 10354635c..279744b77 100644 --- a/packages/kokkos/core/src/Kokkos_HPX.hpp +++ b/packages/kokkos/core/src/Kokkos_HPX.hpp @@ -65,16 +65,19 @@ #include <Kokkos_Parallel.hpp> #include <Kokkos_ScratchSpace.hpp> #include <Kokkos_TaskScheduler.hpp> +#include <impl/Kokkos_ConcurrentBitset.hpp> #include <impl/Kokkos_FunctorAdapter.hpp> #include <impl/Kokkos_FunctorAnalysis.hpp> -#include <impl/Kokkos_Profiling_Interface.hpp> +#include <impl/Kokkos_Tools.hpp> #include <impl/Kokkos_Tags.hpp> #include <impl/Kokkos_TaskQueue.hpp> +#include <impl/Kokkos_ExecSpaceInitializer.hpp> #include <KokkosExp_MDRangePolicy.hpp> #include <hpx/apply.hpp> #include <hpx/hpx_start.hpp> +#include <hpx/include/util.hpp> #include <hpx/lcos/local/barrier.hpp> #include <hpx/lcos/local/latch.hpp> #include <hpx/parallel/algorithms/for_loop.hpp> @@ -85,6 +88,9 @@ #include <hpx/runtime/threads/threadmanager.hpp> #include <hpx/runtime/thread_pool_helpers.hpp> +#include <Kokkos_UniqueToken.hpp> + +#include <functional> #include <iostream> #include <memory> #include <sstream> @@ -112,6 +118,28 @@ #error "You have chosen an invalid value for KOKKOS_HPX_IMPLEMENTATION" #endif +// [note 1] +// +// When using the asynchronous backend and independent instances, we explicitly +// reset the shared data at the end of a parallel task (execute_task). We do +// this to avoid circular references with shared pointers that would otherwise +// never be released. +// +// The HPX instance holds shared data for the instance in a shared_ptr. One of +// the pieces of shared data is the future that we use to sequence parallel +// dispatches. When a parallel task is launched, a copy of the closure +// (ParallelFor, ParallelReduce, etc.) is captured in the task. The closure +// also holds the policy, the policy holds the HPX instance, the instance holds +// the shared data (for use of buffers in the parallel task). When attaching a +// continuation to a future, the continuation is stored in the future (shared +// state). This means that there is a cycle future -> continuation -> closure +// -> policy -> HPX -> shared data -> future. We break this by releasing the +// shared data early, as (the pointer to) the shared data will not be used +// anymore by the closure at the end of execute_task. +// +// We also mark the shared instance data as mutable so that we can reset it +// from the const execute_task member function. + namespace Kokkos { namespace Impl { class thread_buffer { @@ -177,9 +205,31 @@ namespace Experimental { class HPX { private: static bool m_hpx_initialized; - static Kokkos::Impl::thread_buffer m_buffer; + static std::atomic<uint32_t> m_next_instance_id; + uint32_t m_instance_id = 0; + #if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) - static hpx::future<void> m_future; + public: + enum class instance_mode { global, independent }; + instance_mode m_mode; + + private: + static std::atomic<uint32_t> m_active_parallel_region_count; + + struct instance_data { + instance_data() = default; + instance_data(hpx::shared_future<void> future) : m_future(future) {} + Kokkos::Impl::thread_buffer m_buffer; + hpx::shared_future<void> m_future = hpx::make_ready_future<void>(); + }; + + mutable std::shared_ptr<instance_data> m_independent_instance_data; + static instance_data m_global_instance_data; + + std::reference_wrapper<Kokkos::Impl::thread_buffer> m_buffer; + std::reference_wrapper<hpx::shared_future<void>> m_future; +#else + static Kokkos::Impl::thread_buffer m_global_buffer; #endif public: @@ -190,29 +240,106 @@ class HPX { using size_type = memory_space::size_type; using scratch_memory_space = ScratchMemorySpace<HPX>; +#if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) + HPX() + noexcept + : m_instance_id(0), + m_mode(instance_mode::global), + m_buffer(m_global_instance_data.m_buffer), + m_future(m_global_instance_data.m_future) {} + + HPX(instance_mode mode) + : m_instance_id(mode == instance_mode::independent ? m_next_instance_id++ + : 0), + m_mode(mode), + m_independent_instance_data(mode == instance_mode::independent + ? (new instance_data()) + : nullptr), + m_buffer(mode == instance_mode::independent + ? m_independent_instance_data->m_buffer + : m_global_instance_data.m_buffer), + m_future(mode == instance_mode::independent + ? m_independent_instance_data->m_future + : m_global_instance_data.m_future) {} + + HPX(hpx::shared_future<void> future) + : m_instance_id(m_next_instance_id++), + m_mode(instance_mode::independent), + + m_independent_instance_data(new instance_data(future)), + m_buffer(m_independent_instance_data->m_buffer), + m_future(m_independent_instance_data->m_future) {} + + HPX(const HPX &other) + : m_instance_id(other.m_instance_id), + m_mode(other.m_mode), + m_independent_instance_data(other.m_independent_instance_data), + m_buffer(other.m_buffer), + m_future(other.m_future) {} + + HPX &operator=(const HPX &other) { + m_instance_id = + other.m_mode == instance_mode::independent ? m_next_instance_id++ : 0; + m_mode = other.m_mode; + m_independent_instance_data = other.m_independent_instance_data; + m_buffer = m_mode == instance_mode::independent + ? m_independent_instance_data->m_buffer + : m_global_instance_data.m_buffer; + m_future = m_mode == instance_mode::independent + ? m_independent_instance_data->m_future + : m_global_instance_data.m_future; + return *this; + } +#else HPX() noexcept {} +#endif + static void print_configuration(std::ostream &, const bool /* verbose */ = false) { std::cout << "HPX backend" << std::endl; } - uint32_t impl_instance_id() const noexcept { return 0; } + uint32_t impl_instance_id() const noexcept { return m_instance_id; } +#if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) + static bool in_parallel(HPX const &instance = HPX()) noexcept { + return !instance.impl_get_future().is_ready(); + } +#else static bool in_parallel(HPX const & = HPX()) noexcept { return false; } - static void impl_static_fence(HPX const & = HPX()) +#endif + #if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) - { + static void impl_decrement_active_parallel_region_count() { + --m_active_parallel_region_count; + } + + static void impl_increment_active_parallel_region_count() { + ++m_active_parallel_region_count; + } + + void impl_fence_instance() const { if (hpx::threads::get_self_ptr() == nullptr) { - hpx::threads::run_as_hpx_thread([]() { impl_get_future().wait(); }); + hpx::threads::run_as_hpx_thread([this]() { impl_get_future().wait(); }); } else { impl_get_future().wait(); } } -#else - noexcept { + + void impl_fence_all_instances() const { + hpx::util::yield_while( + []() { return m_active_parallel_region_count.load() != 0; }); } #endif - void fence() const { impl_static_fence(); } + void fence() const { +#if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) + if (m_mode == instance_mode::global) { + impl_fence_all_instances(); + } else { + impl_fence_instance(); + } +#endif + } static bool is_asynchronous(HPX const & = HPX()) noexcept { #if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) @@ -287,53 +414,102 @@ class HPX { return hpx::get_worker_thread_num(); } - static Kokkos::Impl::thread_buffer &impl_get_buffer() noexcept { - return m_buffer; + Kokkos::Impl::thread_buffer &impl_get_buffer() const noexcept { +#if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) + return m_buffer.get(); +#else + return m_global_buffer; +#endif + } + +#if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) + hpx::shared_future<void> &impl_get_future() const noexcept { + return m_future; } +#endif #if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) - static hpx::future<void> &impl_get_future() noexcept { return m_future; } + struct KOKKOS_ATTRIBUTE_NODISCARD reset_on_exit_parallel { + HPX const &m_space; + reset_on_exit_parallel(HPX const &space) : m_space(space) {} + ~reset_on_exit_parallel() { + // See [note 1] for an explanation. m_independent_instance_data is + // marked mutable. + m_space.m_independent_instance_data.reset(); + + HPX::impl_decrement_active_parallel_region_count(); + } + }; #endif static constexpr const char *name() noexcept { return "HPX"; } }; } // namespace Experimental -namespace Profiling { +namespace Tools { namespace Experimental { template <> struct DeviceTypeTraits<Kokkos::Experimental::HPX> { - constexpr static DeviceType id = DeviceType::HPX; + static constexpr DeviceType id = DeviceType::HPX; }; } // namespace Experimental -} // namespace Profiling +} // namespace Tools namespace Impl { -template <typename Closure> -inline void dispatch_execute_task(Closure *closure) { + +class HPXSpaceInitializer : public ExecSpaceInitializerBase { + public: + HPXSpaceInitializer() = default; + ~HPXSpaceInitializer() = default; + void initialize(const InitArguments &args) final; + void finalize(const bool) final; + void fence() final; + void print_configuration(std::ostream &msg, const bool detail) final; +}; + #if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) +template <typename Closure> +inline void dispatch_execute_task(Closure *closure, + Kokkos::Experimental::HPX const &instance, + bool force_synchronous = false) { + Kokkos::Experimental::HPX::impl_increment_active_parallel_region_count(); + if (hpx::threads::get_self_ptr() == nullptr) { - hpx::threads::run_as_hpx_thread([closure]() { - hpx::future<void> &fut = Kokkos::Experimental::HPX::impl_get_future(); - Closure closure_copy = *closure; - fut = fut.then([closure_copy](hpx::future<void> &&) { + hpx::threads::run_as_hpx_thread([closure, &instance]() { + hpx::shared_future<void> &fut = instance.impl_get_future(); + Closure closure_copy = *closure; + fut = fut.then([closure_copy](hpx::shared_future<void> &&) { closure_copy.execute_task(); }); }); } else { - hpx::future<void> &fut = Kokkos::Experimental::HPX::impl_get_future(); - Closure closure_copy = *closure; - fut = fut.then( - [closure_copy](hpx::future<void> &&) { closure_copy.execute_task(); }); + hpx::shared_future<void> &fut = instance.impl_get_future(); + Closure closure_copy = *closure; + fut = fut.then([closure_copy](hpx::shared_future<void> &&) { + closure_copy.execute_task(); + }); + } + + if (force_synchronous) { + instance.fence(); } +} #else +template <typename Closure> +inline void dispatch_execute_task(Closure *closure, + Kokkos::Experimental::HPX const &, + bool = false) { +#if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) + Kokkos::Experimental::HPX::impl_increment_active_parallel_region_count(); +#endif + if (hpx::threads::get_self_ptr() == nullptr) { hpx::threads::run_as_hpx_thread([closure]() { closure->execute_task(); }); } else { closure->execute_task(); } -#endif } +#endif } // namespace Impl } // namespace Kokkos @@ -342,16 +518,16 @@ namespace Impl { template <> struct MemorySpaceAccess<Kokkos::Experimental::HPX::memory_space, Kokkos::Experimental::HPX::scratch_memory_space> { - enum { assignable = false }; - enum { accessible = true }; - enum { deepcopy = false }; + enum : bool { assignable = false }; + enum : bool { accessible = true }; + enum : bool { deepcopy = false }; }; template <> struct VerifyExecutionCanAccessMemorySpace< Kokkos::Experimental::HPX::memory_space, Kokkos::Experimental::HPX::scratch_memory_space> { - enum { value = true }; + enum : bool { value = true }; inline static void verify(void) {} inline static void verify(const void *) {} }; @@ -362,17 +538,74 @@ namespace Kokkos { namespace Experimental { template <> class UniqueToken<HPX, UniqueTokenScope::Instance> { + private: + using buffer_type = Kokkos::View<uint32_t *, Kokkos::HostSpace>; + int m_count; + buffer_type m_buffer_view; + uint32_t volatile *m_buffer; + public: using execution_space = HPX; using size_type = int; - UniqueToken(execution_space const & = execution_space()) noexcept {} - // NOTE: Currently this assumes that there is no oversubscription. - // hpx::get_num_worker_threads can't be used directly because it may yield - // it's task (problematic if called after hpx::get_worker_thread_num). - int size() const noexcept { return HPX::impl_max_hardware_threads(); } - int acquire() const noexcept { return HPX::impl_hardware_thread_id(); } - void release(int) const noexcept {} + /// \brief create object size for concurrency on the given instance + /// + /// This object should not be shared between instances + UniqueToken(execution_space const & = execution_space()) noexcept + : m_count(execution_space::impl_max_hardware_threads()), + m_buffer_view(buffer_type()), + m_buffer(nullptr) {} + + UniqueToken(size_type max_size, execution_space const & = execution_space()) + : m_count(max_size > execution_space::impl_max_hardware_threads() + ? execution_space::impl_max_hardware_threads() + : max_size), + m_buffer_view( + max_size > execution_space::impl_max_hardware_threads() + ? buffer_type() + : buffer_type("UniqueToken::m_buffer_view", + ::Kokkos::Impl::concurrent_bitset::buffer_bound( + m_count))), + m_buffer(m_buffer_view.data()) {} + + /// \brief upper bound for acquired values, i.e. 0 <= value < size() + KOKKOS_INLINE_FUNCTION + int size() const noexcept { return m_count; } + + /// \brief acquire value such that 0 <= value < size() + KOKKOS_INLINE_FUNCTION + int acquire() const noexcept { +#if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) + if (m_buffer == nullptr) { + return execution_space::impl_hardware_thread_id(); + } else { + const ::Kokkos::pair<int, int> result = + ::Kokkos::Impl::concurrent_bitset::acquire_bounded( + m_buffer, m_count, ::Kokkos::Impl::clock_tic() % m_count); + + if (result.first < 0) { + ::Kokkos::abort( + "UniqueToken<HPX> failure to acquire tokens, no tokens " + "available"); + } + return result.first; + } +#else + return 0; +#endif + } + + /// \brief release a value acquired by generate + KOKKOS_INLINE_FUNCTION + void release(int i) const noexcept { +#if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) + if (m_buffer != nullptr) { + ::Kokkos::Impl::concurrent_bitset::release(m_buffer, i); + } +#else + (void)i; +#endif + } }; template <> @@ -498,8 +731,14 @@ class TeamPolicyInternal<Kokkos::Experimental::HPX, Properties...> int m_chunk_size; public: + //! Tag this class as a kokkos execution policy + using execution_policy = TeamPolicyInternal; + using member_type = HPXTeamMember; + //! Execution space of this execution policy: + using execution_space = Kokkos::Experimental::HPX; + // NOTE: Max size is 1 for simplicity. In most cases more than 1 is not // necessary on CPU. Implement later if there is a need. template <class FunctorType> @@ -550,6 +789,14 @@ class TeamPolicyInternal<Kokkos::Experimental::HPX, Properties...> return 1; } + static int vector_length_max() { return 1; } + + inline int impl_vector_length() noexcept { return 1; } + inline bool impl_auto_team_size() noexcept { return false; } + inline bool impl_auto_vector_length() noexcept { return false; } + inline void impl_set_vector_length(int) noexcept {} + inline void impl_set_team_size(int) noexcept {} + private: inline void init(const int league_size_request, const int team_size_request) { m_league_size = league_size_request; @@ -636,6 +883,44 @@ class TeamPolicyInternal<Kokkos::Experimental::HPX, Properties...> init(league_size_request, 1); } + TeamPolicyInternal(const typename traits::execution_space &space, + int league_size_request, + const Kokkos::AUTO_t &, /* team_size_request */ + const Kokkos::AUTO_t & /* vector_length_request */) + : m_team_scratch_size{0, 0}, + m_thread_scratch_size{0, 0}, + m_chunk_size(0) { + init(league_size_request, 1); + } + + TeamPolicyInternal(const typename traits::execution_space &space, + int league_size_request, int team_size_request, + const Kokkos::AUTO_t & /* vector_length_request */ + ) + : m_team_scratch_size{0, 0}, + m_thread_scratch_size{0, 0}, + m_chunk_size(0) { + init(league_size_request, team_size_request); + } + + TeamPolicyInternal(int league_size_request, + const Kokkos::AUTO_t &, /* team_size_request */ + const Kokkos::AUTO_t & /* vector_length_request */) + : m_team_scratch_size{0, 0}, + m_thread_scratch_size{0, 0}, + m_chunk_size(0) { + init(league_size_request, 1); + } + + TeamPolicyInternal(int league_size_request, int team_size_request, + const Kokkos::AUTO_t & /* vector_length_request */ + ) + : m_team_scratch_size{0, 0}, + m_thread_scratch_size{0, 0}, + m_chunk_size(0) { + init(league_size_request, team_size_request); + } + TeamPolicyInternal(int league_size_request, int team_size_request, int /* vector_length_request */ = 1) : m_team_scratch_size{0, 0}, @@ -731,9 +1016,17 @@ class ParallelFor<FunctorType, Kokkos::RangePolicy<Traits...>, } public: - void execute() const { Kokkos::Impl::dispatch_execute_task(this); } + void execute() const { + Kokkos::Impl::dispatch_execute_task(this, m_policy.space()); + } void execute_task() const { + // See [note 1] for an explanation. +#if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) + Kokkos::Experimental::HPX::reset_on_exit_parallel reset_on_exit( + m_policy.space()); +#endif + #if KOKKOS_HPX_IMPLEMENTATION == 0 using hpx::parallel::for_loop; using hpx::parallel::execution::par; @@ -809,9 +1102,15 @@ class ParallelFor<FunctorType, Kokkos::MDRangePolicy<Traits...>, const Policy m_policy; public: - void execute() const { dispatch_execute_task(this); } + void execute() const { dispatch_execute_task(this, m_mdr_policy.space()); } inline void execute_task() const { + // See [note 1] for an explanation. +#if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) + Kokkos::Experimental::HPX::reset_on_exit_parallel reset_on_exit( + m_mdr_policy.space()); +#endif + #if KOKKOS_HPX_IMPLEMENTATION == 0 using hpx::parallel::for_loop; using hpx::parallel::execution::par; @@ -897,6 +1196,7 @@ class ParallelReduce<FunctorType, Kokkos::RangePolicy<Traits...>, ReducerType, typename Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, WorkTag, void>::type; using ValueInit = Kokkos::Impl::FunctorValueInit<ReducerTypeFwd, WorkTagFwd>; + using ValueFinal = Kokkos::Impl::FunctorFinal<ReducerTypeFwd, WorkTagFwd>; using ValueJoin = Kokkos::Impl::FunctorValueJoin<ReducerTypeFwd, WorkTagFwd>; using ValueOps = Kokkos::Impl::FunctorValueOps<ReducerTypeFwd, WorkTagFwd>; using value_type = typename Analysis::value_type; @@ -1019,9 +1319,26 @@ class ParallelReduce<FunctorType, Kokkos::RangePolicy<Traits...>, ReducerType, }; public: - void execute() const { dispatch_execute_task(this); } + void execute() const { + if (m_policy.end() <= m_policy.begin()) { + if (m_result_ptr) { + ValueInit::init(ReducerConditional::select(m_functor, m_reducer), + m_result_ptr); + ValueFinal::final(ReducerConditional::select(m_functor, m_reducer), + m_result_ptr); + } + return; + } + dispatch_execute_task(this, m_policy.space(), m_force_synchronous); + } inline void execute_task() const { + // See [note 1] for an explanation. +#if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) + Kokkos::Experimental::HPX::reset_on_exit_parallel reset_on_exit( + m_policy.space()); +#endif + const std::size_t value_size = Analysis::value_size(ReducerConditional::select(m_functor, m_reducer)); @@ -1062,7 +1379,7 @@ class ParallelReduce<FunctorType, Kokkos::RangePolicy<Traits...>, ReducerType, #elif KOKKOS_HPX_IMPLEMENTATION == 1 const int num_worker_threads = Kokkos::Experimental::HPX::concurrency(); - thread_buffer &buffer = Kokkos::Experimental::HPX::impl_get_buffer(); + thread_buffer &buffer = m_policy.space().impl_get_buffer(); buffer.resize(num_worker_threads, value_size); using hpx::apply; @@ -1118,7 +1435,7 @@ class ParallelReduce<FunctorType, Kokkos::RangePolicy<Traits...>, ReducerType, #elif KOKKOS_HPX_IMPLEMENTATION == 2 const int num_worker_threads = Kokkos::Experimental::HPX::concurrency(); - thread_buffer &buffer = Kokkos::Experimental::HPX::impl_get_buffer(); + thread_buffer &buffer = m_policy.space().impl_get_buffer(); buffer.resize(num_worker_threads, value_size); using hpx::parallel::for_loop; @@ -1217,9 +1534,10 @@ class ParallelReduce<FunctorType, Kokkos::MDRangePolicy<Traits...>, ReducerType, using WorkTagFwd = typename Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, WorkTag, void>::type; - using ValueInit = Kokkos::Impl::FunctorValueInit<ReducerTypeFwd, WorkTagFwd>; - using ValueJoin = Kokkos::Impl::FunctorValueJoin<ReducerTypeFwd, WorkTagFwd>; - using ValueOps = Kokkos::Impl::FunctorValueOps<ReducerTypeFwd, WorkTagFwd>; + using ValueInit = Kokkos::Impl::FunctorValueInit<ReducerTypeFwd, WorkTagFwd>; + using ValueFinal = Kokkos::Impl::FunctorFinal<ReducerTypeFwd, WorkTagFwd>; + using ValueJoin = Kokkos::Impl::FunctorValueJoin<ReducerTypeFwd, WorkTagFwd>; + using ValueOps = Kokkos::Impl::FunctorValueOps<ReducerTypeFwd, WorkTagFwd>; using pointer_type = typename Analysis::pointer_type; using value_type = typename Analysis::value_type; using reference_type = typename Analysis::reference_type; @@ -1236,14 +1554,22 @@ class ParallelReduce<FunctorType, Kokkos::MDRangePolicy<Traits...>, ReducerType, bool m_force_synchronous; public: - void execute() const { dispatch_execute_task(this); } + void execute() const { + dispatch_execute_task(this, m_mdr_policy.space(), m_force_synchronous); + } inline void execute_task() const { + // See [note 1] for an explanation. +#if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) + Kokkos::Experimental::HPX::reset_on_exit_parallel reset_on_exit( + m_mdr_policy.space()); +#endif + const int num_worker_threads = Kokkos::Experimental::HPX::concurrency(); const std::size_t value_size = Analysis::value_size(ReducerConditional::select(m_functor, m_reducer)); - thread_buffer &buffer = Kokkos::Experimental::HPX::impl_get_buffer(); + thread_buffer &buffer = m_mdr_policy.space().impl_get_buffer(); buffer.resize(num_worker_threads, value_size); #if KOKKOS_HPX_IMPLEMENTATION == 0 @@ -1440,14 +1766,20 @@ class ParallelScan<FunctorType, Kokkos::RangePolicy<Traits...>, } public: - void execute() const { dispatch_execute_task(this); } + void execute() const { dispatch_execute_task(this, m_policy.space()); } inline void execute_task() const { + // See [note 1] for an explanation. +#if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) + Kokkos::Experimental::HPX::reset_on_exit_parallel reset_on_exit( + m_policy.space()); +#endif + const int num_worker_threads = Kokkos::Experimental::HPX::concurrency(); const int value_count = Analysis::value_count(m_functor); const std::size_t value_size = Analysis::value_size(m_functor); - thread_buffer &buffer = Kokkos::Experimental::HPX::impl_get_buffer(); + thread_buffer &buffer = m_policy.space().impl_get_buffer(); buffer.resize(num_worker_threads, 2 * value_size); using hpx::apply; @@ -1554,14 +1886,20 @@ class ParallelScanWithTotal<FunctorType, Kokkos::RangePolicy<Traits...>, } public: - void execute() const { dispatch_execute_task(this); } + void execute() const { dispatch_execute_task(this, m_policy.space()); } inline void execute_task() const { + // See [note 1] for an explanation. +#if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) + Kokkos::Experimental::HPX::reset_on_exit_parallel reset_on_exit( + m_policy.space()); +#endif + const int num_worker_threads = Kokkos::Experimental::HPX::concurrency(); const int value_count = Analysis::value_count(m_functor); const std::size_t value_size = Analysis::value_size(m_functor); - thread_buffer &buffer = Kokkos::Experimental::HPX::impl_get_buffer(); + thread_buffer &buffer = m_policy.space().impl_get_buffer(); buffer.resize(num_worker_threads, 2 * value_size); using hpx::apply; @@ -1697,12 +2035,18 @@ class ParallelFor<FunctorType, Kokkos::TeamPolicy<Properties...>, } public: - void execute() const { dispatch_execute_task(this); } + void execute() const { dispatch_execute_task(this, m_policy.space()); } inline void execute_task() const { + // See [note 1] for an explanation. +#if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) + Kokkos::Experimental::HPX::reset_on_exit_parallel reset_on_exit( + m_policy.space()); +#endif + const int num_worker_threads = Kokkos::Experimental::HPX::concurrency(); - thread_buffer &buffer = Kokkos::Experimental::HPX::impl_get_buffer(); + thread_buffer &buffer = m_policy.space().impl_get_buffer(); buffer.resize(num_worker_threads, m_shared); #if KOKKOS_HPX_IMPLEMENTATION == 0 @@ -1792,9 +2136,10 @@ class ParallelReduce<FunctorType, Kokkos::TeamPolicy<Properties...>, using WorkTagFwd = typename Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, WorkTag, void>::type; - using ValueInit = Kokkos::Impl::FunctorValueInit<ReducerTypeFwd, WorkTagFwd>; - using ValueJoin = Kokkos::Impl::FunctorValueJoin<ReducerTypeFwd, WorkTagFwd>; - using ValueOps = Kokkos::Impl::FunctorValueOps<ReducerTypeFwd, WorkTagFwd>; + using ValueInit = Kokkos::Impl::FunctorValueInit<ReducerTypeFwd, WorkTagFwd>; + using ValueFinal = Kokkos::Impl::FunctorFinal<ReducerTypeFwd, WorkTagFwd>; + using ValueJoin = Kokkos::Impl::FunctorValueJoin<ReducerTypeFwd, WorkTagFwd>; + using ValueOps = Kokkos::Impl::FunctorValueOps<ReducerTypeFwd, WorkTagFwd>; using pointer_type = typename Analysis::pointer_type; using reference_type = typename Analysis::reference_type; using value_type = typename Analysis::value_type; @@ -1864,14 +2209,31 @@ class ParallelReduce<FunctorType, Kokkos::TeamPolicy<Properties...>, } public: - void execute() const { dispatch_execute_task(this); } + void execute() const { + if (m_policy.league_size() * m_policy.team_size() == 0) { + if (m_result_ptr) { + ValueInit::init(ReducerConditional::select(m_functor, m_reducer), + m_result_ptr); + ValueFinal::final(ReducerConditional::select(m_functor, m_reducer), + m_result_ptr); + } + return; + } + dispatch_execute_task(this, m_policy.space()); + } inline void execute_task() const { + // See [note 1] for an explanation. +#if defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH) + Kokkos::Experimental::HPX::reset_on_exit_parallel reset_on_exit( + m_policy.space()); +#endif + const int num_worker_threads = Kokkos::Experimental::HPX::concurrency(); const std::size_t value_size = Analysis::value_size(ReducerConditional::select(m_functor, m_reducer)); - thread_buffer &buffer = Kokkos::Experimental::HPX::impl_get_buffer(); + thread_buffer &buffer = m_policy.space().impl_get_buffer(); buffer.resize(num_worker_threads, value_size + m_shared); #if KOKKOS_HPX_IMPLEMENTATION == 0 @@ -2101,7 +2463,7 @@ Impl::VectorSingleStruct<Impl::HPXTeamMember> PerThread( * i=0..N-1. * * The range i=0..N-1 is mapped to all threads of the the calling thread team. - * This functionality requires C++11 support.*/ + */ template <typename iType, class Lambda> KOKKOS_INLINE_FUNCTION void parallel_for( const Impl::TeamThreadRangeBoundariesStruct<iType, Impl::HPXTeamMember> @@ -2116,8 +2478,8 @@ KOKKOS_INLINE_FUNCTION void parallel_for( * ValueType & val) for each i=0..N-1. * * The range i=0..N-1 is mapped to all threads of the the calling thread team - * and a summation of val is performed and put into result. This functionality - * requires C++11 support.*/ + * and a summation of val is performed and put into result. + */ template <typename iType, class Lambda, typename ValueType> KOKKOS_INLINE_FUNCTION void parallel_reduce( const Impl::TeamThreadRangeBoundariesStruct<iType, Impl::HPXTeamMember> @@ -2134,7 +2496,7 @@ KOKKOS_INLINE_FUNCTION void parallel_reduce( * i=0..N-1. * * The range i=0..N-1 is mapped to all vector lanes of the the calling thread. - * This functionality requires C++11 support.*/ + */ template <typename iType, class Lambda> KOKKOS_INLINE_FUNCTION void parallel_for( const Impl::ThreadVectorRangeBoundariesStruct<iType, Impl::HPXTeamMember> @@ -2153,8 +2515,8 @@ KOKKOS_INLINE_FUNCTION void parallel_for( * ValueType & val) for each i=0..N-1. * * The range i=0..N-1 is mapped to all vector lanes of the the calling thread - * and a summation of val is performed and put into result. This functionality - * requires C++11 support.*/ + * and a summation of val is performed and put into result. + */ template <typename iType, class Lambda, typename ValueType> KOKKOS_INLINE_FUNCTION void parallel_reduce( const Impl::ThreadVectorRangeBoundariesStruct<iType, Impl::HPXTeamMember> @@ -2233,7 +2595,7 @@ KOKKOS_INLINE_FUNCTION void parallel_scan( * needs to be added to val no matter whether final==true or not. In a serial * execution (i.e. team_size==1) the operator is only called once with * final==true. Scan_val will be set to the final sum value over all vector - * lanes. This functionality requires C++11 support.*/ + */ template <typename iType, class FunctorType> KOKKOS_INLINE_FUNCTION void parallel_scan( const Impl::ThreadVectorRangeBoundariesStruct<iType, Impl::HPXTeamMember> diff --git a/packages/kokkos/core/src/Kokkos_Half.hpp b/packages/kokkos/core/src/Kokkos_Half.hpp new file mode 100644 index 000000000..e4b351381 --- /dev/null +++ b/packages/kokkos/core/src/Kokkos_Half.hpp @@ -0,0 +1,119 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_HALF_HPP_ +#define KOKKOS_HALF_HPP_ + +#include <type_traits> +#include <Kokkos_Macros.hpp> + +// Include special backend specific versions here +#include <Cuda/Kokkos_Cuda_Half.hpp> + +// Potentially include special compiler specific versions here +// e.g. for Intel + +// If none of the above actually did anything and defined a half precision type +// define a fallback implementation here using float +#ifndef KOKKOS_IMPL_HALF_TYPE_DEFINED +#define KOKKOS_IMPL_HALF_TYPE_DEFINED +#define KOKKOS_HALF_T_IS_FLOAT true +namespace Kokkos { +namespace Impl { +struct half_impl_t { + using type = float; +}; +} // namespace Impl +namespace Experimental { + +using half_t = Kokkos::Impl::half_impl_t::type; + +// cast_to_half +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(float val) { return half_t(val); } +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(bool val) { return half_t(val); } +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(double val) { return half_t(val); } +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(short val) { return half_t(val); } +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(unsigned short val) { return half_t(val); } +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(int val) { return half_t(val); } +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(unsigned int val) { return half_t(val); } +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(long val) { return half_t(val); } +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(unsigned long val) { return half_t(val); } +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(long long val) { return half_t(val); } +KOKKOS_INLINE_FUNCTION +half_t cast_to_half(unsigned long long val) { return half_t(val); } + +// cast_from_half +// Using an explicit list here too, since the other ones are explicit and for +// example don't include char +template <class T> +KOKKOS_INLINE_FUNCTION std::enable_if_t< + std::is_same<T, float>::value || std::is_same<T, bool>::value || + std::is_same<T, double>::value || std::is_same<T, short>::value || + std::is_same<T, unsigned short>::value || std::is_same<T, int>::value || + std::is_same<T, unsigned int>::value || std::is_same<T, long>::value || + std::is_same<T, unsigned long>::value || + std::is_same<T, long long>::value || + std::is_same<T, unsigned long long>::value, + T> +cast_from_half(half_t val) { + return T(val); +} + +} // namespace Experimental +} // namespace Kokkos + +#else +#define KOKKOS_HALF_T_IS_FLOAT false +#endif // KOKKOS_IMPL_HALF_TYPE_DEFINED +#endif // KOKKOS_HALF_HPP_ diff --git a/packages/kokkos/core/src/Kokkos_HostSpace.hpp b/packages/kokkos/core/src/Kokkos_HostSpace.hpp index 5bc50c7ff..1d34eaf00 100644 --- a/packages/kokkos/core/src/Kokkos_HostSpace.hpp +++ b/packages/kokkos/core/src/Kokkos_HostSpace.hpp @@ -57,6 +57,7 @@ #include <impl/Kokkos_Traits.hpp> #include <impl/Kokkos_Error.hpp> #include <impl/Kokkos_SharedAlloc.hpp> +#include <impl/Kokkos_Tools.hpp> #include "impl/Kokkos_HostSpace_deepcopy.hpp" @@ -94,7 +95,6 @@ void unlock_address_host_space(void* ptr); } // namespace Kokkos namespace Kokkos { - /// \class HostSpace /// \brief Memory management for host memory. /// @@ -103,8 +103,8 @@ namespace Kokkos { class HostSpace { public: //! Tag this class as a kokkos memory space - typedef HostSpace memory_space; - typedef size_t size_type; + using memory_space = HostSpace; + using size_type = size_t; /// \typedef execution_space /// \brief Default execution space for this memory space. @@ -113,26 +113,26 @@ class HostSpace { /// useful for things like initializing a View (which happens in /// parallel using the View's default execution space). #if defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_OPENMP) - typedef Kokkos::OpenMP execution_space; + using execution_space = Kokkos::OpenMP; #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_THREADS) - typedef Kokkos::Threads execution_space; + using execution_space = Kokkos::Threads; #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_HPX) - typedef Kokkos::Experimental::HPX execution_space; + using execution_space = Kokkos::Experimental::HPX; #elif defined(KOKKOS_ENABLE_OPENMP) - typedef Kokkos::OpenMP execution_space; + using execution_space = Kokkos::OpenMP; #elif defined(KOKKOS_ENABLE_THREADS) - typedef Kokkos::Threads execution_space; + using execution_space = Kokkos::Threads; #elif defined(KOKKOS_ENABLE_HPX) - typedef Kokkos::Experimental::HPX execution_space; + using execution_space = Kokkos::Experimental::HPX; #elif defined(KOKKOS_ENABLE_SERIAL) - typedef Kokkos::Serial execution_space; + using execution_space = Kokkos::Serial; #else #error \ "At least one of the following host execution spaces must be defined: Kokkos::OpenMP, Kokkos::Threads, or Kokkos::Serial. You might be seeing this message if you disabled the Kokkos::Serial device explicitly using the Kokkos_ENABLE_Serial:BOOL=OFF CMake option, but did not enable any of the other host execution space devices." #endif //! This memory space preferred device_type - typedef Kokkos::Device<execution_space, memory_space> device_type; + using device_type = Kokkos::Device<execution_space, memory_space>; /**\brief Default memory space instance */ HostSpace(); @@ -156,10 +156,30 @@ class HostSpace { /**\brief Allocate untracked memory in the space */ void* allocate(const size_t arg_alloc_size) const; + void* allocate(const char* arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size = 0) const; /**\brief Deallocate untracked memory in the space */ void deallocate(void* const arg_alloc_ptr, const size_t arg_alloc_size) const; + void deallocate(const char* arg_label, void* const arg_alloc_ptr, + const size_t arg_alloc_size, + const size_t arg_logical_size = 0) const; + + private: + template <class, class, class, class> + friend class Kokkos::Experimental::LogicalMemorySpace; + + void* impl_allocate(const char* arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size = 0, + const Kokkos::Tools::SpaceHandle = + Kokkos::Tools::make_space_handle(name())) const; + void impl_deallocate(const char* arg_label, void* const arg_alloc_ptr, + const size_t arg_alloc_size, + const size_t arg_logical_size = 0, + const Kokkos::Tools::SpaceHandle = + Kokkos::Tools::make_space_handle(name())) const; + public: /**\brief Return Name of the MemorySpace */ static constexpr const char* name() { return m_name; } @@ -201,16 +221,13 @@ struct HostMirror { }; public: - typedef typename std::conditional< - keep_exe && keep_mem /* Can keep whole space */ - , - S, + using Space = typename std::conditional< + keep_exe && keep_mem, S, typename std::conditional< - keep_mem /* Can keep memory space, use default Host execution space */ - , + keep_mem, Kokkos::Device<Kokkos::HostSpace::execution_space, typename S::memory_space>, - Kokkos::HostSpace>::type>::type Space; + Kokkos::HostSpace>::type>::type; }; } // namespace Impl @@ -229,14 +246,14 @@ class SharedAllocationRecord<Kokkos::HostSpace, void> private: friend Kokkos::HostSpace; - typedef SharedAllocationRecord<void, void> RecordBase; + using RecordBase = SharedAllocationRecord<void, void>; SharedAllocationRecord(const SharedAllocationRecord&) = delete; SharedAllocationRecord& operator=(const SharedAllocationRecord&) = delete; static void deallocate(RecordBase*); -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG /**\brief Root record for tracked allocations from this HostSpace instance */ static RecordBase s_root_record; #endif diff --git a/packages/kokkos/core/src/Kokkos_Layout.hpp b/packages/kokkos/core/src/Kokkos_Layout.hpp index d34bdb915..778b4f081 100644 --- a/packages/kokkos/core/src/Kokkos_Layout.hpp +++ b/packages/kokkos/core/src/Kokkos_Layout.hpp @@ -73,11 +73,11 @@ enum { ARRAY_LAYOUT_MAX_RANK = 8 }; /// major." struct LayoutLeft { //! Tag this class as a kokkos array layout - typedef LayoutLeft array_layout; + using array_layout = LayoutLeft; size_t dimension[ARRAY_LAYOUT_MAX_RANK]; - enum { is_extent_constructible = true }; + enum : bool { is_extent_constructible = true }; LayoutLeft(LayoutLeft const&) = default; LayoutLeft(LayoutLeft&&) = default; @@ -107,11 +107,11 @@ struct LayoutLeft { /// two-dimensional array, "layout right" is also called "row major." struct LayoutRight { //! Tag this class as a kokkos array layout - typedef LayoutRight array_layout; + using array_layout = LayoutRight; size_t dimension[ARRAY_LAYOUT_MAX_RANK]; - enum { is_extent_constructible = true }; + enum : bool { is_extent_constructible = true }; LayoutRight(LayoutRight const&) = default; LayoutRight(LayoutRight&&) = default; @@ -131,12 +131,12 @@ struct LayoutRight { /// multi-index mapping into contiguous memory. struct LayoutStride { //! Tag this class as a kokkos array layout - typedef LayoutStride array_layout; + using array_layout = LayoutStride; size_t dimension[ARRAY_LAYOUT_MAX_RANK]; size_t stride[ARRAY_LAYOUT_MAX_RANK]; - enum { is_extent_constructible = false }; + enum : bool { is_extent_constructible = false }; LayoutStride(LayoutStride const&) = default; LayoutStride(LayoutStride&&) = default; @@ -186,58 +186,6 @@ struct LayoutStride { S4, S5, S6, S7} {} }; -// ========================================================================== -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - -//---------------------------------------------------------------------------- -/// \struct LayoutTileLeft -/// \brief Memory layout tag indicating left-to-right (Fortran scheme) -/// striding of multi-indices by tiles. -/// -/// This is an example of a \c MemoryLayout template parameter of -/// View. The memory layout describes how View maps from a -/// multi-index (i0, i1, ..., ik) to a memory location. -/// -/// "Tiled layout" indicates a mapping to contiguously stored -/// <tt>ArgN0</tt> by <tt>ArgN1</tt> tiles for the rightmost two -/// dimensions. Indices are LayoutLeft within each tile, and the -/// tiles themselves are arranged using LayoutLeft. Note that the -/// dimensions <tt>ArgN0</tt> and <tt>ArgN1</tt> of the tiles must be -/// compile-time constants. This speeds up index calculations. If -/// both tile dimensions are powers of two, Kokkos can optimize -/// further. -template <unsigned ArgN0, unsigned ArgN1, - bool IsPowerOfTwo = (Impl::is_integral_power_of_two(ArgN0) && - Impl::is_integral_power_of_two(ArgN1))> -struct LayoutTileLeft { - static_assert(Impl::is_integral_power_of_two(ArgN0) && - Impl::is_integral_power_of_two(ArgN1), - "LayoutTileLeft must be given power-of-two tile dimensions"); - - //! Tag this class as a kokkos array layout - typedef LayoutTileLeft<ArgN0, ArgN1, IsPowerOfTwo> array_layout; - - enum { N0 = ArgN0 }; - enum { N1 = ArgN1 }; - - size_t dimension[ARRAY_LAYOUT_MAX_RANK]; - - enum { is_extent_constructible = true }; - - LayoutTileLeft(LayoutTileLeft const&) = default; - LayoutTileLeft(LayoutTileLeft&&) = default; - LayoutTileLeft& operator=(LayoutTileLeft const&) = default; - LayoutTileLeft& operator=(LayoutTileLeft&&) = default; - - KOKKOS_INLINE_FUNCTION - explicit constexpr LayoutTileLeft(size_t argN0 = 0, size_t argN1 = 0, - size_t argN2 = 0, size_t argN3 = 0, - size_t argN4 = 0, size_t argN5 = 0, - size_t argN6 = 0, size_t argN7 = 0) - : dimension{argN0, argN1, argN2, argN3, argN4, argN5, argN6, argN7} {} -}; - -#endif // KOKKOS_ENABLE_DEPRECATED_CODE // =================================================================================== ////////////////////////////////////////////////////////////////////////////////////// @@ -254,7 +202,6 @@ enum class Iterate { template <typename LayoutTiledCheck, class Enable = void> struct is_layouttiled : std::false_type {}; -#ifndef KOKKOS_ENABLE_DEPRECATED_CODE template <typename LayoutTiledCheck> struct is_layouttiled< LayoutTiledCheck, @@ -294,9 +241,8 @@ struct LayoutTiled { , "LayoutTiled must be given power-of-two tile dimensions" ); #endif - typedef LayoutTiled<OuterP, InnerP, ArgN0, ArgN1, ArgN2, ArgN3, ArgN4, ArgN5, - ArgN6, ArgN7, IsPowerOfTwo> - array_layout; + using array_layout = LayoutTiled<OuterP, InnerP, ArgN0, ArgN1, ArgN2, ArgN3, + ArgN4, ArgN5, ArgN6, ArgN7, IsPowerOfTwo>; static constexpr Iterate outer_pattern = OuterP; static constexpr Iterate inner_pattern = InnerP; @@ -311,7 +257,7 @@ struct LayoutTiled { size_t dimension[ARRAY_LAYOUT_MAX_RANK]; - enum { is_extent_constructible = true }; + enum : bool { is_extent_constructible = true }; LayoutTiled(LayoutTiled const&) = default; LayoutTiled(LayoutTiled&&) = default; @@ -327,7 +273,6 @@ struct LayoutTiled { }; } // namespace Experimental -#endif // For use with view_copy template <typename... Layout> @@ -358,7 +303,6 @@ struct layout_iterate_type_selector<Kokkos::LayoutStride> { Kokkos::Iterate::Default; }; -#ifndef KOKKOS_ENABLE_DEPRECATED_CODE template <unsigned ArgN0, unsigned ArgN1, unsigned ArgN2, unsigned ArgN3, unsigned ArgN4, unsigned ArgN5, unsigned ArgN6, unsigned ArgN7> struct layout_iterate_type_selector<Kokkos::Experimental::LayoutTiled< @@ -394,7 +338,6 @@ struct layout_iterate_type_selector<Kokkos::Experimental::LayoutTiled< static const Kokkos::Iterate outer_iteration_pattern = Kokkos::Iterate::Right; static const Kokkos::Iterate inner_iteration_pattern = Kokkos::Iterate::Right; }; -#endif } // namespace Kokkos diff --git a/packages/kokkos/core/src/Kokkos_LogicalSpaces.hpp b/packages/kokkos/core/src/Kokkos_LogicalSpaces.hpp new file mode 100644 index 000000000..979e54da4 --- /dev/null +++ b/packages/kokkos/core/src/Kokkos_LogicalSpaces.hpp @@ -0,0 +1,428 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_LOGICALSPACES_HPP +#define KOKKOS_LOGICALSPACES_HPP + +#include <Kokkos_Macros.hpp> +#include <Kokkos_Core_fwd.hpp> +#include <Kokkos_ScratchSpace.hpp> +#include <impl/Kokkos_MemorySpace.hpp> +#include <impl/Kokkos_Error.hpp> +#include <impl/Kokkos_SharedAlloc.hpp> +#include <impl/Kokkos_Profiling.hpp> +#include <cstring> +namespace Kokkos { +namespace Experimental { +struct DefaultMemorySpaceNamer { + static constexpr const char* get_name() { + return "DefaultLogicalMemorySpaceName"; + } +}; + +struct LogicalSpaceSharesAccess { + struct shared_access {}; + struct no_shared_access {}; +}; + +/// \class LogicalMemorySpace +/// \brief +/// +/// LogicalMemorySpace is a space that is identical to another space, +/// but differentiable by name and template argument +template <class BaseSpace, class DefaultBaseExecutionSpace = void, + class Namer = DefaultMemorySpaceNamer, + class SharesAccessWithBase = LogicalSpaceSharesAccess::shared_access> +class LogicalMemorySpace { +#ifdef KOKKOS_ENABLE_OPENMPTARGET + // [DZP] For some reason I don't yet know, using LogicalMemorySpaces + // inside an OpenMPTarget build causes errors in the + // SharedAllocationRecords of other types. This is my way of erroring + // a build if we instantiate a LogicalMemSpace in an OMPTarget build + static_assert(!std::is_same<BaseSpace, BaseSpace>::value, + "Can't use LogicalMemorySpaces in an OpenMPTarget build, we're " + "debugging memory issues"); +#endif + public: + //! Tag this class as a kokkos memory space + using memory_space = LogicalMemorySpace<BaseSpace, DefaultBaseExecutionSpace, + Namer, SharesAccessWithBase>; + using size_type = typename BaseSpace::size_type; + + /// \typedef execution_space + /// \brief Default execution space for this memory space. + /// + /// Every memory space has a default execution space. This is + /// useful for things like initializing a View (which happens in + /// parallel using the View's default execution space). + + using execution_space = + typename std::conditional<std::is_void<DefaultBaseExecutionSpace>::value, + typename BaseSpace::execution_space, + DefaultBaseExecutionSpace>::type; + + using device_type = Kokkos::Device<execution_space, memory_space>; + + LogicalMemorySpace() = default; + + template <typename... Args> + LogicalMemorySpace(Args&&... args) : underlying_space((Args &&) args...) {} + + /**\brief Allocate untracked memory in the space */ + void* allocate(const size_t arg_alloc_size) const { + return allocate("[unlabeled]", arg_alloc_size); + } + void* allocate(const char* arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size = 0) const { + return impl_allocate(arg_label, arg_alloc_size, arg_logical_size); + } + + /**\brief Deallocate untracked memory in the space */ + void deallocate(void* const arg_alloc_ptr, + const size_t arg_alloc_size) const { + deallocate("[unlabeled]", arg_alloc_ptr, arg_alloc_size); + } + void deallocate(const char* arg_label, void* const arg_alloc_ptr, + const size_t arg_alloc_size, + const size_t arg_logical_size = 0) const { + impl_deallocate(arg_label, arg_alloc_ptr, arg_alloc_size, arg_logical_size); + } + + /**\brief Return Name of the MemorySpace */ + constexpr static const char* name() { return Namer::get_name(); } + + private: + BaseSpace underlying_space; + template <class, class, class, class> + friend class LogicalMemorySpace; + friend class Kokkos::Impl::SharedAllocationRecord<memory_space, void>; + + void* impl_allocate(const char* arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size = 0, + Kokkos::Tools::SpaceHandle arg_handle = + Kokkos::Tools::make_space_handle(name())) const { + return underlying_space.impl_allocate(arg_label, arg_alloc_size, + arg_logical_size, arg_handle); + } + void impl_deallocate(const char* arg_label, void* const arg_alloc_ptr, + const size_t arg_alloc_size, + const size_t arg_logical_size = 0, + const Kokkos::Tools::SpaceHandle arg_handle = + Kokkos::Tools::make_space_handle(name())) const { + underlying_space.impl_deallocate(arg_label, arg_alloc_ptr, arg_alloc_size, + arg_logical_size, arg_handle); + } +}; +} // namespace Experimental +} // namespace Kokkos + +//---------------------------------------------------------------------------- + +namespace Kokkos { + +namespace Impl { + +template <typename BaseSpace, typename DefaultBaseExecutionSpace, class Namer, + typename OtherSpace> +struct MemorySpaceAccess< + Kokkos::Experimental::LogicalMemorySpace< + BaseSpace, DefaultBaseExecutionSpace, Namer, + Kokkos::Experimental::LogicalSpaceSharesAccess::shared_access>, + OtherSpace> { + enum { assignable = MemorySpaceAccess<BaseSpace, OtherSpace>::assignable }; + enum { accessible = MemorySpaceAccess<BaseSpace, OtherSpace>::accessible }; + enum { deepcopy = MemorySpaceAccess<BaseSpace, OtherSpace>::deepcopy }; +}; + +template <typename BaseSpace, typename DefaultBaseExecutionSpace, class Namer, + typename OtherSpace> +struct MemorySpaceAccess< + OtherSpace, + Kokkos::Experimental::LogicalMemorySpace< + BaseSpace, DefaultBaseExecutionSpace, Namer, + Kokkos::Experimental::LogicalSpaceSharesAccess::shared_access>> { + enum { assignable = MemorySpaceAccess<OtherSpace, BaseSpace>::assignable }; + enum { accessible = MemorySpaceAccess<OtherSpace, BaseSpace>::accessible }; + enum { deepcopy = MemorySpaceAccess<OtherSpace, BaseSpace>::deepcopy }; +}; + +template <typename BaseSpace, typename DefaultBaseExecutionSpace, class Namer> +struct MemorySpaceAccess< + Kokkos::Experimental::LogicalMemorySpace< + BaseSpace, DefaultBaseExecutionSpace, Namer, + Kokkos::Experimental::LogicalSpaceSharesAccess::shared_access>, + Kokkos::Experimental::LogicalMemorySpace< + BaseSpace, DefaultBaseExecutionSpace, Namer, + Kokkos::Experimental::LogicalSpaceSharesAccess::shared_access>> { + enum { assignable = true }; + enum { accessible = true }; + enum { deepcopy = true }; +}; + +} // namespace Impl + +} // namespace Kokkos + +//---------------------------------------------------------------------------- + +namespace Kokkos { + +namespace Impl { +template <class BaseSpace, class DefaultBaseExecutionSpace, class Namer, + class SharesAccessSemanticsWithBase> +class SharedAllocationRecord<Kokkos::Experimental::LogicalMemorySpace< + BaseSpace, DefaultBaseExecutionSpace, Namer, + SharesAccessSemanticsWithBase>, + void> : public SharedAllocationRecord<void, void> { + private: + using SpaceType = + Kokkos::Experimental::LogicalMemorySpace<BaseSpace, + DefaultBaseExecutionSpace, Namer, + SharesAccessSemanticsWithBase>; + using RecordBase = SharedAllocationRecord<void, void>; + + SharedAllocationRecord(const SharedAllocationRecord&) = delete; + SharedAllocationRecord& operator=(const SharedAllocationRecord&) = delete; + + static void deallocate(RecordBase* arg_rec) { + delete static_cast<SharedAllocationRecord*>(arg_rec); + } + +#ifdef KOKKOS_ENABLE_DEBUG + /**\brief Root record for tracked allocations from this + * LogicalMemorySpace instance */ + static RecordBase s_root_record; +#endif + + const SpaceType m_space; + + protected: + ~SharedAllocationRecord() { + m_space.deallocate(RecordBase::m_alloc_ptr->m_label, + SharedAllocationRecord<void, void>::m_alloc_ptr, + SharedAllocationRecord<void, void>::m_alloc_size, + (SharedAllocationRecord<void, void>::m_alloc_size - + sizeof(SharedAllocationHeader))); + } + SharedAllocationRecord() = default; + + SharedAllocationRecord( + const SpaceType& arg_space, const std::string& arg_label, + const size_t arg_alloc_size, + const RecordBase::function_type arg_dealloc = &deallocate) + : SharedAllocationRecord<void, void>( +#ifdef KOKKOS_ENABLE_DEBUG + &SharedAllocationRecord<SpaceType, void>::s_root_record, +#endif + Impl::checked_allocation_with_header(arg_space, arg_label, + arg_alloc_size), + sizeof(SharedAllocationHeader) + arg_alloc_size, arg_dealloc), + m_space(arg_space) { + // Fill in the Header information + RecordBase::m_alloc_ptr->m_record = + static_cast<SharedAllocationRecord<void, void>*>(this); + + strncpy(RecordBase::m_alloc_ptr->m_label, arg_label.c_str(), + SharedAllocationHeader::maximum_label_length); + // Set last element zero, in case c_str is too long + RecordBase::m_alloc_ptr + ->m_label[SharedAllocationHeader::maximum_label_length - 1] = (char)0; + } + + public: + inline std::string get_label() const { + return std::string(RecordBase::head()->m_label); + } + KOKKOS_INLINE_FUNCTION static SharedAllocationRecord* allocate( + const SpaceType& arg_space, const std::string& arg_label, + const size_t arg_alloc_size) { +#if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) + return new SharedAllocationRecord(arg_space, arg_label, arg_alloc_size); +#else + (void)arg_space; + (void)arg_label; + (void)arg_alloc_size; + return (SharedAllocationRecord*)nullptr; +#endif + } + + /**\brief Allocate tracked memory in the space */ + static void* allocate_tracked(const SpaceType& arg_space, + const std::string& arg_label, + const size_t arg_alloc_size) { + if (!arg_alloc_size) return (void*)nullptr; + + SharedAllocationRecord* const r = + allocate(arg_space, arg_label, arg_alloc_size); + + RecordBase::increment(r); + + return r->data(); + } + + /**\brief Reallocate tracked memory in the space */ + static void* reallocate_tracked(void* const arg_alloc_ptr, + const size_t arg_alloc_size) { + SharedAllocationRecord* const r_old = get_record(arg_alloc_ptr); + SharedAllocationRecord* const r_new = + allocate(r_old->m_space, r_old->get_label(), arg_alloc_size); + + Kokkos::Impl::DeepCopy<SpaceType, SpaceType>( + r_new->data(), r_old->data(), std::min(r_old->size(), r_new->size())); + + RecordBase::increment(r_new); + RecordBase::decrement(r_old); + + return r_new->data(); + } + /**\brief Deallocate tracked memory in the space */ + static void deallocate_tracked(void* const arg_alloc_ptr) { + if (arg_alloc_ptr != nullptr) { + SharedAllocationRecord* const r = get_record(arg_alloc_ptr); + + RecordBase::decrement(r); + } + } + + static SharedAllocationRecord* get_record(void* alloc_ptr) { + using Header = SharedAllocationHeader; + using RecordHost = SharedAllocationRecord<SpaceType, void>; + + SharedAllocationHeader const* const head = + alloc_ptr ? Header::get_header(alloc_ptr) + : (SharedAllocationHeader*)nullptr; + RecordHost* const record = + head ? static_cast<RecordHost*>(head->m_record) : (RecordHost*)nullptr; + + if (!alloc_ptr || record->m_alloc_ptr != head) { + Kokkos::Impl::throw_runtime_exception(std::string( + "Kokkos::Impl::SharedAllocationRecord< LogicalMemorySpace<> , " + "void >::get_record ERROR")); + } + + return record; + } +#ifdef KOKKOS_ENABLE_DEBUG + static void print_records(std::ostream& s, const SpaceType&, + bool detail = false) { + SharedAllocationRecord<void, void>::print_host_accessible_records( + s, "HostSpace", &s_root_record, detail); + } +#else + static void print_records(std::ostream&, const SpaceType&, + bool detail = false) { + (void)detail; + throw_runtime_exception( + "SharedAllocationRecord<HostSpace>::print_records only works " + "with KOKKOS_ENABLE_DEBUG enabled"); + } +#endif +}; +#ifdef KOKKOS_ENABLE_DEBUG +/**\brief Root record for tracked allocations from this LogicalSpace + * instance */ +template <class BaseSpace, class DefaultBaseExecutionSpace, class Namer, + class SharesAccessSemanticsWithBase> +SharedAllocationRecord<void, void> + SharedAllocationRecord<Kokkos::Experimental::LogicalMemorySpace< + BaseSpace, DefaultBaseExecutionSpace, Namer, + SharesAccessSemanticsWithBase>, + void>::s_root_record; +#endif + +} // namespace Impl + +} // namespace Kokkos + +//---------------------------------------------------------------------------- + +namespace Kokkos { + +namespace Impl { + +template <class Namer, class BaseSpace, class DefaultBaseExecutionSpace, + class SharesAccess, class ExecutionSpace> +struct DeepCopy<Kokkos::Experimental::LogicalMemorySpace< + BaseSpace, DefaultBaseExecutionSpace, Namer, SharesAccess>, + Kokkos::Experimental::LogicalMemorySpace< + BaseSpace, DefaultBaseExecutionSpace, Namer, SharesAccess>, + ExecutionSpace> { + DeepCopy(void* dst, void* src, size_t n) { + DeepCopy<BaseSpace, BaseSpace, ExecutionSpace>(dst, src, n); + } + DeepCopy(const ExecutionSpace& exec, void* dst, void* src, size_t n) { + DeepCopy<BaseSpace, BaseSpace, ExecutionSpace>(exec, dst, src, n); + } +}; + +template <class Namer, class BaseSpace, class DefaultBaseExecutionSpace, + class SharesAccess, class ExecutionSpace, class SourceSpace> +struct DeepCopy<SourceSpace, + Kokkos::Experimental::LogicalMemorySpace< + BaseSpace, DefaultBaseExecutionSpace, Namer, SharesAccess>, + ExecutionSpace> { + DeepCopy(void* dst, void* src, size_t n) { + DeepCopy<SourceSpace, BaseSpace, ExecutionSpace>(dst, src, n); + } + DeepCopy(const ExecutionSpace& exec, void* dst, void* src, size_t n) { + DeepCopy<SourceSpace, BaseSpace, ExecutionSpace>(exec, dst, src, n); + } +}; + +template <class Namer, class BaseSpace, class DefaultBaseExecutionSpace, + class SharesAccess, class ExecutionSpace, class DestinationSpace> +struct DeepCopy<Kokkos::Experimental::LogicalMemorySpace< + BaseSpace, DefaultBaseExecutionSpace, Namer, SharesAccess>, + DestinationSpace, ExecutionSpace> { + DeepCopy(void* dst, void* src, size_t n) { + DeepCopy<BaseSpace, DestinationSpace, ExecutionSpace>(dst, src, n); + } + DeepCopy(const ExecutionSpace& exec, void* dst, void* src, size_t n) { + DeepCopy<BaseSpace, DestinationSpace, ExecutionSpace>(exec, dst, src, n); + } +}; +} // namespace Impl + +} // namespace Kokkos +#endif // KOKKOS_LOGICALSPACES_HPP diff --git a/packages/kokkos/core/src/Kokkos_Macros.hpp b/packages/kokkos/core/src/Kokkos_Macros.hpp index 00a07bdcf..874b0dcc5 100644 --- a/packages/kokkos/core/src/Kokkos_Macros.hpp +++ b/packages/kokkos/core/src/Kokkos_Macros.hpp @@ -64,8 +64,6 @@ #include <KokkosCore_config.h> #endif -#include <impl/Kokkos_OldMacros.hpp> - //---------------------------------------------------------------------------- /** Pick up compiler specific #define macros: * @@ -99,85 +97,16 @@ //---------------------------------------------------------------------------- -#if defined(KOKKOS_ENABLE_SERIAL) || defined(KOKKOS_ENABLE_THREADS) || \ - defined(KOKKOS_ENABLE_OPENMP) || defined(KOKKOS_ENABLE_HPX) || \ - defined(KOKKOS_ENABLE_ROCM) || defined(KOKKOS_ENABLE_OPENMPTARGET) || \ - defined(KOKKOS_ENABLE_HIP) -#define KOKKOS_INTERNAL_ENABLE_NON_CUDA_BACKEND -#endif - -#if !defined(KOKKOS_ENABLE_THREADS) && !defined(KOKKOS_ENABLE_CUDA) && \ - !defined(KOKKOS_ENABLE_OPENMP) && !defined(KOKKOS_ENABLE_HPX) && \ - !defined(KOKKOS_ENABLE_ROCM) && !defined(KOKKOS_ENABLE_OPENMPTARGET) && \ - !defined(KOKKOS_ENABLE_HIP) +#if !defined(KOKKOS_ENABLE_THREADS) && !defined(KOKKOS_ENABLE_CUDA) && \ + !defined(KOKKOS_ENABLE_OPENMP) && !defined(KOKKOS_ENABLE_HPX) && \ + !defined(KOKKOS_ENABLE_OPENMPTARGET) && !defined(KOKKOS_ENABLE_HIP) && \ + !defined(KOKKOS_ENABLE_SYCL) #define KOKKOS_INTERNAL_NOT_PARALLEL #endif #define KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA -#if defined(KOKKOS_ENABLE_CUDA) && defined(__CUDACC__) -// Compiling with a CUDA compiler. -// -// Include <cuda.h> to pick up the CUDA_VERSION macro defined as: -// CUDA_VERSION = ( MAJOR_VERSION * 1000 ) + ( MINOR_VERSION * 10 ) -// -// When generating device code the __CUDA_ARCH__ macro is defined as: -// __CUDA_ARCH__ = ( MAJOR_CAPABILITY * 100 ) + ( MINOR_CAPABILITY * 10 ) - -#include <cuda_runtime.h> -#include <cuda.h> - -#if !defined(CUDA_VERSION) -#error "#include <cuda.h> did not define CUDA_VERSION." -#endif - -#if defined(__CUDA_ARCH__) && (__CUDA_ARCH__ < 300) -// Compiling with CUDA compiler for device code. -#error "Cuda device capability >= 3.0 is required." -#endif - -#ifdef KOKKOS_ENABLE_CUDA_LAMBDA -#define KOKKOS_LAMBDA [=] __host__ __device__ - -#if defined(KOKKOS_ENABLE_CXX17) || defined(KOKKOS_ENABLE_CXX20) -#define KOKKOS_CLASS_LAMBDA [ =, *this ] __host__ __device__ -#endif - -#if defined(__NVCC__) -#define KOKKOS_IMPL_NEED_FUNCTOR_WRAPPER -#endif -#else // !defined(KOKKOS_ENABLE_CUDA_LAMBDA) -#undef KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA -#endif // !defined(KOKKOS_ENABLE_CUDA_LAMBDA) - -#if (10000 > CUDA_VERSION) -#define KOKKOS_ENABLE_PRE_CUDA_10_DEPRECATION_API -#endif - -#if defined(__CUDA_ARCH__) && (__CUDA_ARCH__ >= 700) -// PTX atomics with memory order semantics are only available on volta and later -#if !defined(KOKKOS_DISABLE_CUDA_ASM) -#if !defined(KOKKOS_ENABLE_CUDA_ASM) -#define KOKKOS_ENABLE_CUDA_ASM -#if !defined(KOKKOS_DISABLE_CUDA_ASM_ATOMICS) -#define KOKKOS_ENABLE_CUDA_ASM_ATOMICS -#endif -#endif -#endif -#endif - -#endif // #if defined( KOKKOS_ENABLE_CUDA ) && defined( __CUDACC__ ) - -#if defined(KOKKOS_ENABLE_HIP) - -#define KOKKOS_IMPL_HIP_CLANG_WORKAROUND - -#define HIP_ENABLE_PRINTF -#include <hip/hip_runtime.h> -#include <hip/hip_runtime_api.h> - -#define KOKKOS_LAMBDA [=] __host__ __device__ -#endif // #if defined(KOKKOS_ENABLE_HIP) +#include <KokkosCore_Config_SetupBackend.hpp> //---------------------------------------------------------------------------- // Mapping compiler built-ins to KOKKOS_COMPILER_*** macros @@ -205,6 +134,8 @@ #if defined(__INTEL_COMPILER) #define KOKKOS_COMPILER_INTEL __INTEL_COMPILER +#elif defined(__INTEL_LLVM_COMPILER) +#define KOKKOS_COMPILER_INTEL __INTEL_LLVM_COMPILER #elif defined(__ICC) // Old define #define KOKKOS_COMPILER_INTEL __ICC @@ -223,13 +154,16 @@ #define KOKKOS_COMPILER_IBM __IBMCPP__ #elif defined(__IBMC__) #define KOKKOS_COMPILER_IBM __IBMC__ +#elif defined(__ibmxl_vrm__) // xlclang++ +#define KOKKOS_COMPILER_IBM __ibmxl_vrm__ #endif #if defined(__APPLE_CC__) #define KOKKOS_COMPILER_APPLECC __APPLE_CC__ #endif -#if defined(__clang__) && !defined(KOKKOS_COMPILER_INTEL) +#if defined(__clang__) && !defined(KOKKOS_COMPILER_INTEL) && \ + !defined(KOKKOS_COMPILER_IBM) #define KOKKOS_COMPILER_CLANG \ __clang_major__ * 100 + __clang_minor__ * 10 + __clang_patchlevel__ #endif @@ -238,8 +172,8 @@ #define KOKKOS_COMPILER_GNU \ __GNUC__ * 100 + __GNUC_MINOR__ * 10 + __GNUC_PATCHLEVEL__ -#if (472 > KOKKOS_COMPILER_GNU) -#error "Compiling with GCC version earlier than 4.7.2 is not supported." +#if (530 > KOKKOS_COMPILER_GNU) +#error "Compiling with GCC version earlier than 5.3.0 is not supported." #endif #endif @@ -247,8 +181,8 @@ #define KOKKOS_COMPILER_PGI \ __PGIC__ * 100 + __PGIC_MINOR__ * 10 + __PGIC_PATCHLEVEL__ -#if (1540 > KOKKOS_COMPILER_PGI) -#error "Compiling with PGI version earlier than 15.4 is not supported." +#if (1740 > KOKKOS_COMPILER_PGI) +#error "Compiling with PGI version earlier than 17.4 is not supported." #endif #endif @@ -256,50 +190,6 @@ #define KOKKOS_COMPILER_MSVC _MSC_VER #endif -//#endif // #if !defined( __CUDA_ARCH__ ) -//---------------------------------------------------------------------------- -// Language info: C++, CUDA, OPENMP - -#if defined(KOKKOS_ENABLE_CUDA) -// Compiling Cuda code to 'ptx' - -#define KOKKOS_FORCEINLINE_FUNCTION __device__ __host__ __forceinline__ -#define KOKKOS_IMPL_FORCEINLINE __forceinline__ -#define KOKKOS_INLINE_FUNCTION __device__ __host__ inline -#define KOKKOS_FUNCTION __device__ __host__ -#if defined(KOKKOS_COMPILER_NVCC) -#define KOKKOS_INLINE_FUNCTION_DELETED inline -#else -#define KOKKOS_INLINE_FUNCTION_DELETED __device__ __host__ inline -#endif -#if (CUDA_VERSION < 10000) -#define KOKKOS_DEFAULTED_FUNCTION __host__ __device__ inline -#else -#define KOKKOS_DEFAULTED_FUNCTION inline -#endif -#endif - -#if defined(KOKKOS_ENABLE_HIP) - -#define KOKKOS_FORCEINLINE_FUNCTION __device__ __host__ __forceinline__ -#define KOKKOS_INLINE_FUNCTION __device__ __host__ inline -#define KOKKOS_DEFAULTED_FUNCTION __device__ __host__ inline -#define KOKKOS_INLINE_FUNCTION_DELETED __device__ __host__ inline -#define KOKKOS_FUNCTION __device__ __host__ -#if defined(KOKKOS_ENABLE_CXX17) || defined(KOKKOS_ENABLE_CXX20) -#define KOKKOS_CLASS_LAMBDA [ =, *this ] __host__ __device__ -#endif -#endif // #if defined( KOKKOS_ENABLE_HIP ) - -#if defined(KOKKOS_ENABLE_ROCM) && defined(__HCC__) - -#define KOKKOS_FORCEINLINE_FUNCTION __attribute__((amp, cpu)) inline -#define KOKKOS_INLINE_FUNCTION __attribute__((amp, cpu)) inline -#define KOKKOS_FUNCTION __attribute__((amp, cpu)) -#define KOKKOS_LAMBDA [=] __attribute__((amp, cpu)) -#define KOKKOS_DEFAULTED_FUNCTION __attribute__((amp, cpu)) inline -#endif - #if defined(_OPENMP) // Compiling with OpenMP. // The value of _OPENMP is an integer value YYYYMM @@ -311,14 +201,18 @@ // Intel compiler macros #if defined(KOKKOS_COMPILER_INTEL) +// FIXME_SYCL +#if !defined(KOKKOS_ENABLE_SYCL) #define KOKKOS_ENABLE_PRAGMA_UNROLL 1 #define KOKKOS_ENABLE_PRAGMA_LOOPCOUNT 1 #define KOKKOS_ENABLE_PRAGMA_VECTOR 1 +#endif #if (1800 > KOKKOS_COMPILER_INTEL) #define KOKKOS_ENABLE_PRAGMA_SIMD 1 #endif -#if (__INTEL_COMPILER > 1400) +// FIXME_SYCL +#if !defined(KOKKOS_ENABLE_SYCL) #define KOKKOS_ENABLE_PRAGMA_IVDEP 1 #endif @@ -332,26 +226,20 @@ #define KOKKOS_IMPL_ALIGN_PTR(size) __attribute__((align_value(size))) #endif -#if (1400 > KOKKOS_COMPILER_INTEL) -#if (1300 > KOKKOS_COMPILER_INTEL) -#error \ - "Compiling with Intel version earlier than 13.0 is not supported. Official minimal version is 14.0." -#else -#warning \ - "Compiling with Intel version 13.x probably works but is not officially supported. Official minimal version is 14.0." -#endif +#if (1700 > KOKKOS_COMPILER_INTEL) +#error "Compiling with Intel version earlier than 17.0 is not supported." #endif #if !defined(KOKKOS_ENABLE_ASM) && !defined(_WIN32) #define KOKKOS_ENABLE_ASM 1 #endif -#if !defined(KOKKOS_FORCEINLINE_FUNCTION) +#if !defined(KOKKOS_IMPL_FORCEINLINE_FUNCTION) #if !defined(_WIN32) -#define KOKKOS_FORCEINLINE_FUNCTION inline __attribute__((always_inline)) +#define KOKKOS_IMPL_FORCEINLINE_FUNCTION inline __attribute__((always_inline)) #define KOKKOS_IMPL_FORCEINLINE __attribute__((always_inline)) #else -#define KOKKOS_FORCEINLINE_FUNCTION inline +#define KOKKOS_IMPL_FORCEINLINE_FUNCTION inline #endif #endif @@ -402,8 +290,8 @@ //#define KOKKOS_ENABLE_PRAGMA_VECTOR 1 //#define KOKKOS_ENABLE_PRAGMA_SIMD 1 -#if !defined(KOKKOS_FORCEINLINE_FUNCTION) -#define KOKKOS_FORCEINLINE_FUNCTION inline __attribute__((always_inline)) +#if !defined(KOKKOS_IMPL_FORCEINLINE_FUNCTION) +#define KOKKOS_IMPL_FORCEINLINE_FUNCTION inline __attribute__((always_inline)) #define KOKKOS_IMPL_FORCEINLINE __attribute__((always_inline)) #endif @@ -427,8 +315,8 @@ #define KOKKOS_ENABLE_RFO_PREFETCH 1 #endif -#if !defined(KOKKOS_FORCEINLINE_FUNCTION) -#define KOKKOS_FORCEINLINE_FUNCTION inline __attribute__((always_inline)) +#if !defined(KOKKOS_IMPL_FORCEINLINE_FUNCTION) +#define KOKKOS_IMPL_FORCEINLINE_FUNCTION inline __attribute__((always_inline)) #define KOKKOS_IMPL_FORCEINLINE __attribute__((always_inline)) #endif @@ -462,20 +350,20 @@ //---------------------------------------------------------------------------- // Define function marking macros if compiler specific macros are undefined: -#if !defined(KOKKOS_FORCEINLINE_FUNCTION) -#define KOKKOS_FORCEINLINE_FUNCTION inline +#if !defined(KOKKOS_IMPL_FORCEINLINE_FUNCTION) +#define KOKKOS_IMPL_FORCEINLINE_FUNCTION inline #endif #if !defined(KOKKOS_IMPL_FORCEINLINE) #define KOKKOS_IMPL_FORCEINLINE inline #endif -#if !defined(KOKKOS_INLINE_FUNCTION) -#define KOKKOS_INLINE_FUNCTION inline +#if !defined(KOKKOS_IMPL_INLINE_FUNCTION) +#define KOKKOS_IMPL_INLINE_FUNCTION inline #endif -#if !defined(KOKKOS_FUNCTION) -#define KOKKOS_FUNCTION /**/ +#if !defined(KOKKOS_IMPL_FUNCTION) +#define KOKKOS_IMPL_FUNCTION /**/ #endif #if !defined(KOKKOS_INLINE_FUNCTION_DELETED) @@ -485,6 +373,33 @@ #if !defined(KOKKOS_DEFAULTED_FUNCTION) #define KOKKOS_DEFAULTED_FUNCTION inline #endif + +#if !defined(KOKKOS_IMPL_HOST_FUNCTION) +#define KOKKOS_IMPL_HOST_FUNCTION +#endif + +#if !defined(KOKKOS_IMPL_DEVICE_FUNCTION) +#define KOKKOS_IMPL_DEVICE_FUNCTION +#endif + +//---------------------------------------------------------------------------- +// Define final version of functions. This is so that clang tidy can find these +// macros more easily +#if defined(__clang_analyzer__) +#define KOKKOS_FUNCTION \ + KOKKOS_IMPL_FUNCTION __attribute__((annotate("KOKKOS_FUNCTION"))) +#define KOKKOS_INLINE_FUNCTION \ + KOKKOS_IMPL_INLINE_FUNCTION \ + __attribute__((annotate("KOKKOS_INLINE_FUNCTION"))) +#define KOKKOS_FORCEINLINE_FUNCTION \ + KOKKOS_IMPL_FORCEINLINE_FUNCTION \ + __attribute__((annotate("KOKKOS_FORCEINLINE_FUNCTION"))) +#else +#define KOKKOS_FUNCTION KOKKOS_IMPL_FUNCTION +#define KOKKOS_INLINE_FUNCTION KOKKOS_IMPL_INLINE_FUNCTION +#define KOKKOS_FORCEINLINE_FUNCTION KOKKOS_IMPL_FORCEINLINE_FUNCTION +#endif + //---------------------------------------------------------------------------- // Define empty macro for restrict if necessary: @@ -513,7 +428,7 @@ #if 1 < ((defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_CUDA) ? 1 : 0) + \ (defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_HIP) ? 1 : 0) + \ - (defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_ROCM) ? 1 : 0) + \ + (defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_SYCL) ? 1 : 0) + \ (defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_OPENMPTARGET) ? 1 : 0) + \ (defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_OPENMP) ? 1 : 0) + \ (defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_THREADS) ? 1 : 0) + \ @@ -523,10 +438,10 @@ #endif // If default is not specified then chose from enabled execution spaces. -// Priority: CUDA, HIP, ROCM, OPENMPTARGET, OPENMP, THREADS, HPX, SERIAL +// Priority: CUDA, HIP, SYCL, OPENMPTARGET, OPENMP, THREADS, HPX, SERIAL #if defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_CUDA) #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_HIP) -#elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_ROCM) +#elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_SYCL) #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_OPENMPTARGET) #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_OPENMP) #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_THREADS) @@ -536,8 +451,13 @@ #define KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_CUDA #elif defined(KOKKOS_ENABLE_HIP) #define KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_HIP -#elif defined(KOKKOS_ENABLE_ROCM) -#define KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_ROCM +#if defined(__HIP__) +// mark that HIP-clang can use __host__ and __device__ +// as valid overload criteria +#define KOKKOS_IMPL_ENABLE_OVERLOAD_HOST_DEVICE +#endif +#elif defined(KOKKOS_ENABLE_SYCL) +#define KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_SYCL #elif defined(KOKKOS_ENABLE_OPENMPTARGET) #define KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_OPENMPTARGET #elif defined(KOKKOS_ENABLE_OPENMP) @@ -555,11 +475,9 @@ #if defined(__CUDACC__) && defined(__CUDA_ARCH__) && defined(KOKKOS_ENABLE_CUDA) #define KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_CUDA -#elif defined(__HCC__) && defined(__HCC_ACCELERATOR__) && \ - defined(KOKKOS_ENABLE_ROCM) -#define KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_ROCM_GPU -#elif defined(__HIPCC__) && \ - (defined(__HCC_ACCELERATOR__) || defined(__CUDA_ARCH__)) && \ +#elif defined(__SYCL_DEVICE_ONLY__) && defined(KOKKOS_ENABLE_SYCL) +#define KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_SYCL +#elif defined(__HIPCC__) && defined(__HIP_DEVICE_COMPILE__) && \ defined(KOKKOS_ENABLE_HIP) #define KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HIP_GPU #else @@ -583,11 +501,9 @@ #if defined(KOKKOS_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE) #define KOKKOS_ENABLE_TASKDAG #endif -#else -#ifndef KOKKOS_ENABLE_HIP +#elif !defined(KOKKOS_ENABLE_HIP) && !defined(KOKKOS_ENABLE_SYCL) #define KOKKOS_ENABLE_TASKDAG #endif -#endif #if defined(KOKKOS_ENABLE_CUDA) #define KOKKOS_IMPL_CUDA_VERSION_9_WORKAROUND @@ -598,27 +514,11 @@ #define KOKKOS_INVALID_INDEX (~std::size_t(0)) -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -#define KOKKOS_IMPL_CTOR_DEFAULT_ARG 0 -#else #define KOKKOS_IMPL_CTOR_DEFAULT_ARG KOKKOS_INVALID_INDEX -#endif -#if (defined(KOKKOS_ENABLE_CXX14) || defined(KOKKOS_ENABLE_CXX17) || \ - defined(KOKKOS_ENABLE_CXX20)) #define KOKKOS_CONSTEXPR_14 constexpr #define KOKKOS_DEPRECATED [[deprecated]] #define KOKKOS_DEPRECATED_TRAILING_ATTRIBUTE -#else -#define KOKKOS_CONSTEXPR_14 -#if defined(KOKKOS_COMPILER_GNU) || defined(KOKKOS_COMPILER_CLANG) -#define KOKKOS_DEPRECATED -#define KOKKOS_DEPRECATED_TRAILING_ATTRIBUTE __attribute__((deprecated)) -#else -#define KOKKOS_DEPRECATED -#define KOKKOS_DEPRECATED_TRAILING_ATTRIBUTE -#endif -#endif // DJS 05/28/2019: Bugfix: Issue 2155 // Use KOKKOS_ENABLE_CUDA_LDG_INTRINSIC to avoid memory leak in RandomAccess @@ -633,8 +533,9 @@ #define KOKKOS_ATTRIBUTE_NODISCARD #endif -#if defined(KOKKOS_COMPILER_GNU) || defined(KOKKOS_COMPILER_CLANG) || \ - defined(KOKKOS_COMPILER_INTEL) || defined(KOKKOS_COMPILER_PGI) +#if (defined(KOKKOS_COMPILER_GNU) || defined(KOKKOS_COMPILER_CLANG) || \ + defined(KOKKOS_COMPILER_INTEL) || defined(KOKKOS_COMPILER_PGI)) && \ + !defined(KOKKOS_COMPILER_MSVC) #define KOKKOS_IMPL_ENABLE_STACKTRACE #define KOKKOS_IMPL_ENABLE_CXXABI #endif @@ -646,10 +547,20 @@ #undef __CUDA_ARCH__ #endif -#if defined(KOKKOS_COMPILER_MSVC) +#if defined(KOKKOS_COMPILER_MSVC) && !defined(KOKKOS_COMPILER_CLANG) #define KOKKOS_THREAD_LOCAL __declspec(thread) #else #define KOKKOS_THREAD_LOCAL __thread #endif +#if (defined(KOKKOS_IMPL_WINDOWS_CUDA) || defined(KOKKOS_COMPILER_MSVC)) && \ + !defined(KOKKOS_COMPILER_CLANG) +// MSVC (as of 16.5.5 at least) does not do empty base class optimization by +// default when there are multiple bases, even though the standard requires it +// for standard layout types. +#define KOKKOS_IMPL_ENFORCE_EMPTY_BASE_OPTIMIZATION __declspec(empty_bases) +#else +#define KOKKOS_IMPL_ENFORCE_EMPTY_BASE_OPTIMIZATION +#endif + #endif // #ifndef KOKKOS_MACROS_HPP diff --git a/packages/kokkos/core/src/Kokkos_MemoryPool.hpp b/packages/kokkos/core/src/Kokkos_MemoryPool.hpp index da0754470..042ad6d90 100644 --- a/packages/kokkos/core/src/Kokkos_MemoryPool.hpp +++ b/packages/kokkos/core/src/Kokkos_MemoryPool.hpp @@ -52,6 +52,8 @@ #include <impl/Kokkos_Error.hpp> #include <impl/Kokkos_SharedAlloc.hpp> +#include <iostream> + namespace Kokkos { namespace Impl { /* Report violation of size constraints: @@ -73,10 +75,19 @@ void memory_pool_bounds_verification(size_t min_block_alloc_size, namespace Kokkos { +namespace Impl { + +void _print_memory_pool_state(std::ostream &s, uint32_t const *sb_state_ptr, + int32_t sb_count, uint32_t sb_size_lg2, + uint32_t sb_state_size, uint32_t state_shift, + uint32_t state_used_mask); + +} // end namespace Impl + template <typename DeviceType> class MemoryPool { private: - typedef typename Kokkos::Impl::concurrent_bitset CB; + using CB = Kokkos::Impl::concurrent_bitset; enum : uint32_t { bits_per_int_lg2 = CB::bits_per_int_lg2 }; enum : uint32_t { state_shift = CB::state_shift }; @@ -107,15 +118,15 @@ class MemoryPool { * Thus A_block_size < B_block_size <=> A_block_state > B_block_state */ - typedef typename DeviceType::memory_space base_memory_space; + using base_memory_space = typename DeviceType::memory_space; enum { accessible = Kokkos::Impl::MemorySpaceAccess<Kokkos::HostSpace, base_memory_space>::accessible }; - typedef Kokkos::Impl::SharedAllocationTracker Tracker; - typedef Kokkos::Impl::SharedAllocationRecord<base_memory_space> Record; + using Tracker = Kokkos::Impl::SharedAllocationTracker; + using Record = Kokkos::Impl::SharedAllocationRecord<base_memory_space>; Tracker m_tracker; uint32_t *m_sb_state_array; @@ -231,24 +242,9 @@ class MemoryPool { sb_state_array, m_sb_state_array, alloc_size); } - const uint32_t *sb_state_ptr = sb_state_array; - - s << "pool_size(" << (size_t(m_sb_count) << m_sb_size_lg2) << ")" - << " superblock_size(" << (1LU << m_sb_size_lg2) << ")" << std::endl; - - for (int32_t i = 0; i < m_sb_count; ++i, sb_state_ptr += m_sb_state_size) { - if (*sb_state_ptr) { - const uint32_t block_count_lg2 = (*sb_state_ptr) >> state_shift; - const uint32_t block_size_lg2 = m_sb_size_lg2 - block_count_lg2; - const uint32_t block_count = 1u << block_count_lg2; - const uint32_t block_used = (*sb_state_ptr) & state_used_mask; - - s << "Superblock[ " << i << " / " << m_sb_count << " ] {" - << " block_size(" << (1 << block_size_lg2) << ")" - << " block_count( " << block_used << " / " << block_count << " )" - << std::endl; - } - } + Impl::_print_memory_pool_state(s, sb_state_array, m_sb_count, m_sb_size_lg2, + m_sb_state_size, state_shift, + state_used_mask); if (!accessible) { host.deallocate(sb_state_array, alloc_size); diff --git a/packages/kokkos/core/src/Kokkos_MemoryTraits.hpp b/packages/kokkos/core/src/Kokkos_MemoryTraits.hpp index 75d3d4014..f23442b79 100644 --- a/packages/kokkos/core/src/Kokkos_MemoryTraits.hpp +++ b/packages/kokkos/core/src/Kokkos_MemoryTraits.hpp @@ -71,18 +71,7 @@ enum MemoryTraitsFlags { template <unsigned T> struct MemoryTraits { //! Tag this class as a kokkos memory traits: - typedef MemoryTraits memory_traits; -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - enum : bool { - Unmanaged = (unsigned(0) != (T & unsigned(Kokkos::Unmanaged))) - }; - enum : bool { - RandomAccess = (unsigned(0) != (T & unsigned(Kokkos::RandomAccess))) - }; - enum : bool { Atomic = (unsigned(0) != (T & unsigned(Kokkos::Atomic))) }; - enum : bool { Restrict = (unsigned(0) != (T & unsigned(Kokkos::Restrict))) }; - enum : bool { Aligned = (unsigned(0) != (T & unsigned(Kokkos::Aligned))) }; -#endif + using memory_traits = MemoryTraits<T>; enum : bool { is_unmanaged = (unsigned(0) != (T & unsigned(Kokkos::Unmanaged))) }; @@ -102,10 +91,10 @@ struct MemoryTraits { namespace Kokkos { -typedef Kokkos::MemoryTraits<0> MemoryManaged; -typedef Kokkos::MemoryTraits<Kokkos::Unmanaged> MemoryUnmanaged; -typedef Kokkos::MemoryTraits<Kokkos::Unmanaged | Kokkos::RandomAccess> - MemoryRandomAccess; +using MemoryManaged = Kokkos::MemoryTraits<0>; +using MemoryUnmanaged = Kokkos::MemoryTraits<Kokkos::Unmanaged>; +using MemoryRandomAccess = + Kokkos::MemoryTraits<Kokkos::Unmanaged | Kokkos::RandomAccess>; } // namespace Kokkos diff --git a/packages/kokkos/core/src/Kokkos_NumericTraits.hpp b/packages/kokkos/core/src/Kokkos_NumericTraits.hpp index 88040bcba..7d55a9652 100644 --- a/packages/kokkos/core/src/Kokkos_NumericTraits.hpp +++ b/packages/kokkos/core/src/Kokkos_NumericTraits.hpp @@ -45,6 +45,7 @@ #ifndef KOKKOS_NUMERICTRAITS_HPP #define KOKKOS_NUMERICTRAITS_HPP +#include <Kokkos_Macros.hpp> #include <climits> #include <cfloat> diff --git a/packages/kokkos/core/src/Kokkos_OpenMP.hpp b/packages/kokkos/core/src/Kokkos_OpenMP.hpp index d9b9077c6..1856c00a6 100644 --- a/packages/kokkos/core/src/Kokkos_OpenMP.hpp +++ b/packages/kokkos/core/src/Kokkos_OpenMP.hpp @@ -63,6 +63,8 @@ #include <Kokkos_TaskScheduler.hpp> #include <Kokkos_Layout.hpp> #include <impl/Kokkos_Tags.hpp> +#include <impl/Kokkos_Profiling_Interface.hpp> +#include <impl/Kokkos_ExecSpaceInitializer.hpp> #include <vector> @@ -105,11 +107,7 @@ class OpenMP { /// This is a no-op on OpenMP static void impl_static_fence(OpenMP const& = OpenMP()) noexcept; -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - static void fence(OpenMP const& = OpenMP()) noexcept; -#else void fence() const; -#endif /// \brief Does the given instance return immediately after launching /// a parallel algorithm @@ -142,58 +140,6 @@ class OpenMP { // use UniqueToken static int concurrency(); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - /// \brief Initialize the default execution space - static void initialize(int thread_count, int use_numa_count, - int use_cores_per_numa = 0); - - /// \brief Initialize the default execution space - /// - /// if ( thread_count == -1 ) - /// then use the number of threads that openmp defaults to - /// if ( thread_count == 0 && Kokkos::hwlow_available() ) - /// then use hwloc to choose the number of threads and change - /// the default number of threads - /// if ( thread_count > 0 ) - /// then force openmp to use the given number of threads and change - /// the default number of threads - static void initialize(int thread_count = -1); - - /// \brief is the default execution space initialized for current 'master' - /// thread - static bool is_initialized() noexcept; - - /// \brief Free any resources being consumed by the default execution space - static void finalize(); - - inline static int thread_pool_size() noexcept; - - /** \brief The rank of the executing thread in this thread pool */ - KOKKOS_INLINE_FUNCTION - static int thread_pool_rank() noexcept; - - inline static int thread_pool_size(int depth); - - static void sleep(){}; - static void wake(){}; - - // Using omp_get_max_threads(); is problematic - // On Intel (essentially an initial call to the OpenMP runtime - // without a parallel region before will set a process mask for a single core - // The runtime will than bind threads for a parallel region to other cores on - // the entering the first parallel region and make the process mask the - // aggregate of the thread masks. The intend seems to be to make serial code - // run fast, if you compile with OpenMP enabled but don't actually use - // parallel regions or so static int omp_max_threads = omp_get_max_threads(); - static int get_current_max_threads() noexcept; - - // use UniqueToken - inline static int max_hardware_threads() noexcept; - - // use UniqueToken - KOKKOS_INLINE_FUNCTION - static int hardware_thread_id() noexcept; -#else static void impl_initialize(int thread_count = -1); /// \brief is the default execution space initialized for current 'master' @@ -219,20 +165,33 @@ class OpenMP { static int impl_hardware_thread_id() noexcept; static int impl_get_current_max_threads() noexcept; -#endif static constexpr const char* name() noexcept { return "OpenMP"; } uint32_t impl_instance_id() const noexcept { return 0; } }; -namespace Profiling { +namespace Tools { namespace Experimental { template <> struct DeviceTypeTraits<OpenMP> { static constexpr DeviceType id = DeviceType::OpenMP; }; } // namespace Experimental -} // namespace Profiling +} // namespace Tools + +namespace Impl { + +class OpenMPSpaceInitializer : public ExecSpaceInitializerBase { + public: + OpenMPSpaceInitializer() = default; + ~OpenMPSpaceInitializer() = default; + void initialize(const InitArguments& args) final; + void finalize(const bool) final; + void fence() final; + void print_configuration(std::ostream& msg, const bool detail) final; +}; + +} // namespace Impl } // namespace Kokkos /*--------------------------------------------------------------------------*/ @@ -244,15 +203,15 @@ namespace Impl { template <> struct MemorySpaceAccess<Kokkos::OpenMP::memory_space, Kokkos::OpenMP::scratch_memory_space> { - enum { assignable = false }; - enum { accessible = true }; - enum { deepcopy = false }; + enum : bool { assignable = false }; + enum : bool { accessible = true }; + enum : bool { deepcopy = false }; }; template <> struct VerifyExecutionCanAccessMemorySpace< Kokkos::OpenMP::memory_space, Kokkos::OpenMP::scratch_memory_space> { - enum { value = true }; + enum : bool { value = true }; inline static void verify(void) {} inline static void verify(const void*) {} }; diff --git a/packages/kokkos/core/src/Kokkos_OpenMPTarget.hpp b/packages/kokkos/core/src/Kokkos_OpenMPTarget.hpp index e853b8228..4cbeef2d7 100644 --- a/packages/kokkos/core/src/Kokkos_OpenMPTarget.hpp +++ b/packages/kokkos/core/src/Kokkos_OpenMPTarget.hpp @@ -61,6 +61,7 @@ #include <impl/Kokkos_Tags.hpp> #include <impl/Kokkos_Profiling_Interface.hpp> #include <KokkosExp_MDRangePolicy.hpp> +#include <impl/Kokkos_ExecSpaceInitializer.hpp> /*--------------------------------------------------------------------------*/ namespace Kokkos { @@ -78,15 +79,15 @@ class OpenMPTarget { //@{ //! Tag this class as a kokkos execution space - typedef OpenMPTarget execution_space; - typedef OpenMPTargetSpace memory_space; + using execution_space = OpenMPTarget; + using memory_space = OpenMPTargetSpace; //! This execution space preferred device_type - typedef Kokkos::Device<execution_space, memory_space> device_type; + using device_type = Kokkos::Device<execution_space, memory_space>; - typedef LayoutLeft array_layout; - typedef memory_space::size_type size_type; + using array_layout = LayoutLeft; + using size_type = memory_space::size_type; - typedef ScratchMemorySpace<OpenMPTarget> scratch_memory_space; + using scratch_memory_space = ScratchMemorySpace<OpenMPTarget>; inline static bool in_parallel() { return omp_in_parallel(); } @@ -121,7 +122,7 @@ class OpenMPTarget { }; } // namespace Experimental -namespace Profiling { +namespace Tools { namespace Experimental { template <> struct DeviceTypeTraits<::Kokkos::Experimental::OpenMPTarget> { @@ -129,7 +130,21 @@ struct DeviceTypeTraits<::Kokkos::Experimental::OpenMPTarget> { ::Kokkos::Profiling::Experimental::DeviceType::OpenMPTarget; }; } // namespace Experimental -} // namespace Profiling +} // namespace Tools + +namespace Impl { + +class OpenMPTargetSpaceInitializer : public ExecSpaceInitializerBase { + public: + OpenMPTargetSpaceInitializer() = default; + ~OpenMPTargetSpaceInitializer() = default; + void initialize(const InitArguments& args) final; + void finalize(const bool) final; + void fence() final; + void print_configuration(std::ostream& msg, const bool detail) final; +}; + +} // namespace Impl } // namespace Kokkos /*--------------------------------------------------------------------------*/ @@ -142,7 +157,7 @@ template <> struct VerifyExecutionCanAccessMemorySpace< Kokkos::Experimental::OpenMPTarget::memory_space, Kokkos::Experimental::OpenMPTarget::scratch_memory_space> { - enum { value = true }; + enum : bool { value = true }; inline static void verify(void) {} inline static void verify(const void*) {} }; diff --git a/packages/kokkos/core/src/Kokkos_OpenMPTargetSpace.hpp b/packages/kokkos/core/src/Kokkos_OpenMPTargetSpace.hpp index 9d24a342e..f7c043073 100644 --- a/packages/kokkos/core/src/Kokkos_OpenMPTargetSpace.hpp +++ b/packages/kokkos/core/src/Kokkos_OpenMPTargetSpace.hpp @@ -98,8 +98,8 @@ namespace Experimental { class OpenMPTargetSpace { public: //! Tag this class as a kokkos memory space - typedef OpenMPTargetSpace memory_space; - typedef size_t size_type; + using memory_space = OpenMPTargetSpace; + using size_type = size_t; /// \typedef execution_space /// \brief Default execution space for this memory space. @@ -107,10 +107,10 @@ class OpenMPTargetSpace { /// Every memory space has a default execution space. This is /// useful for things like initializing a View (which happens in /// parallel using the View's default execution space). - typedef Kokkos::Experimental::OpenMPTarget execution_space; + using execution_space = Kokkos::Experimental::OpenMPTarget; //! This memory space preferred device_type - typedef Kokkos::Device<execution_space, memory_space> device_type; + using device_type = Kokkos::Device<execution_space, memory_space>; /*--------------------------------*/ @@ -149,7 +149,7 @@ class SharedAllocationRecord<Kokkos::Experimental::OpenMPTargetSpace, void> private: friend Kokkos::Experimental::OpenMPTargetSpace; - typedef SharedAllocationRecord<void, void> RecordBase; + using RecordBase = SharedAllocationRecord<void, void>; SharedAllocationRecord(const SharedAllocationRecord&) = delete; SharedAllocationRecord& operator=(const SharedAllocationRecord&) = delete; @@ -258,7 +258,7 @@ struct DeepCopy<HostSpace, Kokkos::Experimental::OpenMPTargetSpace, template <> struct VerifyExecutionCanAccessMemorySpace< Kokkos::HostSpace, Kokkos::Experimental::OpenMPTargetSpace> { - enum { value = false }; + enum : bool { value = false }; inline static void verify(void) {} inline static void verify(const void*) {} }; diff --git a/packages/kokkos/core/src/Kokkos_Pair.hpp b/packages/kokkos/core/src/Kokkos_Pair.hpp index 23bb755e3..d7512eb08 100644 --- a/packages/kokkos/core/src/Kokkos_Pair.hpp +++ b/packages/kokkos/core/src/Kokkos_Pair.hpp @@ -64,9 +64,9 @@ namespace Kokkos { template <class T1, class T2> struct pair { //! The first template parameter of this class. - typedef T1 first_type; + using first_type = T1; //! The second template parameter of this class. - typedef T2 second_type; + using second_type = T2; //! The first element of the pair. first_type first; @@ -156,9 +156,9 @@ struct pair { template <class T1, class T2> struct pair<T1&, T2&> { //! The first template parameter of this class. - typedef T1& first_type; + using first_type = T1&; //! The second template parameter of this class. - typedef T2& second_type; + using second_type = T2&; //! The first element of the pair. first_type first; @@ -213,9 +213,9 @@ struct pair<T1&, T2&> { template <class T1, class T2> struct pair<T1, T2&> { //! The first template parameter of this class. - typedef T1 first_type; + using first_type = T1; //! The second template parameter of this class. - typedef T2& second_type; + using second_type = T2&; //! The first element of the pair. first_type first; @@ -270,9 +270,9 @@ struct pair<T1, T2&> { template <class T1, class T2> struct pair<T1&, T2> { //! The first template parameter of this class. - typedef T1& first_type; + using first_type = T1&; //! The second template parameter of this class. - typedef T2 second_type; + using second_type = T2; //! The first element of the pair. first_type first; @@ -426,8 +426,8 @@ KOKKOS_FORCEINLINE_FUNCTION pair<T1&, T2&> tie(T1& x, T2& y) { // template <class T1> struct pair<T1, void> { - typedef T1 first_type; - typedef void second_type; + using first_type = T1; + using second_type = void; first_type first; enum { second = 0 }; diff --git a/packages/kokkos/core/src/Kokkos_Parallel.hpp b/packages/kokkos/core/src/Kokkos_Parallel.hpp index 775ab9203..a00da4472 100644 --- a/packages/kokkos/core/src/Kokkos_Parallel.hpp +++ b/packages/kokkos/core/src/Kokkos_Parallel.hpp @@ -53,17 +53,15 @@ #include <Kokkos_View.hpp> #include <Kokkos_ExecPolicy.hpp> -#if defined(KOKKOS_ENABLE_PROFILING) -#include <impl/Kokkos_Profiling_Interface.hpp> +#include <impl/Kokkos_Tools.hpp> #include <typeinfo> -#endif #include <impl/Kokkos_Tags.hpp> #include <impl/Kokkos_Traits.hpp> #include <impl/Kokkos_FunctorAnalysis.hpp> #include <impl/Kokkos_FunctorAdapter.hpp> -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG_PRINT_KERNEL_NAMES #include <iostream> #endif @@ -83,7 +81,7 @@ namespace Impl { */ template <class Functor, class Policy, class EnableFunctor, class EnablePolicy> struct FunctorPolicyExecutionSpace { - typedef Kokkos::DefaultExecutionSpace execution_space; + using execution_space = Kokkos::DefaultExecutionSpace; }; template <class Functor, class Policy> @@ -91,7 +89,7 @@ struct FunctorPolicyExecutionSpace< Functor, Policy, typename enable_if_type<typename Functor::device_type>::type, typename enable_if_type<typename Policy ::execution_space>::type> { - typedef typename Policy ::execution_space execution_space; + using execution_space = typename Policy::execution_space; }; template <class Functor, class Policy> @@ -99,14 +97,14 @@ struct FunctorPolicyExecutionSpace< Functor, Policy, typename enable_if_type<typename Functor::execution_space>::type, typename enable_if_type<typename Policy ::execution_space>::type> { - typedef typename Policy ::execution_space execution_space; + using execution_space = typename Policy::execution_space; }; template <class Functor, class Policy, class EnableFunctor> struct FunctorPolicyExecutionSpace< Functor, Policy, EnableFunctor, typename enable_if_type<typename Policy::execution_space>::type> { - typedef typename Policy ::execution_space execution_space; + using execution_space = typename Policy::execution_space; }; template <class Functor, class Policy, class EnablePolicy> @@ -114,7 +112,7 @@ struct FunctorPolicyExecutionSpace< Functor, Policy, typename enable_if_type<typename Functor::device_type>::type, EnablePolicy> { - typedef typename Functor::device_type::execution_space execution_space; + using execution_space = typename Functor::device_type::execution_space; }; template <class Functor, class Policy, class EnablePolicy> @@ -122,7 +120,7 @@ struct FunctorPolicyExecutionSpace< Functor, Policy, typename enable_if_type<typename Functor::execution_space>::type, EnablePolicy> { - typedef typename Functor::execution_space execution_space; + using execution_space = typename Functor::execution_space; }; } // namespace Impl @@ -137,12 +135,12 @@ namespace Kokkos { * * A "functor" is a class containing the function to execute in parallel, * data needed for that execution, and an optional \c execution_space - * typedef. Here is an example functor for parallel_for: + * alias. Here is an example functor for parallel_for: * * \code * class FunctorType { * public: - * typedef ... execution_space ; + * using execution_space = ...; * void operator() ( WorkType iwork ) const ; * }; * \endcode @@ -161,64 +159,41 @@ inline void parallel_for( typename std::enable_if< Kokkos::Impl::is_execution_policy<ExecPolicy>::value>::type* = nullptr) { -#if defined(KOKKOS_ENABLE_PROFILING) uint64_t kpID = 0; - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Impl::ParallelConstructName<FunctorType, - typename ExecPolicy::work_tag> - name(str); - Kokkos::Profiling::beginParallelFor( - name.get(), Kokkos::Profiling::Experimental::device_id(policy.space()), - &kpID); - } -#else - (void)str; -#endif + + ExecPolicy inner_policy = policy; + Kokkos::Tools::Impl::begin_parallel_for(inner_policy, functor, str, kpID); Kokkos::Impl::shared_allocation_tracking_disable(); - Impl::ParallelFor<FunctorType, ExecPolicy> closure(functor, policy); + Impl::ParallelFor<FunctorType, ExecPolicy> closure(functor, inner_policy); Kokkos::Impl::shared_allocation_tracking_enable(); closure.execute(); -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::endParallelFor(kpID); - } -#endif + Kokkos::Tools::Impl::end_parallel_for(inner_policy, functor, str, kpID); } template <class FunctorType> inline void parallel_for(const size_t work_count, const FunctorType& functor, const std::string& str = "") { - typedef typename Impl::FunctorPolicyExecutionSpace< - FunctorType, void>::execution_space execution_space; - typedef RangePolicy<execution_space> policy; + using execution_space = + typename Impl::FunctorPolicyExecutionSpace<FunctorType, + void>::execution_space; + using policy = RangePolicy<execution_space>; -#if defined(KOKKOS_ENABLE_PROFILING) uint64_t kpID = 0; - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Impl::ParallelConstructName<FunctorType, void> name(str); - Kokkos::Profiling::beginParallelFor( - name.get(), - Kokkos::Profiling::Experimental::device_id(policy().space()), &kpID); - } -#else - (void)str; -#endif + + policy execution_policy = policy(0, work_count); + + Kokkos::Tools::Impl::begin_parallel_for(execution_policy, functor, str, kpID); Kokkos::Impl::shared_allocation_tracking_disable(); - Impl::ParallelFor<FunctorType, policy> closure(functor, - policy(0, work_count)); + Impl::ParallelFor<FunctorType, policy> closure(functor, execution_policy); Kokkos::Impl::shared_allocation_tracking_enable(); closure.execute(); -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::endParallelFor(kpID); - } -#endif + Kokkos::Tools::Impl::end_parallel_for(execution_policy, functor, str, kpID); } template <class ExecPolicy, class FunctorType> @@ -273,11 +248,11 @@ namespace Kokkos { /// class ScanFunctor { /// public: /// // The Kokkos device type -/// typedef ... execution_space; +/// using execution_space = ...; /// // Type of an entry of the array containing the result; /// // also the type of each of the entries combined using /// // operator() or join(). -/// typedef PodType value_type; +/// using value_type = PodType; /// /// void operator () (const ExecPolicy::member_type & i, value_type& update, /// const bool final_pass) const; void init (value_type& update) const; void @@ -293,9 +268,9 @@ namespace Kokkos { /// template<class SpaceType> /// class InclScanFunctor { /// public: -/// typedef SpaceType execution_space; -/// typedef int value_type; -/// typedef typename SpaceType::size_type size_type; +/// using execution_space = SpaceType; +/// using value_type = int; +/// using size_type = typename SpaceType::size_type; /// /// InclScanFunctor( Kokkos::View<value_type*, execution_space> x /// , Kokkos::View<value_type*, execution_space> y ) : m_x(x), @@ -332,9 +307,9 @@ namespace Kokkos { /// template<class SpaceType> /// class ExclScanFunctor { /// public: -/// typedef SpaceType execution_space; -/// typedef int value_type; -/// typedef typename SpaceType::size_type size_type; +/// using execution_space = SpaceType; +/// using value_type = int; +/// using size_type = typename SpaceType::size_type; /// /// ExclScanFunctor (Kokkos::View<value_type*, execution_space> x) : x_ (x) {} /// @@ -370,9 +345,9 @@ namespace Kokkos { /// template<class SpaceType> /// class OffsetScanFunctor { /// public: -/// typedef SpaceType execution_space; -/// typedef int value_type; -/// typedef typename SpaceType::size_type size_type; +/// using execution_space = SpaceType; +/// using value_type = int; +/// using size_type = typename SpaceType::size_type; /// /// // lastIndex_ is the last valid index (zero-based) of x. /// // If x has length zero, then lastIndex_ won't be used anyway. @@ -415,65 +390,40 @@ inline void parallel_scan( typename std::enable_if< Kokkos::Impl::is_execution_policy<ExecutionPolicy>::value>::type* = nullptr) { -#if defined(KOKKOS_ENABLE_PROFILING) - uint64_t kpID = 0; - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Impl::ParallelConstructName<FunctorType, - typename ExecutionPolicy::work_tag> - name(str); - Kokkos::Profiling::beginParallelScan( - name.get(), Kokkos::Profiling::Experimental::device_id(policy.space()), - &kpID); - } -#else - (void)str; -#endif + uint64_t kpID = 0; + ExecutionPolicy inner_policy = policy; + Kokkos::Tools::Impl::begin_parallel_scan(inner_policy, functor, str, kpID); Kokkos::Impl::shared_allocation_tracking_disable(); - Impl::ParallelScan<FunctorType, ExecutionPolicy> closure(functor, policy); + Impl::ParallelScan<FunctorType, ExecutionPolicy> closure(functor, + inner_policy); Kokkos::Impl::shared_allocation_tracking_enable(); closure.execute(); -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::endParallelScan(kpID); - } -#endif + Kokkos::Tools::Impl::end_parallel_scan(inner_policy, functor, str, kpID); } template <class FunctorType> inline void parallel_scan(const size_t work_count, const FunctorType& functor, const std::string& str = "") { - typedef typename Kokkos::Impl::FunctorPolicyExecutionSpace< - FunctorType, void>::execution_space execution_space; + using execution_space = + typename Kokkos::Impl::FunctorPolicyExecutionSpace<FunctorType, + void>::execution_space; - typedef Kokkos::RangePolicy<execution_space> policy; + using policy = Kokkos::RangePolicy<execution_space>; -#if defined(KOKKOS_ENABLE_PROFILING) uint64_t kpID = 0; - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Impl::ParallelConstructName<FunctorType, void> name(str); - Kokkos::Profiling::beginParallelScan( - name.get(), - Kokkos::Profiling::Experimental::device_id(policy().space()), &kpID); - } -#else - (void)str; -#endif - + policy execution_policy(0, work_count); + Kokkos::Tools::Impl::begin_parallel_scan(execution_policy, functor, str, + kpID); Kokkos::Impl::shared_allocation_tracking_disable(); - Impl::ParallelScan<FunctorType, policy> closure(functor, - policy(0, work_count)); + Impl::ParallelScan<FunctorType, policy> closure(functor, execution_policy); Kokkos::Impl::shared_allocation_tracking_enable(); closure.execute(); -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::endParallelScan(kpID); - } -#endif + Kokkos::Tools::Impl::end_parallel_scan(execution_policy, functor, str, kpID); } template <class ExecutionPolicy, class FunctorType> @@ -500,32 +450,19 @@ inline void parallel_scan( typename std::enable_if< Kokkos::Impl::is_execution_policy<ExecutionPolicy>::value>::type* = nullptr) { -#if defined(KOKKOS_ENABLE_PROFILING) - uint64_t kpID = 0; - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Impl::ParallelConstructName<FunctorType, - typename ExecutionPolicy::work_tag> - name(str); - Kokkos::Profiling::beginParallelScan( - name.get(), Kokkos::Profiling::Experimental::device_id(policy.space()), - &kpID); - } -#else - (void)str; -#endif + uint64_t kpID = 0; + ExecutionPolicy inner_policy = policy; + Kokkos::Tools::Impl::begin_parallel_scan(inner_policy, functor, str, kpID); Kokkos::Impl::shared_allocation_tracking_disable(); Impl::ParallelScanWithTotal<FunctorType, ExecutionPolicy, ReturnType> closure( - functor, policy, return_value); + functor, inner_policy, return_value); Kokkos::Impl::shared_allocation_tracking_enable(); closure.execute(); -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::endParallelScan(kpID); - } -#endif + Kokkos::Tools::Impl::end_parallel_scan(inner_policy, functor, str, kpID); + policy.space().fence(); } @@ -533,35 +470,26 @@ template <class FunctorType, class ReturnType> inline void parallel_scan(const size_t work_count, const FunctorType& functor, ReturnType& return_value, const std::string& str = "") { - typedef typename Kokkos::Impl::FunctorPolicyExecutionSpace< - FunctorType, void>::execution_space execution_space; + using execution_space = + typename Kokkos::Impl::FunctorPolicyExecutionSpace<FunctorType, + void>::execution_space; - typedef Kokkos::RangePolicy<execution_space> policy; + using policy = Kokkos::RangePolicy<execution_space>; -#if defined(KOKKOS_ENABLE_PROFILING) + policy execution_policy(0, work_count); uint64_t kpID = 0; - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Impl::ParallelConstructName<FunctorType, void> name(str); - Kokkos::Profiling::beginParallelScan( - name.get(), - Kokkos::Profiling::Experimental::device_id(policy().space()), &kpID); - } -#else - (void)str; -#endif + Kokkos::Tools::Impl::begin_parallel_scan(execution_policy, functor, str, + kpID); Kokkos::Impl::shared_allocation_tracking_disable(); Impl::ParallelScanWithTotal<FunctorType, policy, ReturnType> closure( - functor, policy(0, work_count), return_value); + functor, execution_policy, return_value); Kokkos::Impl::shared_allocation_tracking_enable(); closure.execute(); -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::endParallelScan(kpID); - } -#endif + Kokkos::Tools::Impl::end_parallel_scan(execution_policy, functor, str, kpID); + execution_space().fence(); } diff --git a/packages/kokkos/core/src/Kokkos_Parallel_Reduce.hpp b/packages/kokkos/core/src/Kokkos_Parallel_Reduce.hpp index 4ef2dbdf0..e2e894da6 100644 --- a/packages/kokkos/core/src/Kokkos_Parallel_Reduce.hpp +++ b/packages/kokkos/core/src/Kokkos_Parallel_Reduce.hpp @@ -46,6 +46,10 @@ #define KOKKOS_PARALLEL_REDUCE_HPP #include <Kokkos_NumericTraits.hpp> +#include <Kokkos_View.hpp> +#include <impl/Kokkos_FunctorAnalysis.hpp> +#include <impl/Kokkos_FunctorAdapter.hpp> +#include <type_traits> namespace Kokkos { @@ -66,10 +70,10 @@ template <class Scalar, class Space> struct Sum { public: // Required - typedef Sum reducer; - typedef typename std::remove_cv<Scalar>::type value_type; + using reducer = Sum<Scalar, Space>; + using value_type = typename std::remove_cv<Scalar>::type; - typedef Kokkos::View<value_type, Space> result_view_type; + using result_view_type = Kokkos::View<value_type, Space>; private: result_view_type value; @@ -111,10 +115,10 @@ template <class Scalar, class Space> struct Prod { public: // Required - typedef Prod reducer; - typedef typename std::remove_cv<Scalar>::type value_type; + using reducer = Prod<Scalar, Space>; + using value_type = typename std::remove_cv<Scalar>::type; - typedef Kokkos::View<value_type, Space> result_view_type; + using result_view_type = Kokkos::View<value_type, Space>; private: result_view_type value; @@ -156,10 +160,10 @@ template <class Scalar, class Space> struct Min { public: // Required - typedef Min reducer; - typedef typename std::remove_cv<Scalar>::type value_type; + using reducer = Min<Scalar, Space>; + using value_type = typename std::remove_cv<Scalar>::type; - typedef Kokkos::View<value_type, Space> result_view_type; + using result_view_type = Kokkos::View<value_type, Space>; private: result_view_type value; @@ -203,10 +207,10 @@ template <class Scalar, class Space> struct Max { public: // Required - typedef Max reducer; - typedef typename std::remove_cv<Scalar>::type value_type; + using reducer = Max<Scalar, Space>; + using value_type = typename std::remove_cv<Scalar>::type; - typedef Kokkos::View<value_type, Space> result_view_type; + using result_view_type = Kokkos::View<value_type, Space>; private: result_view_type value; @@ -251,10 +255,10 @@ template <class Scalar, class Space> struct LAnd { public: // Required - typedef LAnd reducer; - typedef typename std::remove_cv<Scalar>::type value_type; + using reducer = LAnd<Scalar, Space>; + using value_type = typename std::remove_cv<Scalar>::type; - typedef Kokkos::View<value_type, Space> result_view_type; + using result_view_type = Kokkos::View<value_type, Space>; private: result_view_type value; @@ -297,10 +301,10 @@ template <class Scalar, class Space> struct LOr { public: // Required - typedef LOr reducer; - typedef typename std::remove_cv<Scalar>::type value_type; + using reducer = LOr<Scalar, Space>; + using value_type = typename std::remove_cv<Scalar>::type; - typedef Kokkos::View<value_type, Space> result_view_type; + using result_view_type = Kokkos::View<value_type, Space>; private: result_view_type value; @@ -344,10 +348,10 @@ template <class Scalar, class Space> struct BAnd { public: // Required - typedef BAnd reducer; - typedef typename std::remove_cv<Scalar>::type value_type; + using reducer = BAnd<Scalar, Space>; + using value_type = typename std::remove_cv<Scalar>::type; - typedef Kokkos::View<value_type, Space> result_view_type; + using result_view_type = Kokkos::View<value_type, Space>; private: result_view_type value; @@ -391,10 +395,10 @@ template <class Scalar, class Space> struct BOr { public: // Required - typedef BOr reducer; - typedef typename std::remove_cv<Scalar>::type value_type; + using reducer = BOr<Scalar, Space>; + using value_type = typename std::remove_cv<Scalar>::type; - typedef Kokkos::View<value_type, Space> result_view_type; + using result_view_type = Kokkos::View<value_type, Space>; private: result_view_type value; @@ -455,15 +459,15 @@ struct ValLocScalar { template <class Scalar, class Index, class Space> struct MinLoc { private: - typedef typename std::remove_cv<Scalar>::type scalar_type; - typedef typename std::remove_cv<Index>::type index_type; + using scalar_type = typename std::remove_cv<Scalar>::type; + using index_type = typename std::remove_cv<Index>::type; public: // Required - typedef MinLoc reducer; - typedef ValLocScalar<scalar_type, index_type> value_type; + using reducer = MinLoc<Scalar, Index, Space>; + using value_type = ValLocScalar<scalar_type, index_type>; - typedef Kokkos::View<value_type, Space> result_view_type; + using result_view_type = Kokkos::View<value_type, Space>; private: result_view_type value; @@ -507,15 +511,15 @@ struct MinLoc { template <class Scalar, class Index, class Space> struct MaxLoc { private: - typedef typename std::remove_cv<Scalar>::type scalar_type; - typedef typename std::remove_cv<Index>::type index_type; + using scalar_type = typename std::remove_cv<Scalar>::type; + using index_type = typename std::remove_cv<Index>::type; public: // Required - typedef MaxLoc reducer; - typedef ValLocScalar<scalar_type, index_type> value_type; + using reducer = MaxLoc<Scalar, Index, Space>; + using value_type = ValLocScalar<scalar_type, index_type>; - typedef Kokkos::View<value_type, Space> result_view_type; + using result_view_type = Kokkos::View<value_type, Space>; private: result_view_type value; @@ -576,14 +580,14 @@ struct MinMaxScalar { template <class Scalar, class Space> struct MinMax { private: - typedef typename std::remove_cv<Scalar>::type scalar_type; + using scalar_type = typename std::remove_cv<Scalar>::type; public: // Required - typedef MinMax reducer; - typedef MinMaxScalar<scalar_type> value_type; + using reducer = MinMax<Scalar, Space>; + using value_type = MinMaxScalar<scalar_type>; - typedef Kokkos::View<value_type, Space> result_view_type; + using result_view_type = Kokkos::View<value_type, Space>; private: result_view_type value; @@ -659,15 +663,15 @@ struct MinMaxLocScalar { template <class Scalar, class Index, class Space> struct MinMaxLoc { private: - typedef typename std::remove_cv<Scalar>::type scalar_type; - typedef typename std::remove_cv<Index>::type index_type; + using scalar_type = typename std::remove_cv<Scalar>::type; + using index_type = typename std::remove_cv<Index>::type; public: // Required - typedef MinMaxLoc reducer; - typedef MinMaxLocScalar<scalar_type, index_type> value_type; + using reducer = MinMaxLoc<Scalar, Index, Space>; + using value_type = MinMaxLocScalar<scalar_type, index_type>; - typedef Kokkos::View<value_type, Space> result_view_type; + using result_view_type = Kokkos::View<value_type, Space>; private: result_view_type value; @@ -734,14 +738,14 @@ template <class ReturnType, class FunctorType> struct ParallelReduceReturnValue< typename std::enable_if<Kokkos::is_view<ReturnType>::value>::type, ReturnType, FunctorType> { - typedef ReturnType return_type; - typedef InvalidType reducer_type; + using return_type = ReturnType; + using reducer_type = InvalidType; - typedef typename return_type::value_type value_type_scalar; - typedef typename return_type::value_type* const value_type_array; + using value_type_scalar = typename return_type::value_type; + using value_type_array = typename return_type::value_type* const; - typedef typename if_c<return_type::rank == 0, value_type_scalar, - value_type_array>::type value_type; + using value_type = typename if_c<return_type::rank == 0, value_type_scalar, + value_type_array>::type; static return_type& return_value(ReturnType& return_val, const FunctorType&) { return return_val; @@ -755,12 +759,12 @@ struct ParallelReduceReturnValue< !std::is_pointer<ReturnType>::value) && !Kokkos::is_reducer_type<ReturnType>::value>::type, ReturnType, FunctorType> { - typedef Kokkos::View<ReturnType, Kokkos::HostSpace, Kokkos::MemoryUnmanaged> - return_type; + using return_type = + Kokkos::View<ReturnType, Kokkos::HostSpace, Kokkos::MemoryUnmanaged>; - typedef InvalidType reducer_type; + using reducer_type = InvalidType; - typedef typename return_type::value_type value_type; + using value_type = typename return_type::value_type; static return_type return_value(ReturnType& return_val, const FunctorType&) { return return_type(&return_val); @@ -772,24 +776,19 @@ struct ParallelReduceReturnValue< typename std::enable_if<(std::is_array<ReturnType>::value || std::is_pointer<ReturnType>::value)>::type, ReturnType, FunctorType> { - typedef Kokkos::View<typename std::remove_const<ReturnType>::type, - Kokkos::HostSpace, Kokkos::MemoryUnmanaged> - return_type; + using return_type = Kokkos::View<typename std::remove_const<ReturnType>::type, + Kokkos::HostSpace, Kokkos::MemoryUnmanaged>; - typedef InvalidType reducer_type; + using reducer_type = InvalidType; - typedef typename return_type::value_type value_type[]; + using value_type = typename return_type::value_type[]; static return_type return_value(ReturnType& return_val, const FunctorType& functor) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - return return_type(return_val, functor.value_count); -#else if (std::is_array<ReturnType>::value) return return_type(return_val); else return return_type(return_val, functor.value_count); -#endif } }; @@ -797,9 +796,9 @@ template <class ReturnType, class FunctorType> struct ParallelReduceReturnValue< typename std::enable_if<Kokkos::is_reducer_type<ReturnType>::value>::type, ReturnType, FunctorType> { - typedef ReturnType return_type; - typedef ReturnType reducer_type; - typedef typename return_type::value_type value_type; + using return_type = ReturnType; + using reducer_type = ReturnType; + using value_type = typename return_type::value_type; static return_type return_value(ReturnType& return_val, const FunctorType&) { return return_val; @@ -814,7 +813,7 @@ struct ParallelReducePolicyType< typename std::enable_if< Kokkos::Impl::is_execution_policy<PolicyType>::value>::type, PolicyType, FunctorType> { - typedef PolicyType policy_type; + using policy_type = PolicyType; static PolicyType policy(const PolicyType& policy_) { return policy_; } }; @@ -822,10 +821,11 @@ template <class PolicyType, class FunctorType> struct ParallelReducePolicyType< typename std::enable_if<std::is_integral<PolicyType>::value>::type, PolicyType, FunctorType> { - typedef typename Impl::FunctorPolicyExecutionSpace< - FunctorType, void>::execution_space execution_space; + using execution_space = + typename Impl::FunctorPolicyExecutionSpace<FunctorType, + void>::execution_space; - typedef Kokkos::RangePolicy<execution_space> policy_type; + using policy_type = Kokkos::RangePolicy<execution_space>; static policy_type policy(const PolicyType& policy_) { return policy_type(0, policy_); @@ -835,7 +835,7 @@ struct ParallelReducePolicyType< template <class FunctorType, class ExecPolicy, class ValueType, class ExecutionSpace> struct ParallelReduceFunctorType { - typedef FunctorType functor_type; + using functor_type = FunctorType; static const functor_type& functor(const functor_type& functor) { return functor; } @@ -843,49 +843,42 @@ struct ParallelReduceFunctorType { template <class PolicyType, class FunctorType, class ReturnType> struct ParallelReduceAdaptor { - typedef Impl::ParallelReduceReturnValue<void, ReturnType, FunctorType> - return_value_adapter; + using return_value_adapter = + Impl::ParallelReduceReturnValue<void, ReturnType, FunctorType>; #ifdef KOKKOS_IMPL_NEED_FUNCTOR_WRAPPER - typedef Impl::ParallelReduceFunctorType< - FunctorType, PolicyType, typename return_value_adapter::value_type, - typename PolicyType::execution_space> - functor_adaptor; + using functor_adaptor = + Impl::ParallelReduceFunctorType<FunctorType, PolicyType, + typename return_value_adapter::value_type, + typename PolicyType::execution_space>; #endif static inline void execute(const std::string& label, const PolicyType& policy, const FunctorType& functor, ReturnType& return_value) { -#if defined(KOKKOS_ENABLE_PROFILING) uint64_t kpID = 0; - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Impl::ParallelConstructName<FunctorType, - typename PolicyType::work_tag> - name(label); - Kokkos::Profiling::beginParallelReduce(name.get(), 0, &kpID); - } -#else - (void)label; -#endif + + PolicyType inner_policy = policy; + Kokkos::Tools::Impl::begin_parallel_reduce< + typename return_value_adapter::reducer_type>(inner_policy, functor, + label, kpID); Kokkos::Impl::shared_allocation_tracking_disable(); #ifdef KOKKOS_IMPL_NEED_FUNCTOR_WRAPPER Impl::ParallelReduce<typename functor_adaptor::functor_type, PolicyType, typename return_value_adapter::reducer_type> - closure(functor_adaptor::functor(functor), policy, + closure(functor_adaptor::functor(functor), inner_policy, return_value_adapter::return_value(return_value, functor)); #else Impl::ParallelReduce<FunctorType, PolicyType, typename return_value_adapter::reducer_type> - closure(functor, policy, + closure(functor, inner_policy, return_value_adapter::return_value(return_value, functor)); #endif Kokkos::Impl::shared_allocation_tracking_enable(); closure.execute(); -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::endParallelReduce(kpID); - } -#endif + Kokkos::Tools::Impl::end_parallel_reduce< + typename return_value_adapter::reducer_type>(inner_policy, functor, + label, kpID); } }; } // namespace Impl @@ -918,23 +911,50 @@ struct ReducerHasTestReferenceFunction { }; }; -template <class ExecutionSpace, class T, - bool is_reducer = ReducerHasTestReferenceFunction<T>::value> -struct ParallelReduceFence { - static void fence(const ExecutionSpace& execution_space, const T&) { - execution_space.fence(); - } -}; +template <class ExecutionSpace, class Arg> +constexpr std::enable_if_t< + // constraints only necessary because SFINAE lacks subsumption + !ReducerHasTestReferenceFunction<Arg>::value && + !Kokkos::is_view<Arg>::value, + // return type: + bool> +parallel_reduce_needs_fence(ExecutionSpace const&, Arg const&) { + return true; +} + +template <class ExecutionSpace, class Reducer> +constexpr std::enable_if_t< + // equivalent to: + // (requires (Reducer const& r) { + // { reducer.references_scalar() } -> std::convertible_to<bool>; + // }) + ReducerHasTestReferenceFunction<Reducer>::value, + // return type: + bool> +parallel_reduce_needs_fence(ExecutionSpace const&, Reducer const& reducer) { + return reducer.references_scalar(); +} + +template <class ExecutionSpace, class ViewLike> +constexpr std::enable_if_t< + // requires Kokkos::ViewLike<ViewLike> + Kokkos::is_view<ViewLike>::value, + // return type: + bool> +parallel_reduce_needs_fence(ExecutionSpace const&, ViewLike const&) { + return false; +} + template <class ExecutionSpace, class... Args> -struct ParallelReduceFence<ExecutionSpace, View<Args...>, false> { - static void fence(const ExecutionSpace&, const View<Args...>){}; -}; -template <class ExecutionSpace, class T> -struct ParallelReduceFence<ExecutionSpace, T, true> { - static void fence(const ExecutionSpace& execution_space, const T& reducer) { - if (reducer.references_scalar()) execution_space.fence(); +struct ParallelReduceFence { + template <class... ArgsDeduced> + static void fence(const ExecutionSpace& ex, ArgsDeduced&&... args) { + if (Impl::parallel_reduce_needs_fence(ex, (ArgsDeduced &&) args...)) { + ex.fence(); + } } }; + } // namespace Impl /** \brief Parallel reduction @@ -947,26 +967,31 @@ struct ParallelReduceFence<ExecutionSpace, T, true> { * \code * class FunctorType { // For POD value type * public: - * typedef ... execution_space ; - * typedef <podType> value_type ; + * using execution_space = ...; + * using value_type = <podType>; * void operator()( <intType> iwork , <podType> & update ) const ; * void init( <podType> & update ) const ; * void join( volatile <podType> & update , * volatile const <podType> & input ) const ; * - * typedef true_type has_final ; + * using has_final = true_type; * void final( <podType> & update ) const ; * }; * \endcode * * Example of a parallel_reduce functor for an array of POD (plain old data) - * values: \code class FunctorType { // For array of POD value public: typedef - * ... execution_space ; typedef <podType> value_type[] ; void operator()( - * <intType> , <podType> update[] ) const ; void init( <podType> update[] ) - * const ; void join( volatile <podType> update[] , volatile const - * <podType> input[] ) const ; + * values: + * \code + * class FunctorType { // For array of POD value + * public: + * using execution_space = ...; + * using value_type = <podType>[]; + * void operator()( <intType> , <podType> update[] ) const ; + * void init( <podType> update[] ) const ; + * void join( volatile <podType> update[] , + * volatile const <podType> input[] ) const ; * - * typedef true_type has_final ; + * using has_final = true_type; * void final( <podType> update[] ) const ; * }; * \endcode @@ -975,12 +1000,10 @@ struct ParallelReduceFence<ExecutionSpace, T, true> { // ReturnValue is scalar or array: take by reference template <class PolicyType, class FunctorType, class ReturnType> -inline void parallel_reduce( - const std::string& label, const PolicyType& policy, - const FunctorType& functor, ReturnType& return_value, - typename std::enable_if< - Kokkos::Impl::is_execution_policy<PolicyType>::value>::type* = - nullptr) { +inline typename std::enable_if< + Kokkos::Impl::is_execution_policy<PolicyType>::value>::type +parallel_reduce(const std::string& label, const PolicyType& policy, + const FunctorType& functor, ReturnType& return_value) { Impl::ParallelReduceAdaptor<PolicyType, FunctorType, ReturnType>::execute( label, policy, functor, return_value); Impl::ParallelReduceFence<typename PolicyType::execution_space, @@ -988,12 +1011,10 @@ inline void parallel_reduce( } template <class PolicyType, class FunctorType, class ReturnType> -inline void parallel_reduce( - const PolicyType& policy, const FunctorType& functor, - ReturnType& return_value, - typename std::enable_if< - Kokkos::Impl::is_execution_policy<PolicyType>::value>::type* = - nullptr) { +inline typename std::enable_if< + Kokkos::Impl::is_execution_policy<PolicyType>::value>::type +parallel_reduce(const PolicyType& policy, const FunctorType& functor, + ReturnType& return_value) { Impl::ParallelReduceAdaptor<PolicyType, FunctorType, ReturnType>::execute( "", policy, functor, return_value); Impl::ParallelReduceFence<typename PolicyType::execution_space, @@ -1003,8 +1024,9 @@ inline void parallel_reduce( template <class FunctorType, class ReturnType> inline void parallel_reduce(const size_t& policy, const FunctorType& functor, ReturnType& return_value) { - typedef typename Impl::ParallelReducePolicyType< - void, size_t, FunctorType>::policy_type policy_type; + using policy_type = + typename Impl::ParallelReducePolicyType<void, size_t, + FunctorType>::policy_type; Impl::ParallelReduceAdaptor<policy_type, FunctorType, ReturnType>::execute( "", policy_type(0, policy), functor, return_value); Impl::ParallelReduceFence<typename policy_type::execution_space, ReturnType>:: @@ -1015,8 +1037,9 @@ template <class FunctorType, class ReturnType> inline void parallel_reduce(const std::string& label, const size_t& policy, const FunctorType& functor, ReturnType& return_value) { - typedef typename Impl::ParallelReducePolicyType< - void, size_t, FunctorType>::policy_type policy_type; + using policy_type = + typename Impl::ParallelReducePolicyType<void, size_t, + FunctorType>::policy_type; Impl::ParallelReduceAdaptor<policy_type, FunctorType, ReturnType>::execute( label, policy_type(0, policy), functor, return_value); Impl::ParallelReduceFence<typename policy_type::execution_space, ReturnType>:: @@ -1026,12 +1049,10 @@ inline void parallel_reduce(const std::string& label, const size_t& policy, // ReturnValue as View or Reducer: take by copy to allow for inline construction template <class PolicyType, class FunctorType, class ReturnType> -inline void parallel_reduce( - const std::string& label, const PolicyType& policy, - const FunctorType& functor, const ReturnType& return_value, - typename std::enable_if< - Kokkos::Impl::is_execution_policy<PolicyType>::value>::type* = - nullptr) { +inline typename std::enable_if< + Kokkos::Impl::is_execution_policy<PolicyType>::value>::type +parallel_reduce(const std::string& label, const PolicyType& policy, + const FunctorType& functor, const ReturnType& return_value) { ReturnType return_value_impl = return_value; Impl::ParallelReduceAdaptor<PolicyType, FunctorType, ReturnType>::execute( label, policy, functor, return_value_impl); @@ -1040,12 +1061,10 @@ inline void parallel_reduce( } template <class PolicyType, class FunctorType, class ReturnType> -inline void parallel_reduce( - const PolicyType& policy, const FunctorType& functor, - const ReturnType& return_value, - typename std::enable_if< - Kokkos::Impl::is_execution_policy<PolicyType>::value>::type* = - nullptr) { +inline typename std::enable_if< + Kokkos::Impl::is_execution_policy<PolicyType>::value>::type +parallel_reduce(const PolicyType& policy, const FunctorType& functor, + const ReturnType& return_value) { ReturnType return_value_impl = return_value; Impl::ParallelReduceAdaptor<PolicyType, FunctorType, ReturnType>::execute( "", policy, functor, return_value_impl); @@ -1056,8 +1075,9 @@ inline void parallel_reduce( template <class FunctorType, class ReturnType> inline void parallel_reduce(const size_t& policy, const FunctorType& functor, const ReturnType& return_value) { - typedef typename Impl::ParallelReducePolicyType< - void, size_t, FunctorType>::policy_type policy_type; + using policy_type = + typename Impl::ParallelReducePolicyType<void, size_t, + FunctorType>::policy_type; ReturnType return_value_impl = return_value; Impl::ParallelReduceAdaptor<policy_type, FunctorType, ReturnType>::execute( "", policy_type(0, policy), functor, return_value_impl); @@ -1069,8 +1089,9 @@ template <class FunctorType, class ReturnType> inline void parallel_reduce(const std::string& label, const size_t& policy, const FunctorType& functor, const ReturnType& return_value) { - typedef typename Impl::ParallelReducePolicyType< - void, size_t, FunctorType>::policy_type policy_type; + using policy_type = + typename Impl::ParallelReducePolicyType<void, size_t, + FunctorType>::policy_type; ReturnType return_value_impl = return_value; Impl::ParallelReduceAdaptor<policy_type, FunctorType, ReturnType>::execute( label, policy_type(0, policy), functor, return_value_impl); @@ -1087,18 +1108,19 @@ inline void parallel_reduce( typename std::enable_if< Kokkos::Impl::is_execution_policy<PolicyType>::value>::type* = nullptr) { - typedef Kokkos::Impl::FunctorValueTraits<FunctorType, void> ValueTraits; - typedef typename Kokkos::Impl::if_c< - (ValueTraits::StaticValueSize != 0), typename ValueTraits::value_type, - typename ValueTraits::pointer_type>::type value_type; + using ValueTraits = Kokkos::Impl::FunctorValueTraits<FunctorType, void>; + using value_type = + typename Kokkos::Impl::if_c<(ValueTraits::StaticValueSize != 0), + typename ValueTraits::value_type, + typename ValueTraits::pointer_type>::type; static_assert( Impl::FunctorAnalysis<Impl::FunctorPatternInterface::REDUCE, PolicyType, FunctorType>::has_final_member_function, "Calling parallel_reduce without either return value or final function."); - typedef Kokkos::View<value_type, Kokkos::HostSpace, Kokkos::MemoryUnmanaged> - result_view_type; + using result_view_type = + Kokkos::View<value_type, Kokkos::HostSpace, Kokkos::MemoryUnmanaged>; result_view_type result_view; Impl::ParallelReduceAdaptor<PolicyType, FunctorType, @@ -1112,18 +1134,19 @@ inline void parallel_reduce( typename std::enable_if< Kokkos::Impl::is_execution_policy<PolicyType>::value>::type* = nullptr) { - typedef Kokkos::Impl::FunctorValueTraits<FunctorType, void> ValueTraits; - typedef typename Kokkos::Impl::if_c< - (ValueTraits::StaticValueSize != 0), typename ValueTraits::value_type, - typename ValueTraits::pointer_type>::type value_type; + using ValueTraits = Kokkos::Impl::FunctorValueTraits<FunctorType, void>; + using value_type = + typename Kokkos::Impl::if_c<(ValueTraits::StaticValueSize != 0), + typename ValueTraits::value_type, + typename ValueTraits::pointer_type>::type; static_assert( Impl::FunctorAnalysis<Impl::FunctorPatternInterface::REDUCE, PolicyType, FunctorType>::has_final_member_function, "Calling parallel_reduce without either return value or final function."); - typedef Kokkos::View<value_type, Kokkos::HostSpace, Kokkos::MemoryUnmanaged> - result_view_type; + using result_view_type = + Kokkos::View<value_type, Kokkos::HostSpace, Kokkos::MemoryUnmanaged>; result_view_type result_view; Impl::ParallelReduceAdaptor<PolicyType, FunctorType, @@ -1133,12 +1156,14 @@ inline void parallel_reduce( template <class FunctorType> inline void parallel_reduce(const size_t& policy, const FunctorType& functor) { - typedef typename Impl::ParallelReducePolicyType< - void, size_t, FunctorType>::policy_type policy_type; - typedef Kokkos::Impl::FunctorValueTraits<FunctorType, void> ValueTraits; - typedef typename Kokkos::Impl::if_c< - (ValueTraits::StaticValueSize != 0), typename ValueTraits::value_type, - typename ValueTraits::pointer_type>::type value_type; + using policy_type = + typename Impl::ParallelReducePolicyType<void, size_t, + FunctorType>::policy_type; + using ValueTraits = Kokkos::Impl::FunctorValueTraits<FunctorType, void>; + using value_type = + typename Kokkos::Impl::if_c<(ValueTraits::StaticValueSize != 0), + typename ValueTraits::value_type, + typename ValueTraits::pointer_type>::type; static_assert( Impl::FunctorAnalysis<Impl::FunctorPatternInterface::REDUCE, @@ -1146,8 +1171,8 @@ inline void parallel_reduce(const size_t& policy, const FunctorType& functor) { FunctorType>::has_final_member_function, "Calling parallel_reduce without either return value or final function."); - typedef Kokkos::View<value_type, Kokkos::HostSpace, Kokkos::MemoryUnmanaged> - result_view_type; + using result_view_type = + Kokkos::View<value_type, Kokkos::HostSpace, Kokkos::MemoryUnmanaged>; result_view_type result_view; Impl::ParallelReduceAdaptor<policy_type, FunctorType, @@ -1159,12 +1184,14 @@ inline void parallel_reduce(const size_t& policy, const FunctorType& functor) { template <class FunctorType> inline void parallel_reduce(const std::string& label, const size_t& policy, const FunctorType& functor) { - typedef typename Impl::ParallelReducePolicyType< - void, size_t, FunctorType>::policy_type policy_type; - typedef Kokkos::Impl::FunctorValueTraits<FunctorType, void> ValueTraits; - typedef typename Kokkos::Impl::if_c< - (ValueTraits::StaticValueSize != 0), typename ValueTraits::value_type, - typename ValueTraits::pointer_type>::type value_type; + using policy_type = + typename Impl::ParallelReducePolicyType<void, size_t, + FunctorType>::policy_type; + using ValueTraits = Kokkos::Impl::FunctorValueTraits<FunctorType, void>; + using value_type = + typename Kokkos::Impl::if_c<(ValueTraits::StaticValueSize != 0), + typename ValueTraits::value_type, + typename ValueTraits::pointer_type>::type; static_assert( Impl::FunctorAnalysis<Impl::FunctorPatternInterface::REDUCE, @@ -1172,8 +1199,8 @@ inline void parallel_reduce(const std::string& label, const size_t& policy, FunctorType>::has_final_member_function, "Calling parallel_reduce without either return value or final function."); - typedef Kokkos::View<value_type, Kokkos::HostSpace, Kokkos::MemoryUnmanaged> - result_view_type; + using result_view_type = + Kokkos::View<value_type, Kokkos::HostSpace, Kokkos::MemoryUnmanaged>; result_view_type result_view; Impl::ParallelReduceAdaptor<policy_type, FunctorType, @@ -1184,27 +1211,4 @@ inline void parallel_reduce(const std::string& label, const size_t& policy, } // namespace Kokkos -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -// backwards compatibility for Kokkos::Experimental reducers -namespace Kokkos { -namespace Experimental { -using Kokkos::BAnd; -using Kokkos::BOr; -using Kokkos::LAnd; -using Kokkos::LOr; -using Kokkos::Max; -using Kokkos::MaxLoc; -using Kokkos::Min; -using Kokkos::MinLoc; -using Kokkos::MinMax; -using Kokkos::MinMaxLoc; -using Kokkos::MinMaxLocScalar; -using Kokkos::MinMaxScalar; -using Kokkos::Prod; -using Kokkos::Sum; -using Kokkos::ValLocScalar; -} // namespace Experimental -} // namespace Kokkos -#endif - #endif // KOKKOS_PARALLEL_REDUCE_HPP diff --git a/packages/kokkos/core/src/Kokkos_Profiling_ProfileSection.hpp b/packages/kokkos/core/src/Kokkos_Profiling_ProfileSection.hpp index 3999ccb96..241a3a13a 100644 --- a/packages/kokkos/core/src/Kokkos_Profiling_ProfileSection.hpp +++ b/packages/kokkos/core/src/Kokkos_Profiling_ProfileSection.hpp @@ -47,6 +47,7 @@ #include <Kokkos_Macros.hpp> #include <impl/Kokkos_Profiling_Interface.hpp> +#include <impl/Kokkos_Profiling.hpp> #include <string> @@ -56,37 +57,27 @@ namespace Profiling { class ProfilingSection { public: ProfilingSection(const std::string& sectionName) : secName(sectionName) { -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::createProfileSection(secName, &secID); } -#else - secID = 0; -#endif } void start() { -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::startSection(secID); } -#endif } void stop() { -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::stopSection(secID); } -#endif } ~ProfilingSection() { -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::destroyProfileSection(secID); } -#endif } std::string getName() { return secName; } diff --git a/packages/kokkos/core/src/Kokkos_ROCm.hpp b/packages/kokkos/core/src/Kokkos_ROCm.hpp deleted file mode 100644 index 57113452b..000000000 --- a/packages/kokkos/core/src/Kokkos_ROCm.hpp +++ /dev/null @@ -1,242 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#ifndef KOKKOS_ROCM_HPP -#define KOKKOS_ROCM_HPP - -#include <Kokkos_Core_fwd.hpp> - -#if defined(KOKKOS_ENABLE_ROCM) - -class dim3 { - public: - int x, y, z; - dim3(int _x, int _y, int _z) : x(_x), y(_y), z(_z){}; -}; - -#include <ROCm/hc_math_std.hpp> -//---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- - -#include <cstddef> -#include <iosfwd> -#include <Kokkos_HostSpace.hpp> -#include <Kokkos_ROCmSpace.hpp> -#include <ROCm/Kokkos_ROCm_Exec.hpp> -#include <Kokkos_ScratchSpace.hpp> -#include <Kokkos_Parallel.hpp> -#include <Kokkos_Layout.hpp> -#include <impl/Kokkos_Tags.hpp> - -/*--------------------------------------------------------------------------*/ - -#include <hc.hpp> -#include <hc_am.hpp> -#include <amp_math.h> - -#if defined(__HCC_ACCELERATOR__) - -using namespace ::Concurrency::precise_math; - -#endif - -/*--------------------------------------------------------------------------*/ - -namespace Kokkos { -namespace Impl { -class ROCmExec; -} // namespace Impl -} // namespace Kokkos - -/*--------------------------------------------------------------------------*/ - -namespace Kokkos { -namespace Experimental { -/// \class ROCm -/// \brief Kokkos device for multicore processors in the host memory space. -class ROCm { - public: - //------------------------------------ - //! \name Type declarations that all Kokkos devices must provide. - //@{ - - //! Tag this class as a kokkos execution space - typedef ROCm execution_space; - typedef ROCmSpace memory_space; - typedef Kokkos::Device<execution_space, memory_space> device_type; - - typedef LayoutLeft array_layout; - typedef HostSpace::size_type size_type; - - typedef ScratchMemorySpace<ROCm> scratch_memory_space; - - ~ROCm() {} - ROCm(); - // explicit ROCm( const int instance_id ); - - ROCm(ROCm&&) = default; - ROCm(const ROCm&) = default; - ROCm& operator=(ROCm&&) = default; - ROCm& operator=(const ROCm&) = default; - - //@} - //------------------------------------ - //! \name Functions that all Kokkos devices must implement. - //@{ - - KOKKOS_INLINE_FUNCTION static int in_parallel() { -#if defined(__HCC_ACCELERATOR__) - return true; -#else - return false; -#endif - } - - /** \brief Set the device in a "sleep" state. */ - static bool sleep(); - - /** \brief Wake the device from the 'sleep' state. A noop for OpenMP. */ - static bool wake(); - - /** \brief Wait until all dispatched functors complete. A noop for OpenMP. */ - static void impl_static_fence(); - -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - static void fence(); -#else - void fence() const; -#endif - - /// \brief Print configuration information to the given output stream. - static void print_configuration(std::ostream&, const bool detail = false); - - /// \brief Free any resources being consumed by the device. - static void finalize(); - - /** \brief Initialize the device. - * - */ - struct SelectDevice { - int rocm_device_id; - SelectDevice() : rocm_device_id(1) {} - explicit SelectDevice(int id) : rocm_device_id(id + 1) {} - }; - - int rocm_device() const { return m_device; } - bool isAPU(); - bool isAPU(int device); - - static void initialize(const SelectDevice = SelectDevice()); - - static int is_initialized(); - - // static size_type device_arch(); - - // static size_type detect_device_count(); - - static int concurrency(); - static const char* name(); - - private: - int m_device; -}; -} // namespace Experimental -} // namespace Kokkos - -namespace Kokkos { -namespace Impl { - -template <> -struct MemorySpaceAccess<Kokkos::Experimental::ROCmSpace, - Kokkos::Experimental::ROCm::scratch_memory_space> { - enum { assignable = false }; - enum { accessible = true }; - enum { deepcopy = false }; -}; - -template <> -struct VerifyExecutionCanAccessMemorySpace< - Kokkos::Experimental::ROCm::memory_space, - Kokkos::Experimental::ROCm::scratch_memory_space> { - enum { value = true }; - KOKKOS_INLINE_FUNCTION static void verify(void) {} - KOKKOS_INLINE_FUNCTION static void verify(const void*) {} -}; - -template <> -struct VerifyExecutionCanAccessMemorySpace< - Kokkos::HostSpace, Kokkos::Experimental::ROCm::scratch_memory_space> { - enum { value = false }; - inline static void verify(void) { - Kokkos::Experimental::ROCmSpace::access_error(); - } - inline static void verify(const void* p) { - Kokkos::Experimental::ROCmSpace::access_error(p); - } -}; - -} // namespace Impl -} // namespace Kokkos - -#define threadIdx_x (hc_get_workitem_id(0)) -#define threadIdx_y (hc_get_workitem_id(1)) -#define threadIdx_z (hc_get_workitem_id(2)) - -#define blockIdx_x (hc_get_group_id(0)) -#define blockIdx_y (hc_get_group_id(1)) -#define blockIdx_z (hc_get_group_id(2)) - -#define blockDim_x (hc_get_group_size(0)) -#define blockDim_y (hc_get_group_size(1)) -#define blockDim_z (hc_get_group_size(2)) - -#define gridDim_x (hc_get_num_groups(0)) -#define gridDim_y (hc_get_num_groups(1)) -#define gridDim_z (hc_get_num_groups(2)) - -#include <ROCm/Kokkos_ROCm_Parallel.hpp> -#include <ROCm/Kokkos_ROCm_Task.hpp> - -#endif -#endif diff --git a/packages/kokkos/core/src/Kokkos_ROCmSpace.hpp b/packages/kokkos/core/src/Kokkos_ROCmSpace.hpp deleted file mode 100644 index 56a1a93b9..000000000 --- a/packages/kokkos/core/src/Kokkos_ROCmSpace.hpp +++ /dev/null @@ -1,637 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#ifndef KOKKOS_ROCMSPACE_HPP -#define KOKKOS_ROCMSPACE_HPP - -#include <Kokkos_Core_fwd.hpp> - -#if defined(KOKKOS_ENABLE_ROCM) - -#include <iosfwd> -#include <typeinfo> -#include <string> - -#include <Kokkos_HostSpace.hpp> - -/*--------------------------------------------------------------------------*/ - -namespace Kokkos { -namespace Experimental { -/** \brief ROCm on-device memory management */ - -class ROCmSpace { - public: - //! Tag this class as a kokkos memory space - typedef ROCmSpace memory_space; - typedef Kokkos::Experimental::ROCm execution_space; - typedef Kokkos::Device<execution_space, memory_space> device_type; - - typedef unsigned int size_type; - - /*--------------------------------*/ - - ROCmSpace(); - ROCmSpace(ROCmSpace&& rhs) = default; - ROCmSpace(const ROCmSpace& rhs) = default; - ROCmSpace& operator=(ROCmSpace&& rhs) = default; - ROCmSpace& operator=(const ROCmSpace& rhs) = default; - ~ROCmSpace() = default; - - /**\brief Allocate untracked memory in the rocm space */ - void* allocate(const size_t arg_alloc_size) const; - - /**\brief Deallocate untracked memory in the rocm space */ - void deallocate(void* const arg_alloc_ptr, const size_t arg_alloc_size) const; - - /**\brief Return Name of the MemorySpace */ - static constexpr const char* name() { return m_name; }; - - /*--------------------------------*/ - /** \brief Error reporting for HostSpace attempt to access ROCmSpace */ - static void access_error(); - static void access_error(const void* const); - - private: - int m_device; ///< Which ROCm device - - static constexpr const char* m_name = "ROCm"; - friend class Kokkos::Impl::SharedAllocationRecord< - Kokkos::Experimental::ROCmSpace, void>; -}; - -} // namespace Experimental - -namespace Impl { - -void* rocm_device_allocate(int); -void* rocm_hostpinned_allocate(int); -void rocm_device_free(void*); - -/// \brief Initialize lock array for arbitrary size atomics. -/// -/// Arbitrary atomics are implemented using a hash table of locks -/// where the hash value is derived from the address of the -/// object for which an atomic operation is performed. -/// This function initializes the locks to zero (unset). -void init_lock_arrays_rocm_space(); - -/// \brief Retrieve the pointer to the lock array for arbitrary size atomics. -/// -/// Arbitrary atomics are implemented using a hash table of locks -/// where the hash value is derived from the address of the -/// object for which an atomic operation is performed. -/// This function retrieves the lock array pointer. -/// If the array is not yet allocated it will do so. -int* atomic_lock_array_rocm_space_ptr(bool deallocate = false); - -/// \brief Retrieve the pointer to the scratch array for team and thread private -/// global memory. -/// -/// Team and Thread private scratch allocations in -/// global memory are acquired via locks. -/// This function retrieves the lock array pointer. -/// If the array is not yet allocated it will do so. -int* scratch_lock_array_rocm_space_ptr(bool deallocate = false); - -/// \brief Retrieve the pointer to the scratch array for unique identifiers. -/// -/// Unique identifiers in the range 0-ROCm::concurrency -/// are provided via locks. -/// This function retrieves the lock array pointer. -/// If the array is not yet allocated it will do so. -int* threadid_lock_array_rocm_space_ptr(bool deallocate = false); -} // namespace Impl -} // namespace Kokkos - -/*--------------------------------------------------------------------------*/ -/*--------------------------------------------------------------------------*/ - -namespace Kokkos { -namespace Experimental { -/** \brief Host memory that is accessible to ROCm execution space - * through ROCm's host-pinned memory allocation. - */ -class ROCmHostPinnedSpace { - public: - //! Tag this class as a kokkos memory space - /** \brief Memory is in HostSpace so use the HostSpace::execution_space */ - typedef HostSpace::execution_space execution_space; - typedef ROCmHostPinnedSpace memory_space; - typedef Kokkos::Device<execution_space, memory_space> device_type; - typedef unsigned int size_type; - - /*--------------------------------*/ - - ROCmHostPinnedSpace(); - ROCmHostPinnedSpace(ROCmHostPinnedSpace&& rhs) = default; - ROCmHostPinnedSpace(const ROCmHostPinnedSpace& rhs) = default; - ROCmHostPinnedSpace& operator=(ROCmHostPinnedSpace&& rhs) = default; - ROCmHostPinnedSpace& operator=(const ROCmHostPinnedSpace& rhs) = default; - ~ROCmHostPinnedSpace() = default; - - /**\brief Allocate untracked memory in the space */ - void* allocate(const size_t arg_alloc_size) const; - - /**\brief Deallocate untracked memory in the space */ - void deallocate(void* const arg_alloc_ptr, const size_t arg_alloc_size) const; - - /**\brief Return Name of the MemorySpace */ - static constexpr const char* name() { return m_name; }; - - private: - static constexpr const char* m_name = "ROCmHostPinned"; - - /*--------------------------------*/ -}; -} // namespace Experimental -} // namespace Kokkos - -/*--------------------------------------------------------------------------*/ -/*--------------------------------------------------------------------------*/ - -namespace Kokkos { -namespace Impl { - -static_assert(Kokkos::Impl::MemorySpaceAccess< - Kokkos::Experimental::ROCmSpace, - Kokkos::Experimental::ROCmSpace>::assignable, - ""); - -//---------------------------------------- - -template <> -struct MemorySpaceAccess<Kokkos::HostSpace, Kokkos::Experimental::ROCmSpace> { - enum { assignable = false }; - enum { accessible = false }; - enum { deepcopy = true }; -}; - -template <> -struct MemorySpaceAccess<Kokkos::HostSpace, - Kokkos::Experimental::ROCmHostPinnedSpace> { - // HostSpace::execution_space == ROCmHostPinnedSpace::execution_space - enum { assignable = true }; - enum { accessible = true }; - enum { deepcopy = true }; -}; - -//---------------------------------------- - -template <> -struct MemorySpaceAccess<Kokkos::Experimental::ROCmSpace, Kokkos::HostSpace> { - enum { assignable = false }; - enum { accessible = false }; - enum { deepcopy = true }; -}; - -template <> -struct MemorySpaceAccess<Kokkos::Experimental::ROCmSpace, - Kokkos::Experimental::ROCmHostPinnedSpace> { - // ROCmSpace::execution_space != ROCmHostPinnedSpace::execution_space - enum { assignable = false }; - enum { accessible = true }; // ROCmSpace::execution_space - enum { deepcopy = true }; -}; - -//---------------------------------------- -// ROCmHostPinnedSpace::execution_space == HostSpace::execution_space -// ROCmHostPinnedSpace accessible to both ROCm and Host - -template <> -struct MemorySpaceAccess<Kokkos::Experimental::ROCmHostPinnedSpace, - Kokkos::HostSpace> { - enum { assignable = false }; // Cannot access from ROCm - enum { accessible = true }; // ROCmHostPinnedSpace::execution_space - enum { deepcopy = true }; -}; - -template <> -struct MemorySpaceAccess<Kokkos::Experimental::ROCmHostPinnedSpace, - Kokkos::Experimental::ROCmSpace> { - enum { assignable = false }; // Cannot access from Host - enum { accessible = false }; - enum { deepcopy = true }; -}; - -}; // namespace Impl -//---------------------------------------- - -} // namespace Kokkos - -/*--------------------------------------------------------------------------*/ -/*--------------------------------------------------------------------------*/ - -namespace Kokkos { -namespace Impl { - -hc::completion_future DeepCopyAsyncROCm(void* dst, const void* src, size_t n); - -template <> -struct DeepCopy<Kokkos::Experimental::ROCmSpace, - Kokkos::Experimental::ROCmSpace, Kokkos::Experimental::ROCm> { - DeepCopy(void* dst, const void* src, size_t); - DeepCopy(const Kokkos::Experimental::ROCm&, void* dst, const void* src, - size_t); -}; - -template <> -struct DeepCopy<Kokkos::Experimental::ROCmSpace, HostSpace, - Kokkos::Experimental::ROCm> { - DeepCopy(void* dst, const void* src, size_t); - DeepCopy(const Kokkos::Experimental::ROCm&, void* dst, const void* src, - size_t); -}; - -template <> -struct DeepCopy<HostSpace, Kokkos::Experimental::ROCmSpace, - Kokkos::Experimental::ROCm> { - DeepCopy(void* dst, const void* src, size_t); - DeepCopy(const Kokkos::Experimental::ROCm&, void* dst, const void* src, - size_t); -}; - -template <class ExecutionSpace> -struct DeepCopy<Kokkos::Experimental::ROCmSpace, - Kokkos::Experimental::ROCmSpace, ExecutionSpace> { - inline DeepCopy(void* dst, const void* src, size_t n) { - (void)DeepCopy<Kokkos::Experimental::ROCmSpace, - Kokkos::Experimental::ROCmSpace, Kokkos::Experimental::ROCm>( - dst, src, n); - } - - inline DeepCopy(const ExecutionSpace& exec, void* dst, const void* src, - size_t n) { - exec.fence(); - hc::completion_future fut = DeepCopyAsyncROCm(dst, src, n); - fut.wait(); - // DeepCopy (dst,src,n); - } -}; - -template <class ExecutionSpace> -struct DeepCopy<Kokkos::Experimental::ROCmSpace, HostSpace, ExecutionSpace> { - inline DeepCopy(void* dst, const void* src, size_t n) { - (void)DeepCopy<Kokkos::Experimental::ROCmSpace, HostSpace, - Kokkos::Experimental::ROCm>(dst, src, n); - } - - inline DeepCopy(const ExecutionSpace& exec, void* dst, const void* src, - size_t n) { - exec.fence(); - DeepCopy(dst, src, n); - } -}; - -template <class ExecutionSpace> -struct DeepCopy<HostSpace, Kokkos::Experimental::ROCmSpace, ExecutionSpace> { - inline DeepCopy(void* dst, const void* src, size_t n) { - (void)DeepCopy<HostSpace, Kokkos::Experimental::ROCmSpace, - Kokkos::Experimental::ROCm>(dst, src, n); - } - - inline DeepCopy(const ExecutionSpace& exec, void* dst, const void* src, - size_t n) { - exec.fence(); - DeepCopy(dst, src, n); - } -}; - -template <> -struct DeepCopy<Kokkos::Experimental::ROCmHostPinnedSpace, - Kokkos::Experimental::ROCmHostPinnedSpace, - Kokkos::Experimental::ROCm> { - DeepCopy(void* dst, const void* src, size_t); - DeepCopy(const Kokkos::Experimental::ROCm&, void* dst, const void* src, - size_t); -}; - -template <> -struct DeepCopy<Kokkos::Experimental::ROCmHostPinnedSpace, HostSpace, - Kokkos::Experimental::ROCm> { - DeepCopy(void* dst, const void* src, size_t); - DeepCopy(const Kokkos::Experimental::ROCm&, void* dst, const void* src, - size_t); -}; - -template <> -struct DeepCopy<HostSpace, Kokkos::Experimental::ROCmHostPinnedSpace, - Kokkos::Experimental::ROCm> { - DeepCopy(void* dst, const void* src, size_t); - DeepCopy(const Kokkos::Experimental::ROCm&, void* dst, const void* src, - size_t); -}; - -template <class ExecutionSpace> -struct DeepCopy<Kokkos::Experimental::ROCmSpace, - Kokkos::Experimental::ROCmHostPinnedSpace, ExecutionSpace> { - inline DeepCopy(void* dst, const void* src, size_t n) { - (void)DeepCopy<Kokkos::Experimental::ROCmSpace, HostSpace, - Kokkos::Experimental::ROCm>(dst, src, n); - } - - inline DeepCopy(const ExecutionSpace& exec, void* dst, const void* src, - size_t n) { - exec.fence(); - hc::completion_future fut = DeepCopyAsyncROCm(dst, src, n); - fut.wait(); - // DeepCopyROCm (dst,src,n); - } -}; - -template <class ExecutionSpace> -struct DeepCopy<Kokkos::Experimental::ROCmHostPinnedSpace, - Kokkos::Experimental::ROCmSpace, ExecutionSpace> { - inline DeepCopy(void* dst, const void* src, size_t n) { - (void)DeepCopy<HostSpace, Kokkos::Experimental::ROCmSpace, - Kokkos::Experimental::ROCm>(dst, src, n); - } - - inline DeepCopy(const ExecutionSpace& exec, void* dst, const void* src, - size_t n) { - exec.fence(); - hc::completion_future fut = DeepCopyAsyncROCm(dst, src, n); - fut.wait(); - // DeepCopyROCm (dst,src,n); - } -}; - -template <class ExecutionSpace> -struct DeepCopy<Kokkos::Experimental::ROCmHostPinnedSpace, - Kokkos::Experimental::ROCmHostPinnedSpace, ExecutionSpace> { - inline DeepCopy(void* dst, const void* src, size_t n) { - (void)DeepCopy<Kokkos::Experimental::ROCmHostPinnedSpace, - Kokkos::Experimental::ROCmHostPinnedSpace, - Kokkos::Experimental::ROCm>(dst, src, n); - } - - inline DeepCopy(const ExecutionSpace& exec, void* dst, const void* src, - size_t n) { - exec.fence(); - // hc::completion_future fut = DeepCopyAsyncROCm (dst,src,n); - // fut.wait(); - // DeepCopyAsyncROCm (dst,src,n); - DeepCopy(dst, src, n); - } -}; - -template <class ExecutionSpace> -struct DeepCopy<Kokkos::Experimental::ROCmHostPinnedSpace, HostSpace, - ExecutionSpace> { - inline DeepCopy(void* dst, const void* src, size_t n) { - (void)DeepCopy<Kokkos::Experimental::ROCmHostPinnedSpace, HostSpace, - Kokkos::Experimental::ROCm>(dst, src, n); - } - - inline DeepCopy(const ExecutionSpace& exec, void* dst, const void* src, - size_t n) { - exec.fence(); - DeepCopy(dst, src, n); - } -}; - -template <class ExecutionSpace> -struct DeepCopy<HostSpace, Kokkos::Experimental::ROCmHostPinnedSpace, - ExecutionSpace> { - inline DeepCopy(void* dst, const void* src, size_t n) { - (void)DeepCopy<HostSpace, Kokkos::Experimental::ROCmHostPinnedSpace, - Kokkos::Experimental::ROCm>(dst, src, n); - } - - inline DeepCopy(const ExecutionSpace& exec, void* dst, const void* src, - size_t n) { - exec.fence(); - DeepCopy(dst, src, n); - } -}; -} // namespace Impl -} // namespace Kokkos - -//---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- - -namespace Kokkos { -namespace Impl { - -/** Running in ROCmSpace attempting to access HostSpace: error */ -template <> -struct VerifyExecutionCanAccessMemorySpace<Kokkos::Experimental::ROCmSpace, - Kokkos::HostSpace> { - enum { value = false }; - KOKKOS_INLINE_FUNCTION static void verify(void) { - Kokkos::abort("ROCm code attempted to access HostSpace memory"); - } - - KOKKOS_INLINE_FUNCTION static void verify(const void*) { - Kokkos::abort("ROCm code attempted to access HostSpace memory"); - } -}; - -/** Running in ROCmSpace accessing ROCmHostPinnedSpace: ok */ -template <> -struct VerifyExecutionCanAccessMemorySpace< - Kokkos::Experimental::ROCmSpace, - Kokkos::Experimental::ROCmHostPinnedSpace> { - enum { value = true }; - KOKKOS_INLINE_FUNCTION static void verify(void) {} - KOKKOS_INLINE_FUNCTION static void verify(const void*) {} -}; - -/** Running in ROCmSpace attempting to access an unknown space: error */ -template <class OtherSpace> -struct VerifyExecutionCanAccessMemorySpace< - typename std::enable_if< - !is_same<Kokkos::Experimental::ROCmSpace, OtherSpace>::value, - Kokkos::Experimental::ROCmSpace>::type, - OtherSpace> { - enum { value = false }; - KOKKOS_INLINE_FUNCTION static void verify(void) { - Kokkos::abort("ROCm code attempted to access unknown Space memory"); - } - - KOKKOS_INLINE_FUNCTION static void verify(const void*) { - Kokkos::abort("ROCm code attempted to access unknown Space memory"); - } -}; - -//---------------------------------------------------------------------------- -/** Running in HostSpace attempting to access ROCmSpace */ -template <> -struct VerifyExecutionCanAccessMemorySpace<Kokkos::HostSpace, - Kokkos::Experimental::ROCmSpace> { - enum { value = false }; - inline static void verify(void) { - Kokkos::Experimental::ROCmSpace::access_error(); - } - inline static void verify(const void* p) { - Kokkos::Experimental::ROCmSpace::access_error(p); - } -}; - -/** Running in HostSpace accessing ROCmHostPinnedSpace is OK */ -template <> -struct VerifyExecutionCanAccessMemorySpace< - Kokkos::HostSpace, Kokkos::Experimental::ROCmHostPinnedSpace> { - enum { value = true }; - KOKKOS_INLINE_FUNCTION static void verify(void) {} - KOKKOS_INLINE_FUNCTION static void verify(const void*) {} -}; -} // namespace Impl -} // namespace Kokkos - -//---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- - -namespace Kokkos { -namespace Impl { - -template <> -class SharedAllocationRecord<Kokkos::Experimental::ROCmSpace, void> - : public SharedAllocationRecord<void, void> { - private: - typedef SharedAllocationRecord<void, void> RecordBase; - - SharedAllocationRecord(const SharedAllocationRecord&) = delete; - SharedAllocationRecord& operator=(const SharedAllocationRecord&) = delete; - - static void deallocate(RecordBase*); - -#ifdef KOKKOS_DEBUG - static RecordBase s_root_record; -#endif - - const Kokkos::Experimental::ROCmSpace m_space; - - protected: - ~SharedAllocationRecord(); - - SharedAllocationRecord( - const Kokkos::Experimental::ROCmSpace& arg_space, - const std::string& arg_label, const size_t arg_alloc_size, - const RecordBase::function_type arg_dealloc = &deallocate); - - public: - std::string get_label() const; - - static SharedAllocationRecord* allocate( - const Kokkos::Experimental::ROCmSpace& arg_space, - const std::string& arg_label, const size_t arg_alloc_size); - - /**\brief Allocate tracked memory in the space */ - static void* allocate_tracked( - const Kokkos::Experimental::ROCmSpace& arg_space, - const std::string& arg_label, const size_t arg_alloc_size); - - /**\brief Reallocate tracked memory in the space */ - static void* reallocate_tracked(void* const arg_alloc_ptr, - const size_t arg_alloc_size); - - /**\brief Deallocate tracked memory in the space */ - static void deallocate_tracked(void* const arg_alloc_ptr); - - static SharedAllocationRecord* get_record(void* arg_alloc_ptr); - - static void print_records(std::ostream&, - const Kokkos::Experimental::ROCmSpace&, - bool detail = false); -}; - -template <> -class SharedAllocationRecord<Kokkos::Experimental::ROCmHostPinnedSpace, void> - : public SharedAllocationRecord<void, void> { - private: - typedef SharedAllocationRecord<void, void> RecordBase; - - SharedAllocationRecord(const SharedAllocationRecord&) = delete; - SharedAllocationRecord& operator=(const SharedAllocationRecord&) = delete; - - static void deallocate(RecordBase*); - -#ifdef KOKKOS_DEBUG - static RecordBase s_root_record; -#endif - - const Kokkos::Experimental::ROCmHostPinnedSpace m_space; - - protected: - ~SharedAllocationRecord(); - SharedAllocationRecord() : RecordBase(), m_space() {} - - SharedAllocationRecord( - const Kokkos::Experimental::ROCmHostPinnedSpace& arg_space, - const std::string& arg_label, const size_t arg_alloc_size, - const RecordBase::function_type arg_dealloc = &deallocate); - - public: - std::string get_label() const; - - static SharedAllocationRecord* allocate( - const Kokkos::Experimental::ROCmHostPinnedSpace& arg_space, - const std::string& arg_label, const size_t arg_alloc_size); - /**\brief Allocate tracked memory in the space */ - static void* allocate_tracked( - const Kokkos::Experimental::ROCmHostPinnedSpace& arg_space, - const std::string& arg_label, const size_t arg_alloc_size); - - /**\brief Reallocate tracked memory in the space */ - static void* reallocate_tracked(void* const arg_alloc_ptr, - const size_t arg_alloc_size); - - /**\brief Deallocate tracked memory in the space */ - static void deallocate_tracked(void* const arg_alloc_ptr); - - static SharedAllocationRecord* get_record(void* arg_alloc_ptr); - - static void print_records(std::ostream&, - const Kokkos::Experimental::ROCmHostPinnedSpace&, - bool detail = false); -}; -} // namespace Impl -} // namespace Kokkos - -//---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- - -#endif /* #if defined( KOKKOS_ENABLE_ROCM ) */ -#endif /* #define KOKKOS_ROCMSPACE_HPP */ diff --git a/packages/kokkos/core/src/Kokkos_SYCL.hpp b/packages/kokkos/core/src/Kokkos_SYCL.hpp new file mode 100644 index 000000000..b8e0c74be --- /dev/null +++ b/packages/kokkos/core/src/Kokkos_SYCL.hpp @@ -0,0 +1,190 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_SYCL_HPP +#define KOKKOS_SYCL_HPP + +#include <Kokkos_Macros.hpp> + +#ifdef KOKKOS_ENABLE_SYCL +#include <CL/sycl.hpp> +#include <Kokkos_SYCL_Space.hpp> +#include <Kokkos_Layout.hpp> +#include <Kokkos_ScratchSpace.hpp> +#include <impl/Kokkos_ExecSpaceInitializer.hpp> +#include <impl/Kokkos_Profiling_Interface.hpp> + +namespace Kokkos { +namespace Experimental { +namespace Impl { +class SYCLInternal; +} + +/// \class SYCL +/// \brief Kokkos device for multicore processors in the host memory space. +class SYCL { + public: + //------------------------------------ + //! \name Type declarations that all Kokkos devices must provide. + //@{ + + //! Tag this class as a kokkos execution space + using execution_space = SYCL; + using memory_space = SYCLDeviceUSMSpace; + using device_type = Kokkos::Device<execution_space, memory_space>; + + using array_layout = LayoutLeft; + using size_type = memory_space::size_type; + + using scratch_memory_space = ScratchMemorySpace<SYCL>; + + ~SYCL() = default; + SYCL(); + + SYCL(SYCL&&) = default; + SYCL(const SYCL&) = default; + SYCL& operator=(SYCL&&) = default; + SYCL& operator=(const SYCL&) = default; + + uint32_t impl_instance_id() const noexcept { return 0; } + + //@} + //------------------------------------ + //! \name Functions that all Kokkos devices must implement. + //@{ + + KOKKOS_INLINE_FUNCTION static int in_parallel() { +#if defined(__SYCL_ARCH__) + return true; +#else + return false; +#endif + } + + /** \brief Set the device in a "sleep" state. */ + static bool sleep(); + + /** \brief Wake the device from the 'sleep' state. A noop for OpenMP. */ + static bool wake(); + + /** \brief Wait until all dispatched functors complete. A noop for OpenMP. */ + static void impl_static_fence(); + void fence() const; + + /// \brief Print configuration information to the given output stream. + static void print_configuration(std::ostream&, const bool detail = false); + + /// \brief Free any resources being consumed by the device. + static void impl_finalize(); + + /** \brief Initialize the device. + * + */ + + struct SYCLDevice { + SYCLDevice(); + explicit SYCLDevice(cl::sycl::device d); + explicit SYCLDevice(const cl::sycl::device_selector& selector); + explicit SYCLDevice(size_t id); + explicit SYCLDevice(const std::function<bool(const sycl::device&)>& pred); + + cl::sycl::device get_device() const; + + friend std::ostream& operator<<(std::ostream& os, const SYCLDevice& that) { + return that.info(os); + } + + static std::ostream& list_devices(std::ostream& os); + static void list_devices(); + + private: + std::ostream& info(std::ostream& os) const; + + cl::sycl::device m_device; + }; + + static void impl_initialize(SYCLDevice = SYCLDevice()); + + int sycl_device() const; + + static bool impl_is_initialized(); + + static int concurrency(); + static const char* name(); + + inline Impl::SYCLInternal* impl_internal_space_instance() const { + return m_space_instance; + } + + private: + Impl::SYCLInternal* m_space_instance; +}; + +namespace Impl { + +class SYCLSpaceInitializer : public Kokkos::Impl::ExecSpaceInitializerBase { + public: + void initialize(const InitArguments& args) final; + void finalize(const bool) final; + void fence() final; + void print_configuration(std::ostream& msg, const bool detail) final; +}; + +} // namespace Impl +} // namespace Experimental + +namespace Tools { +namespace Experimental { +template <> +struct DeviceTypeTraits<Kokkos::Experimental::SYCL> { + /// \brief An ID to differentiate (for example) Serial from OpenMP in Tooling + static constexpr DeviceType id = DeviceType::SYCL; +}; +} // namespace Experimental +} // namespace Tools + +} // namespace Kokkos + +#endif +#endif diff --git a/packages/kokkos/core/src/Kokkos_SYCL_Space.hpp b/packages/kokkos/core/src/Kokkos_SYCL_Space.hpp new file mode 100644 index 000000000..f9ee6ec44 --- /dev/null +++ b/packages/kokkos/core/src/Kokkos_SYCL_Space.hpp @@ -0,0 +1,181 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_SYCLSPACE_HPP +#define KOKKOS_SYCLSPACE_HPP + +#include <Kokkos_Core_fwd.hpp> + +#ifdef KOKKOS_ENABLE_SYCL +#include <Kokkos_Concepts.hpp> +#include <SYCL/Kokkos_SYCL_Instance.hpp> +#include <impl/Kokkos_SharedAlloc.hpp> +#include <impl/Kokkos_Tools.hpp> + +namespace Kokkos { +namespace Experimental { + +class SYCLDeviceUSMSpace { + public: + using execution_space = SYCL; + using memory_space = SYCLDeviceUSMSpace; + using device_type = Kokkos::Device<execution_space, memory_space>; + using size_type = Impl::SYCLInternal::size_type; + + SYCLDeviceUSMSpace(); + + void* allocate(const std::size_t arg_alloc_size) const; + void* allocate(const char* arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size = 0) const; + + void deallocate(void* const arg_alloc_ptr, + const std::size_t arg_alloc_size) const; + void deallocate(const char* arg_label, void* const arg_alloc_ptr, + const size_t arg_alloc_size, + const size_t arg_logical_size = 0) const; + + private: + template <class, class, class, class> + friend class LogicalMemorySpace; + void* impl_allocate(const char* arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size = 0, + const Kokkos::Tools::SpaceHandle = + Kokkos::Tools::make_space_handle(name())) const; + void impl_deallocate(const char* arg_label, void* const arg_alloc_ptr, + const size_t arg_alloc_size, + const size_t arg_logical_size = 0, + const Kokkos::Tools::SpaceHandle = + Kokkos::Tools::make_space_handle(name())) const; + + public: + static constexpr const char* name() { return "SYCLDeviceUSM"; }; + + private: + int m_device; +}; +} // namespace Experimental + +namespace Impl { +static_assert(Kokkos::Impl::MemorySpaceAccess< + Kokkos::Experimental::SYCLDeviceUSMSpace, + Kokkos::Experimental::SYCLDeviceUSMSpace>::assignable, + ""); + +template <> +struct MemorySpaceAccess<Kokkos::HostSpace, + Kokkos::Experimental::SYCLDeviceUSMSpace> { + enum : bool { assignable = false }; + enum : bool { accessible = false }; + enum : bool { deepcopy = true }; +}; + +template <> +struct MemorySpaceAccess<Kokkos::Experimental::SYCLDeviceUSMSpace, + Kokkos::HostSpace> { + enum : bool { assignable = false }; + enum : bool { accessible = false }; + enum : bool { deepcopy = true }; +}; + +} // namespace Impl + +namespace Impl { + +template <> +class SharedAllocationRecord<Kokkos::Experimental::SYCLDeviceUSMSpace, void> + : public SharedAllocationRecord<void, void> { + private: + using RecordBase = SharedAllocationRecord<void, void>; + + SharedAllocationRecord(const SharedAllocationRecord&) = delete; + SharedAllocationRecord& operator=(const SharedAllocationRecord&) = delete; + + static void deallocate(RecordBase*); + +#ifdef KOKKOS_ENABLE_DEBUG + static RecordBase s_root_record; +#endif + + const Kokkos::Experimental::SYCLDeviceUSMSpace m_space; + + protected: + ~SharedAllocationRecord(); + + SharedAllocationRecord( + const Kokkos::Experimental::SYCLDeviceUSMSpace& arg_space, + const std::string& arg_label, const size_t arg_alloc_size, + const RecordBase::function_type arg_dealloc = &deallocate); + + public: + std::string get_label() const; + + static SharedAllocationRecord* allocate( + const Kokkos::Experimental::SYCLDeviceUSMSpace& arg_space, + const std::string& arg_label, const size_t arg_alloc_size); + + /**\brief Allocate tracked memory in the space */ + static void* allocate_tracked( + const Kokkos::Experimental::SYCLDeviceUSMSpace& arg_space, + const std::string& arg_label, const size_t arg_alloc_size); + + /**\brief Reallocate tracked memory in the space */ + static void* reallocate_tracked(void* const arg_alloc_ptr, + const size_t arg_alloc_size); + + /**\brief Deallocate tracked memory in the space */ + static void deallocate_tracked(void* const arg_alloc_ptr); + + static SharedAllocationRecord* get_record(void* arg_alloc_ptr); + + static void print_records(std::ostream&, + const Kokkos::Experimental::SYCLDeviceUSMSpace&, + bool detail = false); +}; + +} // namespace Impl + +} // namespace Kokkos + +#endif +#endif diff --git a/packages/kokkos/core/src/Kokkos_ScratchSpace.hpp b/packages/kokkos/core/src/Kokkos_ScratchSpace.hpp index 708e0218b..f6b0a5fbe 100644 --- a/packages/kokkos/core/src/Kokkos_ScratchSpace.hpp +++ b/packages/kokkos/core/src/Kokkos_ScratchSpace.hpp @@ -46,6 +46,7 @@ #define KOKKOS_SCRATCHSPACE_HPP #include <cstdio> +#include <cstddef> #include <Kokkos_Core_fwd.hpp> #include <Kokkos_Concepts.hpp> @@ -68,29 +69,26 @@ class ScratchMemorySpace { enum { ALIGN = 8 }; private: - mutable char* m_iter_L0; - char* m_end_L0; - mutable char* m_iter_L1; - char* m_end_L1; + mutable char* m_iter_L0 = nullptr; + char* m_end_L0 = nullptr; + mutable char* m_iter_L1 = nullptr; + char* m_end_L1 = nullptr; - mutable int m_multiplier; - mutable int m_offset; - mutable int m_default_level; - - ScratchMemorySpace(); - ScratchMemorySpace& operator=(const ScratchMemorySpace&); + mutable int m_multiplier = 0; + mutable int m_offset = 0; + mutable int m_default_level = 0; enum { MASK = ALIGN - 1 }; // Alignment used by View::shmem_size public: //! Tag this class as a memory space - typedef ScratchMemorySpace memory_space; - typedef ExecSpace execution_space; + using memory_space = ScratchMemorySpace<ExecSpace>; + using execution_space = ExecSpace; //! This execution space preferred device_type - typedef Kokkos::Device<execution_space, memory_space> device_type; + using device_type = Kokkos::Device<execution_space, memory_space>; - typedef typename ExecSpace::array_layout array_layout; - typedef typename ExecSpace::size_type size_type; + using array_layout = typename ExecSpace::array_layout; + using size_type = typename ExecSpace::size_type; static constexpr const char* name() { return "ScratchMemorySpace"; } @@ -107,7 +105,7 @@ class ScratchMemorySpace { void* tmp = m_iter_L0 + m_offset * align(size); if (m_end_L0 < (m_iter_L0 += align(size) * m_multiplier)) { m_iter_L0 -= align(size) * m_multiplier; // put it back like it was -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG // mfh 23 Jun 2015: printf call consumes 25 registers // in a CUDA build, so only print in debug mode. The // function still returns nullptr if not enough memory. @@ -115,7 +113,7 @@ class ScratchMemorySpace { "ScratchMemorySpace<...>::get_shmem: Failed to allocate " "%ld byte(s); remaining capacity is %ld byte(s)\n", long(size), long(m_end_L0 - m_iter_L0)); -#endif // KOKKOS_DEBUG +#endif // KOKKOS_ENABLE_DEBUG tmp = nullptr; } return tmp; @@ -123,7 +121,7 @@ class ScratchMemorySpace { void* tmp = m_iter_L1 + m_offset * align(size); if (m_end_L1 < (m_iter_L1 += align(size) * m_multiplier)) { m_iter_L1 -= align(size) * m_multiplier; // put it back like it was -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG // mfh 23 Jun 2015: printf call consumes 25 registers // in a CUDA build, so only print in debug mode. The // function still returns nullptr if not enough memory. @@ -131,7 +129,7 @@ class ScratchMemorySpace { "ScratchMemorySpace<...>::get_shmem: Failed to allocate " "%ld byte(s); remaining capacity is %ld byte(s)\n", long(size), long(m_end_L1 - m_iter_L1)); -#endif // KOKKOS_DEBUG +#endif // KOKKOS_ENABLE_DEBUG tmp = nullptr; } return tmp; @@ -150,7 +148,7 @@ class ScratchMemorySpace { void* tmp = m_iter_L0 + m_offset * size; if (m_end_L0 < (m_iter_L0 += size * m_multiplier)) { m_iter_L0 = previous; // put it back like it was -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG // mfh 23 Jun 2015: printf call consumes 25 registers // in a CUDA build, so only print in debug mode. The // function still returns nullptr if not enough memory. @@ -158,7 +156,7 @@ class ScratchMemorySpace { "ScratchMemorySpace<...>::get_shmem: Failed to allocate " "%ld byte(s); remaining capacity is %ld byte(s)\n", long(size), long(m_end_L0 - m_iter_L0)); -#endif // KOKKOS_DEBUG +#endif // KOKKOS_ENABLE_DEBUG tmp = nullptr; } return tmp; @@ -170,7 +168,7 @@ class ScratchMemorySpace { void* tmp = m_iter_L1 + m_offset * size; if (m_end_L1 < (m_iter_L1 += size * m_multiplier)) { m_iter_L1 = previous; // put it back like it was -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG // mfh 23 Jun 2015: printf call consumes 25 registers // in a CUDA build, so only print in debug mode. The // function still returns nullptr if not enough memory. @@ -178,13 +176,16 @@ class ScratchMemorySpace { "ScratchMemorySpace<...>::get_shmem: Failed to allocate " "%ld byte(s); remaining capacity is %ld byte(s)\n", long(size), long(m_end_L1 - m_iter_L1)); -#endif // KOKKOS_DEBUG +#endif // KOKKOS_ENABLE_DEBUG tmp = nullptr; } return tmp; } } + KOKKOS_DEFAULTED_FUNCTION + ScratchMemorySpace() = default; + template <typename IntType> KOKKOS_INLINE_FUNCTION ScratchMemorySpace(void* ptr_L0, const IntType& size_L0, diff --git a/packages/kokkos/core/src/Kokkos_Serial.hpp b/packages/kokkos/core/src/Kokkos_Serial.hpp index 1f97998ea..a1fccd375 100644 --- a/packages/kokkos/core/src/Kokkos_Serial.hpp +++ b/packages/kokkos/core/src/Kokkos_Serial.hpp @@ -53,6 +53,7 @@ #include <cstddef> #include <iosfwd> +#include <Kokkos_Core_fwd.hpp> #include <Kokkos_Parallel.hpp> #include <Kokkos_TaskScheduler.hpp> #include <Kokkos_Layout.hpp> @@ -63,7 +64,8 @@ #include <impl/Kokkos_HostThreadTeam.hpp> #include <impl/Kokkos_FunctorAnalysis.hpp> #include <impl/Kokkos_FunctorAdapter.hpp> -#include <impl/Kokkos_Profiling_Interface.hpp> +#include <impl/Kokkos_Tools.hpp> +#include <impl/Kokkos_ExecSpaceInitializer.hpp> #include <KokkosExp_MDRangePolicy.hpp> @@ -89,19 +91,19 @@ class Serial { //@{ //! Tag this class as an execution space: - typedef Serial execution_space; - //! The size_type typedef best suited for this device. - typedef HostSpace::size_type size_type; + using execution_space = Serial; //! This device's preferred memory space. - typedef HostSpace memory_space; + using memory_space = Kokkos::HostSpace; + //! The size_type alias best suited for this device. + using size_type = memory_space::size_type; //! This execution space preferred device_type - typedef Kokkos::Device<execution_space, memory_space> device_type; + using device_type = Kokkos::Device<execution_space, memory_space>; //! This device's preferred array layout. - typedef LayoutRight array_layout; + using array_layout = LayoutRight; /// \brief Scratch memory space - typedef ScratchMemorySpace<Kokkos::Serial> scratch_memory_space; + using scratch_memory_space = ScratchMemorySpace<Kokkos::Serial>; //@} @@ -121,11 +123,7 @@ class Serial { /// device have completed. static void impl_static_fence() {} -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - static void fence() {} -#else void fence() const {} -#endif /** \brief Return the maximum amount of concurrency. */ static int concurrency() { return 1; } @@ -134,32 +132,6 @@ class Serial { static void print_configuration(std::ostream&, const bool /* detail */ = false) {} -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - static bool sleep(); - static bool wake(); - - static void initialize(unsigned threads_count = 1, - unsigned use_numa_count = 0, - unsigned use_cores_per_numa = 0, - bool allow_asynchronous_threadpool = false); - - static bool is_initialized(); - - //! Free any resources being consumed by the device. - static void finalize(); - - //-------------------------------------------------------------------------- - - inline static int thread_pool_size(int = 0) { return 1; } - KOKKOS_INLINE_FUNCTION static int thread_pool_rank() { return 0; } - - //-------------------------------------------------------------------------- - - KOKKOS_INLINE_FUNCTION static unsigned hardware_thread_id() { - return thread_pool_rank(); - } - inline static unsigned max_hardware_threads() { return thread_pool_size(0); } -#else static void impl_initialize(); static bool impl_is_initialized(); @@ -180,21 +152,35 @@ class Serial { inline static unsigned impl_max_hardware_threads() { return impl_thread_pool_size(0); } -#endif + uint32_t impl_instance_id() const noexcept { return 0; } static const char* name(); //-------------------------------------------------------------------------- }; -namespace Profiling { +namespace Tools { namespace Experimental { template <> struct DeviceTypeTraits<Serial> { static constexpr DeviceType id = DeviceType::Serial; }; } // namespace Experimental -} // namespace Profiling +} // namespace Tools + +namespace Impl { + +class SerialSpaceInitializer : public ExecSpaceInitializerBase { + public: + SerialSpaceInitializer() = default; + ~SerialSpaceInitializer() = default; + void initialize(const InitArguments& args) final; + void finalize(const bool) final; + void fence() final; + void print_configuration(std::ostream& msg, const bool detail) final; +}; + +} // namespace Impl } // namespace Kokkos /*--------------------------------------------------------------------------*/ @@ -206,15 +192,15 @@ namespace Impl { template <> struct MemorySpaceAccess<Kokkos::Serial::memory_space, Kokkos::Serial::scratch_memory_space> { - enum { assignable = false }; - enum { accessible = true }; - enum { deepcopy = false }; + enum : bool { assignable = false }; + enum : bool { accessible = true }; + enum : bool { deepcopy = false }; }; template <> struct VerifyExecutionCanAccessMemorySpace< Kokkos::Serial::memory_space, Kokkos::Serial::scratch_memory_space> { - enum { value = true }; + enum : bool { value = true }; inline static void verify(void) {} inline static void verify(const void*) {} }; @@ -259,28 +245,18 @@ class TeamPolicyInternal<Kokkos::Serial, Properties...> public: //! Tag this class as a kokkos execution policy - typedef TeamPolicyInternal execution_policy; + using execution_policy = TeamPolicyInternal; - typedef PolicyTraits<Properties...> traits; + using traits = PolicyTraits<Properties...>; //! Execution space of this execution policy: - typedef Kokkos::Serial execution_space; + using execution_space = Kokkos::Serial; const typename traits::execution_space& space() const { static typename traits::execution_space m_space; return m_space; } - TeamPolicyInternal& operator=(const TeamPolicyInternal& p) { - m_league_size = p.m_league_size; - m_team_scratch_size[0] = p.m_team_scratch_size[0]; - m_thread_scratch_size[0] = p.m_thread_scratch_size[0]; - m_team_scratch_size[1] = p.m_team_scratch_size[1]; - m_thread_scratch_size[1] = p.m_thread_scratch_size[1]; - m_chunk_size = p.m_chunk_size; - return *this; - } - template <class ExecSpace, class... OtherProperties> friend class TeamPolicyInternal; @@ -296,22 +272,6 @@ class TeamPolicyInternal<Kokkos::Serial, Properties...> } //---------------------------------------- -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - template <class FunctorType> - static int team_size_max(const FunctorType&) { - return 1; - } - - template <class FunctorType> - static int team_size_recommended(const FunctorType&) { - return 1; - } - - template <class FunctorType> - static int team_size_recommended(const FunctorType&, const int&) { - return 1; - } -#endif template <class FunctorType> int team_size_max(const FunctorType&, const ParallelForTag&) const { @@ -344,11 +304,16 @@ class TeamPolicyInternal<Kokkos::Serial, Properties...> //---------------------------------------- inline int team_size() const { return 1; } + inline bool impl_auto_team_size() const { return false; } + inline bool impl_auto_vector_length() const { return false; } + inline void impl_set_team_size(size_t) {} + inline void impl_set_vector_length(size_t) {} inline int league_size() const { return m_league_size; } inline size_t scratch_size(const int& level, int = 0) const { return m_team_scratch_size[level] + m_thread_scratch_size[level]; } + inline int impl_vector_length() const { return 1; } inline static int vector_length_max() { return 1024; } // Use arbitrary large number, is meant as a vectorizable length @@ -357,104 +322,62 @@ class TeamPolicyInternal<Kokkos::Serial, Properties...> return (level == 0 ? 1024 * 32 : 20 * 1024 * 1024); } /** \brief Specify league size, request team size */ - TeamPolicyInternal(const execution_space&, int league_size_request -#ifndef KOKKOS_ENABLE_DEPRECATED_CODE - , - int team_size_request -#else - , - int /* team_size_request */ -#endif - , - int /* vector_length_request */ = 1) - : m_team_scratch_size{0, 0}, - m_thread_scratch_size{0, 0}, - m_league_size(league_size_request), - m_chunk_size(32) { -#ifndef KOKKOS_ENABLE_DEPRECATED_CODE - if (team_size_request > 1) - Kokkos::abort("Kokkos::abort: Requested Team Size is too large!"); -#endif - } - TeamPolicyInternal(const execution_space&, int league_size_request, - const Kokkos::AUTO_t& /* team_size_request */ - , - int /* vector_length_request */ = 1) - : m_team_scratch_size{0, 0}, - m_thread_scratch_size{0, 0}, - m_league_size(league_size_request), - m_chunk_size(32) {} - - TeamPolicyInternal(int league_size_request -#ifndef KOKKOS_ENABLE_DEPRECATED_CODE - , - int team_size_request -#else - , - int /* team_size_request */ -#endif - , - int /* vector_length_request */ = 1) + int team_size_request, int /* vector_length_request */ = 1) : m_team_scratch_size{0, 0}, m_thread_scratch_size{0, 0}, m_league_size(league_size_request), m_chunk_size(32) { -#ifndef KOKKOS_ENABLE_DEPRECATED_CODE if (team_size_request > 1) Kokkos::abort("Kokkos::abort: Requested Team Size is too large!"); -#endif } - TeamPolicyInternal(int league_size_request, + TeamPolicyInternal(const execution_space& space, int league_size_request, + const Kokkos::AUTO_t& /**team_size_request*/, + int vector_length_request = 1) + : TeamPolicyInternal(space, league_size_request, -1, + vector_length_request) {} + + TeamPolicyInternal(const execution_space& space, int league_size_request, const Kokkos::AUTO_t& /* team_size_request */ , - int /* vector_length_request */ = 1) - : m_team_scratch_size{0, 0}, - m_thread_scratch_size{0, 0}, - m_league_size(league_size_request), - m_chunk_size(32) {} + const Kokkos::AUTO_t& /* vector_length_request */ + ) + : TeamPolicyInternal(space, league_size_request, -1, -1) {} - inline int chunk_size() const { return m_chunk_size; } + TeamPolicyInternal(const execution_space& space, int league_size_request, + int team_size_request, + const Kokkos::AUTO_t& /* vector_length_request */ + ) + : TeamPolicyInternal(space, league_size_request, team_size_request, -1) {} -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - /** \brief set chunk_size to a discrete value*/ - inline TeamPolicyInternal set_chunk_size( - typename traits::index_type chunk_size_) const { - TeamPolicyInternal p = *this; - p.m_chunk_size = chunk_size_; - return p; - } + TeamPolicyInternal(int league_size_request, + const Kokkos::AUTO_t& team_size_request, + int vector_length_request = 1) + : TeamPolicyInternal(typename traits::execution_space(), + league_size_request, team_size_request, + vector_length_request) {} - /** \brief set per team scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal set_scratch_size( - const int& level, const PerTeamValue& per_team) const { - TeamPolicyInternal p = *this; - p.m_team_scratch_size[level] = per_team.value; - return p; - } + TeamPolicyInternal(int league_size_request, + const Kokkos::AUTO_t& team_size_request, + const Kokkos::AUTO_t& vector_length_request) + : TeamPolicyInternal(typename traits::execution_space(), + league_size_request, team_size_request, + vector_length_request) {} + TeamPolicyInternal(int league_size_request, int team_size_request, + const Kokkos::AUTO_t& vector_length_request) + : TeamPolicyInternal(typename traits::execution_space(), + league_size_request, team_size_request, + vector_length_request) {} + + TeamPolicyInternal(int league_size_request, int team_size_request, + int vector_length_request = 1) + : TeamPolicyInternal(typename traits::execution_space(), + league_size_request, team_size_request, + vector_length_request) {} - /** \brief set per thread scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal set_scratch_size( - const int& level, const PerThreadValue& per_thread) const { - TeamPolicyInternal p = *this; - p.m_thread_scratch_size[level] = per_thread.value; - return p; - } + inline int chunk_size() const { return m_chunk_size; } - /** \brief set per thread and per team scratch size for a specific level of - * the scratch hierarchy */ - inline TeamPolicyInternal set_scratch_size( - const int& level, const PerTeamValue& per_team, - const PerThreadValue& per_thread) const { - TeamPolicyInternal p = *this; - p.m_team_scratch_size[level] = per_team.value; - p.m_thread_scratch_size[level] = per_thread.value; - return p; - } -#else /** \brief set chunk_size to a discrete value*/ inline TeamPolicyInternal& set_chunk_size( typename traits::index_type chunk_size_) { @@ -487,45 +410,8 @@ class TeamPolicyInternal<Kokkos::Serial, Properties...> m_thread_scratch_size[level] = per_thread.value; return *this; } -#endif - typedef Impl::HostThreadTeamMember<Kokkos::Serial> member_type; - - protected: -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - /** \brief set chunk_size to a discrete value*/ - inline TeamPolicyInternal internal_set_chunk_size( - typename traits::index_type chunk_size_) { - m_chunk_size = chunk_size_; - return *this; - } - - /** \brief set per team scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal internal_set_scratch_size( - const int& level, const PerTeamValue& per_team) { - m_team_scratch_size[level] = per_team.value; - return *this; - } - - /** \brief set per thread scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal internal_set_scratch_size( - const int& level, const PerThreadValue& per_thread) { - m_thread_scratch_size[level] = per_thread.value; - return *this; - } - - /** \brief set per thread and per team scratch size for a specific level of - * the scratch hierarchy */ - inline TeamPolicyInternal internal_set_scratch_size( - const int& level, const PerTeamValue& per_team, - const PerThreadValue& per_thread) { - m_team_scratch_size[level] = per_team.value; - m_thread_scratch_size[level] = per_thread.value; - return *this; - } -#endif + using member_type = Impl::HostThreadTeamMember<Kokkos::Serial>; }; } /* namespace Impl */ } /* namespace Kokkos */ @@ -540,7 +426,7 @@ namespace Impl { template <class FunctorType, class... Traits> class ParallelFor<FunctorType, Kokkos::RangePolicy<Traits...>, Kokkos::Serial> { private: - typedef Kokkos::RangePolicy<Traits...> Policy; + using Policy = Kokkos::RangePolicy<Traits...>; const FunctorType m_functor; const Policy m_policy; @@ -579,25 +465,25 @@ template <class FunctorType, class ReducerType, class... Traits> class ParallelReduce<FunctorType, Kokkos::RangePolicy<Traits...>, ReducerType, Kokkos::Serial> { private: - typedef Kokkos::RangePolicy<Traits...> Policy; - typedef typename Policy::work_tag WorkTag; + using Policy = Kokkos::RangePolicy<Traits...>; + using WorkTag = typename Policy::work_tag; - typedef Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, - FunctorType, ReducerType> - ReducerConditional; + using ReducerConditional = + Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, + FunctorType, ReducerType>; - typedef typename ReducerConditional::type ReducerTypeFwd; - typedef + using ReducerTypeFwd = typename ReducerConditional::type; + using WorkTagFwd = typename Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, - WorkTag, void>::type WorkTagFwd; + WorkTag, void>::type; - typedef FunctorAnalysis<FunctorPatternInterface::REDUCE, Policy, FunctorType> - Analysis; + using Analysis = + FunctorAnalysis<FunctorPatternInterface::REDUCE, Policy, FunctorType>; - typedef Kokkos::Impl::FunctorValueInit<ReducerTypeFwd, WorkTagFwd> ValueInit; + using ValueInit = Kokkos::Impl::FunctorValueInit<ReducerTypeFwd, WorkTagFwd>; - typedef typename Analysis::pointer_type pointer_type; - typedef typename Analysis::reference_type reference_type; + using pointer_type = typename Analysis::pointer_type; + using reference_type = typename Analysis::reference_type; const FunctorType m_functor; const Policy m_policy; @@ -664,7 +550,8 @@ class ParallelReduce<FunctorType, Kokkos::RangePolicy<Traits...>, ReducerType, "Kokkos::Serial reduce result must be a View"); static_assert( - std::is_same<typename HostViewType::memory_space, HostSpace>::value, + Kokkos::Impl::MemorySpaceAccess<typename HostViewType::memory_space, + Kokkos::HostSpace>::accessible, "Kokkos::Serial reduce result must be a View in HostSpace"); } @@ -687,16 +574,16 @@ template <class FunctorType, class... Traits> class ParallelScan<FunctorType, Kokkos::RangePolicy<Traits...>, Kokkos::Serial> { private: - typedef Kokkos::RangePolicy<Traits...> Policy; - typedef typename Policy::work_tag WorkTag; + using Policy = Kokkos::RangePolicy<Traits...>; + using WorkTag = typename Policy::work_tag; - typedef FunctorAnalysis<FunctorPatternInterface::SCAN, Policy, FunctorType> - Analysis; + using Analysis = + FunctorAnalysis<FunctorPatternInterface::SCAN, Policy, FunctorType>; - typedef Kokkos::Impl::FunctorValueInit<FunctorType, WorkTag> ValueInit; + using ValueInit = Kokkos::Impl::FunctorValueInit<FunctorType, WorkTag>; - typedef typename Analysis::pointer_type pointer_type; - typedef typename Analysis::reference_type reference_type; + using pointer_type = typename Analysis::pointer_type; + using reference_type = typename Analysis::reference_type; const FunctorType m_functor; const Policy m_policy; @@ -747,16 +634,16 @@ template <class FunctorType, class ReturnType, class... Traits> class ParallelScanWithTotal<FunctorType, Kokkos::RangePolicy<Traits...>, ReturnType, Kokkos::Serial> { private: - typedef Kokkos::RangePolicy<Traits...> Policy; - typedef typename Policy::work_tag WorkTag; + using Policy = Kokkos::RangePolicy<Traits...>; + using WorkTag = typename Policy::work_tag; - typedef FunctorAnalysis<FunctorPatternInterface::SCAN, Policy, FunctorType> - Analysis; + using Analysis = + FunctorAnalysis<FunctorPatternInterface::SCAN, Policy, FunctorType>; - typedef Kokkos::Impl::FunctorValueInit<FunctorType, WorkTag> ValueInit; + using ValueInit = Kokkos::Impl::FunctorValueInit<FunctorType, WorkTag>; - typedef typename Analysis::pointer_type pointer_type; - typedef typename Analysis::reference_type reference_type; + using pointer_type = typename Analysis::pointer_type; + using reference_type = typename Analysis::reference_type; const FunctorType m_functor; const Policy m_policy; @@ -823,12 +710,11 @@ template <class FunctorType, class... Traits> class ParallelFor<FunctorType, Kokkos::MDRangePolicy<Traits...>, Kokkos::Serial> { private: - typedef Kokkos::MDRangePolicy<Traits...> MDRangePolicy; - typedef typename MDRangePolicy::impl_range_policy Policy; + using MDRangePolicy = Kokkos::MDRangePolicy<Traits...>; + using Policy = typename MDRangePolicy::impl_range_policy; - typedef typename Kokkos::Impl::HostIterateTile< - MDRangePolicy, FunctorType, typename MDRangePolicy::work_tag, void> - iterate_type; + using iterate_type = typename Kokkos::Impl::HostIterateTile< + MDRangePolicy, FunctorType, typename MDRangePolicy::work_tag, void>; const FunctorType m_functor; const MDRangePolicy m_mdr_policy; @@ -855,28 +741,27 @@ template <class FunctorType, class ReducerType, class... Traits> class ParallelReduce<FunctorType, Kokkos::MDRangePolicy<Traits...>, ReducerType, Kokkos::Serial> { private: - typedef Kokkos::MDRangePolicy<Traits...> MDRangePolicy; - typedef typename MDRangePolicy::impl_range_policy Policy; + using MDRangePolicy = Kokkos::MDRangePolicy<Traits...>; + using Policy = typename MDRangePolicy::impl_range_policy; - typedef typename MDRangePolicy::work_tag WorkTag; + using WorkTag = typename MDRangePolicy::work_tag; - typedef Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, - FunctorType, ReducerType> - ReducerConditional; - typedef typename ReducerConditional::type ReducerTypeFwd; - typedef + using ReducerConditional = + Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, + FunctorType, ReducerType>; + using ReducerTypeFwd = typename ReducerConditional::type; + using WorkTagFwd = typename Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, - WorkTag, void>::type WorkTagFwd; + WorkTag, void>::type; - typedef FunctorAnalysis<FunctorPatternInterface::REDUCE, MDRangePolicy, - FunctorType> - Analysis; + using Analysis = FunctorAnalysis<FunctorPatternInterface::REDUCE, + MDRangePolicy, FunctorType>; - typedef Kokkos::Impl::FunctorValueInit<ReducerTypeFwd, WorkTagFwd> ValueInit; + using ValueInit = Kokkos::Impl::FunctorValueInit<ReducerTypeFwd, WorkTagFwd>; - typedef typename Analysis::pointer_type pointer_type; - typedef typename Analysis::value_type value_type; - typedef typename Analysis::reference_type reference_type; + using pointer_type = typename Analysis::pointer_type; + using value_type = typename Analysis::value_type; + using reference_type = typename Analysis::reference_type; using iterate_type = typename Kokkos::Impl::HostIterateTile<MDRangePolicy, FunctorType, @@ -936,7 +821,8 @@ class ParallelReduce<FunctorType, Kokkos::MDRangePolicy<Traits...>, ReducerType, "Kokkos::Serial reduce result must be a View"); static_assert( - std::is_same<typename HostViewType::memory_space, HostSpace>::value, + Kokkos::Impl::MemorySpaceAccess<typename HostViewType::memory_space, + Kokkos::HostSpace>::accessible, "Kokkos::Serial reduce result must be a View in HostSpace"); } @@ -970,8 +856,8 @@ class ParallelFor<FunctorType, Kokkos::TeamPolicy<Properties...>, private: enum { TEAM_REDUCE_SIZE = 512 }; - typedef TeamPolicyInternal<Kokkos::Serial, Properties...> Policy; - typedef typename Policy::member_type Member; + using Policy = TeamPolicyInternal<Kokkos::Serial, Properties...>; + using Member = typename Policy::member_type; const FunctorType m_functor; const int m_league; @@ -1024,26 +910,26 @@ class ParallelReduce<FunctorType, Kokkos::TeamPolicy<Properties...>, private: enum { TEAM_REDUCE_SIZE = 512 }; - typedef TeamPolicyInternal<Kokkos::Serial, Properties...> Policy; + using Policy = TeamPolicyInternal<Kokkos::Serial, Properties...>; - typedef FunctorAnalysis<FunctorPatternInterface::REDUCE, Policy, FunctorType> - Analysis; + using Analysis = + FunctorAnalysis<FunctorPatternInterface::REDUCE, Policy, FunctorType>; - typedef typename Policy::member_type Member; - typedef typename Policy::work_tag WorkTag; + using Member = typename Policy::member_type; + using WorkTag = typename Policy::work_tag; - typedef Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, - FunctorType, ReducerType> - ReducerConditional; - typedef typename ReducerConditional::type ReducerTypeFwd; - typedef + using ReducerConditional = + Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, + FunctorType, ReducerType>; + using ReducerTypeFwd = typename ReducerConditional::type; + using WorkTagFwd = typename Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, - WorkTag, void>::type WorkTagFwd; + WorkTag, void>::type; - typedef Kokkos::Impl::FunctorValueInit<ReducerTypeFwd, WorkTagFwd> ValueInit; + using ValueInit = Kokkos::Impl::FunctorValueInit<ReducerTypeFwd, WorkTagFwd>; - typedef typename Analysis::pointer_type pointer_type; - typedef typename Analysis::reference_type reference_type; + using pointer_type = typename Analysis::pointer_type; + using reference_type = typename Analysis::reference_type; const FunctorType m_functor; const int m_league; @@ -1112,7 +998,8 @@ class ParallelReduce<FunctorType, Kokkos::TeamPolicy<Properties...>, "Reduction result on Kokkos::Serial must be a Kokkos::View"); static_assert( - std::is_same<typename ViewType::memory_space, Kokkos::HostSpace>::value, + Kokkos::Impl::MemorySpaceAccess<typename ViewType::memory_space, + Kokkos::HostSpace>::accessible, "Reduction result on Kokkos::Serial must be a Kokkos::View in " "HostSpace"); } @@ -1152,6 +1039,11 @@ class UniqueToken<Serial, UniqueTokenScope::Instance> { /// This object should not be shared between instances UniqueToken(execution_space const& = execution_space()) noexcept {} + /// \brief create object size for requested size on given instance + /// + /// It is the users responsibility to only acquire size tokens concurrently + UniqueToken(size_type, execution_space const& = execution_space()) {} + /// \brief upper bound for acquired values, i.e. 0 <= value < size() KOKKOS_INLINE_FUNCTION int size() const noexcept { return 1; } diff --git a/packages/kokkos/core/src/Kokkos_TaskScheduler.hpp b/packages/kokkos/core/src/Kokkos_TaskScheduler.hpp index 6b9608d62..b2b2cb447 100644 --- a/packages/kokkos/core/src/Kokkos_TaskScheduler.hpp +++ b/packages/kokkos/core/src/Kokkos_TaskScheduler.hpp @@ -232,9 +232,9 @@ class BasicTaskScheduler : public Impl::TaskSchedulerBase { explicit BasicTaskScheduler(memory_pool const& arg_memory_pool) noexcept : m_track(), m_queue(nullptr) { - typedef Kokkos::Impl::SharedAllocationRecord<memory_space, - typename queue_type::Destroy> - record_type; + using record_type = + Kokkos::Impl::SharedAllocationRecord<memory_space, + typename queue_type::Destroy>; record_type* record = record_type::allocate(memory_space(), "TaskQueue", sizeof(queue_type)); diff --git a/packages/kokkos/core/src/Kokkos_TaskScheduler_fwd.hpp b/packages/kokkos/core/src/Kokkos_TaskScheduler_fwd.hpp index c5f880775..28af6345d 100644 --- a/packages/kokkos/core/src/Kokkos_TaskScheduler_fwd.hpp +++ b/packages/kokkos/core/src/Kokkos_TaskScheduler_fwd.hpp @@ -47,6 +47,7 @@ //---------------------------------------------------------------------------- +#include <cstddef> #include <Kokkos_Macros.hpp> #if defined(KOKKOS_ENABLE_TASKDAG) diff --git a/packages/kokkos/core/src/Kokkos_Threads.hpp b/packages/kokkos/core/src/Kokkos_Threads.hpp index 9dd644df2..1374ee710 100644 --- a/packages/kokkos/core/src/Kokkos_Threads.hpp +++ b/packages/kokkos/core/src/Kokkos_Threads.hpp @@ -58,6 +58,7 @@ #include <Kokkos_MemoryTraits.hpp> #include <impl/Kokkos_Profiling_Interface.hpp> #include <impl/Kokkos_Tags.hpp> +#include <impl/Kokkos_ExecSpaceInitializer.hpp> /*--------------------------------------------------------------------------*/ @@ -77,16 +78,16 @@ class Threads { //! \name Type declarations that all Kokkos devices must provide. //@{ //! Tag this class as a kokkos execution space - typedef Threads execution_space; - typedef Kokkos::HostSpace memory_space; + using execution_space = Threads; + using memory_space = Kokkos::HostSpace; //! This execution space preferred device_type - typedef Kokkos::Device<execution_space, memory_space> device_type; + using device_type = Kokkos::Device<execution_space, memory_space>; - typedef Kokkos::LayoutRight array_layout; - typedef memory_space::size_type size_type; + using array_layout = Kokkos::LayoutRight; + using size_type = memory_space::size_type; - typedef ScratchMemorySpace<Threads> scratch_memory_space; + using scratch_memory_space = ScratchMemorySpace<Threads>; //@} /*------------------------------------------------------------------------*/ @@ -108,45 +109,11 @@ class Threads { /// device have completed. static void impl_static_fence(); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - static void fence(); -#else void fence() const; -#endif /** \brief Return the maximum amount of concurrency. */ static int concurrency(); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - static bool sleep(); - - static bool wake(); - - static void finalize(); - - static void initialize(unsigned threads_count = 0, - unsigned use_numa_count = 0, - unsigned use_cores_per_numa = 0, - bool allow_asynchronous_threadpool = false); - - static int is_initialized(); - - static Threads& instance(int = 0); - - //---------------------------------------- - - static int thread_pool_size(int depth = 0); -#if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) - static int thread_pool_rank(); -#else - KOKKOS_INLINE_FUNCTION static int thread_pool_rank() { return 0; } -#endif - - inline static unsigned max_hardware_threads() { return thread_pool_size(0); } - KOKKOS_INLINE_FUNCTION static unsigned hardware_thread_id() { - return thread_pool_rank(); - } -#else /// \brief Free any resources being consumed by the device. /// /// For the Threads device, this terminates spawned worker threads. @@ -199,7 +166,6 @@ class Threads { KOKKOS_INLINE_FUNCTION static unsigned impl_hardware_thread_id() { return impl_thread_pool_rank(); } -#endif uint32_t impl_instance_id() const noexcept { return 0; } @@ -208,14 +174,28 @@ class Threads { //---------------------------------------- }; -namespace Profiling { +namespace Tools { namespace Experimental { template <> struct DeviceTypeTraits<Threads> { static constexpr DeviceType id = DeviceType::Threads; }; } // namespace Experimental -} // namespace Profiling +} // namespace Tools + +namespace Impl { + +class ThreadsSpaceInitializer : public ExecSpaceInitializerBase { + public: + ThreadsSpaceInitializer() = default; + ~ThreadsSpaceInitializer() = default; + void initialize(const InitArguments& args) final; + void finalize(const bool) final; + void fence() final; + void print_configuration(std::ostream& msg, const bool detail) final; +}; + +} // namespace Impl } // namespace Kokkos /*--------------------------------------------------------------------------*/ @@ -226,15 +206,15 @@ namespace Impl { template <> struct MemorySpaceAccess<Kokkos::Threads::memory_space, Kokkos::Threads::scratch_memory_space> { - enum { assignable = false }; - enum { accessible = true }; - enum { deepcopy = false }; + enum : bool { assignable = false }; + enum : bool { accessible = true }; + enum : bool { deepcopy = false }; }; template <> struct VerifyExecutionCanAccessMemorySpace< Kokkos::Threads::memory_space, Kokkos::Threads::scratch_memory_space> { - enum { value = true }; + enum : bool { value = true }; inline static void verify(void) {} inline static void verify(const void*) {} }; diff --git a/packages/kokkos/core/src/Kokkos_Timer.hpp b/packages/kokkos/core/src/Kokkos_Timer.hpp index 1dab73b44..4fda4ec4d 100644 --- a/packages/kokkos/core/src/Kokkos_Timer.hpp +++ b/packages/kokkos/core/src/Kokkos_Timer.hpp @@ -45,6 +45,7 @@ #ifndef KOKKOS_TIMER_HPP #define KOKKOS_TIMER_HPP +#include <Kokkos_Macros.hpp> #include <chrono> namespace Kokkos { diff --git a/packages/kokkos/core/src/Kokkos_Tuners.hpp b/packages/kokkos/core/src/Kokkos_Tuners.hpp new file mode 100644 index 000000000..83492babc --- /dev/null +++ b/packages/kokkos/core/src/Kokkos_Tuners.hpp @@ -0,0 +1,477 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_KOKKOS_TUNERS_HPP +#define KOKKOS_KOKKOS_TUNERS_HPP + +#include <Kokkos_Macros.hpp> +#include <Kokkos_Core_fwd.hpp> +#include <Kokkos_ExecPolicy.hpp> +#include <impl/Kokkos_Profiling_Interface.hpp> + +#include <array> +#include <utility> +#include <tuple> +#include <string> +#include <vector> +#include <map> +#include <cassert> + +namespace Kokkos { +namespace Tools { + +namespace Experimental { + +// forward declarations +SetOrRange make_candidate_set(size_t size, int64_t* data); +bool have_tuning_tool(); +size_t declare_output_type(const std::string&, + Kokkos::Tools::Experimental::VariableInfo); +void request_output_values(size_t, size_t, + Kokkos::Tools::Experimental::VariableValue*); +VariableValue make_variable_value(size_t, int64_t); +VariableValue make_variable_value(size_t, double); +SetOrRange make_candidate_range(double lower, double upper, double step, + bool openLower, bool openUpper); +size_t get_new_context_id(); +void begin_context(size_t context_id); +void end_context(size_t context_id); +namespace Impl { + +/** We're going to take in search space descriptions + * as nested maps, which aren't efficient to + * iterate across by index. These are very similar + * to nested maps, but better for index-based lookup + */ +template <typename ValueType, typename ContainedType> +struct ValueHierarchyNode; + +template <typename ValueType, typename ContainedType> +struct ValueHierarchyNode { + std::vector<ValueType> root_values; + std::vector<ContainedType> sub_values; + void add_root_value(const ValueType& in) noexcept { + root_values.push_back(in); + } + void add_sub_container(const ContainedType& in) { sub_values.push_back(in); } + const ValueType& get_root_value(const size_t index) const { + return root_values[index]; + } + const ContainedType& get_sub_value(const size_t index) const { + return sub_values[index]; + } +}; + +template <typename ValueType> +struct ValueHierarchyNode<ValueType, void> { + std::vector<ValueType> root_values; + explicit ValueHierarchyNode(std::vector<ValueType> rv) + : root_values(std::move(rv)) {} + void add_root_value(const ValueType& in) noexcept { + root_values.push_back(in); + } + const ValueType& get_root_value(const size_t index) const { + return root_values[index]; + } +}; + +/** For a given nested map type, we need a way to + * declare the equivalent ValueHierarchyNode + * structure + */ + +template <class NestedMap> +struct MapTypeConverter; + +// Vectors are our lowest-level, no nested values +template <class T> +struct MapTypeConverter<std::vector<T>> { + using type = ValueHierarchyNode<T, void>; +}; + +// Maps contain both the "root" types and sub-vectors +template <class K, class V> +struct MapTypeConverter<std::map<K, V>> { + using type = ValueHierarchyNode<K, typename MapTypeConverter<V>::type>; +}; + +/** + * We also need to be able to construct a ValueHierarchyNode set from a + * map + */ + +template <class NestedMap> +struct ValueHierarchyConstructor; + +// Vectors are our lowest-level, no nested values. Just fill in the fundamental +// values +template <class T> +struct ValueHierarchyConstructor<std::vector<T>> { + using return_type = typename MapTypeConverter<std::vector<T>>::type; + static return_type build(const std::vector<T>& in) { return return_type{in}; } +}; + +// For maps, we need to fill in the fundamental values, and construct child +// nodes +template <class K, class V> +struct ValueHierarchyConstructor<std::map<K, V>> { + using return_type = typename MapTypeConverter<std::map<K, V>>::type; + static return_type build(const std::map<K, V>& in) { + return_type node_to_build; + for (auto& entry : in) { + node_to_build.add_root_value(entry.first); + node_to_build.add_sub_container( + ValueHierarchyConstructor<V>::build(entry.second)); + } + return node_to_build; + } +}; + +/** + * We're going to be declaring a sparse multidimensional + * tuning space as a set of nested maps. The innermost level + * will be a vector. The dimensionality of such a space is the number of + * maps + 1. + * + * The following templates implement such logic recursively + */ +template <class InspectForDepth> +struct get_space_dimensionality; + +// The dimensionality of a vector is 1 +template <class T> +struct get_space_dimensionality<std::vector<T>> { + static constexpr const int value = 1; +}; + +// The dimensionality of a map is 1 (the map) plus the dimensionality +// of the map's value type +template <class K, class V> +struct get_space_dimensionality<std::map<K, V>> { + static constexpr const int value = 1 + get_space_dimensionality<V>::value; +}; + +/** + * This is the ugly part of this implementation: mapping a set of doubles in + * [0.0,1.0) into a point in this multidimensional space. We're going to + * implement this concept recursively, building up a tuple at each level. + */ + +// First, a helper to get the value in one dimension +template <class Container> +struct DimensionValueExtractor; + +// At any given level, just return your value at that level +template <class RootType, class Subtype> +struct DimensionValueExtractor<ValueHierarchyNode<RootType, Subtype>> { + static RootType get(const ValueHierarchyNode<RootType, Subtype>& dimension, + double fraction_to_traverse) { + size_t index = dimension.root_values.size() * fraction_to_traverse; + return dimension.get_root_value(index); + } +}; + +/** Now we're going to do the full "get a point in the space". + * At a root level, we'll take in a ValueHierarchyNode and a set of doubles + * representing the value in [0.0,1.0) we want to pick + */ + +// At the bottom level, we have one double and a base-level ValueHierarchyNode + +template <class HierarchyNode, class... InterpolationIndices> +struct GetMultidimensionalPoint; + +template <class ValueType> +struct GetMultidimensionalPoint<ValueHierarchyNode<ValueType, void>, double> { + using node_type = ValueHierarchyNode<ValueType, void>; + using return_type = std::tuple<ValueType>; + static return_type build(const node_type& in, double index) { + return std::make_tuple(DimensionValueExtractor<node_type>::get(in, index)); + } +}; + +// At levels above the bottom, we tuple_cat the result of our child on the end +// of our own tuple +template <class ValueType, class Subtype, class... Indices> +struct GetMultidimensionalPoint<ValueHierarchyNode<ValueType, Subtype>, double, + Indices...> { + using node_type = ValueHierarchyNode<ValueType, Subtype>; + using sub_tuple = + typename GetMultidimensionalPoint<Subtype, Indices...>::return_type; + using return_type = decltype(std::tuple_cat( + std::declval<std::tuple<ValueType>>(), std::declval<sub_tuple>())); + static return_type build(const node_type& in, double fraction_to_traverse, + Indices... indices) { + size_t index = in.sub_values.size() * fraction_to_traverse; + auto dimension_value = std::make_tuple( + DimensionValueExtractor<node_type>::get(in, fraction_to_traverse)); + return std::tuple_cat(dimension_value, + GetMultidimensionalPoint<Subtype, Indices...>::build( + in.get_sub_value(index), indices...)); + } +}; + +template <typename PointType, class ArrayType, size_t... Is> +auto get_point_helper(const PointType& in, const ArrayType& indices, + std::index_sequence<Is...>) { + using helper = GetMultidimensionalPoint< + PointType, + decltype(std::get<Is>(std::declval<ArrayType>()).value.double_value)...>; + return helper::build(in, std::get<Is>(indices).value.double_value...); +} + +template <typename PointType, typename ArrayType> +struct GetPoint; + +template <typename PointType, size_t X> +struct GetPoint<PointType, + std::array<Kokkos::Tools::Experimental::VariableValue, X>> { + using index_set_type = + std::array<Kokkos::Tools::Experimental::VariableValue, X>; + static auto build(const PointType& in, const index_set_type& indices) { + return get_point_helper(in, indices, std::make_index_sequence<X>{}); + } +}; + +template <typename PointType, typename ArrayType> +auto get_point(const PointType& point, const ArrayType& indices) { + return GetPoint<PointType, ArrayType>::build(point, indices); +} + +} // namespace Impl + +template <template <class...> class Container, size_t MaxDimensionSize = 100, + class... TemplateArguments> +class MultidimensionalSparseTuningProblem { + public: + using ProblemSpaceInput = Container<TemplateArguments...>; + static constexpr const int space_dimensionality = + Impl::get_space_dimensionality<ProblemSpaceInput>::value; + static constexpr const size_t max_space_dimension_size = MaxDimensionSize; + static constexpr const double tuning_min = 0.0; + static constexpr const double tuning_max = 0.999; + static constexpr const double tuning_step = + tuning_max / max_space_dimension_size; + + using StoredProblemSpace = + typename Impl::MapTypeConverter<ProblemSpaceInput>::type; + using HierarchyConstructor = + typename Impl::ValueHierarchyConstructor<Container<TemplateArguments...>>; + + using ValueArray = std::array<Kokkos::Tools::Experimental::VariableValue, + space_dimensionality>; + + private: + StoredProblemSpace m_space; + std::array<size_t, space_dimensionality> variable_ids; + size_t context; + + public: + MultidimensionalSparseTuningProblem() = default; + MultidimensionalSparseTuningProblem(ProblemSpaceInput space, + const std::vector<std::string>& names) + : m_space(HierarchyConstructor::build(space)) { + assert(names.size() == space_dimensionality); + for (unsigned long x = 0; x < names.size(); ++x) { + VariableInfo info; + info.type = Kokkos::Tools::Experimental::ValueType::kokkos_value_double; + info.category = Kokkos::Tools::Experimental::StatisticalCategory:: + kokkos_value_interval; + info.valueQuantity = + Kokkos::Tools::Experimental::CandidateValueType::kokkos_value_range; + info.candidates = Kokkos::Tools::Experimental::make_candidate_range( + tuning_min, tuning_max, tuning_step, true, true); + variable_ids[x] = declare_output_type(names[x], info); + } + } + + auto begin() { + context = Kokkos::Tools::Experimental::get_new_context_id(); + ValueArray values; + for (int x = 0; x < space_dimensionality; ++x) { + values[x] = Kokkos::Tools::Experimental::make_variable_value( + variable_ids[x], 0.0); + } + begin_context(context); + request_output_values(context, space_dimensionality, values.data()); + return get_point(m_space, values); + } + + auto end() { end_context(context); } +}; + +template <size_t MaxDimensionSize = 100, template <class...> class Container, + class... TemplateArguments> +auto make_multidimensional_sparse_tuning_problem( + const Container<TemplateArguments...>& in, std::vector<std::string> names) { + return MultidimensionalSparseTuningProblem<Container, MaxDimensionSize, + TemplateArguments...>(in, names); +} +class TeamSizeTuner { + private: + using SpaceDescription = std::map<int64_t, std::vector<int64_t>>; + using TunerType = decltype(make_multidimensional_sparse_tuning_problem<20>( + std::declval<SpaceDescription>(), + std::declval<std::vector<std::string>>())); + TunerType tuner; + + public: + TeamSizeTuner() = default; + TeamSizeTuner& operator=(const TeamSizeTuner& other) = default; + TeamSizeTuner(const TeamSizeTuner& other) = default; + TeamSizeTuner& operator=(TeamSizeTuner&& other) = default; + TeamSizeTuner(TeamSizeTuner&& other) = default; + template <typename ViableConfigurationCalculator, typename Functor, + typename TagType, typename... Properties> + TeamSizeTuner(const std::string& name, + Kokkos::TeamPolicy<Properties...>& policy, + const Functor& functor, const TagType& tag, + ViableConfigurationCalculator calc) { + using PolicyType = Kokkos::TeamPolicy<Properties...>; + auto initial_vector_length = policy.impl_vector_length(); + if (initial_vector_length < 1) { + policy.impl_set_vector_length(1); + } + /** + * Here we attempt to enumerate all of the possible configurations + * to expose to an autotuner. There are three possibilities + * + * 1) We're tuning both vector length and team size + * 2) We're tuning vector length but not team size + * 3) We're tuning team size but not vector length + * + * (In the fourth case where nothing is tuned + * this function won't be called) + * + * The set of valid team sizes is dependent on + * a vector length, so this leads to three + * algorithms + * + * 1) Loop over vector lengths to get the set + * of team sizes for each vector length, + * add it all to the set + * 2) Loop over vector lengths to see if the + * provided team size is valid for that + * vector length. If so, add it + * 3) A special case of (1) in which we only + * have one vector length + * + */ + SpaceDescription space_description; + + auto max_vector_length = PolicyType::vector_length_max(); + std::vector<int64_t> allowed_vector_lengths; + + if (policy.impl_auto_vector_length()) { // case 1 or 2 + for (int vector_length = max_vector_length; vector_length >= 1; + vector_length /= 2) { + policy.impl_set_vector_length(vector_length); + /** + * Figuring out whether a vector length is valid depends + * on whether we're in case 1 (tune everything) or 2 (just tune vector + * length) + * + * If we're tuning everything, all legal vector lengths are valid. + * If we're just tuning vector length, we need to check that if we + * set this vector length, the team size provided will be valid. + * + * These are the left and right hand sides of the "or" in this + * conditional, respectively. + */ + auto max_team_size = calc.get_max_team_size(policy, functor, tag); + if ((policy.impl_auto_team_size()) || + (policy.team_size() <= max_team_size)) { + allowed_vector_lengths.push_back(vector_length); + } + } + } else { // case 3, there's only one vector length to care about + allowed_vector_lengths.push_back(policy.impl_vector_length()); + } + + for (const auto vector_length : allowed_vector_lengths) { + std::vector<int64_t> allowed_team_sizes; + policy.impl_set_vector_length(vector_length); + auto max_team_size = calc.get_max_team_size(policy, functor, tag); + if (policy.impl_auto_team_size()) { // case 1 or 3, try all legal team + // sizes + for (int team_size = max_team_size; team_size >= 1; team_size /= 2) { + allowed_team_sizes.push_back(team_size); + } + } else { // case 2, just try the provided team size + allowed_team_sizes.push_back(policy.team_size()); + } + space_description[vector_length] = allowed_team_sizes; + } + tuner = make_multidimensional_sparse_tuning_problem<20>( + space_description, {std::string(name + "_vector_length"), + std::string(name + "_team_size")}); + policy.impl_set_vector_length(initial_vector_length); + } + + template <typename... Properties> + void tune(Kokkos::TeamPolicy<Properties...>& policy) { + if (Kokkos::Tools::Experimental::have_tuning_tool()) { + auto configuration = tuner.begin(); + auto team_size = std::get<1>(configuration); + auto vector_length = std::get<0>(configuration); + if (vector_length > 0) { + policy.impl_set_team_size(team_size); + policy.impl_set_vector_length(vector_length); + } + } + } + void end() { + if (Kokkos::Tools::Experimental::have_tuning_tool()) { + tuner.end(); + } + } + + private: +}; + +} // namespace Experimental +} // namespace Tools +} // namespace Kokkos + +#endif diff --git a/packages/kokkos/core/src/Kokkos_UniqueToken.hpp b/packages/kokkos/core/src/Kokkos_UniqueToken.hpp index 523ccad94..bce7e703f 100644 --- a/packages/kokkos/core/src/Kokkos_UniqueToken.hpp +++ b/packages/kokkos/core/src/Kokkos_UniqueToken.hpp @@ -46,6 +46,8 @@ #define KOKKOS_UNIQUE_TOKEN_HPP #include <Kokkos_Macros.hpp> +#include <Kokkos_MemoryTraits.hpp> +#include <Kokkos_Core_fwd.hpp> namespace Kokkos { namespace Experimental { @@ -82,6 +84,95 @@ class UniqueToken { void release(size_type) const; }; +/// \brief Instance scope UniqueToken allows for a max size other than +/// execution_space::concurrency() +/// +/// This object should behave like a ref-counted object, so that when the last +/// instance is destroyed, resources are free if needed +template <typename ExecutionSpace> +class UniqueToken<ExecutionSpace, UniqueTokenScope::Instance> + : public UniqueToken<ExecutionSpace, UniqueTokenScope::Global> { + public: + using execution_space = ExecutionSpace; + using size_type = typename execution_space::size_type; + + /// \brief Create object with specified size + /// + /// It is required that max_size is >= the maximum number of concurrent + /// threads that will attempt to acquire the UniqueToken. This constructor is + /// most commonly useful when you: + /// 1) Have a loop bound that may be smaller than + /// execution_space::concurrency(). + /// 2) Want a per-team unique token in the range [0, + /// execution_space::concurrency() / team_size) + UniqueToken(size_type max_size, execution_space const& = execution_space()); +}; + +// NOTE There was an agreement amongst developers that "AcquireUniqueToken" is a +// bad name but at this time no one has suggested a better alternative. + +/// \brief RAII helper for per-thread unique token values. +/// +/// The token value will be acquired at construction and automatically +/// released at destruction. +template <typename ExecutionSpace, + UniqueTokenScope TokenScope = UniqueTokenScope::Instance> +class AcquireUniqueToken { + public: + using exec_space = ExecutionSpace; + using size_type = typename exec_space::size_type; + using token_type = UniqueToken<exec_space, TokenScope>; + + private: + token_type my_token; + size_type my_acquired_val; + + public: + KOKKOS_FUNCTION AcquireUniqueToken(token_type t) + : my_token(t), my_acquired_val(my_token.acquire()) {} + + KOKKOS_FUNCTION ~AcquireUniqueToken() { my_token.release(my_acquired_val); } + + KOKKOS_FUNCTION size_type value() const { return my_acquired_val; } +}; + +/// \brief RAII helper for per-team unique token values. +/// +/// The token value will be acquired at construction and automatically +/// released at destruction. All threads in a team will share the same +/// token value. +template <typename TeamPolicy> +class AcquireTeamUniqueToken { + public: + using exec_space = typename TeamPolicy::execution_space; + using token_type = UniqueToken<exec_space>; + using size_type = typename token_type::size_type; + using team_member_type = typename TeamPolicy::member_type; + using scratch_view = + Kokkos::View<size_type, typename exec_space::scratch_memory_space, + Kokkos::MemoryUnmanaged>; + + private: + token_type my_token; + size_type my_acquired_val; + scratch_view my_team_acquired_val; + team_member_type my_team; + + public: + // NOTE The implementations of the constructor and destructor use + // `Kokkos::single()` which is an inline function defined in each backend. + // This creates circular dependency issues. Moving them to a separate header + // is less than ideal and should be revisited later. Having a `UniqueToken` + // forward declaration was considered but the non-type template parameter + // makes things complicated because it would require moving the definition of + // `UniqueTokenScope` enumeration type and its enumerators away which would + // hurt readability. + KOKKOS_FUNCTION AcquireTeamUniqueToken(token_type t, team_member_type team); + KOKKOS_FUNCTION ~AcquireTeamUniqueToken(); + KOKKOS_FUNCTION size_type value() const { return my_acquired_val; } + static std::size_t shmem_size() { return scratch_view::shmem_size(); } +}; + } // namespace Experimental } // namespace Kokkos diff --git a/packages/kokkos/core/src/Kokkos_Vectorization.hpp b/packages/kokkos/core/src/Kokkos_Vectorization.hpp index cd2473410..a232e5b3a 100644 --- a/packages/kokkos/core/src/Kokkos_Vectorization.hpp +++ b/packages/kokkos/core/src/Kokkos_Vectorization.hpp @@ -47,6 +47,8 @@ #ifndef KOKKOS_VECTORIZATION_HPP #define KOKKOS_VECTORIZATION_HPP +#include <Kokkos_Macros.hpp> + #if defined(KOKKOS_ENABLE_CUDA) #include <Cuda/Kokkos_Cuda_Vectorization.hpp> #elif defined(KOKKOS_ENABLE_HIP) diff --git a/packages/kokkos/core/src/Kokkos_View.hpp b/packages/kokkos/core/src/Kokkos_View.hpp index 3d68d780a..8fffe20f5 100644 --- a/packages/kokkos/core/src/Kokkos_View.hpp +++ b/packages/kokkos/core/src/Kokkos_View.hpp @@ -55,9 +55,7 @@ #include <Kokkos_MemoryTraits.hpp> #include <Kokkos_ExecPolicy.hpp> -#if defined(KOKKOS_ENABLE_PROFILING) -#include <impl/Kokkos_Profiling_Interface.hpp> -#endif +#include <impl/Kokkos_Tools.hpp> //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- @@ -76,8 +74,8 @@ struct ViewDataAnalysis; template <class, class...> class ViewMapping { public: - enum { is_assignable_data_type = false }; - enum { is_assignable = false }; + enum : bool { is_assignable_data_type = false }; + enum : bool { is_assignable = false }; }; template <typename IntType> @@ -93,7 +91,6 @@ KOKKOS_INLINE_FUNCTION std::size_t count_valid_integers( (i6 != KOKKOS_INVALID_INDEX) + (i7 != KOKKOS_INVALID_INDEX); } -#ifndef KOKKOS_ENABLE_DEPRECATED_CODE KOKKOS_INLINE_FUNCTION void runtime_check_rank_device(const size_t dyn_rank, const bool is_void_spec, const size_t i0, const size_t i1, @@ -111,16 +108,8 @@ void runtime_check_rank_device(const size_t dyn_rank, const bool is_void_spec, } } } -#else -KOKKOS_INLINE_FUNCTION -void runtime_check_rank_device(const size_t, const bool, const size_t, - const size_t, const size_t, const size_t, - const size_t, const size_t, const size_t, - const size_t) {} -#endif #ifdef KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST -#ifndef KOKKOS_ENABLE_DEPRECATED_CODE KOKKOS_INLINE_FUNCTION void runtime_check_rank_host(const size_t dyn_rank, const bool is_void_spec, const size_t i0, const size_t i1, const size_t i2, @@ -141,13 +130,6 @@ void runtime_check_rank_host(const size_t dyn_rank, const bool is_void_spec, } } } -#else -KOKKOS_INLINE_FUNCTION -void runtime_check_rank_host(const size_t, const bool, const size_t, - const size_t, const size_t, const size_t, - const size_t, const size_t, const size_t, - const size_t, const std::string&) {} -#endif #endif } /* namespace Impl */ @@ -188,23 +170,23 @@ struct ViewTraits; template <> struct ViewTraits<void> { - typedef void execution_space; - typedef void memory_space; - typedef void HostMirrorSpace; - typedef void array_layout; - typedef void memory_traits; - typedef void specialize; + using execution_space = void; + using memory_space = void; + using HostMirrorSpace = void; + using array_layout = void; + using memory_traits = void; + using specialize = void; }; template <class... Prop> struct ViewTraits<void, void, Prop...> { // Ignore an extraneous 'void' - typedef typename ViewTraits<void, Prop...>::execution_space execution_space; - typedef typename ViewTraits<void, Prop...>::memory_space memory_space; - typedef typename ViewTraits<void, Prop...>::HostMirrorSpace HostMirrorSpace; - typedef typename ViewTraits<void, Prop...>::array_layout array_layout; - typedef typename ViewTraits<void, Prop...>::memory_traits memory_traits; - typedef typename ViewTraits<void, Prop...>::specialize specialize; + using execution_space = typename ViewTraits<void, Prop...>::execution_space; + using memory_space = typename ViewTraits<void, Prop...>::memory_space; + using HostMirrorSpace = typename ViewTraits<void, Prop...>::HostMirrorSpace; + using array_layout = typename ViewTraits<void, Prop...>::array_layout; + using memory_traits = typename ViewTraits<void, Prop...>::memory_traits; + using specialize = typename ViewTraits<void, Prop...>::specialize; }; template <class ArrayLayout, class... Prop> @@ -213,12 +195,12 @@ struct ViewTraits<typename std::enable_if< ArrayLayout, Prop...> { // Specify layout, keep subsequent space and memory traits arguments - typedef typename ViewTraits<void, Prop...>::execution_space execution_space; - typedef typename ViewTraits<void, Prop...>::memory_space memory_space; - typedef typename ViewTraits<void, Prop...>::HostMirrorSpace HostMirrorSpace; - typedef ArrayLayout array_layout; - typedef typename ViewTraits<void, Prop...>::memory_traits memory_traits; - typedef typename ViewTraits<void, Prop...>::specialize specialize; + using execution_space = typename ViewTraits<void, Prop...>::execution_space; + using memory_space = typename ViewTraits<void, Prop...>::memory_space; + using HostMirrorSpace = typename ViewTraits<void, Prop...>::HostMirrorSpace; + using array_layout = ArrayLayout; + using memory_traits = typename ViewTraits<void, Prop...>::memory_traits; + using specialize = typename ViewTraits<void, Prop...>::specialize; }; template <class Space, class... Prop> @@ -238,13 +220,13 @@ struct ViewTraits< void>::value, "Only one View Execution or Memory Space template argument"); - typedef typename Space::execution_space execution_space; - typedef typename Space::memory_space memory_space; - typedef typename Kokkos::Impl::HostMirror<Space>::Space::memory_space - HostMirrorSpace; - typedef typename execution_space::array_layout array_layout; - typedef typename ViewTraits<void, Prop...>::memory_traits memory_traits; - typedef typename ViewTraits<void, Prop...>::specialize specialize; + using execution_space = typename Space::execution_space; + using memory_space = typename Space::memory_space; + using HostMirrorSpace = + typename Kokkos::Impl::HostMirror<Space>::Space::memory_space; + using array_layout = typename execution_space::array_layout; + using memory_traits = typename ViewTraits<void, Prop...>::memory_traits; + using specialize = typename ViewTraits<void, Prop...>::specialize; }; template <class MemoryTraits, class... Prop> @@ -264,84 +246,79 @@ struct ViewTraits<typename std::enable_if<Kokkos::Impl::is_memory_traits< void>::value, "MemoryTrait is the final optional template argument for a View"); - typedef void execution_space; - typedef void memory_space; - typedef void HostMirrorSpace; - typedef void array_layout; - typedef MemoryTraits memory_traits; - typedef void specialize; + using execution_space = void; + using memory_space = void; + using HostMirrorSpace = void; + using array_layout = void; + using memory_traits = MemoryTraits; + using specialize = void; }; template <class DataType, class... Properties> struct ViewTraits { private: // Unpack the properties arguments - typedef ViewTraits<void, Properties...> prop; + using prop = ViewTraits<void, Properties...>; - typedef typename std::conditional< + using ExecutionSpace = typename std::conditional< !std::is_same<typename prop::execution_space, void>::value, - typename prop::execution_space, Kokkos::DefaultExecutionSpace>::type - ExecutionSpace; + typename prop::execution_space, Kokkos::DefaultExecutionSpace>::type; - typedef typename std::conditional< + using MemorySpace = typename std::conditional< !std::is_same<typename prop::memory_space, void>::value, - typename prop::memory_space, typename ExecutionSpace::memory_space>::type - MemorySpace; + typename prop::memory_space, typename ExecutionSpace::memory_space>::type; - typedef typename std::conditional< + using ArrayLayout = typename std::conditional< !std::is_same<typename prop::array_layout, void>::value, - typename prop::array_layout, typename ExecutionSpace::array_layout>::type - ArrayLayout; + typename prop::array_layout, typename ExecutionSpace::array_layout>::type; - typedef typename std::conditional< + using HostMirrorSpace = typename std::conditional< !std::is_same<typename prop::HostMirrorSpace, void>::value, typename prop::HostMirrorSpace, - typename Kokkos::Impl::HostMirror<ExecutionSpace>::Space>::type - HostMirrorSpace; + typename Kokkos::Impl::HostMirror<ExecutionSpace>::Space>::type; - typedef typename std::conditional< + using MemoryTraits = typename std::conditional< !std::is_same<typename prop::memory_traits, void>::value, - typename prop::memory_traits, typename Kokkos::MemoryManaged>::type - MemoryTraits; + typename prop::memory_traits, typename Kokkos::MemoryManaged>::type; // Analyze data type's properties, // May be specialized based upon the layout and value type - typedef Kokkos::Impl::ViewDataAnalysis<DataType, ArrayLayout> data_analysis; + using data_analysis = Kokkos::Impl::ViewDataAnalysis<DataType, ArrayLayout>; public: //------------------------------------ // Data type traits: - typedef typename data_analysis::type data_type; - typedef typename data_analysis::const_type const_data_type; - typedef typename data_analysis::non_const_type non_const_data_type; + using data_type = typename data_analysis::type; + using const_data_type = typename data_analysis::const_type; + using non_const_data_type = typename data_analysis::non_const_type; //------------------------------------ // Compatible array of trivial type traits: - typedef typename data_analysis::scalar_array_type scalar_array_type; - typedef - typename data_analysis::const_scalar_array_type const_scalar_array_type; - typedef typename data_analysis::non_const_scalar_array_type - non_const_scalar_array_type; + using scalar_array_type = typename data_analysis::scalar_array_type; + using const_scalar_array_type = + typename data_analysis::const_scalar_array_type; + using non_const_scalar_array_type = + typename data_analysis::non_const_scalar_array_type; //------------------------------------ // Value type traits: - typedef typename data_analysis::value_type value_type; - typedef typename data_analysis::const_value_type const_value_type; - typedef typename data_analysis::non_const_value_type non_const_value_type; + using value_type = typename data_analysis::value_type; + using const_value_type = typename data_analysis::const_value_type; + using non_const_value_type = typename data_analysis::non_const_value_type; //------------------------------------ // Mapping traits: - typedef ArrayLayout array_layout; - typedef typename data_analysis::dimension dimension; + using array_layout = ArrayLayout; + using dimension = typename data_analysis::dimension; - typedef typename std::conditional< + using specialize = typename std::conditional< std::is_same<typename data_analysis::specialize, void>::value, - typename prop::specialize, typename data_analysis::specialize>::type - specialize; /* mapping specialization tag */ + typename prop::specialize, typename data_analysis::specialize>:: + type; /* mapping specialization tag */ enum { rank = dimension::rank }; enum { rank_dynamic = dimension::rank_dynamic }; @@ -349,13 +326,13 @@ struct ViewTraits { //------------------------------------ // Execution space, memory space, memory access traits, and host mirror space. - typedef ExecutionSpace execution_space; - typedef MemorySpace memory_space; - typedef Kokkos::Device<ExecutionSpace, MemorySpace> device_type; - typedef MemoryTraits memory_traits; - typedef HostMirrorSpace host_mirror_space; + using execution_space = ExecutionSpace; + using memory_space = MemorySpace; + using device_type = Kokkos::Device<ExecutionSpace, MemorySpace>; + using memory_traits = MemoryTraits; + using host_mirror_space = HostMirrorSpace; - typedef typename MemorySpace::size_type size_type; + using size_type = typename MemorySpace::size_type; enum { is_hostspace = std::is_same<MemorySpace, HostSpace>::value }; enum { is_managed = MemoryTraits::is_unmanaged == 0 }; @@ -447,8 +424,10 @@ struct ViewTraits { * } * \endcode */ -template <class DataType, class... Properties> -class View; + +} // namespace Kokkos + +namespace Kokkos { template <class T1, class T2> struct is_always_assignable_impl; @@ -552,8 +531,8 @@ constexpr Kokkos::Impl::AllowPadding_t AllowPadding = template <class... Args> inline Impl::ViewCtorProp<typename Impl::ViewCtorProp<void, Args>::type...> view_alloc(Args const&... args) { - typedef Impl::ViewCtorProp<typename Impl::ViewCtorProp<void, Args>::type...> - return_type; + using return_type = + Impl::ViewCtorProp<typename Impl::ViewCtorProp<void, Args>::type...>; static_assert(!return_type::has_pointer, "Cannot give pointer-to-memory for view allocation"); @@ -565,8 +544,8 @@ template <class... Args> KOKKOS_INLINE_FUNCTION Impl::ViewCtorProp<typename Impl::ViewCtorProp<void, Args>::type...> view_wrap(Args const&... args) { - typedef Impl::ViewCtorProp<typename Impl::ViewCtorProp<void, Args>::type...> - return_type; + using return_type = + Impl::ViewCtorProp<typename Impl::ViewCtorProp<void, Args>::type...>; static_assert(!return_type::has_memory_space && !return_type::has_execution_space && @@ -603,65 +582,64 @@ class View : public ViewTraits<DataType, Properties...> { template <class, class...> friend class Kokkos::Impl::ViewMapping; + using view_tracker_type = Kokkos::Impl::ViewTracker<View>; + public: - typedef ViewTraits<DataType, Properties...> traits; + using traits = ViewTraits<DataType, Properties...>; private: - typedef Kokkos::Impl::ViewMapping<traits, typename traits::specialize> - map_type; - typedef Kokkos::Impl::SharedAllocationTracker track_type; + using map_type = + Kokkos::Impl::ViewMapping<traits, typename traits::specialize>; + template <typename V> + friend struct Kokkos::Impl::ViewTracker; - track_type m_track; + view_tracker_type m_track; map_type m_map; public: //---------------------------------------- /** \brief Compatible view of array of scalar types */ - typedef View<typename traits::scalar_array_type, - typename traits::array_layout, typename traits::device_type, - typename traits::memory_traits> - array_type; + using array_type = + View<typename traits::scalar_array_type, typename traits::array_layout, + typename traits::device_type, typename traits::memory_traits>; /** \brief Compatible view of const data type */ - typedef View<typename traits::const_data_type, typename traits::array_layout, - typename traits::device_type, typename traits::memory_traits> - const_type; + using const_type = + View<typename traits::const_data_type, typename traits::array_layout, + typename traits::device_type, typename traits::memory_traits>; /** \brief Compatible view of non-const data type */ - typedef View<typename traits::non_const_data_type, - typename traits::array_layout, typename traits::device_type, - typename traits::memory_traits> - non_const_type; + using non_const_type = + View<typename traits::non_const_data_type, typename traits::array_layout, + typename traits::device_type, typename traits::memory_traits>; /** \brief Compatible HostMirror view */ - typedef View<typename traits::non_const_data_type, - typename traits::array_layout, - Device<DefaultHostExecutionSpace, - typename traits::host_mirror_space::memory_space>> - HostMirror; + using HostMirror = + View<typename traits::non_const_data_type, typename traits::array_layout, + Device<DefaultHostExecutionSpace, + typename traits::host_mirror_space::memory_space>>; /** \brief Compatible HostMirror view */ - typedef View<typename traits::non_const_data_type, - typename traits::array_layout, - typename traits::host_mirror_space> - host_mirror_type; + using host_mirror_type = + View<typename traits::non_const_data_type, typename traits::array_layout, + typename traits::host_mirror_space>; /** \brief Unified types */ - typedef typename Impl::ViewUniformType<View, 0>::type uniform_type; - typedef - typename Impl::ViewUniformType<View, 0>::const_type uniform_const_type; - typedef typename Impl::ViewUniformType<View, 0>::runtime_type - uniform_runtime_type; - typedef typename Impl::ViewUniformType<View, 0>::runtime_const_type - uniform_runtime_const_type; - typedef typename Impl::ViewUniformType<View, 0>::nomemspace_type - uniform_nomemspace_type; - typedef typename Impl::ViewUniformType<View, 0>::const_nomemspace_type - uniform_const_nomemspace_type; - typedef typename Impl::ViewUniformType<View, 0>::runtime_nomemspace_type - uniform_runtime_nomemspace_type; - typedef typename Impl::ViewUniformType<View, 0>::runtime_const_nomemspace_type - uniform_runtime_const_nomemspace_type; + using uniform_type = typename Impl::ViewUniformType<View, 0>::type; + using uniform_const_type = + typename Impl::ViewUniformType<View, 0>::const_type; + using uniform_runtime_type = + typename Impl::ViewUniformType<View, 0>::runtime_type; + using uniform_runtime_const_type = + typename Impl::ViewUniformType<View, 0>::runtime_const_type; + using uniform_nomemspace_type = + typename Impl::ViewUniformType<View, 0>::nomemspace_type; + using uniform_const_nomemspace_type = + typename Impl::ViewUniformType<View, 0>::const_nomemspace_type; + using uniform_runtime_nomemspace_type = + typename Impl::ViewUniformType<View, 0>::runtime_nomemspace_type; + using uniform_runtime_const_nomemspace_type = + typename Impl::ViewUniformType<View, 0>::runtime_const_nomemspace_type; //---------------------------------------- // Domain rank and extents @@ -703,44 +681,6 @@ class View : public ViewTraits<DataType, Properties...> { * ISO/C++ vocabulary 'extent'. */ -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - - template <typename iType> - KOKKOS_INLINE_FUNCTION constexpr - typename std::enable_if<std::is_integral<iType>::value, size_t>::type - dimension(const iType& r) const { - return extent(r); - } - - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_0() const { - return m_map.dimension_0(); - } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_1() const { - return m_map.dimension_1(); - } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_2() const { - return m_map.dimension_2(); - } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_3() const { - return m_map.dimension_3(); - } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_4() const { - return m_map.dimension_4(); - } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_5() const { - return m_map.dimension_5(); - } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_6() const { - return m_map.dimension_6(); - } - KOKKOS_INLINE_FUNCTION constexpr size_t dimension_7() const { - return m_map.dimension_7(); - } - -#endif - - //---------------------------------------- - KOKKOS_INLINE_FUNCTION constexpr size_t size() const { return m_map.dimension_0() * m_map.dimension_1() * m_map.dimension_2() * m_map.dimension_3() * m_map.dimension_4() * m_map.dimension_5() * @@ -802,8 +742,8 @@ class View : public ViewTraits<DataType, Properties...> { //---------------------------------------- // Range span is the span which contains all members. - typedef typename map_type::reference_type reference_type; - typedef typename map_type::pointer_type pointer_type; + using reference_type = typename map_type::reference_type; + using pointer_type = typename map_type::pointer_type; enum { reference_type_is_lvalue_reference = @@ -811,40 +751,19 @@ class View : public ViewTraits<DataType, Properties...> { }; KOKKOS_INLINE_FUNCTION constexpr size_t span() const { return m_map.span(); } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - // Deprecated, use 'span()' instead - KOKKOS_INLINE_FUNCTION constexpr size_t capacity() const { - return m_map.span(); - } -#endif KOKKOS_INLINE_FUNCTION bool span_is_contiguous() const { return m_map.span_is_contiguous(); } - KOKKOS_INLINE_FUNCTION constexpr pointer_type data() const { - return m_map.data(); + KOKKOS_INLINE_FUNCTION constexpr bool is_allocated() const { + return m_map.data() != nullptr; } - -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - // Deprecated, use 'span_is_contigous()' instead - KOKKOS_INLINE_FUNCTION constexpr bool is_contiguous() const { - return m_map.span_is_contiguous(); - } - // Deprecated, use 'data()' instead - KOKKOS_INLINE_FUNCTION constexpr pointer_type ptr_on_device() const { + KOKKOS_INLINE_FUNCTION constexpr pointer_type data() const { return m_map.data(); } -#endif //---------------------------------------- // Allow specializations to query their specialized map -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - KOKKOS_INLINE_FUNCTION - const Kokkos::Impl::ViewMapping<traits, typename traits::specialize>& - implementation_map() const { - return m_map; - } -#endif KOKKOS_INLINE_FUNCTION const Kokkos::Impl::ViewMapping<traits, typename traits::specialize>& impl_map() const { @@ -852,7 +771,7 @@ class View : public ViewTraits<DataType, Properties...> { } KOKKOS_INLINE_FUNCTION const Kokkos::Impl::SharedAllocationTracker& impl_track() const { - return m_track; + return m_track.m_tracker; } //---------------------------------------- @@ -904,315 +823,6 @@ class View : public ViewTraits<DataType, Properties...> { #endif public: -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - template <class... Args> - KOKKOS_FORCEINLINE_FUNCTION - typename std::enable_if<(Kokkos::Impl::are_integral<Args...>::value && - (0 == Rank)), - reference_type>::type - operator()(Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, args...)) - return m_map.reference(); - } - - template <typename I0, class... Args> - KOKKOS_FORCEINLINE_FUNCTION - typename std::enable_if<(Kokkos::Impl::are_integral<I0, Args...>::value && - (1 == Rank) && !is_default_map), - reference_type>::type - operator()(const I0& i0, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0, args...)) - return m_map.reference(i0); - } - - template <typename I0, class... Args> - KOKKOS_FORCEINLINE_FUNCTION - typename std::enable_if<(Kokkos::Impl::are_integral<I0, Args...>::value && - (1 == Rank) && is_default_map && - !is_layout_stride), - reference_type>::type - operator()(const I0& i0, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0, args...)) - return m_map.m_impl_handle[i0]; - } - - template <typename I0, class... Args> - KOKKOS_FORCEINLINE_FUNCTION - typename std::enable_if<(Kokkos::Impl::are_integral<I0, Args...>::value && - (1 == Rank) && is_default_map && - is_layout_stride), - reference_type>::type - operator()(const I0& i0, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0, args...)) - return m_map.m_impl_handle[m_map.m_impl_offset.m_stride.S0 * i0]; - } - - //------------------------------ - // Rank 1 operator[] - - template <typename I0> - KOKKOS_FORCEINLINE_FUNCTION - typename std::enable_if<(Kokkos::Impl::are_integral<I0>::value && - (1 == Rank) && !is_default_map), - reference_type>::type - operator[](const I0& i0) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0)) - return m_map.reference(i0); - } - - template <typename I0> - KOKKOS_FORCEINLINE_FUNCTION - typename std::enable_if<(Kokkos::Impl::are_integral<I0>::value && - (1 == Rank) && is_default_map && - !is_layout_stride), - reference_type>::type - operator[](const I0& i0) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0)) - return m_map.m_impl_handle[i0]; - } - - template <typename I0> - KOKKOS_FORCEINLINE_FUNCTION - typename std::enable_if<(Kokkos::Impl::are_integral<I0>::value && - (1 == Rank) && is_default_map && - is_layout_stride), - reference_type>::type - operator[](const I0& i0) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0)) - return m_map.m_impl_handle[m_map.m_impl_offset.m_stride.S0 * i0]; - } - - template <typename I0, typename I1, class... Args> - KOKKOS_FORCEINLINE_FUNCTION typename std::enable_if< - (Kokkos::Impl::are_integral<I0, I1, Args...>::value && (2 == Rank) && - !is_default_map), - reference_type>::type - operator()(const I0& i0, const I1& i1, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0, i1, args...)) - return m_map.reference(i0, i1); - } - - template <typename I0, typename I1, class... Args> - KOKKOS_FORCEINLINE_FUNCTION typename std::enable_if< - (Kokkos::Impl::are_integral<I0, I1, Args...>::value && (2 == Rank) && - is_default_map && is_layout_left && (traits::rank_dynamic == 0)), - reference_type>::type - operator()(const I0& i0, const I1& i1, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0, i1, args...)) - return m_map.m_impl_handle[i0 + m_map.m_impl_offset.m_dim.N0 * i1]; - } - - template <typename I0, typename I1, class... Args> - KOKKOS_FORCEINLINE_FUNCTION typename std::enable_if< - (Kokkos::Impl::are_integral<I0, I1, Args...>::value && (2 == Rank) && - is_default_map && is_layout_left && (traits::rank_dynamic != 0)), - reference_type>::type - operator()(const I0& i0, const I1& i1, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0, i1, args...)) - return m_map.m_impl_handle[i0 + m_map.m_impl_offset.m_stride * i1]; - } - - template <typename I0, typename I1, class... Args> - KOKKOS_FORCEINLINE_FUNCTION typename std::enable_if< - (Kokkos::Impl::are_integral<I0, I1, Args...>::value && (2 == Rank) && - is_default_map && is_layout_right && (traits::rank_dynamic == 0)), - reference_type>::type - operator()(const I0& i0, const I1& i1, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0, i1, args...)) - return m_map.m_impl_handle[i1 + m_map.m_impl_offset.m_dim.N1 * i0]; - } - - template <typename I0, typename I1, class... Args> - KOKKOS_FORCEINLINE_FUNCTION typename std::enable_if< - (Kokkos::Impl::are_integral<I0, I1, Args...>::value && (2 == Rank) && - is_default_map && is_layout_right && (traits::rank_dynamic != 0)), - reference_type>::type - operator()(const I0& i0, const I1& i1, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0, i1, args...)) - return m_map.m_impl_handle[i1 + m_map.m_impl_offset.m_stride * i0]; - } - - template <typename I0, typename I1, class... Args> - KOKKOS_FORCEINLINE_FUNCTION typename std::enable_if< - (Kokkos::Impl::are_integral<I0, I1, Args...>::value && (2 == Rank) && - is_default_map && is_layout_stride), - reference_type>::type - operator()(const I0& i0, const I1& i1, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0, i1, args...)) - return m_map.m_impl_handle[i0 * m_map.m_impl_offset.m_stride.S0 + - i1 * m_map.m_impl_offset.m_stride.S1]; - } - - //------------------------------ - // Rank 3 - - template <typename I0, typename I1, typename I2, class... Args> - KOKKOS_FORCEINLINE_FUNCTION typename std::enable_if< - (Kokkos::Impl::are_integral<I0, I1, I2, Args...>::value && (3 == Rank) && - is_default_map), - reference_type>::type - operator()(const I0& i0, const I1& i1, const I2& i2, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0, i1, i2, args...)) - return m_map.m_impl_handle[m_map.m_impl_offset(i0, i1, i2)]; - } - - template <typename I0, typename I1, typename I2, class... Args> - KOKKOS_FORCEINLINE_FUNCTION typename std::enable_if< - (Kokkos::Impl::are_integral<I0, I1, I2, Args...>::value && (3 == Rank) && - !is_default_map), - reference_type>::type - operator()(const I0& i0, const I1& i1, const I2& i2, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0, i1, i2, args...)) - return m_map.reference(i0, i1, i2); - } - - //------------------------------ - // Rank 4 - - template <typename I0, typename I1, typename I2, typename I3, class... Args> - KOKKOS_FORCEINLINE_FUNCTION typename std::enable_if< - (Kokkos::Impl::are_integral<I0, I1, I2, I3, Args...>::value && - (4 == Rank) && is_default_map), - reference_type>::type - operator()(const I0& i0, const I1& i1, const I2& i2, const I3& i3, - Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0, i1, i2, i3, args...)) - return m_map.m_impl_handle[m_map.m_impl_offset(i0, i1, i2, i3)]; - } - - template <typename I0, typename I1, typename I2, typename I3, class... Args> - KOKKOS_FORCEINLINE_FUNCTION typename std::enable_if< - (Kokkos::Impl::are_integral<I0, I1, I2, I3, Args...>::value && - (4 == Rank) && !is_default_map), - reference_type>::type - operator()(const I0& i0, const I1& i1, const I2& i2, const I3& i3, - Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0, i1, i2, i3, args...)) - return m_map.reference(i0, i1, i2, i3); - } - - //------------------------------ - // Rank 5 - - template <typename I0, typename I1, typename I2, typename I3, typename I4, - class... Args> - KOKKOS_FORCEINLINE_FUNCTION typename std::enable_if< - (Kokkos::Impl::are_integral<I0, I1, I2, I3, I4, Args...>::value && - (5 == Rank) && is_default_map), - reference_type>::type - operator()(const I0& i0, const I1& i1, const I2& i2, const I3& i3, - const I4& i4, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY( - (m_track, m_map, i0, i1, i2, i3, i4, args...)) - return m_map.m_impl_handle[m_map.m_impl_offset(i0, i1, i2, i3, i4)]; - } - - template <typename I0, typename I1, typename I2, typename I3, typename I4, - class... Args> - KOKKOS_FORCEINLINE_FUNCTION typename std::enable_if< - (Kokkos::Impl::are_integral<I0, I1, I2, I3, I4, Args...>::value && - (5 == Rank) && !is_default_map), - reference_type>::type - operator()(const I0& i0, const I1& i1, const I2& i2, const I3& i3, - const I4& i4, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY( - (m_track, m_map, i0, i1, i2, i3, i4, args...)) - return m_map.reference(i0, i1, i2, i3, i4); - } - - //------------------------------ - // Rank 6 - - template <typename I0, typename I1, typename I2, typename I3, typename I4, - typename I5, class... Args> - KOKKOS_FORCEINLINE_FUNCTION typename std::enable_if< - (Kokkos::Impl::are_integral<I0, I1, I2, I3, I4, I5, Args...>::value && - (6 == Rank) && is_default_map), - reference_type>::type - operator()(const I0& i0, const I1& i1, const I2& i2, const I3& i3, - const I4& i4, const I5& i5, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY( - (m_track, m_map, i0, i1, i2, i3, i4, i5, args...)) - return m_map.m_impl_handle[m_map.m_impl_offset(i0, i1, i2, i3, i4, i5)]; - } - - template <typename I0, typename I1, typename I2, typename I3, typename I4, - typename I5, class... Args> - KOKKOS_FORCEINLINE_FUNCTION typename std::enable_if< - (Kokkos::Impl::are_integral<I0, I1, I2, I3, I4, I5, Args...>::value && - (6 == Rank) && !is_default_map), - reference_type>::type - operator()(const I0& i0, const I1& i1, const I2& i2, const I3& i3, - const I4& i4, const I5& i5, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY( - (m_track, m_map, i0, i1, i2, i3, i4, i5, args...)) - return m_map.reference(i0, i1, i2, i3, i4, i5); - } - - //------------------------------ - // Rank 7 - - template <typename I0, typename I1, typename I2, typename I3, typename I4, - typename I5, typename I6, class... Args> - KOKKOS_FORCEINLINE_FUNCTION typename std::enable_if< - (Kokkos::Impl::are_integral<I0, I1, I2, I3, I4, I5, I6, Args...>::value && - (7 == Rank) && is_default_map), - reference_type>::type - operator()(const I0& i0, const I1& i1, const I2& i2, const I3& i3, - const I4& i4, const I5& i5, const I6& i6, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY( - (m_track, m_map, i0, i1, i2, i3, i4, i5, i6, args...)) - return m_map.m_impl_handle[m_map.m_impl_offset(i0, i1, i2, i3, i4, i5, i6)]; - } - - template <typename I0, typename I1, typename I2, typename I3, typename I4, - typename I5, typename I6, class... Args> - KOKKOS_FORCEINLINE_FUNCTION typename std::enable_if< - (Kokkos::Impl::are_integral<I0, I1, I2, I3, I4, I5, I6, Args...>::value && - (7 == Rank) && !is_default_map), - reference_type>::type - operator()(const I0& i0, const I1& i1, const I2& i2, const I3& i3, - const I4& i4, const I5& i5, const I6& i6, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY( - (m_track, m_map, i0, i1, i2, i3, i4, i5, i6, args...)) - return m_map.reference(i0, i1, i2, i3, i4, i5, i6); - } - - //------------------------------ - // Rank 8 - - template <typename I0, typename I1, typename I2, typename I3, typename I4, - typename I5, typename I6, typename I7, class... Args> - KOKKOS_FORCEINLINE_FUNCTION typename std::enable_if< - (Kokkos::Impl::are_integral<I0, I1, I2, I3, I4, I5, I6, I7, - Args...>::value && - (8 == Rank) && is_default_map), - reference_type>::type - operator()(const I0& i0, const I1& i1, const I2& i2, const I3& i3, - const I4& i4, const I5& i5, const I6& i6, const I7& i7, - Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY( - (m_track, m_map, i0, i1, i2, i3, i4, i5, i6, i7, args...)) - return m_map - .m_impl_handle[m_map.m_impl_offset(i0, i1, i2, i3, i4, i5, i6, i7)]; - } - - template <typename I0, typename I1, typename I2, typename I3, typename I4, - typename I5, typename I6, typename I7, class... Args> - KOKKOS_FORCEINLINE_FUNCTION typename std::enable_if< - (Kokkos::Impl::are_integral<I0, I1, I2, I3, I4, I5, I6, I7, - Args...>::value && - (8 == Rank) && !is_default_map), - reference_type>::type - operator()(const I0& i0, const I1& i1, const I2& i2, const I3& i3, - const I4& i4, const I5& i5, const I6& i6, const I7& i7, - Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY( - (m_track, m_map, i0, i1, i2, i3, i4, i5, i6, i7, args...)) - return m_map.reference(i0, i1, i2, i3, i4, i5, i6, i7); - } - -#else //------------------------------ // Rank 0 operator() @@ -1513,7 +1123,6 @@ class View : public ViewTraits<DataType, Properties...> { return m_map.reference(i0, i1, i2, i3, i4, i5, i6, i7); } -#endif template <class... Args> KOKKOS_FORCEINLINE_FUNCTION typename std::enable_if<(Kokkos::Impl::are_integral<Args...>::value && @@ -1810,30 +1419,20 @@ class View : public ViewTraits<DataType, Properties...> { KOKKOS_DEFAULTED_FUNCTION ~View() = default; - KOKKOS_INLINE_FUNCTION - View() : m_track(), m_map() {} + KOKKOS_DEFAULTED_FUNCTION + View() = default; - KOKKOS_INLINE_FUNCTION - View(const View& rhs) - : m_track(rhs.m_track, traits::is_managed), m_map(rhs.m_map) {} + KOKKOS_DEFAULTED_FUNCTION + View(const View&) = default; - KOKKOS_INLINE_FUNCTION - View(View&& rhs) - : m_track(std::move(rhs.m_track)), m_map(std::move(rhs.m_map)) {} + KOKKOS_DEFAULTED_FUNCTION + View(View&&) = default; - KOKKOS_INLINE_FUNCTION - View& operator=(const View& rhs) { - m_track = rhs.m_track; - m_map = rhs.m_map; - return *this; - } + KOKKOS_DEFAULTED_FUNCTION + View& operator=(const View&) = default; - KOKKOS_INLINE_FUNCTION - View& operator=(View&& rhs) { - m_track = std::move(rhs.m_track); - m_map = std::move(rhs.m_map); - return *this; - } + KOKKOS_DEFAULTED_FUNCTION + View& operator=(View&&) = default; //---------------------------------------- // Compatible view copy constructor and assignment @@ -1846,14 +1445,13 @@ class View : public ViewTraits<DataType, Properties...> { traits, typename View<RT, RP...>::traits, typename traits::specialize>::is_assignable_data_type>::type* = nullptr) - : m_track(rhs.m_track, traits::is_managed), m_map() { - typedef typename View<RT, RP...>::traits SrcTraits; - typedef Kokkos::Impl::ViewMapping<traits, SrcTraits, - typename traits::specialize> - Mapping; + : m_track(rhs), m_map() { + using SrcTraits = typename View<RT, RP...>::traits; + using Mapping = Kokkos::Impl::ViewMapping<traits, SrcTraits, + typename traits::specialize>; static_assert(Mapping::is_assignable, "Incompatible View copy construction"); - Mapping::assign(m_map, rhs.m_map, rhs.m_track); + Mapping::assign(m_map, rhs.m_map, rhs.m_track.m_tracker); } template <class RT, class... RP> @@ -1863,13 +1461,12 @@ class View : public ViewTraits<DataType, Properties...> { typename traits::specialize>::is_assignable_data_type, View>::type& operator=(const View<RT, RP...>& rhs) { - typedef typename View<RT, RP...>::traits SrcTraits; - typedef Kokkos::Impl::ViewMapping<traits, SrcTraits, - typename traits::specialize> - Mapping; + using SrcTraits = typename View<RT, RP...>::traits; + using Mapping = Kokkos::Impl::ViewMapping<traits, SrcTraits, + typename traits::specialize>; static_assert(Mapping::is_assignable, "Incompatible View copy assignment"); - Mapping::assign(m_map, rhs.m_map, rhs.m_track); - m_track.assign(rhs.m_track, traits::is_managed); + Mapping::assign(m_map, rhs.m_map, rhs.m_track.m_tracker); + m_track.assign(rhs); return *this; } @@ -1880,16 +1477,13 @@ class View : public ViewTraits<DataType, Properties...> { template <class RT, class... RP, class Arg0, class... Args> KOKKOS_INLINE_FUNCTION View(const View<RT, RP...>& src_view, const Arg0 arg0, Args... args) - : m_track(src_view.m_track, traits::is_managed), m_map() { - typedef View<RT, RP...> SrcType; + : m_track(src_view), m_map() { + using SrcType = View<RT, RP...>; - typedef Kokkos::Impl::ViewMapping<void /* deduce destination view type from - source view traits */ - , - typename SrcType::traits, Arg0, Args...> - Mapping; + using Mapping = Kokkos::Impl::ViewMapping<void, typename SrcType::traits, + Arg0, Args...>; - typedef typename Mapping::type DstType; + using DstType = typename Mapping::type; static_assert( Kokkos::Impl::ViewMapping<traits, typename DstType::traits, @@ -1903,10 +1497,11 @@ class View : public ViewTraits<DataType, Properties...> { // Allocation tracking properties KOKKOS_INLINE_FUNCTION - int use_count() const { return m_track.use_count(); } + int use_count() const { return m_track.m_tracker.use_count(); } inline const std::string label() const { - return m_track.template get_label<typename traits::memory_space>(); + return m_track.m_tracker + .template get_label<typename traits::memory_space>(); } //---------------------------------------- @@ -1920,35 +1515,29 @@ class View : public ViewTraits<DataType, Properties...> { arg_layout) : m_track(), m_map() { // Append layout and spaces if not input - typedef Impl::ViewCtorProp<P...> alloc_prop_input; + using alloc_prop_input = Impl::ViewCtorProp<P...>; // use 'std::integral_constant<unsigned,I>' for non-types // to avoid duplicate class error. - typedef Impl::ViewCtorProp< + using alloc_prop = Impl::ViewCtorProp< P..., typename std::conditional<alloc_prop_input::has_label, - std::integral_constant<unsigned, 0>, + std::integral_constant<unsigned int, 0>, typename std::string>::type, typename std::conditional< alloc_prop_input::has_memory_space, - std::integral_constant<unsigned, 1>, + std::integral_constant<unsigned int, 1>, typename traits::device_type::memory_space>::type, typename std::conditional< alloc_prop_input::has_execution_space, - std::integral_constant<unsigned, 2>, - typename traits::device_type::execution_space>::type> - alloc_prop; + std::integral_constant<unsigned int, 2>, + typename traits::device_type::execution_space>::type>; static_assert(traits::is_managed, "View allocation constructor requires managed memory"); if (alloc_prop::initialize && -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - !alloc_prop::execution_space::is_initialized() -#else - !alloc_prop::execution_space::impl_is_initialized() -#endif - ) { + !alloc_prop::execution_space::impl_is_initialized()) { // If initializing view data then // the execution space must be initialized. Kokkos::Impl::throw_runtime_exception( @@ -1986,12 +1575,12 @@ class View : public ViewTraits<DataType, Properties...> { //------------------------------------------------------------ // Setup and initialization complete, start tracking - m_track.assign_allocated_record_to_uninitialized(record); + m_track.m_tracker.assign_allocated_record_to_uninitialized(record); } KOKKOS_INLINE_FUNCTION void assign_data(pointer_type arg_data) { - m_track.clear(); + m_track.m_tracker.clear(); m_map.assign_data(arg_data); } @@ -2117,49 +1706,31 @@ class View : public ViewTraits<DataType, Properties...> { #endif } - // For backward compatibility - explicit inline View(const ViewAllocateWithoutInitializing& arg_prop, - const typename traits::array_layout& arg_layout) - : View(Impl::ViewCtorProp<std::string, - Kokkos::Impl::WithoutInitializing_t>( - arg_prop.label, Kokkos::WithoutInitializing), - arg_layout) {} - - explicit inline View(const ViewAllocateWithoutInitializing& arg_prop, - const size_t arg_N0 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, - const size_t arg_N1 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, - const size_t arg_N2 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, - const size_t arg_N3 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, - const size_t arg_N4 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, - const size_t arg_N5 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, - const size_t arg_N6 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, - const size_t arg_N7 = KOKKOS_IMPL_CTOR_DEFAULT_ARG) - : View(Impl::ViewCtorProp<std::string, - Kokkos::Impl::WithoutInitializing_t>( - arg_prop.label, Kokkos::WithoutInitializing), - typename traits::array_layout(arg_N0, arg_N1, arg_N2, arg_N3, - arg_N4, arg_N5, arg_N6, arg_N7)) { -#ifdef KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST - Impl::runtime_check_rank_host( - traits::rank_dynamic, - std::is_same<typename traits::specialize, void>::value, arg_N0, arg_N1, - arg_N2, arg_N3, arg_N4, arg_N5, arg_N6, arg_N7, label()); -#else - Impl::runtime_check_rank_device( - traits::rank_dynamic, - std::is_same<typename traits::specialize, void>::value, arg_N0, arg_N1, - arg_N2, arg_N3, arg_N4, arg_N5, arg_N6, arg_N7); - -#endif + // Construct view from ViewTracker and map + // This should be the preferred method because future extensions may need to + // use the ViewTracker class. + template <class Traits> + KOKKOS_INLINE_FUNCTION View( + const view_tracker_type& track, + const Kokkos::Impl::ViewMapping<Traits, typename Traits::specialize>& map) + : m_track(track), m_map() { + using Mapping = + Kokkos::Impl::ViewMapping<traits, Traits, typename traits::specialize>; + static_assert(Mapping::is_assignable, + "Incompatible View copy construction"); + Mapping::assign(m_map, map, track.m_tracker); } + + // Construct View from internal shared allocation tracker object and map + // This is here for backwards compatibility for classes that derive from + // Kokkos::View template <class Traits> KOKKOS_INLINE_FUNCTION View( - const track_type& track, + const typename view_tracker_type::track_type& track, const Kokkos::Impl::ViewMapping<Traits, typename Traits::specialize>& map) : m_track(track), m_map() { - typedef Kokkos::Impl::ViewMapping<traits, Traits, - typename traits::specialize> - Mapping; + using Mapping = + Kokkos::Impl::ViewMapping<traits, Traits, typename traits::specialize>; static_assert(Mapping::is_assignable, "Incompatible View copy construction"); Mapping::assign(m_map, map, track); @@ -2344,8 +1915,8 @@ template <class LT, class... LP, class RT, class... RP> KOKKOS_INLINE_FUNCTION bool operator==(const View<LT, LP...>& lhs, const View<RT, RP...>& rhs) { // Same data, layout, dimensions - typedef ViewTraits<LT, LP...> lhs_traits; - typedef ViewTraits<RT, RP...> rhs_traits; + using lhs_traits = ViewTraits<LT, LP...>; + using rhs_traits = ViewTraits<RT, RP...>; return std::is_same<typename lhs_traits::const_value_type, typename rhs_traits::const_value_type>::value && diff --git a/packages/kokkos/core/src/Kokkos_WorkGraphPolicy.hpp b/packages/kokkos/core/src/Kokkos_WorkGraphPolicy.hpp index 6ff2f0d4b..bdc8993c3 100644 --- a/packages/kokkos/core/src/Kokkos_WorkGraphPolicy.hpp +++ b/packages/kokkos/core/src/Kokkos_WorkGraphPolicy.hpp @@ -45,6 +45,9 @@ #ifndef KOKKOS_WORKGRAPHPOLICY_HPP #define KOKKOS_WORKGRAPHPOLICY_HPP +#include <impl/Kokkos_AnalyzePolicy.hpp> +#include <Kokkos_Crs.hpp> + namespace Kokkos { namespace Impl { @@ -245,6 +248,10 @@ class WorkGraphPolicy : public Kokkos::Impl::PolicyTraits<Properties...> { #include "Cuda/Kokkos_Cuda_WorkGraphPolicy.hpp" #endif +#ifdef KOKKOS_ENABLE_HIP +#include "HIP/Kokkos_HIP_WorkGraphPolicy.hpp" +#endif + #ifdef KOKKOS_ENABLE_THREADS #include "Threads/Kokkos_Threads_WorkGraphPolicy.hpp" #endif diff --git a/packages/kokkos/core/src/Kokkos_hwloc.hpp b/packages/kokkos/core/src/Kokkos_hwloc.hpp index f343ef80b..23fa0a0c6 100644 --- a/packages/kokkos/core/src/Kokkos_hwloc.hpp +++ b/packages/kokkos/core/src/Kokkos_hwloc.hpp @@ -45,6 +45,8 @@ #ifndef KOKKOS_HWLOC_HPP #define KOKKOS_HWLOC_HPP +#include <Kokkos_Macros.hpp> + #include <utility> namespace Kokkos { diff --git a/packages/kokkos/core/src/OpenMP/Kokkos_OpenMP_Exec.cpp b/packages/kokkos/core/src/OpenMP/Kokkos_OpenMP_Exec.cpp index 21151156e..e530612a5 100644 --- a/packages/kokkos/core/src/OpenMP/Kokkos_OpenMP_Exec.cpp +++ b/packages/kokkos/core/src/OpenMP/Kokkos_OpenMP_Exec.cpp @@ -56,7 +56,7 @@ #include <impl/Kokkos_Error.hpp> #include <impl/Kokkos_CPUDiscovery.hpp> -#include <impl/Kokkos_Profiling_Interface.hpp> +#include <impl/Kokkos_Tools.hpp> namespace Kokkos { namespace Impl { @@ -250,12 +250,7 @@ namespace Kokkos { //---------------------------------------------------------------------------- -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -int OpenMP::get_current_max_threads() noexcept -#else -int OpenMP::impl_get_current_max_threads() noexcept -#endif -{ +int OpenMP::impl_get_current_max_threads() noexcept { // Using omp_get_max_threads(); is problematic in conjunction with // Hwloc on Intel (essentially an initial call to the OpenMP runtime // without a parallel region before will set a process mask for a single core @@ -274,12 +269,7 @@ int OpenMP::impl_get_current_max_threads() noexcept return count; } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -void OpenMP::initialize(int thread_count) -#else -void OpenMP::impl_initialize(int thread_count) -#endif -{ +void OpenMP::impl_initialize(int thread_count) { if (omp_in_parallel()) { std::string msg("Kokkos::OpenMP::initialize ERROR : in parallel"); Kokkos::Impl::throw_runtime_exception(msg); @@ -306,11 +296,7 @@ void OpenMP::impl_initialize(int thread_count) // Before any other call to OMP query the maximum number of threads // and save the value for re-initialization unit testing. -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - Impl::g_openmp_hardware_max_threads = get_current_max_threads(); -#else Impl::g_openmp_hardware_max_threads = impl_get_current_max_threads(); -#endif int process_num_threads = Impl::g_openmp_hardware_max_threads; @@ -391,20 +377,11 @@ void OpenMP::impl_initialize(int thread_count) } // Init the array for used for arbitrarily sized atomics Impl::init_lock_array_host_space(); - -#if defined(KOKKOS_ENABLE_DEPRECATED_CODE) && defined(KOKKOS_ENABLE_PROFILING) - Kokkos::Profiling::initialize(); -#endif } //---------------------------------------------------------------------------- -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -void OpenMP::finalize() -#else -void OpenMP::impl_finalize() -#endif -{ +void OpenMP::impl_finalize() { if (omp_in_parallel()) { std::string msg("Kokkos::OpenMP::finalize ERROR "); if (!Impl::t_openmp_instance) msg.append(": not initialized"); @@ -440,9 +417,7 @@ void OpenMP::impl_finalize() Impl::g_openmp_hardware_max_threads = 1; } -#if defined(KOKKOS_ENABLE_PROFILING) Kokkos::Profiling::finalize(); -#endif } //---------------------------------------------------------------------------- @@ -472,18 +447,53 @@ OpenMP OpenMP::create_instance(...) { return OpenMP(); } int OpenMP::concurrency() { return Impl::g_openmp_hardware_max_threads; } -#ifndef KOKKOS_ENABLE_DEPRECATED_CODE void OpenMP::fence() const {} -#endif -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE +namespace Impl { -void OpenMP::initialize(int thread_count, int, int) { - initialize(thread_count); +int g_openmp_space_factory_initialized = + initialize_space_factory<OpenMPSpaceInitializer>("050_OpenMP"); + +void OpenMPSpaceInitializer::initialize(const InitArguments &args) { + // Prevent "unused variable" warning for 'args' input struct. If + // Serial::initialize() ever needs to take arguments from the input + // struct, you may remove this line of code. + const int num_threads = args.num_threads; + + if (std::is_same<Kokkos::OpenMP, Kokkos::DefaultExecutionSpace>::value || + std::is_same<Kokkos::OpenMP, Kokkos::HostSpace::execution_space>::value) { + Kokkos::OpenMP::impl_initialize(num_threads); + } else { + // std::cout << "Kokkos::initialize() fyi: OpenMP enabled but not + // initialized" << std::endl ; + } +} + +void OpenMPSpaceInitializer::finalize(const bool) { + if (Kokkos::OpenMP::impl_is_initialized()) Kokkos::OpenMP::impl_finalize(); } +void OpenMPSpaceInitializer::fence() { Kokkos::OpenMP::impl_static_fence(); } + +void OpenMPSpaceInitializer::print_configuration(std::ostream &msg, + const bool detail) { + msg << "Host Parallel Execution Space:" << std::endl; + msg << " KOKKOS_ENABLE_OPENMP: "; + msg << "yes" << std::endl; + + msg << "OpenMP Atomics:" << std::endl; + msg << " KOKKOS_ENABLE_OPENMP_ATOMICS: "; +#ifdef KOKKOS_ENABLE_OPENMP_ATOMICS + msg << "yes" << std::endl; +#else + msg << "no" << std::endl; #endif + msg << "\nOpenMP Runtime Configuration:" << std::endl; + OpenMP::print_configuration(msg, detail); +} + +} // namespace Impl } // namespace Kokkos #else diff --git a/packages/kokkos/core/src/OpenMP/Kokkos_OpenMP_Exec.hpp b/packages/kokkos/core/src/OpenMP/Kokkos_OpenMP_Exec.hpp index 6614050f0..eb15005cf 100644 --- a/packages/kokkos/core/src/OpenMP/Kokkos_OpenMP_Exec.hpp +++ b/packages/kokkos/core/src/OpenMP/Kokkos_OpenMP_Exec.hpp @@ -48,7 +48,8 @@ #include <Kokkos_Macros.hpp> #if defined(KOKKOS_ENABLE_OPENMP) -#if !defined(_OPENMP) && !defined(__CUDA_ARCH__) +#if !defined(_OPENMP) && !defined(__CUDA_ARCH__) && \ + !defined(__HIP_DEVICE_COMPILE__) #error \ "You enabled Kokkos OpenMP support without enabling OpenMP in the compiler!" #endif @@ -61,10 +62,7 @@ #include <Kokkos_Atomic.hpp> #include <Kokkos_UniqueToken.hpp> - -#include <iostream> -#include <sstream> -#include <fstream> +#include <impl/Kokkos_ConcurrentBitset.hpp> #include <omp.h> @@ -129,15 +127,7 @@ class OpenMPExec { namespace Kokkos { -inline -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - bool - OpenMP::is_initialized() noexcept -#else - bool - OpenMP::impl_is_initialized() noexcept -#endif -{ +inline bool OpenMP::impl_is_initialized() noexcept { return Impl::t_openmp_instance != nullptr; } @@ -147,26 +137,13 @@ inline bool OpenMP::in_parallel(OpenMP const&) noexcept { Impl::t_openmp_instance->m_level < omp_get_level(); } -inline -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - int - OpenMP::thread_pool_size() noexcept -#else - int - OpenMP::impl_thread_pool_size() noexcept -#endif -{ +inline int OpenMP::impl_thread_pool_size() noexcept { return OpenMP::in_parallel() ? omp_get_num_threads() : Impl::t_openmp_instance->m_pool_size; } KOKKOS_INLINE_FUNCTION -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -int OpenMP::thread_pool_rank() noexcept -#else -int OpenMP::impl_thread_pool_rank() noexcept -#endif -{ +int OpenMP::impl_thread_pool_rank() noexcept { #if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) return Impl::t_openmp_instance ? 0 : omp_get_thread_num(); #else @@ -176,10 +153,6 @@ int OpenMP::impl_thread_pool_rank() noexcept inline void OpenMP::impl_static_fence(OpenMP const& /*instance*/) noexcept {} -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -inline void OpenMP::fence(OpenMP const& instance) noexcept {} -#endif - inline bool OpenMP::is_asynchronous(OpenMP const& /*instance*/) noexcept { return false; } @@ -190,7 +163,7 @@ void OpenMP::partition_master(F const& f, int num_partitions, #if _OPENMP >= 201811 if (omp_get_max_active_levels() > 1) { #else - if (omp_get_nested() > 1) { + if (omp_get_nested()) { #endif using Exec = Impl::OpenMPExec; @@ -261,6 +234,12 @@ class MasterLock<OpenMP> { template <> class UniqueToken<OpenMP, UniqueTokenScope::Instance> { + private: + using buffer_type = Kokkos::View<uint32_t*, Kokkos::HostSpace>; + int m_count; + buffer_type m_buffer_view; + uint32_t volatile* m_buffer; + public: using execution_space = OpenMP; using size_type = int; @@ -268,17 +247,22 @@ class UniqueToken<OpenMP, UniqueTokenScope::Instance> { /// \brief create object size for concurrency on the given instance /// /// This object should not be shared between instances - UniqueToken(execution_space const& = execution_space()) noexcept {} + UniqueToken(execution_space const& = execution_space()) noexcept + : m_count(::Kokkos::OpenMP::impl_thread_pool_size()), + m_buffer_view(buffer_type()), + m_buffer(nullptr) {} + + UniqueToken(size_type max_size, execution_space const& = execution_space()) + : m_count(max_size), + m_buffer_view("UniqueToken::m_buffer_view", + ::Kokkos::Impl::concurrent_bitset::buffer_bound(m_count)), + m_buffer(m_buffer_view.data()) {} /// \brief upper bound for acquired values, i.e. 0 <= value < size() KOKKOS_INLINE_FUNCTION int size() const noexcept { #if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) -#if defined(KOKKOS_ENABLE_DEPRECATED_CODE) - return Kokkos::OpenMP::thread_pool_size(); -#else - return Kokkos::OpenMP::impl_thread_pool_size(); -#endif + return m_count; #else return 0; #endif @@ -288,11 +272,18 @@ class UniqueToken<OpenMP, UniqueTokenScope::Instance> { KOKKOS_INLINE_FUNCTION int acquire() const noexcept { #if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) -#if defined(KOKKOS_ENABLE_DEPRECATED_CODE) - return Kokkos::OpenMP::thread_pool_rank(); -#else - return Kokkos::OpenMP::impl_thread_pool_rank(); -#endif + if (m_count >= ::Kokkos::OpenMP::impl_thread_pool_size()) + return ::Kokkos::OpenMP::impl_thread_pool_rank(); + const ::Kokkos::pair<int, int> result = + ::Kokkos::Impl::concurrent_bitset::acquire_bounded( + m_buffer, m_count, ::Kokkos::Impl::clock_tic() % m_count); + + if (result.first < 0) { + ::Kokkos::abort( + "UniqueToken<OpenMP> failure to acquire tokens, no tokens available"); + } + + return result.first; #else return 0; #endif @@ -300,7 +291,14 @@ class UniqueToken<OpenMP, UniqueTokenScope::Instance> { /// \brief release a value acquired by generate KOKKOS_INLINE_FUNCTION - void release(int) const noexcept {} + void release(int i) const noexcept { +#if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) + if (m_count < ::Kokkos::OpenMP::impl_thread_pool_size()) + ::Kokkos::Impl::concurrent_bitset::release(m_buffer, i); +#else + (void)i; +#endif + } }; template <> @@ -341,31 +339,12 @@ class UniqueToken<OpenMP, UniqueTokenScope::Global> { } // namespace Experimental -inline -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - int - OpenMP::thread_pool_size(int depth) -#else - int - OpenMP::impl_thread_pool_size(int depth) -#endif -{ - return depth < 2 -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - ? thread_pool_size() -#else - ? impl_thread_pool_size() -#endif - : 1; +inline int OpenMP::impl_thread_pool_size(int depth) { + return depth < 2 ? impl_thread_pool_size() : 1; } KOKKOS_INLINE_FUNCTION -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -int OpenMP::hardware_thread_id() noexcept -#else -int OpenMP::impl_hardware_thread_id() noexcept -#endif -{ +int OpenMP::impl_hardware_thread_id() noexcept { #if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) return Impl::t_openmp_hardware_id; #else @@ -373,15 +352,7 @@ int OpenMP::impl_hardware_thread_id() noexcept #endif } -inline -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - int - OpenMP::max_hardware_threads() noexcept -#else - int - OpenMP::impl_max_hardware_threads() noexcept -#endif -{ +inline int OpenMP::impl_max_hardware_threads() noexcept { return Impl::g_openmp_hardware_max_threads; } diff --git a/packages/kokkos/core/src/OpenMP/Kokkos_OpenMP_Parallel.hpp b/packages/kokkos/core/src/OpenMP/Kokkos_OpenMP_Parallel.hpp index 83773ac30..176f452f5 100644 --- a/packages/kokkos/core/src/OpenMP/Kokkos_OpenMP_Parallel.hpp +++ b/packages/kokkos/core/src/OpenMP/Kokkos_OpenMP_Parallel.hpp @@ -49,7 +49,6 @@ #if defined(KOKKOS_ENABLE_OPENMP) #include <omp.h> -#include <iostream> #include <OpenMP/Kokkos_OpenMP_Exec.hpp> #include <impl/Kokkos_FunctorAdapter.hpp> @@ -64,10 +63,10 @@ namespace Impl { template <class FunctorType, class... Traits> class ParallelFor<FunctorType, Kokkos::RangePolicy<Traits...>, Kokkos::OpenMP> { private: - typedef Kokkos::RangePolicy<Traits...> Policy; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::WorkRange WorkRange; - typedef typename Policy::member_type Member; + using Policy = Kokkos::RangePolicy<Traits...>; + using WorkTag = typename Policy::work_tag; + using WorkRange = typename Policy::WorkRange; + using Member = typename Policy::member_type; OpenMPExec* m_instance; const FunctorType m_functor; @@ -116,11 +115,7 @@ class ParallelFor<FunctorType, Kokkos::RangePolicy<Traits...>, Kokkos::OpenMP> { } else { OpenMPExec::verify_is_master("Kokkos::OpenMP parallel_for"); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -#pragma omp parallel num_threads(OpenMP::thread_pool_size()) -#else #pragma omp parallel num_threads(OpenMP::impl_thread_pool_size()) -#endif { HostThreadTeamData& data = *(m_instance->get_thread_data()); @@ -158,16 +153,15 @@ template <class FunctorType, class... Traits> class ParallelFor<FunctorType, Kokkos::MDRangePolicy<Traits...>, Kokkos::OpenMP> { private: - typedef Kokkos::MDRangePolicy<Traits...> MDRangePolicy; - typedef typename MDRangePolicy::impl_range_policy Policy; - typedef typename MDRangePolicy::work_tag WorkTag; + using MDRangePolicy = Kokkos::MDRangePolicy<Traits...>; + using Policy = typename MDRangePolicy::impl_range_policy; + using WorkTag = typename MDRangePolicy::work_tag; - typedef typename Policy::WorkRange WorkRange; - typedef typename Policy::member_type Member; + using WorkRange = typename Policy::WorkRange; + using Member = typename Policy::member_type; - typedef typename Kokkos::Impl::HostIterateTile< - MDRangePolicy, FunctorType, typename MDRangePolicy::work_tag, void> - iterate_type; + using iterate_type = typename Kokkos::Impl::HostIterateTile< + MDRangePolicy, FunctorType, typename MDRangePolicy::work_tag, void>; OpenMPExec* m_instance; const FunctorType m_functor; @@ -201,11 +195,7 @@ class ParallelFor<FunctorType, Kokkos::MDRangePolicy<Traits...>, } else { OpenMPExec::verify_is_master("Kokkos::OpenMP parallel_for"); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -#pragma omp parallel num_threads(OpenMP::thread_pool_size()) -#else #pragma omp parallel num_threads(OpenMP::impl_thread_pool_size()) -#endif { HostThreadTeamData& data = *(m_instance->get_thread_data()); @@ -253,30 +243,30 @@ template <class FunctorType, class ReducerType, class... Traits> class ParallelReduce<FunctorType, Kokkos::RangePolicy<Traits...>, ReducerType, Kokkos::OpenMP> { private: - typedef Kokkos::RangePolicy<Traits...> Policy; + using Policy = Kokkos::RangePolicy<Traits...>; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::WorkRange WorkRange; - typedef typename Policy::member_type Member; + using WorkTag = typename Policy::work_tag; + using WorkRange = typename Policy::WorkRange; + using Member = typename Policy::member_type; - typedef FunctorAnalysis<FunctorPatternInterface::REDUCE, Policy, FunctorType> - Analysis; + using Analysis = + FunctorAnalysis<FunctorPatternInterface::REDUCE, Policy, FunctorType>; - typedef Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, - FunctorType, ReducerType> - ReducerConditional; - typedef typename ReducerConditional::type ReducerTypeFwd; - typedef + using ReducerConditional = + Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, + FunctorType, ReducerType>; + using ReducerTypeFwd = typename ReducerConditional::type; + using WorkTagFwd = typename Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, - WorkTag, void>::type WorkTagFwd; + WorkTag, void>::type; // Static Assert WorkTag void if ReducerType not InvalidType - typedef Kokkos::Impl::FunctorValueInit<ReducerTypeFwd, WorkTagFwd> ValueInit; - typedef Kokkos::Impl::FunctorValueJoin<ReducerTypeFwd, WorkTagFwd> ValueJoin; + using ValueInit = Kokkos::Impl::FunctorValueInit<ReducerTypeFwd, WorkTagFwd>; + using ValueJoin = Kokkos::Impl::FunctorValueJoin<ReducerTypeFwd, WorkTagFwd>; - typedef typename Analysis::pointer_type pointer_type; - typedef typename Analysis::reference_type reference_type; + using pointer_type = typename Analysis::pointer_type; + using reference_type = typename Analysis::reference_type; OpenMPExec* m_instance; const FunctorType m_functor; @@ -307,6 +297,15 @@ class ParallelReduce<FunctorType, Kokkos::RangePolicy<Traits...>, ReducerType, public: inline void execute() const { + if (m_policy.end() <= m_policy.begin()) { + if (m_result_ptr) { + ValueInit::init(ReducerConditional::select(m_functor, m_reducer), + m_result_ptr); + Kokkos::Impl::FunctorFinal<ReducerTypeFwd, WorkTagFwd>::final( + ReducerConditional::select(m_functor, m_reducer), m_result_ptr); + } + return; + } enum { is_dynamic = std::is_same<typename Policy::schedule_type::type, Kokkos::Dynamic>::value @@ -324,11 +323,7 @@ class ParallelReduce<FunctorType, Kokkos::RangePolicy<Traits...>, ReducerType, 0 // thread_local_bytes ); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - const int pool_size = OpenMP::thread_pool_size(); -#else const int pool_size = OpenMP::impl_thread_pool_size(); -#endif #pragma omp parallel num_threads(pool_size) { HostThreadTeamData& data = *(m_instance->get_thread_data()); @@ -420,31 +415,30 @@ template <class FunctorType, class ReducerType, class... Traits> class ParallelReduce<FunctorType, Kokkos::MDRangePolicy<Traits...>, ReducerType, Kokkos::OpenMP> { private: - typedef Kokkos::MDRangePolicy<Traits...> MDRangePolicy; - typedef typename MDRangePolicy::impl_range_policy Policy; - - typedef typename MDRangePolicy::work_tag WorkTag; - typedef typename Policy::WorkRange WorkRange; - typedef typename Policy::member_type Member; - - typedef FunctorAnalysis<FunctorPatternInterface::REDUCE, MDRangePolicy, - FunctorType> - Analysis; - - typedef Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, - FunctorType, ReducerType> - ReducerConditional; - typedef typename ReducerConditional::type ReducerTypeFwd; - typedef + using MDRangePolicy = Kokkos::MDRangePolicy<Traits...>; + using Policy = typename MDRangePolicy::impl_range_policy; + + using WorkTag = typename MDRangePolicy::work_tag; + using WorkRange = typename Policy::WorkRange; + using Member = typename Policy::member_type; + + using Analysis = FunctorAnalysis<FunctorPatternInterface::REDUCE, + MDRangePolicy, FunctorType>; + + using ReducerConditional = + Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, + FunctorType, ReducerType>; + using ReducerTypeFwd = typename ReducerConditional::type; + using WorkTagFwd = typename Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, - WorkTag, void>::type WorkTagFwd; + WorkTag, void>::type; - typedef Kokkos::Impl::FunctorValueInit<ReducerTypeFwd, WorkTagFwd> ValueInit; - typedef Kokkos::Impl::FunctorValueJoin<ReducerTypeFwd, WorkTagFwd> ValueJoin; + using ValueInit = Kokkos::Impl::FunctorValueInit<ReducerTypeFwd, WorkTagFwd>; + using ValueJoin = Kokkos::Impl::FunctorValueJoin<ReducerTypeFwd, WorkTagFwd>; - typedef typename Analysis::pointer_type pointer_type; - typedef typename Analysis::value_type value_type; - typedef typename Analysis::reference_type reference_type; + using pointer_type = typename Analysis::pointer_type; + using value_type = typename Analysis::value_type; + using reference_type = typename Analysis::reference_type; using iterate_type = typename Kokkos::Impl::HostIterateTile<MDRangePolicy, FunctorType, @@ -485,11 +479,7 @@ class ParallelReduce<FunctorType, Kokkos::MDRangePolicy<Traits...>, ReducerType, 0 // thread_local_bytes ); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - const int pool_size = OpenMP::thread_pool_size(); -#else const int pool_size = OpenMP::impl_thread_pool_size(); -#endif #pragma omp parallel num_threads(pool_size) { HostThreadTeamData& data = *(m_instance->get_thread_data()); @@ -592,21 +582,21 @@ template <class FunctorType, class... Traits> class ParallelScan<FunctorType, Kokkos::RangePolicy<Traits...>, Kokkos::OpenMP> { private: - typedef Kokkos::RangePolicy<Traits...> Policy; + using Policy = Kokkos::RangePolicy<Traits...>; - typedef FunctorAnalysis<FunctorPatternInterface::SCAN, Policy, FunctorType> - Analysis; + using Analysis = + FunctorAnalysis<FunctorPatternInterface::SCAN, Policy, FunctorType>; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::WorkRange WorkRange; - typedef typename Policy::member_type Member; + using WorkTag = typename Policy::work_tag; + using WorkRange = typename Policy::WorkRange; + using Member = typename Policy::member_type; - typedef Kokkos::Impl::FunctorValueInit<FunctorType, WorkTag> ValueInit; - typedef Kokkos::Impl::FunctorValueJoin<FunctorType, WorkTag> ValueJoin; - typedef Kokkos::Impl::FunctorValueOps<FunctorType, WorkTag> ValueOps; + using ValueInit = Kokkos::Impl::FunctorValueInit<FunctorType, WorkTag>; + using ValueJoin = Kokkos::Impl::FunctorValueJoin<FunctorType, WorkTag>; + using ValueOps = Kokkos::Impl::FunctorValueOps<FunctorType, WorkTag>; - typedef typename Analysis::pointer_type pointer_type; - typedef typename Analysis::reference_type reference_type; + using pointer_type = typename Analysis::pointer_type; + using reference_type = typename Analysis::reference_type; OpenMPExec* m_instance; const FunctorType m_functor; @@ -647,11 +637,7 @@ class ParallelScan<FunctorType, Kokkos::RangePolicy<Traits...>, 0 // thread_local_bytes ); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -#pragma omp parallel num_threads(OpenMP::thread_pool_size()) -#else #pragma omp parallel num_threads(OpenMP::impl_thread_pool_size()) -#endif { HostThreadTeamData& data = *(m_instance->get_thread_data()); @@ -665,7 +651,7 @@ class ParallelScan<FunctorType, Kokkos::RangePolicy<Traits...>, m_functor, range.begin(), range.end(), update_sum, false); if (data.pool_rendezvous()) { - pointer_type ptr_prev = 0; + pointer_type ptr_prev = nullptr; const int n = omp_get_num_threads(); @@ -710,21 +696,21 @@ template <class FunctorType, class ReturnType, class... Traits> class ParallelScanWithTotal<FunctorType, Kokkos::RangePolicy<Traits...>, ReturnType, Kokkos::OpenMP> { private: - typedef Kokkos::RangePolicy<Traits...> Policy; + using Policy = Kokkos::RangePolicy<Traits...>; - typedef FunctorAnalysis<FunctorPatternInterface::SCAN, Policy, FunctorType> - Analysis; + using Analysis = + FunctorAnalysis<FunctorPatternInterface::SCAN, Policy, FunctorType>; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::WorkRange WorkRange; - typedef typename Policy::member_type Member; + using WorkTag = typename Policy::work_tag; + using WorkRange = typename Policy::WorkRange; + using Member = typename Policy::member_type; - typedef Kokkos::Impl::FunctorValueInit<FunctorType, WorkTag> ValueInit; - typedef Kokkos::Impl::FunctorValueJoin<FunctorType, WorkTag> ValueJoin; - typedef Kokkos::Impl::FunctorValueOps<FunctorType, WorkTag> ValueOps; + using ValueInit = Kokkos::Impl::FunctorValueInit<FunctorType, WorkTag>; + using ValueJoin = Kokkos::Impl::FunctorValueJoin<FunctorType, WorkTag>; + using ValueOps = Kokkos::Impl::FunctorValueOps<FunctorType, WorkTag>; - typedef typename Analysis::pointer_type pointer_type; - typedef typename Analysis::reference_type reference_type; + using pointer_type = typename Analysis::pointer_type; + using reference_type = typename Analysis::reference_type; OpenMPExec* m_instance; const FunctorType m_functor; @@ -766,11 +752,7 @@ class ParallelScanWithTotal<FunctorType, Kokkos::RangePolicy<Traits...>, 0 // thread_local_bytes ); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -#pragma omp parallel num_threads(OpenMP::thread_pool_size()) -#else #pragma omp parallel num_threads(OpenMP::impl_thread_pool_size()) -#endif { HostThreadTeamData& data = *(m_instance->get_thread_data()); @@ -783,7 +765,7 @@ class ParallelScanWithTotal<FunctorType, Kokkos::RangePolicy<Traits...>, m_functor, range.begin(), range.end(), update_sum, false); if (data.pool_rendezvous()) { - pointer_type ptr_prev = 0; + pointer_type ptr_prev = nullptr; const int n = omp_get_num_threads(); @@ -846,11 +828,11 @@ class ParallelFor<FunctorType, Kokkos::TeamPolicy<Properties...>, private: enum { TEAM_REDUCE_SIZE = 512 }; - typedef Kokkos::Impl::TeamPolicyInternal<Kokkos::OpenMP, Properties...> - Policy; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::schedule_type::type SchedTag; - typedef typename Policy::member_type Member; + using Policy = + Kokkos::Impl::TeamPolicyInternal<Kokkos::OpenMP, Properties...>; + using WorkTag = typename Policy::work_tag; + using SchedTag = typename Policy::schedule_type::type; + using Member = typename Policy::member_type; OpenMPExec* m_instance; const FunctorType m_functor; @@ -911,11 +893,7 @@ class ParallelFor<FunctorType, Kokkos::TeamPolicy<Properties...>, m_instance->resize_thread_data(pool_reduce_size, team_reduce_size, team_shared_size, thread_local_size); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -#pragma omp parallel num_threads(OpenMP::thread_pool_size()) -#else #pragma omp parallel num_threads(OpenMP::impl_thread_pool_size()) -#endif { HostThreadTeamData& data = *(m_instance->get_thread_data()); @@ -969,30 +947,30 @@ class ParallelReduce<FunctorType, Kokkos::TeamPolicy<Properties...>, private: enum { TEAM_REDUCE_SIZE = 512 }; - typedef Kokkos::Impl::TeamPolicyInternal<Kokkos::OpenMP, Properties...> - Policy; + using Policy = + Kokkos::Impl::TeamPolicyInternal<Kokkos::OpenMP, Properties...>; - typedef FunctorAnalysis<FunctorPatternInterface::REDUCE, Policy, FunctorType> - Analysis; + using Analysis = + FunctorAnalysis<FunctorPatternInterface::REDUCE, Policy, FunctorType>; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::schedule_type::type SchedTag; - typedef typename Policy::member_type Member; + using WorkTag = typename Policy::work_tag; + using SchedTag = typename Policy::schedule_type::type; + using Member = typename Policy::member_type; - typedef Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, - FunctorType, ReducerType> - ReducerConditional; + using ReducerConditional = + Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, + FunctorType, ReducerType>; - typedef typename ReducerConditional::type ReducerTypeFwd; - typedef + using ReducerTypeFwd = typename ReducerConditional::type; + using WorkTagFwd = typename Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, - WorkTag, void>::type WorkTagFwd; + WorkTag, void>::type; - typedef Kokkos::Impl::FunctorValueInit<ReducerTypeFwd, WorkTagFwd> ValueInit; - typedef Kokkos::Impl::FunctorValueJoin<ReducerTypeFwd, WorkTagFwd> ValueJoin; + using ValueInit = Kokkos::Impl::FunctorValueInit<ReducerTypeFwd, WorkTagFwd>; + using ValueJoin = Kokkos::Impl::FunctorValueJoin<ReducerTypeFwd, WorkTagFwd>; - typedef typename Analysis::pointer_type pointer_type; - typedef typename Analysis::reference_type reference_type; + using pointer_type = typename Analysis::pointer_type; + using reference_type = typename Analysis::reference_type; OpenMPExec* m_instance; const FunctorType m_functor; @@ -1045,6 +1023,15 @@ class ParallelReduce<FunctorType, Kokkos::TeamPolicy<Properties...>, inline void execute() const { enum { is_dynamic = std::is_same<SchedTag, Kokkos::Dynamic>::value }; + if (m_policy.league_size() * m_policy.team_size() == 0) { + if (m_result_ptr) { + ValueInit::init(ReducerConditional::select(m_functor, m_reducer), + m_result_ptr); + Kokkos::Impl::FunctorFinal<ReducerTypeFwd, WorkTagFwd>::final( + ReducerConditional::select(m_functor, m_reducer), m_result_ptr); + } + return; + } OpenMPExec::verify_is_master("Kokkos::OpenMP parallel_reduce"); const size_t pool_reduce_size = @@ -1057,11 +1044,7 @@ class ParallelReduce<FunctorType, Kokkos::TeamPolicy<Properties...>, m_instance->resize_thread_data(pool_reduce_size, team_reduce_size, team_shared_size, thread_local_size); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - const int pool_size = OpenMP::thread_pool_size(); -#else const int pool_size = OpenMP::impl_thread_pool_size(); -#endif #pragma omp parallel num_threads(pool_size) { HostThreadTeamData& data = *(m_instance->get_thread_data()); diff --git a/packages/kokkos/core/src/OpenMP/Kokkos_OpenMP_Task.hpp b/packages/kokkos/core/src/OpenMP/Kokkos_OpenMP_Task.hpp index 62f0a77d0..2a4a7b1d5 100644 --- a/packages/kokkos/core/src/OpenMP/Kokkos_OpenMP_Task.hpp +++ b/packages/kokkos/core/src/OpenMP/Kokkos_OpenMP_Task.hpp @@ -182,11 +182,7 @@ class TaskQueueSpecialization<SimpleTaskScheduler<Kokkos::OpenMP, QueueType> > { } static uint32_t get_max_team_count(execution_space const& espace) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - return static_cast<uint32_t>(espace.thread_pool_size()); -#else return static_cast<uint32_t>(espace.impl_thread_pool_size()); -#endif } // TODO @tasking @optimization DSH specialize this for trivially destructible @@ -219,13 +215,7 @@ class TaskQueueSpecializationConstrained< using task_base_type = typename scheduler_type::task_base; using queue_type = typename scheduler_type::queue_type; -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - if (1 == OpenMP::thread_pool_size()) -#else - if (1 == OpenMP::impl_thread_pool_size()) -#endif - { - + if (1 == OpenMP::impl_thread_pool_size()) { task_base_type* const end = (task_base_type*)task_base_type::EndTag; HostThreadTeamData& team_data_single = @@ -269,11 +259,7 @@ class TaskQueueSpecializationConstrained< HostThreadTeamDataSingleton::singleton(); Impl::OpenMPExec* instance = t_openmp_instance; -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - const int pool_size = OpenMP::thread_pool_size(); -#else - const int pool_size = OpenMP::impl_thread_pool_size(); -#endif + const int pool_size = OpenMP::impl_thread_pool_size(); const int team_size = 1; // Threads per core instance->resize_thread_data(0 /* global reduce buffer */ diff --git a/packages/kokkos/core/src/OpenMP/Kokkos_OpenMP_Team.hpp b/packages/kokkos/core/src/OpenMP/Kokkos_OpenMP_Team.hpp index f54b6e2d5..be7afd328 100644 --- a/packages/kokkos/core/src/OpenMP/Kokkos_OpenMP_Team.hpp +++ b/packages/kokkos/core/src/OpenMP/Kokkos_OpenMP_Team.hpp @@ -58,28 +58,15 @@ class TeamPolicyInternal<Kokkos::OpenMP, Properties...> : public PolicyTraits<Properties...> { public: //! Tag this class as a kokkos execution policy - typedef TeamPolicyInternal execution_policy; + using execution_policy = TeamPolicyInternal<OpenMP, Properties...>; - typedef PolicyTraits<Properties...> traits; + using traits = PolicyTraits<Properties...>; const typename traits::execution_space& space() const { static typename traits::execution_space m_space; return m_space; } - TeamPolicyInternal& operator=(const TeamPolicyInternal& p) { - m_league_size = p.m_league_size; - m_team_size = p.m_team_size; - m_team_alloc = p.m_team_alloc; - m_team_iter = p.m_team_iter; - m_team_scratch_size[0] = p.m_team_scratch_size[0]; - m_thread_scratch_size[0] = p.m_thread_scratch_size[0]; - m_team_scratch_size[1] = p.m_team_scratch_size[1]; - m_thread_scratch_size[1] = p.m_thread_scratch_size[1]; - m_chunk_size = p.m_chunk_size; - return *this; - } - template <class ExecSpace, class... OtherProperties> friend class TeamPolicyInternal; @@ -95,45 +82,23 @@ class TeamPolicyInternal<Kokkos::OpenMP, Properties...> m_team_scratch_size[1] = p.m_team_scratch_size[1]; m_thread_scratch_size[1] = p.m_thread_scratch_size[1]; m_chunk_size = p.m_chunk_size; + m_tune_team = p.m_tune_team; + m_tune_vector = p.m_tune_vector; } //---------------------------------------- -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE template <class FunctorType> - inline static int team_size_max(const FunctorType&) { - int pool_size = traits::execution_space::thread_pool_size(1); + int team_size_max(const FunctorType&, const ParallelForTag&) const { + int pool_size = traits::execution_space::impl_thread_pool_size(1); int max_host_team_size = Impl::HostThreadTeamData::max_team_members; return pool_size < max_host_team_size ? pool_size : max_host_team_size; } - template <class FunctorType> - inline static int team_size_recommended(const FunctorType&) { - return traits::execution_space::thread_pool_size(2); - } + int impl_vector_length() const { return 1; } - template <class FunctorType> - inline static int team_size_recommended(const FunctorType&, const int&) { - return traits::execution_space::thread_pool_size(2); - } -#endif - - template <class FunctorType> - int team_size_max(const FunctorType&, const ParallelForTag&) const { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - int pool_size = traits::execution_space::thread_pool_size(1); -#else - int pool_size = traits::execution_space::impl_thread_pool_size(1); -#endif - int max_host_team_size = Impl::HostThreadTeamData::max_team_members; - return pool_size < max_host_team_size ? pool_size : max_host_team_size; - } template <class FunctorType> int team_size_max(const FunctorType&, const ParallelReduceTag&) const { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - int pool_size = traits::execution_space::thread_pool_size(1); -#else - int pool_size = traits::execution_space::impl_thread_pool_size(1); -#endif + int pool_size = traits::execution_space::impl_thread_pool_size(1); int max_host_team_size = Impl::HostThreadTeamData::max_team_members; return pool_size < max_host_team_size ? pool_size : max_host_team_size; } @@ -144,20 +109,12 @@ class TeamPolicyInternal<Kokkos::OpenMP, Properties...> } template <class FunctorType> int team_size_recommended(const FunctorType&, const ParallelForTag&) const { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - return traits::execution_space::thread_pool_size(2); -#else return traits::execution_space::impl_thread_pool_size(2); -#endif } template <class FunctorType> int team_size_recommended(const FunctorType&, const ParallelReduceTag&) const { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - return traits::execution_space::thread_pool_size(2); -#else return traits::execution_space::impl_thread_pool_size(2); -#endif } template <class FunctorType, class ReducerType> inline int team_size_recommended(const FunctorType& f, const ReducerType&, @@ -187,24 +144,20 @@ class TeamPolicyInternal<Kokkos::OpenMP, Properties...> int m_chunk_size; + bool m_tune_team; + bool m_tune_vector; + inline void init(const int league_size_request, const int team_size_request) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - const int pool_size = traits::execution_space::thread_pool_size(0); - const int team_grain = traits::execution_space::thread_pool_size(2); -#else const int pool_size = traits::execution_space::impl_thread_pool_size(0); const int team_grain = traits::execution_space::impl_thread_pool_size(2); -#endif const int max_host_team_size = Impl::HostThreadTeamData::max_team_members; const int team_max = ((pool_size < max_host_team_size) ? pool_size : max_host_team_size); m_league_size = league_size_request; -#ifndef KOKKOS_ENABLE_DEPRECATED_CODE if (team_size_request > team_max) Kokkos::abort("Kokkos::abort: Requested Team Size is too large!"); -#endif m_team_size = team_size_request < team_max ? team_size_request : team_max; // Round team size up to a multiple of 'team_gain' @@ -224,7 +177,12 @@ class TeamPolicyInternal<Kokkos::OpenMP, Properties...> public: inline int team_size() const { return m_team_size; } inline int league_size() const { return m_league_size; } - + inline bool impl_auto_team_size() const { return m_tune_team; } + inline bool impl_auto_vector_length() const { return m_tune_vector; } + inline void impl_set_team_size(size_t new_team_size) { + m_team_size = new_team_size; + } + inline void impl_set_vector_length(size_t) {} inline size_t scratch_size(const int& level, int team_size_ = -1) const { if (team_size_ < 0) team_size_ = m_team_size; return m_team_scratch_size[level] + @@ -237,7 +195,9 @@ class TeamPolicyInternal<Kokkos::OpenMP, Properties...> int /* vector_length_request */ = 1) : m_team_scratch_size{0, 0}, m_thread_scratch_size{0, 0}, - m_chunk_size(0) { + m_chunk_size(0), + m_tune_team(false), + m_tune_vector(false) { init(league_size_request, team_size_request); } @@ -248,23 +208,45 @@ class TeamPolicyInternal<Kokkos::OpenMP, Properties...> int /* vector_length_request */ = 1) : m_team_scratch_size{0, 0}, m_thread_scratch_size{0, 0}, - m_chunk_size(0) -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - { - init(league_size_request, traits::execution_space::thread_pool_size(2)); + m_chunk_size(0), + m_tune_team(true), + m_tune_vector(false) { + init(league_size_request, + traits::execution_space::impl_thread_pool_size(2)); } -#else - { + + TeamPolicyInternal(const typename traits::execution_space&, + int league_size_request, + const Kokkos::AUTO_t& /* team_size_request */ + , + const Kokkos::AUTO_t& /* vector_length_request */) + : m_team_scratch_size{0, 0}, + m_thread_scratch_size{0, 0}, + m_chunk_size(0), + m_tune_team(true), + m_tune_vector(true) { init(league_size_request, traits::execution_space::impl_thread_pool_size(2)); } -#endif + + TeamPolicyInternal(const typename traits::execution_space&, + int league_size_request, const int team_size_request, + const Kokkos::AUTO_t& /* vector_length_request */) + : m_team_scratch_size{0, 0}, + m_thread_scratch_size{0, 0}, + m_chunk_size(0), + m_tune_team(false), + m_tune_vector(true) { + init(league_size_request, team_size_request); + } TeamPolicyInternal(int league_size_request, int team_size_request, int /* vector_length_request */ = 1) : m_team_scratch_size{0, 0}, m_thread_scratch_size{0, 0}, - m_chunk_size(0) { + m_chunk_size(0), + m_tune_team(false), + m_tune_vector(false) { init(league_size_request, team_size_request); } @@ -274,53 +256,41 @@ class TeamPolicyInternal<Kokkos::OpenMP, Properties...> int /* vector_length_request */ = 1) : m_team_scratch_size{0, 0}, m_thread_scratch_size{0, 0}, - m_chunk_size(0) { + m_chunk_size(0), + m_tune_team(true), + m_tune_vector(false) { init(league_size_request, -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - traits::execution_space::thread_pool_size(2) -#else - traits::execution_space::impl_thread_pool_size(2) -#endif - ); + traits::execution_space::impl_thread_pool_size(2)); } - inline int team_alloc() const { return m_team_alloc; } - inline int team_iter() const { return m_team_iter; } - - inline int chunk_size() const { return m_chunk_size; } - -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - /** \brief set chunk_size to a discrete value*/ - inline TeamPolicyInternal set_chunk_size( - typename traits::index_type chunk_size_) const { - TeamPolicyInternal p = *this; - p.m_chunk_size = chunk_size_; - return p; + TeamPolicyInternal(int league_size_request, + const Kokkos::AUTO_t& /* team_size_request */ + , + const Kokkos::AUTO_t& /* vector_length_request */) + : m_team_scratch_size{0, 0}, + m_thread_scratch_size{0, 0}, + m_chunk_size(0), + m_tune_team(true), + m_tune_vector(true) { + init(league_size_request, + traits::execution_space::impl_thread_pool_size(2)); } - inline TeamPolicyInternal set_scratch_size( - const int& level, const PerTeamValue& per_team) const { - TeamPolicyInternal p = *this; - p.m_team_scratch_size[level] = per_team.value; - return p; + TeamPolicyInternal(int league_size_request, int team_size_request, + const Kokkos::AUTO_t& /* vector_length_request */) + : m_team_scratch_size{0, 0}, + m_thread_scratch_size{0, 0}, + m_chunk_size(0), + m_tune_team(true), + m_tune_vector(true) { + init(league_size_request, team_size_request); } - inline TeamPolicyInternal set_scratch_size( - const int& level, const PerThreadValue& per_thread) const { - TeamPolicyInternal p = *this; - p.m_thread_scratch_size[level] = per_thread.value; - return p; - } + inline int team_alloc() const { return m_team_alloc; } + inline int team_iter() const { return m_team_iter; } + + inline int chunk_size() const { return m_chunk_size; } - inline TeamPolicyInternal set_scratch_size( - const int& level, const PerTeamValue& per_team, - const PerThreadValue& per_thread) const { - TeamPolicyInternal p = *this; - p.m_team_scratch_size[level] = per_team.value; - p.m_thread_scratch_size[level] = per_thread.value; - return p; - } -#else /** \brief set chunk_size to a discrete value*/ inline TeamPolicyInternal& set_chunk_size( typename traits::index_type chunk_size_) { @@ -349,58 +319,16 @@ class TeamPolicyInternal<Kokkos::OpenMP, Properties...> inline TeamPolicyInternal& set_scratch_size( const int& level, const PerTeamValue& per_team, const PerThreadValue& per_thread) { - m_team_scratch_size[level] = per_team.value; - m_thread_scratch_size[level] = per_thread.value; - return *this; - } -#endif - - protected: -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - /** \brief set chunk_size to a discrete value*/ - inline TeamPolicyInternal internal_set_chunk_size( - typename traits::index_type chunk_size_) { - m_chunk_size = chunk_size_; - return *this; - } - - /** \brief set per team scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal internal_set_scratch_size( - const int& level, const PerTeamValue& per_team) { - m_team_scratch_size[level] = per_team.value; - return *this; - } - - /** \brief set per thread scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal internal_set_scratch_size( - const int& level, const PerThreadValue& per_thread) { - m_thread_scratch_size[level] = per_thread.value; - return *this; - } - - /** \brief set per thread and per team scratch size for a specific level of - * the scratch hierarchy */ - inline TeamPolicyInternal internal_set_scratch_size( - const int& level, const PerTeamValue& per_team, - const PerThreadValue& per_thread) { m_team_scratch_size[level] = per_team.value; m_thread_scratch_size[level] = per_thread.value; return *this; } -#endif private: /** \brief finalize chunk_size if it was set to AUTO*/ inline void set_auto_chunk_size() { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - int concurrency = - traits::execution_space::thread_pool_size(0) / m_team_alloc; -#else int concurrency = traits::execution_space::impl_thread_pool_size(0) / m_team_alloc; -#endif if (concurrency == 0) concurrency = 1; if (m_chunk_size > 0) { @@ -421,7 +349,7 @@ class TeamPolicyInternal<Kokkos::OpenMP, Properties...> } public: - typedef Impl::HostThreadTeamMember<Kokkos::OpenMP> member_type; + using member_type = Impl::HostThreadTeamMember<Kokkos::OpenMP>; }; } // namespace Impl diff --git a/packages/kokkos/core/src/OpenMP/Kokkos_OpenMP_ViewCopyETIAvail.hpp b/packages/kokkos/core/src/OpenMP/Kokkos_OpenMP_ViewCopyETIAvail.hpp deleted file mode 100644 index 7bcd515f4..000000000 --- a/packages/kokkos/core/src/OpenMP/Kokkos_OpenMP_ViewCopyETIAvail.hpp +++ /dev/null @@ -1,57 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#ifndef KOKKOS_OPENMP_VIEWETIAVAIL_HPP -#define KOKKOS_OPENMP_VIEWETIAVAIL_HPP - -namespace Kokkos { -namespace Impl { -#define KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE Kokkos::OpenMP - -#include <eti/common/Kokkos_ViewFillCopyETIAvail_Macros.hpp> - -#undef KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE -} // namespace Impl -} // namespace Kokkos -#endif diff --git a/packages/kokkos/core/src/OpenMP/Kokkos_OpenMP_ViewCopyETIDecl.hpp b/packages/kokkos/core/src/OpenMP/Kokkos_OpenMP_ViewCopyETIDecl.hpp deleted file mode 100644 index b5254e127..000000000 --- a/packages/kokkos/core/src/OpenMP/Kokkos_OpenMP_ViewCopyETIDecl.hpp +++ /dev/null @@ -1,57 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#ifndef KOKKOS_OPENMP_VIEWETIDECL_HPP -#define KOKKOS_OPENMP_VIEWETIDECL_HPP - -namespace Kokkos { -namespace Impl { -#define KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE Kokkos::OpenMP - -#include <eti/common/Kokkos_ViewFillCopyETIDecl_Macros.hpp> - -#undef KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE -} // namespace Impl -} // namespace Kokkos -#endif diff --git a/packages/kokkos/core/src/OpenMP/Kokkos_OpenMP_WorkGraphPolicy.hpp b/packages/kokkos/core/src/OpenMP/Kokkos_OpenMP_WorkGraphPolicy.hpp index 4ff1486c6..92e4ee636 100644 --- a/packages/kokkos/core/src/OpenMP/Kokkos_OpenMP_WorkGraphPolicy.hpp +++ b/packages/kokkos/core/src/OpenMP/Kokkos_OpenMP_WorkGraphPolicy.hpp @@ -45,6 +45,8 @@ #ifndef KOKKOS_OPENMP_WORKGRAPHPOLICY_HPP #define KOKKOS_OPENMP_WORKGRAPHPOLICY_HPP +#include <Kokkos_OpenMP.hpp> + namespace Kokkos { namespace Impl { @@ -52,7 +54,7 @@ template <class FunctorType, class... Traits> class ParallelFor<FunctorType, Kokkos::WorkGraphPolicy<Traits...>, Kokkos::OpenMP> { private: - typedef Kokkos::WorkGraphPolicy<Traits...> Policy; + using Policy = Kokkos::WorkGraphPolicy<Traits...>; Policy m_policy; FunctorType m_functor; @@ -72,11 +74,7 @@ class ParallelFor<FunctorType, Kokkos::WorkGraphPolicy<Traits...>, public: inline void execute() { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -#pragma omp parallel num_threads(OpenMP::thread_pool_size()) -#else #pragma omp parallel num_threads(OpenMP::impl_thread_pool_size()) -#endif { // Spin until COMPLETED_TOKEN. // END_TOKEN indicates no work is currently available. diff --git a/packages/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTargetSpace.cpp b/packages/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTargetSpace.cpp index ab833b036..efa061947 100644 --- a/packages/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTargetSpace.cpp +++ b/packages/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTargetSpace.cpp @@ -80,7 +80,7 @@ void *OpenMPTargetSpace::allocate(const size_t arg_alloc_size) const { } void OpenMPTargetSpace::deallocate(void *const arg_alloc_ptr, - const size_t arg_alloc_size) const { + const size_t /*arg_alloc_size*/) const { if (arg_alloc_ptr) { omp_target_free(arg_alloc_ptr, omp_get_default_device()); } @@ -94,7 +94,7 @@ void OpenMPTargetSpace::deallocate(void *const arg_alloc_ptr, namespace Kokkos { namespace Impl { -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG SharedAllocationRecord<void, void> SharedAllocationRecord< Kokkos::Experimental::OpenMPTargetSpace, void>::s_root_record; #endif @@ -125,7 +125,7 @@ SharedAllocationRecord<Kokkos::Experimental::OpenMPTargetSpace, void>:: // Pass through allocated [ SharedAllocationHeader , user_memory ] // Pass through deallocation function : SharedAllocationRecord<void, void>( -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG &SharedAllocationRecord<Kokkos::Experimental::OpenMPTargetSpace, void>::s_root_record, #endif @@ -153,7 +153,7 @@ void *SharedAllocationRecord<Kokkos::Experimental::OpenMPTargetSpace, void>:: allocate_tracked(const Kokkos::Experimental::OpenMPTargetSpace &arg_space, const std::string &arg_alloc_label, const size_t arg_alloc_size) { - if (!arg_alloc_size) return (void *)0; + if (!arg_alloc_size) return nullptr; SharedAllocationRecord *const r = allocate(arg_space, arg_alloc_label, arg_alloc_size); @@ -166,7 +166,7 @@ void *SharedAllocationRecord<Kokkos::Experimental::OpenMPTargetSpace, void>:: void SharedAllocationRecord<Kokkos::Experimental::OpenMPTargetSpace, void>::deallocate_tracked(void *const arg_alloc_ptr) { - if (arg_alloc_ptr != 0) { + if (arg_alloc_ptr != nullptr) { SharedAllocationRecord *const r = get_record(arg_alloc_ptr); RecordBase::decrement(r); @@ -193,9 +193,9 @@ void *SharedAllocationRecord<Kokkos::Experimental::OpenMPTargetSpace, void>:: SharedAllocationRecord<Kokkos::Experimental::OpenMPTargetSpace, void> *SharedAllocationRecord<Kokkos::Experimental::OpenMPTargetSpace, void>::get_record(void *alloc_ptr) { - typedef SharedAllocationHeader Header; - typedef SharedAllocationRecord<Kokkos::Experimental::OpenMPTargetSpace, void> - RecordHost; + using Header = SharedAllocationHeader; + using RecordHost = + SharedAllocationRecord<Kokkos::Experimental::OpenMPTargetSpace, void>; if (alloc_ptr) { Header head; @@ -218,15 +218,17 @@ SharedAllocationRecord<Kokkos::Experimental::OpenMPTargetSpace, void> // Iterate records to print orphaned memory ... void SharedAllocationRecord<Kokkos::Experimental::OpenMPTargetSpace, void>:: print_records(std::ostream &s, - const Kokkos::Experimental::OpenMPTargetSpace &space, + const Kokkos::Experimental::OpenMPTargetSpace &, bool detail) { -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG SharedAllocationRecord<void, void>::print_host_accessible_records( s, "OpenMPTargetSpace", &s_root_record, detail); #else + (void)s; + (void)detail; throw_runtime_exception( "SharedAllocationRecord<OpenMPTargetSpace>::print_records" - " only works with KOKKOS_DEBUG enabled"); + " only works with KOKKOS_ENABLE_DEBUG enabled"); #endif } diff --git a/packages/kokkos/core/src/Threads/Kokkos_Threads_ViewCopyETIAvail.hpp b/packages/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Abort.hpp similarity index 88% rename from packages/kokkos/core/src/Threads/Kokkos_Threads_ViewCopyETIAvail.hpp rename to packages/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Abort.hpp index c3c416c4c..ff07ce4f3 100644 --- a/packages/kokkos/core/src/Threads/Kokkos_Threads_ViewCopyETIAvail.hpp +++ b/packages/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Abort.hpp @@ -42,16 +42,22 @@ //@HEADER */ -#ifndef KOKKOS_THREADS_VIEWETIAVAIL_HPP -#define KOKKOS_THREADS_VIEWETIAVAIL_HPP +#ifndef KOKKOS_OPENMPTARGET_ABORT_HPP +#define KOKKOS_OPENMPTARGET_ABORT_HPP + +#include <Kokkos_Macros.hpp> +#ifdef KOKKOS_ENABLE_OPENMPTARGET namespace Kokkos { namespace Impl { -#define KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE Kokkos::Threads -#include <eti/common/Kokkos_ViewFillCopyETIAvail_Macros.hpp> +KOKKOS_INLINE_FUNCTION void OpenMPTarget_abort(char const *msg) { + fprintf(stderr, "%s.\n", msg); + std::abort(); +} -#undef KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE } // namespace Impl } // namespace Kokkos + +#endif #endif diff --git a/packages/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Exec.cpp b/packages/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Exec.cpp index b09dbeba3..74be6a37d 100644 --- a/packages/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Exec.cpp +++ b/packages/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Exec.cpp @@ -50,10 +50,12 @@ #include <impl/Kokkos_Error.hpp> #include <iostream> #include <impl/Kokkos_CPUDiscovery.hpp> -#include <impl/Kokkos_Profiling_Interface.hpp> +#include <impl/Kokkos_Tools.hpp> #ifdef KOKKOS_ENABLE_OPENMPTARGET +// FIXME_OPENMPTARGET currently unused +/* namespace Kokkos { namespace Impl { namespace { @@ -69,6 +71,7 @@ bool s_using_hwloc = false; } // namespace } // namespace Impl } // namespace Kokkos +*/ namespace Kokkos { namespace Impl { @@ -106,7 +109,7 @@ void OpenMPTargetExec::resize_scratch(int64_t reduce_bytes, int64_t team_shared_bytes, int64_t thread_local_bytes) { Kokkos::Experimental::OpenMPTargetSpace space; - uint64_t total_size = + int64_t total_size = MAX_ACTIVE_TEAMS * reduce_bytes + // Inter Team Reduction MAX_ACTIVE_TEAMS * team_reduce_bytes + // Intra Team Reduction MAX_ACTIVE_TEAMS * team_shared_bytes + // Team Local Scratch diff --git a/packages/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Exec.hpp b/packages/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Exec.hpp index be6ddb5ed..5bf1cdd9e 100644 --- a/packages/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Exec.hpp +++ b/packages/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Exec.hpp @@ -49,9 +49,444 @@ #include <impl/Kokkos_Spinwait.hpp> #include <Kokkos_Atomic.hpp> -#include <iostream> -#include <sstream> -#include <fstream> +#include "Kokkos_OpenMPTarget_Abort.hpp" + +//---------------------------------------------------------------------------- +//---------------------------------------------------------------------------- + +namespace Kokkos { +namespace Impl { + +template <class Reducer> +struct OpenMPTargetReducerWrapper { + using value_type = typename Reducer::value_type; + +// WORKAROUND OPENMPTARGET +// This pragma omp declare target should not be necessary, but Intel compiler +// fails without it +#pragma omp declare target + KOKKOS_INLINE_FUNCTION + static void join(value_type&, const value_type&) { + printf( + "Using a generic unknown Reducer for the OpenMPTarget backend is not " + "implemented."); + } + + KOKKOS_INLINE_FUNCTION + static void join(volatile value_type&, const volatile value_type&) { + printf( + "Using a generic unknown Reducer for the OpenMPTarget backend is not " + "implemented."); + } + + KOKKOS_INLINE_FUNCTION + static void init(value_type&) { + printf( + "Using a generic unknown Reducer for the OpenMPTarget backend is not " + "implemented."); + } +#pragma omp end declare target +}; + +template <class Scalar, class Space> +struct OpenMPTargetReducerWrapper<Sum<Scalar, Space>> { + public: + // Required + using value_type = typename std::remove_cv<Scalar>::type; + +// WORKAROUND OPENMPTARGET +// This pragma omp declare target should not be necessary, but Intel compiler +// fails without it +#pragma omp declare target + // Required + KOKKOS_INLINE_FUNCTION + static void join(value_type& dest, const value_type& src) { dest += src; } + + KOKKOS_INLINE_FUNCTION + static void join(volatile value_type& dest, const volatile value_type& src) { + dest += src; + } + + KOKKOS_INLINE_FUNCTION + static void init(value_type& val) { + val = reduction_identity<value_type>::sum(); + } +#pragma omp end declare target +}; + +template <class Scalar, class Space> +struct OpenMPTargetReducerWrapper<Prod<Scalar, Space>> { + public: + // Required + using value_type = typename std::remove_cv<Scalar>::type; + +// WORKAROUND OPENMPTARGET +// This pragma omp declare target should not be necessary, but Intel compiler +// fails without it +#pragma omp declare target + // Required + KOKKOS_INLINE_FUNCTION + static void join(value_type& dest, const value_type& src) { dest *= src; } + + KOKKOS_INLINE_FUNCTION + static void join(volatile value_type& dest, const volatile value_type& src) { + dest *= src; + } + + KOKKOS_INLINE_FUNCTION + static void init(value_type& val) { + val = reduction_identity<value_type>::prod(); + } +#pragma omp end declare target +}; + +template <class Scalar, class Space> +struct OpenMPTargetReducerWrapper<Min<Scalar, Space>> { + public: + // Required + using value_type = typename std::remove_cv<Scalar>::type; + +// WORKAROUND OPENMPTARGET +// This pragma omp declare target should not be necessary, but Intel compiler +// fails without it +#pragma omp declare target + // Required + KOKKOS_INLINE_FUNCTION + static void join(value_type& dest, const value_type& src) { + if (src < dest) dest = src; + } + + KOKKOS_INLINE_FUNCTION + static void join(volatile value_type& dest, const volatile value_type& src) { + if (src < dest) dest = src; + } + + KOKKOS_INLINE_FUNCTION + static void init(value_type& val) { + val = reduction_identity<value_type>::min(); + } +#pragma omp end declare target +}; + +template <class Scalar, class Space> +struct OpenMPTargetReducerWrapper<Max<Scalar, Space>> { + public: + // Required + using value_type = typename std::remove_cv<Scalar>::type; + +// WORKAROUND OPENMPTARGET +// This pragma omp declare target should not be necessary, but Intel compiler +// fails without it +#pragma omp declare target + // Required + KOKKOS_INLINE_FUNCTION + static void join(value_type& dest, const value_type& src) { + if (src > dest) dest = src; + } + + KOKKOS_INLINE_FUNCTION + static void join(volatile value_type& dest, const volatile value_type& src) { + if (src > dest) dest = src; + } + + // Required + KOKKOS_INLINE_FUNCTION + static void init(value_type& val) { + val = reduction_identity<value_type>::max(); + } +#pragma omp end declare target +}; + +template <class Scalar, class Space> +struct OpenMPTargetReducerWrapper<LAnd<Scalar, Space>> { + public: + // Required + using value_type = typename std::remove_cv<Scalar>::type; + +// WORKAROUND OPENMPTARGET +// This pragma omp declare target should not be necessary, but Intel compiler +// fails without it +#pragma omp declare target + KOKKOS_INLINE_FUNCTION + static void join(value_type& dest, const value_type& src) { + dest = dest && src; + } + + KOKKOS_INLINE_FUNCTION + static void join(volatile value_type& dest, const volatile value_type& src) { + dest = dest && src; + } + + KOKKOS_INLINE_FUNCTION + static void init(value_type& val) { + val = reduction_identity<value_type>::land(); + } +#pragma omp end declare target +}; + +template <class Scalar, class Space> +struct OpenMPTargetReducerWrapper<LOr<Scalar, Space>> { + public: + // Required + using value_type = typename std::remove_cv<Scalar>::type; + + using result_view_type = Kokkos::View<value_type, Space>; + +// WORKAROUND OPENMPTARGET +// This pragma omp declare target should not be necessary, but Intel compiler +// fails without it +#pragma omp declare target + // Required + KOKKOS_INLINE_FUNCTION + static void join(value_type& dest, const value_type& src) { + dest = dest || src; + } + + KOKKOS_INLINE_FUNCTION + static void join(volatile value_type& dest, const volatile value_type& src) { + dest = dest || src; + } + + KOKKOS_INLINE_FUNCTION + static void init(value_type& val) { + val = reduction_identity<value_type>::lor(); + } +#pragma omp end declare target +}; + +template <class Scalar, class Space> +struct OpenMPTargetReducerWrapper<BAnd<Scalar, Space>> { + public: + // Required + using value_type = typename std::remove_cv<Scalar>::type; + +// WORKAROUND OPENMPTARGET +// This pragma omp declare target should not be necessary, but Intel compiler +// fails without it +#pragma omp declare target + // Required + KOKKOS_INLINE_FUNCTION + static void join(value_type& dest, const value_type& src) { + dest = dest & src; + } + + KOKKOS_INLINE_FUNCTION + static void join(volatile value_type& dest, const volatile value_type& src) { + dest = dest & src; + } + + KOKKOS_INLINE_FUNCTION + static void init(value_type& val) { + val = reduction_identity<value_type>::band(); + } +#pragma omp end declare target +}; + +template <class Scalar, class Space> +struct OpenMPTargetReducerWrapper<BOr<Scalar, Space>> { + public: + // Required + using value_type = typename std::remove_cv<Scalar>::type; + +// WORKAROUND OPENMPTARGET +// This pragma omp declare target should not be necessary, but Intel compiler +// fails without it +#pragma omp declare target + // Required + KOKKOS_INLINE_FUNCTION + static void join(value_type& dest, const value_type& src) { + dest = dest | src; + } + + KOKKOS_INLINE_FUNCTION + static void join(volatile value_type& dest, const volatile value_type& src) { + dest = dest | src; + } + + KOKKOS_INLINE_FUNCTION + static void init(value_type& val) { + val = reduction_identity<value_type>::bor(); + } +#pragma omp end declare target +}; + +template <class Scalar, class Index, class Space> +struct OpenMPTargetReducerWrapper<MinLoc<Scalar, Index, Space>> { + private: + using scalar_type = typename std::remove_cv<Scalar>::type; + using index_type = typename std::remove_cv<Index>::type; + + public: + // Required + using value_type = ValLocScalar<scalar_type, index_type>; + +// WORKAROUND OPENMPTARGET +// This pragma omp declare target should not be necessary, but Intel compiler +// fails without it +#pragma omp declare target + // Required + KOKKOS_INLINE_FUNCTION + static void join(value_type& dest, const value_type& src) { + if (src.val < dest.val) dest = src; + } + + KOKKOS_INLINE_FUNCTION + static void join(volatile value_type& dest, const volatile value_type& src) { + if (src.val < dest.val) dest = src; + } + + KOKKOS_INLINE_FUNCTION + static void init(value_type& val) { + val.val = reduction_identity<scalar_type>::min(); + val.loc = reduction_identity<index_type>::min(); + } +#pragma omp end declare target +}; + +template <class Scalar, class Index, class Space> +struct OpenMPTargetReducerWrapper<MaxLoc<Scalar, Index, Space>> { + private: + using scalar_type = typename std::remove_cv<Scalar>::type; + using index_type = typename std::remove_cv<Index>::type; + + public: + // Required + using value_type = ValLocScalar<scalar_type, index_type>; + +// WORKAROUND OPENMPTARGET +// This pragma omp declare target should not be necessary, but Intel compiler +// fails without it +#pragma omp declare target + KOKKOS_INLINE_FUNCTION + static void join(value_type& dest, const value_type& src) { + if (src.val > dest.val) dest = src; + } + + KOKKOS_INLINE_FUNCTION + static void join(volatile value_type& dest, const volatile value_type& src) { + if (src.val > dest.val) dest = src; + } + + KOKKOS_INLINE_FUNCTION + static void init(value_type& val) { + val.val = reduction_identity<scalar_type>::max(); + val.loc = reduction_identity<index_type>::min(); + } +#pragma omp end declare target +}; + +template <class Scalar, class Space> +struct OpenMPTargetReducerWrapper<MinMax<Scalar, Space>> { + private: + using scalar_type = typename std::remove_cv<Scalar>::type; + + public: + // Required + using value_type = MinMaxScalar<scalar_type>; + +// WORKAROUND OPENMPTARGET +// This pragma omp declare target should not be necessary, but Intel compiler +// fails without it +#pragma omp declare target + // Required + KOKKOS_INLINE_FUNCTION + static void join(value_type& dest, const value_type& src) { + if (src.min_val < dest.min_val) { + dest.min_val = src.min_val; + } + if (src.max_val > dest.max_val) { + dest.max_val = src.max_val; + } + } + + KOKKOS_INLINE_FUNCTION + static void join(volatile value_type& dest, const volatile value_type& src) { + if (src.min_val < dest.min_val) { + dest.min_val = src.min_val; + } + if (src.max_val > dest.max_val) { + dest.max_val = src.max_val; + } + } + + KOKKOS_INLINE_FUNCTION + static void init(value_type& val) { + val.max_val = reduction_identity<scalar_type>::max(); + val.min_val = reduction_identity<scalar_type>::min(); + } +#pragma omp end declare target +}; + +template <class Scalar, class Index, class Space> +struct OpenMPTargetReducerWrapper<MinMaxLoc<Scalar, Index, Space>> { + private: + using scalar_type = typename std::remove_cv<Scalar>::type; + using index_type = typename std::remove_cv<Index>::type; + + public: + // Required + using value_type = MinMaxLocScalar<scalar_type, index_type>; + +// WORKAROUND OPENMPTARGET +// This pragma omp declare target should not be necessary, but Intel compiler +// fails without it +#pragma omp declare target + // Required + KOKKOS_INLINE_FUNCTION + static void join(value_type& dest, const value_type& src) { + if (src.min_val < dest.min_val) { + dest.min_val = src.min_val; + dest.min_loc = src.min_loc; + } + if (src.max_val > dest.max_val) { + dest.max_val = src.max_val; + dest.max_loc = src.max_loc; + } + } + + KOKKOS_INLINE_FUNCTION + static void join(volatile value_type& dest, const volatile value_type& src) { + if (src.min_val < dest.min_val) { + dest.min_val = src.min_val; + dest.min_loc = src.min_loc; + } + if (src.max_val > dest.max_val) { + dest.max_val = src.max_val; + dest.max_loc = src.max_loc; + } + } + + KOKKOS_INLINE_FUNCTION + static void init(value_type& val) { + val.max_val = reduction_identity<scalar_type>::max(); + val.min_val = reduction_identity<scalar_type>::min(); + val.max_loc = reduction_identity<index_type>::min(); + val.min_loc = reduction_identity<index_type>::min(); + } +#pragma omp end declare target +}; +/* +template<class ReducerType> +class OpenMPTargetReducerWrapper { + public: + const ReducerType& reducer; + using value_type = typename ReducerType::value_type; + value_type& value; + + KOKKOS_INLINE_FUNCTION + void join(const value_type& upd) { + reducer.join(value,upd); + } + + KOKKOS_INLINE_FUNCTION + void init(const value_type& upd) { + reducer.init(value,upd); + } +};*/ + +} // namespace Impl +} // namespace Kokkos + namespace Kokkos { namespace Impl { @@ -96,8 +531,8 @@ class OpenMPTargetExecTeamMember { /** \brief Thread states for team synchronization */ enum { Active = 0, Rendezvous = 1 }; - typedef Kokkos::Experimental::OpenMPTarget execution_space; - typedef execution_space::scratch_memory_space scratch_memory_space; + using execution_space = Kokkos::Experimental::OpenMPTarget; + using scratch_memory_space = execution_space::scratch_memory_space; scratch_memory_space m_team_shared; int m_team_scratch_size[2]; @@ -108,6 +543,7 @@ class OpenMPTargetExecTeamMember { int m_vector_length; int m_vector_lane; void* m_glb_scratch; + void* m_reduce_scratch; /* // Fan-in team threads, root of the fan-in which does not block returns true @@ -160,20 +596,24 @@ class OpenMPTargetExecTeamMember { KOKKOS_INLINE_FUNCTION int league_size() const { return m_league_size; } KOKKOS_INLINE_FUNCTION int team_rank() const { return m_team_rank; } KOKKOS_INLINE_FUNCTION int team_size() const { return m_team_size; } + KOKKOS_INLINE_FUNCTION void* impl_reduce_scratch() const { + return m_reduce_scratch; + } KOKKOS_INLINE_FUNCTION void team_barrier() const { #pragma omp barrier } template <class ValueType> - KOKKOS_INLINE_FUNCTION void team_broadcast(ValueType& value, - const int& thread_id) const { + KOKKOS_INLINE_FUNCTION void team_broadcast(ValueType& /*value*/, + const int& /*thread_id*/) const { + // FIXME_OPENMPTARGET /*#if ! defined( KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST ) { } #else // Make sure there is enough scratch space: - typedef typename if_c< sizeof(ValueType) < TEAM_REDUCE_SIZE - , ValueType , void >::type type ; + using type = typename if_c< sizeof(ValueType) < TEAM_REDUCE_SIZE + , ValueType , void >::type; type * const local_value = ((type*) m_exec.scratch_thread()); if(team_rank() == thread_id) @@ -189,12 +629,12 @@ class OpenMPTargetExecTeamMember { const JoinOp& op_in) const { #pragma omp barrier - typedef ValueType value_type; + using value_type = ValueType; const JoinLambdaAdapter<value_type, JoinOp> op(op_in); // Make sure there is enough scratch space: - typedef typename if_c<sizeof(value_type) < TEAM_REDUCE_SIZE, value_type, - void>::type type; + using type = typename if_c<sizeof(value_type) < TEAM_REDUCE_SIZE, + value_type, void>::type; const int n_values = TEAM_REDUCE_SIZE / sizeof(value_type); type* team_scratch = @@ -229,11 +669,12 @@ class OpenMPTargetExecTeamMember { * non-deterministic. */ template <typename ArgType> - KOKKOS_INLINE_FUNCTION ArgType team_scan(const ArgType& value, - ArgType* const global_accum) const { + KOKKOS_INLINE_FUNCTION ArgType + team_scan(const ArgType& /*value*/, ArgType* const /*global_accum*/) const { + // FIXME_OPENMPTARGET /* // Make sure there is enough scratch space: - typedef typename if_c< sizeof(ArgType) < TEAM_REDUCE_SIZE , ArgType , void - >::type type ; + using type = + typename if_c<sizeof(ArgType) < TEAM_REDUCE_SIZE, ArgType, void>::type; volatile type * const work_value = ((type*) m_exec.scratch_thread()); @@ -289,7 +730,7 @@ class OpenMPTargetExecTeamMember { // Private for the driver private: - typedef execution_space::scratch_memory_space space; + using space = execution_space::scratch_memory_space; public: inline OpenMPTargetExecTeamMember( @@ -298,18 +739,20 @@ class OpenMPTargetExecTeamMember { // Properties ...> & team , void* const glb_scratch, const int shmem_size_L1, const int shmem_size_L2) - : m_team_shared(0, 0), + : m_team_shared(nullptr, 0), m_team_scratch_size{shmem_size_L1, shmem_size_L2}, m_team_rank(0), - m_vector_length(vector_length), m_team_size(team_size), m_league_rank(league_rank), m_league_size(league_size), + m_vector_length(vector_length), m_glb_scratch(glb_scratch) { - const int omp_tid = omp_get_thread_num(); - m_league_rank = league_rank; - m_team_rank = omp_tid / m_vector_length; - m_vector_lane = omp_tid % m_vector_length; + const int omp_tid = omp_get_thread_num(); + const int omp_team_num = omp_get_team_num(); + m_reduce_scratch = (char*)glb_scratch + omp_team_num * TEAM_REDUCE_SIZE; + m_league_rank = league_rank; + m_team_rank = omp_tid; + m_vector_lane = 0; } static inline int team_reduce_size() { return TEAM_REDUCE_SIZE; } @@ -320,23 +763,9 @@ class TeamPolicyInternal<Kokkos::Experimental::OpenMPTarget, Properties...> : public PolicyTraits<Properties...> { public: //! Tag this class as a kokkos execution policy - typedef TeamPolicyInternal execution_policy; - - typedef PolicyTraits<Properties...> traits; - - TeamPolicyInternal& operator=(const TeamPolicyInternal& p) { - m_league_size = p.m_league_size; - m_team_size = p.m_team_size; - m_vector_length = p.m_vector_length; - m_team_alloc = p.m_team_alloc; - m_team_iter = p.m_team_iter; - m_team_scratch_size[0] = p.m_team_scratch_size[0]; - m_thread_scratch_size[0] = p.m_thread_scratch_size[0]; - m_team_scratch_size[1] = p.m_team_scratch_size[1]; - m_thread_scratch_size[1] = p.m_thread_scratch_size[1]; - m_chunk_size = p.m_chunk_size; - return *this; - } + using execution_policy = TeamPolicyInternal; + + using traits = PolicyTraits<Properties...>; //---------------------------------------- @@ -384,25 +813,42 @@ class TeamPolicyInternal<Kokkos::Experimental::OpenMPTarget, Properties...> int m_vector_length; int m_team_alloc; int m_team_iter; - - size_t m_team_scratch_size[2]; - size_t m_thread_scratch_size[2]; - + std::array<size_t, 2> m_team_scratch_size; + std::array<size_t, 2> m_thread_scratch_size; + bool m_tune_team_size; + bool m_tune_vector_length; + constexpr const static size_t default_team_size = 256; int m_chunk_size; inline void init(const int league_size_request, const int team_size_request, const int vector_length_request) { m_league_size = league_size_request; - m_team_size = team_size_request; + // Minimum team size should be 32 for OpenMPTarget backend. + if (team_size_request < 32) { + Kokkos::Impl::OpenMPTarget_abort( + "OpenMPTarget backend requires a minimum of 32 threads per team.\n"); + } else + m_team_size = team_size_request; m_vector_length = vector_length_request; - set_auto_chunk_size(); } + template <typename ExecSpace, typename... OtherProperties> + friend class TeamPolicyInternal; + public: - inline int vector_length() const { return m_vector_length; } + inline bool impl_auto_team_size() const { return m_tune_team_size; } + inline bool impl_auto_vector_length() const { return m_tune_vector_length; } + inline void impl_set_team_size(const size_t size) { m_team_size = size; } + inline void impl_set_vector_length(const size_t length) { + m_tune_vector_length = length; + } + inline int impl_vector_length() const { return m_vector_length; } + KOKKOS_DEPRECATED inline int vector_length() const { + return impl_vector_length(); + } inline int team_size() const { return m_team_size; } inline int league_size() const { return m_league_size; } inline size_t scratch_size(const int& level, int team_size_ = -1) const { @@ -415,11 +861,26 @@ class TeamPolicyInternal<Kokkos::Experimental::OpenMPTarget, Properties...> return Kokkos::Experimental::OpenMPTarget(); } + template <class... OtherProperties> + TeamPolicyInternal(const TeamPolicyInternal<OtherProperties...>& p) + : m_league_size(p.m_league_size), + m_team_size(p.m_team_size), + m_vector_length(p.m_vector_length), + m_team_alloc(p.m_team_alloc), + m_team_iter(p.m_team_iter), + m_team_scratch_size(p.m_team_scratch_size), + m_thread_scratch_size(p.m_thread_scratch_size), + m_tune_team_size(p.m_tune_team_size), + m_tune_vector_length(p.m_tune_vector_length), + m_chunk_size(p.m_chunk_size) {} + /** \brief Specify league size, request team size */ TeamPolicyInternal(typename traits::execution_space&, int league_size_request, int team_size_request, int vector_length_request = 1) : m_team_scratch_size{0, 0}, m_thread_scratch_size{0, 0}, + m_tune_team_size(false), + m_tune_vector_length(false), m_chunk_size(0) { init(league_size_request, team_size_request, vector_length_request); } @@ -430,15 +891,41 @@ class TeamPolicyInternal<Kokkos::Experimental::OpenMPTarget, Properties...> int vector_length_request = 1) : m_team_scratch_size{0, 0}, m_thread_scratch_size{0, 0}, + m_tune_team_size(true), + m_tune_vector_length(false), m_chunk_size(0) { - init(league_size_request, 256 / vector_length_request, + init(league_size_request, default_team_size / vector_length_request, vector_length_request); } + TeamPolicyInternal(typename traits::execution_space&, int league_size_request, + const Kokkos::AUTO_t& /* team_size_request */ + , + const Kokkos::AUTO_t& /* vector_length_request */) + : m_team_scratch_size{0, 0}, + m_thread_scratch_size{0, 0}, + m_tune_team_size(true), + m_tune_vector_length(true), + m_chunk_size(0) { + init(league_size_request, default_team_size, 1); + } + TeamPolicyInternal(typename traits::execution_space&, int league_size_request, + int team_size_request, + const Kokkos::AUTO_t& /* vector_length_request */) + : m_team_scratch_size{0, 0}, + m_thread_scratch_size{0, 0}, + m_tune_team_size(false), + m_tune_vector_length(true), + m_chunk_size(0) { + init(league_size_request, team_size_request, 1); + } + TeamPolicyInternal(int league_size_request, int team_size_request, int vector_length_request = 1) : m_team_scratch_size{0, 0}, m_thread_scratch_size{0, 0}, + m_tune_team_size(false), + m_tune_vector_length(false), m_chunk_size(0) { init(league_size_request, team_size_request, vector_length_request); } @@ -449,48 +936,42 @@ class TeamPolicyInternal<Kokkos::Experimental::OpenMPTarget, Properties...> int vector_length_request = 1) : m_team_scratch_size{0, 0}, m_thread_scratch_size{0, 0}, + m_tune_team_size(true), + m_tune_vector_length(false), m_chunk_size(0) { - init(league_size_request, 256 / vector_length_request, + init(league_size_request, default_team_size / vector_length_request, vector_length_request); } + TeamPolicyInternal(int league_size_request, + const Kokkos::AUTO_t& /* team_size_request */ + , + const Kokkos::AUTO_t& /* vector_length_request */) + : m_team_scratch_size{0, 0}, + m_thread_scratch_size{0, 0}, + m_tune_team_size(true), + m_tune_vector_length(true), + m_chunk_size(0) { + init(league_size_request, default_team_size, 1); + } + TeamPolicyInternal(int league_size_request, int team_size_request, + const Kokkos::AUTO_t& /* vector_length_request */) + : m_team_scratch_size{0, 0}, + m_thread_scratch_size{0, 0}, + m_tune_team_size(false), + m_tune_vector_length(true), + m_chunk_size(0) { + init(league_size_request, team_size_request, 1); + } + inline static size_t vector_length_max() { + return 32; /* TODO: this is bad. Need logic that is compiler and backend + aware */ + } inline int team_alloc() const { return m_team_alloc; } inline int team_iter() const { return m_team_iter; } inline int chunk_size() const { return m_chunk_size; } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - /** \brief set chunk_size to a discrete value*/ - inline TeamPolicyInternal set_chunk_size( - typename traits::index_type chunk_size_) const { - TeamPolicyInternal p = *this; - p.m_chunk_size = chunk_size_; - return p; - } - - inline TeamPolicyInternal set_scratch_size( - const int& level, const PerTeamValue& per_team) const { - TeamPolicyInternal p = *this; - p.m_team_scratch_size[level] = per_team.value; - return p; - } - - inline TeamPolicyInternal set_scratch_size( - const int& level, const PerThreadValue& per_thread) const { - TeamPolicyInternal p = *this; - p.m_thread_scratch_size[level] = per_thread.value; - return p; - } - - inline TeamPolicyInternal set_scratch_size( - const int& level, const PerTeamValue& per_team, - const PerThreadValue& per_thread) const { - TeamPolicyInternal p = *this; - p.m_team_scratch_size[level] = per_team.value; - p.m_thread_scratch_size[level] = per_thread.value; - return p; - } -#else /** \brief set chunk_size to a discrete value*/ inline TeamPolicyInternal& set_chunk_size( typename traits::index_type chunk_size_) { @@ -523,43 +1004,6 @@ class TeamPolicyInternal<Kokkos::Experimental::OpenMPTarget, Properties...> m_thread_scratch_size[level] = per_thread.value; return *this; } -#endif - - protected: -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - /** \brief set chunk_size to a discrete value*/ - inline TeamPolicyInternal internal_set_chunk_size( - typename traits::index_type chunk_size_) { - m_chunk_size = chunk_size_; - return *this; - } - - /** \brief set per team scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal internal_set_scratch_size( - const int& level, const PerTeamValue& per_team) { - m_team_scratch_size[level] = per_team.value; - return *this; - } - - /** \brief set per thread scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal internal_set_scratch_size( - const int& level, const PerThreadValue& per_thread) { - m_thread_scratch_size[level] = per_thread.value; - return *this; - } - - /** \brief set per thread and per team scratch size for a specific level of - * the scratch hierarchy */ - inline TeamPolicyInternal internal_set_scratch_size( - const int& level, const PerTeamValue& per_team, - const PerThreadValue& per_thread) { - m_team_scratch_size[level] = per_team.value; - m_thread_scratch_size[level] = per_thread.value; - return *this; - } -#endif private: /** \brief finalize chunk_size if it was set to AUTO*/ @@ -586,7 +1030,7 @@ class TeamPolicyInternal<Kokkos::Experimental::OpenMPTarget, Properties...> } public: - typedef Impl::OpenMPTargetExecTeamMember member_type; + using member_type = Impl::OpenMPTargetExecTeamMember; }; } // namespace Impl @@ -630,6 +1074,24 @@ ThreadVectorRange(const Impl::OpenMPTargetExecTeamMember& thread, iType, Impl::OpenMPTargetExecTeamMember>(thread, arg_begin, arg_end); } +template <typename iType> +KOKKOS_INLINE_FUNCTION Impl::TeamVectorRangeBoundariesStruct< + iType, Impl::OpenMPTargetExecTeamMember> +TeamVectorRange(const Impl::OpenMPTargetExecTeamMember& thread, + const iType& count) { + return Impl::TeamVectorRangeBoundariesStruct< + iType, Impl::OpenMPTargetExecTeamMember>(thread, count); +} + +template <typename iType> +KOKKOS_INLINE_FUNCTION Impl::TeamVectorRangeBoundariesStruct< + iType, Impl::OpenMPTargetExecTeamMember> +TeamVectorRange(const Impl::OpenMPTargetExecTeamMember& thread, + const iType& arg_begin, const iType& arg_end) { + return Impl::TeamVectorRangeBoundariesStruct< + iType, Impl::OpenMPTargetExecTeamMember>(thread, arg_begin, arg_end); +} + KOKKOS_INLINE_FUNCTION Impl::ThreadSingleStruct<Impl::OpenMPTargetExecTeamMember> PerTeam( const Impl::OpenMPTargetExecTeamMember& thread) { @@ -649,39 +1111,41 @@ namespace Kokkos { * i=0..N-1. * * The range i=0..N-1 is mapped to all threads of the the calling thread team. - * This functionality requires C++11 support.*/ + */ template <typename iType, class Lambda> KOKKOS_INLINE_FUNCTION void parallel_for( const Impl::TeamThreadRangeBoundariesStruct< iType, Impl::OpenMPTargetExecTeamMember>& loop_boundaries, const Lambda& lambda) { - for (iType i = loop_boundaries.start; i < loop_boundaries.end; - i += loop_boundaries.increment) - lambda(i); +#pragma omp for nowait schedule(static, 1) + for (iType i = loop_boundaries.start; i < loop_boundaries.end; i++) lambda(i); } /** \brief Inter-thread vector parallel_reduce. Executes lambda(iType i, * ValueType & val) for each i=0..N-1. * * The range i=0..N-1 is mapped to all threads of the the calling thread team - * and a summation of val is performed and put into result. This functionality - * requires C++11 support.*/ + * and a summation of val is performed and put into result. + */ template <typename iType, class Lambda, typename ValueType> KOKKOS_INLINE_FUNCTION void parallel_reduce( const Impl::TeamThreadRangeBoundariesStruct< iType, Impl::OpenMPTargetExecTeamMember>& loop_boundaries, const Lambda& lambda, ValueType& result) { - result = ValueType(); + ValueType* tmp_scratch = + static_cast<ValueType*>(loop_boundaries.team.impl_reduce_scratch()); +#pragma omp barrier + tmp_scratch[0] = ValueType(); +#pragma omp barrier - for (iType i = loop_boundaries.start; i < loop_boundaries.end; - i += loop_boundaries.increment) { +#pragma omp for reduction(+ : tmp_scratch[:1]) schedule(static, 1) + for (iType i = loop_boundaries.start; i < loop_boundaries.end; i++) { ValueType tmp = ValueType(); lambda(i, tmp); - result += tmp; + tmp_scratch[0] += tmp; } - // result = - // loop_boundaries.thread.team_reduce(result,Impl::JoinAdd<ValueType>()); + result = tmp_scratch[0]; } /** \brief Intra-thread vector parallel_reduce. Executes lambda(iType i, @@ -692,7 +1156,8 @@ KOKKOS_INLINE_FUNCTION void parallel_reduce( * ValueType& update) and put into init_result. The input value of init_result * is used as initializer for temporary variables of ValueType. Therefore the * input value should be the neutral element with respect to the join operation - * (e.g. '0 for +-' or '1 for *'). This functionality requires C++11 support.*/ + * (e.g. '0 for +-' or '1 for *'). + */ template <typename iType, class Lambda, typename ValueType, class JoinType> KOKKOS_INLINE_FUNCTION void parallel_reduce( const Impl::TeamThreadRangeBoundariesStruct< @@ -710,6 +1175,46 @@ KOKKOS_INLINE_FUNCTION void parallel_reduce( // init_result = loop_boundaries.thread.team_reduce(result,join); } +// This is largely the same code as in HIP and CUDA except for the member name +template <typename iType, class FunctorType> +KOKKOS_INLINE_FUNCTION void parallel_scan( + const Impl::TeamThreadRangeBoundariesStruct< + iType, Impl::OpenMPTargetExecTeamMember>& loop_bounds, + const FunctorType& lambda) { + // Extract value_type from lambda + using value_type = typename Kokkos::Impl::FunctorAnalysis< + Kokkos::Impl::FunctorPatternInterface::SCAN, void, + FunctorType>::value_type; + + const auto start = loop_bounds.start; + const auto end = loop_bounds.end; + // Note this thing is called .member in the CUDA specialization of + // TeamThreadRangeBoundariesStruct + auto& member = loop_bounds.team; + const auto team_size = member.team_size(); + const auto team_rank = member.team_rank(); + const auto nchunk = (end - start + team_size - 1) / team_size; + value_type accum = 0; + // each team has to process one or more chunks of the prefix scan + for (iType i = 0; i < nchunk; ++i) { + auto ii = start + i * team_size + team_rank; + // local accumulation for this chunk + value_type local_accum = 0; + // user updates value with prefix value + if (ii < loop_bounds.end) lambda(ii, local_accum, false); + // perform team scan + local_accum = member.team_scan(local_accum); + // add this blocks accum to total accumulation + auto val = accum + local_accum; + // user updates their data with total accumulation + if (ii < loop_bounds.end) lambda(ii, val, true); + // the last value needs to be propogated to next chunk + if (team_rank == team_size - 1) accum = val; + // broadcast last value to rest of the team + member.team_broadcast(accum, team_size - 1); + } +} + } // namespace Kokkos namespace Kokkos { @@ -717,35 +1222,35 @@ namespace Kokkos { * i=0..N-1. * * The range i=0..N-1 is mapped to all vector lanes of the the calling thread. - * This functionality requires C++11 support.*/ + */ template <typename iType, class Lambda> KOKKOS_INLINE_FUNCTION void parallel_for( const Impl::ThreadVectorRangeBoundariesStruct< iType, Impl::OpenMPTargetExecTeamMember>& loop_boundaries, const Lambda& lambda) { - for (iType i = loop_boundaries.start; i < loop_boundaries.end; - i += loop_boundaries.increment) - lambda(i); +#pragma omp simd + for (iType i = loop_boundaries.start; i < loop_boundaries.end; i++) lambda(i); } /** \brief Intra-thread vector parallel_reduce. Executes lambda(iType i, * ValueType & val) for each i=0..N-1. * * The range i=0..N-1 is mapped to all vector lanes of the the calling thread - * and a summation of val is performed and put into result. This functionality - * requires C++11 support.*/ + * and a summation of val is performed and put into result. + */ template <typename iType, class Lambda, typename ValueType> KOKKOS_INLINE_FUNCTION void parallel_reduce( const Impl::ThreadVectorRangeBoundariesStruct< iType, Impl::OpenMPTargetExecTeamMember>& loop_boundaries, const Lambda& lambda, ValueType& result) { - result = ValueType(); - for (iType i = loop_boundaries.start; i < loop_boundaries.end; - i += loop_boundaries.increment) { + ValueType vector_reduce = ValueType(); +#pragma omp simd reduction(+ : vector_reduce) + for (iType i = loop_boundaries.start; i < loop_boundaries.end; i++) { ValueType tmp = ValueType(); lambda(i, tmp); - result += tmp; + vector_reduce += tmp; } + result = vector_reduce; } /** \brief Intra-thread vector parallel_reduce. Executes lambda(iType i, @@ -756,7 +1261,8 @@ KOKKOS_INLINE_FUNCTION void parallel_reduce( * ValueType& update) and put into init_result. The input value of init_result * is used as initializer for temporary variables of ValueType. Therefore the * input value should be the neutral element with respect to the join operation - * (e.g. '0 for +-' or '1 for *'). This functionality requires C++11 support.*/ + * (e.g. '0 for +-' or '1 for *'). + */ template <typename iType, class Lambda, typename ValueType, class JoinType> KOKKOS_INLINE_FUNCTION void parallel_reduce( const Impl::ThreadVectorRangeBoundariesStruct< @@ -766,8 +1272,7 @@ KOKKOS_INLINE_FUNCTION void parallel_reduce( #ifdef KOKKOS_ENABLE_PRAGMA_IVDEP #pragma ivdep #endif - for (iType i = loop_boundaries.start; i < loop_boundaries.end; - i += loop_boundaries.increment) { + for (iType i = loop_boundaries.start; i < loop_boundaries.end; i++) { ValueType tmp = ValueType(); lambda(i, tmp); join(result, tmp); @@ -785,14 +1290,15 @@ KOKKOS_INLINE_FUNCTION void parallel_reduce( * needs to be added to val no matter whether final==true or not. In a serial * execution (i.e. team_size==1) the operator is only called once with * final==true. Scan_val will be set to the final sum value over all vector - * lanes. This functionality requires C++11 support.*/ + * lanes. + */ template <typename iType, class FunctorType> KOKKOS_INLINE_FUNCTION void parallel_scan( const Impl::ThreadVectorRangeBoundariesStruct< iType, Impl::OpenMPTargetExecTeamMember>& loop_boundaries, const FunctorType& lambda) { - typedef Kokkos::Impl::FunctorValueTraits<FunctorType, void> ValueTraits; - typedef typename ValueTraits::value_type value_type; + using ValueTraits = Kokkos::Impl::FunctorValueTraits<FunctorType, void>; + using value_type = typename ValueTraits::value_type; value_type scan_val = value_type(); @@ -807,12 +1313,54 @@ KOKKOS_INLINE_FUNCTION void parallel_scan( } // namespace Kokkos +namespace Kokkos { +/** \brief Intra-team vector parallel_for. Executes lambda(iType i) for each + * i=0..N-1. + * + * The range i=0..N-1 is mapped to all vector lanes of the the calling team. + */ +template <typename iType, class Lambda> +KOKKOS_INLINE_FUNCTION void parallel_for( + const Impl::TeamVectorRangeBoundariesStruct< + iType, Impl::OpenMPTargetExecTeamMember>& loop_boundaries, + const Lambda& lambda) { +#pragma omp for simd + for (iType i = loop_boundaries.start; i < loop_boundaries.end; i++) lambda(i); +} + +/** \brief Intra-team vector parallel_reduce. Executes lambda(iType i, + * ValueType & val) for each i=0..N-1. + * + * The range i=0..N-1 is mapped to all vector lanes of the the calling team + * and a summation of val is performed and put into result. + */ +template <typename iType, class Lambda, typename ValueType> +KOKKOS_INLINE_FUNCTION void parallel_reduce( + const Impl::TeamVectorRangeBoundariesStruct< + iType, Impl::OpenMPTargetExecTeamMember>& loop_boundaries, + const Lambda& lambda, ValueType& result) { + ValueType* tmp_scratch = + static_cast<ValueType*>(loop_boundaries.team.impl_reduce_scratch()); +#pragma omp barrier + tmp_scratch[0] = ValueType(); +#pragma omp barrier + +#pragma omp for simd reduction(+ : tmp_scratch[:1]) + for (iType i = loop_boundaries.start; i < loop_boundaries.end; i++) { + ValueType tmp = ValueType(); + lambda(i, tmp); + tmp_scratch[0] += tmp; + } + result = tmp_scratch[0]; +} +} // namespace Kokkos + namespace Kokkos { template <class FunctorType> KOKKOS_INLINE_FUNCTION void single( const Impl::VectorSingleStruct<Impl::OpenMPTargetExecTeamMember>& - single_struct, + /*single_struct*/, const FunctorType& lambda) { lambda(); } @@ -828,7 +1376,7 @@ KOKKOS_INLINE_FUNCTION void single( template <class FunctorType, class ValueType> KOKKOS_INLINE_FUNCTION void single( const Impl::VectorSingleStruct<Impl::OpenMPTargetExecTeamMember>& - single_struct, + /*single_struct*/, const FunctorType& lambda, ValueType& val) { lambda(val); } diff --git a/packages/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Instance.cpp b/packages/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Instance.cpp index 011bb1c8e..2d68a34c9 100644 --- a/packages/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Instance.cpp +++ b/packages/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Instance.cpp @@ -1,13 +1,65 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include <Kokkos_Macros.hpp> + +#if defined(KOKKOS_ENABLE_OPENMPTARGET) && defined(_OPENMP) + +#include <Kokkos_OpenMPTarget.hpp> #include <OpenMPTarget/Kokkos_OpenMPTarget_Instance.hpp> +#include <sstream> + namespace Kokkos { namespace Experimental { namespace Impl { void OpenMPTargetInternal::fence() {} int OpenMPTargetInternal::concurrency() { return 128000; } const char* OpenMPTargetInternal::name() { return "OpenMPTarget"; } -void OpenMPTargetInternal::print_configuration(std::ostream& stream, +void OpenMPTargetInternal::print_configuration(std::ostream& /*stream*/, const bool) { + // FIXME_OPENMPTARGET printf("Using OpenMPTarget\n"); } @@ -21,6 +73,7 @@ OpenMPTargetInternal* OpenMPTargetInternal::impl_singleton() { static OpenMPTargetInternal self; return &self; } + } // Namespace Impl OpenMPTarget::OpenMPTarget() @@ -47,4 +100,53 @@ int OpenMPTarget::impl_is_initialized() { return Impl::OpenMPTargetInternal::impl_singleton()->impl_is_initialized(); } } // Namespace Experimental + +namespace Impl { +int g_openmptarget_space_factory_initialized = + Kokkos::Impl::initialize_space_factory<OpenMPTargetSpaceInitializer>( + "160_OpenMPTarget"); + +void OpenMPTargetSpaceInitializer::initialize(const InitArguments& args) { + // Prevent "unused variable" warning for 'args' input struct. If + // Serial::initialize() ever needs to take arguments from the input + // struct, you may remove this line of code. + (void)args; + + if (std::is_same<Kokkos::Experimental::OpenMPTarget, + Kokkos::DefaultExecutionSpace>::value) { + Kokkos::Experimental::OpenMPTarget().impl_initialize(); + // std::cout << "Kokkos::initialize() fyi: OpenMP enabled and initialized" + // << std::endl ; + } else { + // std::cout << "Kokkos::initialize() fyi: OpenMP enabled but not + // initialized" << std::endl ; + } +} + +void OpenMPTargetSpaceInitializer::finalize(const bool all_spaces) { + if (std::is_same<Kokkos::Experimental::OpenMPTarget, + Kokkos::DefaultExecutionSpace>::value || + all_spaces) { + if (Kokkos::Experimental::OpenMPTarget().impl_is_initialized()) + Kokkos::Experimental::OpenMPTarget().impl_finalize(); + } +} + +void OpenMPTargetSpaceInitializer::fence() { + Kokkos::Experimental::OpenMPTarget::fence(); +} + +void OpenMPTargetSpaceInitializer::print_configuration(std::ostream& msg, + const bool detail) { + msg << "OpenMPTarget Execution Space:" << std::endl; + msg << " KOKKOS_ENABLE_OPENMPTARGET: "; + msg << "yes" << std::endl; + + msg << "\nOpenMPTarget Runtime Configuration:" << std::endl; + Kokkos::Experimental::OpenMPTarget().print_configuration(msg, detail); +} + +} // namespace Impl } // Namespace Kokkos + +#endif // defined(KOKKOS_ENABLE_OPENMPTARGET) && defined(_OPENMP) diff --git a/packages/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Instance.hpp b/packages/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Instance.hpp index 2087226d7..a1caf90c1 100644 --- a/packages/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Instance.hpp +++ b/packages/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Instance.hpp @@ -1,4 +1,51 @@ -#include <Kokkos_OpenMPTarget.hpp> +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_OPENMPTARGET_INSTANCE_HPP +#define KOKKOS_OPENMPTARGET_INSTANCE_HPP + +#include <Kokkos_Core.hpp> namespace Kokkos { namespace Experimental { @@ -38,3 +85,5 @@ class OpenMPTargetInternal { } // Namespace Impl } // Namespace Experimental } // Namespace Kokkos + +#endif // KOKKOS_OPENMPTARGET_INSTANCE_HPP diff --git a/packages/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Parallel.hpp b/packages/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Parallel.hpp index d5b62f60b..862a63672 100644 --- a/packages/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Parallel.hpp +++ b/packages/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Parallel.hpp @@ -46,382 +46,11 @@ #define KOKKOS_OPENMPTARGET_PARALLEL_HPP #include <omp.h> -#include <iostream> +#include <sstream> #include <Kokkos_Parallel.hpp> #include <OpenMPTarget/Kokkos_OpenMPTarget_Exec.hpp> #include <impl/Kokkos_FunctorAdapter.hpp> -//---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- - -namespace Kokkos { -namespace Impl { - -template <class Reducer> -struct OpenMPTargetReducerWrapper { - typedef typename Reducer::value_type value_type; - - KOKKOS_INLINE_FUNCTION - static void join(value_type&, const value_type&) { - printf( - "Using a generic unknown Reducer for the OpenMPTarget backend is not " - "implemented."); - } - - KOKKOS_INLINE_FUNCTION - static void join(volatile value_type&, const volatile value_type&) { - printf( - "Using a generic unknown Reducer for the OpenMPTarget backend is not " - "implemented."); - } - - KOKKOS_INLINE_FUNCTION - static void init(value_type&) { - printf( - "Using a generic unknown Reducer for the OpenMPTarget backend is not " - "implemented."); - } -}; - -template <class Scalar, class Space> -struct OpenMPTargetReducerWrapper<Sum<Scalar, Space>> { - public: - // Required - typedef typename std::remove_cv<Scalar>::type value_type; - - // Required - KOKKOS_INLINE_FUNCTION - static void join(value_type& dest, const value_type& src) { dest += src; } - - KOKKOS_INLINE_FUNCTION - static void join(volatile value_type& dest, const volatile value_type& src) { - dest += src; - } - - KOKKOS_INLINE_FUNCTION - static void init(value_type& val) { - val = reduction_identity<value_type>::sum(); - } -}; - -template <class Scalar, class Space> -struct OpenMPTargetReducerWrapper<Prod<Scalar, Space>> { - public: - // Required - typedef typename std::remove_cv<Scalar>::type value_type; - - // Required - KOKKOS_INLINE_FUNCTION - static void join(value_type& dest, const value_type& src) { dest *= src; } - - KOKKOS_INLINE_FUNCTION - static void join(volatile value_type& dest, const volatile value_type& src) { - dest *= src; - } - - KOKKOS_INLINE_FUNCTION - static void init(value_type& val) { - val = reduction_identity<value_type>::prod(); - } -}; - -template <class Scalar, class Space> -struct OpenMPTargetReducerWrapper<Min<Scalar, Space>> { - public: - // Required - typedef typename std::remove_cv<Scalar>::type value_type; - - // Required - KOKKOS_INLINE_FUNCTION - static void join(value_type& dest, const value_type& src) { - if (src < dest) dest = src; - } - - KOKKOS_INLINE_FUNCTION - static void join(volatile value_type& dest, const volatile value_type& src) { - if (src < dest) dest = src; - } - - KOKKOS_INLINE_FUNCTION - static void init(value_type& val) { - val = reduction_identity<value_type>::min(); - } -}; - -template <class Scalar, class Space> -struct OpenMPTargetReducerWrapper<Max<Scalar, Space>> { - public: - // Required - typedef typename std::remove_cv<Scalar>::type value_type; - - // Required - KOKKOS_INLINE_FUNCTION - static void join(value_type& dest, const value_type& src) { - if (src > dest) dest = src; - } - - KOKKOS_INLINE_FUNCTION - static void join(volatile value_type& dest, const volatile value_type& src) { - if (src > dest) dest = src; - } - - // Required - KOKKOS_INLINE_FUNCTION - static void init(value_type& val) { - val = reduction_identity<value_type>::max(); - } -}; - -template <class Scalar, class Space> -struct OpenMPTargetReducerWrapper<LAnd<Scalar, Space>> { - public: - // Required - typedef typename std::remove_cv<Scalar>::type value_type; - - KOKKOS_INLINE_FUNCTION - static void join(value_type& dest, const value_type& src) { - dest = dest && src; - } - - KOKKOS_INLINE_FUNCTION - static void join(volatile value_type& dest, const volatile value_type& src) { - dest = dest && src; - } - - KOKKOS_INLINE_FUNCTION - static void init(value_type& val) { - val = reduction_identity<value_type>::land(); - } -}; - -template <class Scalar, class Space> -struct OpenMPTargetReducerWrapper<LOr<Scalar, Space>> { - public: - // Required - typedef typename std::remove_cv<Scalar>::type value_type; - - typedef Kokkos::View<value_type, Space> result_view_type; - - // Required - KOKKOS_INLINE_FUNCTION - static void join(value_type& dest, const value_type& src) { - dest = dest || src; - } - - KOKKOS_INLINE_FUNCTION - static void join(volatile value_type& dest, const volatile value_type& src) { - dest = dest || src; - } - - KOKKOS_INLINE_FUNCTION - static void init(value_type& val) { - val = reduction_identity<value_type>::lor(); - } -}; - -template <class Scalar, class Space> -struct OpenMPTargetReducerWrapper<BAnd<Scalar, Space>> { - public: - // Required - typedef typename std::remove_cv<Scalar>::type value_type; - - // Required - KOKKOS_INLINE_FUNCTION - static void join(value_type& dest, const value_type& src) { - dest = dest & src; - } - - KOKKOS_INLINE_FUNCTION - static void join(volatile value_type& dest, const volatile value_type& src) { - dest = dest & src; - } - - KOKKOS_INLINE_FUNCTION - static void init(value_type& val) { - val = reduction_identity<value_type>::band(); - } -}; - -template <class Scalar, class Space> -struct OpenMPTargetReducerWrapper<BOr<Scalar, Space>> { - public: - // Required - typedef typename std::remove_cv<Scalar>::type value_type; - - // Required - KOKKOS_INLINE_FUNCTION - static void join(value_type& dest, const value_type& src) { - dest = dest | src; - } - - KOKKOS_INLINE_FUNCTION - static void join(volatile value_type& dest, const volatile value_type& src) { - dest = dest | src; - } - - KOKKOS_INLINE_FUNCTION - static void init(value_type& val) { - val = reduction_identity<value_type>::bor(); - } -}; - -template <class Scalar, class Index, class Space> -struct OpenMPTargetReducerWrapper<MinLoc<Scalar, Index, Space>> { - private: - typedef typename std::remove_cv<Scalar>::type scalar_type; - typedef typename std::remove_cv<Index>::type index_type; - - public: - // Required - typedef ValLocScalar<scalar_type, index_type> value_type; - - // Required - KOKKOS_INLINE_FUNCTION - static void join(value_type& dest, const value_type& src) { - if (src.val < dest.val) dest = src; - } - - KOKKOS_INLINE_FUNCTION - static void join(volatile value_type& dest, const volatile value_type& src) { - if (src.val < dest.val) dest = src; - } - - KOKKOS_INLINE_FUNCTION - static void init(value_type& val) { - val.val = reduction_identity<scalar_type>::min(); - val.loc = reduction_identity<index_type>::min(); - } -}; - -template <class Scalar, class Index, class Space> -struct OpenMPTargetReducerWrapper<MaxLoc<Scalar, Index, Space>> { - private: - typedef typename std::remove_cv<Scalar>::type scalar_type; - typedef typename std::remove_cv<Index>::type index_type; - - public: - // Required - typedef ValLocScalar<scalar_type, index_type> value_type; - - KOKKOS_INLINE_FUNCTION - static void join(value_type& dest, const value_type& src) { - if (src.val > dest.val) dest = src; - } - - KOKKOS_INLINE_FUNCTION - static void join(volatile value_type& dest, const volatile value_type& src) { - if (src.val > dest.val) dest = src; - } - - KOKKOS_INLINE_FUNCTION - static void init(value_type& val) { - val.val = reduction_identity<scalar_type>::max(); - val.loc = reduction_identity<index_type>::min(); - } -}; - -template <class Scalar, class Space> -struct OpenMPTargetReducerWrapper<MinMax<Scalar, Space>> { - private: - typedef typename std::remove_cv<Scalar>::type scalar_type; - - public: - // Required - typedef MinMaxScalar<scalar_type> value_type; - - // Required - KOKKOS_INLINE_FUNCTION - static void join(value_type& dest, const value_type& src) { - if (src.min_val < dest.min_val) { - dest.min_val = src.min_val; - } - if (src.max_val > dest.max_val) { - dest.max_val = src.max_val; - } - } - - KOKKOS_INLINE_FUNCTION - static void join(volatile value_type& dest, const volatile value_type& src) { - if (src.min_val < dest.min_val) { - dest.min_val = src.min_val; - } - if (src.max_val > dest.max_val) { - dest.max_val = src.max_val; - } - } - - KOKKOS_INLINE_FUNCTION - static void init(value_type& val) { - val.max_val = reduction_identity<scalar_type>::max(); - val.min_val = reduction_identity<scalar_type>::min(); - } -}; - -template <class Scalar, class Index, class Space> -struct OpenMPTargetReducerWrapper<MinMaxLoc<Scalar, Index, Space>> { - private: - typedef typename std::remove_cv<Scalar>::type scalar_type; - typedef typename std::remove_cv<Index>::type index_type; - - public: - // Required - typedef MinMaxLocScalar<scalar_type, index_type> value_type; - - // Required - KOKKOS_INLINE_FUNCTION - static void join(value_type& dest, const value_type& src) { - if (src.min_val < dest.min_val) { - dest.min_val = src.min_val; - dest.min_loc = src.min_loc; - } - if (src.max_val > dest.max_val) { - dest.max_val = src.max_val; - dest.max_loc = src.max_loc; - } - } - - KOKKOS_INLINE_FUNCTION - static void join(volatile value_type& dest, const volatile value_type& src) { - if (src.min_val < dest.min_val) { - dest.min_val = src.min_val; - dest.min_loc = src.min_loc; - } - if (src.max_val > dest.max_val) { - dest.max_val = src.max_val; - dest.max_loc = src.max_loc; - } - } - - KOKKOS_INLINE_FUNCTION - static void init(value_type& val) { - val.max_val = reduction_identity<scalar_type>::max(); - val.min_val = reduction_identity<scalar_type>::min(); - val.max_loc = reduction_identity<index_type>::min(); - val.min_loc = reduction_identity<index_type>::min(); - } -}; -/* -template<class ReducerType> -class OpenMPTargetReducerWrapper { - public: - const ReducerType& reducer; - typedef typename ReducerType::value_type value_type; - value_type& value; - - KOKKOS_INLINE_FUNCTION - void join(const value_type& upd) { - reducer.join(value,upd); - } - - KOKKOS_INLINE_FUNCTION - void init(const value_type& upd) { - reducer.init(value,upd); - } -};*/ - -} // namespace Impl -} // namespace Kokkos - namespace Kokkos { namespace Impl { @@ -429,10 +58,10 @@ template <class FunctorType, class... Traits> class ParallelFor<FunctorType, Kokkos::RangePolicy<Traits...>, Kokkos::Experimental::OpenMPTarget> { private: - typedef Kokkos::RangePolicy<Traits...> Policy; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::WorkRange WorkRange; - typedef typename Policy::member_type Member; + using Policy = Kokkos::RangePolicy<Traits...>; + using WorkTag = typename Policy::work_tag; + using WorkRange = typename Policy::WorkRange; + using Member = typename Policy::member_type; const FunctorType m_functor; const Policy m_policy; @@ -461,15 +90,15 @@ class ParallelFor<FunctorType, Kokkos::RangePolicy<Traits...>, "Kokkos::Experimental::OpenMPTarget parallel_for"); OpenMPTargetExec::verify_initialized( "Kokkos::Experimental::OpenMPTarget parallel_for"); - const typename Policy::member_type begin = m_policy.begin(); - const typename Policy::member_type end = m_policy.end(); + const auto begin = m_policy.begin(); + const auto end = m_policy.end(); if (end <= begin) return; FunctorType a_functor(m_functor); #pragma omp target teams distribute parallel for map(to : a_functor) - for (int i = begin; i < end; i++) a_functor(i); + for (auto i = begin; i < end; i++) a_functor(i); } template <class TagType> @@ -479,8 +108,8 @@ class ParallelFor<FunctorType, Kokkos::RangePolicy<Traits...>, "Kokkos::Experimental::OpenMPTarget parallel_for"); OpenMPTargetExec::verify_initialized( "Kokkos::Experimental::OpenMPTarget parallel_for"); - const typename Policy::member_type begin = m_policy.begin(); - const typename Policy::member_type end = m_policy.end(); + const auto begin = m_policy.begin(); + const auto end = m_policy.end(); if (end <= begin) return; @@ -488,7 +117,7 @@ class ParallelFor<FunctorType, Kokkos::RangePolicy<Traits...>, #pragma omp target teams distribute parallel for num_threads(128) \ map(to \ : a_functor) - for (int i = begin; i < end; i++) a_functor(TagType(), i); + for (auto i = begin; i < end; i++) a_functor(TagType(), i); } inline ParallelFor(const FunctorType& arg_functor, Policy arg_policy) @@ -508,10 +137,13 @@ template <class FunctorType, class PolicyType, class ReducerType, class PointerType, class ValueType, int FunctorHasJoin, int UseReducerType> struct ParallelReduceSpecialize { - static inline void execute(const FunctorType& f, const PolicyType& p, - PointerType result_ptr) { - printf("Error: Invalid Specialization %i %i\n", FunctorHasJoin, - UseReducerType); + static inline void execute(const FunctorType& /*f*/, const PolicyType& /*p*/, + PointerType /*result_ptr*/) { + std::stringstream error_message; + error_message << "Error: Invalid Specialization " << FunctorHasJoin << ' ' + << UseReducerType << '\n'; + // FIXME_OPENMPTARGET + OpenMPTarget_abort(error_message.str().c_str()); } }; @@ -519,7 +151,7 @@ template <class FunctorType, class ReducerType, class PointerType, class ValueType, class... PolicyArgs> struct ParallelReduceSpecialize<FunctorType, Kokkos::RangePolicy<PolicyArgs...>, ReducerType, PointerType, ValueType, 0, 0> { - typedef Kokkos::RangePolicy<PolicyArgs...> PolicyType; + using PolicyType = Kokkos::RangePolicy<PolicyArgs...>; template <class TagType> inline static typename std::enable_if<std::is_same<TagType, void>::value>::type @@ -529,15 +161,15 @@ struct ParallelReduceSpecialize<FunctorType, Kokkos::RangePolicy<PolicyArgs...>, "Kokkos::Experimental::OpenMPTarget parallel_for"); OpenMPTargetExec::verify_initialized( "Kokkos::Experimental::OpenMPTarget parallel_for"); - const typename PolicyType::member_type begin = p.begin(); - const typename PolicyType::member_type end = p.end(); + const auto begin = p.begin(); + const auto end = p.end(); if (end <= begin) return; ValueType result = ValueType(); #pragma omp target teams distribute parallel for num_teams(512) \ map(to:f) map(tofrom:result) reduction(+: result) - for (int i = begin; i < end; i++) f(i, result); + for (auto i = begin; i < end; i++) f(i, result); *result_ptr = result; } @@ -551,8 +183,8 @@ struct ParallelReduceSpecialize<FunctorType, Kokkos::RangePolicy<PolicyArgs...>, "Kokkos::Experimental::OpenMPTarget parallel_for"); OpenMPTargetExec::verify_initialized( "Kokkos::Experimental::OpenMPTarget parallel_for"); - const typename PolicyType::member_type begin = p.begin(); - const typename PolicyType::member_type end = p.end(); + const auto begin = p.begin(); + const auto end = p.end(); if (end <= begin) return; @@ -560,7 +192,7 @@ struct ParallelReduceSpecialize<FunctorType, Kokkos::RangePolicy<PolicyArgs...>, #pragma omp target teams distribute parallel for \ num_teams(512) map(to:f) map(tofrom: result) \ reduction(+: result) - for (int i = begin; i < end; i++) f(TagType(), i, result); + for (auto i = begin; i < end; i++) f(TagType(), i, result); *result_ptr = result; } @@ -600,9 +232,8 @@ struct ParallelReduceSpecialize<FunctorType, PolicyType, ReducerType, // clang-format off #pragma omp target teams distribute parallel for num_teams(512) map(to: f) \ map(tofrom: result) reduction(custom: result) - for (int i = begin; i < end; i++) f(i, result); + for (auto i = begin; i < end; i++) f(i, result); // clang-format on - *result_ptr = result; } @@ -626,8 +257,8 @@ struct ParallelReduceSpecialize<FunctorType, PolicyType, ReducerType, // clang-format off #pragma omp target teams distribute parallel for num_teams(512) map(to: f) \ map(tofrom: result) reduction(custom: result) - for (int i = begin; i < end; i++) f(TagType(), i, result); -//clang format on + for (auto i = begin; i < end; i++) f(TagType(), i, result); + // clang-format on *result_ptr = result; } @@ -642,37 +273,37 @@ template <class FunctorType, class ReducerType, class... Traits> class ParallelReduce<FunctorType, Kokkos::RangePolicy<Traits...>, ReducerType, Kokkos::Experimental::OpenMPTarget> { private: - typedef Kokkos::RangePolicy<Traits...> Policy; + using Policy = Kokkos::RangePolicy<Traits...>; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::WorkRange WorkRange; - typedef typename Policy::member_type Member; + using WorkTag = typename Policy::work_tag; + using WorkRange = typename Policy::WorkRange; + using Member = typename Policy::member_type; - typedef Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, - FunctorType, ReducerType> - ReducerConditional; - typedef typename ReducerConditional::type ReducerTypeFwd; - typedef + using ReducerConditional = + Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, + FunctorType, ReducerType>; + using ReducerTypeFwd = typename ReducerConditional::type; + using WorkTagFwd = typename Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, - WorkTag, void>::type WorkTagFwd; + WorkTag, void>::type; // Static Assert WorkTag void if ReducerType not InvalidType - typedef Kokkos::Impl::FunctorValueTraits<ReducerTypeFwd, WorkTagFwd> - ValueTraits; - typedef Kokkos::Impl::FunctorValueInit<ReducerTypeFwd, WorkTagFwd> ValueInit; - typedef Kokkos::Impl::FunctorValueJoin<ReducerTypeFwd, WorkTagFwd> ValueJoin; + using ValueTraits = + Kokkos::Impl::FunctorValueTraits<ReducerTypeFwd, WorkTagFwd>; + using ValueInit = Kokkos::Impl::FunctorValueInit<ReducerTypeFwd, WorkTagFwd>; + using ValueJoin = Kokkos::Impl::FunctorValueJoin<ReducerTypeFwd, WorkTagFwd>; enum { HasJoin = ReduceFunctorHasJoin<FunctorType>::value }; enum { UseReducer = is_reducer_type<ReducerType>::value }; - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::reference_type reference_type; + using pointer_type = typename ValueTraits::pointer_type; + using reference_type = typename ValueTraits::reference_type; - typedef ParallelReduceSpecialize< - FunctorType, Policy, ReducerType, pointer_type, - typename ValueTraits::value_type, HasJoin, UseReducer> - ParReduceSpecialize; + using ParReduceSpecialize = + ParallelReduceSpecialize<FunctorType, Policy, ReducerType, pointer_type, + typename ValueTraits::value_type, HasJoin, + UseReducer>; const FunctorType m_functor; const Policy m_policy; @@ -717,19 +348,19 @@ template <class FunctorType, class... Traits> class ParallelScan<FunctorType, Kokkos::RangePolicy<Traits...>, Kokkos::Experimental::OpenMPTarget> { private: - typedef Kokkos::RangePolicy<Traits...> Policy; + using Policy = Kokkos::RangePolicy<Traits...>; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::WorkRange WorkRange; - typedef typename Policy::member_type Member; + using WorkTag = typename Policy::work_tag; + using WorkRange = typename Policy::WorkRange; + using Member = typename Policy::member_type; - typedef Kokkos::Impl::FunctorValueTraits<FunctorType, WorkTag> ValueTraits; - typedef Kokkos::Impl::FunctorValueInit<FunctorType, WorkTag> ValueInit; - typedef Kokkos::Impl::FunctorValueJoin<FunctorType, WorkTag> ValueJoin; - typedef Kokkos::Impl::FunctorValueOps<FunctorType, WorkTag> ValueOps; + using ValueTraits = Kokkos::Impl::FunctorValueTraits<FunctorType, WorkTag>; + using ValueInit = Kokkos::Impl::FunctorValueInit<FunctorType, WorkTag>; + using ValueJoin = Kokkos::Impl::FunctorValueJoin<FunctorType, WorkTag>; + using ValueOps = Kokkos::Impl::FunctorValueOps<FunctorType, WorkTag>; - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::reference_type reference_type; + using pointer_type = typename ValueTraits::pointer_type; + using reference_type = typename ValueTraits::reference_type; const FunctorType m_functor; const Policy m_policy; @@ -847,11 +478,11 @@ template <class FunctorType, class... Properties> class ParallelFor<FunctorType, Kokkos::TeamPolicy<Properties...>, Kokkos::Experimental::OpenMPTarget> { private: - typedef Kokkos::Impl::TeamPolicyInternal<Kokkos::Experimental::OpenMPTarget, - Properties...> - Policy; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::member_type Member; + using Policy = + Kokkos::Impl::TeamPolicyInternal<Kokkos::Experimental::OpenMPTarget, + Properties...>; + using WorkTag = typename Policy::work_tag; + using Member = typename Policy::member_type; const FunctorType m_functor; const Policy m_policy; @@ -874,27 +505,28 @@ class ParallelFor<FunctorType, Kokkos::TeamPolicy<Properties...>, "Kokkos::Experimental::OpenMPTarget parallel_for"); OpenMPTargetExec::verify_initialized( "Kokkos::Experimental::OpenMPTarget parallel_for"); - const int league_size = m_policy.league_size(); - const int team_size = m_policy.team_size(); - const int vector_length = m_policy.vector_length(); - const int nteams = OpenMPTargetExec::MAX_ACTIVE_TEAMS < league_size - ? OpenMPTargetExec::MAX_ACTIVE_TEAMS - : league_size; + const auto league_size = m_policy.league_size(); + const auto team_size = m_policy.team_size(); + const auto vector_length = m_policy.impl_vector_length(); + const auto nteams = OpenMPTargetExec::MAX_ACTIVE_TEAMS < league_size + ? OpenMPTargetExec::MAX_ACTIVE_TEAMS + : league_size; OpenMPTargetExec::resize_scratch(0, Policy::member_type::TEAM_REDUCE_SIZE, 0, 0); void* scratch_ptr = OpenMPTargetExec::get_scratch_ptr(); FunctorType a_functor(m_functor); -#pragma omp target teams distribute parallel for num_teams(league_size) \ - num_threads(team_size* vector_length) schedule(static, 1) \ - map(to \ - : a_functor, scratch_ptr) - for (int i = 0; i < league_size * team_size * vector_length; i++) { - typename Policy::member_type team(i / (team_size * vector_length), - league_size, team_size, vector_length, - scratch_ptr, 0, 0); - m_functor(team); +#pragma omp target teams distribute map(to \ + : a_functor) \ + is_device_ptr(scratch_ptr) num_teams(nteams) thread_limit(team_size) + for (int i = 0; i < league_size; i++) { +#pragma omp parallel num_threads(team_size) + { + typename Policy::member_type team(i, league_size, team_size, + vector_length, scratch_ptr, 0, 0); + m_functor(team); + } } } @@ -905,26 +537,29 @@ class ParallelFor<FunctorType, Kokkos::TeamPolicy<Properties...>, "Kokkos::Experimental::OpenMPTarget parallel_for"); OpenMPTargetExec::verify_initialized( "Kokkos::Experimental::OpenMPTarget parallel_for"); - const int league_size = m_policy.league_size(); - const int team_size = m_policy.team_size(); - const int vector_length = m_policy.vector_length(); - const int nteams = OpenMPTargetExec::MAX_ACTIVE_TEAMS < league_size - ? OpenMPTargetExec::MAX_ACTIVE_TEAMS - : league_size; + const auto league_size = m_policy.league_size(); + const auto team_size = m_policy.team_size(); + const auto vector_length = m_policy.impl_vector_length(); + const auto nteams = OpenMPTargetExec::MAX_ACTIVE_TEAMS < league_size + ? OpenMPTargetExec::MAX_ACTIVE_TEAMS + : league_size; + FunctorType a_functor(m_functor); OpenMPTargetExec::resize_scratch(0, Policy::member_type::TEAM_REDUCE_SIZE, 0, 0); void* scratch_ptr = OpenMPTargetExec::get_scratch_ptr(); -#pragma omp target teams distribute parallel for num_teams(league_size) \ - num_threads(team_size* vector_length) schedule(static, 1) \ - map(to \ - : a_functor, scratch_ptr) +#pragma omp target teams distribute map(to \ + : a_functor) \ + is_device_ptr(scratch_ptr) num_teams(nteams) thread_limit(team_size) for (int i = 0; i < league_size; i++) { - typename Policy::member_type team(i / (team_size * vector_length), - league_size, team_size, vector_length, - scratch_ptr, 0, 0); - m_functor(TagType(), team); +#pragma omp parallel num_threads(team_size) + { + typename Policy::member_type team(i / (team_size * vector_length), + league_size, team_size, vector_length, + scratch_ptr, 0, 0); + m_functor(TagType(), team); + } } } @@ -941,7 +576,7 @@ template <class FunctorType, class ReducerType, class PointerType, class ValueType, class... PolicyArgs> struct ParallelReduceSpecialize<FunctorType, TeamPolicyInternal<PolicyArgs...>, ReducerType, PointerType, ValueType, 0, 0> { - typedef TeamPolicyInternal<PolicyArgs...> PolicyType; + using PolicyType = TeamPolicyInternal<PolicyArgs...>; template <class TagType> inline static @@ -955,7 +590,7 @@ struct ParallelReduceSpecialize<FunctorType, TeamPolicyInternal<PolicyArgs...>, const int league_size = p.league_size(); const int team_size = p.team_size(); - const int vector_length = p.vector_length(); + const int vector_length = p.impl_vector_length(); const int nteams = OpenMPTargetExec::MAX_ACTIVE_TEAMS < league_size ? OpenMPTargetExec::MAX_ACTIVE_TEAMS : league_size; @@ -965,14 +600,19 @@ struct ParallelReduceSpecialize<FunctorType, TeamPolicyInternal<PolicyArgs...>, void* scratch_ptr = OpenMPTargetExec::get_scratch_ptr(); ValueType result = ValueType(); -#pragma omp target teams distribute parallel for num_teams(nteams) num_threads(team_size*vector_length) \ - map(to:f,scratch_ptr) map(tofrom:result) reduction(+: result) schedule(static,1) - for (int i = 0; i < league_size * team_size * vector_length; i++) { - typename PolicyType::member_type team(i / (team_size * vector_length), - league_size, team_size, - vector_length, scratch_ptr, 0, 0); - f(team, result); - if (team.m_vector_lane != 0) result = 0; + +#pragma omp target teams distribute num_teams(nteams) thread_limit(team_size) \ + map(to:f) map(tofrom:result) reduction(+: result) \ + is_device_ptr(scratch_ptr) + for (int i = 0; i < league_size; i++) { + ValueType inner_result = ValueType(); +#pragma omp parallel num_threads(team_size) reduction(+ : inner_result) + { + typename PolicyType::member_type team(i, league_size, team_size, + vector_length, scratch_ptr, 0, 0); + f(team, inner_result); + } + result = inner_result; } *result_ptr = result; @@ -990,7 +630,7 @@ struct ParallelReduceSpecialize<FunctorType, TeamPolicyInternal<PolicyArgs...>, const int league_size = p.league_size(); const int team_size = p.team_size(); - const int vector_length = p.vector_length(); + const int vector_length = p.impl_vector_length(); const int nteams = OpenMPTargetExec::MAX_ACTIVE_TEAMS < league_size ? OpenMPTargetExec::MAX_ACTIVE_TEAMS : league_size; @@ -1000,15 +640,21 @@ struct ParallelReduceSpecialize<FunctorType, TeamPolicyInternal<PolicyArgs...>, void* scratch_ptr = OpenMPTargetExec::get_scratch_ptr(); ValueType result = ValueType(); -#pragma omp target teams distribute parallel for num_teams(nteams) num_threads(team_size*vector_length) \ - map(to:f,scratch_ptr) map(tofrom:result) reduction(+: result) schedule(static,1) - for (int i = 0; i < league_size * team_size * vector_length; i++) { - typename PolicyType::member_type team(i / (team_size * vector_length), - league_size, team_size, - vector_length, scratch_ptr, 0, 0); - f(TagType(), team, result); - if (team.vector_lane != 0) result = 0; + +#pragma omp target teams distribute num_teams(nteams) thread_limit(team_size) \ + map(to:f) map(tofrom:result) reduction(+: result) \ + is_device_ptr(scratch_ptr) + for (int i = 0; i < league_size; i++) { + ValueType inner_result = ValueType(); +#pragma omp parallel num_threads(team_size) reduction(+ : inner_result) + { + typename PolicyType::member_type team(i, league_size, team_size, + vector_length, scratch_ptr, 0, 0); + f(TagType(), team, result); + } + result = inner_result; } + *result_ptr = result; } @@ -1022,37 +668,37 @@ template <class FunctorType, class ReducerType, class... Properties> class ParallelReduce<FunctorType, Kokkos::TeamPolicy<Properties...>, ReducerType, Kokkos::Experimental::OpenMPTarget> { private: - typedef Kokkos::Impl::TeamPolicyInternal<Kokkos::Experimental::OpenMPTarget, - Properties...> - Policy; - - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::member_type Member; - - typedef Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, - FunctorType, ReducerType> - ReducerConditional; - typedef typename ReducerConditional::type ReducerTypeFwd; - typedef + using Policy = + Kokkos::Impl::TeamPolicyInternal<Kokkos::Experimental::OpenMPTarget, + Properties...>; + + using WorkTag = typename Policy::work_tag; + using Member = typename Policy::member_type; + + using ReducerConditional = + Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, + FunctorType, ReducerType>; + using ReducerTypeFwd = typename ReducerConditional::type; + using WorkTagFwd = typename Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, - WorkTag, void>::type WorkTagFwd; + WorkTag, void>::type; - typedef Kokkos::Impl::FunctorValueTraits<ReducerTypeFwd, WorkTagFwd> - ValueTraits; - typedef Kokkos::Impl::FunctorValueInit<ReducerTypeFwd, WorkTagFwd> ValueInit; - typedef Kokkos::Impl::FunctorValueJoin<ReducerTypeFwd, WorkTagFwd> ValueJoin; + using ValueTraits = + Kokkos::Impl::FunctorValueTraits<ReducerTypeFwd, WorkTagFwd>; + using ValueInit = Kokkos::Impl::FunctorValueInit<ReducerTypeFwd, WorkTagFwd>; + using ValueJoin = Kokkos::Impl::FunctorValueJoin<ReducerTypeFwd, WorkTagFwd>; - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::reference_type reference_type; - typedef typename ValueTraits::value_type value_type; + using pointer_type = typename ValueTraits::pointer_type; + using reference_type = typename ValueTraits::reference_type; + using value_type = typename ValueTraits::value_type; enum { HasJoin = ReduceFunctorHasJoin<FunctorType>::value }; enum { UseReducer = is_reducer_type<ReducerType>::value }; - typedef ParallelReduceSpecialize< - FunctorType, Policy, ReducerType, pointer_type, - typename ValueTraits::value_type, HasJoin, UseReducer> - ParForSpecialize; + using ParForSpecialize = + ParallelReduceSpecialize<FunctorType, Policy, ReducerType, pointer_type, + typename ValueTraits::value_type, HasJoin, + UseReducer>; const FunctorType m_functor; const Policy m_policy; @@ -1062,7 +708,7 @@ class ParallelReduce<FunctorType, Kokkos::TeamPolicy<Properties...>, public: inline void execute() const { - // ParForSpecialize::execute(m_functor, m_policy, m_result_ptr); + ParForSpecialize::execute(m_functor, m_policy, m_result_ptr); } template <class ViewType> @@ -1088,12 +734,7 @@ class ParallelReduce<FunctorType, Kokkos::TeamPolicy<Properties...>, m_result_ptr(reducer.view().data()), m_shmem_size(arg_policy.scratch_size(0) + arg_policy.scratch_size(1) + FunctorTeamShmemSize<FunctorType>::value( - arg_functor, arg_policy.team_size())) { - /*static_assert( std::is_same< typename ViewType::memory_space - , Kokkos::HostSpace >::value - , "Reduction result on Kokkos::Experimental::OpenMPTarget must be a - Kokkos::View in HostSpace" );*/ - } + arg_functor, arg_policy.team_size())) {} }; } // namespace Impl @@ -1104,41 +745,49 @@ namespace Impl { template <typename iType> struct TeamThreadRangeBoundariesStruct<iType, OpenMPTargetExecTeamMember> { - typedef iType index_type; + using index_type = iType; const iType start; const iType end; - const iType increment; + const OpenMPTargetExecTeamMember& team; inline TeamThreadRangeBoundariesStruct( const OpenMPTargetExecTeamMember& thread_, iType count) - : start(thread_.team_rank()), - end(count), - increment(thread_.team_size()) {} + : start(0), end(count), team(thread_) {} inline TeamThreadRangeBoundariesStruct( const OpenMPTargetExecTeamMember& thread_, iType begin_, iType end_) - : start(begin_ + thread_.team_rank()), - end(end_), - increment(thread_.team_size()) {} + : start(begin_), end(end_), team(thread_) {} }; template <typename iType> struct ThreadVectorRangeBoundariesStruct<iType, OpenMPTargetExecTeamMember> { - typedef iType index_type; + using index_type = iType; const index_type start; const index_type end; - const index_type increment; + const OpenMPTargetExecTeamMember& team; inline ThreadVectorRangeBoundariesStruct( const OpenMPTargetExecTeamMember& thread_, index_type count) - : start(thread_.m_vector_lane), - end(count), - increment(thread_.m_vector_length) {} + : start(0), end(count), team(thread_) {} inline ThreadVectorRangeBoundariesStruct( const OpenMPTargetExecTeamMember& thread_, index_type begin_, index_type end_) - : start(begin_ + thread_.m_vector_lane), - end(end_), - increment(thread_.m_vector_length) {} + : start(begin_), end(end_), team(thread_) {} +}; + +template <typename iType> +struct TeamVectorRangeBoundariesStruct<iType, OpenMPTargetExecTeamMember> { + using index_type = iType; + const index_type start; + const index_type end; + const OpenMPTargetExecTeamMember& team; + + inline TeamVectorRangeBoundariesStruct( + const OpenMPTargetExecTeamMember& thread_, index_type count) + : start(0), end(count), team(thread_) {} + inline TeamVectorRangeBoundariesStruct( + const OpenMPTargetExecTeamMember& thread_, index_type begin_, + index_type end_) + : start(begin_), end(end_), team(thread_) {} }; template <typename iType> @@ -1175,6 +824,23 @@ ThreadVectorRange(const Impl::OpenMPTargetExecTeamMember& thread, iType begin, iType, Impl::OpenMPTargetExecTeamMember>(thread, begin, end); } +template <typename iType> +KOKKOS_INLINE_FUNCTION Impl::TeamVectorRangeBoundariesStruct< + iType, Impl::OpenMPTargetExecTeamMember> +ThreadVectorRange(const Impl::OpenMPTargetExecTeamMember& thread, iType count) { + return Impl::TeamVectorRangeBoundariesStruct< + iType, Impl::OpenMPTargetExecTeamMember>(thread, count); +} + +template <typename iType> +KOKKOS_INLINE_FUNCTION Impl::TeamVectorRangeBoundariesStruct< + iType, Impl::OpenMPTargetExecTeamMember> +ThreadVectorRange(const Impl::OpenMPTargetExecTeamMember& thread, iType begin, + iType end) { + return Impl::TeamVectorRangeBoundariesStruct< + iType, Impl::OpenMPTargetExecTeamMember>(thread, begin, end); +} + } // namespace Impl } // namespace Kokkos diff --git a/packages/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Parallel_MDRange.hpp b/packages/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Parallel_MDRange.hpp index 4ce2dee12..2bd8a5d3a 100644 --- a/packages/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Parallel_MDRange.hpp +++ b/packages/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Parallel_MDRange.hpp @@ -46,11 +46,15 @@ #define KOKKOS_OPENMPTARGET_PARALLEL_MDRANGE_HPP #include <omp.h> -#include <iostream> #include <Kokkos_Parallel.hpp> #include <OpenMPTarget/Kokkos_OpenMPTarget_Exec.hpp> #include <impl/Kokkos_FunctorAdapter.hpp> +// WORKAROUND OPENMPTARGET: sometimes tile sizes don't make it correctly, +// this was tracked down to a bug in clang with regards of mapping structs +// with arrays of long in it. Arrays of int might be fine though ... +#define KOKKOS_IMPL_MDRANGE_USE_NO_TILES // undef EOF + //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- @@ -61,9 +65,9 @@ template <class FunctorType, class... Traits> class ParallelFor<FunctorType, Kokkos::MDRangePolicy<Traits...>, Kokkos::Experimental::OpenMPTarget> { private: - typedef Kokkos::MDRangePolicy<Traits...> Policy; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::member_type Member; + using Policy = Kokkos::MDRangePolicy<Traits...>; + using WorkTag = typename Policy::work_tag; + using Member = typename Policy::member_type; const FunctorType m_functor; const Policy m_policy; @@ -74,13 +78,21 @@ class ParallelFor<FunctorType, Kokkos::MDRangePolicy<Traits...>, "Kokkos::Experimental::OpenMPTarget parallel_for"); OpenMPTargetExec::verify_initialized( "Kokkos::Experimental::OpenMPTarget parallel_for"); - const int64_t begin = 0; - const int64_t end = m_policy.m_num_tiles; FunctorType functor(m_functor); Policy policy = m_policy; + +#ifdef KOKKOS_IMPL_MDRANGE_USE_NO_TILES + typename Policy::point_type unused; + + execute_tile<Policy::rank>(unused, functor, policy); +#else + const int64_t begin = 0; + const int64_t end = m_policy.m_num_tiles; + #pragma omp target teams distribute map(to : functor) num_teams(end - begin) { for (ptrdiff_t tile_idx = begin; tile_idx < end; tile_idx++) { + #pragma omp parallel { typename Policy::point_type offset; @@ -101,12 +113,24 @@ class ParallelFor<FunctorType, Kokkos::MDRangePolicy<Traits...>, } } } +#endif } template <int Rank> inline typename std::enable_if<Rank == 1>::type execute_tile( typename Policy::point_type offset, const FunctorType& functor, const Policy& policy) const { +#ifdef KOKKOS_IMPL_MDRANGE_USE_NO_TILES + (void)offset; + const auto begin_0 = policy.m_lower[0]; + + const auto end_0 = policy.m_upper[0]; + +#pragma omp target teams distribute parallel for map(to : functor) + for (ptrdiff_t i0 = begin_0; i0 < end_0; i0++) { + functor(i0); + } +#else const ptrdiff_t begin_0 = offset[0]; ptrdiff_t end_0 = begin_0 + policy.m_tile[0]; end_0 = end_0 < policy.m_upper[0] ? end_0 : policy.m_upper[0]; @@ -114,12 +138,28 @@ class ParallelFor<FunctorType, Kokkos::MDRangePolicy<Traits...>, for (ptrdiff_t i0 = begin_0; i0 < end_0; i0++) { functor(i0); } +#endif } template <int Rank> inline typename std::enable_if<Rank == 2>::type execute_tile( typename Policy::point_type offset, const FunctorType& functor, const Policy& policy) const { +#ifdef KOKKOS_IMPL_MDRANGE_USE_NO_TILES + (void)offset; + const auto begin_0 = policy.m_lower[0]; + const auto begin_1 = policy.m_lower[1]; + + const auto end_0 = policy.m_upper[0]; + const auto end_1 = policy.m_upper[1]; + +#pragma omp target teams distribute parallel for collapse(2) map(to : functor) + for (auto i0 = begin_0; i0 < end_0; i0++) { + for (auto i1 = begin_1; i1 < end_1; i1++) { + functor(i0, i1); + } + } +#else const ptrdiff_t begin_0 = offset[0]; ptrdiff_t end_0 = begin_0 + policy.m_tile[0]; end_0 = end_0 < policy.m_upper[0] ? end_0 : policy.m_upper[0]; @@ -131,12 +171,32 @@ class ParallelFor<FunctorType, Kokkos::MDRangePolicy<Traits...>, #pragma omp for collapse(2) for (ptrdiff_t i0 = begin_0; i0 < end_0; i0++) for (ptrdiff_t i1 = begin_1; i1 < end_1; i1++) functor(i0, i1); +#endif } template <int Rank> inline typename std::enable_if<Rank == 3>::type execute_tile( typename Policy::point_type offset, const FunctorType& functor, const Policy& policy) const { +#ifdef KOKKOS_IMPL_MDRANGE_USE_NO_TILES + (void)offset; + const auto begin_0 = policy.m_lower[0]; + const auto begin_1 = policy.m_lower[1]; + const auto begin_2 = policy.m_lower[2]; + + const auto end_0 = policy.m_upper[0]; + const auto end_1 = policy.m_upper[1]; + const auto end_2 = policy.m_upper[2]; + +#pragma omp target teams distribute parallel for collapse(3) map(to : functor) + for (auto i0 = begin_0; i0 < end_0; i0++) { + for (auto i1 = begin_1; i1 < end_1; i1++) { + for (auto i2 = begin_2; i2 < end_2; i2++) { + functor(i0, i1, i2); + } + } + } +#else const ptrdiff_t begin_0 = offset[0]; ptrdiff_t end_0 = begin_0 + policy.m_tile[0]; end_0 = end_0 < policy.m_upper[0] ? end_0 : policy.m_upper[0]; @@ -153,12 +213,36 @@ class ParallelFor<FunctorType, Kokkos::MDRangePolicy<Traits...>, for (ptrdiff_t i0 = begin_0; i0 < end_0; i0++) for (ptrdiff_t i1 = begin_1; i1 < end_1; i1++) for (ptrdiff_t i2 = begin_2; i2 < end_2; i2++) functor(i0, i1, i2); +#endif } template <int Rank> inline typename std::enable_if<Rank == 4>::type execute_tile( typename Policy::point_type offset, const FunctorType& functor, const Policy& policy) const { +#ifdef KOKKOS_IMPL_MDRANGE_USE_NO_TILES + (void)offset; + const auto begin_0 = policy.m_lower[0]; + const auto begin_1 = policy.m_lower[1]; + const auto begin_2 = policy.m_lower[2]; + const auto begin_3 = policy.m_lower[3]; + + const auto end_0 = policy.m_upper[0]; + const auto end_1 = policy.m_upper[1]; + const auto end_2 = policy.m_upper[2]; + const auto end_3 = policy.m_upper[3]; + +#pragma omp target teams distribute parallel for collapse(4) map(to : functor) + for (auto i0 = begin_0; i0 < end_0; i0++) { + for (auto i1 = begin_1; i1 < end_1; i1++) { + for (auto i2 = begin_2; i2 < end_2; i2++) { + for (auto i3 = begin_3; i3 < end_3; i3++) { + functor(i0, i1, i2, i3); + } + } + } + } +#else const ptrdiff_t begin_0 = offset[0]; ptrdiff_t end_0 = begin_0 + policy.m_tile[0]; end_0 = end_0 < policy.m_upper[0] ? end_0 : policy.m_upper[0]; @@ -181,12 +265,40 @@ class ParallelFor<FunctorType, Kokkos::MDRangePolicy<Traits...>, for (ptrdiff_t i2 = begin_2; i2 < end_2; i2++) for (ptrdiff_t i3 = begin_3; i3 < end_3; i3++) functor(i0, i1, i2, i3); +#endif } template <int Rank> inline typename std::enable_if<Rank == 5>::type execute_tile( typename Policy::point_type offset, const FunctorType& functor, const Policy& policy) const { +#ifdef KOKKOS_IMPL_MDRANGE_USE_NO_TILES + (void)offset; + const auto begin_0 = policy.m_lower[0]; + const auto begin_1 = policy.m_lower[1]; + const auto begin_2 = policy.m_lower[2]; + const auto begin_3 = policy.m_lower[3]; + const auto begin_4 = policy.m_lower[4]; + + const auto end_0 = policy.m_upper[0]; + const auto end_1 = policy.m_upper[1]; + const auto end_2 = policy.m_upper[2]; + const auto end_3 = policy.m_upper[3]; + const auto end_4 = policy.m_upper[4]; + +#pragma omp target teams distribute parallel for collapse(5) map(to : functor) + for (auto i0 = begin_0; i0 < end_0; i0++) { + for (auto i1 = begin_1; i1 < end_1; i1++) { + for (auto i2 = begin_2; i2 < end_2; i2++) { + for (auto i3 = begin_3; i3 < end_3; i3++) { + for (auto i4 = begin_4; i4 < end_4; i4++) { + functor(i0, i1, i2, i3, i4); + } + } + } + } + } +#else const ptrdiff_t begin_0 = offset[0]; ptrdiff_t end_0 = begin_0 + policy.m_tile[0]; end_0 = end_0 < policy.m_upper[0] ? end_0 : policy.m_upper[0]; @@ -214,12 +326,44 @@ class ParallelFor<FunctorType, Kokkos::MDRangePolicy<Traits...>, for (ptrdiff_t i3 = begin_3; i3 < end_3; i3++) for (ptrdiff_t i4 = begin_4; i4 < end_4; i4++) functor(i0, i1, i2, i3, i4); +#endif } template <int Rank> inline typename std::enable_if<Rank == 6>::type execute_tile( typename Policy::point_type offset, const FunctorType& functor, const Policy& policy) const { +#ifdef KOKKOS_IMPL_MDRANGE_USE_NO_TILES + (void)offset; + const auto begin_0 = policy.m_lower[0]; + const auto begin_1 = policy.m_lower[1]; + const auto begin_2 = policy.m_lower[2]; + const auto begin_3 = policy.m_lower[3]; + const auto begin_4 = policy.m_lower[4]; + const auto begin_5 = policy.m_lower[5]; + + const auto end_0 = policy.m_upper[0]; + const auto end_1 = policy.m_upper[1]; + const auto end_2 = policy.m_upper[2]; + const auto end_3 = policy.m_upper[3]; + const auto end_4 = policy.m_upper[4]; + const auto end_5 = policy.m_upper[5]; + +#pragma omp target teams distribute parallel for collapse(6) map(to : functor) + for (auto i0 = begin_0; i0 < end_0; i0++) { + for (auto i1 = begin_1; i1 < end_1; i1++) { + for (auto i2 = begin_2; i2 < end_2; i2++) { + for (auto i3 = begin_3; i3 < end_3; i3++) { + for (auto i4 = begin_4; i4 < end_4; i4++) { + for (auto i5 = begin_5; i5 < end_5; i5++) { + functor(i0, i1, i2, i3, i4, i5); + } + } + } + } + } + } +#else const ptrdiff_t begin_0 = offset[0]; ptrdiff_t end_0 = begin_0 + policy.m_tile[0]; end_0 = end_0 < policy.m_upper[0] ? end_0 : policy.m_upper[0]; @@ -252,12 +396,48 @@ class ParallelFor<FunctorType, Kokkos::MDRangePolicy<Traits...>, for (ptrdiff_t i4 = begin_4; i4 < end_4; i4++) for (ptrdiff_t i5 = begin_5; i5 < end_5; i5++) functor(i0, i1, i2, i3, i4, i5); +#endif } template <int Rank> inline typename std::enable_if<Rank == 7>::type execute_tile( typename Policy::point_type offset, const FunctorType& functor, const Policy& policy) const { +#ifdef KOKKOS_IMPL_MDRANGE_USE_NO_TILES + (void)offset; + const int begin_0 = policy.m_lower[0]; + const int begin_1 = policy.m_lower[1]; + const int begin_2 = policy.m_lower[2]; + const int begin_3 = policy.m_lower[3]; + const int begin_4 = policy.m_lower[4]; + const int begin_5 = policy.m_lower[5]; + const int begin_6 = policy.m_lower[6]; + + const int end_0 = policy.m_upper[0]; + const int end_1 = policy.m_upper[1]; + const int end_2 = policy.m_upper[2]; + const int end_3 = policy.m_upper[3]; + const int end_4 = policy.m_upper[4]; + const int end_5 = policy.m_upper[5]; + const int end_6 = policy.m_upper[6]; + +#pragma omp target teams distribute parallel for collapse(7) map(to : functor) + for (ptrdiff_t i0 = begin_0; i0 < end_0; i0++) { + for (ptrdiff_t i1 = begin_1; i1 < end_1; i1++) { + for (ptrdiff_t i2 = begin_2; i2 < end_2; i2++) { + for (ptrdiff_t i3 = begin_3; i3 < end_3; i3++) { + for (ptrdiff_t i4 = begin_4; i4 < end_4; i4++) { + for (ptrdiff_t i5 = begin_5; i5 < end_5; i5++) { + for (ptrdiff_t i6 = begin_6; i6 < end_6; i6++) { + functor(i0, i1, i2, i3, i4, i5, i6); + } + } + } + } + } + } + } +#else const ptrdiff_t begin_0 = offset[0]; ptrdiff_t end_0 = begin_0 + policy.m_tile[0]; end_0 = end_0 < policy.m_upper[0] ? end_0 : policy.m_upper[0]; @@ -295,12 +475,52 @@ class ParallelFor<FunctorType, Kokkos::MDRangePolicy<Traits...>, for (ptrdiff_t i5 = begin_5; i5 < end_5; i5++) for (ptrdiff_t i6 = begin_6; i6 < end_6; i6++) functor(i0, i1, i2, i3, i4, i5, i6); +#endif } template <int Rank> inline typename std::enable_if<Rank == 8>::type execute_tile( typename Policy::point_type offset, const FunctorType& functor, const Policy& policy) const { +#ifdef KOKKOS_IMPL_MDRANGE_USE_NO_TILES + (void)offset; + const int begin_0 = policy.m_lower[0]; + const int begin_1 = policy.m_lower[1]; + const int begin_2 = policy.m_lower[2]; + const int begin_3 = policy.m_lower[3]; + const int begin_4 = policy.m_lower[4]; + const int begin_5 = policy.m_lower[5]; + const int begin_6 = policy.m_lower[6]; + const int begin_7 = policy.m_lower[7]; + + const int end_0 = policy.m_upper[0]; + const int end_1 = policy.m_upper[1]; + const int end_2 = policy.m_upper[2]; + const int end_3 = policy.m_upper[3]; + const int end_4 = policy.m_upper[4]; + const int end_5 = policy.m_upper[5]; + const int end_6 = policy.m_upper[6]; + const int end_7 = policy.m_upper[7]; + +#pragma omp target teams distribute parallel for collapse(8) map(to : functor) + for (ptrdiff_t i0 = begin_0; i0 < end_0; i0++) { + for (ptrdiff_t i1 = begin_1; i1 < end_1; i1++) { + for (ptrdiff_t i2 = begin_2; i2 < end_2; i2++) { + for (ptrdiff_t i3 = begin_3; i3 < end_3; i3++) { + for (ptrdiff_t i4 = begin_4; i4 < end_4; i4++) { + for (ptrdiff_t i5 = begin_5; i5 < end_5; i5++) { + for (ptrdiff_t i6 = begin_6; i6 < end_6; i6++) { + for (ptrdiff_t i7 = begin_7; i7 < end_7; i7++) { + functor(i0, i1, i2, i3, i4, i5, i6, i7); + } + } + } + } + } + } + } + } +#else const ptrdiff_t begin_0 = offset[0]; ptrdiff_t end_0 = begin_0 + policy.m_tile[0]; end_0 = end_0 < policy.m_upper[0] ? end_0 : policy.m_upper[0]; @@ -343,6 +563,7 @@ class ParallelFor<FunctorType, Kokkos::MDRangePolicy<Traits...>, for (ptrdiff_t i6 = begin_6; i6 < end_6; i6++) for (ptrdiff_t i7 = begin_7; i7 < end_7; i7++) functor(i0, i1, i2, i3, i4, i5, i6, i7); +#endif } inline ParallelFor(const FunctorType& arg_functor, Policy arg_policy) @@ -363,7 +584,7 @@ template <class FunctorType, class ReducerType, class PointerType, struct ParallelReduceSpecialize<FunctorType, Kokkos::MDRangePolicy<PolicyArgs...>, ReducerType, PointerType, ValueType, 0, 0> { - typedef Kokkos::RangePolicy<PolicyArgs...> PolicyType; + using PolicyType = Kokkos::RangePolicy<PolicyArgs...>; template <class TagType> inline static typename std::enable_if<std::is_same<TagType, void>::value>::type @@ -468,37 +689,36 @@ template <class FunctorType, class ReducerType, class... Traits> class ParallelReduce<FunctorType, Kokkos::MDRangePolicy<Traits...>, ReducerType, Kokkos::Experimental::OpenMPTarget> { private: - typedef Kokkos::MDRangePolicy<Traits...> Policy; + using Policy = Kokkos::MDRangePolicy<Traits...>; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::WorkRange WorkRange; - typedef typename Policy::member_type Member; + using WorkTag = typename Policy::work_tag; + using WorkRange = typename Policy::WorkRange; + using Member = typename Policy::member_type; - typedef Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, - FunctorType, ReducerType> - ReducerConditional; - typedef typename ReducerConditional::type ReducerTypeFwd; - typedef + using ReducerConditional = + Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, + FunctorType, ReducerType>; + using ReducerTypeFwd = typename ReducerConditional::type; + using WorkTagFwd = typename Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, - WorkTag, void>::type WorkTagFwd; + WorkTag, void>::type; // Static Assert WorkTag void if ReducerType not InvalidType - typedef Kokkos::Impl::FunctorValueTraits<ReducerTypeFwd, WorkTagFwd> - ValueTraits; - typedef Kokkos::Impl::FunctorValueInit<ReducerTypeFwd, WorkTagFwd> ValueInit; - typedef Kokkos::Impl::FunctorValueJoin<ReducerTypeFwd, WorkTagFwd> ValueJoin; + using ValueTraits = + Kokkos::Impl::FunctorValueTraits<ReducerTypeFwd, WorkTagFwd>; + using ValueInit = Kokkos::Impl::FunctorValueInit<ReducerTypeFwd, WorkTagFwd>; + using ValueJoin = Kokkos::Impl::FunctorValueJoin<ReducerTypeFwd, WorkTagFwd>; enum { HasJoin = ReduceFunctorHasJoin<FunctorType>::value }; enum { UseReducer = is_reducer_type<ReducerType>::value }; - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::reference_type reference_type; + using pointer_type = typename ValueTraits::pointer_type; + using reference_type = typename ValueTraits::reference_type; - typedef ParallelReduceSpecialize< + using ParForSpecialize = ParallelReduceSpecialize< FunctorType, Policy, ReducerType, pointer_type, - typename ValueTraits::value_type, HasJoin, UseReducer> - ParForSpecialize; + typename ValueTraits::value_type, HasJoin, UseReducer>; const FunctorType m_functor; const Policy m_policy; @@ -545,5 +765,5 @@ class ParallelReduce<FunctorType, Kokkos::MDRangePolicy<Traits...>, ReducerType, //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- - +#undef KOKKOS_IMPL_MDRANGE_USE_NO_TILES #endif /* KOKKOS_OPENMPTARGET_PARALLEL_HPP */ diff --git a/packages/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Task.hpp b/packages/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Task.hpp index 19956dad2..c5959a0ad 100644 --- a/packages/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Task.hpp +++ b/packages/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Task.hpp @@ -172,7 +172,6 @@ TeamThreadRange(Impl::TaskExec<Kokkos::Experimental::OpenMPTarget>& thread, * i=0..N-1. * * The range i=0..N-1 is mapped to all threads of the the calling thread team. - * This functionality requires C++11 support. */ template <typename iType, class Lambda> KOKKOS_INLINE_FUNCTION void parallel_for( diff --git a/packages/kokkos/core/src/ROCm/KokkosExp_ROCm_IterateTile_Refactor.hpp b/packages/kokkos/core/src/ROCm/KokkosExp_ROCm_IterateTile_Refactor.hpp deleted file mode 100644 index 608c2ea9f..000000000 --- a/packages/kokkos/core/src/ROCm/KokkosExp_ROCm_IterateTile_Refactor.hpp +++ /dev/null @@ -1,3134 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#ifndef KOKKOS_ROCM_EXP_ITERATE_TILE_REFACTOR_HPP -#define KOKKOS_ROCM_EXP_ITERATE_TILE_REFACTOR_HPP - -#include <Kokkos_Macros.hpp> -#if defined(__HCC__) && defined(KOKKOS_ENABLE_ROCM) - -#include <iostream> -#include <algorithm> -#include <cstdio> - -#include <utility> - -// #include<ROCm/Kokkos_ROCmExec.hpp> -// Including the file above leads to following type of errors: -// /home/ndellin/kokkos/core/src/ROCm/Kokkos_ROCmExec.hpp(84): error: incomplete -// type is not allowed use existing Kokkos functionality, e.g. max blocks, once -// resolved - -#if defined(KOKKOS_ENABLE_PROFILING) -#include <impl/Kokkos_Profiling_Interface.hpp> -#include <typeinfo> -#endif - -#define threadIdx_x (hc_get_workitem_id(0)) -#define threadIdx_y (hc_get_workitem_id(1)) -#define threadIdx_z (hc_get_workitem_id(2)) - -#define blockIdx_x (hc_get_group_id(0)) -#define blockIdx_y (hc_get_group_id(1)) -#define blockIdx_z (hc_get_group_id(2)) - -#define blockDim_x (hc_get_group_size(0)) -#define blockDim_y (hc_get_group_size(1)) -#define blockDim_z (hc_get_group_size(2)) - -#define gridDim_x (hc_get_num_groups(0)) -#define gridDim_y (hc_get_num_groups(1)) -#define gridDim_z (hc_get_num_groups(2)) - -namespace Kokkos { -namespace Impl { - -namespace Refactor { - -// ------------------------------------------------------------------ // -// ParallelFor iteration pattern -template <int N, typename RP, typename Functor, typename Tag> -struct DeviceIterateTile; - -// Rank 2 -// Specializations for void tag type -template <typename RP, typename Functor> -struct DeviceIterateTile<2, RP, Functor, void> { - using index_type = typename RP::index_type; - - [[hc]] DeviceIterateTile(const RP& rp_, const Functor& f_) - : m_rp(rp_), m_func(f_) {} - - KOKKOS_INLINE_FUNCTION - void exec_range() const { - // LL - if (RP::inner_direction == RP::Left) { - for (index_type tile_id1 = (index_type)blockIdx_y; - tile_id1 < m_rp.m_tile_end[1]; tile_id1 += gridDim_y) { - const index_type offset_1 = tile_id1 * m_rp.m_tile[1] + - (index_type)threadIdx_y + - (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && - (index_type)threadIdx_y < m_rp.m_tile[1]) { - for (index_type tile_id0 = (index_type)blockIdx_x; - tile_id0 < m_rp.m_tile_end[0]; tile_id0 += gridDim_x) { - const index_type offset_0 = tile_id0 * m_rp.m_tile[0] + - (index_type)threadIdx_x + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && - (index_type)threadIdx_x < m_rp.m_tile[0]) { - m_func(offset_0, offset_1); - } - } - } - } - } - // LR - else { - for (index_type tile_id0 = (index_type)blockIdx_x; - tile_id0 < m_rp.m_tile_end[0]; tile_id0 += gridDim_x) { - const index_type offset_0 = tile_id0 * m_rp.m_tile[0] + - (index_type)threadIdx_x + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && - (index_type)threadIdx_x < m_rp.m_tile[0]) { - for (index_type tile_id1 = (index_type)blockIdx_y; - tile_id1 < m_rp.m_tile_end[1]; tile_id1 += gridDim_y) { - const index_type offset_1 = tile_id1 * m_rp.m_tile[1] + - (index_type)threadIdx_y + - (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && - (index_type)threadIdx_y < m_rp.m_tile[1]) { - m_func(offset_0, offset_1); - } - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; -}; - -// Specializations for tag type -template <typename RP, typename Functor, typename Tag> -struct DeviceIterateTile<2, RP, Functor, Tag> { - using index_type = typename RP::index_type; - - KOKKOS_INLINE_FUNCTION - DeviceIterateTile(const RP& rp_, const Functor& f_) : m_rp(rp_), m_func(f_) {} - - KOKKOS_INLINE_FUNCTION - void exec_range() const { - if (RP::inner_direction == RP::Left) { - // Loop over size maxnumblocks until full range covered - for (index_type tile_id1 = (index_type)blockIdx_y; - tile_id1 < m_rp.m_tile_end[1]; tile_id1 += gridDim_y) { - const index_type offset_1 = tile_id1 * m_rp.m_tile[1] + - (index_type)threadIdx_y + - (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && - (index_type)threadIdx_y < m_rp.m_tile[1]) { - for (index_type tile_id0 = (index_type)blockIdx_x; - tile_id0 < m_rp.m_tile_end[0]; tile_id0 += gridDim_x) { - const index_type offset_0 = tile_id0 * m_rp.m_tile[0] + - (index_type)threadIdx_x + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && - (index_type)threadIdx_x < m_rp.m_tile[0]) { - m_func(Tag(), offset_0, offset_1); - } - } - } - } - } else { - for (index_type tile_id0 = (index_type)blockIdx_x; - tile_id0 < m_rp.m_tile_end[0]; tile_id0 += gridDim_x) { - const index_type offset_0 = tile_id0 * m_rp.m_tile[0] + - (index_type)threadIdx_x + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && - (index_type)threadIdx_x < m_rp.m_tile[0]) { - for (index_type tile_id1 = (index_type)blockIdx_y; - tile_id1 < m_rp.m_tile_end[1]; tile_id1 += gridDim_y) { - const index_type offset_1 = tile_id1 * m_rp.m_tile[1] + - (index_type)threadIdx_y + - (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && - (index_type)threadIdx_y < m_rp.m_tile[1]) { - m_func(Tag(), offset_0, offset_1); - } - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; -}; - -// Rank 3 -// Specializations for void tag type -template <typename RP, typename Functor> -struct DeviceIterateTile<3, RP, Functor, void> { - using index_type = typename RP::index_type; - - [[hc]] DeviceIterateTile(const RP& rp_, const Functor& f_) - : m_rp(rp_), m_func(f_) {} - - KOKKOS_INLINE_FUNCTION - void exec_range() const { - // LL - if (RP::inner_direction == RP::Left) { - for (index_type tile_id2 = (index_type)blockIdx_z; - tile_id2 < m_rp.m_tile_end[2]; tile_id2 += gridDim_z) { - const index_type offset_2 = tile_id2 * m_rp.m_tile[2] + - (index_type)threadIdx_z + - (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && - (index_type)threadIdx_z < m_rp.m_tile[2]) { - for (index_type tile_id1 = (index_type)blockIdx_y; - tile_id1 < m_rp.m_tile_end[1]; tile_id1 += gridDim_y) { - const index_type offset_1 = tile_id1 * m_rp.m_tile[1] + - (index_type)threadIdx_y + - (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && - (index_type)threadIdx_y < m_rp.m_tile[1]) { - for (index_type tile_id0 = (index_type)blockIdx_x; - tile_id0 < m_rp.m_tile_end[0]; tile_id0 += gridDim_x) { - const index_type offset_0 = tile_id0 * m_rp.m_tile[0] + - (index_type)threadIdx_x + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && - (index_type)threadIdx_x < m_rp.m_tile[0]) { - m_func(offset_0, offset_1, offset_2); - } - } - } - } - } - } - } - // LR - else { - for (index_type tile_id0 = (index_type)blockIdx_x; - tile_id0 < m_rp.m_tile_end[0]; tile_id0 += gridDim_x) { - const index_type offset_0 = tile_id0 * m_rp.m_tile[0] + - (index_type)threadIdx_x + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && - (index_type)threadIdx_x < m_rp.m_tile[0]) { - for (index_type tile_id1 = (index_type)blockIdx_y; - tile_id1 < m_rp.m_tile_end[1]; tile_id1 += gridDim_y) { - const index_type offset_1 = tile_id1 * m_rp.m_tile[1] + - (index_type)threadIdx_y + - (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && - (index_type)threadIdx_y < m_rp.m_tile[1]) { - for (index_type tile_id2 = (index_type)blockIdx_z; - tile_id2 < m_rp.m_tile_end[2]; tile_id2 += gridDim_z) { - const index_type offset_2 = tile_id2 * m_rp.m_tile[2] + - (index_type)threadIdx_z + - (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && - (index_type)threadIdx_z < m_rp.m_tile[2]) { - m_func(offset_0, offset_1, offset_2); - } - } - } - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; -}; - -// Specializations for void tag type -template <typename RP, typename Functor, typename Tag> -struct DeviceIterateTile<3, RP, Functor, Tag> { - using index_type = typename RP::index_type; - - KOKKOS_INLINE_FUNCTION - DeviceIterateTile(const RP& rp_, const Functor& f_) : m_rp(rp_), m_func(f_) {} - - KOKKOS_INLINE_FUNCTION - void exec_range() const { - if (RP::inner_direction == RP::Left) { - for (index_type tile_id2 = (index_type)blockIdx_z; - tile_id2 < m_rp.m_tile_end[2]; tile_id2 += gridDim_z) { - const index_type offset_2 = tile_id2 * m_rp.m_tile[2] + - (index_type)threadIdx_z + - (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && - (index_type)threadIdx_z < m_rp.m_tile[2]) { - for (index_type tile_id1 = (index_type)blockIdx_y; - tile_id1 < m_rp.m_tile_end[1]; tile_id1 += gridDim_y) { - const index_type offset_1 = tile_id1 * m_rp.m_tile[1] + - (index_type)threadIdx_y + - (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && - (index_type)threadIdx_y < m_rp.m_tile[1]) { - for (index_type tile_id0 = (index_type)blockIdx_x; - tile_id0 < m_rp.m_tile_end[0]; tile_id0 += gridDim_x) { - const index_type offset_0 = tile_id0 * m_rp.m_tile[0] + - (index_type)threadIdx_x + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && - (index_type)threadIdx_x < m_rp.m_tile[0]) { - m_func(Tag(), offset_0, offset_1, offset_2); - } - } - } - } - } - } - } else { - for (index_type tile_id0 = (index_type)blockIdx_x; - tile_id0 < m_rp.m_tile_end[0]; tile_id0 += gridDim_x) { - const index_type offset_0 = tile_id0 * m_rp.m_tile[0] + - (index_type)threadIdx_x + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && - (index_type)threadIdx_x < m_rp.m_tile[0]) { - for (index_type tile_id1 = (index_type)blockIdx_y; - tile_id1 < m_rp.m_tile_end[1]; tile_id1 += gridDim_y) { - const index_type offset_1 = tile_id1 * m_rp.m_tile[1] + - (index_type)threadIdx_y + - (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && - (index_type)threadIdx_y < m_rp.m_tile[1]) { - for (index_type tile_id2 = (index_type)blockIdx_z; - tile_id2 < m_rp.m_tile_end[2]; tile_id2 += gridDim_z) { - const index_type offset_2 = tile_id2 * m_rp.m_tile[2] + - (index_type)threadIdx_z + - (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && - (index_type)threadIdx_z < m_rp.m_tile[2]) { - m_func(Tag(), offset_0, offset_1, offset_2); - } - } - } - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; -}; - -// Rank 4 -// Specializations for void tag type -template <typename RP, typename Functor> -struct DeviceIterateTile<4, RP, Functor, void> { - using index_type = typename RP::index_type; - - [[hc]] DeviceIterateTile(const RP& rp_, const Functor& f_) - : m_rp(rp_), m_func(f_) {} - - static constexpr index_type max_blocks = 65535; - // static constexpr index_type max_blocks = - // static_cast<index_type>(Kokkos::Impl::ROCmTraits::UpperBoundGridCount); - - KOKKOS_INLINE_FUNCTION - void exec_range() const { - // enum { max_blocks = - // static_cast<index_type>(Kokkos::Impl::ROCmTraits::UpperBoundGridCount) }; - // const index_type max_blocks = static_cast<index_type>( - // Kokkos::Impl::rocm_internal_maximum_grid_count() ); - // LL - if (RP::inner_direction == RP::Left) { - const index_type temp0 = m_rp.m_tile_end[0]; - const index_type temp1 = m_rp.m_tile_end[1]; - const index_type numbl0 = (temp0 <= max_blocks ? temp0 : max_blocks); - const index_type numbl1 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl0) - : (temp1 <= max_blocks ? temp1 : max_blocks)); - - const index_type tile_id0 = (index_type)blockIdx_x % numbl0; - const index_type tile_id1 = (index_type)blockIdx_x / numbl0; - const index_type thr_id0 = (index_type)threadIdx_x % m_rp.m_tile[0]; - const index_type thr_id1 = (index_type)threadIdx_x / m_rp.m_tile[0]; - - for (index_type tile_id3 = (index_type)blockIdx_z; - tile_id3 < m_rp.m_tile_end[3]; tile_id3 += gridDim_z) { - const index_type offset_3 = tile_id3 * m_rp.m_tile[3] + - (index_type)threadIdx_z + - (index_type)m_rp.m_lower[3]; - if (offset_3 < m_rp.m_upper[3] && - (index_type)threadIdx_z < m_rp.m_tile[3]) { - for (index_type tile_id2 = (index_type)blockIdx_y; - tile_id2 < m_rp.m_tile_end[2]; tile_id2 += gridDim_y) { - const index_type offset_2 = tile_id2 * m_rp.m_tile[2] + - (index_type)threadIdx_y + - (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && - (index_type)threadIdx_y < m_rp.m_tile[2]) { - for (index_type j = tile_id1; j < m_rp.m_tile_end[1]; - j += numbl1) { - const index_type offset_1 = - j * m_rp.m_tile[1] + thr_id1 + (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && thr_id1 < m_rp.m_tile[1]) { - for (index_type i = tile_id0; i < m_rp.m_tile_end[0]; - i += numbl0) { - const index_type offset_0 = i * m_rp.m_tile[0] + thr_id0 + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && - thr_id0 < m_rp.m_tile[0]) { - m_func(offset_0, offset_1, offset_2, offset_3); - } - } - } - } - } - } - } - } - } - // LR - else { - const index_type temp0 = m_rp.m_tile_end[0]; - const index_type temp1 = m_rp.m_tile_end[1]; - const index_type numbl1 = (temp1 <= max_blocks ? temp1 : max_blocks); - const index_type numbl0 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl1) - : (temp0 <= max_blocks ? temp0 : max_blocks)); - - const index_type tile_id0 = (index_type)blockIdx_x / numbl1; - const index_type tile_id1 = (index_type)blockIdx_x % numbl1; - const index_type thr_id0 = (index_type)threadIdx_x / m_rp.m_tile[1]; - const index_type thr_id1 = (index_type)threadIdx_x % m_rp.m_tile[1]; - - for (index_type i = tile_id0; i < m_rp.m_tile_end[0]; i += numbl0) { - const index_type offset_0 = - i * m_rp.m_tile[0] + thr_id0 + (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && thr_id0 < m_rp.m_tile[0]) { - for (index_type j = tile_id1; j < m_rp.m_tile_end[1]; j += numbl1) { - const index_type offset_1 = - j * m_rp.m_tile[1] + thr_id1 + (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && thr_id1 < m_rp.m_tile[1]) { - for (index_type tile_id2 = (index_type)blockIdx_y; - tile_id2 < m_rp.m_tile_end[2]; tile_id2 += gridDim_y) { - const index_type offset_2 = tile_id2 * m_rp.m_tile[2] + - (index_type)threadIdx_y + - (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && - (index_type)threadIdx_y < m_rp.m_tile[2]) { - for (index_type tile_id3 = (index_type)blockIdx_z; - tile_id3 < m_rp.m_tile_end[3]; tile_id3 += gridDim_z) { - const index_type offset_3 = tile_id3 * m_rp.m_tile[3] + - (index_type)threadIdx_z + - (index_type)m_rp.m_lower[3]; - if (offset_3 < m_rp.m_upper[3] && - (index_type)threadIdx_z < m_rp.m_tile[3]) { - m_func(offset_0, offset_1, offset_2, offset_3); - } - } - } - } - } - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; -}; - -// Specializations for void tag type -template <typename RP, typename Functor, typename Tag> -struct DeviceIterateTile<4, RP, Functor, Tag> { - using index_type = typename RP::index_type; - - KOKKOS_INLINE_FUNCTION - DeviceIterateTile(const RP& rp_, const Functor& f_) : m_rp(rp_), m_func(f_) {} - - static constexpr index_type max_blocks = 65535; - // static constexpr index_type max_blocks = - // static_cast<index_type>(Kokkos::Impl::ROCmTraits::UpperBoundGridCount); - - KOKKOS_INLINE_FUNCTION - void exec_range() const { - // enum { max_blocks = - // static_cast<index_type>(Kokkos::Impl::ROCmTraits::UpperBoundGridCount) }; - // const index_type max_blocks = static_cast<index_type>( - // Kokkos::Impl::rocm_internal_maximum_grid_count() ); - if (RP::inner_direction == RP::Left) { - const index_type temp0 = m_rp.m_tile_end[0]; - const index_type temp1 = m_rp.m_tile_end[1]; - const index_type numbl0 = (temp0 <= max_blocks ? temp0 : max_blocks); - const index_type numbl1 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl0) - : (temp1 <= max_blocks ? temp1 : max_blocks)); - - const index_type tile_id0 = (index_type)blockIdx_x % numbl0; - const index_type tile_id1 = (index_type)blockIdx_x / numbl0; - const index_type thr_id0 = (index_type)threadIdx_x % m_rp.m_tile[0]; - const index_type thr_id1 = (index_type)threadIdx_x / m_rp.m_tile[0]; - - for (index_type tile_id3 = (index_type)blockIdx_z; - tile_id3 < m_rp.m_tile_end[3]; tile_id3 += gridDim_z) { - const index_type offset_3 = tile_id3 * m_rp.m_tile[3] + - (index_type)threadIdx_z + - (index_type)m_rp.m_lower[3]; - if (offset_3 < m_rp.m_upper[3] && - (index_type)threadIdx_z < m_rp.m_tile[3]) { - for (index_type tile_id2 = (index_type)blockIdx_y; - tile_id2 < m_rp.m_tile_end[2]; tile_id2 += gridDim_y) { - const index_type offset_2 = tile_id2 * m_rp.m_tile[2] + - (index_type)threadIdx_y + - (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && - (index_type)threadIdx_y < m_rp.m_tile[2]) { - for (index_type j = tile_id1; j < m_rp.m_tile_end[1]; - j += numbl1) { - const index_type offset_1 = - j * m_rp.m_tile[1] + thr_id1 + (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && thr_id1 < m_rp.m_tile[1]) { - for (index_type i = tile_id0; i < m_rp.m_tile_end[0]; - i += numbl0) { - const index_type offset_0 = i * m_rp.m_tile[0] + thr_id0 + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && - thr_id0 < m_rp.m_tile[0]) { - m_func(Tag(), offset_0, offset_1, offset_2, offset_3); - } - } - } - } - } - } - } - } - } else { - const index_type temp0 = m_rp.m_tile_end[0]; - const index_type temp1 = m_rp.m_tile_end[1]; - const index_type numbl1 = (temp1 <= max_blocks ? temp1 : max_blocks); - const index_type numbl0 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl1) - : (temp0 <= max_blocks ? temp0 : max_blocks)); - - const index_type tile_id0 = (index_type)blockIdx_x / numbl1; - const index_type tile_id1 = (index_type)blockIdx_x % numbl1; - const index_type thr_id0 = (index_type)threadIdx_x / m_rp.m_tile[1]; - const index_type thr_id1 = (index_type)threadIdx_x % m_rp.m_tile[1]; - - for (index_type i = tile_id0; i < m_rp.m_tile_end[0]; i += numbl0) { - const index_type offset_0 = - i * m_rp.m_tile[0] + thr_id0 + (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && thr_id0 < m_rp.m_tile[0]) { - for (index_type j = tile_id1; j < m_rp.m_tile_end[1]; j += numbl1) { - const index_type offset_1 = tile_id1 * m_rp.m_tile[1] + thr_id1 + - (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && thr_id1 < m_rp.m_tile[1]) { - for (index_type tile_id2 = (index_type)blockIdx_y; - tile_id2 < m_rp.m_tile_end[2]; tile_id2 += gridDim_y) { - const index_type offset_2 = tile_id2 * m_rp.m_tile[2] + - (index_type)threadIdx_y + - (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && - (index_type)threadIdx_y < m_rp.m_tile[2]) { - for (index_type tile_id3 = (index_type)blockIdx_z; - tile_id3 < m_rp.m_tile_end[3]; tile_id3 += gridDim_z) { - const index_type offset_3 = tile_id3 * m_rp.m_tile[3] + - (index_type)threadIdx_z + - (index_type)m_rp.m_lower[3]; - if (offset_3 < m_rp.m_upper[3] && - (index_type)threadIdx_z < m_rp.m_tile[3]) { - m_func(Tag(), offset_0, offset_1, offset_2, offset_3); - } - } - } - } - } - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; -}; - -// Rank 5 -// Specializations for void tag type -template <typename RP, typename Functor> -struct DeviceIterateTile<5, RP, Functor, void> { - using index_type = typename RP::index_type; - - [[hc]] DeviceIterateTile(const RP& rp_, const Functor& f_) - : m_rp(rp_), m_func(f_) {} - - static constexpr index_type max_blocks = 65535; - // static constexpr index_type max_blocks = - // static_cast<index_type>(Kokkos::Impl::ROCmTraits::UpperBoundGridCount); - - KOKKOS_INLINE_FUNCTION - void exec_range() const { - // enum { max_blocks = - // static_cast<index_type>(Kokkos::Impl::ROCmTraits::UpperBoundGridCount) }; - // const index_type max_blocks = static_cast<index_type>( - // Kokkos::Impl::rocm_internal_maximum_grid_count() ); - // LL - if (RP::inner_direction == RP::Left) { - index_type temp0 = m_rp.m_tile_end[0]; - index_type temp1 = m_rp.m_tile_end[1]; - const index_type numbl0 = (temp0 <= max_blocks ? temp0 : max_blocks); - const index_type numbl1 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl0) - : (temp1 <= max_blocks ? temp1 : max_blocks)); - - const index_type tile_id0 = (index_type)blockIdx_x % numbl0; - const index_type tile_id1 = (index_type)blockIdx_x / numbl0; - const index_type thr_id0 = (index_type)threadIdx_x % m_rp.m_tile[0]; - const index_type thr_id1 = (index_type)threadIdx_x / m_rp.m_tile[0]; - - temp0 = m_rp.m_tile_end[2]; - temp1 = m_rp.m_tile_end[3]; - const index_type numbl2 = (temp0 <= max_blocks ? temp0 : max_blocks); - const index_type numbl3 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl2) - : (temp1 <= max_blocks ? temp1 : max_blocks)); - - const index_type tile_id2 = (index_type)blockIdx_y % numbl2; - const index_type tile_id3 = (index_type)blockIdx_y / numbl2; - const index_type thr_id2 = (index_type)threadIdx_y % m_rp.m_tile[2]; - const index_type thr_id3 = (index_type)threadIdx_y / m_rp.m_tile[2]; - - for (index_type tile_id4 = (index_type)blockIdx_z; - tile_id4 < m_rp.m_tile_end[4]; tile_id4 += gridDim_z) { - const index_type offset_4 = tile_id4 * m_rp.m_tile[4] + - (index_type)threadIdx_z + - (index_type)m_rp.m_lower[4]; - if (offset_4 < m_rp.m_upper[4] && - (index_type)threadIdx_z < m_rp.m_tile[4]) { - for (index_type l = tile_id3; l < m_rp.m_tile_end[3]; l += numbl3) { - const index_type offset_3 = - l * m_rp.m_tile[3] + thr_id3 + (index_type)m_rp.m_lower[3]; - if (offset_3 < m_rp.m_upper[3] && thr_id3 < m_rp.m_tile[3]) { - for (index_type k = tile_id2; k < m_rp.m_tile_end[2]; - k += numbl2) { - const index_type offset_2 = - k * m_rp.m_tile[2] + thr_id2 + (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && thr_id2 < m_rp.m_tile[2]) { - for (index_type j = tile_id1; j < m_rp.m_tile_end[1]; - j += numbl1) { - const index_type offset_1 = j * m_rp.m_tile[1] + thr_id1 + - (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && - thr_id1 < m_rp.m_tile[1]) { - for (index_type i = tile_id0; i < m_rp.m_tile_end[0]; - i += numbl0) { - const index_type offset_0 = i * m_rp.m_tile[0] + - thr_id0 + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && - thr_id0 < m_rp.m_tile[0]) { - m_func(offset_0, offset_1, offset_2, offset_3, - offset_4); - } - } - } - } - } - } - } - } - } - } - } - // LR - else { - index_type temp0 = m_rp.m_tile_end[0]; - index_type temp1 = m_rp.m_tile_end[1]; - const index_type numbl1 = (temp1 <= max_blocks ? temp1 : max_blocks); - const index_type numbl0 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl1) - : (temp0 <= max_blocks ? temp0 : max_blocks)); - - const index_type tile_id0 = (index_type)blockIdx_x / numbl1; - const index_type tile_id1 = (index_type)blockIdx_x % numbl1; - const index_type thr_id0 = (index_type)threadIdx_x / m_rp.m_tile[1]; - const index_type thr_id1 = (index_type)threadIdx_x % m_rp.m_tile[1]; - - temp0 = m_rp.m_tile_end[2]; - temp1 = m_rp.m_tile_end[3]; - const index_type numbl3 = (temp1 <= max_blocks ? temp1 : max_blocks); - const index_type numbl2 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl3) - : (temp0 <= max_blocks ? temp0 : max_blocks)); - - const index_type tile_id2 = (index_type)blockIdx_y / numbl3; - const index_type tile_id3 = (index_type)blockIdx_y % numbl3; - const index_type thr_id2 = (index_type)threadIdx_y / m_rp.m_tile[3]; - const index_type thr_id3 = (index_type)threadIdx_y % m_rp.m_tile[3]; - - for (index_type i = tile_id0; i < m_rp.m_tile_end[0]; i += numbl0) { - const index_type offset_0 = - i * m_rp.m_tile[0] + thr_id0 + (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && thr_id0 < m_rp.m_tile[0]) { - for (index_type j = tile_id1; j < m_rp.m_tile_end[1]; j += numbl1) { - const index_type offset_1 = - j * m_rp.m_tile[1] + thr_id1 + (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && thr_id1 < m_rp.m_tile[1]) { - for (index_type k = tile_id2; k < m_rp.m_tile_end[2]; - k += numbl2) { - const index_type offset_2 = - k * m_rp.m_tile[2] + thr_id2 + (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && thr_id2 < m_rp.m_tile[2]) { - for (index_type l = tile_id3; l < m_rp.m_tile_end[3]; - l += numbl3) { - const index_type offset_3 = l * m_rp.m_tile[3] + thr_id3 + - (index_type)m_rp.m_lower[3]; - if (offset_3 < m_rp.m_upper[3] && - thr_id3 < m_rp.m_tile[3]) { - for (index_type tile_id4 = (index_type)blockIdx_z; - tile_id4 < m_rp.m_tile_end[4]; - tile_id4 += gridDim_z) { - const index_type offset_4 = tile_id4 * m_rp.m_tile[4] + - (index_type)threadIdx_z + - (index_type)m_rp.m_lower[4]; - if (offset_4 < m_rp.m_upper[4] && - (index_type)threadIdx_z < m_rp.m_tile[4]) { - m_func(offset_0, offset_1, offset_2, offset_3, - offset_4); - } - } - } - } - } - } - } - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; -}; - -// Specializations for tag type -template <typename RP, typename Functor, typename Tag> -struct DeviceIterateTile<5, RP, Functor, Tag> { - using index_type = typename RP::index_type; - - KOKKOS_INLINE_FUNCTION - DeviceIterateTile(const RP& rp_, const Functor& f_) : m_rp(rp_), m_func(f_) {} - - static constexpr index_type max_blocks = 65535; - // static constexpr index_type max_blocks = - // static_cast<index_type>(Kokkos::Impl::ROCmTraits::UpperBoundGridCount); - - KOKKOS_INLINE_FUNCTION - void exec_range() const { - // enum { max_blocks = - // static_cast<index_type>(Kokkos::Impl::ROCmTraits::UpperBoundGridCount) }; - // const index_type max_blocks = static_cast<index_type>( - // Kokkos::Impl::rocm_internal_maximum_grid_count() ); - // LL - if (RP::inner_direction == RP::Left) { - index_type temp0 = m_rp.m_tile_end[0]; - index_type temp1 = m_rp.m_tile_end[1]; - const index_type numbl0 = (temp0 <= max_blocks ? temp0 : max_blocks); - const index_type numbl1 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl0) - : (temp1 <= max_blocks ? temp1 : max_blocks)); - - const index_type tile_id0 = (index_type)blockIdx_x % numbl0; - const index_type tile_id1 = (index_type)blockIdx_x / numbl0; - const index_type thr_id0 = (index_type)threadIdx_x % m_rp.m_tile[0]; - const index_type thr_id1 = (index_type)threadIdx_x / m_rp.m_tile[0]; - - temp0 = m_rp.m_tile_end[2]; - temp1 = m_rp.m_tile_end[3]; - const index_type numbl2 = (temp0 <= max_blocks ? temp0 : max_blocks); - const index_type numbl3 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl2) - : (temp1 <= max_blocks ? temp1 : max_blocks)); - - const index_type tile_id2 = (index_type)blockIdx_y % numbl2; - const index_type tile_id3 = (index_type)blockIdx_y / numbl2; - const index_type thr_id2 = (index_type)threadIdx_y % m_rp.m_tile[2]; - const index_type thr_id3 = (index_type)threadIdx_y / m_rp.m_tile[2]; - - for (index_type tile_id4 = (index_type)blockIdx_z; - tile_id4 < m_rp.m_tile_end[4]; tile_id4 += gridDim_z) { - const index_type offset_4 = tile_id4 * m_rp.m_tile[4] + - (index_type)threadIdx_z + - (index_type)m_rp.m_lower[4]; - if (offset_4 < m_rp.m_upper[4] && - (index_type)threadIdx_z < m_rp.m_tile[4]) { - for (index_type l = tile_id3; l < m_rp.m_tile_end[3]; l += numbl3) { - const index_type offset_3 = - l * m_rp.m_tile[3] + thr_id3 + (index_type)m_rp.m_lower[3]; - if (offset_3 < m_rp.m_upper[3] && thr_id3 < m_rp.m_tile[3]) { - for (index_type k = tile_id2; k < m_rp.m_tile_end[2]; - k += numbl2) { - const index_type offset_2 = - k * m_rp.m_tile[2] + thr_id2 + (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && thr_id2 < m_rp.m_tile[2]) { - for (index_type j = tile_id1; j < m_rp.m_tile_end[1]; - j += numbl1) { - const index_type offset_1 = j * m_rp.m_tile[1] + thr_id1 + - (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && - thr_id1 < m_rp.m_tile[1]) { - for (index_type i = tile_id0; i < m_rp.m_tile_end[0]; - i += numbl0) { - const index_type offset_0 = i * m_rp.m_tile[0] + - thr_id0 + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && - thr_id0 < m_rp.m_tile[0]) { - m_func(Tag(), offset_0, offset_1, offset_2, offset_3, - offset_4); - } - } - } - } - } - } - } - } - } - } - } - // LR - else { - index_type temp0 = m_rp.m_tile_end[0]; - index_type temp1 = m_rp.m_tile_end[1]; - const index_type numbl1 = (temp1 <= max_blocks ? temp1 : max_blocks); - const index_type numbl0 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl1) - : (temp0 <= max_blocks ? temp0 : max_blocks)); - - const index_type tile_id0 = (index_type)blockIdx_x / numbl1; - const index_type tile_id1 = (index_type)blockIdx_x % numbl1; - const index_type thr_id0 = (index_type)threadIdx_x / m_rp.m_tile[1]; - const index_type thr_id1 = (index_type)threadIdx_x % m_rp.m_tile[1]; - - temp0 = m_rp.m_tile_end[2]; - temp1 = m_rp.m_tile_end[3]; - const index_type numbl3 = (temp1 <= max_blocks ? temp1 : max_blocks); - const index_type numbl2 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl3) - : (temp0 <= max_blocks ? temp0 : max_blocks)); - - const index_type tile_id2 = (index_type)blockIdx_y / numbl3; - const index_type tile_id3 = (index_type)blockIdx_y % numbl3; - const index_type thr_id2 = (index_type)threadIdx_y / m_rp.m_tile[3]; - const index_type thr_id3 = (index_type)threadIdx_y % m_rp.m_tile[3]; - - for (index_type i = tile_id0; i < m_rp.m_tile_end[0]; i += numbl0) { - const index_type offset_0 = - i * m_rp.m_tile[0] + thr_id0 + (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && thr_id0 < m_rp.m_tile[0]) { - for (index_type j = tile_id1; j < m_rp.m_tile_end[1]; j += numbl1) { - const index_type offset_1 = - j * m_rp.m_tile[1] + thr_id1 + (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && thr_id1 < m_rp.m_tile[1]) { - for (index_type k = tile_id2; k < m_rp.m_tile_end[2]; - k += numbl2) { - const index_type offset_2 = - k * m_rp.m_tile[2] + thr_id2 + (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && thr_id2 < m_rp.m_tile[2]) { - for (index_type l = tile_id3; l < m_rp.m_tile_end[3]; - l += numbl3) { - const index_type offset_3 = l * m_rp.m_tile[3] + thr_id3 + - (index_type)m_rp.m_lower[3]; - if (offset_3 < m_rp.m_upper[3] && - thr_id3 < m_rp.m_tile[3]) { - for (index_type tile_id4 = (index_type)blockIdx_z; - tile_id4 < m_rp.m_tile_end[4]; - tile_id4 += gridDim_z) { - const index_type offset_4 = tile_id4 * m_rp.m_tile[4] + - (index_type)threadIdx_z + - (index_type)m_rp.m_lower[4]; - if (offset_4 < m_rp.m_upper[4] && - (index_type)threadIdx_z < m_rp.m_tile[4]) { - m_func(Tag(), offset_0, offset_1, offset_2, offset_3, - offset_4); - } - } - } - } - } - } - } - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; -}; - -// Rank 6 -// Specializations for void tag type -template <typename RP, typename Functor> -struct DeviceIterateTile<6, RP, Functor, void> { - using index_type = typename RP::index_type; - - [[hc]] DeviceIterateTile(const RP& rp_, const Functor& f_) - : m_rp(rp_), m_func(f_) {} - - static constexpr index_type max_blocks = 65535; - // static constexpr index_type max_blocks = - // static_cast<index_type>(Kokkos::Impl::ROCmTraits::UpperBoundGridCount); - - KOKKOS_INLINE_FUNCTION - void exec_range() const { - // enum { max_blocks = - // static_cast<index_type>(Kokkos::Impl::ROCmTraits::UpperBoundGridCount) }; - // const index_type max_blocks = static_cast<index_type>( - // Kokkos::Impl::rocm_internal_maximum_grid_count() ); - // LL - if (RP::inner_direction == RP::Left) { - index_type temp0 = m_rp.m_tile_end[0]; - index_type temp1 = m_rp.m_tile_end[1]; - const index_type numbl0 = (temp0 <= max_blocks ? temp0 : max_blocks); - const index_type numbl1 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl0) - : (temp1 <= max_blocks ? temp1 : max_blocks)); - - const index_type tile_id0 = (index_type)blockIdx_x % numbl0; - const index_type tile_id1 = (index_type)blockIdx_x / numbl0; - const index_type thr_id0 = (index_type)threadIdx_x % m_rp.m_tile[0]; - const index_type thr_id1 = (index_type)threadIdx_x / m_rp.m_tile[0]; - - temp0 = m_rp.m_tile_end[2]; - temp1 = m_rp.m_tile_end[3]; - const index_type numbl2 = (temp0 <= max_blocks ? temp0 : max_blocks); - const index_type numbl3 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl2) - : (temp1 <= max_blocks ? temp1 : max_blocks)); - - const index_type tile_id2 = (index_type)blockIdx_y % numbl2; - const index_type tile_id3 = (index_type)blockIdx_y / numbl2; - const index_type thr_id2 = (index_type)threadIdx_y % m_rp.m_tile[2]; - const index_type thr_id3 = (index_type)threadIdx_y / m_rp.m_tile[2]; - - temp0 = m_rp.m_tile_end[4]; - temp1 = m_rp.m_tile_end[5]; - const index_type numbl4 = (temp0 <= max_blocks ? temp0 : max_blocks); - const index_type numbl5 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl4) - : (temp1 <= max_blocks ? temp1 : max_blocks)); - - const index_type tile_id4 = (index_type)blockIdx_z % numbl4; - const index_type tile_id5 = (index_type)blockIdx_z / numbl4; - const index_type thr_id4 = (index_type)threadIdx_z % m_rp.m_tile[4]; - const index_type thr_id5 = (index_type)threadIdx_z / m_rp.m_tile[4]; - - for (index_type n = tile_id5; n < m_rp.m_tile_end[5]; n += numbl5) { - const index_type offset_5 = - n * m_rp.m_tile[5] + thr_id5 + (index_type)m_rp.m_lower[5]; - if (offset_5 < m_rp.m_upper[5] && thr_id5 < m_rp.m_tile[5]) { - for (index_type m = tile_id4; m < m_rp.m_tile_end[4]; m += numbl4) { - const index_type offset_4 = - m * m_rp.m_tile[4] + thr_id4 + (index_type)m_rp.m_lower[4]; - if (offset_4 < m_rp.m_upper[4] && thr_id4 < m_rp.m_tile[4]) { - for (index_type l = tile_id3; l < m_rp.m_tile_end[3]; - l += numbl3) { - const index_type offset_3 = - l * m_rp.m_tile[3] + thr_id3 + (index_type)m_rp.m_lower[3]; - if (offset_3 < m_rp.m_upper[3] && thr_id3 < m_rp.m_tile[3]) { - for (index_type k = tile_id2; k < m_rp.m_tile_end[2]; - k += numbl2) { - const index_type offset_2 = k * m_rp.m_tile[2] + thr_id2 + - (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && - thr_id2 < m_rp.m_tile[2]) { - for (index_type j = tile_id1; j < m_rp.m_tile_end[1]; - j += numbl1) { - const index_type offset_1 = j * m_rp.m_tile[1] + - thr_id1 + - (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && - thr_id1 < m_rp.m_tile[1]) { - for (index_type i = tile_id0; i < m_rp.m_tile_end[0]; - i += numbl0) { - const index_type offset_0 = - i * m_rp.m_tile[0] + thr_id0 + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && - thr_id0 < m_rp.m_tile[0]) { - m_func(offset_0, offset_1, offset_2, offset_3, - offset_4, offset_5); - } - } - } - } - } - } - } - } - } - } - } - } - } - // LR - else { - index_type temp0 = m_rp.m_tile_end[0]; - index_type temp1 = m_rp.m_tile_end[1]; - const index_type numbl1 = (temp1 <= max_blocks ? temp1 : max_blocks); - const index_type numbl0 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl1) - : (temp0 <= max_blocks ? temp0 : max_blocks)); - - const index_type tile_id0 = (index_type)blockIdx_x / numbl1; - const index_type tile_id1 = (index_type)blockIdx_x % numbl1; - const index_type thr_id0 = (index_type)threadIdx_x / m_rp.m_tile[1]; - const index_type thr_id1 = (index_type)threadIdx_x % m_rp.m_tile[1]; - - temp0 = m_rp.m_tile_end[2]; - temp1 = m_rp.m_tile_end[3]; - const index_type numbl3 = (temp1 <= max_blocks ? temp1 : max_blocks); - const index_type numbl2 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl3) - : (temp0 <= max_blocks ? temp0 : max_blocks)); - - const index_type tile_id2 = (index_type)blockIdx_y / numbl3; - const index_type tile_id3 = (index_type)blockIdx_y % numbl3; - const index_type thr_id2 = (index_type)threadIdx_y / m_rp.m_tile[3]; - const index_type thr_id3 = (index_type)threadIdx_y % m_rp.m_tile[3]; - - temp0 = m_rp.m_tile_end[4]; - temp1 = m_rp.m_tile_end[5]; - const index_type numbl5 = (temp1 <= max_blocks ? temp1 : max_blocks); - const index_type numbl4 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl5) - : (temp0 <= max_blocks ? temp0 : max_blocks)); - - const index_type tile_id4 = (index_type)blockIdx_z / numbl5; - const index_type tile_id5 = (index_type)blockIdx_z % numbl5; - const index_type thr_id4 = (index_type)threadIdx_z / m_rp.m_tile[5]; - const index_type thr_id5 = (index_type)threadIdx_z % m_rp.m_tile[5]; - - for (index_type i = tile_id0; i < m_rp.m_tile_end[0]; i += numbl0) { - const index_type offset_0 = - i * m_rp.m_tile[0] + thr_id0 + (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && thr_id0 < m_rp.m_tile[0]) { - for (index_type j = tile_id1; j < m_rp.m_tile_end[1]; j += numbl1) { - const index_type offset_1 = - j * m_rp.m_tile[1] + thr_id1 + (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && thr_id1 < m_rp.m_tile[1]) { - for (index_type k = tile_id2; k < m_rp.m_tile_end[2]; - k += numbl2) { - const index_type offset_2 = - k * m_rp.m_tile[2] + thr_id2 + (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && thr_id2 < m_rp.m_tile[2]) { - for (index_type l = tile_id3; l < m_rp.m_tile_end[3]; - l += numbl3) { - const index_type offset_3 = l * m_rp.m_tile[3] + thr_id3 + - (index_type)m_rp.m_lower[3]; - if (offset_3 < m_rp.m_upper[3] && - thr_id3 < m_rp.m_tile[3]) { - for (index_type m = tile_id4; m < m_rp.m_tile_end[4]; - m += numbl4) { - const index_type offset_4 = m * m_rp.m_tile[4] + - thr_id4 + - (index_type)m_rp.m_lower[4]; - if (offset_4 < m_rp.m_upper[4] && - thr_id4 < m_rp.m_tile[4]) { - for (index_type n = tile_id5; n < m_rp.m_tile_end[5]; - n += numbl5) { - const index_type offset_5 = - n * m_rp.m_tile[5] + thr_id5 + - (index_type)m_rp.m_lower[5]; - if (offset_5 < m_rp.m_upper[5] && - thr_id5 < m_rp.m_tile[5]) { - m_func(offset_0, offset_1, offset_2, offset_3, - offset_4, offset_5); - } - } - } - } - } - } - } - } - } - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; -}; - -// Specializations for tag type -template <typename RP, typename Functor, typename Tag> -struct DeviceIterateTile<6, RP, Functor, Tag> { - using index_type = typename RP::index_type; - - KOKKOS_INLINE_FUNCTION - DeviceIterateTile(const RP& rp_, const Functor& f_) : m_rp(rp_), m_func(f_) {} - - static constexpr index_type max_blocks = 65535; - // static constexpr index_type max_blocks = - // static_cast<index_type>(Kokkos::Impl::ROCmTraits::UpperBoundGridCount); - - KOKKOS_INLINE_FUNCTION - void exec_range() const { - // enum { max_blocks = - // static_cast<index_type>(Kokkos::Impl::ROCmTraits::UpperBoundGridCount) }; - // const index_type max_blocks = static_cast<index_type>( - // Kokkos::Impl::rocm_internal_maximum_grid_count() ); - // LL - if (RP::inner_direction == RP::Left) { - index_type temp0 = m_rp.m_tile_end[0]; - index_type temp1 = m_rp.m_tile_end[1]; - const index_type numbl0 = (temp0 <= max_blocks ? temp0 : max_blocks); - const index_type numbl1 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl0) - : (temp1 <= max_blocks ? temp1 : max_blocks)); - - const index_type tile_id0 = (index_type)blockIdx_x % numbl0; - const index_type tile_id1 = (index_type)blockIdx_x / numbl0; - const index_type thr_id0 = (index_type)threadIdx_x % m_rp.m_tile[0]; - const index_type thr_id1 = (index_type)threadIdx_x / m_rp.m_tile[0]; - - temp0 = m_rp.m_tile_end[2]; - temp1 = m_rp.m_tile_end[3]; - const index_type numbl2 = (temp0 <= max_blocks ? temp0 : max_blocks); - const index_type numbl3 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl2) - : (temp1 <= max_blocks ? temp1 : max_blocks)); - - const index_type tile_id2 = (index_type)blockIdx_y % numbl2; - const index_type tile_id3 = (index_type)blockIdx_y / numbl2; - const index_type thr_id2 = (index_type)threadIdx_y % m_rp.m_tile[2]; - const index_type thr_id3 = (index_type)threadIdx_y / m_rp.m_tile[2]; - - temp0 = m_rp.m_tile_end[4]; - temp1 = m_rp.m_tile_end[5]; - const index_type numbl4 = (temp0 <= max_blocks ? temp0 : max_blocks); - const index_type numbl5 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl4) - : (temp1 <= max_blocks ? temp1 : max_blocks)); - - const index_type tile_id4 = (index_type)blockIdx_z % numbl4; - const index_type tile_id5 = (index_type)blockIdx_z / numbl4; - const index_type thr_id4 = (index_type)threadIdx_z % m_rp.m_tile[4]; - const index_type thr_id5 = (index_type)threadIdx_z / m_rp.m_tile[4]; - - for (index_type n = tile_id5; n < m_rp.m_tile_end[5]; n += numbl5) { - const index_type offset_5 = - n * m_rp.m_tile[5] + thr_id5 + (index_type)m_rp.m_lower[5]; - if (offset_5 < m_rp.m_upper[5] && thr_id5 < m_rp.m_tile[5]) { - for (index_type m = tile_id4; m < m_rp.m_tile_end[4]; m += numbl4) { - const index_type offset_4 = - m * m_rp.m_tile[4] + thr_id4 + (index_type)m_rp.m_lower[4]; - if (offset_4 < m_rp.m_upper[4] && thr_id4 < m_rp.m_tile[4]) { - for (index_type l = tile_id3; l < m_rp.m_tile_end[3]; - l += numbl3) { - const index_type offset_3 = - l * m_rp.m_tile[3] + thr_id3 + (index_type)m_rp.m_lower[3]; - if (offset_3 < m_rp.m_upper[3] && thr_id3 < m_rp.m_tile[3]) { - for (index_type k = tile_id2; k < m_rp.m_tile_end[2]; - k += numbl2) { - const index_type offset_2 = k * m_rp.m_tile[2] + thr_id2 + - (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && - thr_id2 < m_rp.m_tile[2]) { - for (index_type j = tile_id1; j < m_rp.m_tile_end[1]; - j += numbl1) { - const index_type offset_1 = j * m_rp.m_tile[1] + - thr_id1 + - (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && - thr_id1 < m_rp.m_tile[1]) { - for (index_type i = tile_id0; i < m_rp.m_tile_end[0]; - i += numbl0) { - const index_type offset_0 = - i * m_rp.m_tile[0] + thr_id0 + - (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && - thr_id0 < m_rp.m_tile[0]) { - m_func(Tag(), offset_0, offset_1, offset_2, - offset_3, offset_4, offset_5); - } - } - } - } - } - } - } - } - } - } - } - } - } - // LR - else { - index_type temp0 = m_rp.m_tile_end[0]; - index_type temp1 = m_rp.m_tile_end[1]; - const index_type numbl1 = (temp1 <= max_blocks ? temp1 : max_blocks); - const index_type numbl0 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl1) - : (temp0 <= max_blocks ? temp0 : max_blocks)); - - const index_type tile_id0 = (index_type)blockIdx_x / numbl1; - const index_type tile_id1 = (index_type)blockIdx_x % numbl1; - const index_type thr_id0 = (index_type)threadIdx_x / m_rp.m_tile[1]; - const index_type thr_id1 = (index_type)threadIdx_x % m_rp.m_tile[1]; - - temp0 = m_rp.m_tile_end[2]; - temp1 = m_rp.m_tile_end[3]; - const index_type numbl3 = (temp1 <= max_blocks ? temp1 : max_blocks); - const index_type numbl2 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl3) - : (temp0 <= max_blocks ? temp0 : max_blocks)); - - const index_type tile_id2 = (index_type)blockIdx_y / numbl3; - const index_type tile_id3 = (index_type)blockIdx_y % numbl3; - const index_type thr_id2 = (index_type)threadIdx_y / m_rp.m_tile[3]; - const index_type thr_id3 = (index_type)threadIdx_y % m_rp.m_tile[3]; - - temp0 = m_rp.m_tile_end[4]; - temp1 = m_rp.m_tile_end[5]; - const index_type numbl5 = (temp1 <= max_blocks ? temp1 : max_blocks); - const index_type numbl4 = - (temp0 * temp1 > max_blocks - ? index_type(max_blocks / numbl5) - : (temp0 <= max_blocks ? temp0 : max_blocks)); - - const index_type tile_id4 = (index_type)blockIdx_z / numbl5; - const index_type tile_id5 = (index_type)blockIdx_z % numbl5; - const index_type thr_id4 = (index_type)threadIdx_z / m_rp.m_tile[5]; - const index_type thr_id5 = (index_type)threadIdx_z % m_rp.m_tile[5]; - - for (index_type i = tile_id0; i < m_rp.m_tile_end[0]; i += numbl0) { - const index_type offset_0 = - i * m_rp.m_tile[0] + thr_id0 + (index_type)m_rp.m_lower[0]; - if (offset_0 < m_rp.m_upper[0] && thr_id0 < m_rp.m_tile[0]) { - for (index_type j = tile_id1; j < m_rp.m_tile_end[1]; j += numbl1) { - const index_type offset_1 = - j * m_rp.m_tile[1] + thr_id1 + (index_type)m_rp.m_lower[1]; - if (offset_1 < m_rp.m_upper[1] && thr_id1 < m_rp.m_tile[1]) { - for (index_type k = tile_id2; k < m_rp.m_tile_end[2]; - k += numbl2) { - const index_type offset_2 = - k * m_rp.m_tile[2] + thr_id2 + (index_type)m_rp.m_lower[2]; - if (offset_2 < m_rp.m_upper[2] && thr_id2 < m_rp.m_tile[2]) { - for (index_type l = tile_id3; l < m_rp.m_tile_end[3]; - l += numbl3) { - const index_type offset_3 = l * m_rp.m_tile[3] + thr_id3 + - (index_type)m_rp.m_lower[3]; - if (offset_3 < m_rp.m_upper[3] && - thr_id3 < m_rp.m_tile[3]) { - for (index_type m = tile_id4; m < m_rp.m_tile_end[4]; - m += numbl4) { - const index_type offset_4 = m * m_rp.m_tile[4] + - thr_id4 + - (index_type)m_rp.m_lower[4]; - if (offset_4 < m_rp.m_upper[4] && - thr_id4 < m_rp.m_tile[4]) { - for (index_type n = tile_id5; n < m_rp.m_tile_end[5]; - n += numbl5) { - const index_type offset_5 = - n * m_rp.m_tile[5] + thr_id5 + - (index_type)m_rp.m_lower[5]; - if (offset_5 < m_rp.m_upper[5] && - thr_id5 < m_rp.m_tile[5]) { - m_func(Tag(), offset_0, offset_1, offset_2, - offset_3, offset_4, offset_5); - } - } - } - } - } - } - } - } - } - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; -}; - -} // namespace Refactor - -// ---------------------------------------------------------------------------------- - -namespace Reduce { - -template <typename T> -using is_void = std::is_same<T, void>; - -template <typename T> -struct is_array_type : std::false_type { - using value_type = T; -}; - -template <typename T> -struct is_array_type<T*> : std::true_type { - using value_type = T; -}; - -template <typename T> -struct is_array_type<T[]> : std::true_type { - using value_type = T; -}; - -// ------------------------------------------------------------------ // -template <int N, typename RP, typename Functor, typename Tag, - typename ValueType, typename Enable = void> -struct DeviceIterateTile; - -// ParallelReduce iteration pattern -// Scalar reductions - -// num_blocks = min( num_tiles, max_num_blocks ); //i.e. determined by number of -// tiles and reduction algorithm constraints extract n-dim tile offsets (i.e. -// tile's global starting mulit-index) from the tileid = blockid using tile -// dimensions local indices within a tile extracted from (index_type)threadIdx_x -// using tile dims, constrained by blocksize combine tile and local id info for -// multi-dim global ids - -// Pattern: -// Each block+thread is responsible for a tile+local_id combo (additional when -// striding by num_blocks) -// 1. create offset arrays -// 2. loop over number of tiles, striding by griddim (equal to num tiles, or max -// num blocks) -// 3. temps set for tile_idx and thrd_idx, which will be modified -// 4. if LL vs LR: -// determine tile starting point offsets (multidim) -// determine local index offsets (multidim) -// concatentate tile offset + local offset for global multi-dim index -// if offset withinin range bounds AND local offset within tile bounds, call -// functor - -// ValueType = T -// Rank 2 -// Specializations for void tag type -template <typename RP, typename Functor, typename ValueType> -struct DeviceIterateTile< - 2, RP, Functor, void, ValueType, - typename std::enable_if<!is_array_type<ValueType>::value>::type> { - using index_type = typename RP::index_type; - - [[hc]] DeviceIterateTile(const RP& rp_, const Functor& f_, ValueType& v_) - : m_rp(rp_), m_func(f_), m_v(v_) {} - - KOKKOS_INLINE_FUNCTION - void exec_range() const { - if ((index_type)blockIdx_x < m_rp.m_num_tiles && - (index_type)threadIdx_y < m_rp.m_prod_tile_dims) { - index_type m_offset[RP::rank]; // tile starting global id offset - index_type m_local_offset[RP::rank]; // tile starting global id offset - - for (index_type tileidx = (index_type)blockIdx_x; - tileidx < m_rp.m_num_tiles; tileidx += gridDim_x) { - index_type tile_idx = - tileidx; // temp because tile_idx will be modified while - // determining tile starting point offsets - index_type thrd_idx = (index_type)threadIdx_y; - bool in_bounds = true; - - // LL - if (RP::inner_direction == RP::Left) { - for (int i = 0; i < RP::rank; ++i) { - // Deduce this blocks tile_id - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(m_offset[0], m_offset[1], m_v); - } - } - // LR - else { - for (int i = RP::rank - 1; i >= 0; --i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(m_offset[0], m_offset[1], m_v); - } - } - } - } - - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; - ValueType& m_v; -}; - -// Specializations for tag type -template <typename RP, typename Functor, typename Tag, typename ValueType> -struct DeviceIterateTile< - 2, RP, Functor, Tag, ValueType, - typename std::enable_if<!is_array_type<ValueType>::value && - !is_void<Tag>::value>::type> { - using index_type = typename RP::index_type; - - KOKKOS_INLINE_FUNCTION - DeviceIterateTile(const RP& rp_, const Functor& f_, ValueType& v_) - : m_rp(rp_), m_func(f_), m_v(v_) {} - - KOKKOS_INLINE_FUNCTION - void exec_range() const { - if ((index_type)blockIdx_x < m_rp.m_num_tiles && - (index_type)threadIdx_y < m_rp.m_prod_tile_dims) { - index_type m_offset[RP::rank]; // tile starting global id offset - index_type m_local_offset[RP::rank]; // tile starting global id offset - - for (index_type tileidx = (index_type)blockIdx_x; - tileidx < m_rp.m_num_tiles; tileidx += gridDim_x) { - index_type tile_idx = - tileidx; // temp because tile_idx will be modified while - // determining tile starting point offsets - index_type thrd_idx = (index_type)threadIdx_y; - bool in_bounds = true; - - // LL - if (RP::inner_direction == RP::Left) { - for (int i = 0; i < RP::rank; ++i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx_y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(Tag(), m_offset[0], m_offset[1], m_v); - } - } - // LR - else { - for (int i = RP::rank - 1; i >= 0; --i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx_y - m_local_offset[i] = - (thrd_idx % m_rp.m_tile[i]); // Move this to first computation, - // add to m_offset right away - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(Tag(), m_offset[0], m_offset[1], m_v); - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; - ValueType& m_v; -}; - -// Rank 3 -// Specializations for void tag type -template <typename RP, typename Functor, typename ValueType> -struct DeviceIterateTile< - 3, RP, Functor, void, ValueType, - typename std::enable_if<!is_array_type<ValueType>::value>::type> { - using index_type = typename RP::index_type; - - [[hc]] DeviceIterateTile(const RP& rp_, const Functor& f_, ValueType& v_) - : m_rp(rp_), m_func(f_), m_v(v_) {} - - KOKKOS_INLINE_FUNCTION - void exec_range() const { - if ((index_type)blockIdx_x < m_rp.m_num_tiles && - (index_type)threadIdx_y < m_rp.m_prod_tile_dims) { - index_type m_offset[RP::rank]; // tile starting global id offset - index_type m_local_offset[RP::rank]; // tile starting global id offset - - for (index_type tileidx = (index_type)blockIdx_x; - tileidx < m_rp.m_num_tiles; tileidx += gridDim_x) { - index_type tile_idx = - tileidx; // temp because tile_idx will be modified while - // determining tile starting point offsets - index_type thrd_idx = (index_type)threadIdx_y; - bool in_bounds = true; - - // LL - if (RP::inner_direction == RP::Left) { - for (int i = 0; i < RP::rank; ++i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx_y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(m_offset[0], m_offset[1], m_offset[2], m_v); - } - } - // LR - else { - for (int i = RP::rank - 1; i >= 0; --i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx_y - m_local_offset[i] = - (thrd_idx % m_rp.m_tile[i]); // Move this to first computation, - // add to m_offset right away - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(m_offset[0], m_offset[1], m_offset[2], m_v); - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; - ValueType& m_v; -}; - -// Specializations for void tag type -template <typename RP, typename Functor, typename Tag, typename ValueType> -struct DeviceIterateTile< - 3, RP, Functor, Tag, ValueType, - typename std::enable_if<!is_array_type<ValueType>::value && - !is_void<Tag>::value>::type> { - using index_type = typename RP::index_type; - - KOKKOS_INLINE_FUNCTION - DeviceIterateTile(const RP& rp_, const Functor& f_, ValueType& v_) - : m_rp(rp_), m_func(f_), m_v(v_) {} - - KOKKOS_INLINE_FUNCTION - void exec_range() const { - if ((index_type)blockIdx_x < m_rp.m_num_tiles && - (index_type)threadIdx_y < m_rp.m_prod_tile_dims) { - index_type m_offset[RP::rank]; // tile starting global id offset - index_type m_local_offset[RP::rank]; // tile starting global id offset - - for (index_type tileidx = (index_type)blockIdx_x; - tileidx < m_rp.m_num_tiles; tileidx += gridDim_x) { - index_type tile_idx = - tileidx; // temp because tile_idx will be modified while - // determining tile starting point offsets - index_type thrd_idx = (index_type)threadIdx_y; - bool in_bounds = true; - - // LL - if (RP::inner_direction == RP::Left) { - for (int i = 0; i < RP::rank; ++i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx_y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_v); - } - } - // LR - else { - for (int i = RP::rank - 1; i >= 0; --i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx_y - m_local_offset[i] = - (thrd_idx % m_rp.m_tile[i]); // Move this to first computation, - // add to m_offset right away - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_v); - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; - ValueType& m_v; -}; - -// Rank 4 -// Specializations for void tag type -template <typename RP, typename Functor, typename ValueType> -struct DeviceIterateTile< - 4, RP, Functor, void, ValueType, - typename std::enable_if<!is_array_type<ValueType>::value>::type> { - using index_type = typename RP::index_type; - - [[hc]] DeviceIterateTile(const RP& rp_, const Functor& f_, ValueType& v_) - : m_rp(rp_), m_func(f_), m_v(v_) {} - - static constexpr index_type max_blocks = 65535; - // static constexpr index_type max_blocks = - // static_cast<index_type>(Kokkos::Impl::ROCmTraits::UpperBoundGridCount); - - KOKKOS_INLINE_FUNCTION - void exec_range() const { - // enum { max_blocks = - // static_cast<index_type>(Kokkos::Impl::ROCmTraits::UpperBoundGridCount) }; - // const index_type max_blocks = static_cast<index_type>( - // Kokkos::Impl::rocm_internal_maximum_grid_count() ); - if ((index_type)blockIdx_x < m_rp.m_num_tiles && - (index_type)threadIdx_y < m_rp.m_prod_tile_dims) { - index_type m_offset[RP::rank]; // tile starting global id offset - index_type m_local_offset[RP::rank]; // tile starting global id offset - - for (index_type tileidx = (index_type)blockIdx_x; - tileidx < m_rp.m_num_tiles; tileidx += gridDim_x) { - index_type tile_idx = - tileidx; // temp because tile_idx will be modified while - // determining tile starting point offsets - index_type thrd_idx = (index_type)threadIdx_y; - bool in_bounds = true; - - // LL - if (RP::inner_direction == RP::Left) { - for (int i = 0; i < RP::rank; ++i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx_y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(m_offset[0], m_offset[1], m_offset[2], m_offset[3], m_v); - } - } - // LR - else { - for (int i = RP::rank - 1; i >= 0; --i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx_y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(m_offset[0], m_offset[1], m_offset[2], m_offset[3], m_v); - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; - ValueType& m_v; -}; - -// Specializations for void tag type -template <typename RP, typename Functor, typename Tag, typename ValueType> -struct DeviceIterateTile< - 4, RP, Functor, Tag, ValueType, - typename std::enable_if<!is_array_type<ValueType>::value && - !is_void<Tag>::value>::type> { - using index_type = typename RP::index_type; - - KOKKOS_INLINE_FUNCTION - DeviceIterateTile(const RP& rp_, const Functor& f_, ValueType& v_) - : m_rp(rp_), m_func(f_), m_v(v_) {} - - static constexpr index_type max_blocks = 65535; - // static constexpr index_type max_blocks = - // static_cast<index_type>(Kokkos::Impl::ROCmTraits::UpperBoundGridCount); - - KOKKOS_INLINE_FUNCTION - void exec_range() const { - // enum { max_blocks = - // static_cast<index_type>(Kokkos::Impl::ROCmTraits::UpperBoundGridCount) }; - // const index_type max_blocks = static_cast<index_type>( - // Kokkos::Impl::rocm_internal_maximum_grid_count() ); - if ((index_type)blockIdx_x < m_rp.m_num_tiles && - (index_type)threadIdx_y < m_rp.m_prod_tile_dims) { - index_type m_offset[RP::rank]; // tile starting global id offset - index_type m_local_offset[RP::rank]; // tile starting global id offset - - for (index_type tileidx = (index_type)blockIdx_x; - tileidx < m_rp.m_num_tiles; tileidx += gridDim_x) { - index_type tile_idx = - tileidx; // temp because tile_idx will be modified while - // determining tile starting point offsets - index_type thrd_idx = (index_type)threadIdx_y; - bool in_bounds = true; - - // LL - if (RP::inner_direction == RP::Left) { - for (int i = 0; i < RP::rank; ++i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx_y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_offset[3], - m_v); - } - } - // LR - else { - for (int i = RP::rank - 1; i >= 0; --i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx_y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_offset[3], - m_v); - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; - ValueType& m_v; -}; - -// Rank 5 -// Specializations for void tag type -template <typename RP, typename Functor, typename ValueType> -struct DeviceIterateTile< - 5, RP, Functor, void, ValueType, - typename std::enable_if<!is_array_type<ValueType>::value>::type> { - using index_type = typename RP::index_type; - - [[hc]] DeviceIterateTile(const RP& rp_, const Functor& f_, ValueType& v_) - : m_rp(rp_), m_func(f_), m_v(v_) {} - - static constexpr index_type max_blocks = 65535; - // static constexpr index_type max_blocks = - // static_cast<index_type>(Kokkos::Impl::ROCmTraits::UpperBoundGridCount); - - KOKKOS_INLINE_FUNCTION - void exec_range() const { - // enum { max_blocks = - // static_cast<index_type>(Kokkos::Impl::ROCmTraits::UpperBoundGridCount) }; - // const index_type max_blocks = static_cast<index_type>( - // Kokkos::Impl::rocm_internal_maximum_grid_count() ); - if ((index_type)blockIdx_x < m_rp.m_num_tiles && - (index_type)threadIdx_y < m_rp.m_prod_tile_dims) { - index_type m_offset[RP::rank]; // tile starting global id offset - index_type m_local_offset[RP::rank]; // tile starting global id offset - - for (index_type tileidx = (index_type)blockIdx_x; - tileidx < m_rp.m_num_tiles; tileidx += gridDim_x) { - index_type tile_idx = - tileidx; // temp because tile_idx will be modified while - // determining tile starting point offsets - index_type thrd_idx = (index_type)threadIdx_y; - bool in_bounds = true; - - // LL - if (RP::inner_direction == RP::Left) { - for (int i = 0; i < RP::rank; ++i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx_y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(m_offset[0], m_offset[1], m_offset[2], m_offset[3], - m_offset[4], m_v); - } - } - // LR - else { - for (int i = RP::rank - 1; i >= 0; --i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx_y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(m_offset[0], m_offset[1], m_offset[2], m_offset[3], - m_offset[4], m_v); - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; - ValueType& m_v; -}; - -// Specializations for tag type -template <typename RP, typename Functor, typename Tag, typename ValueType> -struct DeviceIterateTile< - 5, RP, Functor, Tag, ValueType, - typename std::enable_if<!is_array_type<ValueType>::value && - !is_void<Tag>::value>::type> { - using index_type = typename RP::index_type; - - [[hc]] DeviceIterateTile(const RP& rp_, const Functor& f_, ValueType& v_) - : m_rp(rp_), m_func(f_), m_v(v_) {} - - static constexpr index_type max_blocks = 65535; - // static constexpr index_type max_blocks = - // static_cast<index_type>(Kokkos::Impl::ROCmTraits::UpperBoundGridCount); - - KOKKOS_INLINE_FUNCTION - void exec_range() const { - // enum { max_blocks = - // static_cast<index_type>(Kokkos::Impl::ROCmTraits::UpperBoundGridCount) }; - // const index_type max_blocks = static_cast<index_type>( - // Kokkos::Impl::rocm_internal_maximum_grid_count() ); - if ((index_type)blockIdx_x < m_rp.m_num_tiles && - (index_type)threadIdx_y < m_rp.m_prod_tile_dims) { - index_type m_offset[RP::rank]; // tile starting global id offset - index_type m_local_offset[RP::rank]; // tile starting global id offset - - for (index_type tileidx = (index_type)blockIdx_x; - tileidx < m_rp.m_num_tiles; tileidx += gridDim_x) { - index_type tile_idx = - tileidx; // temp because tile_idx will be modified while - // determining tile starting point offsets - index_type thrd_idx = (index_type)threadIdx_y; - bool in_bounds = true; - - // LL - if (RP::inner_direction == RP::Left) { - for (int i = 0; i < RP::rank; ++i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx_y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_offset[3], - m_offset[4], m_v); - } - } - // LR - else { - for (int i = RP::rank - 1; i >= 0; --i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx_y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_offset[3], - m_offset[4], m_v); - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; - ValueType& m_v; -}; - -// Rank 6 -// Specializations for void tag type -template <typename RP, typename Functor, typename ValueType> -struct DeviceIterateTile< - 6, RP, Functor, void, ValueType, - typename std::enable_if<!is_array_type<ValueType>::value>::type> { - using index_type = typename RP::index_type; - - [[hc]] DeviceIterateTile(const RP& rp_, const Functor& f_, ValueType& v_) - : m_rp(rp_), m_func(f_), m_v(v_) {} - - static constexpr index_type max_blocks = 65535; - // static constexpr index_type max_blocks = - // static_cast<index_type>(Kokkos::Impl::ROCmTraits::UpperBoundGridCount); - - KOKKOS_INLINE_FUNCTION - void exec_range() const { - // enum { max_blocks = - // static_cast<index_type>(Kokkos::Impl::ROCmTraits::UpperBoundGridCount) }; - // const index_type max_blocks = static_cast<index_type>( - // Kokkos::Impl::rocm_internal_maximum_grid_count() ); - if ((index_type)blockIdx_x < m_rp.m_num_tiles && - (index_type)threadIdx_y < m_rp.m_prod_tile_dims) { - index_type m_offset[RP::rank]; // tile starting global id offset - index_type m_local_offset[RP::rank]; // tile starting global id offset - - for (index_type tileidx = (index_type)blockIdx_x; - tileidx < m_rp.m_num_tiles; tileidx += gridDim_x) { - index_type tile_idx = - tileidx; // temp because tile_idx will be modified while - // determining tile starting point offsets - index_type thrd_idx = (index_type)threadIdx_y; - bool in_bounds = true; - - // LL - if (RP::inner_direction == RP::Left) { - for (int i = 0; i < RP::rank; ++i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx_y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(m_offset[0], m_offset[1], m_offset[2], m_offset[3], - m_offset[4], m_offset[5], m_v); - } - } - // LR - else { - for (int i = RP::rank - 1; i >= 0; --i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx_y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(m_offset[0], m_offset[1], m_offset[2], m_offset[3], - m_offset[4], m_offset[5], m_v); - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; - ValueType& m_v; -}; - -// Specializations for tag type -template <typename RP, typename Functor, typename Tag, typename ValueType> -struct DeviceIterateTile< - 6, RP, Functor, Tag, ValueType, - typename std::enable_if<!is_array_type<ValueType>::value && - !is_void<Tag>::value>::type> { - using index_type = typename RP::index_type; - - [[hc]] DeviceIterateTile(const RP& rp_, const Functor& f_, ValueType& v_) - : m_rp(rp_), m_func(f_), m_v(v_) {} - - static constexpr index_type max_blocks = 65535; - // static constexpr index_type max_blocks = - // static_cast<index_type>(Kokkos::Impl::ROCmTraits::UpperBoundGridCount); - - KOKKOS_INLINE_FUNCTION - void exec_range() const { - // enum { max_blocks = - // static_cast<index_type>(Kokkos::Impl::ROCmTraits::UpperBoundGridCount) }; - // const index_type max_blocks = static_cast<index_type>( - // Kokkos::Impl::rocm_internal_maximum_grid_count() ); - if ((index_type)blockIdx_x < m_rp.m_num_tiles && - (index_type)threadIdx_y < m_rp.m_prod_tile_dims) { - index_type m_offset[RP::rank]; // tile starting global id offset - index_type m_local_offset[RP::rank]; // tile starting global id offset - - for (index_type tileidx = (index_type)blockIdx_x; - tileidx < m_rp.m_num_tiles; tileidx += gridDim_x) { - index_type tile_idx = - tileidx; // temp because tile_idx will be modified while - // determining tile starting point offsets - index_type thrd_idx = (index_type)threadIdx_y; - bool in_bounds = true; - - // LL - if (RP::inner_direction == RP::Left) { - for (int i = 0; i < RP::rank; ++i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx_y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_offset[3], - m_offset[4], m_offset[5], m_v); - } - } - // LR - else { - for (int i = RP::rank - 1; i >= 0; --i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx_y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_offset[3], - m_offset[4], m_offset[5], m_v); - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; - ValueType& m_v; -}; - -// ValueType = T[], T* -// Rank 2 -// Specializations for void tag type -template <typename RP, typename Functor, typename ValueType> -struct DeviceIterateTile< - 2, RP, Functor, void, ValueType, - typename std::enable_if<is_array_type<ValueType>::value>::type> { - using index_type = typename RP::index_type; - using value_type = typename is_array_type<ValueType>::value_type; - - [[hc]] DeviceIterateTile(const RP& rp_, const Functor& f_, value_type* v_) - : m_rp(rp_), m_func(f_), m_v(v_) {} - - KOKKOS_INLINE_FUNCTION - void exec_range() const { - if ((index_type)blockIdx_x < m_rp.m_num_tiles && - (index_type)threadIdx_y < m_rp.m_prod_tile_dims) { - index_type m_offset[RP::rank]; // tile starting global id offset - index_type m_local_offset[RP::rank]; // tile starting global id offset - - for (index_type tileidx = (index_type)blockIdx_x; - tileidx < m_rp.m_num_tiles; tileidx += gridDim_x) { - index_type tile_idx = - tileidx; // temp because tile_idx will be modified while - // determining tile starting point offsets - index_type thrd_idx = (index_type)threadIdx_y; - bool in_bounds = true; - - // LL - if (RP::inner_direction == RP::Left) { - for (int i = 0; i < RP::rank; ++i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(m_offset[0], m_offset[1], m_v); - } - } - // LR - else { - for (int i = RP::rank - 1; i >= 0; --i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx_y - m_local_offset[i] = - (thrd_idx % m_rp.m_tile[i]); // Move this to first computation, - // add to m_offset right away - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(m_offset[0], m_offset[1], m_v); - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; - value_type* m_v; -}; - -// Specializations for tag type -template <typename RP, typename Functor, typename Tag, typename ValueType> -struct DeviceIterateTile< - 2, RP, Functor, Tag, ValueType, - typename std::enable_if<is_array_type<ValueType>::value && - !is_void<Tag>::value>::type> { - using index_type = typename RP::index_type; - using value_type = typename is_array_type<ValueType>::value_type; - - KOKKOS_INLINE_FUNCTION - DeviceIterateTile(const RP& rp_, const Functor& f_, value_type* v_) - : m_rp(rp_), m_func(f_), m_v(v_) {} - - KOKKOS_INLINE_FUNCTION - void exec_range() const { - if ((index_type)blockIdx_x < m_rp.m_num_tiles && - (index_type)threadIdx_y < m_rp.m_prod_tile_dims) { - index_type m_offset[RP::rank]; // tile starting global id offset - index_type m_local_offset[RP::rank]; // tile starting global id offset - - for (index_type tileidx = (index_type)blockIdx_x; - tileidx < m_rp.m_num_tiles; tileidx += gridDim_x) { - index_type tile_idx = - tileidx; // temp because tile_idx will be modified while - // determining tile starting point offsets - index_type thrd_idx = (index_type)threadIdx_y; - bool in_bounds = true; - - // LL - if (RP::inner_direction == RP::Left) { - for (int i = 0; i < RP::rank; ++i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx_y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(Tag(), m_offset[0], m_offset[1], m_v); - } - } - // LR - else { - for (int i = RP::rank - 1; i >= 0; --i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx_y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(Tag(), m_offset[0], m_offset[1], m_v); - } - } - } // end for loop over num_tiles - product of tiles in each direction - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; - value_type* m_v; -}; - -// Rank 3 -// Specializations for void tag type -template <typename RP, typename Functor, typename ValueType> -struct DeviceIterateTile< - 3, RP, Functor, void, ValueType, - typename std::enable_if<is_array_type<ValueType>::value>::type> { - using index_type = typename RP::index_type; - using value_type = typename is_array_type<ValueType>::value_type; - - KOKKOS_INLINE_FUNCTION - DeviceIterateTile(const RP& rp_, const Functor& f_, value_type* v_) - : m_rp(rp_), m_func(f_), m_v(v_) {} - - KOKKOS_INLINE_FUNCTION - void exec_range() const { - if ((index_type)blockIdx_x < m_rp.m_num_tiles && - (index_type)threadIdx_y < m_rp.m_prod_tile_dims) { - index_type m_offset[RP::rank]; // tile starting global id offset - index_type m_local_offset[RP::rank]; // tile starting global id offset - - for (index_type tileidx = (index_type)blockIdx_x; - tileidx < m_rp.m_num_tiles; tileidx += gridDim_x) { - index_type tile_idx = - tileidx; // temp because tile_idx will be modified while - // determining tile starting point offsets - index_type thrd_idx = (index_type)threadIdx_y; - bool in_bounds = true; - - // LL - if (RP::inner_direction == RP::Left) { - for (int i = 0; i < RP::rank; ++i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx_y - m_local_offset[i] = - (thrd_idx % m_rp.m_tile[i]); // Move this to first computation, - // add to m_offset right away - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(m_offset[0], m_offset[1], m_offset[2], m_v); - } - } - // LR - else { - for (int i = RP::rank - 1; i >= 0; --i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx_y - m_local_offset[i] = - (thrd_idx % m_rp.m_tile[i]); // Move this to first computation, - // add to m_offset right away - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(m_offset[0], m_offset[1], m_offset[2], m_v); - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; - value_type* m_v; -}; - -// Specializations for void tag type -template <typename RP, typename Functor, typename Tag, typename ValueType> -struct DeviceIterateTile< - 3, RP, Functor, Tag, ValueType, - typename std::enable_if<is_array_type<ValueType>::value && - !is_void<Tag>::value>::type> { - using index_type = typename RP::index_type; - using value_type = typename is_array_type<ValueType>::value_type; - - KOKKOS_INLINE_FUNCTION - DeviceIterateTile(const RP& rp_, const Functor& f_, value_type* v_) - : m_rp(rp_), m_func(f_), m_v(v_) {} - - KOKKOS_INLINE_FUNCTION - void exec_range() const { - if ((index_type)blockIdx_x < m_rp.m_num_tiles && - (index_type)threadIdx_y < m_rp.m_prod_tile_dims) { - index_type m_offset[RP::rank]; // tile starting global id offset - index_type m_local_offset[RP::rank]; // tile starting global id offset - - for (index_type tileidx = (index_type)blockIdx_x; - tileidx < m_rp.m_num_tiles; tileidx += gridDim_x) { - index_type tile_idx = - tileidx; // temp because tile_idx will be modified while - // determining tile starting point offsets - index_type thrd_idx = (index_type)threadIdx_y; - bool in_bounds = true; - - // LL - if (RP::inner_direction == RP::Left) { - for (int i = 0; i < RP::rank; ++i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx_y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_v); - } - } - // LR - else { - for (int i = RP::rank - 1; i >= 0; --i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx_y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_v); - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; - value_type* m_v; -}; - -// Rank 4 -// Specializations for void tag type -template <typename RP, typename Functor, typename ValueType> -struct DeviceIterateTile< - 4, RP, Functor, void, ValueType, - typename std::enable_if<is_array_type<ValueType>::value>::type> { - using index_type = typename RP::index_type; - using value_type = typename is_array_type<ValueType>::value_type; - - KOKKOS_INLINE_FUNCTION - DeviceIterateTile(const RP& rp_, const Functor& f_, value_type* v_) - : m_rp(rp_), m_func(f_), m_v(v_) {} - - static constexpr index_type max_blocks = 65535; - // static constexpr index_type max_blocks = - // static_cast<index_type>(Kokkos::Impl::ROCmTraits::UpperBoundGridCount); - - KOKKOS_INLINE_FUNCTION - void exec_range() const { - // enum { max_blocks = - // static_cast<index_type>(Kokkos::Impl::ROCmTraits::UpperBoundGridCount) }; - // const index_type max_blocks = static_cast<index_type>( - // Kokkos::Impl::rocm_internal_maximum_grid_count() ); - if ((index_type)blockIdx_x < m_rp.m_num_tiles && - (index_type)threadIdx_y < m_rp.m_prod_tile_dims) { - index_type m_offset[RP::rank]; // tile starting global id offset - index_type m_local_offset[RP::rank]; // tile starting global id offset - - for (index_type tileidx = (index_type)blockIdx_x; - tileidx < m_rp.m_num_tiles; tileidx += gridDim_x) { - index_type tile_idx = - tileidx; // temp because tile_idx will be modified while - // determining tile starting point offsets - index_type thrd_idx = (index_type)threadIdx_y; - bool in_bounds = true; - - // LL - if (RP::inner_direction == RP::Left) { - for (int i = 0; i < RP::rank; ++i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx_y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(m_offset[0], m_offset[1], m_offset[2], m_offset[3], m_v); - } - } - // LR - else { - for (int i = RP::rank - 1; i >= 0; --i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx_y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(m_offset[0], m_offset[1], m_offset[2], m_offset[3], m_v); - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; - value_type* m_v; -}; - -// Specializations for void tag type -template <typename RP, typename Functor, typename Tag, typename ValueType> -struct DeviceIterateTile< - 4, RP, Functor, Tag, ValueType, - typename std::enable_if<is_array_type<ValueType>::value && - !is_void<Tag>::value>::type> { - using index_type = typename RP::index_type; - using value_type = typename is_array_type<ValueType>::value_type; - - KOKKOS_INLINE_FUNCTION - DeviceIterateTile(const RP& rp_, const Functor& f_, value_type* v_) - : m_rp(rp_), m_func(f_), m_v(v_) {} - - static constexpr index_type max_blocks = 65535; - // static constexpr index_type max_blocks = - // static_cast<index_type>(Kokkos::Impl::ROCmTraits::UpperBoundGridCount); - - KOKKOS_INLINE_FUNCTION - void exec_range() const { - // enum { max_blocks = - // static_cast<index_type>(Kokkos::Impl::ROCmTraits::UpperBoundGridCount) }; - // const index_type max_blocks = static_cast<index_type>( - // Kokkos::Impl::rocm_internal_maximum_grid_count() ); - if ((index_type)blockIdx_x < m_rp.m_num_tiles && - (index_type)threadIdx_y < m_rp.m_prod_tile_dims) { - index_type m_offset[RP::rank]; // tile starting global id offset - index_type m_local_offset[RP::rank]; // tile starting global id offset - - for (index_type tileidx = (index_type)blockIdx_x; - tileidx < m_rp.m_num_tiles; tileidx += gridDim_x) { - index_type tile_idx = - tileidx; // temp because tile_idx will be modified while - // determining tile starting point offsets - index_type thrd_idx = (index_type)threadIdx_y; - bool in_bounds = true; - - // LL - if (RP::inner_direction == RP::Left) { - for (int i = 0; i < RP::rank; ++i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx_y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_offset[3], - m_v); - } - } - // LR - else { - for (int i = RP::rank - 1; i >= 0; --i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx_y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_offset[3], - m_v); - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; - value_type* m_v; -}; - -// Rank 5 -// Specializations for void tag type -template <typename RP, typename Functor, typename ValueType> -struct DeviceIterateTile< - 5, RP, Functor, void, ValueType, - typename std::enable_if<is_array_type<ValueType>::value>::type> { - using index_type = typename RP::index_type; - using value_type = typename is_array_type<ValueType>::value_type; - - KOKKOS_INLINE_FUNCTION - DeviceIterateTile(const RP& rp_, const Functor& f_, value_type* v_) - : m_rp(rp_), m_func(f_), m_v(v_) {} - - static constexpr index_type max_blocks = 65535; - // static constexpr index_type max_blocks = - // static_cast<index_type>(Kokkos::Impl::ROCmTraits::UpperBoundGridCount); - - KOKKOS_INLINE_FUNCTION - void exec_range() const { - // enum { max_blocks = - // static_cast<index_type>(Kokkos::Impl::ROCmTraits::UpperBoundGridCount) }; - // const index_type max_blocks = static_cast<index_type>( - // Kokkos::Impl::rocm_internal_maximum_grid_count() ); - if ((index_type)blockIdx_x < m_rp.m_num_tiles && - (index_type)threadIdx_y < m_rp.m_prod_tile_dims) { - index_type m_offset[RP::rank]; // tile starting global id offset - index_type m_local_offset[RP::rank]; // tile starting global id offset - - for (index_type tileidx = (index_type)blockIdx_x; - tileidx < m_rp.m_num_tiles; tileidx += gridDim_x) { - index_type tile_idx = - tileidx; // temp because tile_idx will be modified while - // determining tile starting point offsets - index_type thrd_idx = (index_type)threadIdx_y; - bool in_bounds = true; - - // LL - if (RP::inner_direction == RP::Left) { - for (int i = 0; i < RP::rank; ++i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx_y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(m_offset[0], m_offset[1], m_offset[2], m_offset[3], - m_offset[4], m_v); - } - } - // LR - else { - for (int i = RP::rank - 1; i >= 0; --i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx_y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(m_offset[0], m_offset[1], m_offset[2], m_offset[3], - m_offset[4], m_v); - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; - value_type* m_v; -}; - -// Specializations for tag type -template <typename RP, typename Functor, typename Tag, typename ValueType> -struct DeviceIterateTile< - 5, RP, Functor, Tag, ValueType, - typename std::enable_if<is_array_type<ValueType>::value && - !is_void<Tag>::value>::type> { - using index_type = typename RP::index_type; - using value_type = typename is_array_type<ValueType>::value_type; - - KOKKOS_INLINE_FUNCTION - DeviceIterateTile(const RP& rp_, const Functor& f_, value_type* v_) - : m_rp(rp_), m_func(f_), m_v(v_) {} - - static constexpr index_type max_blocks = 65535; - // static constexpr index_type max_blocks = - // static_cast<index_type>(Kokkos::Impl::ROCmTraits::UpperBoundGridCount); - - KOKKOS_INLINE_FUNCTION - void exec_range() const { - // enum { max_blocks = - // static_cast<index_type>(Kokkos::Impl::ROCmTraits::UpperBoundGridCount) }; - // const index_type max_blocks = static_cast<index_type>( - // Kokkos::Impl::rocm_internal_maximum_grid_count() ); - if ((index_type)blockIdx_x < m_rp.m_num_tiles && - (index_type)threadIdx_y < m_rp.m_prod_tile_dims) { - index_type m_offset[RP::rank]; // tile starting global id offset - index_type m_local_offset[RP::rank]; // tile starting global id offset - - for (index_type tileidx = (index_type)blockIdx_x; - tileidx < m_rp.m_num_tiles; tileidx += gridDim_x) { - index_type tile_idx = - tileidx; // temp because tile_idx will be modified while - // determining tile starting point offsets - index_type thrd_idx = (index_type)threadIdx_y; - bool in_bounds = true; - - // LL - if (RP::inner_direction == RP::Left) { - for (int i = 0; i < RP::rank; ++i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx_y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_offset[3], - m_offset[4], m_v); - } - } - // LR - else { - for (int i = RP::rank - 1; i >= 0; --i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx_y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_offset[3], - m_offset[4], m_v); - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; - value_type* m_v; -}; - -// Rank 6 -// Specializations for void tag type -template <typename RP, typename Functor, typename ValueType> -struct DeviceIterateTile< - 6, RP, Functor, void, ValueType, - typename std::enable_if<is_array_type<ValueType>::value>::type> { - using index_type = typename RP::index_type; - using value_type = typename is_array_type<ValueType>::value_type; - - KOKKOS_INLINE_FUNCTION - DeviceIterateTile(const RP& rp_, const Functor& f_, value_type* v_) - : m_rp(rp_), m_func(f_), m_v(v_) {} - - static constexpr index_type max_blocks = 65535; - // static constexpr index_type max_blocks = - // static_cast<index_type>(Kokkos::Impl::ROCmTraits::UpperBoundGridCount); - - KOKKOS_INLINE_FUNCTION - void exec_range() const { - // enum { max_blocks = - // static_cast<index_type>(Kokkos::Impl::ROCmTraits::UpperBoundGridCount) }; - // const index_type max_blocks = static_cast<index_type>( - // Kokkos::Impl::rocm_internal_maximum_grid_count() ); - if ((index_type)blockIdx_x < m_rp.m_num_tiles && - (index_type)threadIdx_y < m_rp.m_prod_tile_dims) { - index_type m_offset[RP::rank]; // tile starting global id offset - index_type m_local_offset[RP::rank]; // tile starting global id offset - - for (index_type tileidx = (index_type)blockIdx_x; - tileidx < m_rp.m_num_tiles; tileidx += gridDim_x) { - index_type tile_idx = - tileidx; // temp because tile_idx will be modified while - // determining tile starting point offsets - index_type thrd_idx = (index_type)threadIdx_y; - bool in_bounds = true; - - // LL - if (RP::inner_direction == RP::Left) { - for (int i = 0; i < RP::rank; ++i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx_y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(m_offset[0], m_offset[1], m_offset[2], m_offset[3], - m_offset[4], m_offset[5], m_v); - } - } - // LR - else { - for (int i = RP::rank - 1; i >= 0; --i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx_y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(m_offset[0], m_offset[1], m_offset[2], m_offset[3], - m_offset[4], m_offset[5], m_v); - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; - value_type* m_v; -}; - -// Specializations for tag type -template <typename RP, typename Functor, typename Tag, typename ValueType> -struct DeviceIterateTile< - 6, RP, Functor, Tag, ValueType, - typename std::enable_if<is_array_type<ValueType>::value && - !is_void<Tag>::value>::type> { - using index_type = typename RP::index_type; - using value_type = typename is_array_type<ValueType>::value_type; - - KOKKOS_INLINE_FUNCTION - DeviceIterateTile(const RP& rp_, const Functor& f_, value_type* v_) - : m_rp(rp_), m_func(f_), m_v(v_) {} - - static constexpr index_type max_blocks = 65535; - // static constexpr index_type max_blocks = - // static_cast<index_type>(Kokkos::Impl::ROCmTraits::UpperBoundGridCount); - - KOKKOS_INLINE_FUNCTION - void exec_range() const { - // enum { max_blocks = - // static_cast<index_type>(Kokkos::Impl::ROCmTraits::UpperBoundGridCount) }; - // const index_type max_blocks = static_cast<index_type>( - // Kokkos::Impl::rocm_internal_maximum_grid_count() ); - if ((index_type)blockIdx_x < m_rp.m_num_tiles && - (index_type)threadIdx_y < m_rp.m_prod_tile_dims) { - index_type m_offset[RP::rank]; // tile starting global id offset - index_type m_local_offset[RP::rank]; // tile starting global id offset - - for (index_type tileidx = (index_type)blockIdx_x; - tileidx < m_rp.m_num_tiles; tileidx += gridDim_x) { - index_type tile_idx = - tileidx; // temp because tile_idx will be modified while - // determining tile starting point offsets - index_type thrd_idx = (index_type)threadIdx_y; - bool in_bounds = true; - - // LL - if (RP::inner_direction == RP::Left) { - for (int i = 0; i < RP::rank; ++i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx_y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_offset[3], - m_offset[4], m_offset[5], m_v); - } - } - // LR - else { - for (int i = RP::rank - 1; i >= 0; --i) { - m_offset[i] = (tile_idx % m_rp.m_tile_end[i]) * m_rp.m_tile[i] + - m_rp.m_lower[i]; - tile_idx /= m_rp.m_tile_end[i]; - - // tile-local indices identified with (index_type)threadIdx_y - m_local_offset[i] = (thrd_idx % m_rp.m_tile[i]); - thrd_idx /= m_rp.m_tile[i]; - - m_offset[i] += m_local_offset[i]; - if (!(m_offset[i] < m_rp.m_upper[i] && - m_local_offset[i] < m_rp.m_tile[i])) { - in_bounds &= false; - } - } - if (in_bounds) { - m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_offset[3], - m_offset[4], m_offset[5], m_v); - } - } - } - } - } // end exec_range - - private: - const RP& m_rp; - const Functor& m_func; - value_type* m_v; -}; - -} // namespace Reduce - -// ---------------------------------------------------------------------------------- - -} // namespace Impl -} // namespace Kokkos -#undef threadIdx_x -#undef threadIdx_y -#undef threadIdx_z - -#undef blockIdx_x -#undef blockIdx_y -#undef blockIdx_z - -#undef blockDim_x -#undef blockDim_y -#undef blockDim_z - -#undef gridDim_x -#undef gridDim_y -#undef gridDim_z - -#endif -#endif diff --git a/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Atomic.hpp b/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Atomic.hpp deleted file mode 100644 index 484269f21..000000000 --- a/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Atomic.hpp +++ /dev/null @@ -1,534 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hc.hpp> -//#include <hsa_atomic.h> - -#ifdef KOKKOS_ENABLE_ROCM_ATOMICS -namespace Kokkos { -// ROCm can do: -// Types int/unsigned int -// variants: -// atomic_exchange/compare_exchange/fetch_add/fetch_sub/fetch_max/fetch_min/fetch_and/fetch_or/fetch_xor/fetch_inc/fetch_dec - -KOKKOS_INLINE_FUNCTION -int atomic_exchange(int* dest, const int& val) { - return hc::atomic_exchange_int(dest, val); -} - -KOKKOS_INLINE_FUNCTION -unsigned int atomic_exchange(unsigned int* dest, const unsigned int& val) { - return hc::atomic_exchange_unsigned(dest, val); -} - -KOKKOS_INLINE_FUNCTION -int64_t atomic_exchange(int64_t* dest, const int64_t& val) { - return (int64_t)hc::atomic_exchange_uint64((uint64_t*)dest, - (const uint64_t&)val); -} - -KOKKOS_INLINE_FUNCTION -uint64_t atomic_exchange(uint64_t* dest, const uint64_t& val) { - return hc::atomic_exchange_uint64(dest, val); -} - -KOKKOS_INLINE_FUNCTION -long long atomic_exchange(long long* dest, const long long& val) { - return (long long)hc::atomic_exchange_uint64((uint64_t*)dest, - (const uint64_t&)val); -} - -KOKKOS_INLINE_FUNCTION -unsigned long long atomic_exchange(unsigned long long* dest, - const unsigned long long& val) { - return (unsigned long long)hc::atomic_exchange_uint64((uint64_t*)dest, - (const uint64_t&)val); -} - -KOKKOS_INLINE_FUNCTION -float atomic_exchange(float* dest, const float& val) { - union U { - int i; - float f; - KOKKOS_INLINE_FUNCTION U(){}; - } idest, ival; - idest.f = *dest; - ival.f = val; - idest.i = hc::atomic_exchange_int((int*)dest, ival.i); - return idest.f; -} - -KOKKOS_INLINE_FUNCTION -double atomic_exchange(double* dest, const double& val) { - union U { - uint64_t i; - double d; - KOKKOS_INLINE_FUNCTION U(){}; - } idest, ival; - idest.d = *dest; - ival.d = val; - idest.i = hc::atomic_exchange_uint64((uint64_t*)dest, ival.i); - return idest.d; -} - -KOKKOS_INLINE_FUNCTION -int atomic_compare_exchange(int* dest, int compare, const int& val); - -KOKKOS_INLINE_FUNCTION -int64_t atomic_compare_exchange(int64_t* dest, int64_t compare, - const int64_t& val); - -template <class T> -KOKKOS_INLINE_FUNCTION T atomic_exchange( - T* dest, - typename std::enable_if<sizeof(T) == sizeof(int), const T&>::type val) { - union U { - int i; - T t; - KOKKOS_INLINE_FUNCTION U(){}; - } assume, oldval, newval; - - oldval.t = *dest; - assume.i = oldval.i; - newval.t = val; - atomic_compare_exchange((int*)(dest), assume.i, newval.i); - - return oldval.t; -} - -template <class T> -KOKKOS_INLINE_FUNCTION T atomic_exchange( - T* dest, typename std::enable_if<sizeof(T) != sizeof(int) && - sizeof(T) == sizeof(int64_t), - const T&>::type val) { - union U { - uint64_t i; - T t; - KOKKOS_INLINE_FUNCTION U(){}; - } assume, oldval, newval; - - oldval.t = *dest; - - assume.i = oldval.i; - newval.t = val; - atomic_compare_exchange((int64_t*)(dest), assume.i, newval.i); - - return oldval.t; -} - -template <class T> -KOKKOS_INLINE_FUNCTION T atomic_exchange( - T* dest, typename std::enable_if<sizeof(T) != sizeof(int) && - sizeof(T) != sizeof(int64_t), - const T&>::type val) { - return val; -} - -KOKKOS_INLINE_FUNCTION -int atomic_compare_exchange(int* dest, int compare, const int& val) { - return hc::atomic_compare_exchange_int(dest, compare, val); -} - -KOKKOS_INLINE_FUNCTION -unsigned int atomic_compare_exchange(unsigned int* dest, unsigned int compare, - const unsigned int& val) { - return hc::atomic_compare_exchange_unsigned(dest, compare, val); -} - -KOKKOS_INLINE_FUNCTION -int64_t atomic_compare_exchange(int64_t* dest, int64_t compare, - const int64_t& val) { - return (int64_t)hc::atomic_compare_exchange_uint64( - (uint64_t*)dest, (uint64_t)compare, (const uint64_t&)val); -} - -KOKKOS_INLINE_FUNCTION -uint64_t atomic_compare_exchange(uint64_t* dest, uint64_t compare, - const uint64_t& val) { - return hc::atomic_compare_exchange_uint64(dest, compare, val); -} - -KOKKOS_INLINE_FUNCTION -long long atomic_compare_exchange(long long* dest, long long compare, - const long long& val) { - return (long long)hc::atomic_compare_exchange_uint64( - (uint64_t*)(dest), (uint64_t)(compare), (const uint64_t&)(val)); -} - -KOKKOS_INLINE_FUNCTION -float atomic_compare_exchange(float* dest, float compare, const float& val) { - union U { - int i; - float f; - KOKKOS_INLINE_FUNCTION U(){}; - } idest, icompare, ival; - idest.f = *dest; - icompare.f = compare; - ival.f = val; - idest.i = hc::atomic_compare_exchange_int(reinterpret_cast<int*>(dest), - icompare.i, ival.i); - return idest.f; -} - -KOKKOS_INLINE_FUNCTION -double atomic_compare_exchange(double* dest, double compare, - const double& val) { - union U { - uint64_t i; - double d; - KOKKOS_INLINE_FUNCTION U(){}; - } idest, icompare, ival; - idest.d = *dest; - icompare.d = compare; - ival.d = val; - idest.i = hc::atomic_compare_exchange_uint64( - reinterpret_cast<uint64_t*>(dest), icompare.i, ival.i); - return idest.d; -} - -template <class T> -KOKKOS_INLINE_FUNCTION T atomic_compare_exchange( - volatile T* dest, T compare, - typename std::enable_if<sizeof(T) == sizeof(int), const T&>::type val) { - union U { - int i; - T f; - KOKKOS_INLINE_FUNCTION U(){}; - } idest, icompare, ival; - idest.f = *dest; - icompare.f = compare; - ival.f = val; - idest.i = hc::atomic_compare_exchange_int((int*)(dest), icompare.i, ival.i); - return idest.f; -} - -template <class T> -KOKKOS_INLINE_FUNCTION T atomic_compare_exchange( - volatile T* dest, T compare, - typename std::enable_if<sizeof(T) == sizeof(int64_t), const T&>::type val) { - union U { - uint64_t i; - T f; - KOKKOS_INLINE_FUNCTION U(){}; - } idest, icompare, ival; - idest.f = *dest; - icompare.f = compare; - ival.f = val; - idest.i = - hc::atomic_compare_exchange_uint64((uint64_t*)(dest), icompare.i, ival.i); - return idest.f; -} - -template <class T> -KOKKOS_INLINE_FUNCTION T atomic_compare_exchange( - volatile T* dest, T compare, - typename std::enable_if<(sizeof(T) != sizeof(int32_t)) && - (sizeof(T) != sizeof(int64_t)), - const T&>::type val) { - return val; -} - -KOKKOS_INLINE_FUNCTION -int atomic_fetch_add(volatile int* dest, const int& val) { - return hc::atomic_fetch_add((int*)dest, val); -} - -KOKKOS_INLINE_FUNCTION -unsigned int atomic_fetch_add(unsigned int* dest, const unsigned int& val) { - return hc::atomic_fetch_add(dest, val); -} - -KOKKOS_INLINE_FUNCTION -unsigned long atomic_fetch_add(volatile unsigned long* dest, - const unsigned long& val) { - return (unsigned long)hc::atomic_fetch_add((uint64_t*)dest, - (const uint64_t)val); -} - -KOKKOS_INLINE_FUNCTION -int64_t atomic_fetch_add(volatile int64_t* dest, const int64_t& val) { - return (int64_t)hc::atomic_fetch_add((uint64_t*)dest, (const uint64_t&)val); -} - -KOKKOS_INLINE_FUNCTION -char atomic_fetch_add(volatile char* dest, const char& val) { - unsigned int oldval, newval, assume; - oldval = *(int*)dest; - - do { - assume = oldval; - newval = assume & 0x7fffff00 + ((assume & 0xff) + val) & 0xff; - oldval = hc::atomic_compare_exchange_unsigned((unsigned int*)dest, assume, - newval); - } while (assume != oldval); - - return oldval; -} - -KOKKOS_INLINE_FUNCTION -short atomic_fetch_add(volatile short* dest, const short& val) { - unsigned int oldval, newval, assume; - oldval = *(int*)dest; - - do { - assume = oldval; - newval = assume & 0x7fff0000 + ((assume & 0xffff) + val) & 0xffff; - oldval = hc::atomic_compare_exchange_unsigned((unsigned int*)dest, assume, - newval); - } while (assume != oldval); - - return oldval; -} - -KOKKOS_INLINE_FUNCTION -long long atomic_fetch_add(volatile long long* dest, const long long& val) { - return (long long)hc::atomic_fetch_add((uint64_t*)dest, (const uint64_t&)val); -} - -KOKKOS_INLINE_FUNCTION -int atomic_fetch_sub(volatile int* dest, const int& val) { - return hc::atomic_fetch_sub((int*)dest, val); -} - -KOKKOS_INLINE_FUNCTION -unsigned int atomic_fetch_sub(volatile unsigned int* dest, - const unsigned int& val) { - return hc::atomic_fetch_sub((unsigned int*)dest, val); -} - -KOKKOS_INLINE_FUNCTION -int64_t atomic_fetch_sub(int64_t* dest, const int64_t& val) { - return (int64_t)hc::atomic_fetch_add((uint64_t*)dest, -(const uint64_t&)val); - // return (int64_t)hc::atomic_fetch_sub_uint64((uint64_t*)dest, (const - // uint64_t&)val); -} - -KOKKOS_INLINE_FUNCTION -char atomic_fetch_sub(volatile char* dest, const char& val) { - unsigned int oldval, newval, assume; - oldval = *(int*)dest; - - do { - assume = oldval; - newval = assume & 0x7fffff00 + ((assume & 0xff) - val) & 0xff; - oldval = hc::atomic_compare_exchange_unsigned((unsigned int*)dest, assume, - newval); - } while (assume != oldval); - - return oldval; -} - -KOKKOS_INLINE_FUNCTION -short atomic_fetch_sub(volatile short* dest, const short& val) { - unsigned int oldval, newval, assume; - oldval = *(int*)dest; - - do { - assume = oldval; - newval = assume & 0x7fff0000 + ((assume & 0xffff) - val) & 0xffff; - oldval = hc::atomic_compare_exchange_unsigned((unsigned int*)dest, assume, - newval); - } while (assume != oldval); - - return oldval; -} - -KOKKOS_INLINE_FUNCTION -long long atomic_fetch_sub(volatile long long* dest, const long long& val) { - return (long long)hc::atomic_fetch_add((uint64_t*)dest, - -(const uint64_t&)val); -} - -template <class T> -KOKKOS_INLINE_FUNCTION T atomic_fetch_add( - volatile T* dest, - typename std::enable_if<sizeof(T) == sizeof(int), const T&>::type val) { - union U { - unsigned int i; - T t; - KOKKOS_INLINE_FUNCTION U(){}; - } assume, oldval, newval; - - oldval.t = *dest; - - do { - assume.i = oldval.i; - newval.t = assume.t + val; - oldval.i = - atomic_compare_exchange((unsigned int*)(dest), assume.i, newval.i); - } while (assume.i != oldval.i); - - return oldval.t; -} - -template <class T> -KOKKOS_INLINE_FUNCTION T atomic_fetch_add( - volatile T* dest, typename std::enable_if<sizeof(T) != sizeof(int) && - sizeof(T) == sizeof(int64_t), - const T&>::type val) { - union U { - uint64_t i; - T t; - KOKKOS_INLINE_FUNCTION U(){}; - } assume, oldval, newval; - - oldval.t = *dest; - - do { - assume.i = oldval.i; - newval.t = assume.t + val; - oldval.i = atomic_compare_exchange((uint64_t*)dest, assume.i, newval.i); - } while (assume.i != oldval.i); - - return oldval.t; -} - -// WORKAROUND -template <class T> -KOKKOS_INLINE_FUNCTION T atomic_fetch_add( - volatile T* dest, typename std::enable_if<sizeof(T) != sizeof(int) && - sizeof(T) != sizeof(int64_t), - const T&>::type val) { - T return_val; - // Do we need to (like in CUDA) handle potential wavefront branching? - int done = 0; - // unsigned int active = KOKKOS_IMPL_CUDA_BALLOT(1); - // unsigned int done_active = 0; - // while (active!=done_active) { - if (!done) { - bool locked = ::Kokkos::Impl::lock_address_rocm_space((void*)dest); - if (locked) { - return_val = *dest; - *dest = return_val + val; - ::Kokkos::Impl::unlock_address_rocm_space((void*)dest); - done = 1; - } - } - // done_active = KOKKOS_IMPL_CUDA_BALLOT(done); - //} - return return_val; -} - -template <class T> -KOKKOS_INLINE_FUNCTION T atomic_fetch_sub( - volatile T* dest, - typename std::enable_if<sizeof(T) == sizeof(int), T>::type val) { - union U { - int i; - T t; - KOKKOS_INLINE_FUNCTION U(){}; - } assume, oldval, newval; - - oldval.t = *dest; - - do { - assume.i = oldval.i; - newval.t = assume.t - val; - oldval.i = Kokkos::atomic_compare_exchange((int*)dest, assume.i, newval.i); - } while (assume.i != oldval.i); - - return oldval.t; -} - -template <class T> -KOKKOS_INLINE_FUNCTION T atomic_fetch_sub( - volatile T* dest, typename std::enable_if<sizeof(T) != sizeof(int) && - sizeof(T) == sizeof(int64_t), - const T&>::type val) { - union U { - int64_t i; - T t; - KOKKOS_INLINE_FUNCTION U(){}; - } assume, oldval, newval; - - oldval.t = *dest; - - do { - assume.i = oldval.i; - newval.t = assume.t - val; - oldval.i = atomic_compare_exchange((int64_t*)dest, assume.i, newval.i); - } while (assume.i != oldval.i); - - return oldval.t; -} -// KOKKOS_INLINE_FUNCTION -// char atomic_fetch_sub(volatile char * dest, const char& val) { -template <class T> -KOKKOS_INLINE_FUNCTION T atomic_fetch_sub( - volatile T* dest, - typename std::enable_if<sizeof(T) == sizeof(char), T>::type val) { - unsigned int oldval, newval, assume; - oldval = *(int*)dest; - - do { - assume = oldval; - newval = assume & 0x7fffff00 + ((assume & 0xff) - val) & 0xff; - oldval = hc::atomic_compare_exchange_unsigned((unsigned int*)dest, assume, - newval); - } while (assume != oldval); - - return (T)oldval & 0xff; -} - -// KOKKOS_INLINE_FUNCTION -// short atomic_fetch_sub(volatile short * dest, const short& val) { -template <class T> -KOKKOS_INLINE_FUNCTION T atomic_fetch_sub( - volatile T* dest, - typename std::enable_if<sizeof(T) == sizeof(short), T>::type val) { - unsigned int oldval, newval, assume; - oldval = *(int*)dest; - - do { - assume = oldval; - newval = assume & 0x7fff0000 + ((assume & 0xffff) - val) & 0xffff; - oldval = hc::atomic_compare_exchange_unsigned((unsigned int*)dest, assume, - newval); - } while (assume != oldval); - - return (T)oldval & 0xffff; -} - -} // namespace Kokkos -#endif diff --git a/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Exec.cpp b/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Exec.cpp deleted file mode 100644 index 4c500521b..000000000 --- a/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Exec.cpp +++ /dev/null @@ -1,129 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ -#ifndef KOKKOS_ROCMEXEC_HPP -#define KOKKOS_ROCMEXEC_HPP - -#include <algorithm> -#include <typeinfo> -#include <Kokkos_Macros.hpp> -//#include <ROCm/Kokkos_ROCmExec.hpp> -#include <hc.hpp> - -#define ROCM_SPACE_ATOMIC_MASK 0x1FFFF -#define ROCM_SPACE_ATOMIC_XOR_MASK 0x15A39 -#define ROCM_CONCURRENCY 20480 -//#define ROCM_CONCURRENCY 81920 # for fiji - -namespace Kokkos { -static int rocm_space_atomic_locks[ROCM_SPACE_ATOMIC_MASK + 1]; -static int rocm_space_scratch_locks[ROCM_CONCURRENCY]; -static int rocm_space_threadid_locks[ROCM_CONCURRENCY]; -namespace Impl { -// TODO: mimic cuda implemtation, add dgpu capability - -void init_rocm_atomic_lock_array() { - static int is_initialized = 0; - if (!is_initialized) { - for (int i = 0; i < ROCM_SPACE_ATOMIC_MASK + 1; i++) - rocm_space_atomic_locks[i] = 0; - is_initialized = 1; - } -} - -void init_rocm_scratch_lock_array() { - static int is_initialized = 0; - if (!is_initialized) { - for (int i = 0; i < ROCM_CONCURRENCY; i++) rocm_space_scratch_locks[i] = 0; - is_initialized = 1; - } -} - -void init_rocm_threadid_lock_array() { - static int is_initialized = 0; - if (!is_initialized) { - for (int i = 0; i < ROCM_CONCURRENCY; i++) rocm_space_threadid_locks[i] = 0; - is_initialized = 1; - } -} - -void init_lock_arrays_rocm_space() { - init_rocm_atomic_lock_array(); - // init_rocm_scratch_lock_array(); - // init_rocm_threadid_lock_array(); -} -} // namespace Impl - -} // namespace Kokkos -#if 0 -namespace Kokkos { -namespace Impl { -KOKKOS_INLINE_FUNCTION -bool lock_address_rocm_space(void* ptr) { -#if 0 -return(Kokkos::Impl::lock_address_host_space(ptr)); -#else - size_t offset = size_t(ptr); - offset = offset >> 2; - offset = offset & ROCM_SPACE_ATOMIC_MASK; - return (0 == hc::atomic_compare_exchange(&rocm_space_atomic_locks[offset],0,1)); -#endif -} - -KOKKOS_INLINE_FUNCTION -void unlock_address_rocm_space(void* ptr) { -#if 0 -Kokkos::Impl::unlock_address_host_space(ptr) ; -#else - size_t offset = size_t(ptr); - offset = offset >> 2; - offset = offset & ROCM_SPACE_ATOMIC_MASK; - hc::atomic_exchange( &rocm_space_atomic_locks[ offset ], 0); -#endif -} - -} -} // namespace Kokkos -#endif - -#endif /* #ifndef KOKKOS_ROCMEXEC_HPP */ diff --git a/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Exec.hpp b/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Exec.hpp deleted file mode 100644 index 5f527a19b..000000000 --- a/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Exec.hpp +++ /dev/null @@ -1,265 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ -#ifndef KOKKOS_ROCMEXEC_HPP -#define KOKKOS_ROCMEXEC_HPP - -#include <algorithm> -#include <typeinfo> - -#if defined(__HCC_ACCELERATOR__) -#define printf(...) -#endif - -namespace Kokkos { -namespace Impl { - -struct ROCmTraits { - // TODO: determine if needed - enum { WavefrontSize = 64 /* 64 */ }; - enum { WorkgroupSize = 256 /* 256 */ }; - enum { WavefrontIndexMask = 0x003f /* Mask for wavefrontindex */ }; - enum { WavefrontIndexShift = 6 /* WavefrontSize == 1 << WavefrontShift */ }; - - enum { SharedMemoryBanks = 64 /* GCN */ }; - enum { SharedMemoryCapacity = 0x10000 /* 64k shared / 16k L1 Cache */ }; - enum { SharedMemoryUsage = 0x04000 /* 64k shared / 16k L1 Cache */ }; - - enum { UpperBoundExtentCount = 4294967295 /* Hard upper bound */ }; -#if 0 - KOKKOS_INLINE_FUNCTION static - ROCmSpace::size_type wavefront_count( ROCmSpace::size_type i ) - { return ( i + WavefrontIndexMask ) >> WavefrontIndexShift ; } - - KOKKOS_INLINE_FUNCTION static - ROCmSpace::size_type wavefront_align( ROCmSpace::size_type i ) - { - enum { Mask = ~ROCmSpace::size_type( WavefrontIndexMask ) }; - return ( i + WavefrontIndexMask ) & Mask ; - } -#endif -}; -size_t rocm_internal_cu_count(); -size_t rocm_internal_maximum_workgroup_count(); - -size_t *rocm_internal_scratch_flags(const size_t size); -size_t *rocm_internal_scratch_space(const size_t size); - -// This pointer is the start of dynamic shared memory (LDS). -// Dynamic is at the end of LDS and it's size must be specified -// in a tile_block specification at kernel launch time. -template <typename T> -KOKKOS_INLINE_FUNCTION T *kokkos_impl_rocm_shared_memory() -//{ return (T*) hc::get_group_segment_base_pointer() ; } -{ - return (T *)hc::get_dynamic_group_segment_base_pointer(); -} - -} // namespace Impl -} // namespace Kokkos -#define ROCM_SPACE_ATOMIC_MASK 0x1FFFF -#define ROCM_SPACE_ATOMIC_XOR_MASK 0x15A39 -// int rocm_space_atomic_locks[ROCM_SPACE_ATOMIC_MASK+1]; -extern int *rocm_space_atomic_locks; - -namespace Kokkos { -namespace Impl { -void init_lock_arrays_rocm_space(); - -void *rocm_resize_scratch_space(size_t bytes, bool force_shrink = false); - -// TODO: determine if needed -KOKKOS_INLINE_FUNCTION -bool lock_address_rocm_space(void *ptr) { -#if 0 -return(Kokkos::Impl::lock_address_host_space(ptr)); -#else - size_t offset = size_t(ptr); - offset = offset >> 2; - offset = offset & ROCM_SPACE_ATOMIC_MASK; - return (0 == - hc::atomic_compare_exchange(&rocm_space_atomic_locks[offset], 0, 1)); -#endif -} -KOKKOS_INLINE_FUNCTION -void unlock_address_rocm_space(void *ptr) { -#if 0 -Kokkos::Impl::unlock_address_host_space(ptr) ; -#else - size_t offset = size_t(ptr); - offset = offset >> 2; - offset = offset & ROCM_SPACE_ATOMIC_MASK; - hc::atomic_exchange(&rocm_space_atomic_locks[offset], 0); -#endif -} - -} // namespace Impl -} // namespace Kokkos - -namespace Kokkos { -namespace Impl { -// extern -// KOKKOS_INLINE_FUNCTION -// void init_lock_arrays_rocm_space(); - -} -} // namespace Kokkos -//#if defined(__HCC_ACCELERATOR__) -namespace Kokkos { -namespace Impl { -/* -template< class DriverType> -__global__ -static void rocm_parallel_launch_constant_memory() -{ - const DriverType & driver = - *((const DriverType *) kokkos_impl_rocm_constant_memory_buffer ); - - driver(); -} - -template< class DriverType, unsigned int maxTperB, unsigned int minBperSM > -__global__ -__launch_bounds__(maxTperB, minBperSM) -static void rocm_parallel_launch_constant_memory() -{ - const DriverType & driver = - *((const DriverType *) kokkos_impl_rocm_constant_memory_buffer ); - - driver(); -} - -template< class DriverType> -__global__ -static void rocm_parallel_launch_local_memory( const DriverType driver ) -{ - driver(); -} - -template< class DriverType, unsigned int maxTperB, unsigned int minBperSM > -__global__ -__launch_bounds__(maxTperB, minBperSM) -static void rocm_parallel_launch_local_memory( const DriverType driver ) -{ - driver(); -} -*/ -template <class DriverType, class LaunchBounds = Kokkos::LaunchBounds<>> -struct ROCmParallelLaunch; - -template <class DriverType, unsigned int MaxThreadsPerBlock, - unsigned int MinBlocksPerSM> -struct ROCmParallelLaunch< - DriverType, Kokkos::LaunchBounds<MaxThreadsPerBlock, MinBlocksPerSM>> { - inline ROCmParallelLaunch(const DriverType &driver, const dim3 &grid, - const dim3 &block, const int shmem) { - if (grid.x && (block.x * block.y * block.z)) { - if (ROCmTraits::SharedMemoryCapacity < shmem) { - Kokkos::Impl::throw_runtime_exception(std::string( - "ROCmParallelLaunch FAILED: shared memory request is too large")); - } - DriverType *rocm_memory_buffer = - (DriverType *)rocm_device_allocate(sizeof(DriverType)); - // Copy functor to constant memory on the device - Kokkos::Impl::DeepCopy<HostSpace, Kokkos::Experimental::ROCmSpace>( - rocm_memory_buffer, (void *)&driver, sizeof(DriverType)); - - // KOKKOS_ENSURE_ROCM_LOCK_ARRAYS_ON_DEVICE(); - - // Invoke the driver function on the device - auto ext = hc::extent<3>(grid.z, grid.y, grid.x); - size_t bx = (grid.x > block.x) ? block.x : grid.x; - size_t by = (grid.y > block.y) ? block.y : grid.y; - size_t bz = (grid.z > block.z) ? block.z : grid.z; - - hc::parallel_for_each( - ext.tile_with_dynamic(bz, by, bx, shmem), [=](const hc::index<3> &idx) - [[hc]] - - { rocm_memory_buffer->operator()(); }) - .wait(); - rocm_device_free(rocm_memory_buffer); - - //#if defined( KOKKOS_ENABLE_DEBUG_BOUNDS_CHECK ) - // ROCM_SAFE_CALL( rocmGetLastError() ); - // Kokkos::ROCm().fence(); - //#endif - } - } -}; -template <class DriverType> -struct ROCmParallelLaunch<DriverType, Kokkos::LaunchBounds<>> { - inline ROCmParallelLaunch(const DriverType &driver, const dim3 &grid, - const dim3 &block, const int shmem) { - if (grid.x && (block.x * block.y * block.z)) { - if (ROCmTraits::SharedMemoryCapacity < shmem) { - Kokkos::Impl::throw_runtime_exception(std::string( - "ROCmParallelLaunch FAILED: shared memory request is too large")); - } - - DriverType *rocm_memory_buffer = - (DriverType *)rocm_device_allocate(sizeof(DriverType)); - // Copy functor to constant memory on the device - Kokkos::Impl::DeepCopy<HostSpace, Kokkos::Experimental::ROCmSpace>( - rocm_memory_buffer, (void *)&driver, sizeof(DriverType)); - - // KOKKOS_ENSURE_ROCM_LOCK_ARRAYS_ON_DEVICE(); - // Invoke the driver function on the device - auto ext = hc::extent<3>(grid.z, grid.y, grid.x); - size_t bx = (grid.x > block.x) ? block.x : grid.x; - size_t by = (grid.y > block.y) ? block.y : grid.y; - size_t bz = (grid.z > block.z) ? block.z : grid.z; - hc::parallel_for_each( - ext.tile_with_dynamic(bz, by, bx, shmem), [=](const hc::index<3> &idx) - [[hc]] - - { rocm_memory_buffer->operator()(); }) - .wait(); - rocm_device_free(rocm_memory_buffer); - } - } -}; -} // namespace Impl -} // namespace Kokkos - -#endif /* #ifndef KOKKOS_ROCMEXEC_HPP */ diff --git a/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Impl.cpp b/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Impl.cpp deleted file mode 100644 index aedde5b80..000000000 --- a/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Impl.cpp +++ /dev/null @@ -1,729 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -/*--------------------------------------------------------------------------*/ -/* Kokkos interfaces */ - -#include <Kokkos_Core.hpp> - -/* only compile this file if ROCM is enabled for Kokkos */ -#ifdef KOKKOS_ENABLE_ROCM - -//#include <ROCm/Kokkos_ROCm_Internal.hpp> -#include <impl/Kokkos_Error.hpp> -#include <Kokkos_ROCmSpace.hpp> -#include <ROCm/Kokkos_ROCm_Exec.hpp> - -/*--------------------------------------------------------------------------*/ -/* Standard 'C' libraries */ -#include <stdlib.h> - -/* Standard 'C++' libraries */ -#include <vector> -#include <iostream> -#include <sstream> -#include <string> - -// KOKKOS_INLINE_FUNCTION -// Kokkos::Impl::ROCmLockArraysStruct kokkos_impl_rocm_lock_arrays ; - -/*--------------------------------------------------------------------------*/ -namespace Kokkos { -namespace Impl { - -#if 0 -namespace { -__global__ -void query_rocm_kernel_arch( int * d_arch ) -{ -#if defined(__HCC_ACCELERATOR__) - *d_arch = OCM_ARCH__ ; -#else - *d_arch = 0 ; -#endif -} - -/** Query what compute capability is actually launched to the device: */ -int rocm_kernel_arch() -{ - int * d_arch = 0 ; - rocmMalloc( (void **) & d_arch , sizeof(int) ); - query_rocm_kernel_arch<<<1,1>>>( d_arch ); - int arch = 0 ; - rocmMemcpy( & arch , d_arch , sizeof(int) , rocmMemcpyDefault ); - rocmFree( d_arch ); - return arch ; -} -bool rocm_launch_blocking() -{ - const char * env = getenv("ROCM_LAUNCH_BLOCKING"); - - if (env == 0) return false; - - return atoi(env); -} - -} -#endif - -// true device memory allocation, not visible from host -void* rocm_device_allocate(int size) { - void* ptr; - hc::accelerator acc; - ptr = hc::am_alloc(size, acc, 0); - return ptr; -} - -// host pinned allocation -// flag = 1, non-coherent, host resident, but with gpu address space pointer -// flag = 2, coherent, host resident, but with host address space pointer -void* rocm_hostpinned_allocate(int size) { - void* ptr; - hc::accelerator acc; - ptr = hc::am_alloc(size, acc, 2); - return ptr; -} -// same free used by all rocm memory allocations -void rocm_device_free(void* ptr) { hc::am_free(ptr); } - -KOKKOS_INLINE_FUNCTION -void rocm_device_synchronize() { - hc::accelerator_view av = hc::accelerator().get_default_view(); - hc::completion_future fut = av.create_marker(); - fut.wait(); -} - -void rocm_internal_error_throw(const char* name, const char* file, - const int line) { -#if 0 - std::ostringstream out ; - out << name << " error( " << rocmGetErrorName(e) << "): " << rocmGetErrorString(e); - if (file) { - out << " " << file << ":" << line; - } - throw_runtime_exception( out.str() ); -#endif -} - -//---------------------------------------------------------------------------- -// Some significant rocm device properties: -// -// rocmDeviceProp::name : Text label for device -// rocmDeviceProp::major : Device major number -// rocmDeviceProp::minor : Device minor number -// rocmDeviceProp::workgroupSize : number of threads per workgroup -// rocmDeviceProp::multiProcessorCount : number of multiprocessors -// rocmDeviceProp::sharedMemPerBlock : capacity of shared memory per wavefront -// rocmDeviceProp::totalConstMem : capacity of constant memory -// rocmDeviceProp::totalGlobalMem : capacity of global memory -// rocmDeviceProp::maxGridSize[3] : maximum grid size - -// -// -// the data we have available from a ROCm accelerator -// std::wstring get_device_path() -// std::wstring get_description() -// unsigned int get_version() -// bool get_has_display() -// size_t get_dedicated_memory() -// bool get_supports_double_precision() -// bool get_supports_limited_double_precision() -// bool get_is_debug() -// bool get_supports_cpu_shared_memory() -// size_t get_max_tile_static_size() -// unsigned int get_cu_count() -// bool has_cpu_accessible_am() -struct rocmDeviceProp { - char name[256]; - char description[256]; - unsigned int version; - int device_type; - int device_ordinal; - int major; - int minor; - size_t totalGlobalMem; - size_t sharedMemPerWavefront; - int WavefrontSize; - int WorkgroupSize; - int MaxTileCount; - int maxThreadsPerWorkgroup; - int multiProcessorCount; - int canMapHostMemory; - bool APU; -}; - -void rocmGetDeviceProperties(struct rocmDeviceProp* devProp, int device) { - std::wstring s; - int i, n; - hc::accelerator acc; - std::vector<hc::accelerator> accv = acc.get_all(); - - hc::accelerator a = accv[device]; - - s = a.get_device_path(); - i = 0; - for (wchar_t c : s) - if ((n = std::wctomb(&devProp->name[i], c)) > 0) i += n; - - /* assume a CPU */ - devProp->version = a.get_version(); - devProp->major = a.get_version() >> 16; // for CPU, these are meaningless - devProp->minor = a.get_version() & 0xff; - devProp->device_ordinal = 0; - - /* is this an AMD graphics card */ - if ((devProp->name[0] == 'g') && (devProp->name[1] == 'f') && - (devProp->name[2] == 'x')) { - /* for AMD cards, the name has the format gfxMmmO */ - - devProp->device_type = ((devProp->name[3] - 0x30) << 16) + - ((devProp->name[4] - 0x30) << 8) + - (devProp->name[5] - 0x30); - devProp->device_ordinal = devProp->name[6] - 0x30; - devProp->major = devProp->name[3] - 0x30; - devProp->minor = devProp->name[5] - 0x30; - } - - s = a.get_description(); - i = 0; - for (wchar_t c : s) - if ((n = std::wctomb(&devProp->description[i], c)) > 0) i += n; - devProp->totalGlobalMem = a.get_dedicated_memory(); - devProp->sharedMemPerWavefront = a.get_max_tile_static_size(); - devProp->WavefrontSize = 64; - devProp->WorkgroupSize = 256; // preferred - devProp->MaxTileCount = - 409600; // as defined in /opt/rocm/hcc-lc/include/hsa_new.h - devProp->maxThreadsPerWorkgroup = 1024; - devProp->multiProcessorCount = a.get_cu_count(); - devProp->canMapHostMemory = a.get_supports_cpu_shared_memory(); - // Kaveri has 64KB L2 per CU, 16KB L1, 64KB Vector Regs/SIMD, or 128 - // regs/thread GCN has 64KB LDS per CU - - // Kaveri APU is 7:0:0 - // Carrizo APU is 8:0:1 - devProp->APU = (((devProp->major == 7) && (devProp->minor == 0)) | - ((devProp->major == 8) && (devProp->minor == 1))) - ? true - : false; -} - -namespace { - -class ROCmInternalDevices { - public: - enum { MAXIMUM_DEVICE_COUNT = 64 }; - struct rocmDeviceProp m_rocmProp[MAXIMUM_DEVICE_COUNT]; - int m_rocmDevCount; - - ROCmInternalDevices(); - - static const ROCmInternalDevices& singleton(); -}; - -ROCmInternalDevices::ROCmInternalDevices() { - hc::accelerator acc; - std::vector<hc::accelerator> accv = acc.get_all(); - m_rocmDevCount = accv.size(); - - if (m_rocmDevCount > MAXIMUM_DEVICE_COUNT) { - Kokkos::abort( - "Sorry, you have more GPUs per node than we thought anybody would ever " - "have. Please report this to github.com/kokkos/kokkos."); - } - for (int i = 0; i < m_rocmDevCount; ++i) { - rocmGetDeviceProperties(m_rocmProp + i, i); - } -} - -const ROCmInternalDevices& ROCmInternalDevices::singleton() { - static ROCmInternalDevices* self = nullptr; - if (!self) { - self = new ROCmInternalDevices(); - } - return *self; -} - -} // namespace - -//---------------------------------------------------------------------------- - -class ROCmInternal { - private: - ROCmInternal(const ROCmInternal&); - ROCmInternal& operator=(const ROCmInternal&); - - public: - typedef Kokkos::Experimental::ROCm::size_type size_type; - - int m_rocmDev; - int m_rocmArch; - unsigned m_multiProcCount; - unsigned m_maxWorkgroup; - unsigned m_maxSharedWords; - size_type m_scratchSpaceCount; - size_type m_scratchFlagsCount; - size_type* m_scratchSpace; - size_type* m_scratchFlags; - - static int was_finalized; - - static ROCmInternal& singleton(); - - int verify_is_initialized(const char* const label) const; - - int is_initialized() const { - return 0 != m_scratchSpace && 0 != m_scratchFlags; - } - - void initialize(int rocm_device_id); - void finalize(); - - void print_configuration(std::ostream&) const; - - ~ROCmInternal(); - - ROCmInternal() - : m_rocmDev(-1), - m_rocmArch(-1), - m_multiProcCount(0), - m_maxWorkgroup(0), - m_maxSharedWords(0), - m_scratchSpaceCount(0), - m_scratchFlagsCount(0), - m_scratchSpace(0), - m_scratchFlags(0) {} - - size_type* scratch_space(const size_type size); - size_type* scratch_flags(const size_type size); -}; - -int ROCmInternal::was_finalized = 0; -//---------------------------------------------------------------------------- - -void ROCmInternal::print_configuration(std::ostream& s) const { - const ROCmInternalDevices& dev_info = ROCmInternalDevices::singleton(); - -#if defined(KOKKOS_ENABLE_ROCM) - s << "macro KOKKOS_ENABLE_ROCM : defined" << std::endl; -#endif -#if defined(__hcc_version__) - s << "macro __hcc_version__ = " << __hcc_version__ << std::endl; -#endif - - for (int i = 0; i < dev_info.m_rocmDevCount; ++i) { - s << "Kokkos::Experimental::ROCm[ " << i << " ] " - << dev_info.m_rocmProp[i].name << " version " - << (dev_info.m_rocmProp[i].major) << "." << dev_info.m_rocmProp[i].minor - << ", Total Global Memory: " - << human_memory_size(dev_info.m_rocmProp[i].totalGlobalMem) - << ", Shared Memory per Wavefront: " - << human_memory_size(dev_info.m_rocmProp[i].sharedMemPerWavefront); - if (m_rocmDev == i) s << " : Selected"; - s << std::endl; - } -} - -//---------------------------------------------------------------------------- - -ROCmInternal::~ROCmInternal() { - if (m_scratchSpace || m_scratchFlags) { - std::cerr << "Kokkos::Experimental::ROCm ERROR: Failed to call " - "Kokkos::Experimental::ROCm::finalize()" - << std::endl; - std::cerr.flush(); - } - - m_rocmDev = -1; - m_rocmArch = -1; - m_multiProcCount = 0; - m_maxWorkgroup = 0; - m_maxSharedWords = 0; - m_scratchSpaceCount = 0; - m_scratchFlagsCount = 0; - m_scratchSpace = 0; - m_scratchFlags = 0; -} - -int ROCmInternal::verify_is_initialized(const char* const label) const { - if (m_rocmDev < 0) { - std::cerr << "Kokkos::Experimental::ROCm::" << label - << " : ERROR device not initialized" << std::endl; - } - return 0 <= m_rocmDev; -} - -ROCmInternal& ROCmInternal::singleton() { - static ROCmInternal* self = nullptr; - if (!self) { - self = new ROCmInternal(); - } - return *self; -} - -void ROCmInternal::initialize(int rocm_device_id) { - if (was_finalized) - Kokkos::abort("Calling ROCm::initialize after ROCm::finalize is illegal\n"); - - if (is_initialized()) return; - - enum { WordSize = sizeof(size_type) }; - - if (!HostSpace::execution_space::is_initialized()) { - const std::string msg( - "ROCm::initialize ERROR : HostSpace::execution_space is not " - "initialized"); - throw_runtime_exception(msg); - } - - const ROCmInternalDevices& dev_info = ROCmInternalDevices::singleton(); - - const bool ok_init = 0 == m_scratchSpace || 0 == m_scratchFlags; - - const bool ok_id = - 1 <= rocm_device_id && rocm_device_id < dev_info.m_rocmDevCount; - - // Need at least a GPU device - - const bool ok_dev = - ok_id && (1 <= dev_info.m_rocmProp[rocm_device_id].major && - 0 <= dev_info.m_rocmProp[rocm_device_id].minor); - if (ok_init && ok_dev) { - const struct rocmDeviceProp& rocmProp = dev_info.m_rocmProp[rocm_device_id]; - - m_rocmDev = rocm_device_id; - - // rocmSetDevice( m_rocmDev ) ); - Kokkos::Impl::rocm_device_synchronize(); - - /* - // Query what compute capability architecture a kernel executes: - m_rocmArch = rocm_kernel_arch(); - if ( m_rocmArch != rocmProp.major * 100 + rocmProp.minor * 10 ) { - std::cerr << "Kokkos::Experimental::ROCm::initialize WARNING: running - kernels compiled for compute capability " - << ( m_rocmArch / 100 ) << "." << ( ( m_rocmArch % 100 ) / - 10 ) - << " on device with compute capability " - << rocmProp.major << "." << rocmProp.minor - << " , this will likely reduce potential performance." - << std::endl ; - } - */ - // number of multiprocessors - - m_multiProcCount = rocmProp.multiProcessorCount; - - //---------------------------------- - // Maximum number of wavefronts, - // at most one workgroup per thread in a workgroup for reduction. - - m_maxSharedWords = rocmProp.sharedMemPerWavefront / WordSize; - - //---------------------------------- - // Maximum number of Workgroups: - - m_maxWorkgroup = - 5 * rocmProp.multiProcessorCount; // TODO: confirm usage and value - - //---------------------------------- - // Multiblock reduction uses scratch flags for counters - // and scratch space for partial reduction values. - // Allocate some initial space. This will grow as needed. - - { - const unsigned reduce_block_count = - m_maxWorkgroup * Impl::ROCmTraits::WorkgroupSize; - - (void)scratch_flags(reduce_block_count * 2 * sizeof(size_type)); - (void)scratch_space(reduce_block_count * 16 * sizeof(size_type)); - } - //---------------------------------- - - } else { - std::ostringstream msg; - msg << "Kokkos::Experimental::ROCm::initialize(" << rocm_device_id - << ") FAILED"; - - if (!ok_init) { - msg << " : Already initialized"; - } - if (!ok_id) { - msg << " : Device identifier out of range " - << "[0.." << (dev_info.m_rocmDevCount - 1) << "]"; - } else if (!ok_dev) { - msg << " : Device "; - msg << dev_info.m_rocmProp[rocm_device_id].major; - msg << "."; - msg << dev_info.m_rocmProp[rocm_device_id].minor; - msg << " Need at least a GPU"; - msg << std::endl; - } - Kokkos::Impl::throw_runtime_exception(msg.str()); - } - - // Init the array for used for arbitrarily sized atomics - Kokkos::Impl::init_lock_arrays_rocm_space(); - - // Kokkos::Impl::ROCmLockArraysStruct locks; - // locks.atomic = atomic_lock_array_rocm_space_ptr(false); - // locks.scratch = scratch_lock_array_rocm_space_ptr(false); - // locks.threadid = threadid_lock_array_rocm_space_ptr(false); - // rocmMemcpyToSymbol( kokkos_impl_rocm_lock_arrays , & locks , - // sizeof(ROCmLockArraysStruct) ); -} - -//---------------------------------------------------------------------------- - -typedef Kokkos::Experimental::ROCm::size_type - ScratchGrain[Impl::ROCmTraits::WorkgroupSize]; -enum { sizeScratchGrain = sizeof(ScratchGrain) }; - -void rocmMemset(Kokkos::Experimental::ROCm::size_type* ptr, - Kokkos::Experimental::ROCm::size_type value, - Kokkos::Experimental::ROCm::size_type size) { - char* mptr = (char*)ptr; - /* parallel_for_each(hc::extent<1>(size), - [=, &ptr] - (hc::index<1> idx) __HC__ - { - int i = idx[0]; - ptr[i] = value; - }).wait();*/ -} - -Kokkos::Experimental::ROCm::size_type* ROCmInternal::scratch_flags( - const Kokkos::Experimental::ROCm::size_type size) { - if (verify_is_initialized("scratch_flags") && - m_scratchFlagsCount * sizeScratchGrain < size) { - m_scratchFlagsCount = (size + sizeScratchGrain - 1) / sizeScratchGrain; - - typedef Kokkos::Impl::SharedAllocationRecord< - Kokkos::Experimental::ROCmSpace, void> - Record; - - Record* const r = Record::allocate( - Kokkos::Experimental::ROCmSpace(), "InternalScratchFlags", - (sizeScratchGrain * m_scratchFlagsCount)); - - Record::increment(r); - - m_scratchFlags = reinterpret_cast<size_type*>(r->data()); - - rocmMemset(m_scratchFlags, 0, m_scratchFlagsCount * sizeScratchGrain); - } - - return m_scratchFlags; -} - -Kokkos::Experimental::ROCm::size_type* ROCmInternal::scratch_space( - const Kokkos::Experimental::ROCm::size_type size) { - if (verify_is_initialized("scratch_space") && - m_scratchSpaceCount * sizeScratchGrain < size) { - m_scratchSpaceCount = (size + sizeScratchGrain - 1) / sizeScratchGrain; - - typedef Kokkos::Impl::SharedAllocationRecord< - Kokkos::Experimental::ROCmSpace, void> - Record; - - static Record* const r = Record::allocate( - Kokkos::Experimental::ROCmSpace(), "InternalScratchSpace", - (sizeScratchGrain * m_scratchSpaceCount)); - - Record::increment(r); - - m_scratchSpace = reinterpret_cast<size_type*>(r->data()); - } - - return m_scratchSpace; -} - -//---------------------------------------------------------------------------- - -void ROCmInternal::finalize() { - Kokkos::Impl::rocm_device_synchronize(); - was_finalized = 1; - if (0 != m_scratchSpace || 0 != m_scratchFlags) { - // atomic_lock_array_rocm_space_ptr(false); - // scratch_lock_array_rocm_space_ptr(false); - // threadid_lock_array_rocm_space_ptr(false); - - typedef Kokkos::Impl::SharedAllocationRecord< - Kokkos::Experimental::ROCmSpace> - RecordROCm; - typedef Kokkos::Impl::SharedAllocationRecord< - Kokkos::Experimental::ROCmHostPinnedSpace> - RecordHost; - - RecordROCm::decrement(RecordROCm::get_record(m_scratchFlags)); - RecordROCm::decrement(RecordROCm::get_record(m_scratchSpace)); - - m_rocmDev = -1; - m_multiProcCount = 0; - m_maxWorkgroup = 0; - m_maxSharedWords = 0; - m_scratchSpaceCount = 0; - m_scratchFlagsCount = 0; - m_scratchSpace = 0; - m_scratchFlags = 0; - } -} - -//---------------------------------------------------------------------------- - -Kokkos::Experimental::ROCm::size_type rocm_internal_cu_count() { - return ROCmInternal::singleton().m_multiProcCount; -} - -Kokkos::Experimental::ROCm::size_type rocm_internal_maximum_extent_size() { - return ROCmInternal::singleton().m_maxWorkgroup; -} - -Kokkos::Experimental::ROCm::size_type rocm_internal_maximum_shared_words() { - return ROCmInternal::singleton().m_maxSharedWords; -} - -Kokkos::Experimental::ROCm::size_type* rocm_internal_scratch_space( - const Kokkos::Experimental::ROCm::size_type size) { - return ROCmInternal::singleton().scratch_space(size); -} - -Kokkos::Experimental::ROCm::size_type* rocm_internal_scratch_flags( - const Kokkos::Experimental::ROCm::size_type size) { - return ROCmInternal::singleton().scratch_flags(size); -} - -} // namespace Impl -} // namespace Kokkos - -//---------------------------------------------------------------------------- - -namespace Kokkos { -namespace Experimental { - -// ROCm::size_type ROCm::detect_device_count() -//{ return Impl::ROCmInternalDevices::singleton().m_rocmDevCount ; } - -int ROCm::concurrency() { -#if defined(KOKKOS_ARCH_KAVERI) - return 8 * 64 * 40; // 20480 kaveri -#else - return 32 * 8 * 40; // 81920 fiji and hawaii -#endif -} -int ROCm::is_initialized() { - return Kokkos::Impl::ROCmInternal::singleton().is_initialized(); -} - -void ROCm::initialize(const ROCm::SelectDevice config) { - Kokkos::Impl::ROCmInternal::singleton().initialize(config.rocm_device_id); - -#if defined(KOKKOS_ENABLE_PROFILING) - Kokkos::Profiling::initialize(); -#endif -} - -#if 0 -std::vector<unsigned> -ROCm::detect_device_arch() -{ - const Impl::ROCmInternalDevices & s = Impl::ROCmInternalDevices::singleton(); - - std::vector<unsigned> output( s.m_rocmDevCount ); - - for ( int i = 0 ; i < s.m_rocmDevCount ; ++i ) { - output[i] = s.m_rocmProp[i].major * 100 + s.m_rocmProp[i].minor ; - } - - return output ; -} - -ROCm::size_type ROCm::device_arch() -{ - return 1 ; -} -#endif - -void ROCm::finalize() { - Kokkos::Impl::ROCmInternal::singleton().finalize(); - -#if defined(KOKKOS_ENABLE_PROFILING) - Kokkos::Profiling::finalize(); -#endif -} - -ROCm::ROCm() : m_device(Kokkos::Impl::ROCmInternal::singleton().m_rocmDev) { - Kokkos::Impl::ROCmInternal::singleton().verify_is_initialized( - "ROCm instance constructor"); -} - -bool ROCm::isAPU(int device) { - const Kokkos::Impl::ROCmInternalDevices& dev_info = - Kokkos::Impl::ROCmInternalDevices::singleton(); - return (dev_info.m_rocmProp[device].APU); -} - -bool ROCm::isAPU() { return ROCm::isAPU(rocm_device()); } - -// ROCm::ROCm( const int instance_id ) -// : m_device( Impl::ROCmInternal::singleton().m_rocmDev ) -//{} - -void ROCm::print_configuration(std::ostream& s, const bool) { - Kokkos::Impl::ROCmInternal::singleton().print_configuration(s); -} - -bool ROCm::sleep() { return false; } - -bool ROCm::wake() { return true; } - -void ROCm::fence() { Kokkos::Impl::rocm_device_synchronize(); } - -const char* ROCm::name() { return "ROCm"; } - -} // namespace Experimental -} // namespace Kokkos - -#endif // KOKKOS_ENABLE_ROCM -//---------------------------------------------------------------------------- diff --git a/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Parallel.hpp b/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Parallel.hpp deleted file mode 100644 index 8a4d8c07d..000000000 --- a/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Parallel.hpp +++ /dev/null @@ -1,1793 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <algorithm> -#include <typeinfo> -#include <ROCm/Kokkos_ROCm_Reduce.hpp> -#include <ROCm/Kokkos_ROCm_Scan.hpp> -#include <ROCm/Kokkos_ROCm_Exec.hpp> -#include <ROCm/Kokkos_ROCm_Vectorization.hpp> -#include <ROCm/KokkosExp_ROCm_IterateTile_Refactor.hpp> - -#include <KokkosExp_MDRangePolicy.hpp> - -namespace Kokkos { -namespace Impl { - -struct ROCmTeamMember; - -template <class... Properties> -class TeamPolicyInternal<Kokkos::Experimental::ROCm, Properties...> - : public PolicyTraits<Properties...> { - private: - int m_league_size; - int m_team_size; - int m_vector_length; - int m_team_scratch_size[2]; - int m_thread_scratch_size[2]; - int m_chunk_size; - - public: - using execution_policy = TeamPolicyInternal; - using execution_space = Kokkos::Experimental::ROCm; - typedef PolicyTraits<Properties...> traits; - - TeamPolicyInternal& operator=(const TeamPolicyInternal& p) { - m_league_size = p.m_league_size; - m_team_size = p.m_team_size; - m_vector_length = p.m_vector_length; - m_team_scratch_size[0] = p.m_team_scratch_size[0]; - m_team_scratch_size[1] = p.m_team_scratch_size[1]; - m_thread_scratch_size[0] = p.m_thread_scratch_size[0]; - m_thread_scratch_size[1] = p.m_thread_scratch_size[1]; - m_chunk_size = p.m_chunk_size; - return *this; - } - - template <class ExecSpace, class... OtherProperties> - friend class TeamPolicyInternal; - - template <class... OtherProperties> - TeamPolicyInternal(const TeamPolicyInternal<Kokkos::Experimental::ROCm, - OtherProperties...>& p) { - m_league_size = p.m_league_size; - m_team_size = p.m_team_size; - m_vector_length = p.m_vector_length; - m_team_scratch_size[0] = p.m_team_scratch_size[0]; - m_team_scratch_size[1] = p.m_team_scratch_size[1]; - m_thread_scratch_size[0] = p.m_thread_scratch_size[0]; - m_thread_scratch_size[1] = p.m_thread_scratch_size[1]; - m_chunk_size = p.m_chunk_size; - } - - TeamPolicyInternal() - : m_league_size(0), - m_team_size(0), - m_vector_length(0), - m_team_scratch_size{0, 0}, - m_thread_scratch_size{0, 0}, - m_chunk_size(64) {} - - TeamPolicyInternal(const int arg_league_size, const int arg_team_size) - : m_league_size(arg_league_size), - m_team_size(arg_team_size), - m_team_scratch_size{0, 0}, - m_thread_scratch_size{0, 0}, - m_chunk_size(64) {} - - TeamPolicyInternal(const int arg_league_size, const int arg_team_size, - const int vector_length_request = 1) - : m_league_size(arg_league_size), - m_team_size(arg_team_size), - m_vector_length(vector_length_request), - m_team_scratch_size{0, 0}, - m_thread_scratch_size{0, 0}, - m_chunk_size(64) {} - - TeamPolicyInternal(const int arg_league_size, const Kokkos::AUTO_t) - : m_league_size(arg_league_size), - m_team_size(-1), - m_team_scratch_size{0, 0}, - m_thread_scratch_size{0, 0}, - m_chunk_size(64) {} - - TeamPolicyInternal(const int arg_league_size, const Kokkos::AUTO_t, - const int vector_length_request) - : m_league_size(arg_league_size), - m_team_size(-1), - m_vector_length(vector_length_request), - m_team_scratch_size{0, 0}, - m_thread_scratch_size{0, 0}, - m_chunk_size(64) {} - - inline int chunk_size() const { return m_chunk_size; } - -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - /** \brief set chunk_size to a discrete value*/ - KOKKOS_INLINE_FUNCTION TeamPolicyInternal - set_chunk_size(typename traits::index_type chunk_size_) const { - TeamPolicyInternal p = *this; - p.m_chunk_size = chunk_size_; - return p; - } - - /** \brief set per team scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal set_scratch_size( - const int& level, const PerTeamValue& per_team) const { - TeamPolicyInternal p = *this; - p.m_team_scratch_size[level] = per_team.value; - return p; - } - - /** \brief set per thread scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal set_scratch_size( - const int& level, const PerThreadValue& per_thread) const { - TeamPolicyInternal p = *this; - p.m_thread_scratch_size[level] = per_thread.value; - return p; - } - - /** \brief set per thread and per team scratch size for a specific level of - * the scratch hierarchy */ - inline TeamPolicyInternal set_scratch_size( - const int& level, const PerTeamValue& per_team, - const PerThreadValue& per_thread) const { - TeamPolicyInternal p = *this; - p.m_team_scratch_size[level] = per_team.value; - p.m_thread_scratch_size[level] = per_thread.value; - return p; - } -#else - /** \brief set chunk_size to a discrete value*/ - inline TeamPolicyInternal& set_chunk_size( - typename traits::index_type chunk_size_) { - m_chunk_size = chunk_size_; - return *this; - } - - /** \brief set per team scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal& set_scratch_size(const int& level, - const PerTeamValue& per_team) { - m_team_scratch_size[level] = per_team.value; - return *this; - } - - /** \brief set per thread scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal& set_scratch_size( - const int& level, const PerThreadValue& per_thread) { - m_thread_scratch_size[level] = per_thread.value; - return *this; - } - - /** \brief set per thread and per team scratch size for a specific level of - * the scratch hierarchy */ - inline TeamPolicyInternal& set_scratch_size( - const int& level, const PerTeamValue& per_team, - const PerThreadValue& per_thread) { - m_team_scratch_size[level] = per_team.value; - m_thread_scratch_size[level] = per_thread.value; - return *this; - } -#endif - - protected: -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - /** \brief set chunk_size to a discrete value*/ - inline TeamPolicyInternal internal_set_chunk_size( - typename traits::index_type chunk_size_) { - m_chunk_size = chunk_size_; - return *this; - } - - /** \brief set per team scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal internal_set_scratch_size( - const int& level, const PerTeamValue& per_team) { - m_team_scratch_size[level] = per_team.value; - return *this; - } - - /** \brief set per thread scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal internal_set_scratch_size( - const int& level, const PerThreadValue& per_thread) { - m_thread_scratch_size[level] = per_thread.value; - return *this; - } - - /** \brief set per thread and per team scratch size for a specific level of - * the scratch hierarchy */ - inline TeamPolicyInternal internal_set_scratch_size( - const int& level, const PerTeamValue& per_team, - const PerThreadValue& per_thread) { - m_team_scratch_size[level] = per_team.value; - m_thread_scratch_size[level] = per_thread.value; - return *this; - } -#endif - - public: - // TODO: evaluate proper team_size_max requirements - template <class Functor_Type> - KOKKOS_INLINE_FUNCTION static int team_size_max(const Functor_Type& functor) { - typedef typename Kokkos::Impl::FunctorValueTraits< - Functor_Type, typename traits::work_tag>::value_type value_type; - return team_size_recommended(functor); - // return std::min(Kokkos::Impl::get_max_tile_size() / sizeof(value_type), - // Kokkos::Impl::get_max_tile_thread()); - } - - template <class Functor_Type> - KOKKOS_INLINE_FUNCTION static int team_size_recommended( - const Functor_Type& functor) { - return Kokkos::Impl::get_tile_size< - typename Kokkos::Impl::FunctorValueTraits< - Functor_Type, typename traits::work_tag>::value_type>(); - } - - template <class Functor_Type> - KOKKOS_INLINE_FUNCTION static int team_size_recommended( - const Functor_Type& functor, const int vector_length) { - int max = team_size_recommended(functor) / vector_length; - if (max < 1) max = 1; - return (max); - } - - template <class FunctorType, class PatternTypeTag> - int team_size_max(const FunctorType& functor, PatternTypeTag) { - return 256 / vector_length(); - } - template <class FunctorType, class PatternTypeTag> - int team_size_recommended(const FunctorType& functor, PatternTypeTag) { - return 128 / vector_length(); - } - - template <class F> - KOKKOS_INLINE_FUNCTION int team_size(const F& f) const { - return (m_team_size > 0) ? m_team_size : team_size_recommended(f); - } - KOKKOS_INLINE_FUNCTION int team_size() const { - return (m_team_size > 0) ? m_team_size : Impl::get_max_tile_thread(); - } - KOKKOS_INLINE_FUNCTION int league_size() const { return m_league_size; } - - inline int vector_length() const { return m_vector_length; } - inline int scratch_size(int level, int team_size_ = -1) const { - if (team_size_ < 0) team_size_ = m_team_size; - return m_team_scratch_size[level] + - team_size_ * m_thread_scratch_size[level]; - } - inline size_t team_scratch_size(int level) const { - return m_team_scratch_size[level]; - } - inline size_t thread_scratch_size(int level) const { - return m_thread_scratch_size[level]; - } - - static int scratch_size_max(int level) { - return level == 0 ? 1024 * 40 : 1024 * 1204 * 20; - } - - typedef Impl::ROCmTeamMember member_type; -}; - -struct ROCmTeamMember { - typedef Kokkos::Experimental::ROCm execution_space; - typedef Kokkos::ScratchMemorySpace<Kokkos::Experimental::ROCm> - scratch_memory_space; - - KOKKOS_INLINE_FUNCTION - const scratch_memory_space& team_shmem() const { - return m_team_shared.set_team_thread_mode(0, 1, 0); - } - KOKKOS_INLINE_FUNCTION - const execution_space::scratch_memory_space& team_scratch( - const int& level) const { - return m_team_shared.set_team_thread_mode(level, 1, 0); - } - KOKKOS_INLINE_FUNCTION - const execution_space::scratch_memory_space& thread_scratch( - const int& level) const { - return m_team_shared.set_team_thread_mode(level, team_size(), team_rank()); - } - - /* Rank of this team within the league of teams */ - KOKKOS_INLINE_FUNCTION int league_rank() const { return m_idx.tile[0]; } - /* Number of teams in the league */ - KOKKOS_INLINE_FUNCTION int league_size() const { return m_league_size; } - /* Rank of this thread within this team */ - KOKKOS_INLINE_FUNCTION int team_rank() const { - return m_idx.local[0] / m_vector_length; - } - /* Rank of this thread within this thread */ - KOKKOS_INLINE_FUNCTION int vector_rank() const { - return m_idx.local[0] % m_vector_length; - } - KOKKOS_INLINE_FUNCTION int lindex() const { return m_idx.local[0]; } - KOKKOS_INLINE_FUNCTION int gindex() const { return m_idx.global[0]; } - KOKKOS_INLINE_FUNCTION int tindex() const { return m_idx.tile[0]; } - KOKKOS_INLINE_FUNCTION int tile_dim() const { return m_idx.tile_dim[0]; } - KOKKOS_INLINE_FUNCTION int team_size() const { return m_team_size; } - KOKKOS_INLINE_FUNCTION int vector_length() const { return m_vector_length; } - - KOKKOS_INLINE_FUNCTION - ROCmTeamMember(const hc::tiled_index<1>& arg_idx, int league_size_, - int team_size_) - : m_league_size(league_size_), - m_team_size(team_size_), - m_team_shared(nullptr, 0), - m_vector_length(1), - m_idx(arg_idx) {} - - KOKKOS_INLINE_FUNCTION - ROCmTeamMember(const hc::tiled_index<1>& arg_idx, int league_size_, - int team_size_, char* shared, std::size_t shsize, - std::size_t scratch_size0, char* scratch_ptr, - std::size_t scratch_size1, std::size_t vector_length) - : m_league_size(league_size_), - m_team_size(team_size_), - m_team_shared(shared + arg_idx.tile[0] * (shsize + scratch_size0), - (shsize + scratch_size0) * league_size_, - scratch_ptr + arg_idx.tile[0] * scratch_size1, - scratch_size1 * league_size_), - m_vector_length(vector_length), - m_idx(arg_idx) {} - - KOKKOS_INLINE_FUNCTION - void team_barrier() const { m_idx.barrier.wait(); } - - template <class ValueType> - KOKKOS_INLINE_FUNCTION void team_broadcast(const ValueType& value, - const int& thread_id) const { - static_assert(std::is_trivially_default_constructible<ValueType>(), - "Only trivial constructible types can be broadcasted"); - tile_static ValueType local_value; - zero_init(local_value); - if (this->team_rank() == thread_id) { - local_value = value; - } - this->team_barrier(); - value = local_value; - } - // Reduce across a team of threads. - // - // Each thread has vector_length elements. - // This reduction is for TeamThreadRange operations, where the range - // is spread across threads. Effectively, there are vector_length - // independent reduction operations. - // This is different from a reduction across the elements of a thread, - // which reduces every vector element. - - template <class ValueType, class JoinOp> - KOKKOS_INLINE_FUNCTION ValueType team_reduce(const ValueType& value, - const JoinOp& op_in) const { - typedef JoinLambdaAdapter<ValueType, JoinOp> JoinOpFunctor; - const JoinOpFunctor op(op_in); - - tile_static ValueType buffer[512]; - const auto local = lindex(); - const auto team = team_rank(); - auto vector_rank = local % m_vector_length; - auto thread_base = team * m_vector_length; - - const std::size_t size = next_pow_2(m_team_size + 1) / 2; -#if defined(ROCM15) - buffer[local] = value; -#else - // ROCM 1.5 handles address spaces better, previous version didn't - lds_for(buffer[local], [&](ValueType& x) { x = value; }); -#endif - m_idx.barrier.wait(); - - for (std::size_t s = 1; s < size; s *= 2) { - const std::size_t index = 2 * s * team; - if (index < size) { -#if defined(ROCM15) - op.join(buffer[vector_rank + index * m_vector_length], - buffer[vector_rank + (index + s) * m_vector_length]); -#else - lds_for(buffer[vector_rank + index * m_vector_length], - [&](ValueType& x) { - lds_for(buffer[vector_rank + (index + s) * m_vector_length], - [&](ValueType& y) { op.join(x, y); }); - }); -#endif - } - m_idx.barrier.wait(); - } - - if (local == 0) { - for (int i = size * m_vector_length; i < m_team_size * m_vector_length; - i += m_vector_length) -#if defined(ROCM15) - op.join(buffer[vector_rank], buffer[vector_rank + i]); -#else - lds_for(buffer[vector_rank], [&](ValueType& x) { - lds_for(buffer[vector_rank + i], - [&](ValueType& y) { op.join(x, y); }); - }); -#endif - } - m_idx.barrier.wait(); - - return buffer[0]; - } - - // Reduce across a team of threads, with a reducer data type - // - // Each thread has vector_length elements. - // This reduction is for TeamThreadRange operations, where the range - // is spread across threads. Effectively, there are vector_length - // independent reduction operations. - // This is different from a reduction across the elements of a thread, - // which reduces every vector element. - - template <class ReducerType> - KOKKOS_INLINE_FUNCTION - typename std::enable_if<is_reducer<ReducerType>::value>::type - team_reduce(const ReducerType& reducer) const { - typedef typename ReducerType::value_type value_type; - - tile_static value_type buffer[512]; - const auto local = lindex(); - const auto team = team_rank(); - auto vector_rank = local % m_vector_length; - auto thread_base = team * m_vector_length; - - const std::size_t size = next_pow_2(m_team_size + 1) / 2; -#if defined(ROCM15) - buffer[local] = reducer.reference(); -#else - // ROCM 1.5 handles address spaces better, previous version didn't - lds_for(buffer[local], [&](ValueType& x) { x = value; }); -#endif - m_idx.barrier.wait(); - - for (std::size_t s = 1; s < size; s *= 2) { - const std::size_t index = 2 * s * team; - if (index < size) { -#if defined(ROCM15) - reducer.join(buffer[vector_rank + index * m_vector_length], - buffer[vector_rank + (index + s) * m_vector_length]); -#else - lds_for(buffer[vector_rank + index * m_vector_length], - [&](ValueType& x) { - lds_for(buffer[vector_rank + (index + s) * m_vector_length], - [&](ValueType& y) { reducer.join(x, y); }); - }); -#endif - } - m_idx.barrier.wait(); - } - - if (local == 0) { - for (int i = size * m_vector_length; i < m_team_size * m_vector_length; - i += m_vector_length) -#if defined(ROCM15) - reducer.join(buffer[vector_rank], buffer[vector_rank + i]); -#else - lds_for(buffer[vector_rank], [&](ValueType& x) { - lds_for(buffer[vector_rank + i], - [&](ValueType& y) { reducer.join(x, y); }); - }); -#endif - } - m_idx.barrier.wait(); - reducer.reference() = buffer[0]; - } - - /** \brief Intra-team vector reduce - * with intra-team non-deterministic ordering accumulation. - * - * The intra-team accumulation value will, at the end of the - * league's parallel execution, be the reduction's total. - * Parallel execution ordering of the league's teams is non-deterministic. - * As such the base value for each team's vector reduce operation is - * similarly non-deterministic. - */ - template <class ValueType, class JoinOp> - KOKKOS_INLINE_FUNCTION ValueType thread_reduce(const ValueType& value, - const JoinOp& op_in) const { - typedef JoinLambdaAdapter<ValueType, JoinOp> JoinOpFunctor; - const JoinOpFunctor op(op_in); - - const auto local = m_idx.local[0]; - tile_static ValueType buffer[512]; - const std::size_t size = - m_vector_length; // vector length must be power of 2 - auto vector_rank = local % m_vector_length; - auto thread_base = team_rank() * m_vector_length; - lds_for(buffer[local], [&](ValueType& x) { x = value; }); - m_idx.barrier.wait(); - for (std::size_t s = 1; s < size; s *= 2) { - const std::size_t index = 2 * s * vector_rank; - if (index < size) { -#if defined(ROCM15) - op.join(buffer[thread_base + index], buffer[thread_base + index + s]); -#else - - lds_for(buffer[thread_base + index], [&](ValueType& x) { - lds_for(buffer[thread_base + index + s], - [&](ValueType& y) { op.join(x, y); }); - }); -#endif - } - m_idx.barrier.wait(); - } - - m_idx.barrier.wait(); - return buffer[thread_base]; - } - - template <typename ReducerType> - KOKKOS_INLINE_FUNCTION - typename std::enable_if<is_reducer<ReducerType>::value>::type - vector_reduce(ReducerType const& reducer) const { -#ifdef __HCC_ACCELERATOR__ - if (m_vector_length == 1) return; - - // Intra vector lane shuffle reduction: - typename ReducerType::value_type tmp(reducer.reference()); - - for (int i = m_vector_length; (i >>= 1);) { - reducer.reference() = shfl_down(tmp, i, m_vector_length); - if ((int)vector_rank() < i) { - reducer.join(tmp, reducer.reference()); - } - } - - // Broadcast from root lane to all other lanes. - // Cannot use "butterfly" algorithm to avoid the broadcast - // because floating point summation is not associative - // and thus different threads could have different results. - - reducer.reference() = shfl(tmp, 0, m_vector_length); -#endif - } - - /** \brief Intra-team exclusive prefix sum with team_rank() ordering - * with intra-team non-deterministic ordering accumulation. - * - * The global inter-team accumulation value will, at the end of the - * league's parallel execution, be the scan's total. - * Parallel execution ordering of the league's teams is non-deterministic. - * As such the base value for each team's scan operation is similarly - * non-deterministic. - */ - template <typename Type> - KOKKOS_INLINE_FUNCTION Type - team_scan(const Type& value, Type* const global_accum = nullptr) const { -#if 0 - const auto local = m_idx.local[0]; - const auto last = m_team_size - 1; - const auto init = 0; - tile_static Type buffer[256]; - - if (local == last) buffer[0] = init; - else buffer[local] = value; - - m_idx.barrier.wait(); - - for(std::size_t s = 1; s < m_team_size; s *= 2) - { - if (local >= s) buffer[local] += buffer[local - s]; - m_idx.barrier.wait(); - } - - if ( global_accum ) - { - if(local == last) - { - atomic_fetch_add(global_accum, buffer[local] + value); - } - m_idx.barrier.wait(); - buffer[local] += *global_accum; - } - m_idx.barrier.wait(); - return buffer[local]; -#else - tile_static Type sarray[2][256 + 1]; - int lid = m_idx.local[0]; - int lp1 = lid + 1; - - int toggle = 1; - int _toggle = 0; - m_idx.barrier.wait(); - - if (lid == 0) { - sarray[1][0] = 0; - sarray[0][0] = 0; - } - sarray[1][lp1] = value; - - m_idx.barrier.wait(); - for (int stride = 1; stride < m_team_size; stride *= 2) { - if (lid >= stride) { - sarray[_toggle][lp1] = - sarray[toggle][lp1] + sarray[toggle][lp1 - stride]; - } else { - sarray[_toggle][lp1] = sarray[toggle][lp1]; - } - toggle = _toggle; - _toggle = 1 - toggle; - m_idx.barrier.wait(); - } - - if (global_accum) { - if (m_team_size == lp1) { - sarray[toggle][m_team_size] = - atomic_fetch_add(global_accum, sarray[toggle][m_team_size]); - } - m_idx.barrier.wait(); - sarray[toggle][lid] += sarray[toggle][m_team_size]; - } - m_idx.barrier.wait(); - return sarray[toggle][lid]; -#endif - } - - private: - int m_league_size; - int m_team_size; - const scratch_memory_space m_team_shared; - - public: - int m_vector_length; - hc::tiled_index<1> m_idx; -}; -} // namespace Impl -} // namespace Kokkos -#include <ROCm/Kokkos_ROCm_ReduceScan.hpp> - -namespace Kokkos { -namespace Impl { - -//---------------------------------------------------------------------------- - -template <class FunctorType, class... Traits> -class ParallelFor<FunctorType, Kokkos::RangePolicy<Traits...>, - Kokkos::Experimental::ROCm> { - private: - typedef Kokkos::RangePolicy<Traits...> Policy; - - public: - inline ParallelFor(const FunctorType& f, const Policy& policy) { - const auto len = policy.end() - policy.begin(); - const auto offset = policy.begin(); - if (len == 0) return; - // define a lambda to work around a compiler issue. The compiler does not - // properly dereference f inside the pfe. - auto foo = [=](size_t i) { rocm_invoke<typename Policy::work_tag>(f, i); }; - -#if __hcc_workweek__ > 16600 - hc::parallel_for_each( - hc::extent<1>(len), - [=](const hc::index<1>& idx) [[hc]] [[hc_max_workgroup_dim(1024, 1, 1)]] -#else - hc::parallel_for_each( - hc::extent<1>(len).tile(256), - [=](const hc::index<1>& idx) [[hc]] -#endif - { - if (idx[0] < len) // workaround for Carrizo (and Fiji?) - foo(idx[0] + offset); - }) - .wait(); - } - - KOKKOS_INLINE_FUNCTION - void execute() const {} -}; - -// MDRangePolicy impl -template <class FunctorType, class... Traits> -class ParallelFor<FunctorType, Kokkos::MDRangePolicy<Traits...>, - Kokkos::Experimental::ROCm> { - private: - typedef Kokkos::MDRangePolicy<Traits...> Policy; - using RP = Policy; - typedef typename Policy::array_index_type array_index_type; - typedef typename Policy::index_type index_type; - typedef typename Policy::launch_bounds LaunchBounds; - - const FunctorType m_functor; - const Policy m_rp; - - public: - KOKKOS_INLINE_FUNCTION - void operator()(void) const { - Kokkos::Impl::Refactor::DeviceIterateTile<Policy::rank, Policy, FunctorType, - typename Policy::work_tag>( - m_rp, m_functor) - .exec_range(); - } - - inline void execute() const { - const array_index_type maxblocks = static_cast<array_index_type>( - Kokkos::Impl::ROCmTraits::UpperBoundExtentCount); - if (RP::rank == 2) { - const dim3 block(m_rp.m_tile[0], m_rp.m_tile[1], 1); - const dim3 grid(std::min(m_rp.m_upper[0] - m_rp.m_lower[0], maxblocks), - std::min(m_rp.m_upper[1] - m_rp.m_lower[1], maxblocks), - 1); - ROCmParallelLaunch<ParallelFor, LaunchBounds>(*this, grid, block, 0); - } else if (RP::rank == 3) { - const dim3 block(m_rp.m_tile[0], m_rp.m_tile[1], m_rp.m_tile[2]); - const dim3 grid(std::min(m_rp.m_upper[0] - m_rp.m_lower[0], maxblocks), - std::min(m_rp.m_upper[1] - m_rp.m_lower[1], maxblocks), - std::min(m_rp.m_upper[2] - m_rp.m_lower[2], maxblocks)); - ROCmParallelLaunch<ParallelFor, LaunchBounds>(*this, grid, block, 0); - } else if (RP::rank == 4) { - // id0,id1 encoded within threadIdx.x; id2 to threadIdx.y; id3 to - // threadIdx.z - const dim3 block(m_rp.m_tile[0] * m_rp.m_tile[1], m_rp.m_tile[2], - m_rp.m_tile[3]); - const dim3 grid(std::min(m_rp.m_tile_end[0] * m_rp.m_tile_end[1] * - m_rp.m_tile[0] * m_rp.m_tile[1], - maxblocks), - std::min(m_rp.m_upper[2] - m_rp.m_lower[2], maxblocks), - std::min(m_rp.m_upper[3] - m_rp.m_lower[3], maxblocks)); - ROCmParallelLaunch<ParallelFor, LaunchBounds>(*this, grid, block, 0); - } else if (RP::rank == 5) { - // id0,id1 encoded within threadIdx.x; id2,id3 to threadIdx.y; id4 to - // threadIdx.z - const dim3 block(m_rp.m_tile[0] * m_rp.m_tile[1], - m_rp.m_tile[2] * m_rp.m_tile[3], m_rp.m_tile[4]); - const dim3 grid(std::min(m_rp.m_tile_end[0] * m_rp.m_tile_end[1] * - m_rp.m_tile[0] * m_rp.m_tile[1], - maxblocks), - std::min(m_rp.m_tile_end[2] * m_rp.m_tile_end[3] * - m_rp.m_tile[2] * m_rp.m_tile[3], - maxblocks), - std::min(m_rp.m_upper[4] - m_rp.m_lower[4], maxblocks)); - ROCmParallelLaunch<ParallelFor, LaunchBounds>(*this, grid, block, 0); - } else if (RP::rank == 6) { - // id0,id1 encoded within threadIdx.x; id2,id3 to threadIdx.y; id4,id5 to - // threadIdx.z - const dim3 block(m_rp.m_tile[0] * m_rp.m_tile[1], - m_rp.m_tile[2] * m_rp.m_tile[3], - m_rp.m_tile[4] * m_rp.m_tile[5]); - const dim3 grid(std::min(m_rp.m_tile_end[0] * m_rp.m_tile_end[1] * - m_rp.m_tile[0] * m_rp.m_tile[1], - maxblocks), - std::min(m_rp.m_tile_end[2] * m_rp.m_tile_end[3] * - m_rp.m_tile[2] * m_rp.m_tile[3], - maxblocks), - std::min(m_rp.m_tile_end[4] * m_rp.m_tile_end[5] * - m_rp.m_tile[4] * m_rp.m_tile[5], - maxblocks)); - ROCmParallelLaunch<ParallelFor, LaunchBounds>(*this, grid, block, 0); - } else { - printf("Kokkos::MDRange Error: Exceeded rank bounds with ROCm\n"); - Kokkos::abort("Aborting"); - } - - } // end execute - - // inline - ParallelFor(const FunctorType& arg_functor, Policy arg_policy) - : m_functor(arg_functor), m_rp(arg_policy) {} -}; - -//---------------------------------------------------------------------------- - -template <class F, class... Traits> -class ParallelFor<F, Kokkos::TeamPolicy<Traits...>, - Kokkos::Experimental::ROCm> { - using Policy = - Kokkos::Impl::TeamPolicyInternal<Kokkos::Experimental::ROCm, Traits...>; - typedef Kokkos::Impl::FunctorValueTraits<F, typename Policy::work_tag> - ValueTraits; - - public: - inline ParallelFor(const F& f, const Policy& policy) { - const auto league_size = policy.league_size(); - const auto team_size = policy.team_size(); - const int vector_length = policy.vector_length(); - const auto total_size = league_size * team_size * vector_length; - const int scratch_size0 = policy.scratch_size(0, team_size); - const int scratch_size1 = policy.scratch_size(1, team_size); - - if (total_size == 0) return; - - const auto shared_size = FunctorTeamShmemSize<F>::value(f, team_size); - char* scratch = nullptr; - char* shared = (char*)rocm_device_allocate(shared_size * league_size + - scratch_size0 * league_size); - if (0 < scratch_size1) - scratch = (char*)rocm_device_allocate(scratch_size1 * league_size); - - hc::extent<1> flat_extent(total_size); - - hc::tiled_extent<1> team_extent = - flat_extent.tile(vector_length * team_size); - hc::parallel_for_each( - team_extent, - [=](hc::tiled_index<1> idx) [[hc]] { - rocm_invoke<typename Policy::work_tag>( - f, typename Policy::member_type( - idx, league_size, team_size, shared, shared_size, - scratch_size0, scratch, scratch_size1, vector_length)); - }) - .wait(); - - if (0 < scratch_size1) rocm_device_free(scratch); - rocm_device_free(shared); - } - - KOKKOS_INLINE_FUNCTION - void execute() const {} -}; - -//---------------------------------------------------------------------------- - -template <class FunctorType, class ReducerType, class... Traits> -class ParallelReduce<FunctorType, Kokkos::RangePolicy<Traits...>, ReducerType, - Kokkos::Experimental::ROCm> { - public: - typedef Kokkos::RangePolicy<Traits...> Policy; - - // TODO: Use generic lambdas instead - struct invoke_fn { - template <class F, class... Ts> - KOKKOS_INLINE_FUNCTION void operator()(std::size_t size, F&& f, - hc::tiled_index<1> idx, tile_desc td, - Ts&&... xs) const { - auto global = idx.global[0]; - if (global < size) f(idx.global[0], static_cast<Ts&&>(xs)...); - } - }; - - template <class ViewType> - inline ParallelReduce( - const FunctorType& f, const Policy& policy, const ViewType& result_view, - typename std::enable_if<Kokkos::is_view<ViewType>::value && - !Kokkos::is_reducer_type<ReducerType>::value, - void*>::type = nullptr) { - typedef typename Policy::work_tag Tag; - typedef Kokkos::Impl::FunctorValueTraits<FunctorType, Tag> ValueTraits; - typedef Kokkos::Impl::FunctorValueInit<FunctorType, Tag> ValueInit; - typedef typename ValueTraits::reference_type reference_type; - - const auto total_size = policy.end() - policy.begin(); - - if (total_size == 0) { - if (result_view.data()) { - ValueInit::init(f, result_view.data()); - } - return; - } - - Kokkos::Impl::reduce_enqueue<Tag>( - total_size, f, InvalidType{}, rocm_capture(invoke_fn{}, total_size), - result_view.data(), result_view.extent(0)); - } - - inline ParallelReduce(const FunctorType& f, Policy policy, - const ReducerType& reducer) { - typedef typename Policy::work_tag Tag; - - typedef Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, - FunctorType, ReducerType> - ReducerConditional; - typedef typename ReducerConditional::type ReducerTypeFwd; - typedef Kokkos::Impl::FunctorValueTraits<FunctorType, Tag> ValueTraits; - typedef Kokkos::Impl::FunctorValueInit<ReducerType, Tag> ValueInit; - - typedef typename ValueTraits::reference_type reference_type; - - const auto total_size = policy.end() - policy.begin(); - - if (total_size == 0) { - if (reducer.view().data()) { - ValueInit::init(ReducerConditional::select(f, reducer), - reducer.view().data()); - } - return; - } - - Kokkos::Impl::reduce_enqueue<Tag>( - total_size, f, reducer, rocm_capture(invoke_fn{}, total_size), - reducer.view().data(), reducer.view().extent(0)); - } - - KOKKOS_INLINE_FUNCTION - void execute() const {} -}; - -//---------------------------------------------------------------------------- - -template <class FunctorType, class ReducerType, class... Traits> -class ParallelReduce<FunctorType, Kokkos::MDRangePolicy<Traits...>, ReducerType, - Kokkos::Experimental::ROCm> { - private: - typedef Kokkos::MDRangePolicy<Traits...> Policy; - using RP = Policy; - typedef typename Policy::array_index_type array_index_type; - typedef typename Policy::index_type index_type; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::member_type Member; - typedef typename Policy::launch_bounds LaunchBounds; - - typedef Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, - FunctorType, ReducerType> - ReducerConditional; - typedef typename ReducerConditional::type ReducerTypeFwd; - typedef - typename Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, - WorkTag, void>::type WorkTagFwd; - - typedef Kokkos::Impl::FunctorValueTraits<ReducerTypeFwd, WorkTagFwd> - ValueTraits; - typedef Kokkos::Impl::FunctorValueInit<ReducerTypeFwd, WorkTagFwd> ValueInit; - typedef Kokkos::Impl::FunctorValueJoin<ReducerTypeFwd, WorkTagFwd> ValueJoin; - - public: - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::value_type value_type; - typedef typename ValueTraits::reference_type reference_type; - typedef FunctorType functor_type; - typedef Kokkos::Experimental::ROCm::size_type size_type; - - // Algorithmic constraints: blockSize is a power of two AND blockDim.y == - // blockDim.z == 1 - - const FunctorType m_functor; - const Policy m_policy; // used for workrange and nwork - const ReducerType m_reducer; - const pointer_type m_result_ptr; - value_type* m_scratch_space; - size_type* m_scratch_flags; - - typedef typename Kokkos::Impl::Reduce::DeviceIterateTile< - Policy::rank, Policy, FunctorType, typename Policy::work_tag, - reference_type> - DeviceIteratePattern; - - KOKKOS_INLINE_FUNCTION - void exec_range(reference_type update) const { - Kokkos::Impl::Reduce::DeviceIterateTile<Policy::rank, Policy, FunctorType, - typename Policy::work_tag, - reference_type>(m_policy, m_functor, - update) - .exec_range(); - } - - KOKKOS_INLINE_FUNCTION - void operator()(void) const { run(); } - - KOKKOS_INLINE_FUNCTION - void run() const { - const integral_nonzero_constant<size_type, ValueTraits::StaticValueSize / - sizeof(value_type)> - word_count((ValueTraits::value_size( - ReducerConditional::select(m_functor, m_reducer))) / - sizeof(value_type)); - // pointer to shared data accounts for the reserved space at the start - value_type* const shared = - kokkos_impl_rocm_shared_memory<value_type>() + 2 * sizeof(uint64_t); - - { - reference_type value = - ValueInit::init(ReducerConditional::select(m_functor, m_reducer), - shared + threadIdx_y * word_count.value); - // Number of blocks is bounded so that the reduction can be limited to two - // passes. Each thread block is given an approximately equal amount of - // work to perform. Accumulate the values for this block. The accumulation - // ordering does not match the final pass, but is arithmatically - // equivalent. - - this->exec_range(value); - } - - // Reduce with final value at blockDim.y - 1 location. - // Problem: non power-of-two blockDim - - if (rocm_single_inter_block_reduce_scan<false, ReducerTypeFwd, WorkTagFwd>( - ReducerConditional::select(m_functor, m_reducer), blockIdx_x, - gridDim_x, shared, m_scratch_space, m_scratch_flags)) { - // This is the final block with the final result at the final threads' - // location - value_type* const tshared = shared + (blockDim_y - 1) * word_count.value; - value_type* const global = m_scratch_space; - - if (threadIdx_y == 0) { - Kokkos::Impl::FunctorFinal<ReducerTypeFwd, WorkTagFwd>::final( - ReducerConditional::select(m_functor, m_reducer), tshared); - // for ( unsigned i = 0 ; i < word_count.value ; i+=blockDim_y ) - // { global[i] = tshared[i]; } - for (unsigned i = 0; i < word_count.value; i++) { - global[i] = tshared[i]; - } - } - } - } - - // Determine block size constrained by shared memory: - static inline unsigned local_block_size(const FunctorType& f) { - unsigned n = ROCmTraits::WavefrontSize * 8; - while (n && - ROCmTraits::SharedMemoryCapacity < - rocm_single_inter_block_reduce_scan_shmem<false, FunctorType, - WorkTag>(f, n)) { - n >>= 1; - } - return n; - } - - inline void execute() { - const int nwork = m_policy.m_num_tiles; - if (nwork) { - int block_size = m_policy.m_prod_tile_dims; - // CONSTRAINT: Algorithm requires block_size >= product of tile dimensions - // Nearest power of two - int exponent_pow_two = std::ceil(std::log2((float)block_size)); - block_size = 1 << (exponent_pow_two); - - m_scratch_space = (value_type*)rocm_internal_scratch_space( - ValueTraits::value_size( - ReducerConditional::select(m_functor, m_reducer)) * - block_size * nwork /* block_size == max block_count */); - m_scratch_flags = rocm_internal_scratch_flags(sizeof(size_type)); - const dim3 block(1, block_size, 1); - // Required grid.x <= block.y - const dim3 grid(nwork, block_size, 1); - const int shmem = - rocm_single_inter_block_reduce_scan_shmem<false, FunctorType, - WorkTag>(m_functor, - block.y); - - ROCmParallelLaunch<ParallelReduce, LaunchBounds>( - *this, grid, block, shmem); // copy to device and execute - - ROCM().fence(); - - if (m_result_ptr) { - const int size = ValueTraits::value_size( - ReducerConditional::select(m_functor, m_reducer)); - DeepCopy<HostSpace, Kokkos::Experimental::ROCmSpace>( - m_result_ptr, m_scratch_space, size); - } - } else { - if (m_result_ptr) { - ValueInit::init(ReducerConditional::select(m_functor, m_reducer), - m_result_ptr); - } - } - } - - template <class HostViewType> - ParallelReduce(const FunctorType& arg_functor, const Policy& arg_policy, - const HostViewType& arg_result, - typename std::enable_if<Kokkos::is_view<HostViewType>::value, - void*>::type = nullptr) - : m_functor(arg_functor), - m_policy(arg_policy), - m_reducer(InvalidType()), - m_result_ptr(arg_result.data()), - m_scratch_space(0), - m_scratch_flags(0) {} - - ParallelReduce(const FunctorType& arg_functor, const Policy& arg_policy, - const ReducerType& reducer) - : m_functor(arg_functor), - m_policy(arg_policy), - m_reducer(reducer), - m_result_ptr(reducer.view().data()), - m_scratch_space(0), - m_scratch_flags(0) {} -}; -//---------------------------------------------------------------------------- - -template <class FunctorType, class ReducerType, class... Traits> -class ParallelReduce<FunctorType, Kokkos::TeamPolicy<Traits...>, ReducerType, - Kokkos::Experimental::ROCm> { - using Policy = - Kokkos::Impl::TeamPolicyInternal<Kokkos::Experimental::ROCm, Traits...>; - typedef Kokkos::Impl::FunctorValueTraits<FunctorType, - typename Policy::work_tag> - ValueTraits; - - public: - struct invoke_fn { - template <class Create, class F, class... Ts> - KOKKOS_INLINE_FUNCTION void operator()(Create&& create, F&& f, - hc::tiled_index<1> idx, tile_desc td, - Ts&&... xs) const { - f(create(idx, td), static_cast<Ts&&>(xs)...); - } - }; - - template <class ViewType> - inline ParallelReduce( - const FunctorType& f, const Policy& policy, const ViewType& result_view, - typename std::enable_if<Kokkos::is_view<ViewType>::value && - !Kokkos::is_reducer_type<ReducerType>::value, - void*>::type = nullptr) { - const int league_size = policy.league_size(); - const int team_size = policy.team_size(f); - const int vector_length = policy.vector_length(); - const int scratch_size0 = policy.scratch_size(0, team_size); - const int scratch_size1 = policy.scratch_size(1, team_size); - const int total_size = league_size * team_size; - - typedef Kokkos::Impl::FunctorValueInit<FunctorType, - typename Policy::work_tag> - ValueInit; - if (total_size == 0) { - if (result_view.data()) { - ValueInit::init(f, result_view.data()); - } - return; - } - - const int reduce_size = ValueTraits::value_size(f); - const int shared_size = - FunctorTeamShmemSize<FunctorType>::value(f, team_size); - - char* shared; - char* scratch = nullptr; - - shared = (char*)rocm_device_allocate(league_size * - (shared_size + scratch_size0)); - if (0 < scratch_size1) - scratch = (char*)rocm_device_allocate(scratch_size1 * league_size); - - auto create_team_member = [=](hc::tiled_index<1> idx, tile_desc td) { - return typename Policy::member_type( - idx, league_size, td.team_size, shared, shared_size, scratch_size0, - scratch, scratch_size1, vector_length); - }; - - Kokkos::Impl::reduce_enqueue<typename Policy::work_tag>( - total_size * vector_length, f, InvalidType{}, - rocm_capture(invoke_fn{}, create_team_member), - result_view.ptr_on_device(), result_view.dimension_0(), team_size, - vector_length, shared_size); - - if (0 < scratch_size1) rocm_device_free(scratch); - rocm_device_free(shared); - } - - inline ParallelReduce(const FunctorType& f, Policy policy, - const ReducerType& reducer) { - const int league_size = policy.league_size(); - const int team_size = policy.team_size(f); - const int vector_length = policy.vector_length(); - const int total_size = league_size * team_size; - - typedef Kokkos::Impl::FunctorValueInit<ReducerType, - typename Policy::work_tag> - ValueInit; - typedef Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, - FunctorType, ReducerType> - ReducerConditional; - if (total_size == 0) { - if (reducer.view().data()) { - ValueInit::init(ReducerConditional::select(f, reducer), - reducer.view().data()); - } - return; - } - - const int reduce_size = ValueTraits::value_size(f); - const int shared_size = - FunctorTeamShmemSize<FunctorType>::value(f, team_size); - const int scratch_size0 = policy.scratch_size(0, team_size); - const int scratch_size1 = policy.scratch_size(1, team_size); - - char* shared; - char* scratch = nullptr; - shared = (char*)rocm_device_allocate((shared_size + scratch_size0) * - league_size); - if (0 < scratch_size1) - scratch = (char*)rocm_device_allocate(scratch_size1 * league_size); - - auto create_team_member = [=](hc::tiled_index<1> idx, tile_desc td) { - return typename Policy::member_type( - idx, league_size, td.tile_size, shared, shared_size, scratch_size0, - scratch, scratch_size1, vector_length); - }; - - Kokkos::Impl::reduce_enqueue<typename Policy::work_tag>( - league_size, f, reducer, rocm_capture(invoke_fn{}, create_team_member), - reducer.view().data(), reducer.view().extent(0), team_size, - vector_length, shared_size); - - if (0 < scratch_size1) rocm_device_free(scratch); - rocm_device_free(shared); - } - - KOKKOS_INLINE_FUNCTION - void execute() const {} -}; - -template <class FunctorType, class... Traits> -class ParallelScan<FunctorType, Kokkos::RangePolicy<Traits...>, - Kokkos::Experimental::ROCm> { - private: - typedef Kokkos::RangePolicy<Traits...> Policy; - typedef typename Policy::work_tag Tag; - typedef Kokkos::Impl::FunctorValueTraits<FunctorType, Tag> ValueTraits; - - public: - //---------------------------------------- - - inline ParallelScan(const FunctorType& f, const Policy& policy) { - const auto len = policy.end() - policy.begin(); - - if (len == 0) return; - - scan_enqueue<Tag>( - len, f, [](hc::tiled_index<1> idx, int, int) { return idx.global[0]; }); - } - - KOKKOS_INLINE_FUNCTION - void execute() const {} - - //---------------------------------------- -}; - -template <class FunctorType, class ReturnType, class... Traits> -class ParallelScanWithTotal<FunctorType, Kokkos::RangePolicy<Traits...>, - ReturnType, Kokkos::Experimental::ROCm> { - private: - typedef Kokkos::RangePolicy<Traits...> Policy; - typedef typename Policy::work_tag Tag; - typedef Kokkos::Impl::FunctorValueTraits<FunctorType, Tag> ValueTraits; - - public: - //---------------------------------------- - - inline ParallelScanWithTotal(const FunctorType& f, const Policy& policy, - ReturnType& arg_returnvalue) { - const auto len = policy.end() - policy.begin(); - - if (len == 0) return; - - scan_enqueue<Tag, ReturnType>( - len, f, arg_returnvalue, - [](hc::tiled_index<1> idx, int, int) { return idx.global[0]; }); - } - - KOKKOS_INLINE_FUNCTION - void execute() const {} - - //---------------------------------------- -}; - -template <class FunctorType, class... Traits> -class ParallelScan<FunctorType, Kokkos::TeamPolicy<Traits...>, - Kokkos::Experimental::ROCm> { - private: - using Policy = - Kokkos::Impl::TeamPolicyInternal<Kokkos::Experimental::ROCm, Traits...>; - typedef typename Policy::work_tag Tag; - typedef Kokkos::Impl::FunctorValueTraits<FunctorType, Tag> ValueTraits; - - public: - //---------------------------------------- - - inline ParallelScan(const FunctorType& f, const Policy& policy) { - const auto league_size = policy.league_size(); - const auto team_size = policy.team_size(f); - const auto len = league_size * team_size; - - if (len == 0) return; - - scan_enqueue<Tag>( - len, f, [&](hc::tiled_index<1> idx, int n_teams, int n_leagues) { - return typename Policy::member_type(idx, n_leagues, n_teams); - }); - } - - KOKKOS_INLINE_FUNCTION - void execute() const {} - - //---------------------------------------- -}; - -} // namespace Impl -} // namespace Kokkos - -namespace Kokkos { -namespace Impl { -template <typename iType> -struct TeamThreadRangeBoundariesStruct<iType, ROCmTeamMember> { - typedef iType index_type; - const iType start; - const iType end; - const iType increment; - const ROCmTeamMember& thread; - -#if defined(__HCC_ACCELERATOR__) - KOKKOS_INLINE_FUNCTION - TeamThreadRangeBoundariesStruct(const ROCmTeamMember& thread_, - const iType& count) - : start(thread_.team_rank()), - end(count), - increment(thread_.team_size()), - thread(thread_) {} - KOKKOS_INLINE_FUNCTION - TeamThreadRangeBoundariesStruct(const ROCmTeamMember& thread_, - const iType& begin_, const iType& end_) - : start(begin_ + thread_.team_rank()), - end(end_), - increment(thread_.team_size()), - thread(thread_) {} -#else - KOKKOS_INLINE_FUNCTION - TeamThreadRangeBoundariesStruct(const ROCmTeamMember& thread_, - const iType& count) - : start(0), end(count), increment(1), thread(thread_) {} - KOKKOS_INLINE_FUNCTION - TeamThreadRangeBoundariesStruct(const ROCmTeamMember& thread_, - const iType& begin_, const iType& end_) - : start(begin_), end(end_), increment(1), thread(thread_) {} -#endif -}; - -template <typename iType> -struct ThreadVectorRangeBoundariesStruct<iType, ROCmTeamMember> { - typedef iType index_type; - const index_type start; - const index_type end; - const index_type increment; - const ROCmTeamMember& thread; - -#if defined(__HCC_ACCELERATOR__) - KOKKOS_INLINE_FUNCTION - ThreadVectorRangeBoundariesStruct(const ROCmTeamMember& thread_, - const index_type& count) - : start(thread_.lindex() % thread_.vector_length()), - end(count), - increment(thread_.vector_length()), - thread(thread_) {} - - KOKKOS_INLINE_FUNCTION - ThreadVectorRangeBoundariesStruct(const ROCmTeamMember& thread_, - const index_type& arg_begin, - const index_type& arg_end) - : start(arg_begin + thread_.lindex() % thread_.vector_length()), - end(arg_end), - increment(thread_.vector_length()), - thread(thread_) {} - -// KOKKOS_INLINE_FUNCTION -// ThreadVectorRangeBoundariesStruct (const index_type& count): -// start( 0 ), -// end( count ), -// increment( 1 ) -// {} -#else - KOKKOS_INLINE_FUNCTION - ThreadVectorRangeBoundariesStruct(const ROCmTeamMember& thread_, - const index_type& count) - : start(static_cast<index_type>(0)), - end(count), - increment(static_cast<index_type>(1)), - thread(thread_) {} - KOKKOS_INLINE_FUNCTION - ThreadVectorRangeBoundariesStruct(const index_type& count) - : start(static_cast<index_type>(0)), - end(count), - increment(static_cast<index_type>(1)) {} - - KOKKOS_INLINE_FUNCTION - ThreadVectorRangeBoundariesStruct(const ROCmTeamMember& thread_, - const index_type& arg_begin, - const index_type& arg_end) - : start(arg_begin), - end(arg_end), - increment(static_cast<index_type>(1)), - thread(thread_) {} - KOKKOS_INLINE_FUNCTION - ThreadVectorRangeBoundariesStruct(const index_type& arg_begin, - const index_type& arg_end) - : start(arg_begin), end(arg_end), increment(static_cast<index_type>(1)) {} -#endif -}; - -} // namespace Impl -} // namespace Kokkos - -namespace Kokkos { - -template <typename iType> -KOKKOS_INLINE_FUNCTION - Impl::TeamThreadRangeBoundariesStruct<iType, Impl::ROCmTeamMember> - TeamThreadRange(const Impl::ROCmTeamMember& thread, iType count) { - return Impl::TeamThreadRangeBoundariesStruct<iType, Impl::ROCmTeamMember>( - thread, count); -} - -template <typename iType1, typename iType2> -KOKKOS_INLINE_FUNCTION Impl::TeamThreadRangeBoundariesStruct< - typename std::common_type<iType1, iType2>::type, Impl::ROCmTeamMember> -TeamThreadRange(const Impl::ROCmTeamMember& thread, iType1 begin, iType2 end) { - typedef typename std::common_type<iType1, iType2>::type iType; - return Impl::TeamThreadRangeBoundariesStruct<iType, Impl::ROCmTeamMember>( - thread, begin, end); -} - -template <typename iType> -KOKKOS_INLINE_FUNCTION - Impl::ThreadVectorRangeBoundariesStruct<iType, Impl::ROCmTeamMember> - ThreadVectorRange(const Impl::ROCmTeamMember& thread, iType count) { - return Impl::ThreadVectorRangeBoundariesStruct<iType, Impl::ROCmTeamMember>( - thread, count); -} - -template <typename iType> -KOKKOS_INLINE_FUNCTION - Impl::ThreadVectorRangeBoundariesStruct<iType, Impl::ROCmTeamMember> - ThreadVectorRange(const Impl::ROCmTeamMember& thread, iType arg_begin, - iType arg_end) { - return Impl::ThreadVectorRangeBoundariesStruct<iType, Impl::ROCmTeamMember>( - thread, arg_begin, arg_end); -} - -KOKKOS_INLINE_FUNCTION -Impl::ThreadSingleStruct<Impl::ROCmTeamMember> PerTeam( - const Impl::ROCmTeamMember& thread) { - return Impl::ThreadSingleStruct<Impl::ROCmTeamMember>(thread); -} - -KOKKOS_INLINE_FUNCTION -Impl::VectorSingleStruct<Impl::ROCmTeamMember> PerThread( - const Impl::ROCmTeamMember& thread) { - return Impl::VectorSingleStruct<Impl::ROCmTeamMember>(thread); -} - -template <class FunctorType> -KOKKOS_INLINE_FUNCTION void single( - const Impl::VectorSingleStruct<Impl::ROCmTeamMember>& single_struct, - const FunctorType& lambda) { - if (single_struct.team_member.vector_rank() == 0) lambda(); -} - -template <class FunctorType> -KOKKOS_INLINE_FUNCTION void single( - const Impl::ThreadSingleStruct<Impl::ROCmTeamMember>& single_struct, - const FunctorType& lambda) { - if ((single_struct.team_member.lindex() == 0)) lambda(); -} - -template <class FunctorType, class ValueType> -KOKKOS_INLINE_FUNCTION void single( - const Impl::VectorSingleStruct<Impl::ROCmTeamMember>& single_struct, - const FunctorType& lambda, ValueType& val) { -#if defined(ROCM15) - // 1.5 needs this more proper restriction on which work units run - if (single_struct.team_member.vector_rank() == 0) lambda(val); - val = shfl(val, 0, single_struct.team_member.vector_length()); -#else - // but older compilers are fine with this (TestTeamVector::Test< - // Kokkos::Experimental::ROCm >(4)) - lambda(val); -#endif -} - -template <class FunctorType, class ValueType> -KOKKOS_INLINE_FUNCTION void single( - const Impl::ThreadSingleStruct<Impl::ROCmTeamMember>& single_struct, - const FunctorType& lambda, ValueType& val) { - if (single_struct.team_member.lindex() == 0) lambda(val); - single_struct.team_member.team_broadcast(val, 0); -} - -} // namespace Kokkos - -namespace Kokkos { - -/** \brief Inter-thread parallel_for. Executes lambda(iType i) for each - * i=0..N-1. - * - * The range i=0..N-1 is mapped to all threads of the the calling thread team. - * This functionality requires C++11 support.*/ -template <typename iType, class Lambda> -KOKKOS_INLINE_FUNCTION void parallel_for( - const Impl::TeamThreadRangeBoundariesStruct<iType, Impl::ROCmTeamMember>& - loop_boundaries, - const Lambda& lambda) { - for (iType i = loop_boundaries.start; i < loop_boundaries.end; - i += loop_boundaries.increment) - lambda(i); -} - -/** \brief Inter-thread thread range parallel_reduce. Executes lambda(iType i, - * ValueType & val) for each i=0..N-1. - * - * The range i=0..N-1 is mapped to all threads of the the calling thread team - * and a summation of val is performed and put into result. This functionality - * requires C++11 support.*/ -template <typename iType, class Lambda, typename ValueType> -KOKKOS_INLINE_FUNCTION - typename std::enable_if<!Kokkos::is_reducer<ValueType>::value>::type - parallel_reduce(const Impl::TeamThreadRangeBoundariesStruct< - iType, Impl::ROCmTeamMember>& loop_boundaries, - const Lambda& lambda, ValueType& result) { - Kokkos::Sum<ValueType> reducer(result); - reducer.init(reducer.reference()); - - for (iType i = loop_boundaries.start; i < loop_boundaries.end; - i += loop_boundaries.increment) { - lambda(i, reducer.reference()); - } - loop_boundaries.thread.team_reduce(reducer); -} - -/** \brief Inter-thread thread range parallel_reduce. Executes lambda(iType i, - * ValueType & val) for each i=0..N-1. - * - * The range i=0..N-1 is mapped to all threads of the the calling thread team - * and a summation of val is performed and put into result. This functionality - * requires C++11 support.*/ -template <typename iType, class Lambda, typename ReducerType> -KOKKOS_INLINE_FUNCTION - typename std::enable_if<Kokkos::is_reducer<ReducerType>::value>::type - parallel_reduce(const Impl::TeamThreadRangeBoundariesStruct< - iType, Impl::ROCmTeamMember>& loop_boundaries, - const Lambda& lambda, ReducerType const& reducer) { - reducer.init(reducer.reference()); - - for (iType i = loop_boundaries.start; i < loop_boundaries.end; - i += loop_boundaries.increment) { - lambda(i, reducer.reference()); - } - loop_boundaries.thread.team_reduce(reducer); -} - -/** \brief Intra-thread thread range parallel_reduce. Executes lambda(iType i, - * ValueType & val) for each i=0..N-1. - * - * The range i=0..N-1 is mapped to all vector lanes of the the calling thread - * and a reduction of val is performed using JoinType(ValueType& val, const - * ValueType& update) and put into init_result. The input value of init_result - * is used as initializer for temporary variables of ValueType. Therefore the - * input value should be the neutral element with respect to the join operation - * (e.g. '0 for +-' or '1 for *'). This functionality requires C++11 support.*/ -template <typename iType, class Lambda, typename ValueType, class JoinType> -KOKKOS_INLINE_FUNCTION void parallel_reduce( - const Impl::TeamThreadRangeBoundariesStruct<iType, Impl::ROCmTeamMember>& - loop_boundaries, - const Lambda& lambda, const JoinType& join, ValueType& result) { -#if defined(ROCM15) - ValueType tmp = result; - // Simpler code works with ROCM1.5 - for (iType i = loop_boundaries.start; i < loop_boundaries.end; - i += loop_boundaries.increment) { - lambda(i, tmp); - } - result = loop_boundaries.thread.team_reduce(tmp, join); -#else - // this workaround freezes up with ROCM1.5, but needed for earlier compilers - for (iType i = loop_boundaries.start; i < loop_boundaries.end; - i += loop_boundaries.increment) { - ValueType tmp = ValueType(); - lambda(i, tmp); - join(result, tmp); - } - result = loop_boundaries.thread.team_reduce(result, join); -#endif - // Impl::rocm_intra_workgroup_reduction( loop_boundaries.thread, - // result,join); Impl::rocm_inter_workgroup_reduction( - // loop_boundaries.thread, result,join); -} - -} // namespace Kokkos - -namespace Kokkos { -/** \brief Intra-thread vector parallel_for. Executes lambda(iType i) for each - * i=0..N-1. - * - * The range i=0..N-1 is mapped to all vector lanes of the the calling thread. - * This functionality requires C++11 support.*/ -template <typename iType, class Lambda> -KOKKOS_INLINE_FUNCTION void parallel_for( - const Impl::ThreadVectorRangeBoundariesStruct<iType, Impl::ROCmTeamMember>& - loop_boundaries, - const Lambda& lambda) { - for (iType i = loop_boundaries.start; i < loop_boundaries.end; - i += loop_boundaries.increment) - lambda(i); -} - -/** \brief Intra-thread vector parallel_reduce. Executes lambda(iType i, - * ValueType & val) for each i=0..N-1. - * - * The range i=0..N-1 is mapped to all vector lanes of the the calling thread - * and a summation of val is performed and put into result. This functionality - * requires C++11 support.*/ -template <typename iType, class Lambda, typename ValueType> -KOKKOS_INLINE_FUNCTION - typename std::enable_if<!Kokkos::is_reducer<ValueType>::value>::type - parallel_reduce(const Impl::ThreadVectorRangeBoundariesStruct< - iType, Impl::ROCmTeamMember>& loop_boundaries, - const Lambda& lambda, ValueType& result) { - result = ValueType(); - - for (iType i = loop_boundaries.start; i < loop_boundaries.end; - i += loop_boundaries.increment) { - ValueType tmp = ValueType(); - lambda(i, tmp); - result += tmp; - } - result = - loop_boundaries.thread.thread_reduce(result, Impl::JoinAdd<ValueType>()); -} - -/** \brief Intra-thread vector parallel_reduce. Executes lambda(iType i, - * ValueType & val) for each i=0..N-1. - * - * The range i=0..N-1 is mapped to all vector lanes of the the calling thread - * and a reduction of val is performed using JoinType(ValueType& val, const - * ValueType& update) and put into init_result. The input value of init_result - * is used as initializer for temporary variables of ValueType. Therefore the - * input value should be the neutral element with respect to the join operation - * (e.g. '0 for +-' or '1 for *'). This functionality requires C++11 support.*/ -template <typename iType, class Lambda, typename ValueType, class JoinType> -KOKKOS_INLINE_FUNCTION void parallel_reduce( - const Impl::ThreadVectorRangeBoundariesStruct<iType, Impl::ROCmTeamMember>& - loop_boundaries, - const Lambda& lambda, const JoinType& join, ValueType& result) { - for (iType i = loop_boundaries.start; i < loop_boundaries.end; - i += loop_boundaries.increment) { - lambda(i, result); - loop_boundaries.thread.team_barrier(); - } - result = loop_boundaries.thread.thread_reduce(result, join); -} - -/** \brief Intra-thread vector parallel_reduce. Executes lambda(iType i, - * ValueType & val) for each i=0..N-1. - * - * The range i=0..N-1 is mapped to all vector lanes of the the calling thread - * and a summation of val is performed and put into result. This functionality - * requires C++11 support.*/ -template <typename iType, class Lambda, typename ReducerType> -KOKKOS_INLINE_FUNCTION - typename std::enable_if<Kokkos::is_reducer<ReducerType>::value>::type - parallel_reduce(const Impl::ThreadVectorRangeBoundariesStruct< - iType, Impl::ROCmTeamMember>& loop_boundaries, - const Lambda& lambda, ReducerType const& reducer) { - reducer.init(reducer.reference()); - - for (iType i = loop_boundaries.start; i < loop_boundaries.end; - i += loop_boundaries.increment) { - lambda(i, reducer.reference()); - } - loop_boundaries.thread.vector_reduce(reducer); -} -/** \brief Intra-thread vector parallel_reduce. Executes lambda(iType i, - * ValueType & val) for each i=0..N-1. - * - * The range i=0..N-1 is mapped to all vector lanes of the the calling thread - * and a reduction of val is performed using JoinType(ValueType& val, const - * ValueType& update) and put into init_result. The input value of init_result - * is used as initializer for temporary variables of ValueType. Therefore the - * input value should be the neutral element with respect to the join operation - * (e.g. '0 for +-' or '1 for *'). This functionality requires C++11 support.*/ -template <typename iType, class Lambda, typename ReducerType, class JoinType> -KOKKOS_INLINE_FUNCTION void parallel_reduce( - const Impl::ThreadVectorRangeBoundariesStruct<iType, Impl::ROCmTeamMember>& - loop_boundaries, - const Lambda& lambda, const JoinType& join, ReducerType const& reducer) { - for (iType i = loop_boundaries.start; i < loop_boundaries.end; - i += loop_boundaries.increment) { - lambda(i, reducer.reference()); - loop_boundaries.thread.team_barrier(); - } - reducer.reference() = - loop_boundaries.thread.thread_reduce(reducer.reference(), join); -} - -/** \brief Intra-thread vector parallel exclusive prefix sum. Executes - * lambda(iType i, ValueType & val, bool final) for each i=0..N-1. - * - * The range i=0..N-1 is mapped to all vector lanes in the thread and a scan - * operation is performed. Depending on the target execution space the operator - * might be called twice: once with final=false and once with final=true. When - * final==true val contains the prefix sum value. The contribution of this "i" - * needs to be added to val no matter whether final==true or not. In a serial - * execution (i.e. team_size==1) the operator is only called once with - * final==true. Scan_val will be set to the final sum value over all vector - * lanes. This functionality requires C++11 support.*/ -template <typename iType, class FunctorType> -KOKKOS_INLINE_FUNCTION void parallel_scan( - const Impl::ThreadVectorRangeBoundariesStruct<iType, Impl::ROCmTeamMember>& - loop_boundaries, - const FunctorType& lambda) { - typedef Kokkos::Impl::FunctorValueTraits<FunctorType, void> ValueTraits; - typedef typename ValueTraits::value_type value_type; - - value_type val = value_type(); - const int vector_length = loop_boundaries.thread.vector_length(); - const int vector_rank = loop_boundaries.thread.vector_rank(); - - iType end = ((loop_boundaries.end + vector_length - 1) / vector_length) * - vector_length; - value_type accum = value_type(); - - for (int i = vector_rank; i < end; i += vector_length) { - value_type val = 0; - - // First acquire per-lane contributions: - if (i < loop_boundaries.end) lambda(i, val, false); - - value_type sval = val; - - // Bottom up inclusive scan in triangular pattern - // where each thread is the root of a reduction tree - // from the zeroth "lane" to itself. - // [t] += [t-1] if t >= 1 - // [t] += [t-2] if t >= 2 - // [t] += [t-4] if t >= 4 - // ... - - for (int j = 1; j < vector_length; j <<= 1) { - value_type tmp = 0; - tmp = shfl_up(sval, j, vector_length); - if (j <= vector_rank) { - sval += tmp; - } - } - - // Include accumulation and remove value for exclusive scan: - val = accum + sval - val; - - // Provide exclusive scan value: - if (i < loop_boundaries.end) lambda(i, val, true); - - // Accumulate the last value in the inclusive scan: - sval = shfl(sval, vector_length - 1, vector_length); - accum += sval; - } -} - -} // namespace Kokkos diff --git a/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Reduce.hpp b/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Reduce.hpp deleted file mode 100644 index 59a6a0433..000000000 --- a/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Reduce.hpp +++ /dev/null @@ -1,184 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -/////////////////////////////////////////////////////////////////////////////// -// AMP REDUCE -////////////////////////////////////////////////////////////////////////////// - -#if !defined(KOKKOS_ROCM_AMP_REDUCE_INL) -#define KOKKOS_ROCM_AMP_REDUCE_INL - -#include <iostream> - -#include <algorithm> -#include <numeric> -#include <cmath> -#include <type_traits> -#include <ROCm/Kokkos_ROCm_Tile.hpp> -#include <ROCm/Kokkos_ROCm_Invoke.hpp> -#include <ROCm/Kokkos_ROCm_Join.hpp> -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -namespace Kokkos { -namespace Impl { - -template <class T> -T* reduce_value(T* x, std::true_type) [[hc]] { - return x; -} - -template <class T> -T& reduce_value(T* x, std::false_type) [[hc]] { - return *x; -} - -#ifdef KOKKOS_IMPL_ROCM_CLANG_WORKAROUND -struct always_true { - template <class... Ts> - bool operator()(Ts&&...) const { - return true; - } -}; -#endif - -template <class Tag, class F, class ReducerType, class Invoker, class T> -void reduce_enqueue(const int szElements, // size of the extent - const F& f, const ReducerType& reducer, Invoker invoke, - T* const output_result, int const output_length, - const int team_size = 64, const int vector_size = 1, - int const shared_size = 0) { - using namespace hc; - - typedef Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, F, - ReducerType> - ReducerConditional; - typedef typename ReducerConditional::type ReducerTypeFwd; - typedef - typename Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, - Tag, void>::type TagFwd; - - typedef Kokkos::Impl::FunctorValueTraits<ReducerTypeFwd, TagFwd> ValueTraits; - typedef Kokkos::Impl::FunctorValueInit<ReducerTypeFwd, TagFwd> ValueInit; - typedef Kokkos::Impl::FunctorValueJoin<ReducerTypeFwd, TagFwd> ValueJoin; - typedef Kokkos::Impl::FunctorFinal<ReducerTypeFwd, TagFwd> ValueFinal; - - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::reference_type reference_type; - - if (output_length < 1) return; - - const auto td = get_tile_desc<T>(szElements, output_length, team_size, - vector_size, shared_size); - - // allocate host and device memory for the results from each team - std::vector<T> result_cpu(td.num_tiles * output_length); - hc::array<T> result(td.num_tiles * output_length); - - auto fut = tile_for<T[]>( - td, - [ =, &result ](hc::tiled_index<1> t_idx, tile_buffer<T[]> buffer) [[hc]] { - const auto local = t_idx.local[0]; - const auto global = t_idx.global[0]; - const auto tile = t_idx.tile[0]; - - buffer.action_at(local, [&](T* state) { - ValueInit::init(ReducerConditional::select(f, reducer), state); - invoke(make_rocm_invoke_fn<Tag>(f), t_idx, td, - reduce_value(state, std::is_pointer<reference_type>())); - }); - t_idx.barrier.wait(); - - for (std::size_t s = 1; s < buffer.size(); s *= 2) { - const std::size_t index = 2 * s * local; - if (index < buffer.size()) { - buffer.action_at(index, index + s, [&](T* x, T* y) { - ValueJoin::join(ReducerConditional::select(f, reducer), x, y); - }); - } - t_idx.barrier.wait(); - } - - // Store the tile result in the global memory. - if (local == 0) { -#ifdef KOKKOS_IMPL_ROCM_CLANG_WORKAROUND - // Workaround for assigning from LDS memory: std::copy should work - // directly - buffer.action_at(0, [&](T* x) { -#if ROCM15 - // new ROCM 15 address space changes aren't implemented in std - // algorithms yet - auto* src = reinterpret_cast<char*>(x); - auto* dest = - reinterpret_cast<char*>(result.data() + tile * output_length); - for (int i = 0; i < sizeof(T) * output_length; i++) - dest[i] = src[i]; -#else - // Workaround: copy_if used to avoid memmove - std::copy_if(x, x+output_length, result.data()+tile*output_length, always_true{} ); -#endif - }); -#else - std::copy(buffer, buffer + output_length, - result.data() + tile * output_length); - -#endif - } - }); - if (output_result != nullptr) - ValueInit::init(ReducerConditional::select(f, reducer), output_result); - fut.wait(); - copy(result, result_cpu.data()); - if (output_result != nullptr) { - for (std::size_t i = 0; i < td.num_tiles; i++) - ValueJoin::join(ReducerConditional::select(f, reducer), output_result, - result_cpu.data() + i * output_length); - - ValueFinal::final(ReducerConditional::select(f, reducer), output_result); - } -} - -} // namespace Impl -} // namespace Kokkos - -#endif /* #if !defined( KOKKOS_ROCM_AMP_REDUCE_INL ) */ diff --git a/packages/kokkos/core/src/ROCm/Kokkos_ROCm_ReduceScan.hpp b/packages/kokkos/core/src/ROCm/Kokkos_ROCm_ReduceScan.hpp deleted file mode 100644 index 29694a012..000000000 --- a/packages/kokkos/core/src/ROCm/Kokkos_ROCm_ReduceScan.hpp +++ /dev/null @@ -1,690 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#ifndef KOKKOS_ROCM_REDUCESCAN_HPP -#define KOKKOS_ROCM_REDUCESCAN_HPP - -#include <Kokkos_Macros.hpp> - -/* only compile this file if ROCM is enabled for Kokkos */ -#if defined(__HCC__) && defined(KOKKOS_ENABLE_ROCM) - -//#include <utility> - -#include <Kokkos_Parallel.hpp> -#include <impl/Kokkos_FunctorAdapter.hpp> -#include <impl/Kokkos_Error.hpp> -#include <ROCm/Kokkos_ROCm_Vectorization.hpp> - -//---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- - -namespace Kokkos { -namespace Impl { - -//#if __KALMAR_ACCELERATOR__ == 1 -KOKKOS_INLINE_FUNCTION -void __syncthreads() [[hc]] { amp_barrier(CLK_LOCAL_MEM_FENCE); } - -#define LT0 ((threadIdx_x + threadIdx_y + threadIdx_z) ? 0 : 1) - -// returns non-zero if and only if predicate is non-zero for all threads -// note that syncthreads_or uses the first 64 bits of dynamic group memory. -// this reserved memory must be accounted for everwhere -// that get_dynamic_group_segment_base_pointer is called. -KOKKOS_INLINE_FUNCTION -uint64_t __syncthreads_or(uint64_t pred) { - uint64_t *shared_var = - (uint64_t *)hc::get_dynamic_group_segment_base_pointer(); - if (LT0) *shared_var = 0; - amp_barrier(CLK_LOCAL_MEM_FENCE); -#if __KALMAR_ACCELERATOR__ == 1 - if (pred) hc::atomic_or_uint64(shared_var, 1); -#endif - amp_barrier(CLK_LOCAL_MEM_FENCE); - return (*shared_var); -} - -KOKKOS_INLINE_FUNCTION -void __threadfence() { - amp_barrier(CLK_LOCAL_MEM_FENCE | CLK_GLOBAL_MEM_FENCE); -} - -KOKKOS_INLINE_FUNCTION -void __threadfence_block() { - amp_barrier(CLK_LOCAL_MEM_FENCE | CLK_GLOBAL_MEM_FENCE); -} -//#endif -struct ROCm_atomic_CAS { - template <class OP> - KOKKOS_INLINE_FUNCTION unsigned long operator()(volatile unsigned long *dest, - OP &&op) { - unsigned long read, compare, val; - compare = *dest; - read = compare; - do { - compare = read; - val = op(compare); -#if __KALMAR_ACCELERATOR__ == 1 - hc::atomic_compare_exchange((uint64_t *)dest, &read, val); -#endif - } while (read != compare); - return val; - } -}; - -template <class OP> -KOKKOS_INLINE_FUNCTION unsigned long atomic_cas_op(volatile unsigned long *dest, - OP &&op) { - ROCm_atomic_CAS cas_op; - return cas_op(dest, std::forward<OP>(op)); -} - -KOKKOS_INLINE_FUNCTION -unsigned long atomicInc(volatile unsigned long *dest, - const unsigned long &val) { - return atomic_cas_op( - dest, [=](unsigned long old) { return ((old >= val) ? 0 : (old + 1)); }); -} - -//---------------------------------------------------------------------------- - -template <typename T> -KOKKOS_INLINE_FUNCTION void rocm_shfl( - T &out, T const &in, int lane, - typename std::enable_if<sizeof(int) == sizeof(T), int>::type width) { - *reinterpret_cast<int *>(&out) = - __shfl(*reinterpret_cast<int const *>(&in), lane, width); -} - -template <typename T> -KOKKOS_INLINE_FUNCTION void rocm_shfl( - T &out, T const &in, int lane, - typename std::enable_if<(sizeof(int) < sizeof(T)) && - (0 == (sizeof(T) % sizeof(int))), - int>::type width) { - enum : int { N = sizeof(T) / sizeof(int) }; - - for (int i = 0; i < N; ++i) { - reinterpret_cast<int *>(&out)[i] = - __shfl(reinterpret_cast<int const *>(&in)[i], lane, width); - } -} - -//---------------------------------------------------------------------------- - -template <typename T> -KOKKOS_INLINE_FUNCTION void rocm_shfl_down( - T &out, T const &in, int delta, - typename std::enable_if<sizeof(int) == sizeof(T), int>::type width) { - *reinterpret_cast<int *>(&out) = - __shfl_down(*reinterpret_cast<int const *>(&in), delta, width); -} - -template <typename T> -KOKKOS_INLINE_FUNCTION void rocm_shfl_down( - T &out, T const &in, int delta, - typename std::enable_if<(sizeof(int) < sizeof(T)) && - (0 == (sizeof(T) % sizeof(int))), - int>::type width) { - enum : int { N = sizeof(T) / sizeof(int) }; - - for (int i = 0; i < N; ++i) { - reinterpret_cast<int *>(&out)[i] = - __shfl_down(reinterpret_cast<int const *>(&in)[i], delta, width); - } -} - -//---------------------------------------------------------------------------- - -template <typename T> -KOKKOS_INLINE_FUNCTION void rocm_shfl_up( - T &out, T const &in, int delta, - typename std::enable_if<sizeof(int) == sizeof(T), int>::type width) { - *reinterpret_cast<int *>(&out) = - __shfl_up(*reinterpret_cast<int const *>(&in), delta, width); -} - -template <typename T> -KOKKOS_INLINE_FUNCTION void rocm_shfl_up( - T &out, T const &in, int delta, - typename std::enable_if<(sizeof(int) < sizeof(T)) && - (0 == (sizeof(T) % sizeof(int))), - int>::type width) { - enum : int { N = sizeof(T) / sizeof(int) }; - - for (int i = 0; i < N; ++i) { - reinterpret_cast<int *>(&out)[i] = - __shfl_up(reinterpret_cast<int const *>(&in)[i], delta, width); - } -} -#if 0 -//---------------------------------------------------------------------------- -/** \brief Reduce within a workgroup over team.vector_length(), the "vector" dimension. - * - * This will be called within a nested, intra-team parallel operation. - * Use shuffle operations to avoid conflicts with shared memory usage. - * - * Requires: - * team.vector_length() is power of 2 - * team.vector_length() <= 32 (one workgroup) - * - * Cannot use "butterfly" pattern because floating point - * addition is non-associative. Therefore, must broadcast - * the final result. - */ -template< class Reducer > -KOKKOS_INLINE_FUNCTION -void rocm_intra_workgroup_vector_reduce( Reducer const & reducer ) -{ - static_assert( - std::is_reference< typename Reducer::reference_type >::value , "" ); - - if ( 1 < team.vector_length() ) { - - typename Reducer::value_type tmp ; - - for ( int i = team.vector_length() ; ( i >>= 1 ) ; ) { - - rocm_shfl_down( tmp , reducer.reference() , i , team.vector_length() ); - - if ( team.vector_rank() < i ) { reducer.join( reducer.data() , & tmp ); } - } - - // Broadcast from root "lane" to all other "lanes" - - rocm_shfl( reducer.reference() , reducer.reference() , 0 , team.vector_length() ); - } -} - -/** \brief Inclusive scan over team.vector_length(), the "vector" dimension. - * - * This will be called within a nested, intra-team parallel operation. - * Use shuffle operations to avoid conflicts with shared memory usage. - * - * Algorithm is concurrent bottom-up reductions in triangular pattern - * where each ROCM thread is the root of a reduction tree from the - * zeroth ROCM thread to itself. - * - * Requires: - * team.vector_length() is power of 2 - * team.vector_length() <= 32 (one workgroup) - */ -template< typename ValueType > -KOKKOS_INLINE_FUNCTION -void rocm_intra_workgroup_vector_inclusive_scan( ValueType & local ) -{ - ValueType tmp ; - - // Bottom up: - // [t] += [t-1] if t >= 1 - // [t] += [t-2] if t >= 2 - // [t] += [t-4] if t >= 4 - // ... - - for ( int i = 1 ; i < team.vector_length() ; i <<= 1 ) { - - rocm_shfl_up( tmp , local , i , team.vector_length() ); - - if ( i <= team.vector_rank() ) { local += tmp ; } - } -} -#endif - -//---------------------------------------------------------------------------- -/* - * Algorithmic constraints: - * (a) threads with same team.team_rank() have same value - * (b) team.vector_length() == power of two - * (c) blockDim.z == 1 - */ - -template <class ValueType, class JoinOp> -KOKKOS_INLINE_FUNCTION void rocm_intra_workgroup_reduction( - const ROCmTeamMember &team, ValueType &result, const JoinOp &join) { - unsigned int shift = 1; - int max_active_thread = team.team_size(); - - // Reduce over values from threads with different team.team_rank() - while (team.vector_length() * shift < 32) { - const ValueType tmp = shfl_down(result, team.vector_length() * shift, 32u); - // Only join if upper thread is active (this allows non power of two for - // team.team_size() - if (team.team_rank() + shift < max_active_thread) join(result, tmp); - shift *= 2; - } - - result = shfl(result, 0, 32); -} - -template <class ValueType, class JoinOp> -KOKKOS_INLINE_FUNCTION void rocm_inter_workgroup_reduction( - const ROCmTeamMember &team, ValueType &value, const JoinOp &join) { -#define STEP_WIDTH 4 - - tile_static ValueType sh_result[256]; - int max_active_thread = team.team_size(); - ValueType *result = (ValueType *)&sh_result; - const unsigned step = 256 / team.vector_length(); - unsigned shift = STEP_WIDTH; - const int id = team.team_rank() % step == 0 ? team.team_rank() / step : 65000; - if (id < STEP_WIDTH) { - result[id] = value; - } - team.team_barrier(); - - while (shift <= max_active_thread / step) { - if (shift <= id && shift + STEP_WIDTH > id && team.vector_rank() == 0) { - join(result[id % STEP_WIDTH], value); - } - team.team_barrier(); - shift += STEP_WIDTH; - } - - value = result[0]; - for (int i = 1; (i * step < max_active_thread) && i < STEP_WIDTH; i++) - join(value, result[i]); -} - -#if 0 -template< class ValueType , class JoinOp> -KOKKOS_INLINE_FUNCTION -void rocm_intra_block_reduction( ROCmTeamMember& team, - ValueType& value, - const JoinOp& join, - const int max_active_thread) { - rocm_intra_workgroup_reduction(team,value,join,max_active_thread); - rocm_inter_workgroup_reduction(team,value,join,max_active_thread); -} - -template< class FunctorType , class JoinOp , class ArgTag = void > -KOKKOS_INLINE_FUNCTION -bool rocm_inter_block_reduction( ROCmTeamMember& team, - typename FunctorValueTraits< FunctorType , ArgTag >::reference_type value, - typename FunctorValueTraits< FunctorType , ArgTag >::reference_type neutral, - const JoinOp& join, - ROCm::size_type * const m_scratch_space, - typename FunctorValueTraits< FunctorType , ArgTag >::pointer_type const result, - ROCm::size_type * const m_scratch_flags, - const int max_active_thread) { -#ifdef __ROCM_ARCH__ - typedef typename FunctorValueTraits< FunctorType , ArgTag >::pointer_type pointer_type; - typedef typename FunctorValueTraits< FunctorType , ArgTag >::value_type value_type; - - //Do the intra-block reduction with shfl operations and static shared memory - rocm_intra_block_reduction(value,join,max_active_thread); - - const unsigned id = team.team_rank()*team.vector_length() + team.vector_rank(); - - //One thread in the block writes block result to global scratch_memory - if(id == 0 ) { - pointer_type global = ((pointer_type) m_scratch_space) + blockIdx.x; - *global = value; - } - - //One workgroup of last block performs inter block reduction through loading the block values from global scratch_memory - bool last_block = false; - - team.team_barrier(); - if ( id < 32 ) { - ROCm::size_type count; - - //Figure out whether this is the last block - if(id == 0) - count = Kokkos::atomic_fetch_add(m_scratch_flags,1); - count = Kokkos::shfl(count,0,32); - - //Last block does the inter block reduction - if( count == gridDim.x - 1) { - //set flag back to zero - if(id == 0) - *m_scratch_flags = 0; - last_block = true; - value = neutral; - - pointer_type const volatile global = (pointer_type) m_scratch_space ; - - //Reduce all global values with splitting work over threads in one workgroup - const int step_size = team.vector_length()*team.team_size() < 32 ? team.vector_length()*team.team_size() : 32; - for(int i=id; i<gridDim.x; i+=step_size) { - value_type tmp = global[i]; - join(value, tmp); - } - - //Perform shfl reductions within the workgroup only join if contribution is valid (allows gridDim.x non power of two and <32) - if (team.vector_length()*team.team_size() > 1) { - value_type tmp = Kokkos::shfl_down(value, 1,32); - if( id + 1 < gridDim.x ) - join(value, tmp); - } - if (team.vector_length()*team.team_size() > 2) { - value_type tmp = Kokkos::shfl_down(value, 2,32); - if( id + 2 < gridDim.x ) - join(value, tmp); - } - if (team.vector_length()*team.team_size() > 4) { - value_type tmp = Kokkos::shfl_down(value, 4,32); - if( id + 4 < gridDim.x ) - join(value, tmp); - } - if (team.vector_length()*team.team_size() > 8) { - value_type tmp = Kokkos::shfl_down(value, 8,32); - if( id + 8 < gridDim.x ) - join(value, tmp); - } - if (team.vector_length()*team.team_size() > 16) { - value_type tmp = Kokkos::shfl_down(value, 16,32); - if( id + 16 < gridDim.x ) - join(value, tmp); - } - } - } - - //The last block has in its thread=0 the global reduction value through "value" - return last_block; -#else - return true; -#endif -} -#endif - -//---------------------------------------------------------------------------- -/* - * Algorithmic constraints: - * (a) team.team_size() is a power of two - * (b) team.team_size() <= 512 - * (c) team.vector_length() == blockDim.z == 1 - */ - -template <bool DoScan, class FunctorType, class ArgTag> -KOKKOS_INLINE_FUNCTION void rocm_intra_block_reduce_scan( - const FunctorType &functor, - const typename FunctorValueTraits<FunctorType, ArgTag>::pointer_type - base_data) { - typedef FunctorValueTraits<FunctorType, ArgTag> ValueTraits; - typedef FunctorValueJoin<FunctorType, ArgTag> ValueJoin; - - typedef typename ValueTraits::pointer_type pointer_type; - - const unsigned value_count = ValueTraits::value_count(functor); - const unsigned BlockSizeMask = blockDim_y - 1; - - // Must have power of two thread count - - if (BlockSizeMask & blockDim_y) { - Kokkos::abort("ROCm::rocm_intra_block_scan requires power-of-two blockDim"); - } - -#define BLOCK_REDUCE_STEP(R, TD, S) \ - if (!((R & ((1 << (S + 1)) - 1)) | (blockDim_y < (1 << (S + 1))))) { \ - ValueJoin::join(functor, TD, (TD - (value_count << S))); \ - } - -#define BLOCK_SCAN_STEP(TD, N, S) \ - if (N == (1 << S)) { \ - ValueJoin::join(functor, TD, (TD - (value_count << S))); \ - } -#define KOKKOS_IMPL_ROCM_SYNCWF __threadfence_block() - - const unsigned rtid_intra = threadIdx_y ^ BlockSizeMask; - const pointer_type tdata_intra = base_data + value_count * threadIdx_y; - - { // Intra-workgroup reduction: min blocksize of 64 - KOKKOS_IMPL_ROCM_SYNCWF; - BLOCK_REDUCE_STEP(rtid_intra, tdata_intra, 0) - KOKKOS_IMPL_ROCM_SYNCWF; - BLOCK_REDUCE_STEP(rtid_intra, tdata_intra, 1) - KOKKOS_IMPL_ROCM_SYNCWF; - BLOCK_REDUCE_STEP(rtid_intra, tdata_intra, 2) - KOKKOS_IMPL_ROCM_SYNCWF; - BLOCK_REDUCE_STEP(rtid_intra, tdata_intra, 3) - KOKKOS_IMPL_ROCM_SYNCWF; - BLOCK_REDUCE_STEP(rtid_intra, tdata_intra, 4) - KOKKOS_IMPL_ROCM_SYNCWF; - BLOCK_REDUCE_STEP(rtid_intra, tdata_intra, 5) - KOKKOS_IMPL_ROCM_SYNCWF; - } - - __syncthreads(); // Wait for all workgroups to reduce - - { // Inter-workgroup reduce-scan by a single workgroup to avoid extra - // synchronizations - if (threadIdx_y < value_count) { - for (int i = blockDim_y - 65; i > 0; i -= 64) - ValueJoin::join( - functor, base_data + (blockDim_y - 1) * value_count + threadIdx_y, - base_data + i * value_count + threadIdx_y); - } - __syncthreads(); -#if 0 - const unsigned rtid_inter = ( threadIdx_y ^ BlockSizeMask ) << ROCmTraits::WavefrontIndexShift ; - - if ( rtid_inter < blockDim_y ) { - - - const pointer_type tdata_inter = base_data + value_count * ( rtid_inter ^ BlockSizeMask ); -// -// remove these comments -// for rocm, we start with a block size of 64, so the 5 step is already done. -// The remaining steps are only done if block size is > 64, so we leave them -// in place until we tune blocksize for performance, then remove the ones -// that will never be used. -// if ( (1<<6) < BlockSizeMask ) { __threadfence_block(); BLOCK_REDUCE_STEP(rtid_inter,tdata_inter,6) } -// if ( (1<<7) < BlockSizeMask ) { __threadfence_block(); BLOCK_REDUCE_STEP(rtid_inter,tdata_inter,7) } -// if ( (1<<8) < BlockSizeMask ) { __threadfence_block(); BLOCK_REDUCE_STEP(rtid_inter,tdata_inter,8) } -// if ( (1<<9) < BlockSizeMask ) { __threadfence_block(); BLOCK_REDUCE_STEP(rtid_inter,tdata_inter,9) } - - - if ( DoScan ) { - - int n = ( rtid_inter & 64 ) ? 64 : ( - ( rtid_inter & 128 ) ? 128 : ( - ( rtid_inter & 256 ) ? 256 : 0 )); - - if ( ! ( rtid_inter + n < blockDim_y ) ) n = 0 ; - - __threadfence_block(); BLOCK_SCAN_STEP(tdata_inter,n,8) - __threadfence_block(); BLOCK_SCAN_STEP(tdata_inter,n,7) - __threadfence_block(); BLOCK_SCAN_STEP(tdata_inter,n,6) -// __threadfence_block(); BLOCK_SCAN_STEP(tdata_inter,n,5) - } - } -#endif - } - - __syncthreads(); // Wait for inter-workgroup reduce-scan to complete - - if (DoScan) { - int n = (rtid_intra & 1) - ? 1 - : ((rtid_intra & 2) - ? 2 - : ((rtid_intra & 4) - ? 4 - : ((rtid_intra & 8) - ? 8 - : ((rtid_intra & 16) - ? 16 - : ((rtid_intra & 32) ? 32 : 0))))); - - if (!(rtid_intra + n < blockDim_y)) n = 0; - - // BLOCK_SCAN_STEP(tdata_intra,n,5) __threadfence_block(); - // BLOCK_SCAN_STEP(tdata_intra,n,4) __threadfence_block(); - BLOCK_SCAN_STEP(tdata_intra, n, 3) __threadfence_block(); - BLOCK_SCAN_STEP(tdata_intra, n, 2) __threadfence_block(); - BLOCK_SCAN_STEP(tdata_intra, n, 1) __threadfence_block(); - BLOCK_SCAN_STEP(tdata_intra, n, 0) __threadfence_block(); - } - -#undef BLOCK_SCAN_STEP -#undef BLOCK_REDUCE_STEP -#undef KOKKOS_IMPL_ROCM_SYNCWF -} - -//---------------------------------------------------------------------------- -/**\brief Input value-per-thread starting at 'shared_data'. - * Reduction value at last thread's location. - * - * If 'DoScan' then write blocks' scan values and block-groups' scan values. - * - * Global reduce result is in the last threads' 'shared_data' location. - */ -using ROCM = Kokkos::Experimental::ROCm; - -template <bool DoScan, class FunctorType, class ArgTag> -KOKKOS_INLINE_FUNCTION bool rocm_single_inter_block_reduce_scan( - const FunctorType &functor, const ROCM::size_type block_id, - const ROCM::size_type block_count, - typename FunctorValueTraits<FunctorType, ArgTag>::value_type - *const shared_data, - typename FunctorValueTraits<FunctorType, ArgTag>::value_type - *const global_data, - ROCM::size_type *const global_flags) { - typedef ROCM::size_type size_type; - typedef FunctorValueTraits<FunctorType, ArgTag> ValueTraits; - typedef FunctorValueJoin<FunctorType, ArgTag> ValueJoin; - typedef FunctorValueInit<FunctorType, ArgTag> ValueInit; - typedef FunctorValueOps<FunctorType, ArgTag> ValueOps; - - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::reference_type reference_type; - typedef typename ValueTraits::value_type value_type; - - // '__ffs' = position of the least significant bit set to 1. - // blockDim_y is guaranteed to be a power of two so this - // is the integral shift value that can replace an integral divide. - // const unsigned long BlockSizeShift = __ffs( blockDim_y ) - 1 ; - const unsigned long BlockSizeShift = __lastbit_u32_u32(blockDim_y); - const unsigned long BlockSizeMask = blockDim_y - 1; - - // Must have power of two thread count - if (BlockSizeMask & blockDim_y) { - Kokkos::abort( - "ROCm::rocm_single_inter_block_reduce_scan requires power-of-two " - "blockDim"); - } - - const integral_nonzero_constant<size_type, ValueTraits::StaticValueSize / - sizeof(value_type)> - word_count(ValueTraits::value_size(functor) / sizeof(value_type)); - - // Reduce the accumulation for the entire block. - rocm_intra_block_reduce_scan<false, FunctorType, ArgTag>( - functor, pointer_type(shared_data)); - - { - // Write accumulation total to global scratch space. - // Accumulation total is the last thread's data. - value_type *const shared = shared_data + word_count.value * BlockSizeMask; - value_type *const global = global_data + word_count.value * block_id; - - for (int i = int(threadIdx_y); i < word_count.value; i += blockDim_y) { - global[i] = shared[i]; - } - } - - // Contributing blocks note that their contribution has been completed via an - // atomic-increment flag If this block is not the last block to contribute to - // this group then the block is done. - - const bool is_last_block = !__syncthreads_or( - threadIdx_y - ? 0 - : (1 + atomicInc(global_flags, block_count - 1) < block_count)); - if (is_last_block) { - const size_type b = - (long(block_count) * long(threadIdx_y)) >> BlockSizeShift; - const size_type e = - (long(block_count) * long(threadIdx_y + 1)) >> BlockSizeShift; - - { - value_type *const shared_ptr = - shared_data + word_count.value * threadIdx_y; - ValueInit::init(functor, shared_ptr); - - for (size_type i = b; i < e; ++i) { - ValueJoin::join(functor, shared_ptr, - global_data + word_count.value * i); - } - } - rocm_intra_block_reduce_scan<DoScan, FunctorType, ArgTag>( - functor, pointer_type(shared_data)); - - if (DoScan) { - value_type *const shared_value = - shared_data + - word_count.value * (threadIdx_y ? threadIdx_y - 1 : blockDim_y); - - if (!threadIdx_y) { - ValueInit::init(functor, shared_value); - } - - // Join previous inclusive scan value to each member - for (size_type i = b; i < e; ++i) { - value_type *const global_value = global_data + word_count.value * i; - ValueJoin::join(functor, shared_value, global_value); - ValueOps ::copy(functor, global_value, shared_value); - } - } - } - return is_last_block; -} - -// Size in bytes required for inter block reduce or scan -template <bool DoScan, class FunctorType, class ArgTag> -inline unsigned rocm_single_inter_block_reduce_scan_shmem( - const FunctorType &functor, const unsigned BlockSize) { - return (BlockSize + 2) * - Impl::FunctorValueTraits<FunctorType, ArgTag>::value_size(functor); -} - -} // namespace Impl -} // namespace Kokkos - -//---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- - -#endif /* #if defined( __ROCMCC__ ) */ -#endif /* KOKKOS_ROCM_REDUCESCAN_HPP */ diff --git a/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Scan.hpp b/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Scan.hpp deleted file mode 100644 index 337550b9f..000000000 --- a/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Scan.hpp +++ /dev/null @@ -1,250 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <ROCm/Kokkos_ROCm_Invoke.hpp> -#include <ROCm/Kokkos_ROCm_Join.hpp> - -namespace Kokkos { -namespace Impl { - -template <class Tag, class F, class TransformIndex> -void scan_enqueue(const int len, const F& f, TransformIndex transform_index) { - typedef Kokkos::Impl::FunctorValueTraits<F, Tag> ValueTraits; - typedef Kokkos::Impl::FunctorValueInit<F, Tag> ValueInit; - typedef Kokkos::Impl::FunctorValueJoin<F, Tag> ValueJoin; - typedef Kokkos::Impl::FunctorValueOps<F, Tag> ValueOps; - - typedef typename ValueTraits::value_type value_type; - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::reference_type reference_type; - - const auto td = get_tile_desc<value_type>(len); - std::vector<value_type> result_cpu(td.num_tiles); - hc::array<value_type> result(td.num_tiles); - hc::array<value_type> scratch(len); - - tile_for<value_type>( - td, [&, f, len, td ](hc::tiled_index<1> t_idx, - tile_buffer<value_type> buffer) [[hc]] { - const auto local = t_idx.local[0]; - const auto global = t_idx.global[0]; - const auto tile = t_idx.tile[0]; - - // Join tile buffer elements - const auto join = [&](std::size_t i, std::size_t j) { - buffer.action_at(i, j, [&](value_type& x, const value_type& y) { - ValueJoin::join(f, &x, &y); - }); - }; - - // Copy into tile - buffer.action_at(local, [&](value_type& state) { - ValueInit::init(f, &state); - if (global < len) - rocm_invoke<Tag>(f, - transform_index(t_idx, td.tile_size, td.num_tiles), - state, false); - }); - t_idx.barrier.wait(); - // Up sweep phase - for (std::size_t d = 1; d < buffer.size(); d *= 2) { - auto d2 = 2 * d; - auto i = local * d2; - if (i < len) { - auto j = i + d - 1; - auto k = i + d2 - 1; - - ValueJoin::join(f, &buffer[k], &buffer[j]); - } - } - t_idx.barrier.wait(); - - result[tile] = buffer[buffer.size() - 1]; - buffer[buffer.size() - 1] = 0; - // Down sweep phase - for (std::size_t d = buffer.size() / 2; d > 0; d /= 2) { - auto d2 = 2 * d; - auto i = local * d2; - if (i < len) { - auto j = i + d - 1; - auto k = i + d2 - 1; - auto t = buffer[k]; - - ValueJoin::join(f, &buffer[k], &buffer[j]); - buffer[j] = t; - } - t_idx.barrier.wait(); - } - // Copy tiles into global memory - if (global < len) scratch[global] = buffer[local]; - }) - .wait(); - copy(result, result_cpu.data()); - - for (int i = 1; i < td.num_tiles; i++) - ValueJoin::join(f, &result_cpu[i], &result_cpu[i - 1]); - - copy(result_cpu.data(), result); - size_t launch_len = (((len - 1) / td.tile_size) + 1) * td.tile_size; - hc::parallel_for_each( - hc::extent<1>(launch_len).tile(td.tile_size), - [&, f, len, td ](hc::tiled_index<1> t_idx) [[hc]] { - const auto global = t_idx.global[0]; - const auto tile = t_idx.tile[0]; - - if (global < len) { - auto final_state = scratch[global]; - - if (tile != 0) ValueJoin::join(f, &final_state, &result[tile - 1]); - rocm_invoke<Tag>(f, - transform_index(t_idx, td.tile_size, td.num_tiles), - final_state, true); - } - }) - .wait(); -} - -template <class Tag, class ReturnType, class F, class TransformIndex> -void scan_enqueue(const int len, const F& f, ReturnType& return_val, - TransformIndex transform_index) { - typedef Kokkos::Impl::FunctorValueTraits<F, Tag> ValueTraits; - typedef Kokkos::Impl::FunctorValueInit<F, Tag> ValueInit; - typedef Kokkos::Impl::FunctorValueJoin<F, Tag> ValueJoin; - typedef Kokkos::Impl::FunctorValueOps<F, Tag> ValueOps; - - typedef typename ValueTraits::value_type value_type; - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::reference_type reference_type; - - const auto td = get_tile_desc<value_type>(len); - std::vector<value_type> result_cpu(td.num_tiles); - hc::array<value_type> result(td.num_tiles); - hc::array<value_type> scratch(len); - std::vector<ReturnType> total_cpu(1); - hc::array<ReturnType> total(1); - - tile_for<value_type>( - td, [&, f, len, td ](hc::tiled_index<1> t_idx, - tile_buffer<value_type> buffer) [[hc]] { - const auto local = t_idx.local[0]; - const auto global = t_idx.global[0]; - const auto tile = t_idx.tile[0]; - - // Join tile buffer elements - const auto join = [&](std::size_t i, std::size_t j) { - buffer.action_at(i, j, [&](value_type& x, const value_type& y) { - ValueJoin::join(f, &x, &y); - }); - }; - - // Copy into tile - buffer.action_at(local, [&](value_type& state) { - ValueInit::init(f, &state); - if (global < len) - rocm_invoke<Tag>(f, - transform_index(t_idx, td.tile_size, td.num_tiles), - state, false); - }); - t_idx.barrier.wait(); - // Up sweep phase - for (std::size_t d = 1; d < buffer.size(); d *= 2) { - auto d2 = 2 * d; - auto i = local * d2; - if (i < len) { - auto j = i + d - 1; - auto k = i + d2 - 1; - ValueJoin::join(f, &buffer[k], &buffer[j]); - } - } - t_idx.barrier.wait(); - - result[tile] = buffer[buffer.size() - 1]; - buffer[buffer.size() - 1] = 0; - // Down sweep phase - for (std::size_t d = buffer.size() / 2; d > 0; d /= 2) { - auto d2 = 2 * d; - auto i = local * d2; - if (i < len) { - auto j = i + d - 1; - auto k = i + d2 - 1; - auto t = buffer[k]; - ValueJoin::join(f, &buffer[k], &buffer[j]); - buffer[j] = t; - } - t_idx.barrier.wait(); - } - // Copy tiles into global memory - if (global < len) scratch[global] = buffer[local]; - }) - .wait(); - copy(result, result_cpu.data()); - - for (int i = 1; i < td.num_tiles; i++) - ValueJoin::join(f, &result_cpu[i], &result_cpu[i - 1]); - - copy(result_cpu.data(), result); - size_t launch_len = (((len - 1) / td.tile_size) + 1) * td.tile_size; - hc::parallel_for_each( - hc::extent<1>(launch_len).tile(td.tile_size), - [&, f, len, td ](hc::tiled_index<1> t_idx) [[hc]] { - const auto global = t_idx.global[0]; - const auto tile = t_idx.tile[0]; - - if (global < len) { - auto final_state = scratch[global]; - - if (tile != 0) ValueJoin::join(f, &final_state, &result[tile - 1]); - rocm_invoke<Tag>(f, - transform_index(t_idx, td.tile_size, td.num_tiles), - final_state, true); - if (global == (len - 1)) total[0] = final_state; - } - }) - .wait(); - copy(total, total_cpu.data()); - return_val = total_cpu[0]; -} - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Space.cpp b/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Space.cpp deleted file mode 100644 index 1a79425f4..000000000 --- a/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Space.cpp +++ /dev/null @@ -1,648 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <stdlib.h> -#include <iostream> -#include <sstream> -#include <stdexcept> -#include <algorithm> -#include <atomic> -#include <Kokkos_Macros.hpp> - -/* only compile this file if ROCM is enabled for Kokkos */ -#ifdef KOKKOS_ENABLE_ROCM - -#include <Kokkos_Core.hpp> -#include <Kokkos_ROCm.hpp> -#include <Kokkos_ROCmSpace.hpp> - -#include <impl/Kokkos_Error.hpp> - -#if defined(KOKKOS_ENABLE_PROFILING) -#include <impl/Kokkos_Profiling_Interface.hpp> -#endif - -/*--------------------------------------------------------------------------*/ -/*--------------------------------------------------------------------------*/ -#define ROCM_SAFE_CALL -namespace Kokkos { -namespace Impl { -using namespace hc; - -DeepCopy<Kokkos::Experimental::ROCmSpace, Kokkos::Experimental::ROCmSpace, - Kokkos::Experimental::ROCm>::DeepCopy(void* dst, const void* src, - size_t n) { - hc::accelerator acc; - hc::accelerator_view av = acc.get_default_view(); - av.copy(src, dst, n); -} - -DeepCopy<HostSpace, Kokkos::Experimental::ROCmSpace, - Kokkos::Experimental::ROCm>::DeepCopy(void* dst, const void* src, - size_t n) { - hc::accelerator acc; - hc::accelerator_view av = acc.get_default_view(); - av.copy(src, dst, n); -} - -DeepCopy<Kokkos::Experimental::ROCmSpace, HostSpace, - Kokkos::Experimental::ROCm>::DeepCopy(void* dst, const void* src, - size_t n) { - hc::accelerator acc; - hc::accelerator_view av = acc.get_default_view(); - av.copy(src, dst, n); -} - -DeepCopy<Kokkos::Experimental::ROCmSpace, Kokkos::Experimental::ROCmSpace, - Kokkos::Experimental::ROCm>::DeepCopy(const Kokkos::Experimental::ROCm& - instance, - void* dst, const void* src, - size_t n) { - hc::accelerator acc; - hc::accelerator_view av = acc.get_default_view(); - av.copy(src, dst, n); -} - -DeepCopy<HostSpace, Kokkos::Experimental::ROCmSpace, - Kokkos::Experimental::ROCm>::DeepCopy(const Kokkos::Experimental::ROCm& - instance, - void* dst, const void* src, - size_t n) { - hc::accelerator acc; - hc::accelerator_view av = acc.get_default_view(); - av.copy(src, dst, n); -} - -DeepCopy<Kokkos::Experimental::ROCmSpace, HostSpace, - Kokkos::Experimental::ROCm>::DeepCopy(const Kokkos::Experimental::ROCm& - instance, - void* dst, const void* src, - size_t n) { - hc::accelerator acc; - hc::accelerator_view av = acc.get_default_view(); - av.copy(src, dst, n); -} - -DeepCopy<Kokkos::Experimental::ROCmHostPinnedSpace, - Kokkos::Experimental::ROCmHostPinnedSpace, - Kokkos::Experimental::ROCm>::DeepCopy(void* dst, const void* src, - size_t n) { - hc::accelerator acc; - hc::accelerator_view av = acc.get_default_view(); - av.copy(src, dst, n); -} - -DeepCopy<HostSpace, Kokkos::Experimental::ROCmHostPinnedSpace, - Kokkos::Experimental::ROCm>::DeepCopy(void* dst, const void* src, - size_t n) { - hc::accelerator acc; - hc::accelerator_view av = acc.get_default_view(); - av.copy(src, dst, n); -} - -DeepCopy<Kokkos::Experimental::ROCmHostPinnedSpace, HostSpace, - Kokkos::Experimental::ROCm>::DeepCopy(void* dst, const void* src, - size_t n) { - hc::accelerator acc; - hc::accelerator_view av = acc.get_default_view(); - av.copy(src, dst, n); -} - -DeepCopy<Kokkos::Experimental::ROCmHostPinnedSpace, - Kokkos::Experimental::ROCmHostPinnedSpace, - Kokkos::Experimental::ROCm>::DeepCopy(const Kokkos::Experimental::ROCm& - instance, - void* dst, const void* src, - size_t n) { - hc::accelerator acc; - hc::accelerator_view av = acc.get_default_view(); - av.copy(src, dst, n); -} - -DeepCopy<HostSpace, Kokkos::Experimental::ROCmHostPinnedSpace, - Kokkos::Experimental::ROCm>::DeepCopy(const Kokkos::Experimental::ROCm& - instance, - void* dst, const void* src, - size_t n) { - hc::accelerator acc; - hc::accelerator_view av = acc.get_default_view(); - av.copy(src, dst, n); -} - -DeepCopy<Kokkos::Experimental::ROCmHostPinnedSpace, HostSpace, - Kokkos::Experimental::ROCm>::DeepCopy(const Kokkos::Experimental::ROCm& - instance, - void* dst, const void* src, - size_t n) { - hc::accelerator acc; - hc::accelerator_view av = acc.get_default_view(); - av.copy(src, dst, n); -} - -hc::completion_future DeepCopyAsyncROCm(void* dst, const void* src, size_t n) { - hc::accelerator acc; - hc::accelerator_view av = acc.get_default_view(); - return (av.copy_async(src, dst, n)); -} - -} // namespace Impl -} // namespace Kokkos - -/*--------------------------------------------------------------------------*/ -/*--------------------------------------------------------------------------*/ - -namespace Kokkos { - -void Experimental::ROCmSpace::access_error() { - const std::string msg( - "Kokkos::Experimental::ROCmSpace::access_error attempt to execute " - "Experimental::ROCm function from non-ROCm space"); - Kokkos::Impl::throw_runtime_exception(msg); -} - -void Experimental::ROCmSpace::access_error(const void* const) { - const std::string msg( - "Kokkos::Experimental::ROCmSpace::access_error attempt to execute " - "Experimental::ROCm function from non-ROCm space"); - Kokkos::Impl::throw_runtime_exception(msg); -} - -} // namespace Kokkos - -/*--------------------------------------------------------------------------*/ -/*--------------------------------------------------------------------------*/ - -namespace Kokkos { -namespace Experimental { - -ROCmSpace::ROCmSpace() : m_device(ROCm().rocm_device()) {} - -ROCmHostPinnedSpace::ROCmHostPinnedSpace() {} - -void* ROCmSpace::allocate(const size_t arg_alloc_size) const { - void* ptr = Kokkos::Impl::rocm_device_allocate(arg_alloc_size); - return ptr; -} - -void* Experimental::ROCmHostPinnedSpace::allocate( - const size_t arg_alloc_size) const { - void* ptr = Kokkos::Impl::rocm_hostpinned_allocate(arg_alloc_size); - return ptr; -} - -void ROCmSpace::deallocate(void* const arg_alloc_ptr, - const size_t /* arg_alloc_size */) const { - Kokkos::Impl::rocm_device_free(arg_alloc_ptr); -} - -void Experimental::ROCmHostPinnedSpace::deallocate( - void* const arg_alloc_ptr, const size_t /* arg_alloc_size */) const { - Kokkos::Impl::rocm_device_free(arg_alloc_ptr); -} - -} // namespace Experimental -} // namespace Kokkos - -//---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- - -namespace Kokkos { -namespace Impl { - -#ifdef KOKKOS_DEBUG -SharedAllocationRecord<void, void> SharedAllocationRecord< - Kokkos::Experimental::ROCmSpace, void>::s_root_record; - -SharedAllocationRecord<void, void> SharedAllocationRecord< - Kokkos::Experimental::ROCmHostPinnedSpace, void>::s_root_record; -#endif - -std::string SharedAllocationRecord<Kokkos::Experimental::ROCmSpace, - void>::get_label() const { - SharedAllocationHeader header; - - Kokkos::Impl::DeepCopy<Kokkos::HostSpace, Kokkos::Experimental::ROCmSpace>( - &header, RecordBase::head(), sizeof(SharedAllocationHeader)); - - return std::string(header.m_label); -} - -std::string SharedAllocationRecord<Kokkos::Experimental::ROCmHostPinnedSpace, - void>::get_label() const { - return std::string(RecordBase::head()->m_label); -} - -SharedAllocationRecord<Kokkos::Experimental::ROCmSpace, void>* -SharedAllocationRecord<Kokkos::Experimental::ROCmSpace, void>::allocate( - const Kokkos::Experimental::ROCmSpace& arg_space, - const std::string& arg_label, const size_t arg_alloc_size) { - return new SharedAllocationRecord(arg_space, arg_label, arg_alloc_size); -} - -SharedAllocationRecord<Kokkos::Experimental::ROCmHostPinnedSpace, void>* -SharedAllocationRecord<Kokkos::Experimental::ROCmHostPinnedSpace, void>:: - allocate(const Kokkos::Experimental::ROCmHostPinnedSpace& arg_space, - const std::string& arg_label, const size_t arg_alloc_size) { - return new SharedAllocationRecord(arg_space, arg_label, arg_alloc_size); -} - -void SharedAllocationRecord<Kokkos::Experimental::ROCmSpace, void>::deallocate( - SharedAllocationRecord<void, void>* arg_rec) { - delete static_cast<SharedAllocationRecord*>(arg_rec); -} - -void SharedAllocationRecord<Kokkos::Experimental::ROCmHostPinnedSpace, void>:: - deallocate(SharedAllocationRecord<void, void>* arg_rec) { - delete static_cast<SharedAllocationRecord*>(arg_rec); -} - -SharedAllocationRecord<Kokkos::Experimental::ROCmSpace, - void>::~SharedAllocationRecord() { -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { - SharedAllocationHeader header; - Kokkos::Impl::DeepCopy<Kokkos::Experimental::ROCmSpace, HostSpace>( - &header, RecordBase::m_alloc_ptr, sizeof(SharedAllocationHeader)); - - Kokkos::Profiling::deallocateData( - Kokkos::Profiling::SpaceHandle(Kokkos::Experimental::ROCmSpace::name()), - header.m_label, data(), size()); - } -#endif - - m_space.deallocate(SharedAllocationRecord<void, void>::m_alloc_ptr, - SharedAllocationRecord<void, void>::m_alloc_size); -} - -SharedAllocationRecord<Kokkos::Experimental::ROCmHostPinnedSpace, - void>::~SharedAllocationRecord() { -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::deallocateData( - Kokkos::Profiling::SpaceHandle( - Kokkos::Experimental::ROCmHostPinnedSpace::name()), - RecordBase::m_alloc_ptr->m_label, data(), size()); - } -#endif - - m_space.deallocate(SharedAllocationRecord<void, void>::m_alloc_ptr, - SharedAllocationRecord<void, void>::m_alloc_size); -} - -SharedAllocationRecord<Kokkos::Experimental::ROCmSpace, void>:: - SharedAllocationRecord( - const Kokkos::Experimental::ROCmSpace& arg_space, - const std::string& arg_label, const size_t arg_alloc_size, - const SharedAllocationRecord<void, void>::function_type arg_dealloc) - // Pass through allocated [ SharedAllocationHeader , user_memory ] - // Pass through deallocation function - : SharedAllocationRecord<void, void>( -#ifdef KOKKOS_DEBUG - &SharedAllocationRecord<Kokkos::Experimental::ROCmSpace, - void>::s_root_record, -#endif - reinterpret_cast<SharedAllocationHeader*>(arg_space.allocate( - sizeof(SharedAllocationHeader) + arg_alloc_size)), - sizeof(SharedAllocationHeader) + arg_alloc_size, arg_dealloc), - m_space(arg_space) { -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::allocateData( - Kokkos::Profiling::SpaceHandle(arg_space.name()), arg_label, data(), - arg_alloc_size); - } -#endif - - SharedAllocationHeader header; - - // Fill in the Header information - header.m_record = static_cast<SharedAllocationRecord<void, void>*>(this); - - strncpy(header.m_label, arg_label.c_str(), - SharedAllocationHeader::maximum_label_length); - // Set last element zero, in case c_str is too long - header.m_label[SharedAllocationHeader::maximum_label_length - 1] = (char)0; - - // Copy to device memory - Kokkos::Impl::DeepCopy<Kokkos::Experimental::ROCmSpace, HostSpace>( - RecordBase::m_alloc_ptr, &header, sizeof(SharedAllocationHeader)); -} - -SharedAllocationRecord<Kokkos::Experimental::ROCmHostPinnedSpace, void>:: - SharedAllocationRecord( - const Kokkos::Experimental::ROCmHostPinnedSpace& arg_space, - const std::string& arg_label, const size_t arg_alloc_size, - const SharedAllocationRecord<void, void>::function_type arg_dealloc) - // Pass through allocated [ SharedAllocationHeader , user_memory ] - // Pass through deallocation function - : SharedAllocationRecord<void, void>( -#ifdef KOKKOS_DEBUG - &SharedAllocationRecord<Kokkos::Experimental::ROCmHostPinnedSpace, - void>::s_root_record, -#endif - reinterpret_cast<SharedAllocationHeader*>(arg_space.allocate( - sizeof(SharedAllocationHeader) + arg_alloc_size)), - sizeof(SharedAllocationHeader) + arg_alloc_size, arg_dealloc), - m_space(arg_space) { -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::allocateData( - Kokkos::Profiling::SpaceHandle(arg_space.name()), arg_label, data(), - arg_alloc_size); - } -#endif - // Fill in the Header information, directly accessible via host pinned memory - - RecordBase::m_alloc_ptr->m_record = this; - - strncpy(RecordBase::m_alloc_ptr->m_label, arg_label.c_str(), - SharedAllocationHeader::maximum_label_length); - // Set last element zero, in case c_str is too long - RecordBase::m_alloc_ptr - ->m_label[SharedAllocationHeader::maximum_label_length - 1] = (char)0; -} - -//---------------------------------------------------------------------------- - -void* SharedAllocationRecord<Kokkos::Experimental::ROCmSpace, void>:: - allocate_tracked(const Kokkos::Experimental::ROCmSpace& arg_space, - const std::string& arg_alloc_label, - const size_t arg_alloc_size) { - if (!arg_alloc_size) return nullptr; - - SharedAllocationRecord* const r = - allocate(arg_space, arg_alloc_label, arg_alloc_size); - - RecordBase::increment(r); - - return r->data(); -} - -void SharedAllocationRecord<Kokkos::Experimental::ROCmSpace, - void>::deallocate_tracked(void* const - arg_alloc_ptr) { - if (arg_alloc_ptr != 0) { - SharedAllocationRecord* const r = get_record(arg_alloc_ptr); - - RecordBase::decrement(r); - } -} - -void* SharedAllocationRecord<Kokkos::Experimental::ROCmSpace, void>:: - reallocate_tracked(void* const arg_alloc_ptr, const size_t arg_alloc_size) { - SharedAllocationRecord* const r_old = get_record(arg_alloc_ptr); - SharedAllocationRecord* const r_new = - allocate(r_old->m_space, r_old->get_label(), arg_alloc_size); - - Kokkos::Impl::DeepCopy<Kokkos::Experimental::ROCmSpace, - Kokkos::Experimental::ROCmSpace>( - r_new->data(), r_old->data(), std::min(r_old->size(), r_new->size())); - - RecordBase::increment(r_new); - RecordBase::decrement(r_old); - - return r_new->data(); -} - -#if 0 -void * SharedAllocationRecord< Kokkos::Experimental::ROCmHostPinnedSpace , void >:: -allocate_tracked( const Kokkos::Experimental::ROCmHostPinnedSpace & arg_space - , const std::string & arg_alloc_label - , const size_t arg_alloc_size ) -{ - if ( ! arg_alloc_size ) return (void *) 0 ; - - SharedAllocationRecord * const r = - allocate( arg_space , arg_alloc_label , arg_alloc_size ); - - RecordBase::increment( r ); - - return r->data(); -} - -void SharedAllocationRecord< Kokkos::Experimental::ROCmHostPinnedSpace , void >:: -deallocate_tracked( void * const arg_alloc_ptr ) -{ - if ( arg_alloc_ptr != 0 ) { - SharedAllocationRecord * const r = get_record( arg_alloc_ptr ); - - RecordBase::decrement( r ); - } -} - -void * SharedAllocationRecord< Kokkos::Experimental::ROCmHostPinnedSpace , void >:: -reallocate_tracked( void * const arg_alloc_ptr - , const size_t arg_alloc_size ) -{ - SharedAllocationRecord * const r_old = get_record( arg_alloc_ptr ); - SharedAllocationRecord * const r_new = allocate( r_old->m_space , r_old->get_label() , arg_alloc_size ); - - Kokkos::Impl::DeepCopy<Experimental::ROCmHostPinnedSpace,Experimental::ROCmHostPinnedSpace>( r_new->data() , r_old->data() - , std::min( r_old->size() , r_new->size() ) ); - - RecordBase::increment( r_new ); - RecordBase::decrement( r_old ); - - return r_new->data(); -} -#endif - -//---------------------------------------------------------------------------- - -SharedAllocationRecord<Kokkos::Experimental::ROCmSpace, void>* -SharedAllocationRecord<Kokkos::Experimental::ROCmSpace, void>::get_record( - void* alloc_ptr) { - using Header = SharedAllocationHeader; - using RecordBase = SharedAllocationRecord<void, void>; - using RecordROCm = - SharedAllocationRecord<Kokkos::Experimental::ROCmSpace, void>; - - // Copy the header from the allocation - Header head; - - Header const* const head_rocm = - alloc_ptr ? Header::get_header(alloc_ptr) : (Header*)0; - - if (alloc_ptr) { - Kokkos::Impl::DeepCopy<HostSpace, Kokkos::Experimental::ROCmSpace>( - &head, head_rocm, sizeof(SharedAllocationHeader)); - } - - RecordROCm* const record = - alloc_ptr ? static_cast<RecordROCm*>(head.m_record) : (RecordROCm*)0; - - if (!alloc_ptr || record->m_alloc_ptr != head_rocm) { - Kokkos::Impl::throw_runtime_exception(std::string( - "Kokkos::Impl::SharedAllocationRecord< Kokkos::Experimental::ROCmSpace " - ", void >::get_record ERROR")); - } - - return record; -} - -#if 0 -SharedAllocationRecord< Kokkos::Experimental::ROCmHostPinnedSpace , void > * -SharedAllocationRecord< Kokkos::Experimental::ROCmHostPinnedSpace , void >::get_record( void * alloc_ptr ) -{ - using Header = SharedAllocationHeader ; - using RecordROCm = SharedAllocationRecord< Kokkos::Experimental::ROCmHostPinnedSpace , void > ; - - Header * const h = alloc_ptr ? reinterpret_cast< Header * >( alloc_ptr ) - 1 : (Header *) 0 ; - - if ( ! alloc_ptr || h->m_record->m_alloc_ptr != h ) { - Kokkos::Impl::throw_runtime_exception( std::string("Kokkos::Impl::SharedAllocationRecord< Kokkos::Experimental::ROCmHostPinnedSpace , void >::get_record ERROR" ) ); - } - - return static_cast< RecordROCm * >( h->m_record ); -} -#endif - -// Iterate records to print orphaned memory ... -void SharedAllocationRecord<Kokkos::Experimental::ROCmSpace, void>:: - print_records(std::ostream& s, const Kokkos::Experimental::ROCmSpace& space, - bool detail) { -#ifdef KOKKOS_DEBUG - SharedAllocationRecord<void, void>* r = &s_root_record; - - char buffer[256]; - - SharedAllocationHeader head; - - if (detail) { - do { - if (r->m_alloc_ptr) { - Kokkos::Impl::DeepCopy<HostSpace, Kokkos::Experimental::ROCmSpace>( - &head, r->m_alloc_ptr, sizeof(SharedAllocationHeader)); - } else { - head.m_label[0] = 0; - } - - // Formatting dependent on sizeof(uintptr_t) - const char* format_string; - - if (sizeof(uintptr_t) == sizeof(unsigned long)) { - format_string = - "ROCm addr( 0x%.12lx ) list( 0x%.12lx 0x%.12lx ) extent[ 0x%.12lx " - "+ %.8ld ] count(%d) dealloc(0x%.12lx) %s\n"; - } else if (sizeof(uintptr_t) == sizeof(unsigned long long)) { - format_string = - "ROCm addr( 0x%.12llx ) list( 0x%.12llx 0x%.12llx ) extent[ " - "0x%.12llx + %.8ld ] count(%d) dealloc(0x%.12llx) %s\n"; - } - - snprintf(buffer, 256, format_string, reinterpret_cast<uintptr_t>(r), - reinterpret_cast<uintptr_t>(r->m_prev), - reinterpret_cast<uintptr_t>(r->m_next), - reinterpret_cast<uintptr_t>(r->m_alloc_ptr), r->m_alloc_size, - r->m_count, reinterpret_cast<uintptr_t>(r->m_dealloc), - head.m_label); - std::cout << buffer; - r = r->m_next; - } while (r != &s_root_record); - } else { - do { - if (r->m_alloc_ptr) { - Kokkos::Impl::DeepCopy<HostSpace, Kokkos::Experimental::ROCmSpace>( - &head, r->m_alloc_ptr, sizeof(SharedAllocationHeader)); - - // Formatting dependent on sizeof(uintptr_t) - const char* format_string; - - if (sizeof(uintptr_t) == sizeof(unsigned long)) { - format_string = "ROCm [ 0x%.12lx + %ld ] %s\n"; - } else if (sizeof(uintptr_t) == sizeof(unsigned long long)) { - format_string = "ROCm [ 0x%.12llx + %ld ] %s\n"; - } - - snprintf(buffer, 256, format_string, - reinterpret_cast<uintptr_t>(r->data()), r->size(), - head.m_label); - } else { - snprintf(buffer, 256, "ROCm [ 0 + 0 ]\n"); - } - std::cout << buffer; - r = r->m_next; - } while (r != &s_root_record); - } -#else - throw_runtime_exception( - "Kokkos::Impl::SharedAllocationRecord<ROCmSpace>::print_records" - " only works with KOKKOS_DEBUG enabled"); -#endif -} - -} // namespace Impl -} // namespace Kokkos - -/*--------------------------------------------------------------------------*/ -/*--------------------------------------------------------------------------*/ -namespace Kokkos { -namespace { - -void* rocm_resize_scratch_space(size_t bytes, bool force_shrink) { - static void* ptr = nullptr; - static size_t current_size = 0; - if (current_size == 0) { - current_size = bytes; - ptr = Kokkos::kokkos_malloc<Kokkos::Experimental::ROCmSpace>( - "ROCmSpace::ScratchMemory", current_size); - } - if (bytes > current_size) { - current_size = bytes; - ptr = Kokkos::kokkos_realloc<Kokkos::Experimental::ROCmSpace>(ptr, - current_size); - } - if ((bytes < current_size) && (force_shrink)) { - current_size = bytes; - Kokkos::kokkos_free<Kokkos::Experimental::ROCmSpace>(ptr); - ptr = Kokkos::kokkos_malloc<Kokkos::Experimental::ROCmSpace>( - "ROCmSpace::ScratchMemory", current_size); - } - return ptr; -} - -} // namespace -} // namespace Kokkos - -#endif // KOKKOS_ENABLE_ROCM diff --git a/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Task.cpp b/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Task.cpp deleted file mode 100644 index 53966ca93..000000000 --- a/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Task.cpp +++ /dev/null @@ -1,168 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <Kokkos_Core.hpp> - -#if defined(KOKKOS_ENABLE_ROCM) && defined(KOKKOS_ENABLE_TASKDAG) - -#include <impl/Kokkos_TaskQueue_impl.hpp> - -//---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- - -namespace Kokkos { -namespace Impl { - -template class TaskQueue<Kokkos::Experimental::ROCm>; - -//---------------------------------------------------------------------------- -KOKKOS_INLINE_FUNCTION -void TaskQueueSpecialization<Kokkos::Experimental::ROCm>::driver( - TaskQueueSpecialization<Kokkos::Experimental::ROCm>::queue_type - *const queue, - hc::tiled_index<3> threadIdx) { - using Member = TaskExec<Kokkos::Experimental::ROCm>; - using Queue = TaskQueue<Kokkos::Experimental::ROCm>; - using task_root_type = TaskBase<void, void, void>; - - task_root_type *const end = (task_root_type *)task_root_type::EndTag; - - Member single_exec(1, threadIdx); - Member team_exec(threadIdx.tile_dim[0], threadIdx); - - const int wavefront_lane = - threadIdx.local[0] + threadIdx.local[1] * threadIdx.tile_dim[0]; - - union { - task_root_type *ptr; - int raw[2]; - } task; - - // Loop until all queues are empty and no tasks in flight - - do { - // Each team lead attempts to acquire either a thread team task - // or collection of single thread tasks for the team. - - if (0 == wavefront_lane) { - task.ptr = 0 < *((volatile int *)&queue->m_ready_count) ? end : 0; - - // Loop by priority and then type - for (int i = 0; i < Queue::NumQueue && end == task.ptr; ++i) { - for (int j = 0; j < 2 && end == task.ptr; ++j) { - task.ptr = Queue::pop_ready_task(&queue->m_ready[i][j]); - } - } - -#if 0 -printf("TaskQueue<ROCm>::driver(%d,%d) task(%lx)\n",threadIdx.z,blockIdx.x - , uintptr_t(task.ptr)); -#endif - } - - // shuffle broadcast - - task.raw[0] = hc::__shfl(task.raw[0], 0); - task.raw[1] = hc::__shfl(task.raw[1], 0); - - if (0 == task.ptr) break; // 0 == queue->m_ready_count - - if (end != task.ptr) { - if (task_root_type::TaskTeam == task.ptr->m_task_type) { - // Thread Team Task - (*task.ptr->m_apply)(task.ptr, &team_exec); - } else if (0 == threadIdx.local[1]) { - // Single Thread Task - (*task.ptr->m_apply)(task.ptr, &single_exec); - } - - if (0 == wavefront_lane) { - queue->complete(task.ptr); - } - } - } while (1); -} -#if 0 -namespace { -KOKKOS_INLINE_FUNCTION -void rocm_task_queue_execute( TaskQueue< Kokkos::Experimental::ROCm > * queue, - hc::tiled_index<3> threadIdx ) -{ TaskQueueSpecialization< Kokkos::Experimental::ROCm >::driver( queue, threadIdx ); } - -} -#endif -void TaskQueueSpecialization<Kokkos::Experimental::ROCm>::execute( - TaskQueue<Kokkos::Experimental::ROCm> *const queue) { - const int workgroups_per_wavefront = 4; - const int wavefront_size = Kokkos::Impl::ROCmTraits::WavefrontSize; - const int cu_count = Kokkos::Impl::rocm_internal_cu_count(); - // const dim3 grid( Kokkos::Impl::rocm_internal_cu_count() , 1 , 1 ); - // const dim3 block( 1 , Kokkos::Impl::ROCmTraits::WorkGroupSize , - // workgroups_per_wavefront ); - - // Query the stack size, in bytes: - // If not large enough then set the stack size, in bytes: - -// adapted from the cuda code. TODO: Not at all sure that this is the proper -// to map the cuda grid/blocks/3D tiling to HCC -#if 0 - hc::extent< 3 > flat_extent( cu_count, - wavefront_size, workgroups_per_wavefront ); - hc::tiled_extent< 3 > team_extent = flat_extent.tile(1, - wavefront_size,workgroups_per_wavefront); - - hc::parallel_for_each( team_extent , [&](hc::tiled_index<3> idx) [[hc]] - { - TaskQueueSpecialization< Kokkos::Experimental::ROCm >::driver( queue,idx ); - }).wait(); -#endif -} - -} // namespace Impl -} // namespace Kokkos - -//---------------------------------------------------------------------------- - -#endif /* #if defined( KOKKOS_ENABLE_ROCM ) && defined( KOKKOS_ENABLE_TASKDAG \ - ) */ diff --git a/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Task.hpp b/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Task.hpp deleted file mode 100644 index 5b04e9551..000000000 --- a/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Task.hpp +++ /dev/null @@ -1,448 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#ifndef KOKKOS_IMPL_ROCM_TASK_HPP -#define KOKKOS_IMPL_ROCM_TASK_HPP - -#if defined(KOKKOS_ENABLE_TASKDAG) - -#include <ROCm/Kokkos_ROCm_Vectorization.hpp> - -//---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- - -namespace Kokkos { -namespace Impl { - -template <class> -class TaskExec; - -template <> -class TaskQueueSpecialization<Kokkos::Experimental::ROCm> { - public: - using execution_space = Kokkos::Experimental::ROCm; - using queue_type = Kokkos::Impl::TaskQueue<execution_space>; - using task_base_type = Kokkos::Impl::TaskBase<execution_space, void, void>; - using member_type = TaskExec<execution_space>; - - // Must specify memory space - using memory_space = Kokkos::HostSpace; - - static void iff_single_thread_recursive_execute(queue_type* const) {} - - KOKKOS_INLINE_FUNCTION - static void driver(queue_type* const, hc::tiled_index<3>); - - // Must provide task queue execution function - static void execute(queue_type* const); - - // Must provide mechanism to set function pointer in - // execution space from the host process. - template <typename FunctorType> - static void proc_set_apply( - typename TaskBase<Kokkos::Experimental::ROCm, - typename FunctorType::value_type, - FunctorType>::function_type* ptr) { - using TaskType = TaskBase<Kokkos::Experimental::ROCm, - typename FunctorType::value_type, FunctorType>; - hc::extent<1> flat_extent(1); - hc::tiled_extent<1> team_extent = flat_extent.tile(1); - - hc::parallel_for_each( - team_extent, [&](hc::tiled_index<1> idx) - [[hc]] { *ptr = TaskType::apply; }) - .wait(); - } -}; - -/*template<> -KOKKOS_FUNCTION -void TaskQueue<Kokkos::Experimental::ROCm>::decrement( typename -TaskQueue<Kokkos::Experimental::ROCm>::task_root_type * ) {} -*/ -extern template class TaskQueue<Kokkos::Experimental::ROCm>; - -//---------------------------------------------------------------------------- -/**\brief Impl::TaskExec<ROCm> is the TaskScheduler<ROCm>::member_type - * passed to tasks running in a ROCm space. - * - * ROCm thread blocks for tasking are dimensioned: - * idx.tile_dim[0] == vector length - * idx.tile_dim[1] == team size - * idx.tile_dim[2] == number of teams - * where - * idx.tile_dim[0] * idx.tile_dim[1] == WavefrontSize - * - * Both single thread and thread team tasks are run by a full ROCm warp. - * A single thread task is called by warp lane #0 and the remaining - * lanes of the warp are idle. - */ -template <> -class TaskExec<Kokkos::Experimental::ROCm> { - private: - TaskExec(TaskExec&&) = delete; - TaskExec(TaskExec const&) = delete; - TaskExec& operator=(TaskExec&&) = delete; - TaskExec& operator=(TaskExec const&) = delete; - - friend class Kokkos::Impl::TaskQueue<Kokkos::Experimental::ROCm>; - friend class Kokkos::Impl::TaskQueueSpecialization< - Kokkos::Experimental::ROCm>; - - int m_team_size; - hc::tiled_index<3> m_idx; - - // KOKKOS_INLINE_FUNCTION TaskExec( int arg_team_size ) //TODO: tile_dim[0] - // : m_team_size( arg_team_size ) {} - - KOKKOS_INLINE_FUNCTION TaskExec(int arg_team_size, hc::tiled_index<3> tidx) - : m_team_size(arg_team_size), m_idx(tidx) {} - - public: - // const auto local = t_idx.local[0]; - // const auto global = t_idx.global[0]; - // const auto tile = t_idx.tile[0]; - - hc::tiled_index<3> idx() const { return m_idx; } - -#if defined(__HCC_ACCELERATOR__) - KOKKOS_INLINE_FUNCTION void team_barrier() { /* __threadfence_block(); */ - } - KOKKOS_INLINE_FUNCTION int team_rank() const { - return m_idx.local[1]; - } // t_idx.tile[0]; - KOKKOS_INLINE_FUNCTION int team_size() const { return m_team_size; } -#else - KOKKOS_INLINE_FUNCTION void team_barrier() {} - KOKKOS_INLINE_FUNCTION int team_rank() const { return 0; } - KOKKOS_INLINE_FUNCTION int team_size() const { return 0; } -#endif -}; - -} // namespace Impl -} // namespace Kokkos - -//---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- -namespace Kokkos { - -template <typename iType> -KOKKOS_INLINE_FUNCTION Impl::TeamThreadRangeBoundariesStruct< - iType, Impl::TaskExec<Kokkos::Experimental::ROCm> > -TeamThreadRange(Impl::TaskExec<Kokkos::Experimental::ROCm>& thread, - const iType& count) { - return Impl::TeamThreadRangeBoundariesStruct< - iType, Impl::TaskExec<Kokkos::Experimental::ROCm> >(thread, count); -} - -template <typename iType1, typename iType2> -KOKKOS_INLINE_FUNCTION Impl::TeamThreadRangeBoundariesStruct< - typename std::common_type<iType1, iType2>::type, - Impl::TaskExec<Kokkos::Experimental::ROCm> > -TeamThreadRange(Impl::TaskExec<Kokkos::Experimental::ROCm>& thread, - const iType1& begin, const iType2& end) { - typedef typename std::common_type<iType1, iType2>::type iType; - return Impl::TeamThreadRangeBoundariesStruct< - iType, Impl::TaskExec<Kokkos::Experimental::ROCm> >(thread, begin, end); -} - -template <typename iType> -KOKKOS_INLINE_FUNCTION Impl::ThreadVectorRangeBoundariesStruct< - iType, Impl::TaskExec<Kokkos::Experimental::ROCm> > -ThreadVectorRange(Impl::TaskExec<Kokkos::Experimental::ROCm>& thread, - const iType& count) { - return Impl::ThreadVectorRangeBoundariesStruct< - iType, Impl::TaskExec<Kokkos::Experimental::ROCm> >(thread, count); -} - -template <typename iType> -KOKKOS_INLINE_FUNCTION Impl::ThreadVectorRangeBoundariesStruct< - iType, Impl::TaskExec<Kokkos::Experimental::ROCm> > -ThreadVectorRange(Impl::TaskExec<Kokkos::Experimental::ROCm>& thread, - const iType& arg_begin, const iType& arg_end) { - return Impl::ThreadVectorRangeBoundariesStruct< - iType, Impl::TaskExec<Kokkos::Experimental::ROCm> >(thread, arg_begin, - arg_end); -} - -/** \brief Inter-thread parallel_for. Executes lambda(iType i) for each - * i=0..N-1. - * - * The range i=0..N-1 is mapped to all threads of the the calling thread team. - * This functionality requires C++11 support. - */ -template <typename iType, class Lambda> -KOKKOS_INLINE_FUNCTION void parallel_for( - const Impl::TeamThreadRangeBoundariesStruct< - iType, Impl::TaskExec<Kokkos::Experimental::ROCm> >& loop_boundaries, - const Lambda& lambda) { - for (iType i = loop_boundaries.start; i < loop_boundaries.end; - i += loop_boundaries.increment) { - lambda(i); - } -} - -// reduce across corresponding lanes between team members within workgroup -// assume stride*team_size == workgroup_size -template <typename ValueType> -KOKKOS_INLINE_FUNCTION void strided_shfl_workgroup_reduction( - const ValueType& f(), ValueType& val, int team_size, int stride) { - for (int lane_delta = (team_size * stride) >> 1; lane_delta >= stride; - lane_delta >>= 1) { - f(val, Kokkos::shfl_down(val, lane_delta, team_size * stride)); - } -} - -template <typename ValueType, class JoinType> -KOKKOS_INLINE_FUNCTION void strided_shfl_workgroup_reduction( - const JoinType& join, ValueType& val, int team_size, int stride) { - for (int lane_delta = (team_size * stride) >> 1; lane_delta >= stride; - lane_delta >>= 1) { - join(val, shfl_down(val, lane_delta, team_size * stride)); - } -} - -// multiple within-workgroup non-strided reductions -template <typename ValueType, class JoinType> -KOKKOS_INLINE_FUNCTION void multi_shfl_workgroup_reduction(const JoinType& join, - ValueType& val, - int vec_length) { - for (int lane_delta = vec_length >> 1; lane_delta; lane_delta >>= 1) { - join(val, shfl_down(val, lane_delta, vec_length)); - } -} - -// broadcast within workgroup -template <class ValueType> -KOKKOS_INLINE_FUNCTION ValueType shfl_workgroup_broadcast(ValueType& val, - int src_lane, - int width) { - return shfl(val, src_lane, width); -} - -// all-reduce across corresponding vector lanes between team members within -// workgroup assume vec_length*team_size == workgroup_size blockDim.x == -// vec_length == stride blockDim.y == team_size threadIdx.x == position in vec -// threadIdx.y == member number - -template <typename iType, class Lambda, typename ValueType> -KOKKOS_INLINE_FUNCTION void parallel_reduce( - const Impl::TeamThreadRangeBoundariesStruct< - iType, Impl::TaskExec<Kokkos::Experimental::ROCm> >& loop_boundaries, - const Lambda& lambda, ValueType& initialized_result) { - int team_rank = - loop_boundaries.thread.team_rank(); // member num within the team - ValueType result = initialized_result; - hc::tiled_index<3> idx = loop_boundaries.thread.idx(); - - for (iType i = loop_boundaries.start; i < loop_boundaries.end; - i += loop_boundaries.increment) { - lambda(i, result); - } - initialized_result = result; - - strided_shfl_workgroup_reduction( - [&](ValueType& val1, const ValueType& val2) { val1 += val2; }, - initialized_result, loop_boundaries.thread.team_size(), idx.tile_dim[0]); - initialized_result = shfl_workgroup_broadcast<ValueType>( - initialized_result, idx.local[0], Impl::ROCmTraits::WavefrontSize); -} - -template <typename iType, class Lambda, typename ValueType, class JoinType> -KOKKOS_INLINE_FUNCTION void parallel_reduce( - const Impl::TeamThreadRangeBoundariesStruct< - iType, Impl::TaskExec<Kokkos::Experimental::ROCm> >& loop_boundaries, - const Lambda& lambda, const JoinType& join, ValueType& initialized_result) { - hc::tiled_index<3> idx = loop_boundaries.thread.idx(); - int team_rank = - loop_boundaries.thread.team_rank(); // member num within the team - ValueType result = initialized_result; - - for (iType i = loop_boundaries.start; i < loop_boundaries.end; - i += loop_boundaries.increment) { - lambda(i, result); - } - - strided_shfl_workgroup_reduction<ValueType, JoinType>( - join, initialized_result, loop_boundaries.thread.team_size(), - idx.tile_dim[0]); - initialized_result = shfl_workgroup_broadcast<ValueType>( - initialized_result, idx.local[0], Impl::ROCmTraits::WavefrontSize); -} - -// placeholder for future function -template <typename iType, class Lambda, typename ValueType> -KOKKOS_INLINE_FUNCTION void parallel_reduce( - const Impl::ThreadVectorRangeBoundariesStruct< - iType, Impl::TaskExec<Kokkos::Experimental::ROCm> >& loop_boundaries, - const Lambda& lambda, ValueType& initialized_result) { - ValueType result = initialized_result; - hc::tiled_index<3> idx = loop_boundaries.thread.idx(); - - for (iType i = loop_boundaries.start; i < loop_boundaries.end; - i += loop_boundaries.increment) { - lambda(i, result); - } - - initialized_result = result; - - // initialized_result = multi_shfl_workgroup_reduction( - multi_shfl_workgroup_reduction( - [&](ValueType& val1, const ValueType& val2) { val1 += val2; }, - initialized_result, idx.tile_dim[0]); - initialized_result = shfl_workgroup_broadcast<ValueType>(initialized_result, - 0, idx.tile_dim[0]); -} - -// placeholder for future function -template <typename iType, class Lambda, typename ValueType, class JoinType> -KOKKOS_INLINE_FUNCTION void parallel_reduce( - const Impl::ThreadVectorRangeBoundariesStruct< - iType, Impl::TaskExec<Kokkos::Experimental::ROCm> >& loop_boundaries, - const Lambda& lambda, const JoinType& join, ValueType& initialized_result) { - hc::tiled_index<3> idx = loop_boundaries.thread.idx(); - ValueType result = initialized_result; - for (iType i = loop_boundaries.start; i < loop_boundaries.end; - i += loop_boundaries.increment) { - lambda(i, result); - } - initialized_result = result; - - multi_shfl_workgroup_reduction<ValueType, JoinType>(join, initialized_result, - idx.tile_dim[0]); - initialized_result = shfl_workgroup_broadcast<ValueType>(initialized_result, - 0, idx.tile_dim[0]); -} - -template <typename ValueType, typename iType, class Lambda> -KOKKOS_INLINE_FUNCTION void parallel_scan( - const Impl::TeamThreadRangeBoundariesStruct< - iType, Impl::TaskExec<Kokkos::Experimental::ROCm> >& loop_boundaries, - const Lambda& lambda) { - hc::tiled_index<3> idx = loop_boundaries.thread.idx(); - ValueType accum = 0; - ValueType val, y, local_total; - - for (iType i = loop_boundaries.start; i < loop_boundaries.end; - i += loop_boundaries.increment) { - val = 0; - lambda(i, val, false); - - // intra-idx.tile_dim[0] exclusive scan on 'val' - // accum = accumulated, sum in total for this iteration - - // INCLUSIVE scan - for (int offset = idx.tile_dim[0]; offset < Impl::ROCmTraits::WavefrontSize; - offset <<= 1) { - y = shfl_up(val, offset, Impl::ROCmTraits::WavefrontSize); - if (idx.local[1] * idx.tile_dim[0] >= offset) { - val += y; - } - } - - // pass accum to all threads - local_total = shfl_workgroup_broadcast<ValueType>( - val, idx.local[0] + Impl::ROCmTraits::WavefrontSize - idx.tile_dim[0], - Impl::ROCmTraits::WavefrontSize); - - // make EXCLUSIVE scan by shifting values over one - val = shfl_up(val, idx.tile_dim[0], Impl::ROCmTraits::WavefrontSize); - if (idx.local[1] == 0) { - val = 0; - } - - val += accum; - lambda(i, val, true); - accum += local_total; - } -} - -// placeholder for future function -template <typename iType, class Lambda, typename ValueType> -KOKKOS_INLINE_FUNCTION void parallel_scan( - const Impl::ThreadVectorRangeBoundariesStruct< - iType, Impl::TaskExec<Kokkos::Experimental::ROCm> >& loop_boundaries, - const Lambda& lambda) { - hc::tiled_index<3> idx = loop_boundaries.thread.idx(); - ValueType accum = 0; - ValueType val, y, local_total; - - for (iType i = loop_boundaries.start; i < loop_boundaries.end; - i += loop_boundaries.increment) { - val = 0; - lambda(i, val, false); - - // intra-idx.tile_dim[0] exclusive scan on 'val' - // accum = accumulated, sum in total for this iteration - - // INCLUSIVE scan - for (int offset = 1; offset < idx.tile_dim[0]; offset <<= 1) { - y = shfl_up(val, offset, idx.tile_dim[0]); - if (idx.local[0] >= offset) { - val += y; - } - } - - // pass accum to all threads - local_total = shfl_workgroup_broadcast<ValueType>(val, idx.tile_dim[0] - 1, - idx.tile_dim[0]); - - // make EXCLUSIVE scan by shifting values over one - val = shfl_up(val, 1, idx.tile_dim[0]); - if (idx.local[0] == 0) { - val = 0; - } - - val += accum; - lambda(i, val, true); - accum += local_total; - } -} - -} /* namespace Kokkos */ -//---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- - -#endif /* #if defined( KOKKOS_ENABLE_TASKDAG ) */ -#endif /* #ifndef KOKKOS_IMPL_ROCM_TASK_HPP */ diff --git a/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Tile.hpp b/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Tile.hpp deleted file mode 100644 index 3d80b4d44..000000000 --- a/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Tile.hpp +++ /dev/null @@ -1,452 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hc.hpp> -#include <type_traits> -#include <vector> -#include <memory> -#include <ROCm/Kokkos_ROCm_Config.hpp> - -#if !defined(KOKKOS_ROCM_TILE_H) -#define KOKKOS_ROCM_TILE_H - -// Macro to abstract out the enable_if craziness -#define KOKKOS_ROCM_REQUIRES(...) \ - bool KokkosROCmRequiresBool##__LINE__ = true, \ - typename std::enable_if < KokkosROCmRequiresBool##__LINE__ && \ - (__VA_ARGS__), \ - int > ::type = 0 - -// This number uniquely identifies the 1.5 release build. -#if __hcc_workweek__ > 17160 -#define ROCM15 1 -#endif - -namespace Kokkos { -namespace Impl { - -template <class T> - -#if defined(ROCM15) -using lds_t = T; -#else -// prior to 1.5, needed to decorate LDS addresses -using lds_t = __attribute__((address_space(3))) T; -#endif - -#define KOKKOS_ROCM_TILE_RESTRIC_CPU restrict(cpu, amp) - -// a set of routines to the replace the std::routines -// that will operate on address space 3 types - -#if defined(ROCM15) -// 1.5 can't use std::copy et al for LDS access, so we define our own -// set of routines -template <class I, class O> -void rcopy(I first, I last, O out) [[hc]] { - while (first != last) *out++ = *first++; -} -template <class I, class F> -void rfor_each(I first, I last, F f) [[hc]] { - for (; first != last; ++first) f(*first); -} - -template <class I, class O, class F> -void rtransform(I first, I last, O out, F f) [[hc]] { - while (first != last) *out++ = f(*first++); -} -#endif - -inline std::size_t get_max_tile_size() KOKKOS_ROCM_TILE_RESTRIC_CPU { - return hc::accelerator().get_max_tile_static_size() - 1024; -} - -inline std::size_t get_max_tile_thread() KOKKOS_ROCM_TILE_RESTRIC_CPU { - return 64; -} - -inline int next_pow_2(int x) restrict(cpu, amp) { - --x; - x |= x >> 1; - x |= x >> 2; - x |= x >> 4; - x |= x >> 8; - x |= x >> 16; - return x + 1; -} - -template <class T> -inline std::size_t get_tile_size(std::size_t n = 1, std::size_t team = 64, - std::size_t vector = 1) - KOKKOS_ROCM_TILE_RESTRIC_CPU { - return team * vector; - /* - const auto size = sizeof(T) * n; - const auto group_size = get_max_tile_size(); - if (size == 0 || size > group_size) return 0; - // Assume that thread size is a power of 2 - auto thread_size = std::min(team*vector,4*get_max_tile_thread()); - // ensure that we have enough tile static memory to keep - // threadsize * size elements for reductions - while(size > (group_size / thread_size) && thread_size > 2) - { thread_size /= 2;} - return thread_size; - */ -} - -template <class T> -struct array_view { - T* x; - std::size_t n; - - array_view(T* xp, std::size_t np) [[hc]] [[cpu]] : x(xp), n(np) {} - - array_view(T* xp, T* yp) [[hc]] [[cpu]] : x(xp), n(yp - xp) {} - - T& operator[](std::size_t i) const [[hc]] [[cpu]] { return x[i]; } - - std::size_t size() const [[hc]] [[cpu]] { return this->n; } - - T* data() const [[hc]] [[cpu]] { return x; } - - T* begin() const [[hc]] [[cpu]] { return x; } - - T* end() const [[hc]] [[cpu]] { return x + this->size(); } -}; - -template <class T> -struct rocm_char { - using type = char; -}; - -template <class T> -struct rocm_char<const T> : std::add_const<typename rocm_char<T>::type> {}; -#if !defined(ROCM15) -// earlier compilers required explicit address space decorations -template <class T> -struct rocm_char<__attribute__((address_space(3))) T> { - using type = __attribute__((address_space(3))) typename rocm_char<T>::type; -}; - -template <class T> -struct rocm_char<const __attribute__((address_space(3))) T> { - using type = - const __attribute__((address_space(3))) typename rocm_char<T>::type; -}; -#endif - -template <class T, class Char = typename rocm_char<T>::type> -Char* rocm_byte_cast(T& x) restrict(cpu, amp) { - return reinterpret_cast<Char*>(&x); -} - -template <class T, class U> -void rocm_raw_assign(T& x, const U& y) restrict(cpu, amp) { - auto* src = rocm_byte_cast(y); - auto* dest = rocm_byte_cast(x); -#if defined(ROCM15) - rcopy(src, src + sizeof(T), dest); -#else - std::copy(src, src + sizeof(T), dest); -#endif -} - -template <class T, class U> -void rocm_assign_impl(T& x, const U& y, std::true_type) restrict(cpu, amp) { - rocm_raw_assign(x, y); -} - -template <class T, class U> -void rocm_assign_impl(T& x, const U& y, std::false_type) restrict(cpu, amp) { - x = y; -} - -// Workaround for assigning in and out of LDS memory -template <class T, class U> -void rocm_assign(T& x, const U& y) restrict(cpu, amp) { - rocm_assign_impl(x, y, - std::integral_constant<bool, (sizeof(T) == sizeof(U))>()); -} - -// Compute the address space of tile -template <class T> -struct tile_type { -#if defined(ROCM15) - typedef T type; -#else - typedef __attribute__((address_space(3))) T type; -#endif -}; - -#if !defined(ROCM15) -template <class T, class Body> -void lds_for(__attribute__((address_space(3))) T& value, Body b) [[hc]] { - T state = value; - b(state); - value = state; -} -#endif - -template <class T, class Body> -void lds_for(T& value, Body b) [[hc]] { - b(value); -} - -constexpr std::size_t get_max_tile_array_size() { return 24; } - -template <class Derived, class T> -struct single_action { - template <class Action> - void action_at(std::size_t i, Action a) [[hc]] { - auto& value = static_cast<Derived&>(*this)[i]; -#ifdef KOKKOS_IMPL_ROCM_CLANG_WORKAROUND - T state = value; - a(state); - value = state; -#else - a(value); -#endif - } - - template <class Action> - void action_at(std::size_t i, std::size_t j, Action a) [[hc]] { - static_cast<Derived&>(*this).action_at(i, [&](T& x) { - static_cast<Derived&>(*this).action_at(j, [&](T& y) { a(x, y); }); - }); - } -}; - -template <class T> -struct tile_buffer : array_view<typename tile_type<T>::type>, - single_action<tile_buffer<T>, T> { - typedef typename tile_type<T>::type element_type; - typedef array_view<element_type> base; - - using base::base; - - tile_buffer(element_type* xp, std::size_t np, std::size_t) [[hc]] [[cpu]] - : base(xp, np) {} - - tile_buffer(T* xp, T* yp, std::size_t) [[hc]] [[cpu]] : base(xp, yp) {} -}; - -template <class T> -struct tile_buffer<T[]> { - typedef typename tile_type<T>::type element_type; - typedef typename tile_type<char>::type tchar_type; - element_type* element_data; - std::size_t n, m; - - tile_buffer(element_type* xp, std::size_t np, std::size_t mp) [[hc]] [[cpu]] - : element_data(xp), - n(np), - m(mp) {} - - tile_buffer(element_type* xp, element_type* yp, std::size_t mp) [[hc]] [[cpu]] - : element_data(xp), - n(yp - xp), - m(mp) {} - - element_type* operator[](std::size_t i) const [[hc]] [[cpu]] { - return element_data + i * m; - } - - template <class Action, class Q = T> - typename std::enable_if<(sizeof(Q) <= 8), void>::type action_at(std::size_t i, - Action a) - [[hc]] { - element_type* value = (*this)[i]; -#if defined(ROCM15) - a(value); -#else -#ifdef KOKKOS_IMPL_ROCM_CLANG_WORKAROUND - if (m > get_max_tile_array_size()) return; - T state[get_max_tile_array_size()]; - // std::copy(value, value+m, state); - // Workaround for assigning from LDS memory - std::transform(value, value + m, state, [](element_type& x) { - T result; - rocm_assign(result, x); - return result; - }); - a(state); - std::copy(state, state + m, value); -#endif -#endif - } - - template <class Action, class Q = T> - typename std::enable_if<!(sizeof(Q) <= 8), void>::type action_at( - std::size_t i, Action a) [[hc]] { - element_type* value = (*this)[i]; -#if defined(ROCM15) - a(value); -#else - if (m > get_max_tile_array_size()) return; - T state[get_max_tile_array_size()]; - // std::copy(value, value+m, state); - // Workaround for assigning from LDS memory - std::transform(value, value + m, state, [](element_type& x) { - T result; - rocm_assign(result, x); - return result; - }); - a(state); - // this workaround required when T is greater than 8 bytes - tile_static char tv[64 * sizeof(T)]; - size_t sT = sizeof(T); - for (int j = 0; j < sT; j++) tv[i * sT + j] = ((char*)state)[j]; - for (int j = 0; j < sT; j++) ((tchar_type*)value)[j] = tv[i * sT + j]; -#endif - } - - template <class Action> - void action_at(std::size_t i, std::size_t j, Action a) [[hc]] { - this->action_at(i, - [&](T* x) { this->action_at(j, [&](T* y) { a(x, y); }); }); - } - - std::size_t size() const [[hc]] [[cpu]] { return this->n; } - - element_type* data() const [[hc]] [[cpu]] { return element_data; } -}; - -// Zero initialize LDS memory -struct zero_init_f { - template <class T> -#if defined(ROCM15) - void operator()(T& x, std::size_t = 1) const [[hc]] { - auto* start = reinterpret_cast<char*>(&x); - for (int i = 0; i < sizeof(T); i++) start[i] = 0; - rocm_raw_assign(x, T()); - } -#else - void operator()(__attribute__((address_space(3))) T& x, std::size_t = 1) const - [[hc]] { - auto* start = reinterpret_cast<__attribute__((address_space(3))) char*>(&x); - std::fill(start, start + sizeof(T), 0); - rocm_raw_assign(x, T()); - } -#endif - - template <class T> -#if defined(ROCM15) - void operator()(T* x, std::size_t size) const [[hc]] { - rfor_each(x, x + size, *this); - } -#else - void operator()(__attribute__((address_space(3))) T* x, - std::size_t size) const [[hc]] { - std::for_each(x, x + size, *this); - } -#endif -}; - -static constexpr zero_init_f zero_init = {}; - -struct tile_desc { - // Number of work items, or size of extent - std::size_t elements; - // number of threads in team - std::size_t team_size; - // vector length of team - std::size_t vector_length; - // Size of tile - std::size_t tile_size; - // Size of array - std::size_t array_size; - // Number of tiles - std::size_t num_tiles; - // Per team reserved LDS memory, used for reduction - std::size_t reduce_size; - // Per team shared memory in LDS, this in addition to reduce shared mem - std::size_t shared_size; - std::size_t size; -}; - -template <class T> -tile_desc get_tile_desc(std::size_t size, std::size_t array_size = 1, - std::size_t team_size = 64, std::size_t vector_size = 1, - std::size_t shared_size = 0) { - tile_desc result; - result.elements = size; - result.array_size = array_size; - result.vector_length = vector_size; - result.team_size = team_size; - result.tile_size = get_tile_size<T>(array_size, team_size, vector_size); - result.num_tiles = std::ceil(1.0 * size / result.tile_size); - result.reduce_size = result.tile_size * sizeof(T) * array_size; - result.shared_size = shared_size; - result.size = result.tile_size * result.num_tiles; - - return result; -} - -template <class U, class F, class T = typename std::remove_extent<U>::type> -hc::completion_future tile_for(tile_desc td, F f) { - assert(td.array_size <= get_max_tile_array_size() && "Exceed max array size"); - assert(((td.size % td.tile_size) == 0) && - "Tile size must be divisible by extent"); - auto grid = hc::extent<1>(td.size).tile_with_dynamic( - td.tile_size, td.reduce_size + td.shared_size); - // grid.set_dynamic_group_segment_size(td.reduce_size + td.shared_size); - return parallel_for_each( - grid, [=](hc::tiled_index<1> t_idx) [[hc]] { -#if defined(ROCM15) - typedef T group_t; -#else - typedef __attribute__((address_space(3))) T group_t; -#endif - group_t* buffer = - (group_t*)hc::get_dynamic_group_segment_base_pointer(); - tile_buffer<U> tb(buffer, td.tile_size, td.array_size); - zero_init(tb[t_idx.local[0]], td.array_size); - f(t_idx, tb); - }); -} - -} // namespace Impl -} // namespace Kokkos - -#endif diff --git a/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Vectorization.hpp b/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Vectorization.hpp deleted file mode 100644 index ae52f8da3..000000000 --- a/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Vectorization.hpp +++ /dev/null @@ -1,350 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ -#ifndef KOKKOS_ROCM_VECTORIZATION_HPP -#define KOKKOS_ROCM_VECTORIZATION_HPP - -#include <Kokkos_Macros.hpp> - -/* only compile this file if ROCM is enabled for Kokkos */ -#ifdef KOKKOS_ENABLE_ROCM - -#include <Kokkos_ROCm.hpp> - -namespace Kokkos { -using namespace hc; - -// Shuffle only makes sense on >= Fiji GPUs; it doesn't work on CPUs -// or other GPUs. We provide a generic definition (which is trivial -// and doesn't do what it claims to do) because we don't actually use -// this function unless we are on a suitable GPU, with a suitable -// Scalar type. (For example, in the mat-vec, the "ThreadsPerRow" -// internal parameter depends both on the ExecutionSpace and the Scalar type, -// and it controls whether shfl_down() gets called.) -namespace Impl { - -template <typename Scalar> -struct shfl_union { - enum { n = sizeof(Scalar) / 4 }; - float fval[n]; - KOKKOS_INLINE_FUNCTION - Scalar value() { return *(Scalar*)fval; } - KOKKOS_INLINE_FUNCTION - void operator=(Scalar& value_) { - float* const val_ptr = (float*)&value_; - for (int i = 0; i < n; i++) { - fval[i] = val_ptr[i]; - } - } - KOKKOS_INLINE_FUNCTION - void operator=(const Scalar& value_) { - float* const val_ptr = (float*)&value_; - for (int i = 0; i < n; i++) { - fval[i] = val_ptr[i]; - } - } -}; -} // namespace Impl - -#ifdef __HCC_ACCELERATOR__ - -KOKKOS_INLINE_FUNCTION -int __long2loint(const long val) { - union { - long l; - int i[2]; - } u; - u.l = val; - return u.i[0]; -} - -KOKKOS_INLINE_FUNCTION -int __long2hiint(const long val) { - union { - long l; - int i[2]; - } u; - u.l = val; - return u.i[1]; -} - -KOKKOS_INLINE_FUNCTION -int __double2loint(const double val) { - union { - double d; - int i[2]; - } u; - u.d = val; - return u.i[0]; -} - -KOKKOS_INLINE_FUNCTION -int __double2hiint(const double val) { - union { - double d; - int i[2]; - } u; - u.d = val; - return u.i[1]; -} - -KOKKOS_INLINE_FUNCTION -long __hiloint2long(const int hi, const int lo) { - union { - long l; - int i[2]; - } u; - u.i[0] = lo; - u.i[1] = hi; - return u.l; -} - -KOKKOS_INLINE_FUNCTION -double __hiloint2double(const int hi, const int lo) { - union { - double d; - int i[2]; - } u; - u.i[0] = lo; - u.i[1] = hi; - return u.d; -} - -KOKKOS_INLINE_FUNCTION -int shfl(const int& val, const int& srcLane, const int& width) { - return __shfl(val, srcLane, width); -} - -KOKKOS_INLINE_FUNCTION -float shfl(const float& val, const int& srcLane, const int& width) { - return __shfl(val, srcLane, width); -} - -template <typename Scalar> -KOKKOS_INLINE_FUNCTION Scalar -shfl(const Scalar& val, const int& srcLane, - const typename std::enable_if<(sizeof(Scalar) == 4), int>::type& width) { - Scalar tmp1 = val; - float tmp = *reinterpret_cast<float*>(&tmp1); - tmp = __shfl(tmp, srcLane, width); - return *reinterpret_cast<Scalar*>(&tmp); -} - -KOKKOS_INLINE_FUNCTION -double shfl(const double& val, const int& srcLane, const int& width) { - int lo = __double2loint(val); - int hi = __double2hiint(val); - lo = __shfl(lo, srcLane, width); - hi = __shfl(hi, srcLane, width); - return __hiloint2double(hi, lo); -} - -template <typename Scalar> -KOKKOS_INLINE_FUNCTION Scalar -shfl(const Scalar& val, const int& srcLane, - const typename std::enable_if<(sizeof(Scalar) == 8), int>::type& width) { - int lo = __double2loint(*reinterpret_cast<const double*>(&val)); - int hi = __double2hiint(*reinterpret_cast<const double*>(&val)); - lo = __shfl(lo, srcLane, width); - hi = __shfl(hi, srcLane, width); - const double tmp = __hiloint2double(hi, lo); - return *(reinterpret_cast<const Scalar*>(&tmp)); -} - -template <typename Scalar> -KOKKOS_INLINE_FUNCTION Scalar -shfl(const Scalar& val, const int& srcLane, - const typename std::enable_if<(sizeof(Scalar) > 8), int>::type& width) { - Impl::shfl_union<Scalar> s_val; - Impl::shfl_union<Scalar> r_val; - s_val = val; - - for (int i = 0; i < s_val.n; i++) - r_val.fval[i] = __shfl(s_val.fval[i], srcLane, width); - return r_val.value(); -} - -KOKKOS_INLINE_FUNCTION -int shfl_down(const int& val, const int& delta, const int& width) { - return __shfl_down(val, delta, width); -} - -KOKKOS_INLINE_FUNCTION -float shfl_down(const float& val, const int& delta, const int& width) { - return __shfl_down(val, delta, width); -} - -template <typename Scalar> -KOKKOS_INLINE_FUNCTION Scalar shfl_down( - const Scalar& val, const int& delta, - const typename std::enable_if<(sizeof(Scalar) == 4), int>::type& width) { - Scalar tmp1 = val; - float tmp = *reinterpret_cast<float*>(&tmp1); - tmp = __shfl_down(tmp, delta, width); - return *reinterpret_cast<Scalar*>(&tmp); -} - -KOKKOS_INLINE_FUNCTION -long shfl_down(const long& val, const int& delta, const int& width) { - int lo = __long2loint(val); - int hi = __long2hiint(val); - lo = __shfl_down(lo, delta, width); - hi = __shfl_down(hi, delta, width); - return __hiloint2long(hi, lo); -} - -KOKKOS_INLINE_FUNCTION -double shfl_down(const double& val, const int& delta, const int& width) { - int lo = __double2loint(val); - int hi = __double2hiint(val); - lo = __shfl_down(lo, delta, width); - hi = __shfl_down(hi, delta, width); - return __hiloint2double(hi, lo); -} - -template <typename Scalar> -KOKKOS_INLINE_FUNCTION Scalar shfl_down( - const Scalar& val, const int& delta, - const typename std::enable_if<(sizeof(Scalar) == 8), int>::type& width) { - int lo = __double2loint(*reinterpret_cast<const double*>(&val)); - int hi = __double2hiint(*reinterpret_cast<const double*>(&val)); - lo = __shfl_down(lo, delta, width); - hi = __shfl_down(hi, delta, width); - const double tmp = __hiloint2double(hi, lo); - return *(reinterpret_cast<const Scalar*>(&tmp)); -} - -template <typename Scalar> -KOKKOS_INLINE_FUNCTION Scalar shfl_down( - const Scalar& val, const int& delta, - const typename std::enable_if<(sizeof(Scalar) > 8), int>::type& width) { - Impl::shfl_union<Scalar> s_val; - Impl::shfl_union<Scalar> r_val; - s_val = val; - - for (int i = 0; i < s_val.n; i++) - r_val.fval[i] = __shfl_down(s_val.fval[i], delta, width); - return r_val.value(); -} - -KOKKOS_INLINE_FUNCTION -int shfl_up(const int& val, const int& delta, const int& width) { - return __shfl_up(val, delta, width); -} - -KOKKOS_INLINE_FUNCTION -float shfl_up(const float& val, const int& delta, const int& width) { - return __shfl_up(val, delta, width); -} - -template <typename Scalar> -KOKKOS_INLINE_FUNCTION Scalar shfl_up( - const Scalar& val, const int& delta, - const typename std::enable_if<(sizeof(Scalar) == 4), int>::type& width) { - Scalar tmp1 = val; - float tmp = *reinterpret_cast<float*>(&tmp1); - tmp = __shfl_up(tmp, delta, width); - return *reinterpret_cast<Scalar*>(&tmp); -} - -KOKKOS_INLINE_FUNCTION -double shfl_up(const double& val, const int& delta, const int& width) { - int lo = __double2loint(val); - int hi = __double2hiint(val); - lo = __shfl_up(lo, delta, width); - hi = __shfl_up(hi, delta, width); - return __hiloint2double(hi, lo); -} - -template <typename Scalar> -KOKKOS_INLINE_FUNCTION Scalar shfl_up( - const Scalar& val, const int& delta, - const typename std::enable_if<(sizeof(Scalar) == 8), int>::type& width) { - int lo = __double2loint(*reinterpret_cast<const double*>(&val)); - int hi = __double2hiint(*reinterpret_cast<const double*>(&val)); - lo = __shfl_up(lo, delta, width); - hi = __shfl_up(hi, delta, width); - const double tmp = __hiloint2double(hi, lo); - return *(reinterpret_cast<const Scalar*>(&tmp)); -} - -template <typename Scalar> -KOKKOS_INLINE_FUNCTION Scalar -shfl_up(const Scalar& val, const int& delta, - const typename std::enable_if<(sizeof(Scalar) > 8), int>::type& width) { - Impl::shfl_union<Scalar> s_val; - Impl::shfl_union<Scalar> r_val; - s_val = val; - - for (int i = 0; i < s_val.n; i++) - r_val.fval[i] = __shfl_up(s_val.fval[i], delta, width); - return r_val.value(); -} - -#else -template <typename Scalar> -inline Scalar shfl(const Scalar& val, const int& srcLane, const int& width) { - if (width > 1) - Kokkos::abort("Error: calling shfl from a device with CC<8.0."); - return val; -} - -template <typename Scalar> -inline Scalar shfl_down(const Scalar& val, const int& delta, const int& width) { - if (width > 1) - Kokkos::abort("Error: calling shfl_down from a device with CC<8.0."); - return val; -} - -template <typename Scalar> -inline Scalar shfl_up(const Scalar& val, const int& delta, const int& width) { - if (width > 1) - Kokkos::abort("Error: calling shfl_down from a device with CC<8.0."); - return val; -} -#endif - -} // namespace Kokkos - -#endif // KOKKOS_ENABLE_ROCM -#endif diff --git a/packages/kokkos/core/src/ROCm/hc_math_std.hpp b/packages/kokkos/core/src/ROCm/hc_math_std.hpp deleted file mode 100644 index b63750713..000000000 --- a/packages/kokkos/core/src/ROCm/hc_math_std.hpp +++ /dev/null @@ -1,371 +0,0 @@ -#pragma once - -#include "hc.hpp" -#include <cmath> - -// Math functions with integer overloads will be converted to -// this floating point type. -#define HC_IMPLICIT_FLOAT_CONV double - -#ifdef __KALMAR_ACCELERATOR__ - -#define HC_MATH_WRAPPER_1(function, arg1) \ - template <typename T> \ - inline T function(T arg1) __attribute__((hc, cpu)) { \ - return hc::precise_math::function(arg1); \ - } - -#define KALMAR_MATH_WRAPPER_1(function, arg1) HC_MATH_WRAPPER_1(function, arg1) - -#define HC_MATH_WRAPPER_FP_OVERLOAD_1(function, arg1) \ - template <typename T> \ - inline typename std::enable_if<std::is_integral<T>::value, \ - HC_IMPLICIT_FLOAT_CONV>::type \ - function(T arg1) __attribute__((hc, cpu)) { \ - return hc::precise_math::function( \ - static_cast<HC_IMPLICIT_FLOAT_CONV>(arg1)); \ - } \ - template <typename T> \ - inline typename std::enable_if<std::is_floating_point<T>::value, T>::type \ - function(T arg1) __attribute__((hc, cpu)) { \ - return hc::precise_math::function(arg1); \ - } - -#define KALMAR_MATH_WRAPPER_FP_OVERLOAD_1(function, arg1) \ - HC_MATH_WRAPPER_FP_OVERLOAD_1(function, arg1) - -#define HC_MATH_WRAPPER_2(function, arg1, arg2) \ - template <typename T> \ - inline T function(T arg1, T arg2) __attribute__((hc, cpu)) { \ - return hc::precise_math::function(arg1, arg2); \ - } - -#define HC_MATH_ALIAS_2(alias, function, arg1, arg2) \ - template <typename T> \ - inline T alias(T arg1, T arg2) __attribute__((hc, cpu)) { \ - return hc::precise_math::function(arg1, arg2); \ - } - -#define HC_MATH_WRAPPER_3(function, arg1, arg2, arg3) \ - template <typename T> \ - inline T function(T arg1, T arg2, T arg3) __attribute__((hc, cpu)) { \ - return hc::precise_math::function(arg1, arg2, arg3); \ - } - -#define HC_MATH_WRAPPER_TQ(function, arg1) \ - template <typename T, typename Q> \ - inline T function(Q arg1) __attribute__((hc, cpu)) { \ - return hc::precise_math::function(arg1); \ - } - -#define HC_MATH_WRAPPER_FP_OVERLOAD_TQ(function, T, arg1) \ - template <typename Q> \ - inline typename std::enable_if<std::is_integral<Q>::value, T>::type \ - function(Q arg1) __attribute__((hc, cpu)) { \ - return hc::precise_math::function( \ - static_cast<HC_IMPLICIT_FLOAT_CONV>(arg1)); \ - } \ - template <typename Q> \ - inline typename std::enable_if<std::is_floating_point<Q>::value, T>::type \ - function(Q arg1) __attribute__((hc, cpu)) { \ - return hc::precise_math::function(arg1); \ - } - -#define HC_MATH_WRAPPER_TTQ(function, arg1, arg2) \ - template <typename T, typename Q> \ - inline T function(T arg1, Q arg2) __attribute__((hc, cpu)) { \ - return hc::precise_math::function(arg1, arg2); \ - } - -#define HC_MATH_WRAPPER_FP_OVERLOAD_TTQ(function, arg1, arg2) \ - template <typename T, typename Q> \ - inline typename std::enable_if<std::is_integral<T>::value || \ - std::is_integral<Q>::value, \ - HC_IMPLICIT_FLOAT_CONV>::type \ - function(T arg1, Q arg2) __attribute__((hc, cpu)) { \ - return hc::precise_math::function( \ - static_cast<HC_IMPLICIT_FLOAT_CONV>(arg1), \ - static_cast<HC_IMPLICIT_FLOAT_CONV>(arg2)); \ - } \ - template <typename T, typename Q> \ - inline typename std::enable_if<std::is_floating_point<T>::value && \ - std::is_floating_point<Q>::value, \ - T>::type \ - function(T arg1, Q arg2) __attribute__((hc, cpu)) { \ - return hc::precise_math::function(arg1, arg2); \ - } - -#define HC_MATH_WRAPPER_TTTQ(function, arg1, arg2, arg3) \ - template <typename T, typename Q> \ - inline T function(T arg1, T arg2, Q arg3) __attribute__((hc, cpu)) { \ - return hc::precise_math::function(arg1, arg2, arg3); \ - } - -#define HC_MATH_WRAPPER_VTQQ(function, arg1, arg2, arg3) \ - template <typename T, typename Q> \ - inline void function(T arg1, Q arg2, Q arg3) __attribute__((hc, cpu)) { \ - hc::precise_math::function(arg1, arg2, arg3); \ - } - -#else - -#define HC_MATH_WRAPPER_1(function, arg1) \ - template <typename T> \ - inline T function(T arg1) __attribute__((hc, cpu)) { \ - return std::function(arg1); \ - } - -#define KALMAR_MATH_WRAPPER_1(function, arg1) \ - template <typename T> \ - inline T function(T arg1) __attribute__((hc, cpu)) { \ - return hc::precise_math::function(arg1); \ - } - -#define HC_MATH_WRAPPER_FP_OVERLOAD_1(function, arg1) \ - template <typename T> \ - inline typename std::enable_if<std::is_integral<T>::value, \ - HC_IMPLICIT_FLOAT_CONV>::type \ - function(T arg1) __attribute__((hc, cpu)) { \ - return ::function(static_cast<HC_IMPLICIT_FLOAT_CONV>(arg1)); \ - } \ - template <typename T> \ - inline typename std::enable_if<std::is_floating_point<T>::value, T>::type \ - function(T arg1) __attribute__((hc, cpu)) { \ - return std::function(arg1); \ - } - -#define KALMAR_MATH_WRAPPER_FP_OVERLOAD_1(function, arg1) \ - template <typename T> \ - inline typename std::enable_if<std::is_integral<T>::value, \ - HC_IMPLICIT_FLOAT_CONV>::type \ - function(T arg1) __attribute__((hc, cpu)) { \ - return hc::precise_math::function( \ - static_cast<HC_IMPLICIT_FLOAT_CONV>(arg1)); \ - } \ - template <typename T> \ - inline typename std::enable_if<std::is_floating_point<T>::value, T>::type \ - function(T arg1) __attribute__((hc, cpu)) { \ - return hc::precise_math::function(arg1); \ - } - -#define HC_MATH_WRAPPER_2(function, arg1, arg2) \ - template <typename T> \ - inline T function(T arg1, T arg2) __attribute__((hc, cpu)) { \ - return std::function(arg1, arg2); \ - } - -#define HC_MATH_ALIAS_2(alias, function, arg1, arg2) \ - template <typename T> \ - inline T alias(T arg1, T arg2) __attribute__((hc, cpu)) { \ - return std::function(arg1, arg2); \ - } - -#define HC_MATH_WRAPPER_3(function, arg1, arg2, arg3) \ - template <typename T> \ - inline T function(T arg1, T arg2, T arg3) __attribute__((hc, cpu)) { \ - return std::function(arg1, arg2, arg3); \ - } - -#define HC_MATH_WRAPPER_TQ(function, arg1) \ - template <typename T, typename Q> \ - inline T function(Q arg1) __attribute__((hc, cpu)) { \ - return std::function(arg1); \ - } - -#define HC_MATH_WRAPPER_FP_OVERLOAD_TQ(function, T, arg1) \ - template <typename Q> \ - inline typename std::enable_if<std::is_integral<Q>::value, T>::type \ - function(Q arg1) __attribute__((hc)) { \ - return std::function(static_cast<HC_IMPLICIT_FLOAT_CONV>(arg1)); \ - } \ - template <typename Q> \ - inline typename std::enable_if<std::is_floating_point<Q>::value, T>::type \ - function(Q arg1) __attribute__((hc)) { \ - return std::function(arg1); \ - } - -#define HC_MATH_WRAPPER_TTQ(function, arg1, arg2) \ - template <typename T, typename Q> \ - inline T function(T arg1, Q arg2) __attribute__((hc, cpu)) { \ - return std::function(arg1, arg2); \ - } - -#define HC_MATH_WRAPPER_FP_OVERLOAD_TTQ(function, arg1, arg2) \ - template <typename T, typename Q> \ - inline typename std::enable_if<std::is_integral<T>::value || \ - std::is_integral<Q>::value, \ - HC_IMPLICIT_FLOAT_CONV>::type \ - function(T arg1, Q arg2) __attribute__((hc, cpu)) { \ - return std::function(static_cast<HC_IMPLICIT_FLOAT_CONV>(arg1), \ - static_cast<HC_IMPLICIT_FLOAT_CONV>(arg2)); \ - } \ - template <typename T, typename Q> \ - inline typename std::enable_if<std::is_floating_point<T>::value && \ - std::is_floating_point<Q>::value, \ - T>::type \ - function(T arg1, Q arg2) __attribute__((hc, cpu)) { \ - return std::function(arg1, arg2); \ - } - -#define HC_MATH_WRAPPER_TTTQ(function, arg1, arg2, arg3) \ - template <typename T, typename Q> \ - inline T function(T arg1, T arg2, Q arg3) __attribute__((hc, cpu)) { \ - return std::function(arg1, arg2, arg3); \ - } - -#define HC_MATH_WRAPPER_VTQQ(function, arg1, arg2, arg3) \ - template <typename T, typename Q> \ - inline void function(T arg1, Q arg2, Q arg3) __attribute__((hc, cpu)) { \ - std::function(arg1, arg2, arg3); \ - } - -#endif - -// override global math functions -namespace std { - -// following math functions are NOT available because they don't have a GPU -// implementation -// -// erfinv -// erfcinv -// fpclassify -// -// following math functions are NOT available because they don't have a CPU -// implementation -// -// cospif -// cospi -// rsqrtf -// rsqrt -// sinpif -// sinpi -// tanpi -// - -HC_MATH_WRAPPER_TQ(ilogbf, x) -HC_MATH_WRAPPER_FP_OVERLOAD_TQ(ilogb, int, x) -HC_MATH_WRAPPER_FP_OVERLOAD_TQ(isfinite, bool, x) -HC_MATH_WRAPPER_FP_OVERLOAD_TQ(isinf, bool, x) -HC_MATH_WRAPPER_FP_OVERLOAD_TQ(isnan, bool, x) -HC_MATH_WRAPPER_FP_OVERLOAD_TQ(isnormal, bool, x) -HC_MATH_WRAPPER_TQ(nanf, tagp) -HC_MATH_WRAPPER_TQ(nan, tagp) -// HC_MATH_WRAPPER_TQ(signbitf, x) -HC_MATH_WRAPPER_TQ(signbit, x) -HC_MATH_WRAPPER_TTQ(frexpf, x, exp) -HC_MATH_WRAPPER_TTQ(frexp, x, exp) -HC_MATH_WRAPPER_TTQ(ldexpf, x, exp) -HC_MATH_WRAPPER_TTQ(ldexp, x, exp) -HC_MATH_WRAPPER_TTQ(lgammaf, x, exp) -HC_MATH_WRAPPER_TTQ(lgamma, x, exp) -HC_MATH_WRAPPER_TTQ(modff, x, exp) -HC_MATH_WRAPPER_TTQ(modf, x, exp) -HC_MATH_WRAPPER_TTQ(scalbnf, x, exp) -HC_MATH_WRAPPER_TTQ(scalbn, x, exp) -HC_MATH_WRAPPER_TTTQ(remquof, x, y, quo) -HC_MATH_WRAPPER_TTTQ(remquo, x, y, quo) -HC_MATH_WRAPPER_VTQQ(sincosf, x, s, c) -HC_MATH_WRAPPER_VTQQ(sincos, x, s, c) - -HC_MATH_WRAPPER_1(acosf, x) -HC_MATH_WRAPPER_FP_OVERLOAD_1(acos, x) -HC_MATH_WRAPPER_1(acoshf, x) -HC_MATH_WRAPPER_FP_OVERLOAD_1(acosh, x) -HC_MATH_WRAPPER_1(asinf, x) -HC_MATH_WRAPPER_FP_OVERLOAD_1(asin, x) -HC_MATH_WRAPPER_1(asinhf, x) -HC_MATH_WRAPPER_FP_OVERLOAD_1(asinh, x) -HC_MATH_WRAPPER_1(atanf, x) -HC_MATH_WRAPPER_FP_OVERLOAD_1(atan, x) -HC_MATH_WRAPPER_1(atanhf, x) -HC_MATH_WRAPPER_FP_OVERLOAD_1(atanh, x) -HC_MATH_WRAPPER_2(atan2f, x, y) -HC_MATH_WRAPPER_2(atan2, x, y) -HC_MATH_WRAPPER_1(cbrtf, x) -HC_MATH_WRAPPER_FP_OVERLOAD_1(cbrt, x) -HC_MATH_WRAPPER_1(ceilf, x) -HC_MATH_WRAPPER_FP_OVERLOAD_1(ceil, x) -HC_MATH_WRAPPER_2(copysignf, x, y) -HC_MATH_WRAPPER_2(copysign, x, y) -HC_MATH_WRAPPER_1(cosf, x) -HC_MATH_WRAPPER_FP_OVERLOAD_1(cos, x) -HC_MATH_WRAPPER_1(coshf, x) -HC_MATH_WRAPPER_FP_OVERLOAD_1(cosh, x) -KALMAR_MATH_WRAPPER_1(cospif, x) -KALMAR_MATH_WRAPPER_FP_OVERLOAD_1(cospi, x) -HC_MATH_WRAPPER_1(erff, x) -HC_MATH_WRAPPER_FP_OVERLOAD_1(erf, x) -HC_MATH_WRAPPER_1(erfcf, x) -HC_MATH_WRAPPER_FP_OVERLOAD_1(erfc, x) -HC_MATH_WRAPPER_1(expf, x) -HC_MATH_WRAPPER_FP_OVERLOAD_1(exp, x) -HC_MATH_WRAPPER_1(exp2f, x) -HC_MATH_WRAPPER_FP_OVERLOAD_1(exp2, x) -HC_MATH_WRAPPER_1(exp10f, x) -HC_MATH_WRAPPER_FP_OVERLOAD_1(exp10, x) -HC_MATH_WRAPPER_1(expm1f, x) -HC_MATH_WRAPPER_FP_OVERLOAD_1(expm1, x) -HC_MATH_WRAPPER_1(fabsf, x) -HC_MATH_WRAPPER_FP_OVERLOAD_1(fabs, x) -HC_MATH_WRAPPER_2(fdimf, x, y) -HC_MATH_WRAPPER_2(fdim, x, y) -HC_MATH_WRAPPER_1(floorf, x) -HC_MATH_WRAPPER_FP_OVERLOAD_1(floor, x) -HC_MATH_WRAPPER_3(fmaf, x, y, z) -HC_MATH_WRAPPER_3(fma, x, y, z) -HC_MATH_WRAPPER_2(fmaxf, x, y) -HC_MATH_WRAPPER_2(fmax, x, y) -HC_MATH_WRAPPER_2(fminf, x, y) -HC_MATH_WRAPPER_2(fmin, x, y) -HC_MATH_WRAPPER_2(fmodf, x, y) -HC_MATH_WRAPPER_2(fmod, x, y) -HC_MATH_WRAPPER_2(hypotf, x, y) -HC_MATH_WRAPPER_2(hypot, x, y) -HC_MATH_WRAPPER_1(logf, x) -HC_MATH_WRAPPER_FP_OVERLOAD_1(log, x) -HC_MATH_WRAPPER_1(log10f, x) -HC_MATH_WRAPPER_FP_OVERLOAD_1(log10, x) -HC_MATH_WRAPPER_1(log2f, x) -HC_MATH_WRAPPER_FP_OVERLOAD_1(log2, x) -HC_MATH_WRAPPER_1(log1pf, x) -HC_MATH_WRAPPER_FP_OVERLOAD_1(log1p, x) -HC_MATH_WRAPPER_1(logbf, x) -HC_MATH_WRAPPER_FP_OVERLOAD_1(logb, x) -HC_MATH_WRAPPER_1(nearbyintf, x) -HC_MATH_WRAPPER_FP_OVERLOAD_1(nearbyint, x) -HC_MATH_WRAPPER_2(nextafterf, x, y) -HC_MATH_WRAPPER_2(nextafter, x, y) -HC_MATH_WRAPPER_2(powf, x, y) -HC_MATH_WRAPPER_FP_OVERLOAD_TTQ(pow, x, y) -// HC_MATH_WRAPPER_1(rcbrtf, x) -// HC_MATH_WRAPPER_1(rcbrt, x) -HC_MATH_WRAPPER_2(remainderf, x, y) -HC_MATH_WRAPPER_2(remainder, x, y) -HC_MATH_WRAPPER_1(roundf, x) -HC_MATH_WRAPPER_FP_OVERLOAD_1(round, x) -KALMAR_MATH_WRAPPER_1(rsqrtf, x) -KALMAR_MATH_WRAPPER_FP_OVERLOAD_1(rsqrt, x) -HC_MATH_WRAPPER_2(scalbf, x, exp) -HC_MATH_WRAPPER_2(scalb, x, exp) -HC_MATH_WRAPPER_1(sinf, x) -HC_MATH_WRAPPER_FP_OVERLOAD_1(sin, x) -HC_MATH_WRAPPER_1(sinhf, x) -HC_MATH_WRAPPER_FP_OVERLOAD_1(sinh, x) -KALMAR_MATH_WRAPPER_1(sinpif, x) -KALMAR_MATH_WRAPPER_FP_OVERLOAD_1(sinpi, x) -HC_MATH_WRAPPER_1(sqrtf, x) -HC_MATH_WRAPPER_FP_OVERLOAD_1(sqrt, x) -HC_MATH_WRAPPER_1(tgammaf, x) -HC_MATH_WRAPPER_FP_OVERLOAD_1(tgamma, x) -HC_MATH_WRAPPER_1(tanf, x) -HC_MATH_WRAPPER_FP_OVERLOAD_1(tan, x) -HC_MATH_WRAPPER_1(tanhf, x) -HC_MATH_WRAPPER_FP_OVERLOAD_1(tanh, x) -HC_MATH_WRAPPER_1(truncf, x) -HC_MATH_WRAPPER_FP_OVERLOAD_1(trunc, x) - -// HC_MATH_ALIAS_2(min, fmin, x, y) -// HC_MATH_ALIAS_2(max, fmax, x, y) - -} // namespace std diff --git a/packages/kokkos/core/src/SYCL/Kokkos_SYCL.cpp b/packages/kokkos/core/src/SYCL/Kokkos_SYCL.cpp new file mode 100644 index 000000000..567145161 --- /dev/null +++ b/packages/kokkos/core/src/SYCL/Kokkos_SYCL.cpp @@ -0,0 +1,274 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include <Kokkos_Concepts.hpp> +#include <SYCL/Kokkos_SYCL_Instance.hpp> +#include <Kokkos_SYCL.hpp> +#include <Kokkos_HostSpace.hpp> +#include <Kokkos_Serial.hpp> +#include <Kokkos_Core.hpp> +#include <impl/Kokkos_Error.hpp> + +namespace { +template <typename C> +struct Container { + explicit Container(const C& c) : container(c) {} + + friend std::ostream& operator<<(std::ostream& os, const Container& that) { + os << that.container.size(); + for (const auto& v : that.container) { + os << "\n\t" << v; + } + return os; + } + + private: + const C& container; +}; +} // namespace + +namespace Kokkos { + +namespace Impl { +// forward-declaration +int get_gpu(const InitArguments& args); +} // namespace Impl + +namespace Experimental { +SYCL::SYCL() : m_space_instance(&Impl::SYCLInternal::singleton()) { + Impl::SYCLInternal::singleton().verify_is_initialized( + "SYCL instance constructor"); +} + +int SYCL::concurrency() { + // FIXME_SYCL We need a value larger than 1 here for some tests to pass, + // clearly this is true but not the roght value + return 2; +} + +bool SYCL::impl_is_initialized() { + return Impl::SYCLInternal::singleton().is_initialized(); +} + +void SYCL::impl_finalize() { Impl::SYCLInternal::singleton().finalize(); } + +void SYCL::fence() const { m_space_instance->m_queue->wait(); } + +int SYCL::sycl_device() const { + return impl_internal_space_instance()->m_syclDev; +} + +SYCL::SYCLDevice::SYCLDevice(cl::sycl::device d) : m_device(std::move(d)) {} + +SYCL::SYCLDevice::SYCLDevice(const cl::sycl::device_selector& selector) + : m_device(selector.select_device()) {} + +cl::sycl::device SYCL::SYCLDevice::get_device() const { return m_device; } + +void SYCL::impl_initialize(SYCL::SYCLDevice d) { + Impl::SYCLInternal::singleton().initialize(d.get_device()); +} + +std::ostream& SYCL::SYCLDevice::info(std::ostream& os) const { + using namespace cl::sycl::info; + return os << "Name: " << m_device.get_info<device::name>() + << "\nDriver Version: " + << m_device.get_info<device::driver_version>() + << "\nIs Host: " << m_device.is_host() + << "\nIs CPU: " << m_device.is_cpu() + << "\nIs GPU: " << m_device.is_gpu() + << "\nIs Accelerator: " << m_device.is_accelerator() + << "\nVendor Id: " << m_device.get_info<device::vendor_id>() + << "\nMax Compute Units: " + << m_device.get_info<device::max_compute_units>() + << "\nMax Work Item Dimensions: " + << m_device.get_info<device::max_work_item_dimensions>() + << "\nMax Work Group Size: " + << m_device.get_info<device::max_work_group_size>() + << "\nPreferred Vector Width Char: " + << m_device.get_info<device::preferred_vector_width_char>() + << "\nPreferred Vector Width Short: " + << m_device.get_info<device::preferred_vector_width_short>() + << "\nPreferred Vector Width Int: " + << m_device.get_info<device::preferred_vector_width_int>() + << "\nPreferred Vector Width Long: " + << m_device.get_info<device::preferred_vector_width_long>() + << "\nPreferred Vector Width Float: " + << m_device.get_info<device::preferred_vector_width_float>() + << "\nPreferred Vector Width Double: " + << m_device.get_info<device::preferred_vector_width_double>() + << "\nPreferred Vector Width Half: " + << m_device.get_info<device::preferred_vector_width_half>() + << "\nNative Vector Width Char: " + << m_device.get_info<device::native_vector_width_char>() + << "\nNative Vector Width Short: " + << m_device.get_info<device::native_vector_width_short>() + << "\nNative Vector Width Int: " + << m_device.get_info<device::native_vector_width_int>() + << "\nNative Vector Width Long: " + << m_device.get_info<device::native_vector_width_long>() + << "\nNative Vector Width Float: " + << m_device.get_info<device::native_vector_width_float>() + << "\nNative Vector Width Double: " + << m_device.get_info<device::native_vector_width_double>() + << "\nNative Vector Width Half: " + << m_device.get_info<device::native_vector_width_half>() + << "\nAddress Bits: " << m_device.get_info<device::address_bits>() + << "\nImage Support: " << m_device.get_info<device::image_support>() + << "\nMax Mem Alloc Size: " + << m_device.get_info<device::max_mem_alloc_size>() + << "\nMax Read Image Args: " + << m_device.get_info<device::max_read_image_args>() + << "\nImage2d Max Width: " + << m_device.get_info<device::image2d_max_width>() + << "\nImage2d Max Height: " + << m_device.get_info<device::image2d_max_height>() + << "\nImage3d Max Width: " + << m_device.get_info<device::image3d_max_width>() + << "\nImage3d Max Height: " + << m_device.get_info<device::image3d_max_height>() + << "\nImage3d Max Depth: " + << m_device.get_info<device::image3d_max_depth>() + << "\nImage Max Buffer Size: " + << m_device.get_info<device::image_max_buffer_size>() + << "\nImage Max Array Size: " + << m_device.get_info<device::image_max_array_size>() + << "\nMax Samplers: " << m_device.get_info<device::max_samplers>() + << "\nMax Parameter Size: " + << m_device.get_info<device::max_parameter_size>() + << "\nMem Base Addr Align: " + << m_device.get_info<device::mem_base_addr_align>() + << "\nGlobal Cache Mem Line Size: " + << m_device.get_info<device::global_mem_cache_line_size>() + << "\nGlobal Mem Cache Size: " + << m_device.get_info<device::global_mem_cache_size>() + << "\nGlobal Mem Size: " + << m_device.get_info<device::global_mem_size>() + << "\nMax Constant Buffer Size: " + << m_device.get_info<device::max_constant_buffer_size>() + << "\nMax Constant Args: " + << m_device.get_info<device::max_constant_args>() + << "\nLocal Mem Size: " + << m_device.get_info<device::local_mem_size>() + << "\nError Correction Support: " + << m_device.get_info<device::error_correction_support>() + << "\nHost Unified Memory: " + << m_device.get_info<device::host_unified_memory>() + << "\nProfiling Timer Resolution: " + << m_device.get_info<device::profiling_timer_resolution>() + << "\nIs Endian Little: " + << m_device.get_info<device::is_endian_little>() + << "\nIs Available: " << m_device.get_info<device::is_available>() + << "\nIs Compiler Available: " + << m_device.get_info<device::is_compiler_available>() + << "\nIs Linker Available: " + << m_device.get_info<device::is_linker_available>() + << "\nQueue Profiling: " + << m_device.get_info<device::queue_profiling>() + << "\nBuilt In Kernels: " + << Container<std::vector<std::string>>( + m_device.get_info<device::built_in_kernels>()) + << "\nVendor: " << m_device.get_info<device::vendor>() + << "\nProfile: " << m_device.get_info<device::profile>() + << "\nVersion: " << m_device.get_info<device::version>() + << "\nExtensions: " + << Container<std::vector<std::string>>( + m_device.get_info<device::extensions>()) + << "\nPrintf Buffer Size: " + << m_device.get_info<device::printf_buffer_size>() + << "\nPreferred Interop User Sync: " + << m_device.get_info<device::preferred_interop_user_sync>() + << "\nPartition Max Sub Devices: " + << m_device.get_info<device::partition_max_sub_devices>() + << "\nReference Count: " + << m_device.get_info<device::reference_count>() << '\n'; +} + +namespace Impl { + +int g_hip_space_factory_initialized = + Kokkos::Impl::initialize_space_factory<SYCLSpaceInitializer>("170_SYCL"); + +void SYCLSpaceInitializer::initialize(const InitArguments& args) { + int use_gpu = Kokkos::Impl::get_gpu(args); + + if (std::is_same<Kokkos::Experimental::SYCL, + Kokkos::DefaultExecutionSpace>::value || + 0 < use_gpu) { + // FIXME_SYCL choose a specific device + Kokkos::Experimental::SYCL::impl_initialize( + Kokkos::Experimental::SYCL::SYCLDevice(cl::sycl::default_selector())); + } +} + +void SYCLSpaceInitializer::finalize(const bool all_spaces) { + if (std::is_same<Kokkos::Experimental::SYCL, + Kokkos::DefaultExecutionSpace>::value || + all_spaces) { + if (Kokkos::Experimental::SYCL::impl_is_initialized()) + Kokkos::Experimental::SYCL::impl_finalize(); + } +} + +void SYCLSpaceInitializer::fence() { + // FIXME_SYCL should be + // Kokkos::Experimental::SYCL::impl_static_fence(); + Kokkos::Experimental::SYCL().fence(); +} + +void SYCLSpaceInitializer::print_configuration(std::ostream& msg, + const bool /*detail*/) { + msg << "Devices:" << std::endl; + msg << " KOKKOS_ENABLE_SYCL: "; + msg << "yes" << std::endl; + + msg << "\nRuntime Configuration:" << std::endl; + // FIXME_SYCL not implemented + std::abort(); + // Experimental::SYCL::print_configuration(msg, detail); +} + +} // namespace Impl +} // namespace Experimental +} // namespace Kokkos diff --git a/packages/kokkos/core/src/SYCL/Kokkos_SYCL_DeepCopy.hpp b/packages/kokkos/core/src/SYCL/Kokkos_SYCL_DeepCopy.hpp new file mode 100644 index 000000000..95906f8e7 --- /dev/null +++ b/packages/kokkos/core/src/SYCL/Kokkos_SYCL_DeepCopy.hpp @@ -0,0 +1,137 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_SYCLDEEPCOPY_HPP +#define KOKKOS_SYCLDEEPCOPY_HPP + +#include <Kokkos_Core_fwd.hpp> +#include <Kokkos_SYCL.hpp> + +#ifdef KOKKOS_ENABLE_SYCL + +namespace Kokkos { +namespace Impl { + +template <> +struct DeepCopy<Kokkos::Experimental::SYCLDeviceUSMSpace, + Kokkos::Experimental::SYCLDeviceUSMSpace, + Kokkos::Experimental::SYCL> { + DeepCopy(void* dst, const void* src, size_t); + DeepCopy(const Kokkos::Experimental::SYCL&, void* dst, const void* src, + size_t); +}; + +template <> +struct DeepCopy<Kokkos::HostSpace, Kokkos::Experimental::SYCLDeviceUSMSpace, + Kokkos::Experimental::SYCL> { + DeepCopy(void* dst, const void* src, size_t); + DeepCopy(const Kokkos::Experimental::SYCL&, void* dst, const void* src, + size_t); +}; + +template <> +struct DeepCopy<Kokkos::Experimental::SYCLDeviceUSMSpace, Kokkos::HostSpace, + Kokkos::Experimental::SYCL> { + DeepCopy(void* dst, const void* src, size_t); + DeepCopy(const Kokkos::Experimental::SYCL&, void* dst, const void* src, + size_t); +}; + +template <class ExecutionSpace> +struct DeepCopy<Kokkos::Experimental::SYCLDeviceUSMSpace, + Kokkos::Experimental::SYCLDeviceUSMSpace, ExecutionSpace> { + DeepCopy(void* dst, const void* src, size_t n) { + (void)DeepCopy<Kokkos::Experimental::SYCLDeviceUSMSpace, + Kokkos::Experimental::SYCLDeviceUSMSpace, + Kokkos::Experimental::SYCL>(dst, src, n); + } + + DeepCopy(const ExecutionSpace& exec, void* dst, const void* src, size_t n) { + exec.fence(); + DeepCopy<Kokkos::Experimental::SYCLDeviceUSMSpace, + Kokkos::Experimental::SYCLDeviceUSMSpace, + Kokkos::Experimental::SYCL>(Kokkos::Experimental::SYCL(), dst, src, + n); + Kokkos::Experimental::SYCL().fence(); + } +}; + +template <class ExecutionSpace> +struct DeepCopy<Kokkos::HostSpace, Kokkos::Experimental::SYCLDeviceUSMSpace, + ExecutionSpace> { + DeepCopy(void* dst, const void* src, size_t n) { + (void)DeepCopy<Kokkos::HostSpace, Kokkos::Experimental::SYCLDeviceUSMSpace, + Kokkos::Experimental::SYCL>(dst, src, n); + } + + DeepCopy(const ExecutionSpace& exec, void* dst, const void* src, size_t n) { + exec.fence(); + DeepCopy<Kokkos::HostSpace, Kokkos::Experimental::SYCLDeviceUSMSpace, + Kokkos::Experimental::SYCL>(Kokkos::Experimental::SYCL(), dst, src, + n); + Kokkos::Experimental::SYCL().fence(); + } +}; + +template <class ExecutionSpace> +struct DeepCopy<Kokkos::Experimental::SYCLDeviceUSMSpace, Kokkos::HostSpace, + ExecutionSpace> { + DeepCopy(void* dst, const void* src, size_t n) { + (void)DeepCopy<Kokkos::Experimental::SYCLDeviceUSMSpace, Kokkos::HostSpace, + Kokkos::Experimental::SYCL>(dst, src, n); + } + + DeepCopy(const ExecutionSpace& exec, void* dst, const void* src, size_t n) { + exec.fence(); + DeepCopy<Kokkos::Experimental::SYCLDeviceUSMSpace, Kokkos::HostSpace, + Kokkos::Experimental::SYCL>(Kokkos::Experimental::SYCL(), dst, src, + n); + Kokkos::Experimental::SYCL().fence(); + } +}; + +} // namespace Impl +} // namespace Kokkos +#endif +#endif diff --git a/packages/kokkos/core/src/SYCL/Kokkos_SYCL_Instance.cpp b/packages/kokkos/core/src/SYCL/Kokkos_SYCL_Instance.cpp new file mode 100644 index 000000000..ef4f466b8 --- /dev/null +++ b/packages/kokkos/core/src/SYCL/Kokkos_SYCL_Instance.cpp @@ -0,0 +1,127 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include <Kokkos_Concepts.hpp> +#include <SYCL/Kokkos_SYCL_Instance.hpp> +#include <Kokkos_SYCL.hpp> +#include <Kokkos_HostSpace.hpp> +#include <Kokkos_Serial.hpp> +#include <impl/Kokkos_Error.hpp> + +namespace Kokkos { +namespace Experimental { +namespace Impl { + +int SYCLInternal::was_finalized = 0; + +SYCLInternal::~SYCLInternal() { + if (m_scratchSpace || m_scratchFlags) { + std::cerr << "Kokkos::Experimental::SYCL ERROR: Failed to call " + "Kokkos::Experimental::SYCL::finalize()" + << std::endl; + std::cerr.flush(); + } + + m_scratchSpace = nullptr; + m_scratchFlags = nullptr; +} + +int SYCLInternal::verify_is_initialized(const char* const label) const { + if (!is_initialized()) { + std::cerr << "Kokkos::Experimental::SYCL::" << label + << " : ERROR device not initialized" << std::endl; + } + return is_initialized(); +} +SYCLInternal& SYCLInternal::singleton() { + static SYCLInternal self; + return self; +} + +// FIME_SYCL +void SYCLInternal::initialize(const cl::sycl::device& d) { + if (was_finalized) + Kokkos::abort("Calling SYCL::initialize after SYCL::finalize is illegal\n"); + + if (is_initialized()) return; + + if (!HostSpace::execution_space::impl_is_initialized()) { + const std::string msg( + "SYCL::initialize ERROR : HostSpace::execution_space is not " + "initialized"); + Kokkos::Impl::throw_runtime_exception(msg); + } + + const bool ok_init = nullptr == m_scratchSpace || nullptr == m_scratchFlags; + const bool ok_dev = true; + if (ok_init && ok_dev) { + m_queue = std::make_unique<cl::sycl::queue>(d); + std::cout << SYCL::SYCLDevice(d) << '\n'; + m_indirectKernel.emplace(IndirectKernelAllocator(*m_queue)); + } else { + std::ostringstream msg; + msg << "Kokkos::Experimental::SYCL::initialize(...) FAILED"; + + if (!ok_init) { + msg << " : Already initialized"; + } + Kokkos::Impl::throw_runtime_exception(msg.str()); + } +} + +void SYCLInternal::finalize() { + SYCL().fence(); + was_finalized = 1; + if (nullptr != m_scratchSpace || nullptr != m_scratchFlags) { + // FIXME_SYCL + std::abort(); + } + + m_indirectKernel.reset(); + m_queue.reset(); +} + +} // namespace Impl +} // namespace Experimental +} // namespace Kokkos diff --git a/packages/kokkos/core/src/SYCL/Kokkos_SYCL_Instance.hpp b/packages/kokkos/core/src/SYCL/Kokkos_SYCL_Instance.hpp new file mode 100644 index 000000000..254d37467 --- /dev/null +++ b/packages/kokkos/core/src/SYCL/Kokkos_SYCL_Instance.hpp @@ -0,0 +1,102 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_SYCL_INSTANCE_HPP_ +#define KOKKOS_SYCL_INSTANCE_HPP_ + +#include <memory> +#include <CL/sycl.hpp> + +namespace Kokkos { +namespace Experimental { +namespace Impl { + +class SYCLInternal { + public: + using size_type = int; + + SYCLInternal() = default; + ~SYCLInternal(); + + SYCLInternal(const SYCLInternal&) = delete; + SYCLInternal& operator=(const SYCLInternal&) = delete; + SYCLInternal& operator=(SYCLInternal&&) = delete; + SYCLInternal(SYCLInternal&&) = delete; + + int m_syclDev = -1; + size_type* m_scratchSpace = nullptr; + size_type* m_scratchFlags = nullptr; + + std::unique_ptr<cl::sycl::queue> m_queue; + + // An indirect kernel is one where the functor to be executed is explicitly + // created in USM shared memory before being executed, to get around the + // trivially copyable limitation of SYCL. + // + // m_indirectKernel just manages the memory as a reuseable buffer. It is + // stored in an optional because the allocator contains a queue + using IndirectKernelAllocator = + sycl::usm_allocator<std::byte, sycl::usm::alloc::shared>; + using IndirectKernelMemory = + std::vector<IndirectKernelAllocator::value_type, IndirectKernelAllocator>; + using IndirectKernel = std::optional<IndirectKernelMemory>; + IndirectKernel m_indirectKernel; + + static int was_finalized; + + static SYCLInternal& singleton(); + + int verify_is_initialized(const char* const label) const; + + void initialize(const cl::sycl::device& d); + + int is_initialized() const { return m_queue != nullptr; } + + void finalize(); +}; + +} // namespace Impl +} // namespace Experimental +} // namespace Kokkos +#endif diff --git a/packages/kokkos/core/src/SYCL/Kokkos_SYCL_Parallel_Range.hpp b/packages/kokkos/core/src/SYCL/Kokkos_SYCL_Parallel_Range.hpp new file mode 100644 index 000000000..ba42c36d3 --- /dev/null +++ b/packages/kokkos/core/src/SYCL/Kokkos_SYCL_Parallel_Range.hpp @@ -0,0 +1,133 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_SYCL_PARALLEL_RANGE_HPP_ +#define KOKKOS_SYCL_PARALLEL_RANGE_HPP_ + +template <class FunctorType, class ExecPolicy> +class Kokkos::Impl::ParallelFor<FunctorType, ExecPolicy, + Kokkos::Experimental::SYCL> { + public: + using Policy = ExecPolicy; + + private: + using Member = typename Policy::member_type; + using WorkTag = typename Policy::work_tag; + using LaunchBounds = typename Policy::launch_bounds; + + const FunctorType m_functor; + const Policy m_policy; + + private: + ParallelFor() = delete; + ParallelFor& operator=(const ParallelFor&) = delete; + + template <typename Functor> + static void sycl_direct_launch(const Policy& policy, const Functor& functor) { + // Convenience references + const Kokkos::Experimental::SYCL& space = policy.space(); + Kokkos::Experimental::Impl::SYCLInternal& instance = + *space.impl_internal_space_instance(); + cl::sycl::queue& q = *instance.m_queue; + + q.wait(); + + q.submit([functor, policy](cl::sycl::handler& cgh) { + cl::sycl::range<1> range(policy.end() - policy.begin()); + + cgh.parallel_for(range, [=](cl::sycl::item<1> item) { + const typename Policy::index_type id = + static_cast<typename Policy::index_type>(item.get_linear_id()) + + policy.begin(); + if constexpr (std::is_same<WorkTag, void>::value) + functor(id); + else + functor(WorkTag(), id); + }); + }); + + q.wait(); + } + + // Indirectly launch a functor by explicitly creating it in USM shared memory + void sycl_indirect_launch() const { + // Convenience references + const Kokkos::Experimental::SYCL& space = m_policy.space(); + Kokkos::Experimental::Impl::SYCLInternal& instance = + *space.impl_internal_space_instance(); + Kokkos::Experimental::Impl::SYCLInternal::IndirectKernelMemory& kernelMem = + *instance.m_indirectKernel; + + // Allocate USM shared memory for the functor + kernelMem.resize(std::max(kernelMem.size(), sizeof(m_functor))); + + // Placement new a copy of functor into USM shared memory + // + // Store it in a unique_ptr to call its destructor on scope exit + std::unique_ptr<FunctorType, Kokkos::Impl::destruct_delete> + kernelFunctorPtr(new (kernelMem.data()) FunctorType(m_functor)); + + // Use reference_wrapper (because it is both trivially copyable and + // invocable) and launch it + sycl_direct_launch(m_policy, std::reference_wrapper(*kernelFunctorPtr)); + } + + public: + using functor_type = FunctorType; + + void execute() const { + // if the functor is trivially copyable, we can launch it directly; + // otherwise, we will launch it indirectly via explicitly creating + // it in USM shared memory. + if constexpr (std::is_trivially_copyable_v<decltype(m_functor)>) + sycl_direct_launch(m_policy, m_functor); + else + sycl_indirect_launch(); + } + + ParallelFor(const FunctorType& arg_functor, const Policy& arg_policy) + : m_functor(arg_functor), m_policy(arg_policy) {} +}; + +#endif // KOKKOS_SYCL_PARALLEL_RANGE_HPP_ diff --git a/packages/kokkos/core/src/SYCL/Kokkos_SYCL_Parallel_Reduce.hpp b/packages/kokkos/core/src/SYCL/Kokkos_SYCL_Parallel_Reduce.hpp new file mode 100644 index 000000000..ac5e8154f --- /dev/null +++ b/packages/kokkos/core/src/SYCL/Kokkos_SYCL_Parallel_Reduce.hpp @@ -0,0 +1,300 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_SYCL_PARALLEL_REDUCE_HPP +#define KOKKOS_SYCL_PARALLEL_REDUCE_HPP + +#include <Kokkos_Macros.hpp> +#if defined(KOKKOS_ENABLE_SYCL) + +//---------------------------------------------------------------------------- +//---------------------------------------------------------------------------- + +namespace Kokkos { +namespace Impl { + +template <class FunctorType, class ReducerType, class... Traits> +class ParallelReduce<FunctorType, Kokkos::RangePolicy<Traits...>, ReducerType, + Kokkos::Experimental::SYCL> { + public: + using Policy = Kokkos::RangePolicy<Traits...>; + + private: + using Analysis = + FunctorAnalysis<FunctorPatternInterface::REDUCE, Policy, FunctorType>; + using execution_space = typename Analysis::execution_space; + using value_type = typename Analysis::value_type; + using pointer_type = typename Analysis::pointer_type; + using reference_type = typename Analysis::reference_type; + + using WorkTag = typename Policy::work_tag; + using ReducerConditional = + Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, + FunctorType, ReducerType>; + using WorkTagFwd = + std::conditional_t<std::is_same<InvalidType, ReducerType>::value, WorkTag, + void>; + using ValueInit = + typename Kokkos::Impl::FunctorValueInit<FunctorType, WorkTagFwd>; + + public: + // V - View + template <typename V> + ParallelReduce( + const FunctorType& f, const Policy& p, const V& v, + typename std::enable_if<Kokkos::is_view<V>::value, void*>::type = nullptr) + : m_functor(f), m_policy(p), m_result_ptr(v.data()) {} + + ParallelReduce(const FunctorType& f, const Policy& p, + const ReducerType& reducer) + : m_functor(f), + m_policy(p), + m_reducer(reducer), + m_result_ptr(reducer.view().data()) {} + + private: + template <typename TagType> + std::enable_if_t<std::is_void<TagType>::value> exec(reference_type update) { + using member_type = typename Policy::member_type; + member_type e = m_policy.end(); + for (member_type i = m_policy.begin(); i < e; ++i) m_functor(i, update); + } + + template <typename TagType> + std::enable_if_t<!std::is_void<TagType>::value> exec(reference_type update) { + using member_type = typename Policy::member_type; + member_type e = m_policy.end(); + for (member_type i = m_policy.begin(); i < e; ++i) + m_functor(TagType{}, i, update); + } + + template <typename T> + struct ExtendedReferenceWrapper : std::reference_wrapper<T> { + using std::reference_wrapper<T>::reference_wrapper; + + using value_type = typename FunctorValueTraits<T, WorkTag>::value_type; + + template <typename Dummy = T> + std::enable_if_t<std::is_same_v<Dummy, T> && + ReduceFunctorHasInit<Dummy>::value> + init(value_type& old_value, const value_type& new_value) const { + return this->get().init(old_value, new_value); + } + + template <typename Dummy = T> + std::enable_if_t<std::is_same_v<Dummy, T> && + ReduceFunctorHasJoin<Dummy>::value> + join(value_type& old_value, const value_type& new_value) const { + return this->get().join(old_value, new_value); + } + + template <typename Dummy = T> + std::enable_if_t<std::is_same_v<Dummy, T> && + ReduceFunctorHasFinal<Dummy>::value> + final(value_type& old_value) const { + return this->get().final(old_value); + } + }; + + template <typename PolicyType, typename Functor> + void sycl_direct_launch(const PolicyType& policy, + const Functor& functor) const { + // Convenience references + const Kokkos::Experimental::SYCL& space = policy.space(); + Kokkos::Experimental::Impl::SYCLInternal& instance = + *space.impl_internal_space_instance(); + cl::sycl::queue& q = *instance.m_queue; + + auto result_ptr = static_cast<pointer_type>( + sycl::malloc(sizeof(*m_result_ptr), q, sycl::usm::alloc::shared)); + + value_type identity{}; + if constexpr (!std::is_same<ReducerType, InvalidType>::value) + m_reducer.init(identity); + + *result_ptr = identity; + if constexpr (ReduceFunctorHasInit<Functor>::value) + ValueInit::init(functor, result_ptr); + + q.submit([&](cl::sycl::handler& cgh) { + // FIXME_SYCL a local size larger than 1 doesn't work for all cases + cl::sycl::nd_range<1> range(policy.end() - policy.begin(), 1); + + const auto reduction = [&]() { + if constexpr (!std::is_same<ReducerType, InvalidType>::value) { + return cl::sycl::ONEAPI::reduction( + result_ptr, identity, + [this](value_type& old_value, const value_type& new_value) { + m_reducer.join(old_value, new_value); + return old_value; + }); + } else { + if constexpr (ReduceFunctorHasJoin<Functor>::value) { + return cl::sycl::ONEAPI::reduction( + result_ptr, identity, + [functor](value_type& old_value, const value_type& new_value) { + functor.join(old_value, new_value); + return old_value; + }); + } else { + return cl::sycl::ONEAPI::reduction(result_ptr, identity, + std::plus<>()); + } + } + }(); + + cgh.parallel_for(range, reduction, + [=](cl::sycl::nd_item<1> item, auto& sum) { + const typename Policy::index_type id = + static_cast<typename Policy::index_type>( + item.get_global_id(0)) + + policy.begin(); + value_type partial = identity; + if constexpr (std::is_same<WorkTag, void>::value) + functor(id, partial); + else + functor(WorkTag(), id, partial); + sum.combine(partial); + }); + }); + + q.wait(); + + static_assert(ReduceFunctorHasFinal<Functor>::value == + ReduceFunctorHasFinal<FunctorType>::value); + static_assert(ReduceFunctorHasJoin<Functor>::value == + ReduceFunctorHasJoin<FunctorType>::value); + + if constexpr (ReduceFunctorHasFinal<Functor>::value) + FunctorFinal<Functor, WorkTag>::final(functor, result_ptr); + else + *m_result_ptr = *result_ptr; + + sycl::free(result_ptr, q); + } + + template <typename Functor> + void sycl_indirect_launch(const Functor& functor) const { + // Convenience references + const Kokkos::Experimental::SYCL& space = m_policy.space(); + Kokkos::Experimental::Impl::SYCLInternal& instance = + *space.impl_internal_space_instance(); + Kokkos::Experimental::Impl::SYCLInternal::IndirectKernelMemory& kernelMem = + *instance.m_indirectKernel; + + // Allocate USM shared memory for the functor + kernelMem.resize(std::max(kernelMem.size(), sizeof(functor))); + + // Placement new a copy of functor into USM shared memory + // + // Store it in a unique_ptr to call its destructor on scope exit + std::unique_ptr<Functor, Kokkos::Impl::destruct_delete> kernelFunctorPtr( + new (kernelMem.data()) Functor(functor)); + + auto kernelFunctor = ExtendedReferenceWrapper<Functor>(*kernelFunctorPtr); + sycl_direct_launch(m_policy, kernelFunctor); + } + + public: + void execute() const { + if (m_policy.begin() == m_policy.end()) { + const Kokkos::Experimental::SYCL& space = m_policy.space(); + Kokkos::Experimental::Impl::SYCLInternal& instance = + *space.impl_internal_space_instance(); + cl::sycl::queue& q = *instance.m_queue; + + pointer_type result_ptr = + ReduceFunctorHasFinal<FunctorType>::value + ? static_cast<pointer_type>(sycl::malloc( + sizeof(*m_result_ptr), q, sycl::usm::alloc::shared)) + : m_result_ptr; + + sycl::usm::alloc result_ptr_type = + sycl::get_pointer_type(result_ptr, q.get_context()); + + switch (result_ptr_type) { + case sycl::usm::alloc::host: + case sycl::usm::alloc::shared: + ValueInit::init(m_functor, result_ptr); + break; + case sycl::usm::alloc::device: + // non-USM-allocated memory + case sycl::usm::alloc::unknown: { + value_type host_result; + ValueInit::init(m_functor, &host_result); + q.memcpy(result_ptr, &host_result, sizeof(host_result)).wait(); + break; + } + default: Kokkos::abort("pointer type outside of SYCL specs."); + } + + if constexpr (ReduceFunctorHasFinal<FunctorType>::value) { + FunctorFinal<FunctorType, WorkTag>::final(m_functor, result_ptr); + sycl::free(result_ptr, q); + } + + return; + } + + if constexpr (std::is_trivially_copyable_v<decltype(m_functor)>) + sycl_direct_launch(m_policy, m_functor); + else + sycl_indirect_launch(m_functor); + } + + private: + FunctorType m_functor; + Policy m_policy; + ReducerType m_reducer; + pointer_type m_result_ptr; +}; + +} // namespace Impl +} // namespace Kokkos + +//---------------------------------------------------------------------------- +//---------------------------------------------------------------------------- + +#endif +#endif /* KOKKOS_SYCL_PARALLEL_REDUCE_HPP */ diff --git a/packages/kokkos/core/src/SYCL/Kokkos_SYCL_Parallel_Scan.hpp b/packages/kokkos/core/src/SYCL/Kokkos_SYCL_Parallel_Scan.hpp new file mode 100644 index 000000000..3595255b0 --- /dev/null +++ b/packages/kokkos/core/src/SYCL/Kokkos_SYCL_Parallel_Scan.hpp @@ -0,0 +1,324 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKO_SYCL_PARALLEL_SCAN_HPP +#define KOKKO_SYCL_PARALLEL_SCAN_HPP + +#include <Kokkos_Macros.hpp> +#include <memory> +#if defined(KOKKOS_ENABLE_SYCL) + +namespace Kokkos { +namespace Impl { + +template <class FunctorType, class... Traits> +class ParallelScanSYCLBase { + public: + using Policy = Kokkos::RangePolicy<Traits...>; + + protected: + using Member = typename Policy::member_type; + using WorkTag = typename Policy::work_tag; + using WorkRange = typename Policy::WorkRange; + using LaunchBounds = typename Policy::launch_bounds; + + using ValueTraits = Kokkos::Impl::FunctorValueTraits<FunctorType, WorkTag>; + using ValueInit = Kokkos::Impl::FunctorValueInit<FunctorType, WorkTag>; + using ValueJoin = Kokkos::Impl::FunctorValueJoin<FunctorType, WorkTag>; + using ValueOps = Kokkos::Impl::FunctorValueOps<FunctorType, WorkTag>; + + public: + using pointer_type = typename ValueTraits::pointer_type; + using value_type = typename ValueTraits::value_type; + using reference_type = typename ValueTraits::reference_type; + using functor_type = FunctorType; + using size_type = Kokkos::Experimental::SYCL::size_type; + using index_type = typename Policy::index_type; + + protected: + const FunctorType m_functor; + const Policy m_policy; + pointer_type m_scratch_space = nullptr; + + private: + template <typename Functor> + void scan_internal(cl::sycl::queue& q, const Functor& functor, + pointer_type global_mem, std::size_t size) const { + // FIXME_SYCL optimize + constexpr size_t wgroup_size = 32; + auto n_wgroups = (size + wgroup_size - 1) / wgroup_size; + + // FIXME_SYCL The allocation should be handled by the execution space + auto deleter = [&q](value_type* ptr) { cl::sycl::free(ptr, q); }; + std::unique_ptr<value_type[], decltype(deleter)> group_results_memory( + static_cast<pointer_type>(sycl::malloc(sizeof(value_type) * n_wgroups, + q, sycl::usm::alloc::shared)), + deleter); + auto group_results = group_results_memory.get(); + + q.submit([&](cl::sycl::handler& cgh) { + sycl::accessor<value_type, 1, sycl::access::mode::read_write, + sycl::access::target::local> + local_mem(sycl::range<1>(wgroup_size), cgh); + + // FIXME_SYCL we get wrong results without this, not sure why + sycl::stream out(1, 1, cgh); + cgh.parallel_for( + sycl::nd_range<1>(n_wgroups * wgroup_size, wgroup_size), + [=](sycl::nd_item<1> item) { + const auto local_id = item.get_local_linear_id(); + const auto global_id = item.get_global_linear_id(); + + // Initialize local memory + if (global_id < size) + ValueOps::copy(functor, &local_mem[local_id], + &global_mem[global_id]); + else + ValueInit::init(functor, &local_mem[local_id]); + item.barrier(sycl::access::fence_space::local_space); + + // Perform workgroup reduction + for (size_t stride = 1; 2 * stride < wgroup_size + 1; stride *= 2) { + auto idx = 2 * stride * (local_id + 1) - 1; + if (idx < wgroup_size) + ValueJoin::join(functor, &local_mem[idx], + &local_mem[idx - stride]); + item.barrier(sycl::access::fence_space::local_space); + } + + if (local_id == 0) { + if (n_wgroups > 1) + ValueOps::copy(functor, + &group_results[item.get_group_linear_id()], + &local_mem[wgroup_size - 1]); + else + ValueInit::init(functor, + &group_results[item.get_group_linear_id()]); + ValueInit::init(functor, &local_mem[wgroup_size - 1]); + } + + // Add results to all items + for (size_t stride = wgroup_size / 2; stride > 0; stride /= 2) { + auto idx = 2 * stride * (local_id + 1) - 1; + if (idx < wgroup_size) { + value_type dummy; + ValueOps::copy(functor, &dummy, &local_mem[idx - stride]); + ValueOps::copy(functor, &local_mem[idx - stride], + &local_mem[idx]); + ValueJoin::join(functor, &local_mem[idx], &dummy); + } + item.barrier(sycl::access::fence_space::local_space); + } + + // Write results to global memory + if (global_id < size) + ValueOps::copy(functor, &global_mem[global_id], + &local_mem[local_id]); + }); + }); + + if (n_wgroups > 1) scan_internal(q, functor, group_results, n_wgroups); + q.wait(); + + q.submit([&](sycl::handler& cgh) { + cgh.parallel_for(sycl::nd_range<1>(n_wgroups * wgroup_size, wgroup_size), + [=](sycl::nd_item<1> item) { + const auto global_id = item.get_global_linear_id(); + if (global_id < size) + ValueJoin::join( + functor, &global_mem[global_id], + &group_results[item.get_group_linear_id()]); + }); + }); + q.wait(); + } + + template <typename Functor> + void sycl_direct_launch(const Functor& functor) const { + // Convenience references + const Kokkos::Experimental::SYCL& space = m_policy.space(); + Kokkos::Experimental::Impl::SYCLInternal& instance = + *space.impl_internal_space_instance(); + cl::sycl::queue& q = *instance.m_queue; + + const std::size_t len = m_policy.end() - m_policy.begin(); + + // Initialize global memory + q.submit([&](sycl::handler& cgh) { + auto global_mem = m_scratch_space; + auto policy = m_policy; + cgh.parallel_for(sycl::range<1>(len), [=](sycl::item<1> item) { + const typename Policy::index_type id = + static_cast<typename Policy::index_type>(item.get_id()) + + policy.begin(); + value_type update{}; + ValueInit::init(functor, &update); + if constexpr (std::is_same<WorkTag, void>::value) + functor(id, update, false); + else + functor(WorkTag(), id, update, false); + ValueOps::copy(functor, &global_mem[id], &update); + }); + }); + q.wait(); + + // Perform the actual exlcusive scan + scan_internal(q, functor, m_scratch_space, len); + + // Write results to global memory + q.submit([&](sycl::handler& cgh) { + auto global_mem = m_scratch_space; + cgh.parallel_for(sycl::range<1>(len), [=](sycl::item<1> item) { + auto global_id = item.get_id(); + + value_type update = global_mem[global_id]; + if constexpr (std::is_same<WorkTag, void>::value) + functor(global_id, update, true); + else + functor(WorkTag(), global_id, update, true); + ValueOps::copy(functor, &global_mem[global_id], &update); + }); + }); + q.wait(); + } + + template <typename Functor> + void sycl_indirect_launch(const Functor& functor) const { + // Convenience references + const Kokkos::Experimental::SYCL& space = m_policy.space(); + Kokkos::Experimental::Impl::SYCLInternal& instance = + *space.impl_internal_space_instance(); + Kokkos::Experimental::Impl::SYCLInternal::IndirectKernelMemory& kernelMem = + *instance.m_indirectKernel; + + // Allocate USM shared memory for the functor + kernelMem.resize(std::max(kernelMem.size(), sizeof(functor))); + + // Placement new a copy of functor into USM shared memory + // + // Store it in a unique_ptr to call its destructor on scope exit + std::unique_ptr<Functor, Kokkos::Impl::destruct_delete> kernelFunctorPtr( + new (kernelMem.data()) Functor(functor)); + + auto kernelFunctor = std::reference_wrapper(*kernelFunctorPtr); + sycl_direct_launch(kernelFunctor); + } + + public: + template <typename PostFunctor> + void impl_execute(const PostFunctor& post_functor) { + const auto& q = *(m_policy.space().impl_internal_space_instance()->m_queue); + const std::size_t len = m_policy.end() - m_policy.begin(); + + // FIXME_SYCL The allocation should be handled by the execution space + // consider only storing one value per block and recreate initial results in + // the end before doing the final pass + auto deleter = [&q](value_type* ptr) { cl::sycl::free(ptr, q); }; + std::unique_ptr<value_type[], decltype(deleter)> result_memory( + static_cast<pointer_type>(sycl::malloc(sizeof(value_type) * len, q, + sycl::usm::alloc::shared)), + deleter); + m_scratch_space = result_memory.get(); + + if constexpr (std::is_trivially_copyable_v<decltype(m_functor)>) + sycl_direct_launch(m_policy, m_functor); + else + sycl_indirect_launch(m_functor); + post_functor(); + } + + ParallelScanSYCLBase(const FunctorType& arg_functor, const Policy& arg_policy) + : m_functor(arg_functor), m_policy(arg_policy) {} +}; + +template <class FunctorType, class... Traits> +class ParallelScan<FunctorType, Kokkos::RangePolicy<Traits...>, + Kokkos::Experimental::SYCL> + : private ParallelScanSYCLBase<FunctorType, Traits...> { + public: + using Base = ParallelScanSYCLBase<FunctorType, Traits...>; + + inline void execute() { + Base::impl_execute([]() {}); + } + + ParallelScan(const FunctorType& arg_functor, + const typename Base::Policy& arg_policy) + : Base(arg_functor, arg_policy) {} +}; + +//---------------------------------------------------------------------------- + +template <class FunctorType, class ReturnType, class... Traits> +class ParallelScanWithTotal<FunctorType, Kokkos::RangePolicy<Traits...>, + ReturnType, Kokkos::Experimental::SYCL> + : private ParallelScanSYCLBase<FunctorType, Traits...> { + public: + using Base = ParallelScanSYCLBase<FunctorType, Traits...>; + + ReturnType& m_returnvalue; + + inline void execute() { + Base::impl_execute([&]() { + const long long nwork = Base::m_policy.end() - Base::m_policy.begin(); + if (nwork > 0) { + const int size = Base::ValueTraits::value_size(Base::m_functor); + DeepCopy<HostSpace, Kokkos::Experimental::SYCLDeviceUSMSpace>( + &m_returnvalue, Base::m_scratch_space + nwork - 1, size); + } + }); + } + + ParallelScanWithTotal(const FunctorType& arg_functor, + const typename Base::Policy& arg_policy, + ReturnType& arg_returnvalue) + : Base(arg_functor, arg_policy), m_returnvalue(arg_returnvalue) {} +}; + +} // namespace Impl +} // namespace Kokkos + +#endif + +#endif diff --git a/packages/kokkos/core/src/SYCL/Kokkos_SYCL_Space.cpp b/packages/kokkos/core/src/SYCL/Kokkos_SYCL_Space.cpp new file mode 100644 index 000000000..fd6f11d58 --- /dev/null +++ b/packages/kokkos/core/src/SYCL/Kokkos_SYCL_Space.cpp @@ -0,0 +1,438 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include <Kokkos_HostSpace.hpp> +#include <Kokkos_SYCL.hpp> +#include <Kokkos_SYCL_Space.hpp> +#include <SYCL/Kokkos_SYCL_DeepCopy.hpp> +#include <SYCL/Kokkos_SYCL_Instance.hpp> +#include <impl/Kokkos_MemorySpace.hpp> +#include <impl/Kokkos_Profiling.hpp> + +/*--------------------------------------------------------------------------*/ +/*--------------------------------------------------------------------------*/ +namespace Kokkos { +namespace Impl { +namespace { +auto USM_memcpy(cl::sycl::queue& q, void* dst, const void* src, size_t n) { + return q.memcpy(dst, src, n); +} + +void USM_memcpy(Kokkos::Experimental::Impl::SYCLInternal& space, void* dst, + const void* src, size_t n) { + (void)USM_memcpy(*space.m_queue, dst, src, n); +} + +void USM_memcpy(void* dst, const void* src, size_t n) { + Kokkos::Experimental::Impl::SYCLInternal::singleton().m_queue->wait(); + USM_memcpy(*Kokkos::Experimental::Impl::SYCLInternal::singleton().m_queue, + dst, src, n) + .wait(); +} +} // namespace + +DeepCopy<Kokkos::Experimental::SYCLDeviceUSMSpace, + Kokkos::Experimental::SYCLDeviceUSMSpace, Kokkos::Experimental::SYCL>:: + DeepCopy(const Kokkos::Experimental::SYCL& instance, void* dst, + const void* src, size_t n) { + USM_memcpy(*instance.impl_internal_space_instance(), dst, src, n); +} + +DeepCopy<Kokkos::Experimental::SYCLDeviceUSMSpace, + Kokkos::Experimental::SYCLDeviceUSMSpace, + Kokkos::Experimental::SYCL>::DeepCopy(void* dst, const void* src, + size_t n) { + USM_memcpy(dst, src, n); +} + +DeepCopy<Kokkos::HostSpace, Kokkos::Experimental::SYCLDeviceUSMSpace, + Kokkos::Experimental::SYCL>::DeepCopy(const Kokkos::Experimental::SYCL& + instance, + void* dst, const void* src, + size_t n) { + USM_memcpy(*instance.impl_internal_space_instance(), dst, src, n); +} + +DeepCopy<Kokkos::HostSpace, Kokkos::Experimental::SYCLDeviceUSMSpace, + Kokkos::Experimental::SYCL>::DeepCopy(void* dst, const void* src, + size_t n) { + USM_memcpy(dst, src, n); +} + +DeepCopy<Kokkos::Experimental::SYCLDeviceUSMSpace, Kokkos::HostSpace, + Kokkos::Experimental::SYCL>::DeepCopy(const Kokkos::Experimental::SYCL& + instance, + void* dst, const void* src, + size_t n) { + USM_memcpy(*instance.impl_internal_space_instance(), dst, src, n); +} + +DeepCopy<Kokkos::Experimental::SYCLDeviceUSMSpace, Kokkos::HostSpace, + Kokkos::Experimental::SYCL>::DeepCopy(void* dst, const void* src, + size_t n) { + USM_memcpy(dst, src, n); +} + +} // namespace Impl +} // namespace Kokkos + +/*--------------------------------------------------------------------------*/ +/*--------------------------------------------------------------------------*/ + +namespace Kokkos { +namespace Experimental { + +SYCLDeviceUSMSpace::SYCLDeviceUSMSpace() : m_device(SYCL().sycl_device()) {} + +void* SYCLDeviceUSMSpace::allocate(const size_t arg_alloc_size) const { + return allocate("[unlabeled]", arg_alloc_size); +} +void* SYCLDeviceUSMSpace::allocate(const char* arg_label, + const size_t arg_alloc_size, + const size_t arg_logical_size) const { + return impl_allocate(arg_label, arg_alloc_size, arg_logical_size); +} + +void* SYCLDeviceUSMSpace::impl_allocate( + const char* arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size, + const Kokkos::Tools::SpaceHandle arg_handle) const { + const cl::sycl::queue& queue = + *SYCL().impl_internal_space_instance()->m_queue; + void* const hostPtr = cl::sycl::malloc_device(arg_alloc_size, queue); + + if (hostPtr == nullptr) + throw RawMemoryAllocationFailure( + arg_alloc_size, 1, RawMemoryAllocationFailure::FailureMode::Unknown, + RawMemoryAllocationFailure::AllocationMechanism::SYCLMalloc); + + if (Kokkos::Profiling::profileLibraryLoaded()) { + const size_t reported_size = + (arg_logical_size > 0) ? arg_logical_size : arg_alloc_size; + Kokkos::Profiling::allocateData(arg_handle, arg_label, hostPtr, + reported_size); + } + + return hostPtr; +} + +void SYCLDeviceUSMSpace::deallocate(void* const arg_alloc_ptr, + const size_t arg_alloc_size) const { + deallocate("[unlabeled]", arg_alloc_ptr, arg_alloc_size); +} +void SYCLDeviceUSMSpace::deallocate(const char* arg_label, + void* const arg_alloc_ptr, + const size_t arg_alloc_size, + const size_t arg_logical_size) const { + impl_deallocate(arg_label, arg_alloc_ptr, arg_alloc_size, arg_logical_size); +} +void SYCLDeviceUSMSpace::impl_deallocate( + const char* arg_label, void* const arg_alloc_ptr, + const size_t arg_alloc_size, const size_t arg_logical_size, + const Kokkos::Tools::SpaceHandle arg_handle) const { + if (Kokkos::Profiling::profileLibraryLoaded()) { + const size_t reported_size = + (arg_logical_size > 0) ? arg_logical_size : arg_alloc_size; + Kokkos::Profiling::deallocateData(arg_handle, arg_label, arg_alloc_ptr, + reported_size); + } + const cl::sycl::queue& queue = + *SYCL().impl_internal_space_instance()->m_queue; + cl::sycl::free(arg_alloc_ptr, queue); +} + +} // namespace Experimental +} // namespace Kokkos + +namespace Kokkos { +namespace Impl { + +#ifdef KOKKOS_ENABLE_DEBUG +SharedAllocationRecord<void, void> SharedAllocationRecord< + Kokkos::Experimental::SYCLDeviceUSMSpace, void>::s_root_record; +#endif + +SharedAllocationRecord<Kokkos::Experimental::SYCLDeviceUSMSpace, void>:: + SharedAllocationRecord( + const Kokkos::Experimental::SYCLDeviceUSMSpace& space, + const std::string& label, const size_t size, + const SharedAllocationRecord<void, void>::function_type dealloc) + // Pass through allocated [ SharedAllocationHeader , user_memory ] + // Pass through deallocation function + : SharedAllocationRecord<void, void>( +#ifdef KOKKOS_ENABLE_DEBUG + &SharedAllocationRecord<Kokkos::Experimental::SYCLDeviceUSMSpace, + void>::s_root_record, +#endif + Kokkos::Impl::checked_allocation_with_header(space, label, size), + sizeof(SharedAllocationHeader) + size, dealloc), + m_space(space) { + if (Kokkos::Profiling::profileLibraryLoaded()) { + Kokkos::Profiling::allocateData( + Kokkos::Profiling::make_space_handle(space.name()), label, data(), + size); + } + + SharedAllocationHeader header; + + // Fill in the Header information + header.m_record = static_cast<SharedAllocationRecord<void, void>*>(this); + + strncpy(header.m_label, label.c_str(), + SharedAllocationHeader::maximum_label_length); + // Set last element zero, in case c_str is too long + header.m_label[SharedAllocationHeader::maximum_label_length - 1] = (char)0; + + // Copy to device memory + Kokkos::Impl::DeepCopy<Kokkos::Experimental::SYCLDeviceUSMSpace, HostSpace>( + RecordBase::m_alloc_ptr, &header, sizeof(SharedAllocationHeader)); +} + +} // namespace Impl +} // namespace Kokkos + +//---------------------------------------------------------------------------- +//---------------------------------------------------------------------------- + +namespace Kokkos { +namespace Impl { + +std::string SharedAllocationRecord<Kokkos::Experimental::SYCLDeviceUSMSpace, + void>::get_label() const { + SharedAllocationHeader header; + + Kokkos::Impl::DeepCopy<Kokkos::HostSpace, + Kokkos::Experimental::SYCLDeviceUSMSpace>( + &header, RecordBase::head(), sizeof(SharedAllocationHeader)); + + return std::string(header.m_label); +} + +SharedAllocationRecord<Kokkos::Experimental::SYCLDeviceUSMSpace, void>* +SharedAllocationRecord<Kokkos::Experimental::SYCLDeviceUSMSpace, void>:: + allocate(const Kokkos::Experimental::SYCLDeviceUSMSpace& arg_space, + const std::string& arg_label, const size_t arg_alloc_size) { + return new SharedAllocationRecord(arg_space, arg_label, arg_alloc_size); +} + +void SharedAllocationRecord<Kokkos::Experimental::SYCLDeviceUSMSpace, void>:: + deallocate(SharedAllocationRecord<void, void>* arg_rec) { + delete static_cast<SharedAllocationRecord*>(arg_rec); +} + +SharedAllocationRecord<Kokkos::Experimental::SYCLDeviceUSMSpace, + void>::~SharedAllocationRecord() { + if (Kokkos::Profiling::profileLibraryLoaded()) { + SharedAllocationHeader header; + Kokkos::Impl::DeepCopy<Kokkos::Experimental::SYCLDeviceUSMSpace, + Kokkos::HostSpace>(&header, RecordBase::m_alloc_ptr, + sizeof(SharedAllocationHeader)); + + Kokkos::Profiling::deallocateData( + Kokkos::Profiling::make_space_handle( + Kokkos::Experimental::SYCLDeviceUSMSpace::name()), + header.m_label, data(), size()); + } + + m_space.deallocate(SharedAllocationRecord<void, void>::m_alloc_ptr, + SharedAllocationRecord<void, void>::m_alloc_size); +} + +//---------------------------------------------------------------------------- + +void* SharedAllocationRecord<Kokkos::Experimental::SYCLDeviceUSMSpace, void>:: + allocate_tracked(const Kokkos::Experimental::SYCLDeviceUSMSpace& arg_space, + const std::string& arg_alloc_label, + const size_t arg_alloc_size) { + if (!arg_alloc_size) return nullptr; + + SharedAllocationRecord* const r = + allocate(arg_space, arg_alloc_label, arg_alloc_size); + + RecordBase::increment(r); + + return r->data(); +} + +void SharedAllocationRecord<Kokkos::Experimental::SYCLDeviceUSMSpace, + void>::deallocate_tracked(void* const + arg_alloc_ptr) { + if (arg_alloc_ptr != nullptr) { + SharedAllocationRecord* const r = get_record(arg_alloc_ptr); + + RecordBase::decrement(r); + } +} + +void* SharedAllocationRecord<Kokkos::Experimental::SYCLDeviceUSMSpace, void>:: + reallocate_tracked(void* const arg_alloc_ptr, const size_t arg_alloc_size) { + SharedAllocationRecord* const r_old = get_record(arg_alloc_ptr); + SharedAllocationRecord* const r_new = + allocate(r_old->m_space, r_old->get_label(), arg_alloc_size); + + Kokkos::Impl::DeepCopy<Kokkos::Experimental::SYCLDeviceUSMSpace, + Kokkos::Experimental::SYCLDeviceUSMSpace>( + r_new->data(), r_old->data(), std::min(r_old->size(), r_new->size())); + + RecordBase::increment(r_new); + RecordBase::decrement(r_old); + + return r_new->data(); +} + +//---------------------------------------------------------------------------- + +SharedAllocationRecord<Kokkos::Experimental::SYCLDeviceUSMSpace, void>* +SharedAllocationRecord<Kokkos::Experimental::SYCLDeviceUSMSpace, + void>::get_record(void* alloc_ptr) { + using Header = SharedAllocationHeader; + using RecordSYCL = + SharedAllocationRecord<Kokkos::Experimental::SYCLDeviceUSMSpace, void>; + + // Copy the header from the allocation + Header head; + + Header const* const head_sycl = + alloc_ptr ? Header::get_header(alloc_ptr) : nullptr; + + if (alloc_ptr) { + Kokkos::Impl::DeepCopy<Kokkos::HostSpace, + Kokkos::Experimental::SYCLDeviceUSMSpace>( + &head, head_sycl, sizeof(SharedAllocationHeader)); + } + + RecordSYCL* const record = + alloc_ptr ? static_cast<RecordSYCL*>(head.m_record) : nullptr; + + if (!alloc_ptr || record->m_alloc_ptr != head_sycl) { + Kokkos::Impl::throw_runtime_exception( + std::string("Kokkos::Impl::SharedAllocationRecord< " + "Kokkos::Experimental::SYCLDeviceUSMSpace " + ", void >::get_record ERROR")); + } + + return record; +} + +// Iterate records to print orphaned memory ... +void SharedAllocationRecord<Kokkos::Experimental::SYCLDeviceUSMSpace, void>:: + print_records(std::ostream& s, + const Kokkos::Experimental::SYCLDeviceUSMSpace&, + bool detail) { +#ifdef KOKKOS_ENABLE_DEBUG + SharedAllocationRecord<void, void>* r = &s_root_record; + + char buffer[256]; + + SharedAllocationHeader head; + + if (detail) { + do { + if (r->m_alloc_ptr) { + Kokkos::Impl::DeepCopy<Kokkos::HostSpace, + Kokkos::Experimental::SYCLDeviceUSMSpace>( + &head, r->m_alloc_ptr, sizeof(SharedAllocationHeader)); + } else { + head.m_label[0] = 0; + } + + // Formatting dependent on sizeof(uintptr_t) + const char* format_string; + + if (sizeof(uintptr_t) == sizeof(unsigned long)) { + format_string = + "SYCL addr( 0x%.12lx ) list( 0x%.12lx 0x%.12lx ) extent[ 0x%.12lx " + "+ %.8ld ] count(%d) dealloc(0x%.12lx) %s\n"; + } else if (sizeof(uintptr_t) == sizeof(unsigned long long)) { + format_string = + "SYCL addr( 0x%.12llx ) list( 0x%.12llx 0x%.12llx ) extent[ " + "0x%.12llx + %.8ld ] count(%d) dealloc(0x%.12llx) %s\n"; + } + + snprintf(buffer, 256, format_string, reinterpret_cast<uintptr_t>(r), + reinterpret_cast<uintptr_t>(r->m_prev), + reinterpret_cast<uintptr_t>(r->m_next), + reinterpret_cast<uintptr_t>(r->m_alloc_ptr), r->m_alloc_size, + r->m_count, reinterpret_cast<uintptr_t>(r->m_dealloc), + head.m_label); + s << buffer; + r = r->m_next; + } while (r != &s_root_record); + } else { + do { + if (r->m_alloc_ptr) { + Kokkos::Impl::DeepCopy<Kokkos::HostSpace, + Kokkos::Experimental::SYCLDeviceUSMSpace>( + &head, r->m_alloc_ptr, sizeof(SharedAllocationHeader)); + + // Formatting dependent on sizeof(uintptr_t) + const char* format_string; + + if (sizeof(uintptr_t) == sizeof(unsigned long)) { + format_string = "SYCL [ 0x%.12lx + %ld ] %s\n"; + } else if (sizeof(uintptr_t) == sizeof(unsigned long long)) { + format_string = "SYCL [ 0x%.12llx + %ld ] %s\n"; + } + + snprintf(buffer, 256, format_string, + reinterpret_cast<uintptr_t>(r->data()), r->size(), + head.m_label); + } else { + snprintf(buffer, 256, "SYCL [ 0 + 0 ]\n"); + } + s << buffer; + r = r->m_next; + } while (r != &s_root_record); + } +#else + (void)s; + (void)detail; + throw_runtime_exception( + "Kokkos::Impl::SharedAllocationRecord<SYCLDeviceUSMSpace>::print_records" + " only works with KOKKOS_ENABLE_DEBUG enabled"); +#endif +} + +} // namespace Impl +} // namespace Kokkos diff --git a/packages/kokkos/core/src/Serial/Kokkos_Serial_ViewCopyETIAvail.hpp b/packages/kokkos/core/src/Serial/Kokkos_Serial_ViewCopyETIAvail.hpp deleted file mode 100644 index f7d18854d..000000000 --- a/packages/kokkos/core/src/Serial/Kokkos_Serial_ViewCopyETIAvail.hpp +++ /dev/null @@ -1,57 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#ifndef KOKKOS_SERIAL_VIEWETIAVAIL_HPP -#define KOKKOS_SERIAL_VIEWETIAVAIL_HPP - -namespace Kokkos { -namespace Impl { -#define KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE Kokkos::Serial - -#include <eti/common/Kokkos_ViewFillCopyETIAvail_Macros.hpp> - -#undef KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE -} // namespace Impl -} // namespace Kokkos -#endif diff --git a/packages/kokkos/core/src/Serial/Kokkos_Serial_ViewCopyETIDecl.hpp b/packages/kokkos/core/src/Serial/Kokkos_Serial_ViewCopyETIDecl.hpp deleted file mode 100644 index 1410a7eea..000000000 --- a/packages/kokkos/core/src/Serial/Kokkos_Serial_ViewCopyETIDecl.hpp +++ /dev/null @@ -1,57 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#ifndef KOKKOS_SERIAL_VIEWETIDECL_HPP -#define KOKKOS_SERIAL_VIEWETIDECL_HPP - -namespace Kokkos { -namespace Impl { -#define KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE Kokkos::Serial - -#include <eti/common/Kokkos_ViewFillCopyETIDecl_Macros.hpp> - -#undef KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE -} // namespace Impl -} // namespace Kokkos -#endif diff --git a/packages/kokkos/core/src/Threads/Kokkos_ThreadsExec.cpp b/packages/kokkos/core/src/Threads/Kokkos_ThreadsExec.cpp index 7adfd127d..443ed7b72 100644 --- a/packages/kokkos/core/src/Threads/Kokkos_ThreadsExec.cpp +++ b/packages/kokkos/core/src/Threads/Kokkos_ThreadsExec.cpp @@ -55,7 +55,7 @@ #include <impl/Kokkos_Error.hpp> #include <impl/Kokkos_CPUDiscovery.hpp> -#include <impl/Kokkos_Profiling_Interface.hpp> +#include <impl/Kokkos_Tools.hpp> //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- @@ -185,7 +185,7 @@ ThreadsExec::ThreadsExec() ThreadsExec::~ThreadsExec() { const unsigned entry = m_pool_size - (m_pool_rank + 1); - typedef Kokkos::Impl::SharedAllocationRecord<Kokkos::HostSpace, void> Record; + using Record = Kokkos::Impl::SharedAllocationRecord<Kokkos::HostSpace, void>; if (m_scratch) { Record *const r = Record::get_record(m_scratch); @@ -410,7 +410,7 @@ void *ThreadsExec::root_reduce_scratch() { } void ThreadsExec::execute_resize_scratch(ThreadsExec &exec, const void *) { - typedef Kokkos::Impl::SharedAllocationRecord<Kokkos::HostSpace, void> Record; + using Record = Kokkos::Impl::SharedAllocationRecord<Kokkos::HostSpace, void>; if (exec.m_scratch) { Record *const r = Record::get_record(exec.m_scratch); @@ -708,10 +708,6 @@ void ThreadsExec::initialize(unsigned thread_count, unsigned use_numa_count, Impl::init_lock_array_host_space(); Impl::SharedAllocationRecord<void, void>::tracking_enable(); - -#if defined(KOKKOS_ENABLE_DEPRECATED_CODE) && defined(KOKKOS_ENABLE_PROFILING) - Kokkos::Profiling::initialize(); -#endif } //---------------------------------------------------------------------------- @@ -759,9 +755,7 @@ void ThreadsExec::finalize() { s_threads_process.m_pool_fan_size = 0; s_threads_process.m_pool_state = ThreadsExec::Inactive; -#if defined(KOKKOS_ENABLE_PROFILING) Kokkos::Profiling::finalize(); -#endif } //---------------------------------------------------------------------------- @@ -774,43 +768,20 @@ void ThreadsExec::finalize() { namespace Kokkos { -int Threads::concurrency() { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - return thread_pool_size(0); -#else - return impl_thread_pool_size(0); -#endif -} -#ifndef KOKKOS_ENABLE_DEPRECATED_CODE +int Threads::concurrency() { return impl_thread_pool_size(0); } void Threads::fence() const { Impl::ThreadsExec::fence(); } -#endif -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -Threads &Threads::instance(int) -#else -Threads &Threads::impl_instance(int) -#endif -{ +Threads &Threads::impl_instance(int) { static Threads t; return t; } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -int Threads::thread_pool_size(int depth) -#else -int Threads::impl_thread_pool_size(int depth) -#endif -{ +int Threads::impl_thread_pool_size(int depth) { return Impl::s_thread_pool_size[depth]; } #if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -int Threads::thread_pool_rank() -#else -int Threads::impl_thread_pool_rank() -#endif -{ +int Threads::impl_thread_pool_rank() { const pthread_t pid = pthread_self(); int i = 0; while ((i < Impl::s_thread_pool_size[0]) && (pid != Impl::s_threads_pid[i])) { @@ -821,8 +792,59 @@ int Threads::impl_thread_pool_rank() #endif const char *Threads::name() { return "Threads"; } -} /* namespace Kokkos */ +namespace Impl { + +int g_threads_space_factory_initialized = + initialize_space_factory<ThreadsSpaceInitializer>("050_Threads"); + +void ThreadsSpaceInitializer::initialize(const InitArguments &args) { + const int num_threads = args.num_threads; + const int use_numa = args.num_numa; + if (std::is_same<Kokkos::Threads, Kokkos::DefaultExecutionSpace>::value || + std::is_same<Kokkos::Threads, + Kokkos::HostSpace::execution_space>::value) { + if (num_threads > 0) { + if (use_numa > 0) { + Kokkos::Threads::impl_initialize(num_threads, use_numa); + } else { + Kokkos::Threads::impl_initialize(num_threads); + } + } else { + Kokkos::Threads::impl_initialize(); + } + // std::cout << "Kokkos::initialize() fyi: Pthread enabled and initialized" + // << std::endl ; + } else { + // std::cout << "Kokkos::initialize() fyi: Pthread enabled but not + // initialized" << std::endl ; + } +} + +void ThreadsSpaceInitializer::finalize(const bool all_spaces) { + if (std::is_same<Kokkos::Threads, Kokkos::DefaultExecutionSpace>::value || + std::is_same<Kokkos::Threads, + Kokkos::HostSpace::execution_space>::value || + all_spaces) { + if (Kokkos::Threads::impl_is_initialized()) + Kokkos::Threads::impl_finalize(); + } +} + +void ThreadsSpaceInitializer::fence() { Kokkos::Threads::impl_static_fence(); } + +void ThreadsSpaceInitializer::print_configuration(std::ostream &msg, + const bool detail) { + msg << "Host Parallel Execution Space:" << std::endl; + msg << " KOKKOS_ENABLE_THREADS: "; + msg << "yes" << std::endl; + + msg << "\nThreads Runtime Configuration:" << std::endl; + Kokkos::Threads::print_configuration(msg, detail); +} + +} // namespace Impl +} /* namespace Kokkos */ //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- #else diff --git a/packages/kokkos/core/src/Threads/Kokkos_ThreadsExec.hpp b/packages/kokkos/core/src/Threads/Kokkos_ThreadsExec.hpp index 1b11f45b7..1c8b3ac5f 100644 --- a/packages/kokkos/core/src/Threads/Kokkos_ThreadsExec.hpp +++ b/packages/kokkos/core/src/Threads/Kokkos_ThreadsExec.hpp @@ -57,6 +57,8 @@ #include <Kokkos_Atomic.hpp> #include <Kokkos_UniqueToken.hpp> +#include <impl/Kokkos_ConcurrentBitset.hpp> + //---------------------------------------------------------------------------- namespace Kokkos { @@ -258,8 +260,8 @@ class ThreadsExec { template <class FunctorType, class ArgTag> inline void fan_in_reduce(const FunctorType &f) const { - typedef Kokkos::Impl::FunctorValueJoin<FunctorType, ArgTag> Join; - typedef Kokkos::Impl::FunctorFinal<FunctorType, ArgTag> Final; + using Join = Kokkos::Impl::FunctorValueJoin<FunctorType, ArgTag>; + using Final = Kokkos::Impl::FunctorFinal<FunctorType, ArgTag>; const int rev_rank = m_pool_size - (m_pool_rank + 1); @@ -305,11 +307,11 @@ class ThreadsExec { // 3) Rendezvous : All threads inclusive scan value are available // 4) ScanCompleted : exclusive scan value copied - typedef Kokkos::Impl::FunctorValueTraits<FunctorType, ArgTag> Traits; - typedef Kokkos::Impl::FunctorValueJoin<FunctorType, ArgTag> Join; - typedef Kokkos::Impl::FunctorValueInit<FunctorType, ArgTag> Init; + using Traits = Kokkos::Impl::FunctorValueTraits<FunctorType, ArgTag>; + using Join = Kokkos::Impl::FunctorValueJoin<FunctorType, ArgTag>; + using Init = Kokkos::Impl::FunctorValueInit<FunctorType, ArgTag>; - typedef typename Traits::value_type scalar_type; + using scalar_type = typename Traits::value_type; const int rev_rank = m_pool_size - (m_pool_rank + 1); const unsigned count = Traits::value_count(f); @@ -411,11 +413,11 @@ class ThreadsExec { template <class FunctorType, class ArgTag> inline void scan_small(const FunctorType &f) { - typedef Kokkos::Impl::FunctorValueTraits<FunctorType, ArgTag> Traits; - typedef Kokkos::Impl::FunctorValueJoin<FunctorType, ArgTag> Join; - typedef Kokkos::Impl::FunctorValueInit<FunctorType, ArgTag> Init; + using Traits = Kokkos::Impl::FunctorValueTraits<FunctorType, ArgTag>; + using Join = Kokkos::Impl::FunctorValueJoin<FunctorType, ArgTag>; + using Init = Kokkos::Impl::FunctorValueInit<FunctorType, ArgTag>; - typedef typename Traits::value_type scalar_type; + using scalar_type = typename Traits::value_type; const int rev_rank = m_pool_size - (m_pool_rank + 1); const unsigned count = Traits::value_count(f); @@ -441,7 +443,7 @@ class ThreadsExec { } else { // Root thread does the thread-scan before releasing threads - scalar_type *ptr_prev = 0; + scalar_type *ptr_prev = nullptr; for (int rank = 0; rank < m_pool_size; ++rank) { scalar_type *const ptr = @@ -614,52 +616,26 @@ namespace Kokkos { inline int Threads::in_parallel() { return Impl::ThreadsExec::in_parallel(); } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -inline int Threads::is_initialized() { - return Impl::ThreadsExec::is_initialized(); -} -#else inline int Threads::impl_is_initialized() { return Impl::ThreadsExec::is_initialized(); } -#endif -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -inline void Threads::initialize( -#else -inline void Threads::impl_initialize( -#endif - unsigned threads_count, unsigned use_numa_count, - unsigned use_cores_per_numa, bool allow_asynchronous_threadpool) { +inline void Threads::impl_initialize(unsigned threads_count, + unsigned use_numa_count, + unsigned use_cores_per_numa, + bool allow_asynchronous_threadpool) { Impl::ThreadsExec::initialize(threads_count, use_numa_count, use_cores_per_numa, allow_asynchronous_threadpool); } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -inline void Threads::finalize() -#else -inline void Threads::impl_finalize() -#endif -{ - Impl::ThreadsExec::finalize(); -} +inline void Threads::impl_finalize() { Impl::ThreadsExec::finalize(); } inline void Threads::print_configuration(std::ostream &s, const bool detail) { Impl::ThreadsExec::print_configuration(s, detail); } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -inline bool Threads::sleep() { return Impl::ThreadsExec::sleep(); } - -inline bool Threads::wake() { return Impl::ThreadsExec::wake(); } -#endif - inline void Threads::impl_static_fence() { Impl::ThreadsExec::fence(); } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -inline void Threads::fence() { Impl::ThreadsExec::fence(); } -#endif - } /* namespace Kokkos */ //---------------------------------------------------------------------------- @@ -670,6 +646,12 @@ namespace Experimental { template <> class UniqueToken<Threads, UniqueTokenScope::Instance> { + private: + using buffer_type = Kokkos::View<uint32_t *, Kokkos::HostSpace>; + int m_count; + buffer_type m_buffer_view; + uint32_t volatile *m_buffer; + public: using execution_space = Threads; using size_type = int; @@ -677,38 +659,61 @@ class UniqueToken<Threads, UniqueTokenScope::Instance> { /// \brief create object size for concurrency on the given instance /// /// This object should not be shared between instances - UniqueToken(execution_space const & = execution_space()) noexcept {} + UniqueToken(execution_space const & = execution_space()) noexcept + : m_count(::Kokkos::Threads::impl_thread_pool_size()), + m_buffer_view(buffer_type()), + m_buffer(nullptr) {} + + UniqueToken(size_type max_size, execution_space const & = execution_space()) + : m_count(max_size > ::Kokkos::Threads::impl_thread_pool_size() + ? ::Kokkos::Threads::impl_thread_pool_size() + : max_size), + m_buffer_view( + max_size > ::Kokkos::Threads::impl_thread_pool_size() + ? buffer_type() + : buffer_type("UniqueToken::m_buffer_view", + ::Kokkos::Impl::concurrent_bitset::buffer_bound( + m_count))), + m_buffer(m_buffer_view.data()) {} /// \brief upper bound for acquired values, i.e. 0 <= value < size() - inline -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - int - size() const noexcept { - return Threads::thread_pool_size(); - } -#else - int - size() const noexcept { - return Threads::impl_thread_pool_size(); - } -#endif + KOKKOS_INLINE_FUNCTION + int size() const noexcept { return m_count; } /// \brief acquire value such that 0 <= value < size() - inline -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - int - acquire() const noexcept { - return Threads::thread_pool_rank(); - } + KOKKOS_INLINE_FUNCTION + int acquire() const noexcept { +#if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) + if (m_buffer == nullptr) { + return Threads::impl_thread_pool_rank(); + } else { + const ::Kokkos::pair<int, int> result = + ::Kokkos::Impl::concurrent_bitset::acquire_bounded( + m_buffer, m_count, ::Kokkos::Impl::clock_tic() % m_count); + + if (result.first < 0) { + ::Kokkos::abort( + "UniqueToken<Threads> failure to acquire tokens, no tokens " + "available"); + } + return result.first; + } #else - int - acquire() const noexcept { - return Threads::impl_thread_pool_rank(); - } + return 0; #endif + } /// \brief release a value acquired by generate - inline void release(int) const noexcept {} + KOKKOS_INLINE_FUNCTION + void release(int i) const noexcept { +#if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) + if (m_buffer != nullptr) { + ::Kokkos::Impl::concurrent_bitset::release(m_buffer, i); + } +#else + (void)i; +#endif + } }; template <> @@ -723,34 +728,28 @@ class UniqueToken<Threads, UniqueTokenScope::Global> { UniqueToken(execution_space const & = execution_space()) noexcept {} /// \brief upper bound for acquired values, i.e. 0 <= value < size() - inline -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - int - size() const noexcept { - return Threads::thread_pool_size(); - } -#else - int - size() const noexcept { + KOKKOS_INLINE_FUNCTION + int size() const noexcept { +#if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) return Threads::impl_thread_pool_size(); - } +#else + return 0; #endif + } /// \brief acquire value such that 0 <= value < size() - inline -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - int - acquire() const noexcept { - return Threads::thread_pool_rank(); - } -#else - int - acquire() const noexcept { + KOKKOS_INLINE_FUNCTION + int acquire() const noexcept { +#if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) return Threads::impl_thread_pool_rank(); - } +#else + return 0; #endif + } + /// \brief release a value acquired by generate - inline void release(int) const noexcept {} + KOKKOS_INLINE_FUNCTION + void release(int) const noexcept {} }; } // namespace Experimental diff --git a/packages/kokkos/core/src/Threads/Kokkos_ThreadsTeam.hpp b/packages/kokkos/core/src/Threads/Kokkos_ThreadsTeam.hpp index fe1a1e8b0..fb7736b47 100644 --- a/packages/kokkos/core/src/Threads/Kokkos_ThreadsTeam.hpp +++ b/packages/kokkos/core/src/Threads/Kokkos_ThreadsTeam.hpp @@ -74,11 +74,11 @@ class ThreadsExecTeamMember { enum { TEAM_REDUCE_SIZE = 512 }; public: - typedef Kokkos::Threads execution_space; - typedef execution_space::scratch_memory_space scratch_memory_space; + using execution_space = Kokkos::Threads; + using scratch_memory_space = execution_space::scratch_memory_space; private: - typedef execution_space::scratch_memory_space space; + using space = execution_space::scratch_memory_space; ThreadsExec* const m_exec; ThreadsExec* const* m_team_base; ///< Base for team fan-in space m_team_shared; @@ -175,8 +175,8 @@ class ThreadsExecTeamMember { } #else // Make sure there is enough scratch space: - typedef typename if_c<sizeof(ValueType) < TEAM_REDUCE_SIZE, ValueType, - void>::type type; + using type = typename if_c<sizeof(ValueType) < TEAM_REDUCE_SIZE, ValueType, + void>::type; if (m_team_base) { type* const local_value = ((type*)m_team_base[0]->scratch_memory()); @@ -201,8 +201,8 @@ class ThreadsExecTeamMember { } #else // Make sure there is enough scratch space: - typedef typename if_c<sizeof(ValueType) < TEAM_REDUCE_SIZE, ValueType, - void>::type type; + using type = typename if_c<sizeof(ValueType) < TEAM_REDUCE_SIZE, ValueType, + void>::type; f(value); if (m_team_base) { type* const local_value = ((type*)m_team_base[0]->scratch_memory()); @@ -227,10 +227,10 @@ class ThreadsExecTeamMember { #else { // Make sure there is enough scratch space: - typedef - typename if_c<sizeof(Type) < TEAM_REDUCE_SIZE, Type, void>::type type; + using type = + typename if_c<sizeof(Type) < TEAM_REDUCE_SIZE, Type, void>::type; - if (0 == m_exec) return value; + if (nullptr == m_exec) return value; if (team_rank() != team_size() - 1) *((volatile type*)m_exec->scratch_memory()) = value; @@ -270,12 +270,12 @@ class ThreadsExecTeamMember { #else team_reduce(const ReducerType& reducer, const typename ReducerType::value_type contribution) const { - typedef typename ReducerType::value_type value_type; + using value_type = typename ReducerType::value_type; // Make sure there is enough scratch space: - typedef typename if_c<sizeof(value_type) < TEAM_REDUCE_SIZE, value_type, - void>::type type; + using type = typename if_c<sizeof(value_type) < TEAM_REDUCE_SIZE, + value_type, void>::type; - if (0 == m_exec) return; + if (nullptr == m_exec) return; type* const local_value = ((type*)m_exec->scratch_memory()); @@ -333,11 +333,10 @@ class ThreadsExecTeamMember { #else { // Make sure there is enough scratch space: - typedef - typename if_c<sizeof(ArgType) < TEAM_REDUCE_SIZE, ArgType, void>::type - type; + using type = + typename if_c<sizeof(ArgType) < TEAM_REDUCE_SIZE, ArgType, void>::type; - if (0 == m_exec) return type(0); + if (nullptr == m_exec) return type(0); volatile type* const work_value = ((type*)m_exec->scratch_memory()); @@ -386,7 +385,7 @@ class ThreadsExecTeamMember { */ template <typename ArgType> KOKKOS_INLINE_FUNCTION ArgType team_scan(const ArgType& value) const { - return this->template team_scan<ArgType>(value, 0); + return this->template team_scan<ArgType>(value, nullptr); } //---------------------------------------- @@ -398,8 +397,8 @@ class ThreadsExecTeamMember { const TeamPolicyInternal<Kokkos::Threads, Properties...>& team, const int shared_size) : m_exec(exec), - m_team_base(0), - m_team_shared(0, 0), + m_team_base(nullptr), + m_team_shared(nullptr, 0), m_team_shared_size(shared_size), m_team_size(team.team_size()), m_team_rank(0), @@ -479,9 +478,9 @@ class ThreadsExecTeamMember { } ThreadsExecTeamMember() - : m_exec(0), - m_team_base(0), - m_team_shared(0, 0), + : m_exec(nullptr), + m_team_base(nullptr), + m_team_shared(nullptr, 0), m_team_shared_size(0), m_team_size(1), m_team_rank(0), @@ -577,33 +576,28 @@ class TeamPolicyInternal<Kokkos::Threads, Properties...> int m_chunk_size; + bool m_tune_team_size; + bool m_tune_vector_length; + inline void init(const int league_size_request, const int team_size_request) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - const int pool_size = traits::execution_space::thread_pool_size(0); -#else const int pool_size = traits::execution_space::impl_thread_pool_size(0); -#endif const int max_host_team_size = Impl::HostThreadTeamData::max_team_members; const int team_max = pool_size < max_host_team_size ? pool_size : max_host_team_size; -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - const int team_grain = traits::execution_space::thread_pool_size(2); -#else const int team_grain = traits::execution_space::impl_thread_pool_size(2); -#endif m_league_size = league_size_request; -#ifndef KOKKOS_ENABLE_DEPRECATED_CODE if (team_size_request > team_max) Kokkos::abort("Kokkos::abort: Requested Team Size is too large!"); -#endif m_team_size = team_size_request < team_max ? team_size_request : team_max; // Round team size up to a multiple of 'team_gain' const int team_size_grain = - team_grain * ((m_team_size + team_grain - 1) / team_grain); + (m_team_size + team_grain - 1 <= 0) + ? 1 + : team_grain * ((m_team_size + team_grain - 1) / team_grain); const int team_count = pool_size / team_size_grain; // Constraint : pool_size = m_team_alloc * team_count @@ -618,28 +612,15 @@ class TeamPolicyInternal<Kokkos::Threads, Properties...> public: //! Tag this class as a kokkos execution policy //! Tag this class as a kokkos execution policy - typedef TeamPolicyInternal execution_policy; + using execution_policy = TeamPolicyInternal; - typedef PolicyTraits<Properties...> traits; + using traits = PolicyTraits<Properties...>; const typename traits::execution_space& space() const { static typename traits::execution_space m_space; return m_space; } - TeamPolicyInternal& operator=(const TeamPolicyInternal& p) { - m_league_size = p.m_league_size; - m_team_size = p.m_team_size; - m_team_alloc = p.m_team_alloc; - m_team_iter = p.m_team_iter; - m_team_scratch_size[0] = p.m_team_scratch_size[0]; - m_thread_scratch_size[0] = p.m_thread_scratch_size[0]; - m_team_scratch_size[1] = p.m_team_scratch_size[1]; - m_thread_scratch_size[1] = p.m_thread_scratch_size[1]; - m_chunk_size = p.m_chunk_size; - return *this; - } - template <class ExecSpace, class... OtherProperties> friend class TeamPolicyInternal; @@ -655,46 +636,21 @@ class TeamPolicyInternal<Kokkos::Threads, Properties...> m_team_scratch_size[1] = p.m_team_scratch_size[1]; m_thread_scratch_size[1] = p.m_thread_scratch_size[1]; m_chunk_size = p.m_chunk_size; + m_tune_team_size = p.m_tune_team_size; + m_tune_vector_length = p.m_tune_vector_length; } //---------------------------------------- -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - template <class FunctorType> - inline static int team_size_max(const FunctorType&) { - int pool_size = traits::execution_space::thread_pool_size(1); - int max_host_team_size = Impl::HostThreadTeamData::max_team_members; - return pool_size < max_host_team_size ? pool_size : max_host_team_size; - } - - template <class FunctorType> - inline static int team_size_recommended(const FunctorType&) { - return traits::execution_space::thread_pool_size(2); - } - - template <class FunctorType> - inline static int team_size_recommended(const FunctorType&, const int&) { - return traits::execution_space::thread_pool_size(2); - } -#endif - template <class FunctorType> int team_size_max(const FunctorType&, const ParallelForTag&) const { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - int pool_size = traits::execution_space::thread_pool_size(1); -#else - int pool_size = traits::execution_space::impl_thread_pool_size(1); -#endif + int pool_size = traits::execution_space::impl_thread_pool_size(1); int max_host_team_size = Impl::HostThreadTeamData::max_team_members; return pool_size < max_host_team_size ? pool_size : max_host_team_size; } template <class FunctorType> int team_size_max(const FunctorType&, const ParallelReduceTag&) const { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - int pool_size = traits::execution_space::thread_pool_size(1); -#else - int pool_size = traits::execution_space::impl_thread_pool_size(1); -#endif + int pool_size = traits::execution_space::impl_thread_pool_size(1); int max_host_team_size = Impl::HostThreadTeamData::max_team_members; return pool_size < max_host_team_size ? pool_size : max_host_team_size; } @@ -705,20 +661,12 @@ class TeamPolicyInternal<Kokkos::Threads, Properties...> } template <class FunctorType> int team_size_recommended(const FunctorType&, const ParallelForTag&) const { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - return traits::execution_space::thread_pool_size(2); -#else return traits::execution_space::impl_thread_pool_size(2); -#endif } template <class FunctorType> int team_size_recommended(const FunctorType&, const ParallelReduceTag&) const { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - return traits::execution_space::thread_pool_size(2); -#else return traits::execution_space::impl_thread_pool_size(2); -#endif } template <class FunctorType, class ReducerType> inline int team_size_recommended(const FunctorType& f, const ReducerType&, @@ -738,8 +686,14 @@ class TeamPolicyInternal<Kokkos::Threads, Properties...> //---------------------------------------- inline int team_size() const { return m_team_size; } + inline int impl_vector_length() const { return 1; } inline int team_alloc() const { return m_team_alloc; } inline int league_size() const { return m_league_size; } + + inline bool impl_auto_team_size() const { return m_tune_team_size; } + inline bool impl_auto_vector_length() const { return m_tune_vector_length; } + inline void impl_set_team_size(size_t size) { init(m_league_size, size); } + inline void impl_set_vector_length(size_t /**size*/) {} inline size_t scratch_size(const int& level, int team_size_ = -1) const { if (team_size_ < 0) team_size_ = m_team_size; return m_team_scratch_size[level] + @@ -757,105 +711,65 @@ class TeamPolicyInternal<Kokkos::Threads, Properties...> m_team_alloc(0), m_team_scratch_size{0, 0}, m_thread_scratch_size{0, 0}, - m_chunk_size(0) { + m_chunk_size(0), + m_tune_team_size(false), + m_tune_vector_length(false) { init(league_size_request, team_size_request); (void)vector_length_request; } - /** \brief Specify league size, request team size */ - TeamPolicyInternal(const typename traits::execution_space&, + /** \brief Specify league size, request team size and vector length*/ + TeamPolicyInternal(const typename traits::execution_space& space, int league_size_request, const Kokkos::AUTO_t& /* team_size_request */ , - int /* vector_length_request */ = 1) - : m_league_size(0), - m_team_size(0), - m_team_alloc(0), - m_team_scratch_size{0, 0}, - m_thread_scratch_size{0, 0}, - m_chunk_size(0) -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - { - init(league_size_request, traits::execution_space::thread_pool_size(2)); - } -#else - { - init(league_size_request, - traits::execution_space::impl_thread_pool_size(2)); - } -#endif + const Kokkos::AUTO_t& /* vector_length_request */) + : TeamPolicyInternal(space, league_size_request, -1, -1) {} + + /** \brief Specify league size, request team size*/ + TeamPolicyInternal(const typename traits::execution_space& space, + int league_size_request, + const Kokkos::AUTO_t& /* team_size_request */ + , + int vector_length_request) + : TeamPolicyInternal(space, league_size_request, -1, + vector_length_request) {} + + /** \brief Specify league size and team size, request vector length*/ + TeamPolicyInternal(const typename traits::execution_space& space, + int league_size_request, int team_size_request, + const Kokkos::AUTO_t& /* vector_length_request */) + : TeamPolicyInternal(space, league_size_request, team_size_request, -1) {} TeamPolicyInternal(int league_size_request, int team_size_request, - int /* vector_length_request */ = 1) - : m_league_size(0), - m_team_size(0), - m_team_alloc(0), - m_team_scratch_size{0, 0}, - m_thread_scratch_size{0, 0}, - m_chunk_size(0) { - init(league_size_request, team_size_request); - } + int vector_length_request = 1) + : TeamPolicyInternal(typename traits::execution_space(), + league_size_request, team_size_request, + vector_length_request) {} TeamPolicyInternal(int league_size_request, const Kokkos::AUTO_t& /* team_size_request */ , - int /* vector_length_request */ = 1) - : m_league_size(0), - m_team_size(0), - m_team_alloc(0), - m_team_scratch_size{0, 0}, - m_thread_scratch_size{0, 0}, - m_chunk_size(0) -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - { - init(league_size_request, traits::execution_space::thread_pool_size(2)); - } -#else - { - init(league_size_request, - traits::execution_space::impl_thread_pool_size(2)); - } -#endif - inline int chunk_size() const { return m_chunk_size; } + int vector_length_request = 1) + : TeamPolicyInternal(typename traits::execution_space(), + league_size_request, -1, vector_length_request) {} -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - /** \brief set chunk_size to a discrete value*/ - inline TeamPolicyInternal set_chunk_size( - typename traits::index_type chunk_size_) const { - TeamPolicyInternal p = *this; - p.m_chunk_size = chunk_size_; - return p; - } + /** \brief Specify league size, request team size and vector length*/ + TeamPolicyInternal(int league_size_request, + const Kokkos::AUTO_t& /* team_size_request */ + , + const Kokkos::AUTO_t& /* vector_length_request */) + : TeamPolicyInternal(typename traits::execution_space(), + league_size_request, -1, -1) {} - /** \brief set per team scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal set_scratch_size( - const int& level, const PerTeamValue& per_team) const { - TeamPolicyInternal p = *this; - p.m_team_scratch_size[level] = per_team.value; - return p; - } + /** \brief Specify league size and team size, request vector length*/ + TeamPolicyInternal(int league_size_request, int team_size_request, + const Kokkos::AUTO_t& /* vector_length_request */) + : TeamPolicyInternal(typename traits::execution_space(), + league_size_request, team_size_request, -1) {} - /** \brief set per thread scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal set_scratch_size( - const int& level, const PerThreadValue& per_thread) const { - TeamPolicyInternal p = *this; - p.m_thread_scratch_size[level] = per_thread.value; - return p; - } + inline int chunk_size() const { return m_chunk_size; } - /** \brief set per thread and per team scratch size for a specific level of - * the scratch hierarchy */ - inline TeamPolicyInternal set_scratch_size( - const int& level, const PerTeamValue& per_team, - const PerThreadValue& per_thread) const { - TeamPolicyInternal p = *this; - p.m_team_scratch_size[level] = per_team.value; - p.m_thread_scratch_size[level] = per_thread.value; - return p; - } -#else /** \brief set chunk_size to a discrete value*/ inline TeamPolicyInternal& set_chunk_size( typename traits::index_type chunk_size_) { @@ -884,52 +798,15 @@ class TeamPolicyInternal<Kokkos::Threads, Properties...> inline TeamPolicyInternal& set_scratch_size( const int& level, const PerTeamValue& per_team, const PerThreadValue& per_thread) { - m_team_scratch_size[level] = per_team.value; - m_thread_scratch_size[level] = per_thread.value; - return *this; - } -#endif - - protected: -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - /** \brief set chunk_size to a discrete value*/ - inline TeamPolicyInternal internal_set_chunk_size( - typename traits::index_type chunk_size_) { - m_chunk_size = chunk_size_; - return *this; - } - - /** \brief set per team scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal internal_set_scratch_size( - const int& level, const PerTeamValue& per_team) { - m_team_scratch_size[level] = per_team.value; - return *this; - } - - /** \brief set per thread scratch size for a specific level of the scratch - * hierarchy */ - inline TeamPolicyInternal internal_set_scratch_size( - const int& level, const PerThreadValue& per_thread) { - m_thread_scratch_size[level] = per_thread.value; - return *this; - } - - /** \brief set per thread and per team scratch size for a specific level of - * the scratch hierarchy */ - inline TeamPolicyInternal internal_set_scratch_size( - const int& level, const PerTeamValue& per_team, - const PerThreadValue& per_thread) { m_team_scratch_size[level] = per_team.value; m_thread_scratch_size[level] = per_thread.value; return *this; } -#endif private: /** \brief finalize chunk_size if it was set to AUTO*/ inline void set_auto_chunk_size() { - int concurrency = traits::execution_space::concurrency() / m_team_alloc; + int64_t concurrency = traits::execution_space::concurrency() / m_team_alloc; if (concurrency == 0) concurrency = 1; if (m_chunk_size > 0) { @@ -950,7 +827,7 @@ class TeamPolicyInternal<Kokkos::Threads, Properties...> } public: - typedef Impl::ThreadsExecTeamMember member_type; + using member_type = Impl::ThreadsExecTeamMember; friend class Impl::ThreadsExecTeamMember; }; @@ -976,7 +853,7 @@ KOKKOS_INLINE_FUNCTION Impl::TeamThreadRangeBoundariesStruct< Impl::ThreadsExecTeamMember> TeamThreadRange(const Impl::ThreadsExecTeamMember& thread, const iType1& begin, const iType2& end) { - typedef typename std::common_type<iType1, iType2>::type iType; + using iType = typename std::common_type<iType1, iType2>::type; return Impl::TeamThreadRangeBoundariesStruct<iType, Impl::ThreadsExecTeamMember>( thread, iType(begin), iType(end)); @@ -998,7 +875,7 @@ KOKKOS_INLINE_FUNCTION Impl::TeamThreadRangeBoundariesStruct< Impl::ThreadsExecTeamMember> TeamVectorRange(const Impl::ThreadsExecTeamMember& thread, const iType1& begin, const iType2& end) { - typedef typename std::common_type<iType1, iType2>::type iType; + using iType = typename std::common_type<iType1, iType2>::type; return Impl::TeamThreadRangeBoundariesStruct<iType, Impl::ThreadsExecTeamMember>( thread, iType(begin), iType(end)); @@ -1043,7 +920,7 @@ namespace Kokkos { * i=0..N-1. * * The range i=0..N-1 is mapped to all threads of the the calling thread team. - * This functionality requires C++11 support.*/ + */ template <typename iType, class Lambda> KOKKOS_INLINE_FUNCTION void parallel_for( const Impl::TeamThreadRangeBoundariesStruct< @@ -1058,8 +935,8 @@ KOKKOS_INLINE_FUNCTION void parallel_for( * ValueType & val) for each i=0..N-1. * * The range i=0..N-1 is mapped to all threads of the the calling thread team - * and a summation of val is performed and put into result. This functionality - * requires C++11 support.*/ + * and a summation of val is performed and put into result. + */ template <typename iType, class Lambda, typename ValueType> KOKKOS_INLINE_FUNCTION typename std::enable_if<!Kokkos::is_reducer<ValueType>::value>::type @@ -1105,7 +982,7 @@ namespace Kokkos { * i=0..N-1. * * The range i=0..N-1 is mapped to all vector lanes of the the calling thread. - * This functionality requires C++11 support.*/ + */ template <typename iType, class Lambda> KOKKOS_INLINE_FUNCTION void parallel_for( const Impl::ThreadVectorRangeBoundariesStruct< @@ -1123,8 +1000,8 @@ KOKKOS_INLINE_FUNCTION void parallel_for( * ValueType & val) for each i=0..N-1. * * The range i=0..N-1 is mapped to all vector lanes of the the calling thread - * and a summation of val is performed and put into result. This functionality - * requires C++11 support.*/ + * and a summation of val is performed and put into result. + */ template <typename iType, class Lambda, typename ValueType> KOKKOS_INLINE_FUNCTION typename std::enable_if<!Kokkos::is_reducer<ValueType>::value>::type @@ -1151,6 +1028,42 @@ KOKKOS_INLINE_FUNCTION } } +/** \brief Inter-thread parallel exclusive prefix sum. Executes + * lambda(iType i, ValueType & val, bool final) for each i=0..N-1. + * + */ +template <typename iType, class FunctorType> +KOKKOS_INLINE_FUNCTION void parallel_scan( + const Impl::TeamThreadRangeBoundariesStruct< + iType, Impl::ThreadsExecTeamMember>& loop_bounds, + const FunctorType& lambda) { + using value_type = typename Kokkos::Impl::FunctorAnalysis< + Kokkos::Impl::FunctorPatternInterface::SCAN, void, + FunctorType>::value_type; + + auto scan_val = value_type{}; + + // Intra-member scan +#ifdef KOKKOS_ENABLE_PRAGMA_IVDEP +#pragma ivdep +#endif + for (iType i = loop_bounds.start; i < loop_bounds.end; + i += loop_bounds.increment) { + lambda(i, scan_val, false); + } + + // 'scan_val' output is the exclusive prefix sum + scan_val = loop_bounds.thread.team_scan(scan_val); + +#ifdef KOKKOS_ENABLE_PRAGMA_IVDEP +#pragma ivdep +#endif + for (iType i = loop_bounds.start; i < loop_bounds.end; + i += loop_bounds.increment) { + lambda(i, scan_val, true); + } +} + /** \brief Intra-thread vector parallel exclusive prefix sum. Executes * lambda(iType i, ValueType & val, bool final) for each i=0..N-1. * @@ -1161,14 +1074,15 @@ KOKKOS_INLINE_FUNCTION * needs to be added to val no matter whether final==true or not. In a serial * execution (i.e. team_size==1) the operator is only called once with * final==true. Scan_val will be set to the final sum value over all vector - * lanes. This functionality requires C++11 support.*/ + * lanes. + */ template <typename iType, class FunctorType> KOKKOS_INLINE_FUNCTION void parallel_scan( const Impl::ThreadVectorRangeBoundariesStruct< iType, Impl::ThreadsExecTeamMember>& loop_boundaries, const FunctorType& lambda) { - typedef Kokkos::Impl::FunctorValueTraits<FunctorType, void> ValueTraits; - typedef typename ValueTraits::value_type value_type; + using ValueTraits = Kokkos::Impl::FunctorValueTraits<FunctorType, void>; + using value_type = typename ValueTraits::value_type; value_type scan_val = value_type(); diff --git a/packages/kokkos/core/src/Threads/Kokkos_Threads_Parallel.hpp b/packages/kokkos/core/src/Threads/Kokkos_Threads_Parallel.hpp index fbc83e9a5..c08615188 100644 --- a/packages/kokkos/core/src/Threads/Kokkos_Threads_Parallel.hpp +++ b/packages/kokkos/core/src/Threads/Kokkos_Threads_Parallel.hpp @@ -48,9 +48,6 @@ #include <Kokkos_Macros.hpp> #if defined(KOKKOS_ENABLE_THREADS) -#include <vector> -#include <iostream> - #include <Kokkos_Parallel.hpp> #include <impl/Kokkos_FunctorAdapter.hpp> @@ -70,10 +67,10 @@ template <class FunctorType, class... Traits> class ParallelFor<FunctorType, Kokkos::RangePolicy<Traits...>, Kokkos::Threads> { private: - typedef Kokkos::RangePolicy<Traits...> Policy; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::WorkRange WorkRange; - typedef typename Policy::member_type Member; + using Policy = Kokkos::RangePolicy<Traits...>; + using WorkTag = typename Policy::work_tag; + using WorkRange = typename Policy::WorkRange; + using Member = typename Policy::member_type; const FunctorType m_functor; const Policy m_policy; @@ -171,17 +168,16 @@ template <class FunctorType, class... Traits> class ParallelFor<FunctorType, Kokkos::MDRangePolicy<Traits...>, Kokkos::Threads> { private: - typedef Kokkos::MDRangePolicy<Traits...> MDRangePolicy; - typedef typename MDRangePolicy::impl_range_policy Policy; + using MDRangePolicy = Kokkos::MDRangePolicy<Traits...>; + using Policy = typename MDRangePolicy::impl_range_policy; - typedef typename MDRangePolicy::work_tag WorkTag; + using WorkTag = typename MDRangePolicy::work_tag; - typedef typename Policy::WorkRange WorkRange; - typedef typename Policy::member_type Member; + using WorkRange = typename Policy::WorkRange; + using Member = typename Policy::member_type; - typedef typename Kokkos::Impl::HostIterateTile< - MDRangePolicy, FunctorType, typename MDRangePolicy::work_tag, void> - iterate_type; + using iterate_type = typename Kokkos::Impl::HostIterateTile< + MDRangePolicy, FunctorType, typename MDRangePolicy::work_tag, void>; const FunctorType m_functor; const MDRangePolicy m_mdr_policy; @@ -266,10 +262,10 @@ template <class FunctorType, class... Properties> class ParallelFor<FunctorType, Kokkos::TeamPolicy<Properties...>, Kokkos::Threads> { private: - typedef Kokkos::Impl::TeamPolicyInternal<Kokkos::Threads, Properties...> - Policy; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::member_type Member; + using Policy = + Kokkos::Impl::TeamPolicyInternal<Kokkos::Threads, Properties...>; + using WorkTag = typename Policy::work_tag; + using Member = typename Policy::member_type; const FunctorType m_functor; const Policy m_policy; @@ -326,6 +322,17 @@ class ParallelFor<FunctorType, Kokkos::TeamPolicy<Properties...>, exec.barrier(); exec.fan_in(); } + template <typename Policy> + Policy fix_policy(Policy policy) { + if (policy.impl_vector_length() < 0) { + policy.impl_set_vector_length(1); + } + if (policy.team_size() < 0) { + policy.impl_set_team_size( + policy.team_size_recommended(m_functor, ParallelForTag{})); + } + return policy; + } public: inline void execute() const { @@ -339,10 +346,10 @@ class ParallelFor<FunctorType, Kokkos::TeamPolicy<Properties...>, ParallelFor(const FunctorType &arg_functor, const Policy &arg_policy) : m_functor(arg_functor), - m_policy(arg_policy), - m_shared(arg_policy.scratch_size(0) + arg_policy.scratch_size(1) + + m_policy(fix_policy(arg_policy)), + m_shared(m_policy.scratch_size(0) + m_policy.scratch_size(1) + FunctorTeamShmemSize<FunctorType>::value( - arg_functor, arg_policy.team_size())) {} + arg_functor, m_policy.team_size())) {} }; //---------------------------------------------------------------------------- @@ -353,26 +360,27 @@ template <class FunctorType, class ReducerType, class... Traits> class ParallelReduce<FunctorType, Kokkos::RangePolicy<Traits...>, ReducerType, Kokkos::Threads> { private: - typedef Kokkos::RangePolicy<Traits...> Policy; + using Policy = Kokkos::RangePolicy<Traits...>; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::WorkRange WorkRange; - typedef typename Policy::member_type Member; + using WorkTag = typename Policy::work_tag; + using WorkRange = typename Policy::WorkRange; + using Member = typename Policy::member_type; - typedef Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, - FunctorType, ReducerType> - ReducerConditional; - typedef typename ReducerConditional::type ReducerTypeFwd; - typedef + using ReducerConditional = + Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, + FunctorType, ReducerType>; + using ReducerTypeFwd = typename ReducerConditional::type; + using WorkTagFwd = typename Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, - WorkTag, void>::type WorkTagFwd; + WorkTag, void>::type; - typedef Kokkos::Impl::FunctorValueTraits<ReducerTypeFwd, WorkTagFwd> - ValueTraits; - typedef Kokkos::Impl::FunctorValueInit<ReducerTypeFwd, WorkTagFwd> ValueInit; + using ValueTraits = + Kokkos::Impl::FunctorValueTraits<ReducerTypeFwd, WorkTagFwd>; + using ValueInit = Kokkos::Impl::FunctorValueInit<ReducerTypeFwd, WorkTagFwd>; + using ValueFinal = Kokkos::Impl::FunctorFinal<ReducerTypeFwd, WorkTagFwd>; - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::reference_type reference_type; + using pointer_type = typename ValueTraits::pointer_type; + using reference_type = typename ValueTraits::reference_type; const FunctorType m_functor; const Policy m_policy; @@ -465,23 +473,32 @@ class ParallelReduce<FunctorType, Kokkos::RangePolicy<Traits...>, ReducerType, public: inline void execute() const { - ThreadsExec::resize_scratch( - ValueTraits::value_size( - ReducerConditional::select(m_functor, m_reducer)), - 0); + if (m_policy.end() <= m_policy.begin()) { + if (m_result_ptr) { + ValueInit::init(ReducerConditional::select(m_functor, m_reducer), + m_result_ptr); + ValueFinal::final(ReducerConditional::select(m_functor, m_reducer), + m_result_ptr); + } + } else { + ThreadsExec::resize_scratch( + ValueTraits::value_size( + ReducerConditional::select(m_functor, m_reducer)), + 0); - ThreadsExec::start(&ParallelReduce::exec, this); + ThreadsExec::start(&ParallelReduce::exec, this); - ThreadsExec::fence(); + ThreadsExec::fence(); - if (m_result_ptr) { - const pointer_type data = - (pointer_type)ThreadsExec::root_reduce_scratch(); + if (m_result_ptr) { + const pointer_type data = + (pointer_type)ThreadsExec::root_reduce_scratch(); - const unsigned n = ValueTraits::value_count( - ReducerConditional::select(m_functor, m_reducer)); - for (unsigned i = 0; i < n; ++i) { - m_result_ptr[i] = data[i]; + const unsigned n = ValueTraits::value_count( + ReducerConditional::select(m_functor, m_reducer)); + for (unsigned i = 0; i < n; ++i) { + m_result_ptr[i] = data[i]; + } } } } @@ -523,28 +540,28 @@ template <class FunctorType, class ReducerType, class... Traits> class ParallelReduce<FunctorType, Kokkos::MDRangePolicy<Traits...>, ReducerType, Kokkos::Threads> { private: - typedef Kokkos::MDRangePolicy<Traits...> MDRangePolicy; - typedef typename MDRangePolicy::impl_range_policy Policy; - - typedef typename MDRangePolicy::work_tag WorkTag; - typedef typename Policy::WorkRange WorkRange; - typedef typename Policy::member_type Member; - - typedef Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, - FunctorType, ReducerType> - ReducerConditional; - typedef typename ReducerConditional::type ReducerTypeFwd; - typedef + using MDRangePolicy = Kokkos::MDRangePolicy<Traits...>; + using Policy = typename MDRangePolicy::impl_range_policy; + + using WorkTag = typename MDRangePolicy::work_tag; + using WorkRange = typename Policy::WorkRange; + using Member = typename Policy::member_type; + + using ReducerConditional = + Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, + FunctorType, ReducerType>; + using ReducerTypeFwd = typename ReducerConditional::type; + using WorkTagFwd = typename Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, - WorkTag, void>::type WorkTagFwd; + WorkTag, void>::type; - typedef Kokkos::Impl::FunctorValueTraits<ReducerTypeFwd, WorkTagFwd> - ValueTraits; - typedef Kokkos::Impl::FunctorValueInit<ReducerTypeFwd, WorkTagFwd> ValueInit; + using ValueTraits = + Kokkos::Impl::FunctorValueTraits<ReducerTypeFwd, WorkTagFwd>; + using ValueInit = Kokkos::Impl::FunctorValueInit<ReducerTypeFwd, WorkTagFwd>; - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::value_type value_type; - typedef typename ValueTraits::reference_type reference_type; + using pointer_type = typename ValueTraits::pointer_type; + using value_type = typename ValueTraits::value_type; + using reference_type = typename ValueTraits::reference_type; using iterate_type = typename Kokkos::Impl::HostIterateTile<MDRangePolicy, FunctorType, @@ -685,25 +702,26 @@ template <class FunctorType, class ReducerType, class... Properties> class ParallelReduce<FunctorType, Kokkos::TeamPolicy<Properties...>, ReducerType, Kokkos::Threads> { private: - typedef Kokkos::Impl::TeamPolicyInternal<Kokkos::Threads, Properties...> - Policy; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::member_type Member; - - typedef Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, - FunctorType, ReducerType> - ReducerConditional; - typedef typename ReducerConditional::type ReducerTypeFwd; - typedef + using Policy = + Kokkos::Impl::TeamPolicyInternal<Kokkos::Threads, Properties...>; + using WorkTag = typename Policy::work_tag; + using Member = typename Policy::member_type; + + using ReducerConditional = + Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, + FunctorType, ReducerType>; + using ReducerTypeFwd = typename ReducerConditional::type; + using WorkTagFwd = typename Kokkos::Impl::if_c<std::is_same<InvalidType, ReducerType>::value, - WorkTag, void>::type WorkTagFwd; + WorkTag, void>::type; - typedef Kokkos::Impl::FunctorValueTraits<ReducerTypeFwd, WorkTagFwd> - ValueTraits; - typedef Kokkos::Impl::FunctorValueInit<ReducerTypeFwd, WorkTagFwd> ValueInit; + using ValueTraits = + Kokkos::Impl::FunctorValueTraits<ReducerTypeFwd, WorkTagFwd>; + using ValueInit = Kokkos::Impl::FunctorValueInit<ReducerTypeFwd, WorkTagFwd>; + using ValueFinal = Kokkos::Impl::FunctorFinal<ReducerTypeFwd, WorkTagFwd>; - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::reference_type reference_type; + using pointer_type = typename ValueTraits::pointer_type; + using reference_type = typename ValueTraits::reference_type; const FunctorType m_functor; const Policy m_policy; @@ -747,27 +765,48 @@ class ParallelReduce<FunctorType, Kokkos::TeamPolicy<Properties...>, public: inline void execute() const { - ThreadsExec::resize_scratch( - ValueTraits::value_size( - ReducerConditional::select(m_functor, m_reducer)), - Policy::member_type::team_reduce_size() + m_shared); + if (m_policy.league_size() * m_policy.team_size() == 0) { + if (m_result_ptr) { + ValueInit::init(ReducerConditional::select(m_functor, m_reducer), + m_result_ptr); + ValueFinal::final(ReducerConditional::select(m_functor, m_reducer), + m_result_ptr); + } + } else { + ThreadsExec::resize_scratch( + ValueTraits::value_size( + ReducerConditional::select(m_functor, m_reducer)), + Policy::member_type::team_reduce_size() + m_shared); - ThreadsExec::start(&ParallelReduce::exec, this); + ThreadsExec::start(&ParallelReduce::exec, this); - ThreadsExec::fence(); + ThreadsExec::fence(); - if (m_result_ptr) { - const pointer_type data = - (pointer_type)ThreadsExec::root_reduce_scratch(); + if (m_result_ptr) { + const pointer_type data = + (pointer_type)ThreadsExec::root_reduce_scratch(); - const unsigned n = ValueTraits::value_count( - ReducerConditional::select(m_functor, m_reducer)); - for (unsigned i = 0; i < n; ++i) { - m_result_ptr[i] = data[i]; + const unsigned n = ValueTraits::value_count( + ReducerConditional::select(m_functor, m_reducer)); + for (unsigned i = 0; i < n; ++i) { + m_result_ptr[i] = data[i]; + } } } } + template <typename Policy> + Policy fix_policy(Policy policy) { + if (policy.impl_vector_length() < 0) { + policy.impl_set_vector_length(1); + } + if (policy.team_size() < 0) { + policy.impl_set_team_size(policy.team_size_recommended( + m_functor, m_reducer, ParallelReduceTag{})); + } + return policy; + } + template <class ViewType> inline ParallelReduce( const FunctorType &arg_functor, const Policy &arg_policy, @@ -776,22 +815,22 @@ class ParallelReduce<FunctorType, Kokkos::TeamPolicy<Properties...>, !Kokkos::is_reducer_type<ReducerType>::value, void *>::type = nullptr) : m_functor(arg_functor), - m_policy(arg_policy), + m_policy(fix_policy(arg_policy)), m_reducer(InvalidType()), m_result_ptr(arg_result.data()), - m_shared(arg_policy.scratch_size(0) + arg_policy.scratch_size(1) + + m_shared(m_policy.scratch_size(0) + m_policy.scratch_size(1) + FunctorTeamShmemSize<FunctorType>::value( - arg_functor, arg_policy.team_size())) {} + arg_functor, m_policy.team_size())) {} inline ParallelReduce(const FunctorType &arg_functor, Policy arg_policy, const ReducerType &reducer) : m_functor(arg_functor), - m_policy(arg_policy), + m_policy(fix_policy(arg_policy)), m_reducer(reducer), m_result_ptr(reducer.view().data()), - m_shared(arg_policy.scratch_size(0) + arg_policy.scratch_size(1) + + m_shared(m_policy.scratch_size(0) + m_policy.scratch_size(1) + FunctorTeamShmemSize<FunctorType>::value( - arg_functor, arg_policy.team_size())) { + arg_functor, m_policy.team_size())) { /*static_assert( std::is_same< typename ViewType::memory_space , Kokkos::HostSpace >::value , "Reduction result on Kokkos::OpenMP must be a Kokkos::View in HostSpace" @@ -807,15 +846,15 @@ template <class FunctorType, class... Traits> class ParallelScan<FunctorType, Kokkos::RangePolicy<Traits...>, Kokkos::Threads> { private: - typedef Kokkos::RangePolicy<Traits...> Policy; - typedef typename Policy::WorkRange WorkRange; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::member_type Member; - typedef Kokkos::Impl::FunctorValueTraits<FunctorType, WorkTag> ValueTraits; - typedef Kokkos::Impl::FunctorValueInit<FunctorType, WorkTag> ValueInit; + using Policy = Kokkos::RangePolicy<Traits...>; + using WorkRange = typename Policy::WorkRange; + using WorkTag = typename Policy::work_tag; + using Member = typename Policy::member_type; + using ValueTraits = Kokkos::Impl::FunctorValueTraits<FunctorType, WorkTag>; + using ValueInit = Kokkos::Impl::FunctorValueInit<FunctorType, WorkTag>; - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::reference_type reference_type; + using pointer_type = typename ValueTraits::pointer_type; + using reference_type = typename ValueTraits::reference_type; const FunctorType m_functor; const Policy m_policy; @@ -884,15 +923,15 @@ template <class FunctorType, class ReturnType, class... Traits> class ParallelScanWithTotal<FunctorType, Kokkos::RangePolicy<Traits...>, ReturnType, Kokkos::Threads> { private: - typedef Kokkos::RangePolicy<Traits...> Policy; - typedef typename Policy::WorkRange WorkRange; - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::member_type Member; - typedef Kokkos::Impl::FunctorValueTraits<FunctorType, WorkTag> ValueTraits; - typedef Kokkos::Impl::FunctorValueInit<FunctorType, WorkTag> ValueInit; - - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::reference_type reference_type; + using Policy = Kokkos::RangePolicy<Traits...>; + using WorkRange = typename Policy::WorkRange; + using WorkTag = typename Policy::work_tag; + using Member = typename Policy::member_type; + using ValueTraits = Kokkos::Impl::FunctorValueTraits<FunctorType, WorkTag>; + using ValueInit = Kokkos::Impl::FunctorValueInit<FunctorType, WorkTag>; + + using pointer_type = typename ValueTraits::pointer_type; + using reference_type = typename ValueTraits::reference_type; const FunctorType m_functor; const Policy m_policy; diff --git a/packages/kokkos/core/src/Threads/Kokkos_Threads_WorkGraphPolicy.hpp b/packages/kokkos/core/src/Threads/Kokkos_Threads_WorkGraphPolicy.hpp index 7bcd9aaee..401f3c0b1 100644 --- a/packages/kokkos/core/src/Threads/Kokkos_Threads_WorkGraphPolicy.hpp +++ b/packages/kokkos/core/src/Threads/Kokkos_Threads_WorkGraphPolicy.hpp @@ -45,6 +45,9 @@ #ifndef KOKKOS_THREADS_WORKGRAPHPOLICY_HPP #define KOKKOS_THREADS_WORKGRAPHPOLICY_HPP +#include <Kokkos_Core_fwd.hpp> +#include <Kokkos_Threads.hpp> + namespace Kokkos { namespace Impl { @@ -52,11 +55,10 @@ template <class FunctorType, class... Traits> class ParallelFor<FunctorType, Kokkos::WorkGraphPolicy<Traits...>, Kokkos::Threads> { private: - typedef Kokkos::WorkGraphPolicy<Traits...> Policy; + using Policy = Kokkos::WorkGraphPolicy<Traits...>; - typedef ParallelFor<FunctorType, Kokkos::WorkGraphPolicy<Traits...>, - Kokkos::Threads> - Self; + using Self = ParallelFor<FunctorType, Kokkos::WorkGraphPolicy<Traits...>, + Kokkos::Threads>; Policy m_policy; FunctorType m_functor; diff --git a/packages/kokkos/core/src/decl/Kokkos_Declare_CUDA.hpp b/packages/kokkos/core/src/decl/Kokkos_Declare_CUDA.hpp new file mode 100644 index 000000000..eac969986 --- /dev/null +++ b/packages/kokkos/core/src/decl/Kokkos_Declare_CUDA.hpp @@ -0,0 +1,52 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_DECLARE_CUDA_HPP +#define KOKKOS_DECLARE_CUDA_HPP + +#if defined(KOKKOS_ENABLE_CUDA) +#include <Kokkos_Cuda.hpp> +#endif + +#endif diff --git a/packages/kokkos/core/src/decl/Kokkos_Declare_HBWSpace.hpp b/packages/kokkos/core/src/decl/Kokkos_Declare_HBWSpace.hpp new file mode 100644 index 000000000..ff5133ed2 --- /dev/null +++ b/packages/kokkos/core/src/decl/Kokkos_Declare_HBWSpace.hpp @@ -0,0 +1,52 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_DECLARE_HBWSPACE_HPP +#define KOKKOS_DECLARE_HBWSPACE_HPP + +#ifdef KOKKOS_ENABLE_HBWSPACE +#include <Kokkos_HBWSpace.hpp> +#endif + +#endif diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_Init.cpp b/packages/kokkos/core/src/decl/Kokkos_Declare_HIP.hpp similarity index 93% rename from packages/kokkos/core/unit_test/cuda/TestCuda_Init.cpp rename to packages/kokkos/core/src/decl/Kokkos_Declare_HIP.hpp index bc5f6cf9e..b3bf14dbf 100644 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_Init.cpp +++ b/packages/kokkos/core/src/decl/Kokkos_Declare_HIP.hpp @@ -1,4 +1,3 @@ - /* //@HEADER // ************************************************************************ @@ -43,7 +42,11 @@ //@HEADER */ -#include <cuda/TestCuda_Category.hpp> -#include <TestInit.hpp> -#include <TestCompilerMacros.hpp> -#include <TestPolicyConstruction.hpp> +#ifndef KOKKOS_DECLARE_HIP_HPP +#define KOKKOS_DECLARE_HIP_HPP + +#if defined(KOKKOS_ENABLE_HIP) +#include <Kokkos_HIP.hpp> +#endif + +#endif diff --git a/packages/kokkos/core/src/decl/Kokkos_Declare_HPX.hpp b/packages/kokkos/core/src/decl/Kokkos_Declare_HPX.hpp new file mode 100644 index 000000000..2cbecc9e7 --- /dev/null +++ b/packages/kokkos/core/src/decl/Kokkos_Declare_HPX.hpp @@ -0,0 +1,52 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_DECLARE_HPX_HPP +#define KOKKOS_DECLARE_HPX_HPP + +#if defined(KOKKOS_ENABLE_HPX) +#include <Kokkos_HPX.hpp> +#endif + +#endif diff --git a/packages/kokkos/core/src/decl/Kokkos_Declare_OPENMP.hpp b/packages/kokkos/core/src/decl/Kokkos_Declare_OPENMP.hpp new file mode 100644 index 000000000..069dd5c16 --- /dev/null +++ b/packages/kokkos/core/src/decl/Kokkos_Declare_OPENMP.hpp @@ -0,0 +1,52 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_DECLARE_OPENMP_HPP +#define KOKKOS_DECLARE_OPENMP_HPP + +#if defined(KOKKOS_ENABLE_OPENMP) +#include <Kokkos_OpenMP.hpp> +#endif + +#endif diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c01.cpp b/packages/kokkos/core/src/decl/Kokkos_Declare_OPENMPTARGET.hpp similarity index 90% rename from packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c01.cpp rename to packages/kokkos/core/src/decl/Kokkos_Declare_OPENMPTARGET.hpp index 7bd179ba6..769585fc7 100644 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c01.cpp +++ b/packages/kokkos/core/src/decl/Kokkos_Declare_OPENMPTARGET.hpp @@ -42,13 +42,12 @@ //@HEADER */ -#include <hpx/TestHPX_Category.hpp> -#include <TestViewSubview.hpp> +#ifndef KOKKOS_DECLARE_OPENMPTARGET_HPP +#define KOKKOS_DECLARE_OPENMPTARGET_HPP -namespace Test { +#if defined(KOKKOS_ENABLE_OPENMPTARGET) +#include <Kokkos_OpenMPTarget.hpp> +#include <Kokkos_OpenMPTargetSpace.hpp> +#endif -TEST(TEST_CATEGORY, view_subview_1d_assign) { - TestViewSubview::test_1d_assign<TEST_EXECSPACE>(); -} - -} // namespace Test +#endif diff --git a/packages/kokkos/core/src/decl/Kokkos_Declare_SERIAL.hpp b/packages/kokkos/core/src/decl/Kokkos_Declare_SERIAL.hpp new file mode 100644 index 000000000..45661b5af --- /dev/null +++ b/packages/kokkos/core/src/decl/Kokkos_Declare_SERIAL.hpp @@ -0,0 +1,52 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_DECLARE_SERIAL_HPP +#define KOKKOS_DECLARE_SERIAL_HPP + +#if defined(KOKKOS_ENABLE_SERIAL) +#include <Kokkos_Serial.hpp> +#endif + +#endif diff --git a/packages/kokkos/core/src/decl/Kokkos_Declare_SYCL.hpp b/packages/kokkos/core/src/decl/Kokkos_Declare_SYCL.hpp new file mode 100644 index 000000000..4981435c8 --- /dev/null +++ b/packages/kokkos/core/src/decl/Kokkos_Declare_SYCL.hpp @@ -0,0 +1,56 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_DECLARE_SYCL_HPP +#define KOKKOS_DECLARE_SYCL_HPP + +#if defined(KOKKOS_ENABLE_SYCL) +#include <Kokkos_SYCL.hpp> +#include <SYCL/Kokkos_SYCL_DeepCopy.hpp> +#include <SYCL/Kokkos_SYCL_Parallel_Range.hpp> +#include <SYCL/Kokkos_SYCL_Parallel_Reduce.hpp> +#include <SYCL/Kokkos_SYCL_Parallel_Scan.hpp> +#endif + +#endif diff --git a/packages/kokkos/core/src/decl/Kokkos_Declare_THREADS.hpp b/packages/kokkos/core/src/decl/Kokkos_Declare_THREADS.hpp new file mode 100644 index 000000000..adb8f12a9 --- /dev/null +++ b/packages/kokkos/core/src/decl/Kokkos_Declare_THREADS.hpp @@ -0,0 +1,52 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_DECLARE_THREADS_HPP +#define KOKKOS_DECLARE_THREADS_HPP + +#if defined(KOKKOS_ENABLE_THREADS) +#include <Kokkos_Threads.hpp> +#endif + +#endif diff --git a/packages/kokkos/core/src/eti/CMakeLists.txt b/packages/kokkos/core/src/eti/CMakeLists.txt deleted file mode 100644 index a7e7717a6..000000000 --- a/packages/kokkos/core/src/eti/CMakeLists.txt +++ /dev/null @@ -1,25 +0,0 @@ -if (KOKKOS_ENABLE_CUDA) - add_subdirectory(Cuda) -endif() -if (KOKKOS_ENABLE_OPENMP) - add_subdirectory(OpenMP) -endif() -if (KOKKOS_ENABLE_HPX) - add_subdirectory(HPX) -endif() -if (KOKKOS_ENABLE_ROCM) - add_subdirectory(ROCm) -endif() -if (KOKKOS_ENABLE_SERIAL) - add_subdirectory(Serial) -endif() -if (KOKKOS_ENABLE_THREADS) - add_subdirectory(Threads) -endif() - -set(ETI_SOURCES "${ETI_SOURCES}" PARENT_SCOPE) - -install(FILES -common/Kokkos_ViewFillCopyETIAvail_Macros.hpp -common/Kokkos_ViewFillCopyETIDecl_Macros.hpp -DESTINATION include/eti/common) diff --git a/packages/kokkos/core/src/eti/Cuda/CMakeLists.txt b/packages/kokkos/core/src/eti/Cuda/CMakeLists.txt deleted file mode 100644 index 8d635ba36..000000000 --- a/packages/kokkos/core/src/eti/Cuda/CMakeLists.txt +++ /dev/null @@ -1,148 +0,0 @@ -set(D "${CMAKE_CURRENT_SOURCE_DIR}") -set(ETI_SOURCES -${ETI_SOURCES} -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp -${D}/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp -PARENT_SCOPE) diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp deleted file mode 100644 index a72781d8a..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp deleted file mode 100644 index 86600a2d3..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp deleted file mode 100644 index 1f4e93ec2..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp deleted file mode 100644 index e6d965eb4..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp deleted file mode 100644 index 5bb1ce76e..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp deleted file mode 100644 index cad6e9b67..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp deleted file mode 100644 index 5c31da459..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp deleted file mode 100644 index 7ef6acb4b..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp deleted file mode 100644 index 5680b8581..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp deleted file mode 100644 index bae1ee882..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp deleted file mode 100644 index 9ad5912c0..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp deleted file mode 100644 index 12806d1c5..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp deleted file mode 100644 index 0330b205d..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp deleted file mode 100644 index 10e894125..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp deleted file mode 100644 index 7cec35266..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp deleted file mode 100644 index 5bb6913cc..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp deleted file mode 100644 index f138a2049..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp deleted file mode 100644 index e1901422d..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp deleted file mode 100644 index c4a52c2de..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp deleted file mode 100644 index dab83bfb1..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp deleted file mode 100644 index 522303b44..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp deleted file mode 100644 index 608b4d4c2..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp deleted file mode 100644 index 2c33f7fac..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp deleted file mode 100644 index 3ad16222e..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp deleted file mode 100644 index 47f39d7ae..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp deleted file mode 100644 index bca253b75..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp deleted file mode 100644 index 20fadbd5d..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp deleted file mode 100644 index 4d4716510..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp deleted file mode 100644 index 42fa2c7b4..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp deleted file mode 100644 index a3cd8cc99..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp deleted file mode 100644 index 9efcc720c..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp deleted file mode 100644 index c34c6a391..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp deleted file mode 100644 index 6d7cf16fa..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp deleted file mode 100644 index ddd65c01a..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp deleted file mode 100644 index ae41d1939..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp deleted file mode 100644 index 5d349b699..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp deleted file mode 100644 index c60df3767..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp deleted file mode 100644 index cfce1b791..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp deleted file mode 100644 index 659ef1837..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp deleted file mode 100644 index 84eb99185..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp deleted file mode 100644 index 7f98cebd6..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp deleted file mode 100644 index f26ae1e4e..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp deleted file mode 100644 index a5167f6fa..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp deleted file mode 100644 index 60658f0bd..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp deleted file mode 100644 index f74d41f90..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp deleted file mode 100644 index 034596674..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp deleted file mode 100644 index bfbaaaec7..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp deleted file mode 100644 index 1be20a18f..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp deleted file mode 100644 index 51394ca35..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp deleted file mode 100644 index df4ef48e3..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp deleted file mode 100644 index 83671a7ca..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp deleted file mode 100644 index e652e268b..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp deleted file mode 100644 index 2b6b50a89..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp deleted file mode 100644 index 072569f7e..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp deleted file mode 100644 index b2bb00cb8..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp deleted file mode 100644 index 39615042e..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp deleted file mode 100644 index a98a7aad2..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp deleted file mode 100644 index e557600c6..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp deleted file mode 100644 index 0e31670af..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp deleted file mode 100644 index 873bcb274..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutLeft, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp deleted file mode 100644 index 0cb8e8f22..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp deleted file mode 100644 index 120fbd427..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp deleted file mode 100644 index 181c8df8d..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp deleted file mode 100644 index 0e7254d25..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp deleted file mode 100644 index e0a383743..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp deleted file mode 100644 index 4bcab3263..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutRight, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp deleted file mode 100644 index cf63d330b..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp deleted file mode 100644 index e3ec8d7a0..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp deleted file mode 100644 index 9e8739ba3..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp deleted file mode 100644 index 30a6e366f..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp deleted file mode 100644 index 1d7eedd9f..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutRight, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutLeft, Cuda, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutStride, Cuda, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp deleted file mode 100644 index 372bc02c3..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp deleted file mode 100644 index 9c9328f21..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp deleted file mode 100644 index 86a85d220..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp deleted file mode 100644 index 251bf7dd1..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp deleted file mode 100644 index f0c0d7939..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp deleted file mode 100644 index 1b094259f..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutRight, Cuda, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutStride, Cuda, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp deleted file mode 100644 index 82b8f87fa..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp deleted file mode 100644 index daf8a4d1e..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp deleted file mode 100644 index bbdd48bfd..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp deleted file mode 100644 index 093c250d5..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp deleted file mode 100644 index c8472757c..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp deleted file mode 100644 index f8a929113..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutRight, Cuda, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutLeft, Cuda, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutStride, Cuda, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp deleted file mode 100644 index f47423fc1..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp deleted file mode 100644 index f9b8d6dba..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp deleted file mode 100644 index 8dd503b5a..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp deleted file mode 100644 index f93171345..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp deleted file mode 100644 index 9105b908b..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutStride, Cuda, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp deleted file mode 100644 index 6f92bf8f5..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutRight, Cuda, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutLeft, Cuda, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutStride, Cuda, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp deleted file mode 100644 index 6538490fe..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp deleted file mode 100644 index c7a793b3d..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp deleted file mode 100644 index 7e5c7b56f..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp deleted file mode 100644 index dcf704369..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp deleted file mode 100644 index 3bd6920f4..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp deleted file mode 100644 index d75d3f924..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutStride, Cuda, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp deleted file mode 100644 index 640fd04e9..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp deleted file mode 100644 index b17601cf0..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp deleted file mode 100644 index a039d13f1..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp deleted file mode 100644 index 0f4ac7de1..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp deleted file mode 100644 index 892f51c21..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp deleted file mode 100644 index ab96396e6..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutRight, Cuda, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutStride, Cuda, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp deleted file mode 100644 index 762c1f8f6..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp deleted file mode 100644 index 63c6bdc8a..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp deleted file mode 100644 index 5f0dc1f6e..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp deleted file mode 100644 index d3eab4fe8..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp deleted file mode 100644 index 36d34aaff..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp deleted file mode 100644 index 1d9022f38..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutRight, Cuda, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutLeft, Cuda, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutStride, Cuda, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp deleted file mode 100644 index 89172d0ef..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp deleted file mode 100644 index c14394738..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp deleted file mode 100644 index 395dae627..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp deleted file mode 100644 index 8c192533f..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp deleted file mode 100644 index 22153b115..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp deleted file mode 100644 index 0e5d27687..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutRight, Cuda, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutLeft, Cuda, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutStride, Cuda, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp deleted file mode 100644 index d8b91a00f..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp deleted file mode 100644 index 08798db54..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp deleted file mode 100644 index f371b9535..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp deleted file mode 100644 index 6b29dcd94..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp deleted file mode 100644 index 8deb69b61..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutStride, Cuda, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp deleted file mode 100644 index fbd4a498c..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutRight, Cuda, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutLeft, Cuda, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutStride, Cuda, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp deleted file mode 100644 index b3c31de32..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp deleted file mode 100644 index 6fab29106..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp deleted file mode 100644 index 7be7b4662..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp deleted file mode 100644 index 9f0f83ba2..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutStride, Cuda, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp deleted file mode 100644 index 7fcc5db03..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutRight, Cuda, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutStride, Cuda, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp deleted file mode 100644 index 1a7b9933a..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutRight, Cuda, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutLeft, Cuda, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutStride, Cuda, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp deleted file mode 100644 index c89e60595..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp deleted file mode 100644 index 1be8bd028..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp deleted file mode 100644 index 0c61d411b..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp deleted file mode 100644 index c46bc8268..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp deleted file mode 100644 index 3f430147a..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp deleted file mode 100644 index 482bf3a6c..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutLeft, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp deleted file mode 100644 index eec32bbc8..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp deleted file mode 100644 index 9d95e5f9d..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp deleted file mode 100644 index ca86e10dd..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp deleted file mode 100644 index 3047e380d..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp deleted file mode 100644 index 3096ab6d3..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp deleted file mode 100644 index 88eacdfe8..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutRight, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp deleted file mode 100644 index c800698d3..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp deleted file mode 100644 index b2e2cdad4..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp deleted file mode 100644 index 0dcabb662..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp deleted file mode 100644 index fd2f9e858..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp deleted file mode 100644 index c7b4b9ff8..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutStride, Cuda, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp deleted file mode 100644 index c389a15f7..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutRight, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutLeft, Cuda, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutStride, Cuda, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutStride, Cuda, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Cuda/Makefile.eti_Cuda b/packages/kokkos/core/src/eti/Cuda/Makefile.eti_Cuda deleted file mode 100644 index 9531c4fff..000000000 --- a/packages/kokkos/core/src/eti/Cuda/Makefile.eti_Cuda +++ /dev/null @@ -1,288 +0,0 @@ -Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp -Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp diff --git a/packages/kokkos/core/src/eti/HPX/CMakeLists.txt b/packages/kokkos/core/src/eti/HPX/CMakeLists.txt deleted file mode 100644 index 131a2d2e6..000000000 --- a/packages/kokkos/core/src/eti/HPX/CMakeLists.txt +++ /dev/null @@ -1,148 +0,0 @@ -set(D "${CMAKE_CURRENT_SOURCE_DIR}") -set(ETI_SOURCES -${ETI_SOURCES} -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp -${D}/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp -PARENT_SCOPE) diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp deleted file mode 100644 index 1a9a9bf4f..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutLeft, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp deleted file mode 100644 index 0996ffda1..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutLeft, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp deleted file mode 100644 index 08f2651c4..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutLeft, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp deleted file mode 100644 index 8f5ca3185..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutLeft, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp deleted file mode 100644 index 7e50c2d58..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutLeft, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp deleted file mode 100644 index 5caa76cd5..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutLeft, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp deleted file mode 100644 index 5427e9f27..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutRight, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp deleted file mode 100644 index 474855094..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutRight, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp deleted file mode 100644 index db65f3122..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutRight, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp deleted file mode 100644 index da598b4e5..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutRight, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp deleted file mode 100644 index 8a60373f4..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutRight, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp deleted file mode 100644 index a9531ab8e..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutRight, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp deleted file mode 100644 index 66c050613..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutStride, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp deleted file mode 100644 index 885b2cc04..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutStride, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp deleted file mode 100644 index 90b19bb66..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutStride, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp deleted file mode 100644 index d62dbf0b4..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutStride, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp deleted file mode 100644 index 2b614aabf..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutStride, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp deleted file mode 100644 index 7a1db773e..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutStride, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp deleted file mode 100644 index d6a697d60..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutLeft, Experimental::HPX, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutLeft, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp deleted file mode 100644 index 4fe8d07b9..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutLeft, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp deleted file mode 100644 index c0d5b19de..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutLeft, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp deleted file mode 100644 index 0c6fbd75b..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutLeft, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp deleted file mode 100644 index 379e7e6b7..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutLeft, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp deleted file mode 100644 index 6c62abcd7..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutLeft, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp deleted file mode 100644 index e5b3c3823..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutRight, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp deleted file mode 100644 index f90485b60..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutRight, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp deleted file mode 100644 index 7b4ebf21c..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutRight, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp deleted file mode 100644 index 35de800a9..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutRight, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp deleted file mode 100644 index 7aa6a05d3..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutRight, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp deleted file mode 100644 index f1b95bbc0..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutRight, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp deleted file mode 100644 index 884570ac6..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutStride, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp deleted file mode 100644 index ae73c5dd3..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutStride, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp deleted file mode 100644 index f52980716..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutStride, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp deleted file mode 100644 index b3ab97ad7..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutStride, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp deleted file mode 100644 index e5e934e8b..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutStride, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp deleted file mode 100644 index aa1f24ce4..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutStride, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp deleted file mode 100644 index 891aaaa57..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutLeft, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp deleted file mode 100644 index d5fc48823..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutLeft, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp deleted file mode 100644 index baa863a40..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutLeft, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp deleted file mode 100644 index b8936f1bc..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutLeft, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp deleted file mode 100644 index b5c313875..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutLeft, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp deleted file mode 100644 index 0c12c5b47..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutLeft, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp deleted file mode 100644 index 8934c4a6e..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutRight, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp deleted file mode 100644 index 9c3046036..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutRight, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp deleted file mode 100644 index ae2b1e609..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutRight, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp deleted file mode 100644 index 6f721ca78..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutRight, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp deleted file mode 100644 index 4cca974fb..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutRight, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp deleted file mode 100644 index 747250c59..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutRight, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp deleted file mode 100644 index 2bcc9dcaa..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutStride, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp deleted file mode 100644 index cf424725b..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutStride, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp deleted file mode 100644 index 7c5163c53..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutStride, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp deleted file mode 100644 index 275703c22..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutStride, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp deleted file mode 100644 index 0b8b6690b..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutStride, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp deleted file mode 100644 index dd7cb725e..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutStride, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp deleted file mode 100644 index 05694106c..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutRight, Experimental::HPX, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutLeft, Experimental::HPX, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutStride, Experimental::HPX, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutLeft, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp deleted file mode 100644 index ce5e6a291..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutRight, Experimental::HPX, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutLeft, Experimental::HPX, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutLeft, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp deleted file mode 100644 index baf95fb1f..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutLeft, Experimental::HPX, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutLeft, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp deleted file mode 100644 index 3638c0100..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutLeft, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp deleted file mode 100644 index 1f964cbdd..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutLeft, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp deleted file mode 100644 index bc498b350..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutLeft, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp deleted file mode 100644 index 0e97cd97c..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutRight, Experimental::HPX, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutLeft, Experimental::HPX, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutRight, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp deleted file mode 100644 index e21f05bf5..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutLeft, Experimental::HPX, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutRight, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp deleted file mode 100644 index 1ccdc6a36..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutRight, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp deleted file mode 100644 index ef1c1f970..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutRight, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp deleted file mode 100644 index 2c993914c..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutRight, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp deleted file mode 100644 index c4d120b33..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutRight, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp deleted file mode 100644 index 520013db6..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutLeft, Experimental::HPX, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutStride, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp deleted file mode 100644 index 663110f45..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutStride, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp deleted file mode 100644 index ab18fdebd..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutStride, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp deleted file mode 100644 index 232f088e8..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutStride, Experimental::HPX, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp deleted file mode 100644 index 5a6331b76..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutStride, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp deleted file mode 100644 index c3223ee4d..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutRight, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutLeft, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutStride, - Experimental::HPX, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutStride, Experimental::HPX, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp deleted file mode 100644 index 50584929a..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp deleted file mode 100644 index 281784c6a..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp deleted file mode 100644 index 8a8220bae..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp deleted file mode 100644 index 7c5567b04..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp deleted file mode 100644 index f2716fef3..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp deleted file mode 100644 index db1797304..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutLeft, Experimental::HPX, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp deleted file mode 100644 index 5c4646817..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp deleted file mode 100644 index be4e90ccc..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp deleted file mode 100644 index 17200db10..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp deleted file mode 100644 index 89794ad1b..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp deleted file mode 100644 index 1771edc87..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp deleted file mode 100644 index b118550ac..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutRight, Experimental::HPX, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp deleted file mode 100644 index 887924764..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutStride, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp deleted file mode 100644 index 7b078639c..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutStride, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp deleted file mode 100644 index 2dc3d8b7c..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutStride, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp deleted file mode 100644 index c3ff0b212..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutStride, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp deleted file mode 100644 index 737fe0d63..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutStride, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp deleted file mode 100644 index 176a8a576..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutStride, Experimental::HPX, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp deleted file mode 100644 index e967e8d2b..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutLeft, Experimental::HPX, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp deleted file mode 100644 index 80323d7aa..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp deleted file mode 100644 index f68b9720b..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp deleted file mode 100644 index 2dd7bf784..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp deleted file mode 100644 index c24015769..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp deleted file mode 100644 index 008eea27c..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp deleted file mode 100644 index ba10fddcb..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp deleted file mode 100644 index 0bc5851c1..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp deleted file mode 100644 index 14c359c09..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp deleted file mode 100644 index 6672b85ce..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp deleted file mode 100644 index 1ec216204..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp deleted file mode 100644 index 1a6f0631b..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutRight, Experimental::HPX, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp deleted file mode 100644 index 5b90d4c7a..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutStride, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp deleted file mode 100644 index 3e0e011b0..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutStride, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp deleted file mode 100644 index 912cfe66f..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutStride, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp deleted file mode 100644 index a2cc70ffa..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutStride, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp deleted file mode 100644 index 58772e42d..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutStride, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp deleted file mode 100644 index ce52b3fcf..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutStride, Experimental::HPX, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp deleted file mode 100644 index 9baf307d8..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp deleted file mode 100644 index ffc8e2c52..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp deleted file mode 100644 index 16aec3709..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp deleted file mode 100644 index a2b5e8dff..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp deleted file mode 100644 index f5b7347d3..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp deleted file mode 100644 index 7646c5372..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutLeft, Experimental::HPX, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp deleted file mode 100644 index e225e99c5..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp deleted file mode 100644 index 441e8b63e..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp deleted file mode 100644 index 8e3bdecf1..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp deleted file mode 100644 index 7662c5a39..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp deleted file mode 100644 index db8625bd9..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp deleted file mode 100644 index 5992b136b..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutRight, Experimental::HPX, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp deleted file mode 100644 index f862aa4df..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutStride, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp deleted file mode 100644 index 788c411d3..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutStride, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp deleted file mode 100644 index 0646c93ac..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutStride, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp deleted file mode 100644 index 88299a88b..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutStride, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp deleted file mode 100644 index aaec87e40..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutStride, Experimental::HPX, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp deleted file mode 100644 index f650c7e4a..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutStride, Experimental::HPX, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp deleted file mode 100644 index 1cf32f3f5..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutRight, Experimental::HPX, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutLeft, Experimental::HPX, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutStride, Experimental::HPX, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp deleted file mode 100644 index a53f5b304..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutRight, Experimental::HPX, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutLeft, Experimental::HPX, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp deleted file mode 100644 index a679f816b..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutLeft, Experimental::HPX, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp deleted file mode 100644 index dc2efe852..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp deleted file mode 100644 index f532d1917..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp deleted file mode 100644 index 067d7c341..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutLeft, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp deleted file mode 100644 index fdee4a6f3..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutRight, Experimental::HPX, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutLeft, Experimental::HPX, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp deleted file mode 100644 index 4ee505961..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutLeft, Experimental::HPX, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp deleted file mode 100644 index 280fd0113..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp deleted file mode 100644 index 84525a004..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp deleted file mode 100644 index 7ba740043..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp deleted file mode 100644 index 4a4754948..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutRight, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp deleted file mode 100644 index 14773de5d..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutLeft, Experimental::HPX, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutStride, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp deleted file mode 100644 index 0f57ae5cb..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutStride, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp deleted file mode 100644 index 905bb918f..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutStride, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp deleted file mode 100644 index 30563fe13..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutStride, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp deleted file mode 100644 index ed0c45b36..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutStride, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp deleted file mode 100644 index 1ff4404c9..000000000 --- a/packages/kokkos/core/src/eti/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutRight, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutLeft, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutStride, - Experimental::HPX, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutStride, Experimental::HPX, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/HPX/Makefile.eti_HPX b/packages/kokkos/core/src/eti/HPX/Makefile.eti_HPX deleted file mode 100644 index 904f32fb8..000000000 --- a/packages/kokkos/core/src/eti/HPX/Makefile.eti_HPX +++ /dev/null @@ -1,288 +0,0 @@ -Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp -Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/HPX/Kokkos_HPX_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp diff --git a/packages/kokkos/core/src/eti/OpenMP/CMakeLists.txt b/packages/kokkos/core/src/eti/OpenMP/CMakeLists.txt deleted file mode 100644 index 73c419f3c..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/CMakeLists.txt +++ /dev/null @@ -1,148 +0,0 @@ -set(D "${CMAKE_CURRENT_SOURCE_DIR}") -set(ETI_SOURCES -${ETI_SOURCES} -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp -${D}/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp -PARENT_SCOPE) diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp deleted file mode 100644 index 37d812f98..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutRight, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp deleted file mode 100644 index c4ac098ab..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp deleted file mode 100644 index fc7cc3055..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp deleted file mode 100644 index f543baf68..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp deleted file mode 100644 index 6cff58e36..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp deleted file mode 100644 index 30ae7d650..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp deleted file mode 100644 index 343c09f22..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp deleted file mode 100644 index ffe2971e5..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp deleted file mode 100644 index 0e9a519c1..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp deleted file mode 100644 index cca76dac3..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp deleted file mode 100644 index 22a6f0492..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp deleted file mode 100644 index 32f9b4ec9..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp deleted file mode 100644 index 9753469e5..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp deleted file mode 100644 index b0d5a3a7c..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp deleted file mode 100644 index f1b981eac..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp deleted file mode 100644 index 07ebe686a..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp deleted file mode 100644 index 1eefbc9b0..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp deleted file mode 100644 index 87a81639e..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutStride, - OpenMP, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp deleted file mode 100644 index 401069942..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutRight, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutStride, OpenMP, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp deleted file mode 100644 index 4e774bec2..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutRight, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp deleted file mode 100644 index 1b3343dd2..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp deleted file mode 100644 index ad5421bb5..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp deleted file mode 100644 index fde468998..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp deleted file mode 100644 index 9c1db701c..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp deleted file mode 100644 index 2536abbed..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutRight, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp deleted file mode 100644 index 8ab48a4f7..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp deleted file mode 100644 index e4f8d4044..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp deleted file mode 100644 index cd482972a..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp deleted file mode 100644 index fa7b6211f..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp deleted file mode 100644 index aeb191e8c..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp deleted file mode 100644 index 94ce1eba0..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp deleted file mode 100644 index 01c96b436..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp deleted file mode 100644 index 3067883b2..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp deleted file mode 100644 index 27ecf522a..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp deleted file mode 100644 index 2925cbe44..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp deleted file mode 100644 index 72672c5bb..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp deleted file mode 100644 index d301592da..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp deleted file mode 100644 index dca8eeb02..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp deleted file mode 100644 index 832bbc0fe..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp deleted file mode 100644 index 45f9c22bc..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp deleted file mode 100644 index 7c8c5d80b..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp deleted file mode 100644 index 2fae74f59..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp deleted file mode 100644 index 0523a6e28..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp deleted file mode 100644 index 24d667d7d..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp deleted file mode 100644 index 599d8fc04..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp deleted file mode 100644 index 2583f8d6e..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp deleted file mode 100644 index d9e1f774b..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp deleted file mode 100644 index 8376f1dd3..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutStride, - OpenMP, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp deleted file mode 100644 index 2b21554c0..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp deleted file mode 100644 index 985e0be47..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp deleted file mode 100644 index f1e37a5c4..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp deleted file mode 100644 index ea071ac10..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp deleted file mode 100644 index bac351589..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutRight, - OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutStride, - OpenMP, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp deleted file mode 100644 index 515812fb9..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutRight, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutStride, OpenMP, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp deleted file mode 100644 index 28ebc3505..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutRight, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutStride, OpenMP, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp deleted file mode 100644 index 3bc9254b0..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutRight, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutStride, OpenMP, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp deleted file mode 100644 index dcba7deea..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutRight, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp deleted file mode 100644 index 9aba49991..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp deleted file mode 100644 index 98d730444..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutLeft, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp deleted file mode 100644 index 2179ba655..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutRight, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutStride, OpenMP, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp deleted file mode 100644 index b7eed148d..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutRight, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutStride, OpenMP, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp deleted file mode 100644 index 58a278321..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutRight, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp deleted file mode 100644 index 7ed2bd0bd..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp deleted file mode 100644 index 0ba5edbc7..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp deleted file mode 100644 index acce37b79..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutRight, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp deleted file mode 100644 index 83878113d..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutRight, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutStride, OpenMP, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp deleted file mode 100644 index fbbd5edd2..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutRight, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp deleted file mode 100644 index f4b2364f6..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutLeft, OpenMP, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp deleted file mode 100644 index df6db05a8..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp deleted file mode 100644 index 14acf8fb2..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp deleted file mode 100644 index 1984598a2..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutRight, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutLeft, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutStride, OpenMP, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutStride, OpenMP, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp deleted file mode 100644 index 987980265..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp deleted file mode 100644 index 1283f14a6..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp deleted file mode 100644 index 3addc9913..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp deleted file mode 100644 index 25336a754..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp deleted file mode 100644 index b4cca8662..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp deleted file mode 100644 index ffe81fbff..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutRight, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutLeft, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp deleted file mode 100644 index 7bb38884b..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp deleted file mode 100644 index f99f79e4f..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp deleted file mode 100644 index cedc1d901..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp deleted file mode 100644 index 2e101591d..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp deleted file mode 100644 index 6451611b6..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutRight, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp deleted file mode 100644 index 0898be20e..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutRight, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutLeft, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp deleted file mode 100644 index 5dc7d5cdd..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp deleted file mode 100644 index dc3c00d42..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp deleted file mode 100644 index 52b94e91e..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp deleted file mode 100644 index 3d1359bbf..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutRight, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp deleted file mode 100644 index 54ac13a75..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutRight, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutLeft, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp deleted file mode 100644 index 8a1e50892..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutRight, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutLeft, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutStride, - OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp deleted file mode 100644 index f585a6833..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp deleted file mode 100644 index f3943c7c6..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp deleted file mode 100644 index ab16463a3..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp deleted file mode 100644 index 3adbfa6aa..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp deleted file mode 100644 index 32e317e02..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp deleted file mode 100644 index 9a6bf70c9..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutRight, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutLeft, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp deleted file mode 100644 index a081f46d4..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp deleted file mode 100644 index 7175be7bf..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp deleted file mode 100644 index 6ad850330..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp deleted file mode 100644 index 6af17f7c3..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp deleted file mode 100644 index 269785fa7..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp deleted file mode 100644 index a3469972d..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutRight, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutLeft, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp deleted file mode 100644 index d3064fd97..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp deleted file mode 100644 index 5ae8d4762..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp deleted file mode 100644 index f7b3a5db8..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp deleted file mode 100644 index d36d2d27c..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp deleted file mode 100644 index 6a88b0b8e..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutRight, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp deleted file mode 100644 index ec459f1bb..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutRight, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutLeft, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp deleted file mode 100644 index 6e606008d..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp deleted file mode 100644 index 086e1effe..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp deleted file mode 100644 index 882477486..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp deleted file mode 100644 index e32f7504f..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp deleted file mode 100644 index d36a5c1be..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutRight, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp deleted file mode 100644 index 3389fed4f..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutRight, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutLeft, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp deleted file mode 100644 index c68d3ed81..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp deleted file mode 100644 index 9fc1b47af..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp deleted file mode 100644 index ed9ed4d63..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp deleted file mode 100644 index 954f9eff6..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutRight, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp deleted file mode 100644 index 46c19786f..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutRight, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutLeft, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp deleted file mode 100644 index 0fc871882..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutRight, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutLeft, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutStride, - OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp deleted file mode 100644 index 13739b99b..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp deleted file mode 100644 index 9dec2fe8b..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp deleted file mode 100644 index 334da5277..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutRight, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp deleted file mode 100644 index 05b192152..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutRight, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutLeft, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp deleted file mode 100644 index 0e57e83f8..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutRight, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutLeft, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp deleted file mode 100644 index 89d7c4541..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutRight, - OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutLeft, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutStride, - OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp deleted file mode 100644 index 12ad031ee..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp deleted file mode 100644 index 1b7286cdc..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp deleted file mode 100644 index 319755559..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp deleted file mode 100644 index b5f1ddcc5..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp deleted file mode 100644 index bb490af70..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp deleted file mode 100644 index 483d0ce3c..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutLeft, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp deleted file mode 100644 index 4f1ae60f4..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp deleted file mode 100644 index 5420e3a44..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp deleted file mode 100644 index 46269afc2..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp deleted file mode 100644 index 425220e27..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp deleted file mode 100644 index 6bc2ed733..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp deleted file mode 100644 index 91cc8c2af..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutRight, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutRight, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp deleted file mode 100644 index 46b97b313..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp deleted file mode 100644 index 1c6c071e3..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp deleted file mode 100644 index adb9f1e94..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp deleted file mode 100644 index 5c7fc9917..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp deleted file mode 100644 index f8605287e..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutRight, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutLeft, OpenMP, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutStride, OpenMP, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp deleted file mode 100644 index b47b23c0d..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutRight, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutLeft, OpenMP, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutStride, OpenMP, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutStride, OpenMP, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/OpenMP/Makefile.eti_OpenMP b/packages/kokkos/core/src/eti/OpenMP/Makefile.eti_OpenMP deleted file mode 100644 index 1aa98e665..000000000 --- a/packages/kokkos/core/src/eti/OpenMP/Makefile.eti_OpenMP +++ /dev/null @@ -1,288 +0,0 @@ -Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp -Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/OpenMP/Kokkos_OpenMP_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp diff --git a/packages/kokkos/core/src/eti/ROCm/CMakeLists.txt b/packages/kokkos/core/src/eti/ROCm/CMakeLists.txt deleted file mode 100644 index a5e6c6250..000000000 --- a/packages/kokkos/core/src/eti/ROCm/CMakeLists.txt +++ /dev/null @@ -1,148 +0,0 @@ -set(D "${CMAKE_CURRENT_SOURCE_DIR}") -set(ETI_SOURCES -${ETI_SOURCES} -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp -${D}/Kokkos_Experimental::ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp -PARENT_SCOPE) diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp deleted file mode 100644 index 936b24983..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutLeft, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp deleted file mode 100644 index 7d83d0227..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutLeft, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp deleted file mode 100644 index 50b160c45..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutLeft, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp deleted file mode 100644 index fa4dccf30..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutLeft, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp deleted file mode 100644 index 5ed0812c3..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutLeft, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp deleted file mode 100644 index 9bc2faefe..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutLeft, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp deleted file mode 100644 index 35a198cb2..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutRight, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp deleted file mode 100644 index a79082c7a..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutRight, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp deleted file mode 100644 index e344f9424..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutRight, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp deleted file mode 100644 index 92e4281ba..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutRight, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp deleted file mode 100644 index c25262075..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutRight, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp deleted file mode 100644 index c3ce63ccb..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutRight, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp deleted file mode 100644 index 443aaa117..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutStride, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp deleted file mode 100644 index 65d137d62..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutStride, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp deleted file mode 100644 index 50c66d931..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutStride, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp deleted file mode 100644 index 78464445e..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutStride, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp deleted file mode 100644 index f1085851d..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutStride, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp deleted file mode 100644 index 090e77d63..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutStride, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp deleted file mode 100644 index b82e770ee..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutLeft, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp deleted file mode 100644 index 6fbd24842..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutLeft, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp deleted file mode 100644 index a434fc069..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutLeft, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp deleted file mode 100644 index 724fa978b..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutLeft, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp deleted file mode 100644 index 1910a2024..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutLeft, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp deleted file mode 100644 index 9e5bf0fa3..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutRight, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp deleted file mode 100644 index 55b67d299..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutRight, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp deleted file mode 100644 index 1e7cfd254..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutRight, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp deleted file mode 100644 index d374edbd4..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutRight, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp deleted file mode 100644 index 7eb20ccab..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutRight, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp deleted file mode 100644 index cd1371117..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutRight, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp deleted file mode 100644 index f36b5353a..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutStride, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp deleted file mode 100644 index afeeae9b3..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutStride, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp deleted file mode 100644 index 178659600..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutStride, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp deleted file mode 100644 index 2db4dd794..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutStride, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp deleted file mode 100644 index 85ec8fc2d..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutStride, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp deleted file mode 100644 index 7b9ef4eed..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutStride, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp deleted file mode 100644 index 0e37d90d7..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutLeft, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp deleted file mode 100644 index aa484fcff..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutLeft, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp deleted file mode 100644 index 94b5ba470..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutLeft, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp deleted file mode 100644 index f5f88d999..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutLeft, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp deleted file mode 100644 index 056fccd67..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutLeft, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp deleted file mode 100644 index 00dfe959c..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutLeft, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp deleted file mode 100644 index 9d975b184..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutRight, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp deleted file mode 100644 index c01f76e9e..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutRight, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp deleted file mode 100644 index 5fc0e1cba..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutRight, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp deleted file mode 100644 index 2124318ad..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutRight, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp deleted file mode 100644 index 1dc1ece2c..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutRight, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp deleted file mode 100644 index 2b49fe193..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutRight, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp deleted file mode 100644 index 3cc115467..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutStride, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp deleted file mode 100644 index 56cb22173..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutStride, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp deleted file mode 100644 index 96b4198e0..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutStride, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp deleted file mode 100644 index 3bf36b1c8..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutStride, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp deleted file mode 100644 index 689270a64..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutStride, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp deleted file mode 100644 index 995b49942..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutStride, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp deleted file mode 100644 index e6f2970a6..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutRight, Experimental::ROCm, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutLeft, Experimental::ROCm, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutLeft, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp deleted file mode 100644 index c4602070e..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutLeft, Experimental::ROCm, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutLeft, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp deleted file mode 100644 index 5a52ee9e8..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutLeft, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp deleted file mode 100644 index 9fe37b257..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutLeft, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp deleted file mode 100644 index 81dd98a95..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutLeft, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp deleted file mode 100644 index 1f487edd2..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutLeft, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp deleted file mode 100644 index 0fe78ecbb..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutLeft, Experimental::ROCm, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutRight, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp deleted file mode 100644 index 710bfc182..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutRight, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp deleted file mode 100644 index 8f4cf975c..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutRight, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp deleted file mode 100644 index fcf444ca8..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutRight, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp deleted file mode 100644 index 480c13529..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutRight, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp deleted file mode 100644 index f09cb89a3..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutRight, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp deleted file mode 100644 index ef36faebd..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutStride, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp deleted file mode 100644 index 3e3510150..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutStride, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp deleted file mode 100644 index b12b8bc9f..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutStride, Experimental::ROCm, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp deleted file mode 100644 index 1e2e04276..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutStride, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp deleted file mode 100644 index 4539a4087..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutStride, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp deleted file mode 100644 index 5af78387d..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutRight, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutLeft, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutStride, - Experimental::ROCm, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutStride, Experimental::ROCm, - int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp deleted file mode 100644 index 96f548905..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp deleted file mode 100644 index 957741e77..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp deleted file mode 100644 index d1c2254da..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp deleted file mode 100644 index 87b95b943..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp deleted file mode 100644 index fba1027fc..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp deleted file mode 100644 index bbd762f1d..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutLeft, Experimental::ROCm, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp deleted file mode 100644 index ad31e2c03..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutRight, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp deleted file mode 100644 index bc14bbcee..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutRight, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp deleted file mode 100644 index 736781d69..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutRight, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp deleted file mode 100644 index 6b16fbe95..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutRight, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp deleted file mode 100644 index 95ce9c952..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutRight, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp deleted file mode 100644 index 34888c4e4..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutRight, Experimental::ROCm, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp deleted file mode 100644 index eba5f4acd..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutStride, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp deleted file mode 100644 index bc3ed4dca..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutStride, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp deleted file mode 100644 index 084a97323..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutStride, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp deleted file mode 100644 index d5e1538ca..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutStride, Experimental::ROCm, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp deleted file mode 100644 index c2ffd740a..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutStride, Experimental::ROCm, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp deleted file mode 100644 index c7560e2eb..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp deleted file mode 100644 index 650e36846..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp deleted file mode 100644 index 19636e8bf..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp deleted file mode 100644 index 2d15ad10e..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp deleted file mode 100644 index 477b8e44b..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp deleted file mode 100644 index 6f4234e70..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutLeft, Experimental::ROCm, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp deleted file mode 100644 index 4697b8285..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutRight, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp deleted file mode 100644 index 4e15f3651..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutRight, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp deleted file mode 100644 index 4336ff9ed..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutRight, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp deleted file mode 100644 index a93494cb0..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutRight, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp deleted file mode 100644 index 0d4303e97..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutRight, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp deleted file mode 100644 index 02b7f479f..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutRight, Experimental::ROCm, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp deleted file mode 100644 index 8af29e6d0..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutStride, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp deleted file mode 100644 index 49787220c..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutStride, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp deleted file mode 100644 index a48d561c9..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutStride, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp deleted file mode 100644 index f5414d25e..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutStride, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp deleted file mode 100644 index aa2e44a1c..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutStride, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp deleted file mode 100644 index 02401e5ec..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutStride, Experimental::ROCm, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp deleted file mode 100644 index dc48d2350..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp deleted file mode 100644 index 28be03b8a..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp deleted file mode 100644 index 2974698b4..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp deleted file mode 100644 index bf9678b7d..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp deleted file mode 100644 index 7df511d71..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp deleted file mode 100644 index 8eec6cae1..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutLeft, Experimental::ROCm, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp deleted file mode 100644 index 5422bacac..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutRight, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp deleted file mode 100644 index dbb856b8d..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutRight, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp deleted file mode 100644 index 3944a4671..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutRight, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp deleted file mode 100644 index 5f490e1a8..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutRight, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp deleted file mode 100644 index 5c2cf9d56..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutRight, Experimental::ROCm, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp deleted file mode 100644 index 6ca32499b..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutRight, Experimental::ROCm, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp deleted file mode 100644 index 9c5d40e18..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutStride, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp deleted file mode 100644 index ae111b312..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutStride, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp deleted file mode 100644 index ce6c8a9fc..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutStride, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp deleted file mode 100644 index d56e9e776..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutStride, Experimental::ROCm, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp deleted file mode 100644 index e1ab19f5f..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutStride, Experimental::ROCm, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp deleted file mode 100644 index 083cecc07..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutStride, Experimental::ROCm, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp deleted file mode 100644 index b345f2ac4..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutRight, Experimental::ROCm, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutLeft, Experimental::ROCm, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp deleted file mode 100644 index 7370f284c..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutLeft, Experimental::ROCm, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp deleted file mode 100644 index 1560af198..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp deleted file mode 100644 index a7322631a..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp deleted file mode 100644 index 2b5d8178c..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutLeft, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp deleted file mode 100644 index ed476241f..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutLeft, Experimental::ROCm, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutRight, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp deleted file mode 100644 index ee2b6739e..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutRight, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp deleted file mode 100644 index a8b7a8ef1..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutRight, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp deleted file mode 100644 index e11f9b443..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutRight, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp deleted file mode 100644 index 0e17bc8c5..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutRight, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp deleted file mode 100644 index a7c9b8585..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutRight, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp deleted file mode 100644 index 88c9569a9..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutStride, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp deleted file mode 100644 index 62ec94f71..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutStride, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp deleted file mode 100644 index 9f86f5200..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutStride, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp deleted file mode 100644 index a0762ad58..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutStride, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp deleted file mode 100644 index a3ffd6264..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutStride, Experimental::ROCm, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp deleted file mode 100644 index fbd2fca22..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutStride, Experimental::ROCm, - int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Makefile.eti_ROCm b/packages/kokkos/core/src/eti/ROCm/Makefile.eti_ROCm deleted file mode 100644 index 0423c6feb..000000000 --- a/packages/kokkos/core/src/eti/ROCm/Makefile.eti_ROCm +++ /dev/null @@ -1,288 +0,0 @@ -Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp -Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/ROCm/Kokkos_ROCm_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp diff --git a/packages/kokkos/core/src/eti/Serial/CMakeLists.txt b/packages/kokkos/core/src/eti/Serial/CMakeLists.txt deleted file mode 100644 index eb076db79..000000000 --- a/packages/kokkos/core/src/eti/Serial/CMakeLists.txt +++ /dev/null @@ -1,148 +0,0 @@ -set(D "${CMAKE_CURRENT_SOURCE_DIR}") -set(ETI_SOURCES -${ETI_SOURCES} -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp -${D}/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp -PARENT_SCOPE) diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp deleted file mode 100644 index a749ec859..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutRight, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp deleted file mode 100644 index 961b788a8..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp deleted file mode 100644 index 57dbaaf95..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp deleted file mode 100644 index 33b0b8720..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp deleted file mode 100644 index 6ec8b5f29..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp deleted file mode 100644 index e4660ae4d..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp deleted file mode 100644 index d77fb3eb1..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp deleted file mode 100644 index c7ae12e85..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp deleted file mode 100644 index 7a6ad9b57..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp deleted file mode 100644 index bfe375c6b..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp deleted file mode 100644 index 11c0c4a81..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp deleted file mode 100644 index 8a7323699..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp deleted file mode 100644 index e2c48e8bb..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp deleted file mode 100644 index b6a7f488d..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp deleted file mode 100644 index 2e3313b6e..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp deleted file mode 100644 index dcb760fbf..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp deleted file mode 100644 index 9bd7e80e7..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutStride, - Serial, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp deleted file mode 100644 index dedbd50d8..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutRight, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutStride, Serial, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp deleted file mode 100644 index 441d4774c..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutRight, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp deleted file mode 100644 index b9013da90..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp deleted file mode 100644 index 0b19e4718..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp deleted file mode 100644 index f90164851..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp deleted file mode 100644 index b8ad2e78b..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp deleted file mode 100644 index 7bf4b7e77..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutRight, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp deleted file mode 100644 index 39e4d3bb6..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp deleted file mode 100644 index 4d845c8e1..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp deleted file mode 100644 index b0d8e00fe..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp deleted file mode 100644 index a8972610c..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp deleted file mode 100644 index c0db2a928..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp deleted file mode 100644 index 44ef5f0ba..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp deleted file mode 100644 index 39d0b58af..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp deleted file mode 100644 index 1d6eb2fd3..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp deleted file mode 100644 index b38d19b99..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp deleted file mode 100644 index 360c6b411..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp deleted file mode 100644 index f1f1dcde1..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp deleted file mode 100644 index 6cfb563e7..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp deleted file mode 100644 index abe7810be..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp deleted file mode 100644 index 1b6b81e8e..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp deleted file mode 100644 index 7e50ce7cb..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp deleted file mode 100644 index ea944ba15..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp deleted file mode 100644 index d00dd6a33..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp deleted file mode 100644 index b7cf7d7fc..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp deleted file mode 100644 index 343dfc965..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp deleted file mode 100644 index 44050f142..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp deleted file mode 100644 index 4ab602bc3..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp deleted file mode 100644 index 077314b85..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp deleted file mode 100644 index 009d5afcf..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutStride, - Serial, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp deleted file mode 100644 index 24a1e61eb..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp deleted file mode 100644 index bcf66fb16..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp deleted file mode 100644 index 65c075948..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp deleted file mode 100644 index e30176602..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp deleted file mode 100644 index 4ccabe6b3..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp deleted file mode 100644 index 161cf27c4..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutRight, - Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutStride, - Serial, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp deleted file mode 100644 index 0a0bb54bf..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutRight, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutStride, Serial, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp deleted file mode 100644 index 745e67b5b..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutRight, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutStride, Serial, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp deleted file mode 100644 index 40a9d2fe0..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutRight, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutStride, Serial, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp deleted file mode 100644 index 9436c1d9f..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutRight, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp deleted file mode 100644 index a52db2897..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp deleted file mode 100644 index 66e8b8f33..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutLeft, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp deleted file mode 100644 index 9a32d30e2..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutRight, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutStride, Serial, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp deleted file mode 100644 index 1ec25b63b..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutRight, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutStride, Serial, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp deleted file mode 100644 index 0c96adece..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutRight, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp deleted file mode 100644 index 5771fcf55..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp deleted file mode 100644 index b0b918d78..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp deleted file mode 100644 index eae13261e..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutRight, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp deleted file mode 100644 index 7efc50d45..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutRight, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutStride, Serial, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp deleted file mode 100644 index f6b63e989..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutRight, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp deleted file mode 100644 index 148ed9902..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp deleted file mode 100644 index 30a20055a..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp deleted file mode 100644 index fa42ed37b..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutStride, Serial, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp deleted file mode 100644 index 07d809a29..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp deleted file mode 100644 index e03f4f796..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp deleted file mode 100644 index 92deaa8a3..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp deleted file mode 100644 index ec97ca8c5..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp deleted file mode 100644 index 2693928bd..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp deleted file mode 100644 index 968a40079..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutRight, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutLeft, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp deleted file mode 100644 index 4d7b8bc72..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp deleted file mode 100644 index 7a97d75c1..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp deleted file mode 100644 index 25d9ee82b..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp deleted file mode 100644 index b830d1a01..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp deleted file mode 100644 index 40f690b78..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutRight, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp deleted file mode 100644 index bf46af97d..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutRight, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutLeft, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp deleted file mode 100644 index 8abd7cc80..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp deleted file mode 100644 index e5472cda7..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp deleted file mode 100644 index a0c1b4efc..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp deleted file mode 100644 index a59984581..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutRight, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp deleted file mode 100644 index b750ca88c..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutRight, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutLeft, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp deleted file mode 100644 index c1223916b..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutRight, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutLeft, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutStride, - Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp deleted file mode 100644 index 453960b50..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp deleted file mode 100644 index a1c599c76..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp deleted file mode 100644 index a8f280cf2..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp deleted file mode 100644 index e9a6a979c..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp deleted file mode 100644 index 0cbac14fb..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp deleted file mode 100644 index 98e182506..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutRight, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutLeft, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp deleted file mode 100644 index 0afd11087..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp deleted file mode 100644 index 14a80d9a9..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp deleted file mode 100644 index 76516c192..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp deleted file mode 100644 index 3769ea0aa..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp deleted file mode 100644 index 106f1b9c6..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp deleted file mode 100644 index 44a362d82..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutRight, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutLeft, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp deleted file mode 100644 index 5184be607..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp deleted file mode 100644 index 50117e94b..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp deleted file mode 100644 index 4ddc4a3e4..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp deleted file mode 100644 index cf48e0caa..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp deleted file mode 100644 index b1ab7b666..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutRight, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp deleted file mode 100644 index 02104cfa3..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutRight, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutLeft, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp deleted file mode 100644 index 81eab82b0..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp deleted file mode 100644 index d5e45a194..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp deleted file mode 100644 index 7cc00391a..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp deleted file mode 100644 index 70df317f3..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp deleted file mode 100644 index 4c6018db7..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutRight, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp deleted file mode 100644 index 4d48bb32c..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutRight, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutLeft, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp deleted file mode 100644 index 61b6682ba..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp deleted file mode 100644 index dd80db3e2..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp deleted file mode 100644 index bec7b5d95..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp deleted file mode 100644 index 162915fb2..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutRight, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp deleted file mode 100644 index 5fe93924d..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutRight, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutLeft, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp deleted file mode 100644 index 284b7c7c0..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutRight, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutLeft, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutStride, - Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp deleted file mode 100644 index aea751548..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp deleted file mode 100644 index 310d949eb..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp deleted file mode 100644 index 2caeee72a..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutRight, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp deleted file mode 100644 index b914f59ed..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutRight, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutLeft, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp deleted file mode 100644 index 601716c99..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutRight, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutLeft, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp deleted file mode 100644 index 2c101a355..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutRight, - Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutLeft, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutStride, - Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp deleted file mode 100644 index b69c4263e..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp deleted file mode 100644 index ae5866022..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp deleted file mode 100644 index 1c66b5844..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp deleted file mode 100644 index 330dc037d..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp deleted file mode 100644 index 001a67f14..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp deleted file mode 100644 index 247f5a311..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutLeft, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp deleted file mode 100644 index 3fffcddae..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp deleted file mode 100644 index 0df3ae643..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp deleted file mode 100644 index 64440939a..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp deleted file mode 100644 index 9e5ec8364..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp deleted file mode 100644 index f5731068c..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp deleted file mode 100644 index 4f04907c0..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutRight, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutRight, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp deleted file mode 100644 index b0b2b83a3..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp deleted file mode 100644 index a10911f33..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp deleted file mode 100644 index 566f8e4f9..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp deleted file mode 100644 index e299d3ab7..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp deleted file mode 100644 index 9a191bf54..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutRight, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutLeft, Serial, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutStride, Serial, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp deleted file mode 100644 index d07e1e8d7..000000000 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutRight, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutLeft, Serial, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutStride, Serial, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutStride, Serial, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Makefile.eti_Serial b/packages/kokkos/core/src/eti/Serial/Makefile.eti_Serial deleted file mode 100644 index 74b80f98c..000000000 --- a/packages/kokkos/core/src/eti/Serial/Makefile.eti_Serial +++ /dev/null @@ -1,288 +0,0 @@ -Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp -Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp diff --git a/packages/kokkos/core/src/eti/Threads/CMakeLists.txt b/packages/kokkos/core/src/eti/Threads/CMakeLists.txt deleted file mode 100644 index 27e8e3584..000000000 --- a/packages/kokkos/core/src/eti/Threads/CMakeLists.txt +++ /dev/null @@ -1,148 +0,0 @@ -set(D "${CMAKE_CURRENT_SOURCE_DIR}") -set(ETI_SOURCES -${ETI_SOURCES} -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp -PARENT_SCOPE) diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp deleted file mode 100644 index 7c84605ed..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutLeft, Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp deleted file mode 100644 index 3d7313a54..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp deleted file mode 100644 index 72895035b..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp deleted file mode 100644 index 69673d51e..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp deleted file mode 100644 index d1aff7b82..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp deleted file mode 100644 index e617e19b4..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp deleted file mode 100644 index 855e99e06..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp deleted file mode 100644 index b9ffb82a5..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp deleted file mode 100644 index 85a468397..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp deleted file mode 100644 index ba658e7b7..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp deleted file mode 100644 index 8d413bcb3..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp deleted file mode 100644 index 8a2a06649..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutStride, - Threads, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp deleted file mode 100644 index 3a376b91a..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp deleted file mode 100644 index 7a3ca29f4..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp deleted file mode 100644 index 44bf3df6a..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp deleted file mode 100644 index 943a00325..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp deleted file mode 100644 index b12da7c5b..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp deleted file mode 100644 index a859379df..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutRight, - Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutStride, - Threads, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp deleted file mode 100644 index b11ec7758..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutRight, Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutLeft, Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp deleted file mode 100644 index e7fee1b9e..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutLeft, Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp deleted file mode 100644 index f82b4a92b..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp deleted file mode 100644 index 3904c4cb0..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp deleted file mode 100644 index 77d46acfd..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp deleted file mode 100644 index 006fce3cf..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp deleted file mode 100644 index 91256cd69..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutLeft, Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp deleted file mode 100644 index d29fbfe79..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp deleted file mode 100644 index bdf866f3b..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp deleted file mode 100644 index aaa00a6f6..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp deleted file mode 100644 index db2ab88d2..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp deleted file mode 100644 index 3024e4e00..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp deleted file mode 100644 index e6e66d7bb..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp deleted file mode 100644 index 28ed80254..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp deleted file mode 100644 index 4863866aa..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp deleted file mode 100644 index e24e9e022..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp deleted file mode 100644 index 047c078bc..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp deleted file mode 100644 index 78c7496b7..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutStride, - Threads, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp deleted file mode 100644 index 33ee50081..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp deleted file mode 100644 index 4c1d4bb58..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp deleted file mode 100644 index 75e4bc4e3..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp deleted file mode 100644 index 3007a4db6..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp deleted file mode 100644 index 198e54631..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp deleted file mode 100644 index c12fa4e7b..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutStride, - Threads, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp deleted file mode 100644 index 82f782ce5..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp deleted file mode 100644 index d11bf3dd2..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp deleted file mode 100644 index 53bd8056d..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp deleted file mode 100644 index 44e78041b..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp deleted file mode 100644 index 6f54702d2..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp deleted file mode 100644 index 141b79110..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutRight, - Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutStride, - Threads, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp deleted file mode 100644 index e23e6092e..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp deleted file mode 100644 index f5db8f744..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp deleted file mode 100644 index 44ce22318..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp deleted file mode 100644 index 55fca1118..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp deleted file mode 100644 index 31b952913..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp deleted file mode 100644 index 887bfb4c0..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutRight, - Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutLeft, - Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutStride, - Threads, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp deleted file mode 100644 index 71625e0d8..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutRight, Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutLeft, Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutStride, Threads, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp deleted file mode 100644 index cd045703f..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutRight, Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutLeft, Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutStride, Threads, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp deleted file mode 100644 index abbd0f842..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutRight, Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutLeft, Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp deleted file mode 100644 index 5ac12d864..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutLeft, Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp deleted file mode 100644 index 50ed4f48c..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp deleted file mode 100644 index f83f5faa2..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutLeft, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp deleted file mode 100644 index c99684ef9..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutRight, Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutLeft, Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutStride, Threads, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp deleted file mode 100644 index c0c1bb9c8..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutRight, Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutLeft, Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp deleted file mode 100644 index cfef96b18..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutLeft, Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp deleted file mode 100644 index c16e18935..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp deleted file mode 100644 index 3b404d241..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp deleted file mode 100644 index 21148463c..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutRight, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp deleted file mode 100644 index 8d5eed4f8..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutRight, Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutLeft, Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp deleted file mode 100644 index 7a590129d..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutLeft, Threads, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp deleted file mode 100644 index 7ad5bfa4d..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp deleted file mode 100644 index be7a7cb21..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp deleted file mode 100644 index df2d4b176..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp deleted file mode 100644 index 29b3cc8ee..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutRight, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutLeft, Threads, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutStride, Threads, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutStride, Threads, int64_t) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp deleted file mode 100644 index 1bbc8c414..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutLeft, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp deleted file mode 100644 index e04cee2c2..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp deleted file mode 100644 index 0849086c3..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutLeft, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp deleted file mode 100644 index 6b50b7ca7..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutLeft, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp deleted file mode 100644 index a3592caba..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutLeft, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp deleted file mode 100644 index ce16f2a70..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutLeft, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutLeft, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp deleted file mode 100644 index 29c6670a8..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutRight, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp deleted file mode 100644 index aa343fcb8..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutRight, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp deleted file mode 100644 index 1043a55fd..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutRight, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp deleted file mode 100644 index 9f2d09565..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutRight, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp deleted file mode 100644 index 02b4d1087..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutLeft, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutRight, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp deleted file mode 100644 index c83fe0bfb..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutLeft, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutRight, LayoutStride, - Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp deleted file mode 100644 index d97cb633f..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*, LayoutStride, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp deleted file mode 100644 index 988dd3091..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutStride, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp deleted file mode 100644 index b537f31ec..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double***, LayoutStride, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double***, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp deleted file mode 100644 index 4163489a3..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutLeft, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double****, LayoutStride, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double****, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp deleted file mode 100644 index e954a0b03..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutLeft, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double*****, LayoutStride, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double*****, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp deleted file mode 100644 index 7f56eb8d2..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutRight, - Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutLeft, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double********, LayoutStride, LayoutStride, - Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double********, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp deleted file mode 100644 index be9a665fb..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutLeft, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp deleted file mode 100644 index c82e8d12a..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutLeft, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp deleted file mode 100644 index 0789ace2e..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutLeft, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp deleted file mode 100644 index 1b9f8a615..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutLeft, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp deleted file mode 100644 index 92ae8f9a9..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutLeft, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp deleted file mode 100644 index 1cf105fe5..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutLeft, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutLeft, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp deleted file mode 100644 index 24dc52eef..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutRight, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp deleted file mode 100644 index 7e6619330..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutRight, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp deleted file mode 100644 index c347f7700..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutRight, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp deleted file mode 100644 index 607eeed51..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutRight, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp deleted file mode 100644 index 86ce1f81a..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutRight, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp deleted file mode 100644 index 38edea565..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutLeft, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutRight, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp deleted file mode 100644 index c11ba480b..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*, LayoutStride, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp deleted file mode 100644 index 12973de44..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float**, LayoutStride, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float**, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp deleted file mode 100644 index 57f00f62b..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float***, LayoutStride, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float***, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp deleted file mode 100644 index 5a73ab7e9..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float****, LayoutStride, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float****, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp deleted file mode 100644 index 1b928f18f..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutLeft, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float*****, LayoutStride, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float*****, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp deleted file mode 100644 index c3b3949d8..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutLeft, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(float********, LayoutStride, LayoutStride, - Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(float********, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp deleted file mode 100644 index c9736ad22..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutLeft, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp deleted file mode 100644 index 93d7a16c9..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutLeft, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp deleted file mode 100644 index ad9546fa6..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutLeft, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp deleted file mode 100644 index a62946d97..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutLeft, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp deleted file mode 100644 index 20826a037..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutLeft, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutLeft, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp deleted file mode 100644 index 9d629f9ff..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutLeft, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutLeft, LayoutStride, - Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp deleted file mode 100644 index 39a7dbef8..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutRight, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp deleted file mode 100644 index 33bb9f577..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutRight, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp deleted file mode 100644 index 1d052babb..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutRight, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp deleted file mode 100644 index 6533f33f5..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutLeft, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutRight, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp deleted file mode 100644 index a8b7a9615..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutLeft, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutRight, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp deleted file mode 100644 index 33517ed85..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutRight, - Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutLeft, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutRight, LayoutStride, - Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp deleted file mode 100644 index 2bd62e560..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*, LayoutStride, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp deleted file mode 100644 index fd1bb8862..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t**, LayoutStride, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t**, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp deleted file mode 100644 index 33a23913e..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutLeft, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t***, LayoutStride, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t***, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp deleted file mode 100644 index 1bcab4c13..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutLeft, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t****, LayoutStride, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t****, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp deleted file mode 100644 index 0a8d0676d..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutLeft, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t*****, LayoutStride, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t*****, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp deleted file mode 100644 index 47ccf94a8..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutRight, - Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutLeft, - Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int64_t********, LayoutStride, LayoutStride, - Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int64_t********, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp deleted file mode 100644 index acc4187d9..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutLeft, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp deleted file mode 100644 index 01a0fd28e..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutLeft, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp deleted file mode 100644 index b31813ca3..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp deleted file mode 100644 index bf52b9f93..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutLeft, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp deleted file mode 100644 index 61e5dc06a..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutLeft, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp deleted file mode 100644 index cb6906991..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutLeft, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutLeft, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp deleted file mode 100644 index b3afb8f5a..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutRight, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp deleted file mode 100644 index f742ae330..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutRight, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp deleted file mode 100644 index 44b772418..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutRight, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp deleted file mode 100644 index 2a08a72d8..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutRight, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp deleted file mode 100644 index 5e9bd50d1..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutRight, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp deleted file mode 100644 index 9d3ebb948..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutLeft, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutRight, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutRight, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp deleted file mode 100644 index f77e685c7..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp deleted file mode 100644 index 57ae0a1fd..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int**, LayoutStride, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int**, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp deleted file mode 100644 index d86407b2c..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutStride, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp deleted file mode 100644 index 0abf26b47..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutStride, Threads, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp deleted file mode 100644 index 6e8cd9f28..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp +++ /dev/null @@ -1,56 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutRight, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutLeft, Threads, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*****, LayoutStride, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*****, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp b/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp deleted file mode 100644 index ff91ded36..000000000 --- a/packages/kokkos/core/src/eti/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp +++ /dev/null @@ -1,58 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// Kokkos is licensed under 3-clause BSD terms of use: -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutRight, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutLeft, Threads, - int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int********, LayoutStride, LayoutStride, Threads, - int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int********, LayoutStride, Threads, int) - -} // namespace Impl -} // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Threads/Makefile.eti_Threads b/packages/kokkos/core/src/eti/Threads/Makefile.eti_Threads deleted file mode 100644 index 26d0ce280..000000000 --- a/packages/kokkos/core/src/eti/Threads/Makefile.eti_Threads +++ /dev/null @@ -1,288 +0,0 @@ -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutLeft_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutRight_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int_LayoutStride_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutLeft_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutRight_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int_LayoutStride_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutLeft_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutRight_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_int64_t_LayoutStride_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutLeft_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutRight_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_int64_t_LayoutStride_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutLeft_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutRight_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_float_LayoutStride_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutLeft_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutRight_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_float_LayoutStride_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutLeft_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutRight_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int_double_LayoutStride_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutRight_Rank8.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank1.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank2.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank3.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank4.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank5.cpp -Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_ETI_PATH)/Threads/Kokkos_Threads_ViewCopyETIInst_int64_t_double_LayoutStride_Rank8.cpp diff --git a/packages/kokkos/core/src/eti/common/Kokkos_ViewFillCopyETIAvail_Macros.hpp b/packages/kokkos/core/src/eti/common/Kokkos_ViewFillCopyETIAvail_Macros.hpp deleted file mode 100644 index 6196dbf35..000000000 --- a/packages/kokkos/core/src/eti/common/Kokkos_ViewFillCopyETIAvail_Macros.hpp +++ /dev/null @@ -1,1440 +0,0 @@ -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int*, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int**, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int**, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int**, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int**, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int***, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int***, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int***, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int***, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int*****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int********, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int********, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int********, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int********, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int*, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int**, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int**, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int**, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int**, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int***, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int***, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int***, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int***, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int*****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int********, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int********, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int********, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int********, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int*, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int**, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int**, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int**, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int**, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int***, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int***, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int***, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int***, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int*****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int********, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int********, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int********, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int********, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int*, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int**, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int**, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int**, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int**, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int***, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int***, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int***, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int***, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int*****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int********, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int********, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int********, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int********, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int*, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int**, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int**, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int**, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int**, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int***, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int***, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int***, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int***, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int*****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int********, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int********, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int********, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int********, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int*, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int**, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int**, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int**, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int**, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int***, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int***, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int***, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int***, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int*****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int*****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int********, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int********, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int********, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int********, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t*, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t**, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t**, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t**, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t**, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t***, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t***, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t***, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t***, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t*****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t********, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t********, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t********, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t********, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t*, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t**, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t**, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t**, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t**, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t***, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t***, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t***, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t***, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t*****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t********, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t********, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t********, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t********, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t*, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t**, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t**, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t**, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t**, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t***, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t***, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t***, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t***, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t*****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t********, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t********, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t********, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t********, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t*, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t**, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t**, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t**, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t**, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t***, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t***, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t***, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t***, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t*****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t********, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t********, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t********, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t********, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t*, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t**, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t**, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t**, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t**, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t***, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t***, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t***, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t***, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t*****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t********, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t********, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t********, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t********, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t*, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t**, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t**, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t**, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t**, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t***, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t***, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t***, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t***, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t*****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t*****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t********, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t********, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(int64_t********, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(int64_t********, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float*, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float**, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float**, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float**, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float**, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float***, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float***, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float***, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float***, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float*****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float********, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float********, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float********, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float********, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float*, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float**, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float**, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float**, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float**, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float***, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float***, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float***, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float***, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float*****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float********, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float********, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float********, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float********, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float*, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float**, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float**, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float**, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float**, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float***, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float***, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float***, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float***, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float*****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float********, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float********, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float********, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float********, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float*, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float**, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float**, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float**, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float**, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float***, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float***, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float***, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float***, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float*****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float********, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float********, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float********, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float********, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float*, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float**, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float**, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float**, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float**, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float***, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float***, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float***, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float***, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float*****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float********, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float********, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float********, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float********, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float*, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float**, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float**, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float**, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float**, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float***, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float***, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float***, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float***, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float*****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float*****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float********, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float********, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(float********, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(float********, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double*, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double**, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double**, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double**, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double**, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double***, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double***, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double***, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double***, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double*****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double********, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double********, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double********, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double********, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double*, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double**, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double**, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double**, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double**, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double***, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double***, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double***, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double***, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double*****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double********, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double********, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double********, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double********, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double*, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double**, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double**, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double**, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double**, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double***, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double***, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double***, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double***, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double*****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double********, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double********, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double********, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double********, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double*, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double**, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double**, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double**, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double**, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double***, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double***, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double***, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double***, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double*****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double********, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double********, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double********, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double********, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double*, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double**, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double**, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double**, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double**, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double***, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double***, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double***, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double***, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double*****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double********, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double********, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double********, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double********, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double*, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double**, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double**, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double**, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double**, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double***, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double***, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double***, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double***, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double*****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double*****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double********, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double********, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(double********, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(double********, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, - int64_t) diff --git a/packages/kokkos/core/src/eti/common/Kokkos_ViewFillCopyETIDecl_Macros.hpp b/packages/kokkos/core/src/eti/common/Kokkos_ViewFillCopyETIDecl_Macros.hpp deleted file mode 100644 index 98d9791ee..000000000 --- a/packages/kokkos/core/src/eti/common/Kokkos_ViewFillCopyETIDecl_Macros.hpp +++ /dev/null @@ -1,1152 +0,0 @@ -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int*, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int**, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int**, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int**, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int**, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int***, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int***, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int***, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int***, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int*****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int********, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int********, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int********, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int********, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int*, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int**, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int**, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int**, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int**, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int***, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int***, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int***, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int***, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int*****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int********, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int********, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int********, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int********, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int*, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int**, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int**, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int**, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int**, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int***, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int***, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int***, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int***, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int*****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int********, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int********, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int********, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int********, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int*, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int**, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int**, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int**, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int**, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int***, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int***, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int***, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int***, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int*****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int********, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int********, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int********, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int********, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int*, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int**, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int**, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int**, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int**, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int***, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int***, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int***, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int***, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int*****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int********, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int********, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int********, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int********, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int*, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int**, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int**, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int**, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int**, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int***, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int***, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int***, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int***, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int*****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int*****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int********, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int********, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int********, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int********, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t*, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t**, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t**, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t**, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t**, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t***, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t***, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t***, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t***, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t*****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t********, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t********, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t********, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t********, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t*, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t**, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t**, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t**, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t**, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t***, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t***, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t***, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t***, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t*****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t********, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t********, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t********, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t********, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t*, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t**, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t**, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t**, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t**, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t***, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t***, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t***, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t***, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t*****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t********, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t********, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t********, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t********, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t*, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t**, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t**, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t**, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t**, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t***, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t***, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t***, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t***, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t*****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t********, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t********, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t********, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t********, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t*, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t**, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t**, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t**, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t**, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t***, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t***, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t***, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t***, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t*****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t********, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t********, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t********, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t********, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t*, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t**, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t**, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t**, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t**, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t***, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t***, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t***, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t***, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t*****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t*****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t********, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t********, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(int64_t********, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(int64_t********, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float*, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float**, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float**, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float**, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float**, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float***, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float***, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float***, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float***, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float*****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float********, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float********, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float********, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float********, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float*, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float**, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float**, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float**, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float**, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float***, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float***, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float***, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float***, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float*****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float********, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float********, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float********, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float********, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float*, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float**, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float**, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float**, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float**, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float***, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float***, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float***, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float***, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float*****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float********, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float********, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float********, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float********, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float*, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float**, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float**, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float**, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float**, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float***, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float***, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float***, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float***, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float*****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float********, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float********, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float********, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float********, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float*, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float**, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float**, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float**, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float**, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float***, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float***, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float***, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float***, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float*****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float********, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float********, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float********, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float********, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float*, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float**, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float**, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float**, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float**, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float***, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float***, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float***, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float***, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float*****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float*****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float********, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float********, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(float********, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(float********, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double*, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double**, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double**, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double**, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double**, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double***, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double***, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double***, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double***, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double*****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double********, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double********, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double********, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double********, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double*, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double**, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double**, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double**, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double**, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double***, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double***, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double***, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double***, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double*****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double********, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double********, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double********, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double********, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double*, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double**, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double**, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double**, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double**, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double***, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double***, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double***, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double***, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double*****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double********, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double********, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double********, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double********, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double*, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double**, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double**, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double**, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double**, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double***, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double***, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double***, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double***, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*****, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*****, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*****, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double*****, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double********, LayoutLeft, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double********, LayoutLeft, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double********, LayoutLeft, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double********, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double*, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double**, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double**, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double**, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double**, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double***, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double***, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double***, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double***, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*****, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*****, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*****, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double*****, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double********, LayoutRight, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double********, LayoutRight, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double********, LayoutRight, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double********, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double*, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double**, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double**, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double**, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double**, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double***, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double***, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double***, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double***, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*****, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*****, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double*****, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double*****, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double********, LayoutStride, LayoutRight, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double********, LayoutStride, LayoutLeft, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_DECL(double********, LayoutStride, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_DECL(double********, LayoutStride, - KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE, int64_t) diff --git a/packages/kokkos/core/src/Cuda/Kokkos_Cuda_fwd.hpp b/packages/kokkos/core/src/fwd/Kokkos_Fwd_CUDA.hpp similarity index 100% rename from packages/kokkos/core/src/Cuda/Kokkos_Cuda_fwd.hpp rename to packages/kokkos/core/src/fwd/Kokkos_Fwd_CUDA.hpp diff --git a/packages/kokkos/core/src/Cuda/Kokkos_Cuda_ViewCopyETIDecl.hpp b/packages/kokkos/core/src/fwd/Kokkos_Fwd_HBWSpace.hpp similarity index 87% rename from packages/kokkos/core/src/Cuda/Kokkos_Cuda_ViewCopyETIDecl.hpp rename to packages/kokkos/core/src/fwd/Kokkos_Fwd_HBWSpace.hpp index 18e56aa32..d9dada27a 100644 --- a/packages/kokkos/core/src/Cuda/Kokkos_Cuda_ViewCopyETIDecl.hpp +++ b/packages/kokkos/core/src/fwd/Kokkos_Fwd_HBWSpace.hpp @@ -42,16 +42,16 @@ //@HEADER */ -#ifndef KOKKOS_CUDA_VIEWETIDECL_HPP -#define KOKKOS_CUDA_VIEWETIDECL_HPP +#ifndef KOKKOS_HBWSPACE_FWD_HPP_ +#define KOKKOS_HBWSPACE_FWD_HPP_ +#ifdef KOKKOS_ENABLE_HBWSPACE namespace Kokkos { -namespace Impl { -#define KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE Kokkos::Cuda -#include <eti/common/Kokkos_ViewFillCopyETIDecl_Macros.hpp> - -#undef KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE -} // namespace Impl +namespace Experimental { +class HBWSpace; /// Memory space for hbw_malloc from memkind (e.g. for KNL + /// processor) +} // namespace Experimental } // namespace Kokkos #endif +#endif diff --git a/packages/kokkos/core/src/ROCm/Kokkos_ROCm_ViewCopyETIDecl.hpp b/packages/kokkos/core/src/fwd/Kokkos_Fwd_HIP.hpp similarity index 87% rename from packages/kokkos/core/src/ROCm/Kokkos_ROCm_ViewCopyETIDecl.hpp rename to packages/kokkos/core/src/fwd/Kokkos_Fwd_HIP.hpp index db02a49c8..0465c380c 100644 --- a/packages/kokkos/core/src/ROCm/Kokkos_ROCm_ViewCopyETIDecl.hpp +++ b/packages/kokkos/core/src/fwd/Kokkos_Fwd_HIP.hpp @@ -42,16 +42,15 @@ //@HEADER */ -#ifndef KOKKOS_ROCM_VIEWETIDECL_HPP -#define KOKKOS_ROCM_VIEWETIDECL_HPP +#ifndef KOKKOS_HIP_FWD_HPP_ +#define KOKKOS_HIP_FWD_HPP_ +#if defined(KOKKOS_ENABLE_HIP) namespace Kokkos { -namespace Impl { -#define KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE Kokkos::ROCm - -#include <eti/common/Kokkos_ViewFillCopyETIDecl_Macros.hpp> - -#undef KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE -} // namespace Impl +namespace Experimental { +class HIPSpace; ///< Memory space on HIP GPU +class HIP; ///< Execution space for HIP GPU +} // namespace Experimental } // namespace Kokkos #endif +#endif diff --git a/packages/kokkos/core/src/fwd/Kokkos_Fwd_HPX.hpp b/packages/kokkos/core/src/fwd/Kokkos_Fwd_HPX.hpp new file mode 100644 index 000000000..8949c527f --- /dev/null +++ b/packages/kokkos/core/src/fwd/Kokkos_Fwd_HPX.hpp @@ -0,0 +1,55 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_HPX_FWD_HPP_ +#define KOKKOS_HPX_FWD_HPP_ + +#if defined(KOKKOS_ENABLE_HPX) +namespace Kokkos { +namespace Experimental { +class HPX; ///< Execution space with HPX back-end. +} // namespace Experimental +} // namespace Kokkos +#endif +#endif diff --git a/packages/kokkos/core/src/fwd/Kokkos_Fwd_OPENMP.hpp b/packages/kokkos/core/src/fwd/Kokkos_Fwd_OPENMP.hpp new file mode 100644 index 000000000..fc2223d3e --- /dev/null +++ b/packages/kokkos/core/src/fwd/Kokkos_Fwd_OPENMP.hpp @@ -0,0 +1,53 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_OPENMP_FWD_HPP_ +#define KOKKOS_OPENMP_FWD_HPP_ + +#if defined(KOKKOS_ENABLE_OPENMP) +namespace Kokkos { +class OpenMP; ///< OpenMP execution space. +} // namespace Kokkos +#endif +#endif diff --git a/packages/kokkos/core/src/ROCm/Kokkos_ROCm_ViewCopyETIAvail.hpp b/packages/kokkos/core/src/fwd/Kokkos_Fwd_OPENMPTARGET.hpp similarity index 87% rename from packages/kokkos/core/src/ROCm/Kokkos_ROCm_ViewCopyETIAvail.hpp rename to packages/kokkos/core/src/fwd/Kokkos_Fwd_OPENMPTARGET.hpp index 018151b30..8d12b8b70 100644 --- a/packages/kokkos/core/src/ROCm/Kokkos_ROCm_ViewCopyETIAvail.hpp +++ b/packages/kokkos/core/src/fwd/Kokkos_Fwd_OPENMPTARGET.hpp @@ -42,16 +42,15 @@ //@HEADER */ -#ifndef KOKKOS_ROCM_VIEWETIAVAIL_HPP -#define KOKKOS_ROCM_VIEWETIAVAIL_HPP +#ifndef KOKKOS_OPENMPTARGET_FWD_HPP_ +#define KOKKOS_OPENMPTARGET_FWD_HPP_ +#if defined(KOKKOS_ENABLE_OPENMPTARGET) namespace Kokkos { -namespace Impl { -#define KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE Kokkos::ROCm - -#include <eti/common/Kokkos_ViewFillCopyETIAvail_Macros.hpp> - -#undef KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE -} // namespace Impl +namespace Experimental { +class OpenMPTarget; ///< OpenMPTarget execution space. +class OpenMPTargetSpace; +} // namespace Experimental } // namespace Kokkos #endif +#endif diff --git a/packages/kokkos/core/src/fwd/Kokkos_Fwd_SERIAL.hpp b/packages/kokkos/core/src/fwd/Kokkos_Fwd_SERIAL.hpp new file mode 100644 index 000000000..8f253d0a7 --- /dev/null +++ b/packages/kokkos/core/src/fwd/Kokkos_Fwd_SERIAL.hpp @@ -0,0 +1,53 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_SERIAL_FWD_HPP_ +#define KOKKOS_SERIAL_FWD_HPP_ + +#if defined(KOKKOS_ENABLE_SERIAL) +namespace Kokkos { +class Serial; ///< Execution space main process on CPU. +} // namespace Kokkos +#endif +#endif diff --git a/packages/kokkos/core/src/Cuda/Kokkos_Cuda_ViewCopyETIAvail.hpp b/packages/kokkos/core/src/fwd/Kokkos_Fwd_SYCL.hpp similarity index 87% rename from packages/kokkos/core/src/Cuda/Kokkos_Cuda_ViewCopyETIAvail.hpp rename to packages/kokkos/core/src/fwd/Kokkos_Fwd_SYCL.hpp index 2fbfb6727..fc21b942c 100644 --- a/packages/kokkos/core/src/Cuda/Kokkos_Cuda_ViewCopyETIAvail.hpp +++ b/packages/kokkos/core/src/fwd/Kokkos_Fwd_SYCL.hpp @@ -42,16 +42,15 @@ //@HEADER */ -#ifndef KOKKOS_CUDA_VIEWETIAVAIL_HPP -#define KOKKOS_CUDA_VIEWETIAVAIL_HPP +#ifndef KOKKOS_SYCL_FWD_HPP_ +#define KOKKOS_SYCL_FWD_HPP_ +#if defined(KOKKOS_ENABLE_SYCL) namespace Kokkos { -namespace Impl { -#define KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE Kokkos::Cuda - -#include <eti/common/Kokkos_ViewFillCopyETIAvail_Macros.hpp> - -#undef KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE -} // namespace Impl +namespace Experimental { +class SYCLDeviceUSMSpace; ///< Memory space on SYCL device +class SYCL; ///< Execution space for SYCL +} // namespace Experimental } // namespace Kokkos #endif +#endif diff --git a/packages/kokkos/core/src/fwd/Kokkos_Fwd_THREADS.hpp b/packages/kokkos/core/src/fwd/Kokkos_Fwd_THREADS.hpp new file mode 100644 index 000000000..28ffb685d --- /dev/null +++ b/packages/kokkos/core/src/fwd/Kokkos_Fwd_THREADS.hpp @@ -0,0 +1,53 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_THREADS_FWD_HPP_ +#define KOKKOS_THREADS_FWD_HPP_ + +#if defined(KOKKOS_ENABLE_THREADS) +namespace Kokkos { +class Threads; ///< Execution space with pthreads back-end. +} // namespace Kokkos +#endif +#endif diff --git a/packages/kokkos/core/src/impl/CMakeLists.txt b/packages/kokkos/core/src/impl/CMakeLists.txt index 361a85b73..9ff02a2ea 100644 --- a/packages/kokkos/core/src/impl/CMakeLists.txt +++ b/packages/kokkos/core/src/impl/CMakeLists.txt @@ -2,7 +2,7 @@ SET(HEADERS "") SET(SOURCES "") -FILE(GLOB HEADERS *.hpp) +FILE(GLOB HEADERS *.hpp *.h) FILE(GLOB SOURCES *.cpp) TRIBITS_ADD_LIBRARY( diff --git a/packages/kokkos/core/src/impl/KokkosExp_Host_IterateTile.hpp b/packages/kokkos/core/src/impl/KokkosExp_Host_IterateTile.hpp index 09ed79a5f..d9f02b47a 100644 --- a/packages/kokkos/core/src/impl/KokkosExp_Host_IterateTile.hpp +++ b/packages/kokkos/core/src/impl/KokkosExp_Host_IterateTile.hpp @@ -57,9 +57,7 @@ #define KOKKOS_ENABLE_IVDEP_MDRANGE #endif -#include <iostream> #include <algorithm> -#include <cstdio> namespace Kokkos { namespace Impl { @@ -1574,7 +1572,7 @@ struct HostIterateTile< template <int Rank> struct RankTag { - typedef RankTag type; + using type = RankTag<Rank>; enum { value = (int)Rank }; }; @@ -1995,7 +1993,7 @@ struct HostIterateTile< template <int Rank> struct RankTag { - typedef RankTag type; + using type = RankTag<Rank>; enum { value = (int)Rank }; }; @@ -2418,7 +2416,7 @@ struct HostIterateTile< template <int Rank> struct RankTag { - typedef RankTag type; + using type = RankTag<Rank>; enum { value = (int)Rank }; }; @@ -2793,111 +2791,6 @@ struct HostIterateTile< // ------------------------------------------------------------------ // -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -// MDFunctor - wraps the range_policy and functor to pass to IterateTile -// Used for md_parallel_{for,reduce} with Serial, Threads, OpenMP -// Cuda uses DeviceIterateTile directly within md_parallel_for -// TODO Once md_parallel_{for,reduce} removed, this can be removed - -namespace Experimental { - -// ParallelReduce - scalar reductions -template <typename MDRange, typename Functor, typename ValueType = void> -struct MDFunctor { - using range_policy = MDRange; - using functor_type = Functor; - using value_type = ValueType; - using work_tag = typename range_policy::work_tag; - using index_type = typename range_policy::index_type; - using iterate_type = - typename Kokkos::Impl::HostIterateTile<MDRange, Functor, work_tag, - value_type>; - - inline MDFunctor(MDRange const& range, Functor const& f) - : m_range(range), m_func(f) {} - - inline MDFunctor(MDFunctor const&) = default; - - inline MDFunctor& operator=(MDFunctor const&) = default; - - inline MDFunctor(MDFunctor&&) = default; - - inline MDFunctor& operator=(MDFunctor&&) = default; - - inline void operator()(index_type t, value_type& v) const { - iterate_type(m_range, m_func, v)(t); - } - - MDRange m_range; - Functor m_func; -}; - -// ParallelReduce - array reductions -template <typename MDRange, typename Functor, typename ValueType> -struct MDFunctor<MDRange, Functor, ValueType[]> { - using range_policy = MDRange; - using functor_type = Functor; - using value_type = ValueType[]; - using work_tag = typename range_policy::work_tag; - using index_type = typename range_policy::index_type; - using iterate_type = - typename Kokkos::Impl::HostIterateTile<MDRange, Functor, work_tag, - value_type>; - - inline MDFunctor(MDRange const& range, Functor const& f) - : m_range(range), m_func(f), value_count(f.value_count) {} - - inline MDFunctor(MDFunctor const&) = default; - - inline MDFunctor& operator=(MDFunctor const&) = default; - - inline MDFunctor(MDFunctor&&) = default; - - inline MDFunctor& operator=(MDFunctor&&) = default; - - // FIXME Init and Join, as defined in m_func, are not working through the - // MDFunctor Best path forward is to eliminate need for MDFunctor, directly - // use MDRangePolicy within Parallel{For,Reduce} ?? - inline void operator()(index_type t, value_type v) const { - iterate_type(m_range, m_func, v)(t); - } - - MDRange m_range; - Functor m_func; - size_t value_count; -}; - -// ParallelFor -template <typename MDRange, typename Functor> -struct MDFunctor<MDRange, Functor, void> { - using range_policy = MDRange; - using functor_type = Functor; - using work_tag = typename range_policy::work_tag; - using index_type = typename range_policy::index_type; - using iterate_type = - typename Kokkos::Impl::HostIterateTile<MDRange, Functor, work_tag, void>; - - inline MDFunctor(MDRange const& range, Functor const& f) - : m_range(range), m_func(f) {} - - inline MDFunctor(MDFunctor const&) = default; - - inline MDFunctor& operator=(MDFunctor const&) = default; - - inline MDFunctor(MDFunctor&&) = default; - - inline MDFunctor& operator=(MDFunctor&&) = default; - - inline void operator()(index_type t) const { - iterate_type(m_range, m_func)(t); - } - - MDRange m_range; - Functor m_func; -}; - -} // end namespace Experimental -#endif #undef KOKKOS_ENABLE_NEW_LOOP_MACROS } // namespace Impl diff --git a/packages/kokkos/core/src/HIP/KokkosExp_HIP_IterateTile.hpp b/packages/kokkos/core/src/impl/KokkosExp_IterateTileGPU.hpp similarity index 77% rename from packages/kokkos/core/src/HIP/KokkosExp_HIP_IterateTile.hpp rename to packages/kokkos/core/src/impl/KokkosExp_IterateTileGPU.hpp index e2525d70c..45e53d3a4 100644 --- a/packages/kokkos/core/src/HIP/KokkosExp_HIP_IterateTile.hpp +++ b/packages/kokkos/core/src/impl/KokkosExp_IterateTileGPU.hpp @@ -42,22 +42,17 @@ //@HEADER */ -#ifndef KOKKOS_HIP_EXP_ITERATE_TILE_REFACTOR_HPP -#define KOKKOS_HIP_EXP_ITERATE_TILE_REFACTOR_HPP +#ifndef KOKKOS_EXP_ITERATE_TILE_GPU_HPP +#define KOKKOS_EXP_ITERATE_TILE_GPU_HPP #include <Kokkos_Macros.hpp> -#if defined(__HIPCC__) -#include <iostream> #include <algorithm> -#include <cstdio> #include <utility> -#if defined(KOKKOS_ENABLE_PROFILING) #include <impl/Kokkos_Profiling_Interface.hpp> #include <typeinfo> -#endif namespace Kokkos { namespace Impl { @@ -73,29 +68,30 @@ template <typename PolicyType, typename Functor> struct DeviceIterateTile<2, PolicyType, Functor, void> { using index_type = typename PolicyType::index_type; - __device__ DeviceIterateTile(const PolicyType& policy_, const Functor& f_) + KOKKOS_IMPL_DEVICE_FUNCTION DeviceIterateTile(const PolicyType& policy_, + const Functor& f_) : m_policy(policy_), m_func(f_) {} - KOKKOS_INLINE_FUNCTION + KOKKOS_IMPL_DEVICE_FUNCTION void exec_range() const { // LL if (PolicyType::inner_direction == PolicyType::Left) { - for (index_type tile_id1 = static_cast<index_type>(hipBlockIdx_y); - tile_id1 < m_policy.m_tile_end[1]; tile_id1 += hipGridDim_y) { + for (index_type tile_id1 = static_cast<index_type>(blockIdx.y); + tile_id1 < m_policy.m_tile_end[1]; tile_id1 += gridDim.y) { const index_type offset_1 = tile_id1 * m_policy.m_tile[1] + - static_cast<index_type>(hipThreadIdx_y) + + static_cast<index_type>(threadIdx.y) + static_cast<index_type>(m_policy.m_lower[1]); if (offset_1 < m_policy.m_upper[1] && - static_cast<index_type>(hipThreadIdx_y) < m_policy.m_tile[1]) { - for (index_type tile_id0 = static_cast<index_type>(hipBlockIdx_x); - tile_id0 < m_policy.m_tile_end[0]; tile_id0 += hipGridDim_x) { + static_cast<index_type>(threadIdx.y) < m_policy.m_tile[1]) { + for (index_type tile_id0 = static_cast<index_type>(blockIdx.x); + tile_id0 < m_policy.m_tile_end[0]; tile_id0 += gridDim.x) { const index_type offset_0 = tile_id0 * m_policy.m_tile[0] + - static_cast<index_type>(hipThreadIdx_x) + + static_cast<index_type>(threadIdx.x) + static_cast<index_type>(m_policy.m_lower[0]); if (offset_0 < m_policy.m_upper[0] && - static_cast<index_type>(hipThreadIdx_x) < m_policy.m_tile[0]) { + static_cast<index_type>(threadIdx.x) < m_policy.m_tile[0]) { m_func(offset_0, offset_1); } } @@ -104,22 +100,22 @@ struct DeviceIterateTile<2, PolicyType, Functor, void> { } // LR else { - for (index_type tile_id0 = static_cast<index_type>(hipBlockIdx_x); - tile_id0 < m_policy.m_tile_end[0]; tile_id0 += hipGridDim_x) { + for (index_type tile_id0 = static_cast<index_type>(blockIdx.x); + tile_id0 < m_policy.m_tile_end[0]; tile_id0 += gridDim.x) { const index_type offset_0 = tile_id0 * m_policy.m_tile[0] + - static_cast<index_type>(hipThreadIdx_x) + + static_cast<index_type>(threadIdx.x) + static_cast<index_type>(m_policy.m_lower[0]); if (offset_0 < m_policy.m_upper[0] && - static_cast<index_type>(hipThreadIdx_x) < m_policy.m_tile[0]) { - for (index_type tile_id1 = static_cast<index_type>(hipBlockIdx_y); - tile_id1 < m_policy.m_tile_end[1]; tile_id1 += hipGridDim_y) { + static_cast<index_type>(threadIdx.x) < m_policy.m_tile[0]) { + for (index_type tile_id1 = static_cast<index_type>(blockIdx.y); + tile_id1 < m_policy.m_tile_end[1]; tile_id1 += gridDim.y) { const index_type offset_1 = tile_id1 * m_policy.m_tile[1] + - static_cast<index_type>(hipThreadIdx_y) + + static_cast<index_type>(threadIdx.y) + static_cast<index_type>(m_policy.m_lower[1]); if (offset_1 < m_policy.m_upper[1] && - static_cast<index_type>(hipThreadIdx_y) < m_policy.m_tile[1]) { + static_cast<index_type>(threadIdx.y) < m_policy.m_tile[1]) { m_func(offset_0, offset_1); } } @@ -138,52 +134,52 @@ template <typename PolicyType, typename Functor, typename Tag> struct DeviceIterateTile<2, PolicyType, Functor, Tag> { using index_type = typename PolicyType::index_type; - KOKKOS_INLINE_FUNCTION - DeviceIterateTile(const PolicyType& policy_, const Functor& f_) + KOKKOS_IMPL_DEVICE_FUNCTION DeviceIterateTile(const PolicyType& policy_, + const Functor& f_) : m_policy(policy_), m_func(f_) {} - KOKKOS_INLINE_FUNCTION + KOKKOS_IMPL_DEVICE_FUNCTION void exec_range() const { if (PolicyType::inner_direction == PolicyType::Left) { // Loop over size maxnumblocks until full range covered - for (index_type tile_id1 = static_cast<index_type>(hipBlockIdx_y); - tile_id1 < m_policy.m_tile_end[1]; tile_id1 += hipGridDim_y) { + for (index_type tile_id1 = static_cast<index_type>(blockIdx.y); + tile_id1 < m_policy.m_tile_end[1]; tile_id1 += gridDim.y) { const index_type offset_1 = tile_id1 * m_policy.m_tile[1] + - static_cast<index_type>(hipThreadIdx_y) + + static_cast<index_type>(threadIdx.y) + static_cast<index_type>(m_policy.m_lower[1]); if (offset_1 < m_policy.m_upper[1] && - static_cast<index_type>(hipThreadIdx_y) < m_policy.m_tile[1]) { - for (index_type tile_id0 = static_cast<index_type>(hipBlockIdx_x); - tile_id0 < m_policy.m_tile_end[0]; tile_id0 += hipGridDim_x) { + static_cast<index_type>(threadIdx.y) < m_policy.m_tile[1]) { + for (index_type tile_id0 = static_cast<index_type>(blockIdx.x); + tile_id0 < m_policy.m_tile_end[0]; tile_id0 += gridDim.x) { const index_type offset_0 = tile_id0 * m_policy.m_tile[0] + - static_cast<index_type>(hipThreadIdx_x) + + static_cast<index_type>(threadIdx.x) + static_cast<index_type>(m_policy.m_lower[0]); if (offset_0 < m_policy.m_upper[0] && - static_cast<index_type>(hipThreadIdx_x) < m_policy.m_tile[0]) { + static_cast<index_type>(threadIdx.x) < m_policy.m_tile[0]) { m_func(Tag(), offset_0, offset_1); } } } } } else { - for (index_type tile_id0 = static_cast<index_type>(hipBlockIdx_x); - tile_id0 < m_policy.m_tile_end[0]; tile_id0 += hipGridDim_x) { + for (index_type tile_id0 = static_cast<index_type>(blockIdx.x); + tile_id0 < m_policy.m_tile_end[0]; tile_id0 += gridDim.x) { const index_type offset_0 = tile_id0 * m_policy.m_tile[0] + - static_cast<index_type>(hipThreadIdx_x) + + static_cast<index_type>(threadIdx.x) + static_cast<index_type>(m_policy.m_lower[0]); if (offset_0 < m_policy.m_upper[0] && - static_cast<index_type>(hipThreadIdx_x) < m_policy.m_tile[0]) { - for (index_type tile_id1 = static_cast<index_type>(hipBlockIdx_y); - tile_id1 < m_policy.m_tile_end[1]; tile_id1 += hipGridDim_y) { + static_cast<index_type>(threadIdx.x) < m_policy.m_tile[0]) { + for (index_type tile_id1 = static_cast<index_type>(blockIdx.y); + tile_id1 < m_policy.m_tile_end[1]; tile_id1 += gridDim.y) { const index_type offset_1 = tile_id1 * m_policy.m_tile[1] + - static_cast<index_type>(hipThreadIdx_y) + + static_cast<index_type>(threadIdx.y) + static_cast<index_type>(m_policy.m_lower[1]); if (offset_1 < m_policy.m_upper[1] && - static_cast<index_type>(hipThreadIdx_y) < m_policy.m_tile[1]) { + static_cast<index_type>(threadIdx.y) < m_policy.m_tile[1]) { m_func(Tag(), offset_0, offset_1); } } @@ -203,39 +199,38 @@ template <typename PolicyType, typename Functor> struct DeviceIterateTile<3, PolicyType, Functor, void> { using index_type = typename PolicyType::index_type; - __device__ DeviceIterateTile(const PolicyType& policy_, const Functor& f_) + KOKKOS_IMPL_DEVICE_FUNCTION DeviceIterateTile(const PolicyType& policy_, + const Functor& f_) : m_policy(policy_), m_func(f_) {} - KOKKOS_INLINE_FUNCTION + KOKKOS_IMPL_DEVICE_FUNCTION void exec_range() const { // LL if (PolicyType::inner_direction == PolicyType::Left) { - for (index_type tile_id2 = static_cast<index_type>(hipBlockIdx_z); - tile_id2 < m_policy.m_tile_end[2]; tile_id2 += hipGridDim_z) { + for (index_type tile_id2 = static_cast<index_type>(blockIdx.z); + tile_id2 < m_policy.m_tile_end[2]; tile_id2 += gridDim.z) { const index_type offset_2 = tile_id2 * m_policy.m_tile[2] + - static_cast<index_type>(hipThreadIdx_z) + + static_cast<index_type>(threadIdx.z) + static_cast<index_type>(m_policy.m_lower[2]); if (offset_2 < m_policy.m_upper[2] && - static_cast<index_type>(hipThreadIdx_z) < m_policy.m_tile[2]) { - for (index_type tile_id1 = static_cast<index_type>(hipBlockIdx_y); - tile_id1 < m_policy.m_tile_end[1]; tile_id1 += hipGridDim_y) { + static_cast<index_type>(threadIdx.z) < m_policy.m_tile[2]) { + for (index_type tile_id1 = static_cast<index_type>(blockIdx.y); + tile_id1 < m_policy.m_tile_end[1]; tile_id1 += gridDim.y) { const index_type offset_1 = tile_id1 * m_policy.m_tile[1] + - static_cast<index_type>(hipThreadIdx_y) + + static_cast<index_type>(threadIdx.y) + static_cast<index_type>(m_policy.m_lower[1]); if (offset_1 < m_policy.m_upper[1] && - static_cast<index_type>(hipThreadIdx_y) < m_policy.m_tile[1]) { - for (index_type tile_id0 = static_cast<index_type>(hipBlockIdx_x); - tile_id0 < m_policy.m_tile_end[0]; - tile_id0 += hipGridDim_x) { + static_cast<index_type>(threadIdx.y) < m_policy.m_tile[1]) { + for (index_type tile_id0 = static_cast<index_type>(blockIdx.x); + tile_id0 < m_policy.m_tile_end[0]; tile_id0 += gridDim.x) { const index_type offset_0 = tile_id0 * m_policy.m_tile[0] + - static_cast<index_type>(hipThreadIdx_x) + + static_cast<index_type>(threadIdx.x) + static_cast<index_type>(m_policy.m_lower[0]); if (offset_0 < m_policy.m_upper[0] && - static_cast<index_type>(hipThreadIdx_x) < - m_policy.m_tile[0]) { + static_cast<index_type>(threadIdx.x) < m_policy.m_tile[0]) { m_func(offset_0, offset_1, offset_2); } } @@ -246,32 +241,30 @@ struct DeviceIterateTile<3, PolicyType, Functor, void> { } // LR else { - for (index_type tile_id0 = static_cast<index_type>(hipBlockIdx_x); - tile_id0 < m_policy.m_tile_end[0]; tile_id0 += hipGridDim_x) { + for (index_type tile_id0 = static_cast<index_type>(blockIdx.x); + tile_id0 < m_policy.m_tile_end[0]; tile_id0 += gridDim.x) { const index_type offset_0 = tile_id0 * m_policy.m_tile[0] + - static_cast<index_type>(hipThreadIdx_x) + + static_cast<index_type>(threadIdx.x) + static_cast<index_type>(m_policy.m_lower[0]); if (offset_0 < m_policy.m_upper[0] && - static_cast<index_type>(hipThreadIdx_x) < m_policy.m_tile[0]) { - for (index_type tile_id1 = static_cast<index_type>(hipBlockIdx_y); - tile_id1 < m_policy.m_tile_end[1]; tile_id1 += hipGridDim_y) { + static_cast<index_type>(threadIdx.x) < m_policy.m_tile[0]) { + for (index_type tile_id1 = static_cast<index_type>(blockIdx.y); + tile_id1 < m_policy.m_tile_end[1]; tile_id1 += gridDim.y) { const index_type offset_1 = tile_id1 * m_policy.m_tile[1] + - static_cast<index_type>(hipThreadIdx_y) + + static_cast<index_type>(threadIdx.y) + static_cast<index_type>(m_policy.m_lower[1]); if (offset_1 < m_policy.m_upper[1] && - static_cast<index_type>(hipThreadIdx_y) < m_policy.m_tile[1]) { - for (index_type tile_id2 = static_cast<index_type>(hipBlockIdx_z); - tile_id2 < m_policy.m_tile_end[2]; - tile_id2 += hipGridDim_z) { + static_cast<index_type>(threadIdx.y) < m_policy.m_tile[1]) { + for (index_type tile_id2 = static_cast<index_type>(blockIdx.z); + tile_id2 < m_policy.m_tile_end[2]; tile_id2 += gridDim.z) { const index_type offset_2 = tile_id2 * m_policy.m_tile[2] + - static_cast<index_type>(hipThreadIdx_z) + + static_cast<index_type>(threadIdx.z) + static_cast<index_type>(m_policy.m_lower[2]); if (offset_2 < m_policy.m_upper[2] && - static_cast<index_type>(hipThreadIdx_z) < - m_policy.m_tile[2]) { + static_cast<index_type>(threadIdx.z) < m_policy.m_tile[2]) { m_func(offset_0, offset_1, offset_2); } } @@ -292,39 +285,37 @@ template <typename PolicyType, typename Functor, typename Tag> struct DeviceIterateTile<3, PolicyType, Functor, Tag> { using index_type = typename PolicyType::index_type; - KOKKOS_INLINE_FUNCTION - DeviceIterateTile(const PolicyType& policy_, const Functor& f_) + KOKKOS_IMPL_DEVICE_FUNCTION DeviceIterateTile(const PolicyType& policy_, + const Functor& f_) : m_policy(policy_), m_func(f_) {} - KOKKOS_INLINE_FUNCTION + KOKKOS_IMPL_DEVICE_FUNCTION void exec_range() const { if (PolicyType::inner_direction == PolicyType::Left) { - for (index_type tile_id2 = static_cast<index_type>(hipBlockIdx_z); - tile_id2 < m_policy.m_tile_end[2]; tile_id2 += hipGridDim_z) { + for (index_type tile_id2 = static_cast<index_type>(blockIdx.z); + tile_id2 < m_policy.m_tile_end[2]; tile_id2 += gridDim.z) { const index_type offset_2 = tile_id2 * m_policy.m_tile[2] + - static_cast<index_type>(hipThreadIdx_z) + + static_cast<index_type>(threadIdx.z) + static_cast<index_type>(m_policy.m_lower[2]); if (offset_2 < m_policy.m_upper[2] && - static_cast<index_type>(hipThreadIdx_z) < m_policy.m_tile[2]) { - for (index_type tile_id1 = static_cast<index_type>(hipBlockIdx_y); - tile_id1 < m_policy.m_tile_end[1]; tile_id1 += hipGridDim_y) { + static_cast<index_type>(threadIdx.z) < m_policy.m_tile[2]) { + for (index_type tile_id1 = static_cast<index_type>(blockIdx.y); + tile_id1 < m_policy.m_tile_end[1]; tile_id1 += gridDim.y) { const index_type offset_1 = tile_id1 * m_policy.m_tile[1] + - static_cast<index_type>(hipThreadIdx_y) + + static_cast<index_type>(threadIdx.y) + static_cast<index_type>(m_policy.m_lower[1]); if (offset_1 < m_policy.m_upper[1] && - static_cast<index_type>(hipThreadIdx_y) < m_policy.m_tile[1]) { - for (index_type tile_id0 = static_cast<index_type>(hipBlockIdx_x); - tile_id0 < m_policy.m_tile_end[0]; - tile_id0 += hipGridDim_x) { + static_cast<index_type>(threadIdx.y) < m_policy.m_tile[1]) { + for (index_type tile_id0 = static_cast<index_type>(blockIdx.x); + tile_id0 < m_policy.m_tile_end[0]; tile_id0 += gridDim.x) { const index_type offset_0 = tile_id0 * m_policy.m_tile[0] + - static_cast<index_type>(hipThreadIdx_x) + + static_cast<index_type>(threadIdx.x) + static_cast<index_type>(m_policy.m_lower[0]); if (offset_0 < m_policy.m_upper[0] && - static_cast<index_type>(hipThreadIdx_x) < - m_policy.m_tile[0]) { + static_cast<index_type>(threadIdx.x) < m_policy.m_tile[0]) { m_func(Tag(), offset_0, offset_1, offset_2); } } @@ -333,32 +324,30 @@ struct DeviceIterateTile<3, PolicyType, Functor, Tag> { } } } else { - for (index_type tile_id0 = static_cast<index_type>(hipBlockIdx_x); - tile_id0 < m_policy.m_tile_end[0]; tile_id0 += hipGridDim_x) { + for (index_type tile_id0 = static_cast<index_type>(blockIdx.x); + tile_id0 < m_policy.m_tile_end[0]; tile_id0 += gridDim.x) { const index_type offset_0 = tile_id0 * m_policy.m_tile[0] + - static_cast<index_type>(hipThreadIdx_x) + + static_cast<index_type>(threadIdx.x) + static_cast<index_type>(m_policy.m_lower[0]); if (offset_0 < m_policy.m_upper[0] && - static_cast<index_type>(hipThreadIdx_x) < m_policy.m_tile[0]) { - for (index_type tile_id1 = static_cast<index_type>(hipBlockIdx_y); - tile_id1 < m_policy.m_tile_end[1]; tile_id1 += hipGridDim_y) { + static_cast<index_type>(threadIdx.x) < m_policy.m_tile[0]) { + for (index_type tile_id1 = static_cast<index_type>(blockIdx.y); + tile_id1 < m_policy.m_tile_end[1]; tile_id1 += gridDim.y) { const index_type offset_1 = tile_id1 * m_policy.m_tile[1] + - static_cast<index_type>(hipThreadIdx_y) + + static_cast<index_type>(threadIdx.y) + static_cast<index_type>(m_policy.m_lower[1]); if (offset_1 < m_policy.m_upper[1] && - static_cast<index_type>(hipThreadIdx_y) < m_policy.m_tile[1]) { - for (index_type tile_id2 = static_cast<index_type>(hipBlockIdx_z); - tile_id2 < m_policy.m_tile_end[2]; - tile_id2 += hipGridDim_z) { + static_cast<index_type>(threadIdx.y) < m_policy.m_tile[1]) { + for (index_type tile_id2 = static_cast<index_type>(blockIdx.z); + tile_id2 < m_policy.m_tile_end[2]; tile_id2 += gridDim.z) { const index_type offset_2 = tile_id2 * m_policy.m_tile[2] + - static_cast<index_type>(hipThreadIdx_z) + + static_cast<index_type>(threadIdx.z) + static_cast<index_type>(m_policy.m_lower[2]); if (offset_2 < m_policy.m_upper[2] && - static_cast<index_type>(hipThreadIdx_z) < - m_policy.m_tile[2]) { + static_cast<index_type>(threadIdx.z) < m_policy.m_tile[2]) { m_func(Tag(), offset_0, offset_1, offset_2); } } @@ -380,12 +369,13 @@ template <typename PolicyType, typename Functor> struct DeviceIterateTile<4, PolicyType, Functor, void> { using index_type = typename PolicyType::index_type; - __device__ DeviceIterateTile(const PolicyType& policy_, const Functor& f_) + KOKKOS_IMPL_DEVICE_FUNCTION DeviceIterateTile(const PolicyType& policy_, + const Functor& f_) : m_policy(policy_), m_func(f_) {} static constexpr index_type max_blocks = 65535; - KOKKOS_INLINE_FUNCTION + KOKKOS_IMPL_DEVICE_FUNCTION void exec_range() const { // LL if (PolicyType::inner_direction == PolicyType::Left) { @@ -397,31 +387,29 @@ struct DeviceIterateTile<4, PolicyType, Functor, void> { ? index_type(max_blocks / numbl0) : (temp1 <= max_blocks ? temp1 : max_blocks)); - const index_type tile_id0 = - static_cast<index_type>(hipBlockIdx_x) % numbl0; - const index_type tile_id1 = - static_cast<index_type>(hipBlockIdx_x) / numbl0; + const index_type tile_id0 = static_cast<index_type>(blockIdx.x) % numbl0; + const index_type tile_id1 = static_cast<index_type>(blockIdx.x) / numbl0; const index_type thr_id0 = - static_cast<index_type>(hipThreadIdx_x) % m_policy.m_tile[0]; + static_cast<index_type>(threadIdx.x) % m_policy.m_tile[0]; const index_type thr_id1 = - static_cast<index_type>(hipThreadIdx_x) / m_policy.m_tile[0]; + static_cast<index_type>(threadIdx.x) / m_policy.m_tile[0]; - for (index_type tile_id3 = static_cast<index_type>(hipBlockIdx_z); - tile_id3 < m_policy.m_tile_end[3]; tile_id3 += hipGridDim_z) { + for (index_type tile_id3 = static_cast<index_type>(blockIdx.z); + tile_id3 < m_policy.m_tile_end[3]; tile_id3 += gridDim.z) { const index_type offset_3 = tile_id3 * m_policy.m_tile[3] + - static_cast<index_type>(hipThreadIdx_z) + + static_cast<index_type>(threadIdx.z) + static_cast<index_type>(m_policy.m_lower[3]); if (offset_3 < m_policy.m_upper[3] && - static_cast<index_type>(hipThreadIdx_z) < m_policy.m_tile[3]) { - for (index_type tile_id2 = static_cast<index_type>(hipBlockIdx_y); - tile_id2 < m_policy.m_tile_end[2]; tile_id2 += hipGridDim_y) { + static_cast<index_type>(threadIdx.z) < m_policy.m_tile[3]) { + for (index_type tile_id2 = static_cast<index_type>(blockIdx.y); + tile_id2 < m_policy.m_tile_end[2]; tile_id2 += gridDim.y) { const index_type offset_2 = tile_id2 * m_policy.m_tile[2] + - static_cast<index_type>(hipThreadIdx_y) + + static_cast<index_type>(threadIdx.y) + static_cast<index_type>(m_policy.m_lower[2]); if (offset_2 < m_policy.m_upper[2] && - static_cast<index_type>(hipThreadIdx_y) < m_policy.m_tile[2]) { + static_cast<index_type>(threadIdx.y) < m_policy.m_tile[2]) { for (index_type j = tile_id1; j < m_policy.m_tile_end[1]; j += numbl1) { const index_type offset_1 = @@ -456,14 +444,12 @@ struct DeviceIterateTile<4, PolicyType, Functor, void> { ? index_type(max_blocks / numbl1) : (temp0 <= max_blocks ? temp0 : max_blocks)); - const index_type tile_id0 = - static_cast<index_type>(hipBlockIdx_x) / numbl1; - const index_type tile_id1 = - static_cast<index_type>(hipBlockIdx_x) % numbl1; + const index_type tile_id0 = static_cast<index_type>(blockIdx.x) / numbl1; + const index_type tile_id1 = static_cast<index_type>(blockIdx.x) % numbl1; const index_type thr_id0 = - static_cast<index_type>(hipThreadIdx_x) / m_policy.m_tile[1]; + static_cast<index_type>(threadIdx.x) / m_policy.m_tile[1]; const index_type thr_id1 = - static_cast<index_type>(hipThreadIdx_x) % m_policy.m_tile[1]; + static_cast<index_type>(threadIdx.x) % m_policy.m_tile[1]; for (index_type i = tile_id0; i < m_policy.m_tile_end[0]; i += numbl0) { const index_type offset_0 = @@ -477,26 +463,24 @@ struct DeviceIterateTile<4, PolicyType, Functor, void> { static_cast<index_type>(m_policy.m_lower[1]); if (offset_1 < m_policy.m_upper[1] && thr_id1 < m_policy.m_tile[1]) { - for (index_type tile_id2 = static_cast<index_type>(hipBlockIdx_y); - tile_id2 < m_policy.m_tile_end[2]; - tile_id2 += hipGridDim_y) { + for (index_type tile_id2 = static_cast<index_type>(blockIdx.y); + tile_id2 < m_policy.m_tile_end[2]; tile_id2 += gridDim.y) { const index_type offset_2 = tile_id2 * m_policy.m_tile[2] + - static_cast<index_type>(hipThreadIdx_y) + + static_cast<index_type>(threadIdx.y) + static_cast<index_type>(m_policy.m_lower[2]); if (offset_2 < m_policy.m_upper[2] && - static_cast<index_type>(hipThreadIdx_y) < - m_policy.m_tile[2]) { + static_cast<index_type>(threadIdx.y) < m_policy.m_tile[2]) { for (index_type tile_id3 = - static_cast<index_type>(hipBlockIdx_z); + static_cast<index_type>(blockIdx.z); tile_id3 < m_policy.m_tile_end[3]; - tile_id3 += hipGridDim_z) { + tile_id3 += gridDim.z) { const index_type offset_3 = tile_id3 * m_policy.m_tile[3] + - static_cast<index_type>(hipThreadIdx_z) + + static_cast<index_type>(threadIdx.z) + static_cast<index_type>(m_policy.m_lower[3]); if (offset_3 < m_policy.m_upper[3] && - static_cast<index_type>(hipThreadIdx_z) < + static_cast<index_type>(threadIdx.z) < m_policy.m_tile[3]) { m_func(offset_0, offset_1, offset_2, offset_3); } @@ -520,13 +504,13 @@ template <typename PolicyType, typename Functor, typename Tag> struct DeviceIterateTile<4, PolicyType, Functor, Tag> { using index_type = typename PolicyType::index_type; - KOKKOS_INLINE_FUNCTION - DeviceIterateTile(const PolicyType& policy_, const Functor& f_) + KOKKOS_IMPL_DEVICE_FUNCTION DeviceIterateTile(const PolicyType& policy_, + const Functor& f_) : m_policy(policy_), m_func(f_) {} static constexpr index_type max_blocks = 65535; - KOKKOS_INLINE_FUNCTION + KOKKOS_IMPL_DEVICE_FUNCTION void exec_range() const { if (PolicyType::inner_direction == PolicyType::Left) { const index_type temp0 = m_policy.m_tile_end[0]; @@ -537,31 +521,29 @@ struct DeviceIterateTile<4, PolicyType, Functor, Tag> { ? static_cast<index_type>(max_blocks / numbl0) : (temp1 <= max_blocks ? temp1 : max_blocks)); - const index_type tile_id0 = - static_cast<index_type>(hipBlockIdx_x) % numbl0; - const index_type tile_id1 = - static_cast<index_type>(hipBlockIdx_x) / numbl0; + const index_type tile_id0 = static_cast<index_type>(blockIdx.x) % numbl0; + const index_type tile_id1 = static_cast<index_type>(blockIdx.x) / numbl0; const index_type thr_id0 = - static_cast<index_type>(hipThreadIdx_x) % m_policy.m_tile[0]; + static_cast<index_type>(threadIdx.x) % m_policy.m_tile[0]; const index_type thr_id1 = - static_cast<index_type>(hipThreadIdx_x) / m_policy.m_tile[0]; + static_cast<index_type>(threadIdx.x) / m_policy.m_tile[0]; - for (index_type tile_id3 = static_cast<index_type>(hipBlockIdx_z); - tile_id3 < m_policy.m_tile_end[3]; tile_id3 += hipGridDim_z) { + for (index_type tile_id3 = static_cast<index_type>(blockIdx.z); + tile_id3 < m_policy.m_tile_end[3]; tile_id3 += gridDim.z) { const index_type offset_3 = tile_id3 * m_policy.m_tile[3] + - static_cast<index_type>(hipThreadIdx_z) + + static_cast<index_type>(threadIdx.z) + static_cast<index_type>(m_policy.m_lower[3]); if (offset_3 < m_policy.m_upper[3] && - static_cast<index_type>(hipThreadIdx_z) < m_policy.m_tile[3]) { - for (index_type tile_id2 = static_cast<index_type>(hipBlockIdx_y); - tile_id2 < m_policy.m_tile_end[2]; tile_id2 += hipGridDim_y) { + static_cast<index_type>(threadIdx.z) < m_policy.m_tile[3]) { + for (index_type tile_id2 = static_cast<index_type>(blockIdx.y); + tile_id2 < m_policy.m_tile_end[2]; tile_id2 += gridDim.y) { const index_type offset_2 = tile_id2 * m_policy.m_tile[2] + - static_cast<index_type>(hipThreadIdx_y) + + static_cast<index_type>(threadIdx.y) + static_cast<index_type>(m_policy.m_lower[2]); if (offset_2 < m_policy.m_upper[2] && - static_cast<index_type>(hipThreadIdx_y) < m_policy.m_tile[2]) { + static_cast<index_type>(threadIdx.y) < m_policy.m_tile[2]) { for (index_type j = tile_id1; j < m_policy.m_tile_end[1]; j += numbl1) { const index_type offset_1 = @@ -594,14 +576,12 @@ struct DeviceIterateTile<4, PolicyType, Functor, Tag> { ? index_type(max_blocks / numbl1) : (temp0 <= max_blocks ? temp0 : max_blocks)); - const index_type tile_id0 = - static_cast<index_type>(hipBlockIdx_x) / numbl1; - const index_type tile_id1 = - static_cast<index_type>(hipBlockIdx_x) % numbl1; + const index_type tile_id0 = static_cast<index_type>(blockIdx.x) / numbl1; + const index_type tile_id1 = static_cast<index_type>(blockIdx.x) % numbl1; const index_type thr_id0 = - static_cast<index_type>(hipThreadIdx_x) / m_policy.m_tile[1]; + static_cast<index_type>(threadIdx.x) / m_policy.m_tile[1]; const index_type thr_id1 = - static_cast<index_type>(hipThreadIdx_x) % m_policy.m_tile[1]; + static_cast<index_type>(threadIdx.x) % m_policy.m_tile[1]; for (index_type i = tile_id0; i < m_policy.m_tile_end[0]; i += numbl0) { const index_type offset_0 = @@ -615,26 +595,24 @@ struct DeviceIterateTile<4, PolicyType, Functor, Tag> { static_cast<index_type>(m_policy.m_lower[1]); if (offset_1 < m_policy.m_upper[1] && thr_id1 < m_policy.m_tile[1]) { - for (index_type tile_id2 = static_cast<index_type>(hipBlockIdx_y); - tile_id2 < m_policy.m_tile_end[2]; - tile_id2 += hipGridDim_y) { + for (index_type tile_id2 = static_cast<index_type>(blockIdx.y); + tile_id2 < m_policy.m_tile_end[2]; tile_id2 += gridDim.y) { const index_type offset_2 = tile_id2 * m_policy.m_tile[2] + - static_cast<index_type>(hipThreadIdx_y) + + static_cast<index_type>(threadIdx.y) + static_cast<index_type>(m_policy.m_lower[2]); if (offset_2 < m_policy.m_upper[2] && - static_cast<index_type>(hipThreadIdx_y) < - m_policy.m_tile[2]) { + static_cast<index_type>(threadIdx.y) < m_policy.m_tile[2]) { for (index_type tile_id3 = - static_cast<index_type>(hipBlockIdx_z); + static_cast<index_type>(blockIdx.z); tile_id3 < m_policy.m_tile_end[3]; - tile_id3 += hipGridDim_z) { + tile_id3 += gridDim.z) { const index_type offset_3 = tile_id3 * m_policy.m_tile[3] + - static_cast<index_type>(hipThreadIdx_z) + + static_cast<index_type>(threadIdx.z) + static_cast<index_type>(m_policy.m_lower[3]); if (offset_3 < m_policy.m_upper[3] && - static_cast<index_type>(hipThreadIdx_z) < + static_cast<index_type>(threadIdx.z) < m_policy.m_tile[3]) { m_func(Tag(), offset_0, offset_1, offset_2, offset_3); } @@ -659,12 +637,13 @@ template <typename PolicyType, typename Functor> struct DeviceIterateTile<5, PolicyType, Functor, void> { using index_type = typename PolicyType::index_type; - __device__ DeviceIterateTile(const PolicyType& policy_, const Functor& f_) + KOKKOS_IMPL_DEVICE_FUNCTION DeviceIterateTile(const PolicyType& policy_, + const Functor& f_) : m_policy(policy_), m_func(f_) {} static constexpr index_type max_blocks = 65535; - KOKKOS_INLINE_FUNCTION + KOKKOS_IMPL_DEVICE_FUNCTION void exec_range() const { // LL if (PolicyType::inner_direction == PolicyType::Left) { @@ -676,14 +655,12 @@ struct DeviceIterateTile<5, PolicyType, Functor, void> { ? index_type(max_blocks / numbl0) : (temp1 <= max_blocks ? temp1 : max_blocks)); - const index_type tile_id0 = - static_cast<index_type>(hipBlockIdx_x) % numbl0; - const index_type tile_id1 = - static_cast<index_type>(hipBlockIdx_x) / numbl0; + const index_type tile_id0 = static_cast<index_type>(blockIdx.x) % numbl0; + const index_type tile_id1 = static_cast<index_type>(blockIdx.x) / numbl0; const index_type thr_id0 = - static_cast<index_type>(hipThreadIdx_x) % m_policy.m_tile[0]; + static_cast<index_type>(threadIdx.x) % m_policy.m_tile[0]; const index_type thr_id1 = - static_cast<index_type>(hipThreadIdx_x) / m_policy.m_tile[0]; + static_cast<index_type>(threadIdx.x) / m_policy.m_tile[0]; temp0 = m_policy.m_tile_end[2]; temp1 = m_policy.m_tile_end[3]; @@ -693,23 +670,21 @@ struct DeviceIterateTile<5, PolicyType, Functor, void> { ? index_type(max_blocks / numbl2) : (temp1 <= max_blocks ? temp1 : max_blocks)); - const index_type tile_id2 = - static_cast<index_type>(hipBlockIdx_y) % numbl2; - const index_type tile_id3 = - static_cast<index_type>(hipBlockIdx_y) / numbl2; + const index_type tile_id2 = static_cast<index_type>(blockIdx.y) % numbl2; + const index_type tile_id3 = static_cast<index_type>(blockIdx.y) / numbl2; const index_type thr_id2 = - static_cast<index_type>(hipThreadIdx_y) % m_policy.m_tile[2]; + static_cast<index_type>(threadIdx.y) % m_policy.m_tile[2]; const index_type thr_id3 = - static_cast<index_type>(hipThreadIdx_y) / m_policy.m_tile[2]; + static_cast<index_type>(threadIdx.y) / m_policy.m_tile[2]; - for (index_type tile_id4 = static_cast<index_type>(hipBlockIdx_z); - tile_id4 < m_policy.m_tile_end[4]; tile_id4 += hipGridDim_z) { + for (index_type tile_id4 = static_cast<index_type>(blockIdx.z); + tile_id4 < m_policy.m_tile_end[4]; tile_id4 += gridDim.z) { const index_type offset_4 = tile_id4 * m_policy.m_tile[4] + - static_cast<index_type>(hipThreadIdx_z) + + static_cast<index_type>(threadIdx.z) + static_cast<index_type>(m_policy.m_lower[4]); if (offset_4 < m_policy.m_upper[4] && - static_cast<index_type>(hipThreadIdx_z) < m_policy.m_tile[4]) { + static_cast<index_type>(threadIdx.z) < m_policy.m_tile[4]) { for (index_type l = tile_id3; l < m_policy.m_tile_end[3]; l += numbl3) { const index_type offset_3 = @@ -761,14 +736,12 @@ struct DeviceIterateTile<5, PolicyType, Functor, void> { ? index_type(max_blocks / numbl1) : (temp0 <= max_blocks ? temp0 : max_blocks)); - const index_type tile_id0 = - static_cast<index_type>(hipBlockIdx_x) / numbl1; - const index_type tile_id1 = - static_cast<index_type>(hipBlockIdx_x) % numbl1; + const index_type tile_id0 = static_cast<index_type>(blockIdx.x) / numbl1; + const index_type tile_id1 = static_cast<index_type>(blockIdx.x) % numbl1; const index_type thr_id0 = - static_cast<index_type>(hipThreadIdx_x) / m_policy.m_tile[1]; + static_cast<index_type>(threadIdx.x) / m_policy.m_tile[1]; const index_type thr_id1 = - static_cast<index_type>(hipThreadIdx_x) % m_policy.m_tile[1]; + static_cast<index_type>(threadIdx.x) % m_policy.m_tile[1]; temp0 = m_policy.m_tile_end[2]; temp1 = m_policy.m_tile_end[3]; @@ -778,14 +751,12 @@ struct DeviceIterateTile<5, PolicyType, Functor, void> { ? index_type(max_blocks / numbl3) : (temp0 <= max_blocks ? temp0 : max_blocks)); - const index_type tile_id2 = - static_cast<index_type>(hipBlockIdx_y) / numbl3; - const index_type tile_id3 = - static_cast<index_type>(hipBlockIdx_y) % numbl3; + const index_type tile_id2 = static_cast<index_type>(blockIdx.y) / numbl3; + const index_type tile_id3 = static_cast<index_type>(blockIdx.y) % numbl3; const index_type thr_id2 = - static_cast<index_type>(hipThreadIdx_y) / m_policy.m_tile[3]; + static_cast<index_type>(threadIdx.y) / m_policy.m_tile[3]; const index_type thr_id3 = - static_cast<index_type>(hipThreadIdx_y) % m_policy.m_tile[3]; + static_cast<index_type>(threadIdx.y) % m_policy.m_tile[3]; for (index_type i = tile_id0; i < m_policy.m_tile_end[0]; i += numbl0) { const index_type offset_0 = @@ -814,15 +785,15 @@ struct DeviceIterateTile<5, PolicyType, Functor, void> { if (offset_3 < m_policy.m_upper[3] && thr_id3 < m_policy.m_tile[3]) { for (index_type tile_id4 = - static_cast<index_type>(hipBlockIdx_z); + static_cast<index_type>(blockIdx.z); tile_id4 < m_policy.m_tile_end[4]; - tile_id4 += hipGridDim_z) { + tile_id4 += gridDim.z) { const index_type offset_4 = tile_id4 * m_policy.m_tile[4] + - static_cast<index_type>(hipThreadIdx_z) + + static_cast<index_type>(threadIdx.z) + static_cast<index_type>(m_policy.m_lower[4]); if (offset_4 < m_policy.m_upper[4] && - static_cast<index_type>(hipThreadIdx_z) < + static_cast<index_type>(threadIdx.z) < m_policy.m_tile[4]) { m_func(offset_0, offset_1, offset_2, offset_3, offset_4); @@ -849,13 +820,13 @@ template <typename PolicyType, typename Functor, typename Tag> struct DeviceIterateTile<5, PolicyType, Functor, Tag> { using index_type = typename PolicyType::index_type; - KOKKOS_INLINE_FUNCTION - DeviceIterateTile(const PolicyType& policy_, const Functor& f_) + KOKKOS_IMPL_DEVICE_FUNCTION DeviceIterateTile(const PolicyType& policy_, + const Functor& f_) : m_policy(policy_), m_func(f_) {} static constexpr index_type max_blocks = 65535; - KOKKOS_INLINE_FUNCTION + KOKKOS_IMPL_DEVICE_FUNCTION void exec_range() const { // LL if (PolicyType::inner_direction == PolicyType::Left) { @@ -867,14 +838,12 @@ struct DeviceIterateTile<5, PolicyType, Functor, Tag> { ? index_type(max_blocks / numbl0) : (temp1 <= max_blocks ? temp1 : max_blocks)); - const index_type tile_id0 = - static_cast<index_type>(hipBlockIdx_x) % numbl0; - const index_type tile_id1 = - static_cast<index_type>(hipBlockIdx_x) / numbl0; + const index_type tile_id0 = static_cast<index_type>(blockIdx.x) % numbl0; + const index_type tile_id1 = static_cast<index_type>(blockIdx.x) / numbl0; const index_type thr_id0 = - static_cast<index_type>(hipThreadIdx_x) % m_policy.m_tile[0]; + static_cast<index_type>(threadIdx.x) % m_policy.m_tile[0]; const index_type thr_id1 = - static_cast<index_type>(hipThreadIdx_x) / m_policy.m_tile[0]; + static_cast<index_type>(threadIdx.x) / m_policy.m_tile[0]; temp0 = m_policy.m_tile_end[2]; temp1 = m_policy.m_tile_end[3]; @@ -884,23 +853,21 @@ struct DeviceIterateTile<5, PolicyType, Functor, Tag> { ? index_type(max_blocks / numbl2) : (temp1 <= max_blocks ? temp1 : max_blocks)); - const index_type tile_id2 = - static_cast<index_type>(hipBlockIdx_y) % numbl2; - const index_type tile_id3 = - static_cast<index_type>(hipBlockIdx_y) / numbl2; + const index_type tile_id2 = static_cast<index_type>(blockIdx.y) % numbl2; + const index_type tile_id3 = static_cast<index_type>(blockIdx.y) / numbl2; const index_type thr_id2 = - static_cast<index_type>(hipThreadIdx_y) % m_policy.m_tile[2]; + static_cast<index_type>(threadIdx.y) % m_policy.m_tile[2]; const index_type thr_id3 = - static_cast<index_type>(hipThreadIdx_y) / m_policy.m_tile[2]; + static_cast<index_type>(threadIdx.y) / m_policy.m_tile[2]; - for (index_type tile_id4 = static_cast<index_type>(hipBlockIdx_z); - tile_id4 < m_policy.m_tile_end[4]; tile_id4 += hipGridDim_z) { + for (index_type tile_id4 = static_cast<index_type>(blockIdx.z); + tile_id4 < m_policy.m_tile_end[4]; tile_id4 += gridDim.z) { const index_type offset_4 = tile_id4 * m_policy.m_tile[4] + - static_cast<index_type>(hipThreadIdx_z) + + static_cast<index_type>(threadIdx.z) + static_cast<index_type>(m_policy.m_lower[4]); if (offset_4 < m_policy.m_upper[4] && - static_cast<index_type>(hipThreadIdx_z) < m_policy.m_tile[4]) { + static_cast<index_type>(threadIdx.z) < m_policy.m_tile[4]) { for (index_type l = tile_id3; l < m_policy.m_tile_end[3]; l += numbl3) { const index_type offset_3 = @@ -952,14 +919,12 @@ struct DeviceIterateTile<5, PolicyType, Functor, Tag> { ? static_cast<index_type>(max_blocks / numbl1) : (temp0 <= max_blocks ? temp0 : max_blocks)); - const index_type tile_id0 = - static_cast<index_type>(hipBlockIdx_x) / numbl1; - const index_type tile_id1 = - static_cast<index_type>(hipBlockIdx_x) % numbl1; + const index_type tile_id0 = static_cast<index_type>(blockIdx.x) / numbl1; + const index_type tile_id1 = static_cast<index_type>(blockIdx.x) % numbl1; const index_type thr_id0 = - static_cast<index_type>(hipThreadIdx_x) / m_policy.m_tile[1]; + static_cast<index_type>(threadIdx.x) / m_policy.m_tile[1]; const index_type thr_id1 = - static_cast<index_type>(hipThreadIdx_x) % m_policy.m_tile[1]; + static_cast<index_type>(threadIdx.x) % m_policy.m_tile[1]; temp0 = m_policy.m_tile_end[2]; temp1 = m_policy.m_tile_end[3]; @@ -969,14 +934,12 @@ struct DeviceIterateTile<5, PolicyType, Functor, Tag> { ? index_type(max_blocks / numbl3) : (temp0 <= max_blocks ? temp0 : max_blocks)); - const index_type tile_id2 = - static_cast<index_type>(hipBlockIdx_y) / numbl3; - const index_type tile_id3 = - static_cast<index_type>(hipBlockIdx_y) % numbl3; + const index_type tile_id2 = static_cast<index_type>(blockIdx.y) / numbl3; + const index_type tile_id3 = static_cast<index_type>(blockIdx.y) % numbl3; const index_type thr_id2 = - static_cast<index_type>(hipThreadIdx_y) / m_policy.m_tile[3]; + static_cast<index_type>(threadIdx.y) / m_policy.m_tile[3]; const index_type thr_id3 = - static_cast<index_type>(hipThreadIdx_y) % m_policy.m_tile[3]; + static_cast<index_type>(threadIdx.y) % m_policy.m_tile[3]; for (index_type i = tile_id0; i < m_policy.m_tile_end[0]; i += numbl0) { const index_type offset_0 = @@ -1005,15 +968,15 @@ struct DeviceIterateTile<5, PolicyType, Functor, Tag> { if (offset_3 < m_policy.m_upper[3] && thr_id3 < m_policy.m_tile[3]) { for (index_type tile_id4 = - static_cast<index_type>(hipBlockIdx_z); + static_cast<index_type>(blockIdx.z); tile_id4 < m_policy.m_tile_end[4]; - tile_id4 += hipGridDim_z) { + tile_id4 += gridDim.z) { const index_type offset_4 = tile_id4 * m_policy.m_tile[4] + - static_cast<index_type>(hipThreadIdx_z) + + static_cast<index_type>(threadIdx.z) + static_cast<index_type>(m_policy.m_lower[4]); if (offset_4 < m_policy.m_upper[4] && - static_cast<index_type>(hipThreadIdx_z) < + static_cast<index_type>(threadIdx.z) < m_policy.m_tile[4]) { m_func(Tag(), offset_0, offset_1, offset_2, offset_3, offset_4); @@ -1041,12 +1004,13 @@ template <typename PolicyType, typename Functor> struct DeviceIterateTile<6, PolicyType, Functor, void> { using index_type = typename PolicyType::index_type; - __device__ DeviceIterateTile(const PolicyType& rp_, const Functor& f_) - : m_policy(rp_), m_func(f_) {} + KOKKOS_IMPL_DEVICE_FUNCTION DeviceIterateTile(const PolicyType& policy_, + const Functor& f_) + : m_policy(policy_), m_func(f_) {} static constexpr index_type max_blocks = 65535; - KOKKOS_INLINE_FUNCTION + KOKKOS_IMPL_DEVICE_FUNCTION void exec_range() const { // LL if (PolicyType::inner_direction == PolicyType::Left) { @@ -1058,14 +1022,12 @@ struct DeviceIterateTile<6, PolicyType, Functor, void> { ? static_cast<index_type>(max_blocks / numbl0) : (temp1 <= max_blocks ? temp1 : max_blocks)); - const index_type tile_id0 = - static_cast<index_type>(hipBlockIdx_x) % numbl0; - const index_type tile_id1 = - static_cast<index_type>(hipBlockIdx_x) / numbl0; + const index_type tile_id0 = static_cast<index_type>(blockIdx.x) % numbl0; + const index_type tile_id1 = static_cast<index_type>(blockIdx.x) / numbl0; const index_type thr_id0 = - static_cast<index_type>(hipThreadIdx_x) % m_policy.m_tile[0]; + static_cast<index_type>(threadIdx.x) % m_policy.m_tile[0]; const index_type thr_id1 = - static_cast<index_type>(hipThreadIdx_x) / m_policy.m_tile[0]; + static_cast<index_type>(threadIdx.x) / m_policy.m_tile[0]; temp0 = m_policy.m_tile_end[2]; temp1 = m_policy.m_tile_end[3]; @@ -1075,14 +1037,12 @@ struct DeviceIterateTile<6, PolicyType, Functor, void> { ? index_type(max_blocks / numbl2) : (temp1 <= max_blocks ? temp1 : max_blocks)); - const index_type tile_id2 = - static_cast<index_type>(hipBlockIdx_y) % numbl2; - const index_type tile_id3 = - static_cast<index_type>(hipBlockIdx_y) / numbl2; + const index_type tile_id2 = static_cast<index_type>(blockIdx.y) % numbl2; + const index_type tile_id3 = static_cast<index_type>(blockIdx.y) / numbl2; const index_type thr_id2 = - static_cast<index_type>(hipThreadIdx_y) % m_policy.m_tile[2]; + static_cast<index_type>(threadIdx.y) % m_policy.m_tile[2]; const index_type thr_id3 = - static_cast<index_type>(hipThreadIdx_y) / m_policy.m_tile[2]; + static_cast<index_type>(threadIdx.y) / m_policy.m_tile[2]; temp0 = m_policy.m_tile_end[4]; temp1 = m_policy.m_tile_end[5]; @@ -1092,14 +1052,12 @@ struct DeviceIterateTile<6, PolicyType, Functor, void> { ? static_cast<index_type>(max_blocks / numbl4) : (temp1 <= max_blocks ? temp1 : max_blocks)); - const index_type tile_id4 = - static_cast<index_type>(hipBlockIdx_z) % numbl4; - const index_type tile_id5 = - static_cast<index_type>(hipBlockIdx_z) / numbl4; + const index_type tile_id4 = static_cast<index_type>(blockIdx.z) % numbl4; + const index_type tile_id5 = static_cast<index_type>(blockIdx.z) / numbl4; const index_type thr_id4 = - static_cast<index_type>(hipThreadIdx_z) % m_policy.m_tile[4]; + static_cast<index_type>(threadIdx.z) % m_policy.m_tile[4]; const index_type thr_id5 = - static_cast<index_type>(hipThreadIdx_z) / m_policy.m_tile[4]; + static_cast<index_type>(threadIdx.z) / m_policy.m_tile[4]; for (index_type n = tile_id5; n < m_policy.m_tile_end[5]; n += numbl5) { const index_type offset_5 = @@ -1166,14 +1124,12 @@ struct DeviceIterateTile<6, PolicyType, Functor, void> { ? static_cast<index_type>(max_blocks / numbl1) : (temp0 <= max_blocks ? temp0 : max_blocks)); - const index_type tile_id0 = - static_cast<index_type>(hipBlockIdx_x) / numbl1; - const index_type tile_id1 = - static_cast<index_type>(hipBlockIdx_x) % numbl1; + const index_type tile_id0 = static_cast<index_type>(blockIdx.x) / numbl1; + const index_type tile_id1 = static_cast<index_type>(blockIdx.x) % numbl1; const index_type thr_id0 = - static_cast<index_type>(hipThreadIdx_x) / m_policy.m_tile[1]; + static_cast<index_type>(threadIdx.x) / m_policy.m_tile[1]; const index_type thr_id1 = - static_cast<index_type>(hipThreadIdx_x) % m_policy.m_tile[1]; + static_cast<index_type>(threadIdx.x) % m_policy.m_tile[1]; temp0 = m_policy.m_tile_end[2]; temp1 = m_policy.m_tile_end[3]; @@ -1183,14 +1139,12 @@ struct DeviceIterateTile<6, PolicyType, Functor, void> { ? index_type(max_blocks / numbl3) : (temp0 <= max_blocks ? temp0 : max_blocks)); - const index_type tile_id2 = - static_cast<index_type>(hipBlockIdx_y) / numbl3; - const index_type tile_id3 = - static_cast<index_type>(hipBlockIdx_y) % numbl3; + const index_type tile_id2 = static_cast<index_type>(blockIdx.y) / numbl3; + const index_type tile_id3 = static_cast<index_type>(blockIdx.y) % numbl3; const index_type thr_id2 = - static_cast<index_type>(hipThreadIdx_y) / m_policy.m_tile[3]; + static_cast<index_type>(threadIdx.y) / m_policy.m_tile[3]; const index_type thr_id3 = - static_cast<index_type>(hipThreadIdx_y) % m_policy.m_tile[3]; + static_cast<index_type>(threadIdx.y) % m_policy.m_tile[3]; temp0 = m_policy.m_tile_end[4]; temp1 = m_policy.m_tile_end[5]; @@ -1200,14 +1154,12 @@ struct DeviceIterateTile<6, PolicyType, Functor, void> { ? index_type(max_blocks / numbl5) : (temp0 <= max_blocks ? temp0 : max_blocks)); - const index_type tile_id4 = - static_cast<index_type>(hipBlockIdx_z) / numbl5; - const index_type tile_id5 = - static_cast<index_type>(hipBlockIdx_z) % numbl5; + const index_type tile_id4 = static_cast<index_type>(blockIdx.z) / numbl5; + const index_type tile_id5 = static_cast<index_type>(blockIdx.z) % numbl5; const index_type thr_id4 = - static_cast<index_type>(hipThreadIdx_z) / m_policy.m_tile[5]; + static_cast<index_type>(threadIdx.z) / m_policy.m_tile[5]; const index_type thr_id5 = - static_cast<index_type>(hipThreadIdx_z) % m_policy.m_tile[5]; + static_cast<index_type>(threadIdx.z) % m_policy.m_tile[5]; for (index_type i = tile_id0; i < m_policy.m_tile_end[0]; i += numbl0) { const index_type offset_0 = @@ -1276,13 +1228,13 @@ template <typename PolicyType, typename Functor, typename Tag> struct DeviceIterateTile<6, PolicyType, Functor, Tag> { using index_type = typename PolicyType::index_type; - KOKKOS_INLINE_FUNCTION - DeviceIterateTile(const PolicyType& policy_, const Functor& f_) + KOKKOS_IMPL_DEVICE_FUNCTION DeviceIterateTile(const PolicyType& policy_, + const Functor& f_) : m_policy(policy_), m_func(f_) {} static constexpr index_type max_blocks = 65535; - KOKKOS_INLINE_FUNCTION + KOKKOS_IMPL_DEVICE_FUNCTION void exec_range() const { // LL if (PolicyType::inner_direction == PolicyType::Left) { @@ -1294,14 +1246,12 @@ struct DeviceIterateTile<6, PolicyType, Functor, Tag> { ? static_cast<index_type>(max_blocks / numbl0) : (temp1 <= max_blocks ? temp1 : max_blocks)); - const index_type tile_id0 = - static_cast<index_type>(hipBlockIdx_x) % numbl0; - const index_type tile_id1 = - static_cast<index_type>(hipBlockIdx_x) / numbl0; + const index_type tile_id0 = static_cast<index_type>(blockIdx.x) % numbl0; + const index_type tile_id1 = static_cast<index_type>(blockIdx.x) / numbl0; const index_type thr_id0 = - static_cast<index_type>(hipThreadIdx_x) % m_policy.m_tile[0]; + static_cast<index_type>(threadIdx.x) % m_policy.m_tile[0]; const index_type thr_id1 = - static_cast<index_type>(hipThreadIdx_x) / m_policy.m_tile[0]; + static_cast<index_type>(threadIdx.x) / m_policy.m_tile[0]; temp0 = m_policy.m_tile_end[2]; temp1 = m_policy.m_tile_end[3]; @@ -1311,14 +1261,12 @@ struct DeviceIterateTile<6, PolicyType, Functor, Tag> { ? static_cast<index_type>(max_blocks / numbl2) : (temp1 <= max_blocks ? temp1 : max_blocks)); - const index_type tile_id2 = - static_cast<index_type>(hipBlockIdx_y) % numbl2; - const index_type tile_id3 = - static_cast<index_type>(hipBlockIdx_y) / numbl2; + const index_type tile_id2 = static_cast<index_type>(blockIdx.y) % numbl2; + const index_type tile_id3 = static_cast<index_type>(blockIdx.y) / numbl2; const index_type thr_id2 = - static_cast<index_type>(hipThreadIdx_y) % m_policy.m_tile[2]; + static_cast<index_type>(threadIdx.y) % m_policy.m_tile[2]; const index_type thr_id3 = - static_cast<index_type>(hipThreadIdx_y) / m_policy.m_tile[2]; + static_cast<index_type>(threadIdx.y) / m_policy.m_tile[2]; temp0 = m_policy.m_tile_end[4]; temp1 = m_policy.m_tile_end[5]; @@ -1328,14 +1276,12 @@ struct DeviceIterateTile<6, PolicyType, Functor, Tag> { ? static_cast<index_type>(max_blocks / numbl4) : (temp1 <= max_blocks ? temp1 : max_blocks)); - const index_type tile_id4 = - static_cast<index_type>(hipBlockIdx_z) % numbl4; - const index_type tile_id5 = - static_cast<index_type>(hipBlockIdx_z) / numbl4; + const index_type tile_id4 = static_cast<index_type>(blockIdx.z) % numbl4; + const index_type tile_id5 = static_cast<index_type>(blockIdx.z) / numbl4; const index_type thr_id4 = - static_cast<index_type>(hipThreadIdx_z) % m_policy.m_tile[4]; + static_cast<index_type>(threadIdx.z) % m_policy.m_tile[4]; const index_type thr_id5 = - static_cast<index_type>(hipThreadIdx_z) / m_policy.m_tile[4]; + static_cast<index_type>(threadIdx.z) / m_policy.m_tile[4]; for (index_type n = tile_id5; n < m_policy.m_tile_end[5]; n += numbl5) { const index_type offset_5 = @@ -1402,14 +1348,12 @@ struct DeviceIterateTile<6, PolicyType, Functor, Tag> { ? static_cast<index_type>(max_blocks / numbl1) : (temp0 <= max_blocks ? temp0 : max_blocks)); - const index_type tile_id0 = - static_cast<index_type>(hipBlockIdx_x) / numbl1; - const index_type tile_id1 = - static_cast<index_type>(hipBlockIdx_x) % numbl1; + const index_type tile_id0 = static_cast<index_type>(blockIdx.x) / numbl1; + const index_type tile_id1 = static_cast<index_type>(blockIdx.x) % numbl1; const index_type thr_id0 = - static_cast<index_type>(hipThreadIdx_x) / m_policy.m_tile[1]; + static_cast<index_type>(threadIdx.x) / m_policy.m_tile[1]; const index_type thr_id1 = - static_cast<index_type>(hipThreadIdx_x) % m_policy.m_tile[1]; + static_cast<index_type>(threadIdx.x) % m_policy.m_tile[1]; temp0 = m_policy.m_tile_end[2]; temp1 = m_policy.m_tile_end[3]; @@ -1419,14 +1363,12 @@ struct DeviceIterateTile<6, PolicyType, Functor, Tag> { ? static_cast<index_type>(max_blocks / numbl3) : (temp0 <= max_blocks ? temp0 : max_blocks)); - const index_type tile_id2 = - static_cast<index_type>(hipBlockIdx_y) / numbl3; - const index_type tile_id3 = - static_cast<index_type>(hipBlockIdx_y) % numbl3; + const index_type tile_id2 = static_cast<index_type>(blockIdx.y) / numbl3; + const index_type tile_id3 = static_cast<index_type>(blockIdx.y) % numbl3; const index_type thr_id2 = - static_cast<index_type>(hipThreadIdx_y) / m_policy.m_tile[3]; + static_cast<index_type>(threadIdx.y) / m_policy.m_tile[3]; const index_type thr_id3 = - static_cast<index_type>(hipThreadIdx_y) % m_policy.m_tile[3]; + static_cast<index_type>(threadIdx.y) % m_policy.m_tile[3]; temp0 = m_policy.m_tile_end[4]; temp1 = m_policy.m_tile_end[5]; @@ -1436,14 +1378,12 @@ struct DeviceIterateTile<6, PolicyType, Functor, Tag> { ? static_cast<index_type>(max_blocks / numbl5) : (temp0 <= max_blocks ? temp0 : max_blocks)); - const index_type tile_id4 = - static_cast<index_type>(hipBlockIdx_z) / numbl5; - const index_type tile_id5 = - static_cast<index_type>(hipBlockIdx_z) % numbl5; + const index_type tile_id4 = static_cast<index_type>(blockIdx.z) / numbl5; + const index_type tile_id5 = static_cast<index_type>(blockIdx.z) % numbl5; const index_type thr_id4 = - static_cast<index_type>(hipThreadIdx_z) / m_policy.m_tile[5]; + static_cast<index_type>(threadIdx.z) / m_policy.m_tile[5]; const index_type thr_id5 = - static_cast<index_type>(hipThreadIdx_z) % m_policy.m_tile[5]; + static_cast<index_type>(threadIdx.z) % m_policy.m_tile[5]; for (index_type i = tile_id0; i < m_policy.m_tile_end[0]; i += numbl0) { const index_type offset_0 = @@ -1567,24 +1507,25 @@ struct DeviceIterateTile< typename std::enable_if<!is_array_type<ValueType>::value>::type> { using index_type = typename PolicyType::index_type; - __device__ DeviceIterateTile(const PolicyType& rp_, const Functor& f_, - ValueType& v_) - : m_policy(rp_), m_func(f_), m_v(v_) {} + KOKKOS_IMPL_DEVICE_FUNCTION DeviceIterateTile(const PolicyType& policy_, + const Functor& f_, + ValueType& v_) + : m_policy(policy_), m_func(f_), m_v(v_) {} - KOKKOS_INLINE_FUNCTION + KOKKOS_IMPL_DEVICE_FUNCTION void exec_range() const { - if (static_cast<index_type>(hipBlockIdx_x) < m_policy.m_num_tiles && - static_cast<index_type>(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + if (static_cast<index_type>(blockIdx.x) < m_policy.m_num_tiles && + static_cast<index_type>(threadIdx.y) < m_policy.m_prod_tile_dims) { index_type m_offset[PolicyType::rank]; // tile starting global id offset index_type m_local_offset[PolicyType::rank]; // tile starting global id offset - for (index_type tileidx = static_cast<index_type>(hipBlockIdx_x); - tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + for (index_type tileidx = static_cast<index_type>(blockIdx.x); + tileidx < m_policy.m_num_tiles; tileidx += gridDim.x) { index_type tile_idx = tileidx; // temp because tile_idx will be modified while // determining tile starting point offsets - index_type thrd_idx = static_cast<index_type>(hipThreadIdx_y); + index_type thrd_idx = static_cast<index_type>(threadIdx.y); bool in_bounds = true; // LL @@ -1650,24 +1591,25 @@ struct DeviceIterateTile< !is_void<Tag>::value>::type> { using index_type = typename PolicyType::index_type; - KOKKOS_INLINE_FUNCTION - DeviceIterateTile(const PolicyType& rp_, const Functor& f_, ValueType& v_) - : m_policy(rp_), m_func(f_), m_v(v_) {} + KOKKOS_IMPL_DEVICE_FUNCTION DeviceIterateTile(const PolicyType& policy_, + const Functor& f_, + ValueType& v_) + : m_policy(policy_), m_func(f_), m_v(v_) {} - KOKKOS_INLINE_FUNCTION + KOKKOS_IMPL_DEVICE_FUNCTION void exec_range() const { - if (static_cast<index_type>(hipBlockIdx_x) < m_policy.m_num_tiles && - static_cast<index_type>(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + if (static_cast<index_type>(blockIdx.x) < m_policy.m_num_tiles && + static_cast<index_type>(threadIdx.y) < m_policy.m_prod_tile_dims) { index_type m_offset[PolicyType::rank]; // tile starting global id offset index_type m_local_offset[PolicyType::rank]; // tile starting global id offset - for (index_type tileidx = static_cast<index_type>(hipBlockIdx_x); - tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + for (index_type tileidx = static_cast<index_type>(blockIdx.x); + tileidx < m_policy.m_num_tiles; tileidx += gridDim.x) { index_type tile_idx = tileidx; // temp because tile_idx will be modified while // determining tile starting point offsets - index_type thrd_idx = static_cast<index_type>(hipThreadIdx_y); + index_type thrd_idx = static_cast<index_type>(threadIdx.y); bool in_bounds = true; // LL @@ -1735,24 +1677,25 @@ struct DeviceIterateTile< typename std::enable_if<!is_array_type<ValueType>::value>::type> { using index_type = typename PolicyType::index_type; - __device__ DeviceIterateTile(const PolicyType& policy_, const Functor& f_, - ValueType& v_) + KOKKOS_IMPL_DEVICE_FUNCTION DeviceIterateTile(const PolicyType& policy_, + const Functor& f_, + ValueType& v_) : m_policy(policy_), m_func(f_), m_v(v_) {} - KOKKOS_INLINE_FUNCTION + KOKKOS_IMPL_DEVICE_FUNCTION void exec_range() const { - if (static_cast<index_type>(hipBlockIdx_x) < m_policy.m_num_tiles && - static_cast<index_type>(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + if (static_cast<index_type>(blockIdx.x) < m_policy.m_num_tiles && + static_cast<index_type>(threadIdx.y) < m_policy.m_prod_tile_dims) { index_type m_offset[PolicyType::rank]; // tile starting global id offset index_type m_local_offset[PolicyType::rank]; // tile starting global id offset - for (index_type tileidx = static_cast<index_type>(hipBlockIdx_x); - tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + for (index_type tileidx = static_cast<index_type>(blockIdx.x); + tileidx < m_policy.m_num_tiles; tileidx += gridDim.x) { index_type tile_idx = tileidx; // temp because tile_idx will be modified while // determining tile starting point offsets - index_type thrd_idx = static_cast<index_type>(hipThreadIdx_y); + index_type thrd_idx = static_cast<index_type>(threadIdx.y); bool in_bounds = true; // LL @@ -1821,24 +1764,25 @@ struct DeviceIterateTile< !is_void<Tag>::value>::type> { using index_type = typename PolicyType::index_type; - KOKKOS_INLINE_FUNCTION - DeviceIterateTile(const PolicyType& policy_, const Functor& f_, ValueType& v_) + KOKKOS_IMPL_DEVICE_FUNCTION DeviceIterateTile(const PolicyType& policy_, + const Functor& f_, + ValueType& v_) : m_policy(policy_), m_func(f_), m_v(v_) {} - KOKKOS_INLINE_FUNCTION + KOKKOS_IMPL_DEVICE_FUNCTION void exec_range() const { - if (static_cast<index_type>(hipBlockIdx_x) < m_policy.m_num_tiles && - static_cast<index_type>(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + if (static_cast<index_type>(blockIdx.x) < m_policy.m_num_tiles && + static_cast<index_type>(threadIdx.y) < m_policy.m_prod_tile_dims) { index_type m_offset[PolicyType::rank]; // tile starting global id offset index_type m_local_offset[PolicyType::rank]; // tile starting global id offset - for (index_type tileidx = static_cast<index_type>(hipBlockIdx_x); - tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + for (index_type tileidx = static_cast<index_type>(blockIdx.x); + tileidx < m_policy.m_num_tiles; tileidx += gridDim.x) { index_type tile_idx = tileidx; // temp because tile_idx will be modified while // determining tile starting point offsets - index_type thrd_idx = static_cast<index_type>(hipThreadIdx_y); + index_type thrd_idx = static_cast<index_type>(threadIdx.y); bool in_bounds = true; // LL @@ -1906,26 +1850,27 @@ struct DeviceIterateTile< typename std::enable_if<!is_array_type<ValueType>::value>::type> { using index_type = typename PolicyType::index_type; - __device__ DeviceIterateTile(const PolicyType& policy_, const Functor& f_, - ValueType& v_) + KOKKOS_IMPL_DEVICE_FUNCTION DeviceIterateTile(const PolicyType& policy_, + const Functor& f_, + ValueType& v_) : m_policy(policy_), m_func(f_), m_v(v_) {} static constexpr index_type max_blocks = 65535; - KOKKOS_INLINE_FUNCTION + KOKKOS_IMPL_DEVICE_FUNCTION void exec_range() const { - if (static_cast<index_type>(hipBlockIdx_x) < m_policy.m_num_tiles && - static_cast<index_type>(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + if (static_cast<index_type>(blockIdx.x) < m_policy.m_num_tiles && + static_cast<index_type>(threadIdx.y) < m_policy.m_prod_tile_dims) { index_type m_offset[PolicyType::rank]; // tile starting global id offset index_type m_local_offset[PolicyType::rank]; // tile starting global id offset - for (index_type tileidx = static_cast<index_type>(hipBlockIdx_x); - tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + for (index_type tileidx = static_cast<index_type>(blockIdx.x); + tileidx < m_policy.m_num_tiles; tileidx += gridDim.x) { index_type tile_idx = tileidx; // temp because tile_idx will be modified while // determining tile starting point offsets - index_type thrd_idx = static_cast<index_type>(hipThreadIdx_y); + index_type thrd_idx = static_cast<index_type>(threadIdx.y); bool in_bounds = true; // LL @@ -1936,7 +1881,7 @@ struct DeviceIterateTile< m_policy.m_lower[i]; tile_idx /= m_policy.m_tile_end[i]; - // tile-local indices identified with (index_type)hipThreadIdx_y + // tile-local indices identified with (index_type)threadIdx.y m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); thrd_idx /= m_policy.m_tile[i]; @@ -1991,26 +1936,27 @@ struct DeviceIterateTile< !is_void<Tag>::value>::type> { using index_type = typename PolicyType::index_type; - KOKKOS_INLINE_FUNCTION - DeviceIterateTile(const PolicyType& policy_, const Functor& f_, ValueType& v_) + KOKKOS_IMPL_DEVICE_FUNCTION DeviceIterateTile(const PolicyType& policy_, + const Functor& f_, + ValueType& v_) : m_policy(policy_), m_func(f_), m_v(v_) {} static constexpr index_type max_blocks = 65535; - KOKKOS_INLINE_FUNCTION + KOKKOS_IMPL_DEVICE_FUNCTION void exec_range() const { - if (static_cast<index_type>(hipBlockIdx_x) < m_policy.m_num_tiles && - static_cast<index_type>(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + if (static_cast<index_type>(blockIdx.x) < m_policy.m_num_tiles && + static_cast<index_type>(threadIdx.y) < m_policy.m_prod_tile_dims) { index_type m_offset[PolicyType::rank]; // tile starting global id offset index_type m_local_offset[PolicyType::rank]; // tile starting global id offset - for (index_type tileidx = static_cast<index_type>(hipBlockIdx_x); - tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + for (index_type tileidx = static_cast<index_type>(blockIdx.x); + tileidx < m_policy.m_num_tiles; tileidx += gridDim.x) { index_type tile_idx = tileidx; // temp because tile_idx will be modified while // determining tile starting point offsets - index_type thrd_idx = static_cast<index_type>(hipThreadIdx_y); + index_type thrd_idx = static_cast<index_type>(threadIdx.y); bool in_bounds = true; // LL @@ -2021,7 +1967,7 @@ struct DeviceIterateTile< m_policy.m_lower[i]; tile_idx /= m_policy.m_tile_end[i]; - // tile-local indices identified with hipThreadIdx_y + // tile-local indices identified with threadIdx.y m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); thrd_idx /= m_policy.m_tile[i]; @@ -2044,7 +1990,7 @@ struct DeviceIterateTile< m_policy.m_lower[i]; tile_idx /= m_policy.m_tile_end[i]; - // tile-local indices identified with hipThreadIdx_y + // tile-local indices identified with threadIdx.y m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); thrd_idx /= m_policy.m_tile[i]; @@ -2077,26 +2023,27 @@ struct DeviceIterateTile< typename std::enable_if<!is_array_type<ValueType>::value>::type> { using index_type = typename PolicyType::index_type; - __device__ DeviceIterateTile(const PolicyType& policy_, const Functor& f_, - ValueType& v_) + KOKKOS_IMPL_DEVICE_FUNCTION DeviceIterateTile(const PolicyType& policy_, + const Functor& f_, + ValueType& v_) : m_policy(policy_), m_func(f_), m_v(v_) {} static constexpr index_type max_blocks = 65535; - KOKKOS_INLINE_FUNCTION + KOKKOS_IMPL_DEVICE_FUNCTION void exec_range() const { - if (static_cast<index_type>(hipBlockIdx_x) < m_policy.m_num_tiles && - static_cast<index_type>(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + if (static_cast<index_type>(blockIdx.x) < m_policy.m_num_tiles && + static_cast<index_type>(threadIdx.y) < m_policy.m_prod_tile_dims) { index_type m_offset[PolicyType::rank]; // tile starting global id offset index_type m_local_offset[PolicyType::rank]; // tile starting global id offset - for (index_type tileidx = static_cast<index_type>(hipBlockIdx_x); - tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + for (index_type tileidx = static_cast<index_type>(blockIdx.x); + tileidx < m_policy.m_num_tiles; tileidx += gridDim.x) { index_type tile_idx = tileidx; // temp because tile_idx will be modified while // determining tile starting point offsets - index_type thrd_idx = static_cast<index_type>(hipThreadIdx_y); + index_type thrd_idx = static_cast<index_type>(threadIdx.y); bool in_bounds = true; // LL @@ -2130,7 +2077,7 @@ struct DeviceIterateTile< m_policy.m_lower[i]; tile_idx /= m_policy.m_tile_end[i]; - // tile-local indices identified with hipThreadIdx_y + // tile-local indices identified with threadIdx.y m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); thrd_idx /= m_policy.m_tile[i]; @@ -2164,26 +2111,27 @@ struct DeviceIterateTile< !is_void<Tag>::value>::type> { using index_type = typename PolicyType::index_type; - __device__ DeviceIterateTile(const PolicyType& policy_, const Functor& f_, - ValueType& v_) + KOKKOS_IMPL_DEVICE_FUNCTION DeviceIterateTile(const PolicyType& policy_, + const Functor& f_, + ValueType& v_) : m_policy(policy_), m_func(f_), m_v(v_) {} static constexpr index_type max_blocks = 65535; - KOKKOS_INLINE_FUNCTION + KOKKOS_IMPL_DEVICE_FUNCTION void exec_range() const { - if (static_cast<index_type>(hipBlockIdx_x) < m_policy.m_num_tiles && - static_cast<index_type>(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + if (static_cast<index_type>(blockIdx.x) < m_policy.m_num_tiles && + static_cast<index_type>(threadIdx.y) < m_policy.m_prod_tile_dims) { index_type m_offset[PolicyType::rank]; // tile starting global id offset index_type m_local_offset[PolicyType::rank]; // tile starting global id offset - for (index_type tileidx = static_cast<index_type>(hipBlockIdx_x); - tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + for (index_type tileidx = static_cast<index_type>(blockIdx.x); + tileidx < m_policy.m_num_tiles; tileidx += gridDim.x) { index_type tile_idx = tileidx; // temp because tile_idx will be modified while // determining tile starting point offsets - index_type thrd_idx = static_cast<index_type>(hipThreadIdx_y); + index_type thrd_idx = static_cast<index_type>(threadIdx.y); bool in_bounds = true; // LL @@ -2194,7 +2142,7 @@ struct DeviceIterateTile< m_policy.m_lower[i]; tile_idx /= m_policy.m_tile_end[i]; - // tile-local indices identified with hipThreadIdx_y + // tile-local indices identified with threadIdx.y m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); thrd_idx /= m_policy.m_tile[i]; @@ -2217,7 +2165,7 @@ struct DeviceIterateTile< m_policy.m_lower[i]; tile_idx /= m_policy.m_tile_end[i]; - // tile-local indices identified with hipThreadIdx_y + // tile-local indices identified with threadIdx.y m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); thrd_idx /= m_policy.m_tile[i]; @@ -2250,26 +2198,27 @@ struct DeviceIterateTile< typename std::enable_if<!is_array_type<ValueType>::value>::type> { using index_type = typename PolicyType::index_type; - __device__ DeviceIterateTile(const PolicyType& policy_, const Functor& f_, - ValueType& v_) + KOKKOS_IMPL_DEVICE_FUNCTION DeviceIterateTile(const PolicyType& policy_, + const Functor& f_, + ValueType& v_) : m_policy(policy_), m_func(f_), m_v(v_) {} static constexpr index_type max_blocks = 65535; - KOKKOS_INLINE_FUNCTION + KOKKOS_IMPL_DEVICE_FUNCTION void exec_range() const { - if (static_cast<index_type>(hipBlockIdx_x) < m_policy.m_num_tiles && - static_cast<index_type>(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + if (static_cast<index_type>(blockIdx.x) < m_policy.m_num_tiles && + static_cast<index_type>(threadIdx.y) < m_policy.m_prod_tile_dims) { index_type m_offset[PolicyType::rank]; // tile starting global id offset index_type m_local_offset[PolicyType::rank]; // tile starting global id offset - for (index_type tileidx = static_cast<index_type>(hipBlockIdx_x); - tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + for (index_type tileidx = static_cast<index_type>(blockIdx.x); + tileidx < m_policy.m_num_tiles; tileidx += gridDim.x) { index_type tile_idx = tileidx; // temp because tile_idx will be modified while // determining tile starting point offsets - index_type thrd_idx = static_cast<index_type>(hipThreadIdx_y); + index_type thrd_idx = static_cast<index_type>(threadIdx.y); bool in_bounds = true; // LL @@ -2280,7 +2229,7 @@ struct DeviceIterateTile< m_policy.m_lower[i]; tile_idx /= m_policy.m_tile_end[i]; - // tile-local indices identified with hipThreadIdx_y + // tile-local indices identified with threadIdx.y m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); thrd_idx /= m_policy.m_tile[i]; @@ -2303,7 +2252,7 @@ struct DeviceIterateTile< m_policy.m_lower[i]; tile_idx /= m_policy.m_tile_end[i]; - // tile-local indices identified with hipThreadIdx_y + // tile-local indices identified with threadIdx.y m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); thrd_idx /= m_policy.m_tile[i]; @@ -2337,26 +2286,27 @@ struct DeviceIterateTile< !is_void<Tag>::value>::type> { using index_type = typename PolicyType::index_type; - __device__ DeviceIterateTile(const PolicyType& rp_, const Functor& f_, - ValueType& v_) - : m_policy(rp_), m_func(f_), m_v(v_) {} + KOKKOS_IMPL_DEVICE_FUNCTION DeviceIterateTile(const PolicyType& policy_, + const Functor& f_, + ValueType& v_) + : m_policy(policy_), m_func(f_), m_v(v_) {} static constexpr index_type max_blocks = 65535; - KOKKOS_INLINE_FUNCTION + KOKKOS_IMPL_DEVICE_FUNCTION void exec_range() const { - if (static_cast<index_type>(hipBlockIdx_x) < m_policy.m_num_tiles && - static_cast<index_type>(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + if (static_cast<index_type>(blockIdx.x) < m_policy.m_num_tiles && + static_cast<index_type>(threadIdx.y) < m_policy.m_prod_tile_dims) { index_type m_offset[PolicyType::rank]; // tile starting global id offset index_type m_local_offset[PolicyType::rank]; // tile starting global id offset - for (index_type tileidx = static_cast<index_type>(hipBlockIdx_x); - tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + for (index_type tileidx = static_cast<index_type>(blockIdx.x); + tileidx < m_policy.m_num_tiles; tileidx += gridDim.x) { index_type tile_idx = tileidx; // temp because tile_idx will be modified while // determining tile starting point offsets - index_type thrd_idx = static_cast<index_type>(hipThreadIdx_y); + index_type thrd_idx = static_cast<index_type>(threadIdx.y); bool in_bounds = true; // LL @@ -2425,24 +2375,25 @@ struct DeviceIterateTile< using index_type = typename PolicyType::index_type; using value_type = typename is_array_type<ValueType>::value_type; - __device__ DeviceIterateTile(const PolicyType& policy_, const Functor& f_, - value_type* v_) + KOKKOS_IMPL_DEVICE_FUNCTION DeviceIterateTile(const PolicyType& policy_, + const Functor& f_, + value_type* v_) : m_policy(policy_), m_func(f_), m_v(v_) {} - KOKKOS_INLINE_FUNCTION + KOKKOS_IMPL_DEVICE_FUNCTION void exec_range() const { - if (static_cast<index_type>(hipBlockIdx_x) < m_policy.m_num_tiles && - static_cast<index_type>(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + if (static_cast<index_type>(blockIdx.x) < m_policy.m_num_tiles && + static_cast<index_type>(threadIdx.y) < m_policy.m_prod_tile_dims) { index_type m_offset[PolicyType::rank]; // tile starting global id offset index_type m_local_offset[PolicyType::rank]; // tile starting global id offset - for (index_type tileidx = static_cast<index_type>(hipBlockIdx_x); - tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + for (index_type tileidx = static_cast<index_type>(blockIdx.x); + tileidx < m_policy.m_num_tiles; tileidx += gridDim.x) { index_type tile_idx = tileidx; // temp because tile_idx will be modified while // determining tile starting point offsets - index_type thrd_idx = static_cast<index_type>(hipThreadIdx_y); + index_type thrd_idx = static_cast<index_type>(threadIdx.y); bool in_bounds = true; // LL @@ -2511,24 +2462,25 @@ struct DeviceIterateTile< using index_type = typename PolicyType::index_type; using value_type = typename is_array_type<ValueType>::value_type; - KOKKOS_INLINE_FUNCTION - DeviceIterateTile(const PolicyType& rp_, const Functor& f_, value_type* v_) - : m_policy(rp_), m_func(f_), m_v(v_) {} + KOKKOS_IMPL_DEVICE_FUNCTION DeviceIterateTile(const PolicyType& policy_, + const Functor& f_, + value_type* v_) + : m_policy(policy_), m_func(f_), m_v(v_) {} - KOKKOS_INLINE_FUNCTION + KOKKOS_IMPL_DEVICE_FUNCTION void exec_range() const { - if (static_cast<index_type>(hipBlockIdx_x) < m_policy.m_num_tiles && - static_cast<index_type>(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + if (static_cast<index_type>(blockIdx.x) < m_policy.m_num_tiles && + static_cast<index_type>(threadIdx.y) < m_policy.m_prod_tile_dims) { index_type m_offset[PolicyType::rank]; // tile starting global id offset index_type m_local_offset[PolicyType::rank]; // tile starting global id offset - for (index_type tileidx = static_cast<index_type>(hipBlockIdx_x); - tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + for (index_type tileidx = static_cast<index_type>(blockIdx.x); + tileidx < m_policy.m_num_tiles; tileidx += gridDim.x) { index_type tile_idx = tileidx; // temp because tile_idx will be modified while // determining tile starting point offsets - index_type thrd_idx = static_cast<index_type>(hipThreadIdx_y); + index_type thrd_idx = static_cast<index_type>(threadIdx.y); bool in_bounds = true; // LL @@ -2594,25 +2546,25 @@ struct DeviceIterateTile< using index_type = typename PolicyType::index_type; using value_type = typename is_array_type<ValueType>::value_type; - KOKKOS_INLINE_FUNCTION - DeviceIterateTile(const PolicyType& policy_, const Functor& f_, - value_type* v_) + KOKKOS_IMPL_DEVICE_FUNCTION DeviceIterateTile(const PolicyType& policy_, + const Functor& f_, + value_type* v_) : m_policy(policy_), m_func(f_), m_v(v_) {} - KOKKOS_INLINE_FUNCTION + KOKKOS_IMPL_DEVICE_FUNCTION void exec_range() const { - if (static_cast<index_type>(hipBlockIdx_x) < m_policy.m_num_tiles && - static_cast<index_type>(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + if (static_cast<index_type>(blockIdx.x) < m_policy.m_num_tiles && + static_cast<index_type>(threadIdx.y) < m_policy.m_prod_tile_dims) { index_type m_offset[PolicyType::rank]; // tile starting global id offset index_type m_local_offset[PolicyType::rank]; // tile starting global id offset - for (index_type tileidx = static_cast<index_type>(hipBlockIdx_x); - tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + for (index_type tileidx = static_cast<index_type>(blockIdx.x); + tileidx < m_policy.m_num_tiles; tileidx += gridDim.x) { index_type tile_idx = tileidx; // temp because tile_idx will be modified while // determining tile starting point offsets - index_type thrd_idx = static_cast<index_type>(hipThreadIdx_y); + index_type thrd_idx = static_cast<index_type>(threadIdx.y); bool in_bounds = true; // LL @@ -2685,25 +2637,25 @@ struct DeviceIterateTile< using index_type = typename PolicyType::index_type; using value_type = typename is_array_type<ValueType>::value_type; - KOKKOS_INLINE_FUNCTION + KOKKOS_IMPL_DEVICE_FUNCTION DeviceIterateTile(const PolicyType& policy_, const Functor& f_, value_type* v_) : m_policy(policy_), m_func(f_), m_v(v_) {} - KOKKOS_INLINE_FUNCTION + KOKKOS_IMPL_DEVICE_FUNCTION void exec_range() const { - if (static_cast<index_type>(hipBlockIdx_x) < m_policy.m_num_tiles && - static_cast<index_type>(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + if (static_cast<index_type>(blockIdx.x) < m_policy.m_num_tiles && + static_cast<index_type>(threadIdx.y) < m_policy.m_prod_tile_dims) { index_type m_offset[PolicyType::rank]; // tile starting global id offset index_type m_local_offset[PolicyType::rank]; // tile starting global id offset - for (index_type tileidx = static_cast<index_type>(hipBlockIdx_x); - tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + for (index_type tileidx = static_cast<index_type>(blockIdx.x); + tileidx < m_policy.m_num_tiles; tileidx += gridDim.x) { index_type tile_idx = tileidx; // temp because tile_idx will be modified while // determining tile starting point offsets - index_type thrd_idx = static_cast<index_type>(hipThreadIdx_y); + index_type thrd_idx = static_cast<index_type>(threadIdx.y); bool in_bounds = true; // LL @@ -2714,7 +2666,7 @@ struct DeviceIterateTile< m_policy.m_lower[i]; tile_idx /= m_policy.m_tile_end[i]; - // tile-local indices identified with hipThreadIdx_y + // tile-local indices identified with threadIdx.y m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); thrd_idx /= m_policy.m_tile[i]; @@ -2769,27 +2721,27 @@ struct DeviceIterateTile< using index_type = typename PolicyType::index_type; using value_type = typename is_array_type<ValueType>::value_type; - KOKKOS_INLINE_FUNCTION - DeviceIterateTile(const PolicyType& policy_, const Functor& f_, - value_type* v_) + KOKKOS_IMPL_DEVICE_FUNCTION DeviceIterateTile(const PolicyType& policy_, + const Functor& f_, + value_type* v_) : m_policy(policy_), m_func(f_), m_v(v_) {} static constexpr index_type max_blocks = 65535; - KOKKOS_INLINE_FUNCTION + KOKKOS_IMPL_DEVICE_FUNCTION void exec_range() const { - if (static_cast<index_type>(hipBlockIdx_x) < m_policy.m_num_tiles && - static_cast<index_type>(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + if (static_cast<index_type>(blockIdx.x) < m_policy.m_num_tiles && + static_cast<index_type>(threadIdx.y) < m_policy.m_prod_tile_dims) { index_type m_offset[PolicyType::rank]; // tile starting global id offset index_type m_local_offset[PolicyType::rank]; // tile starting global id offset - for (index_type tileidx = static_cast<index_type>(hipBlockIdx_x); - tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + for (index_type tileidx = static_cast<index_type>(blockIdx.x); + tileidx < m_policy.m_num_tiles; tileidx += gridDim.x) { index_type tile_idx = tileidx; // temp because tile_idx will be modified while // determining tile starting point offsets - index_type thrd_idx = static_cast<index_type>(hipThreadIdx_y); + index_type thrd_idx = static_cast<index_type>(threadIdx.y); bool in_bounds = true; // LL @@ -2800,7 +2752,7 @@ struct DeviceIterateTile< m_policy.m_lower[i]; tile_idx /= m_policy.m_tile_end[i]; - // tile-local indices identified with hipThreadIdx_y + // tile-local indices identified with threadIdx.y m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); thrd_idx /= m_policy.m_tile[i]; @@ -2822,7 +2774,7 @@ struct DeviceIterateTile< m_policy.m_lower[i]; tile_idx /= m_policy.m_tile_end[i]; - // tile-local indices identified with hipThreadIdx_y + // tile-local indices identified with threadIdx.y m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); thrd_idx /= m_policy.m_tile[i]; @@ -2856,27 +2808,27 @@ struct DeviceIterateTile< using index_type = typename PolicyType::index_type; using value_type = typename is_array_type<ValueType>::value_type; - KOKKOS_INLINE_FUNCTION - DeviceIterateTile(const PolicyType& policy_, const Functor& f_, - value_type* v_) + KOKKOS_IMPL_DEVICE_FUNCTION DeviceIterateTile(const PolicyType& policy_, + const Functor& f_, + value_type* v_) : m_policy(policy_), m_func(f_), m_v(v_) {} static constexpr index_type max_blocks = 65535; - KOKKOS_INLINE_FUNCTION + KOKKOS_IMPL_DEVICE_FUNCTION void exec_range() const { - if (static_cast<index_type>(hipBlockIdx_x) < m_policy.m_num_tiles && - static_cast<index_type>(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + if (static_cast<index_type>(blockIdx.x) < m_policy.m_num_tiles && + static_cast<index_type>(threadIdx.y) < m_policy.m_prod_tile_dims) { index_type m_offset[PolicyType::rank]; // tile starting global id offset index_type m_local_offset[PolicyType::rank]; // tile starting global id offset - for (index_type tileidx = static_cast<index_type>(hipBlockIdx_x); - tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + for (index_type tileidx = static_cast<index_type>(blockIdx.x); + tileidx < m_policy.m_num_tiles; tileidx += gridDim.x) { index_type tile_idx = tileidx; // temp because tile_idx will be modified while // determining tile starting point offsets - index_type thrd_idx = static_cast<index_type>(hipThreadIdx_y); + index_type thrd_idx = static_cast<index_type>(threadIdx.y); bool in_bounds = true; // LL @@ -2944,27 +2896,27 @@ struct DeviceIterateTile< using index_type = typename PolicyType::index_type; using value_type = typename is_array_type<ValueType>::value_type; - KOKKOS_INLINE_FUNCTION - DeviceIterateTile(const PolicyType& policy_, const Functor& f_, - value_type* v_) + KOKKOS_IMPL_DEVICE_FUNCTION DeviceIterateTile(const PolicyType& policy_, + const Functor& f_, + value_type* v_) : m_policy(policy_), m_func(f_), m_v(v_) {} static constexpr index_type max_blocks = 65535; - KOKKOS_INLINE_FUNCTION + KOKKOS_IMPL_DEVICE_FUNCTION void exec_range() const { - if (static_cast<index_type>(hipBlockIdx_x) < m_policy.m_num_tiles && - static_cast<index_type>(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + if (static_cast<index_type>(blockIdx.x) < m_policy.m_num_tiles && + static_cast<index_type>(threadIdx.y) < m_policy.m_prod_tile_dims) { index_type m_offset[PolicyType::rank]; // tile starting global id offset index_type m_local_offset[PolicyType::rank]; // tile starting global id offset - for (index_type tileidx = static_cast<index_type>(hipBlockIdx_x); - tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + for (index_type tileidx = static_cast<index_type>(blockIdx.x); + tileidx < m_policy.m_num_tiles; tileidx += gridDim.x) { index_type tile_idx = tileidx; // temp because tile_idx will be modified while // determining tile starting point offsets - index_type thrd_idx = static_cast<index_type>(hipThreadIdx_y); + index_type thrd_idx = static_cast<index_type>(threadIdx.y); bool in_bounds = true; // LL @@ -2975,7 +2927,7 @@ struct DeviceIterateTile< m_policy.m_lower[i]; tile_idx /= m_policy.m_tile_end[i]; - // tile-local indices identified with hipThreadIdx_y + // tile-local indices identified with threadIdx.y m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); thrd_idx /= m_policy.m_tile[i]; @@ -2998,7 +2950,7 @@ struct DeviceIterateTile< m_policy.m_lower[i]; tile_idx /= m_policy.m_tile_end[i]; - // tile-local indices identified with hipThreadIdx_y + // tile-local indices identified with threadIdx.y m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); thrd_idx /= m_policy.m_tile[i]; @@ -3033,27 +2985,27 @@ struct DeviceIterateTile< using index_type = typename PolicyType::index_type; using value_type = typename is_array_type<ValueType>::value_type; - KOKKOS_INLINE_FUNCTION - DeviceIterateTile(const PolicyType& policy_, const Functor& f_, - value_type* v_) + KOKKOS_IMPL_DEVICE_FUNCTION DeviceIterateTile(const PolicyType& policy_, + const Functor& f_, + value_type* v_) : m_policy(policy_), m_func(f_), m_v(v_) {} static constexpr index_type max_blocks = 65535; - KOKKOS_INLINE_FUNCTION + KOKKOS_IMPL_DEVICE_FUNCTION void exec_range() const { - if (static_cast<index_type>(hipBlockIdx_x) < m_policy.m_num_tiles && - static_cast<index_type>(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + if (static_cast<index_type>(blockIdx.x) < m_policy.m_num_tiles && + static_cast<index_type>(threadIdx.y) < m_policy.m_prod_tile_dims) { index_type m_offset[PolicyType::rank]; // tile starting global id offset index_type m_local_offset[PolicyType::rank]; // tile starting global id offset - for (index_type tileidx = static_cast<index_type>(hipBlockIdx_x); - tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + for (index_type tileidx = static_cast<index_type>(blockIdx.x); + tileidx < m_policy.m_num_tiles; tileidx += gridDim.x) { index_type tile_idx = tileidx; // temp because tile_idx will be modified while // determining tile starting point offsets - index_type thrd_idx = static_cast<index_type>(hipThreadIdx_y); + index_type thrd_idx = static_cast<index_type>(threadIdx.y); bool in_bounds = true; // LL @@ -3064,7 +3016,7 @@ struct DeviceIterateTile< m_policy.m_lower[i]; tile_idx /= m_policy.m_tile_end[i]; - // tile-local indices identified with hipThreadIdx_y + // tile-local indices identified with threadIdx.y m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); thrd_idx /= m_policy.m_tile[i]; @@ -3087,7 +3039,7 @@ struct DeviceIterateTile< m_policy.m_lower[i]; tile_idx /= m_policy.m_tile_end[i]; - // tile-local indices identified with hipThreadIdx_y + // tile-local indices identified with threadIdx.y m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); thrd_idx /= m_policy.m_tile[i]; @@ -3121,27 +3073,27 @@ struct DeviceIterateTile< using index_type = typename PolicyType::index_type; using value_type = typename is_array_type<ValueType>::value_type; - KOKKOS_INLINE_FUNCTION - DeviceIterateTile(const PolicyType& policy_, const Functor& f_, - value_type* v_) + KOKKOS_IMPL_DEVICE_FUNCTION DeviceIterateTile(const PolicyType& policy_, + const Functor& f_, + value_type* v_) : m_policy(policy_), m_func(f_), m_v(v_) {} static constexpr index_type max_blocks = 65535; - KOKKOS_INLINE_FUNCTION + KOKKOS_IMPL_DEVICE_FUNCTION void exec_range() const { - if (static_cast<index_type>(hipBlockIdx_x) < m_policy.m_num_tiles && - static_cast<index_type>(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + if (static_cast<index_type>(blockIdx.x) < m_policy.m_num_tiles && + static_cast<index_type>(threadIdx.y) < m_policy.m_prod_tile_dims) { index_type m_offset[PolicyType::rank]; // tile starting global id offset index_type m_local_offset[PolicyType::rank]; // tile starting global id offset - for (index_type tileidx = static_cast<index_type>(hipBlockIdx_x); - tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + for (index_type tileidx = static_cast<index_type>(blockIdx.x); + tileidx < m_policy.m_num_tiles; tileidx += gridDim.x) { index_type tile_idx = tileidx; // temp because tile_idx will be modified while // determining tile starting point offsets - index_type thrd_idx = static_cast<index_type>(hipThreadIdx_y); + index_type thrd_idx = static_cast<index_type>(threadIdx.y); bool in_bounds = true; // LL @@ -3152,7 +3104,7 @@ struct DeviceIterateTile< m_policy.m_lower[i]; tile_idx /= m_policy.m_tile_end[i]; - // tile-local indices identified with hipThreadIdx_y + // tile-local indices identified with threadIdx.y m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); thrd_idx /= m_policy.m_tile[i]; @@ -3175,7 +3127,7 @@ struct DeviceIterateTile< m_policy.m_lower[i]; tile_idx /= m_policy.m_tile_end[i]; - // tile-local indices identified with hipThreadIdx_y + // tile-local indices identified with threadIdx.y m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); thrd_idx /= m_policy.m_tile[i]; @@ -3210,27 +3162,27 @@ struct DeviceIterateTile< using index_type = typename PolicyType::index_type; using value_type = typename is_array_type<ValueType>::value_type; - KOKKOS_INLINE_FUNCTION - DeviceIterateTile(const PolicyType& policy_, const Functor& f_, - value_type* v_) + KOKKOS_IMPL_DEVICE_FUNCTION DeviceIterateTile(const PolicyType& policy_, + const Functor& f_, + value_type* v_) : m_policy(policy_), m_func(f_), m_v(v_) {} static constexpr index_type max_blocks = 65535; - KOKKOS_INLINE_FUNCTION + KOKKOS_IMPL_DEVICE_FUNCTION void exec_range() const { - if (static_cast<index_type>(hipBlockIdx_x) < m_policy.m_num_tiles && - static_cast<index_type>(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + if (static_cast<index_type>(blockIdx.x) < m_policy.m_num_tiles && + static_cast<index_type>(threadIdx.y) < m_policy.m_prod_tile_dims) { index_type m_offset[PolicyType::rank]; // tile starting global id offset index_type m_local_offset[PolicyType::rank]; // tile starting global id offset - for (index_type tileidx = static_cast<index_type>(hipBlockIdx_x); - tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + for (index_type tileidx = static_cast<index_type>(blockIdx.x); + tileidx < m_policy.m_num_tiles; tileidx += gridDim.x) { index_type tile_idx = tileidx; // temp because tile_idx will be modified while // determining tile starting point offsets - index_type thrd_idx = static_cast<index_type>(hipThreadIdx_y); + index_type thrd_idx = static_cast<index_type>(threadIdx.y); bool in_bounds = true; // LL @@ -3241,7 +3193,7 @@ struct DeviceIterateTile< m_policy.m_lower[i]; tile_idx /= m_policy.m_tile_end[i]; - // tile-local indices identified with hipThreadIdx_y + // tile-local indices identified with threadIdx.y m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); thrd_idx /= m_policy.m_tile[i]; @@ -3264,7 +3216,7 @@ struct DeviceIterateTile< m_policy.m_lower[i]; tile_idx /= m_policy.m_tile_end[i]; - // tile-local indices identified with hipThreadIdx_y + // tile-local indices identified with threadIdx.y m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); thrd_idx /= m_policy.m_tile[i]; @@ -3293,4 +3245,3 @@ struct DeviceIterateTile< } // namespace Impl } // namespace Kokkos #endif -#endif diff --git a/packages/kokkos/core/src/impl/Kokkos_AnalyzePolicy.hpp b/packages/kokkos/core/src/impl/Kokkos_AnalyzePolicy.hpp index 739e2d4f4..6905d9e40 100644 --- a/packages/kokkos/core/src/impl/Kokkos_AnalyzePolicy.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_AnalyzePolicy.hpp @@ -48,19 +48,39 @@ #include <Kokkos_Core_fwd.hpp> #include <Kokkos_Concepts.hpp> #include <impl/Kokkos_Tags.hpp> +#include <impl/Kokkos_GraphImpl_fwd.hpp> +#include <impl/Kokkos_Error.hpp> +#include <impl/Kokkos_EBO.hpp> namespace Kokkos { -namespace Impl { +namespace Experimental { +struct DesiredOccupancy { + int m_occ = 100; + explicit constexpr DesiredOccupancy(int occ) : m_occ(occ) { + KOKKOS_EXPECTS(0 <= occ && occ <= 100); + } + explicit constexpr operator int() const { return m_occ; } + constexpr int value() const { return m_occ; } + explicit DesiredOccupancy() = default; +}; +struct MaximizeOccupancy { + explicit MaximizeOccupancy() = default; +}; +} // namespace Experimental +namespace Impl { template <typename ExecutionSpace = void, typename Schedule = void, typename WorkTag = void, typename IndexType = void, typename IterationPattern = void, typename LaunchBounds = void, typename MyWorkItemProperty = - Kokkos::Experimental::WorkItemProperty::None_t> + Kokkos::Experimental::WorkItemProperty::None_t, + typename IsGraphKernel = std::false_type, + typename OccupancyControl = Kokkos::Experimental::MaximizeOccupancy> struct PolicyTraitsBase { using type = PolicyTraitsBase<ExecutionSpace, Schedule, WorkTag, IndexType, - IterationPattern, LaunchBounds, MyWorkItemProperty>; + IterationPattern, LaunchBounds, MyWorkItemProperty, + IsGraphKernel, OccupancyControl>; using execution_space = ExecutionSpace; using schedule_type = Schedule; @@ -69,6 +89,8 @@ struct PolicyTraitsBase { using iteration_pattern = IterationPattern; using launch_bounds = LaunchBounds; using work_item_property = MyWorkItemProperty; + using is_graph_kernel = IsGraphKernel; + using occupancy_control = OccupancyControl; }; template <typename PolicyBase, typename Property> @@ -81,7 +103,9 @@ struct SetWorkItemProperty { typename PolicyBase::execution_space, typename PolicyBase::schedule_type, typename PolicyBase::work_tag, typename PolicyBase::index_type, typename PolicyBase::iteration_pattern, - typename PolicyBase::launch_bounds, Property>; + typename PolicyBase::launch_bounds, Property, + typename PolicyBase::is_graph_kernel, + typename PolicyBase::occupancy_control>; }; template <typename PolicyBase, typename ExecutionSpace> @@ -94,7 +118,9 @@ struct SetExecutionSpace { typename PolicyBase::index_type, typename PolicyBase::iteration_pattern, typename PolicyBase::launch_bounds, - typename PolicyBase::work_item_property>; + typename PolicyBase::work_item_property, + typename PolicyBase::is_graph_kernel, + typename PolicyBase::occupancy_control>; }; template <typename PolicyBase, typename Schedule> @@ -106,7 +132,9 @@ struct SetSchedule { typename PolicyBase::index_type, typename PolicyBase::iteration_pattern, typename PolicyBase::launch_bounds, - typename PolicyBase::work_item_property>; + typename PolicyBase::work_item_property, + typename PolicyBase::is_graph_kernel, + typename PolicyBase::occupancy_control>; }; template <typename PolicyBase, typename WorkTag> @@ -118,7 +146,9 @@ struct SetWorkTag { typename PolicyBase::index_type, typename PolicyBase::iteration_pattern, typename PolicyBase::launch_bounds, - typename PolicyBase::work_item_property>; + typename PolicyBase::work_item_property, + typename PolicyBase::is_graph_kernel, + typename PolicyBase::occupancy_control>; }; template <typename PolicyBase, typename IndexType> @@ -130,7 +160,9 @@ struct SetIndexType { typename PolicyBase::work_tag, IndexType, typename PolicyBase::iteration_pattern, typename PolicyBase::launch_bounds, - typename PolicyBase::work_item_property>; + typename PolicyBase::work_item_property, + typename PolicyBase::is_graph_kernel, + typename PolicyBase::occupancy_control>; }; template <typename PolicyBase, typename IterationPattern> @@ -141,7 +173,9 @@ struct SetIterationPattern { typename PolicyBase::execution_space, typename PolicyBase::schedule_type, typename PolicyBase::work_tag, typename PolicyBase::index_type, IterationPattern, typename PolicyBase::launch_bounds, - typename PolicyBase::work_item_property>; + typename PolicyBase::work_item_property, + typename PolicyBase::is_graph_kernel, + typename PolicyBase::occupancy_control>; }; template <typename PolicyBase, typename LaunchBounds> @@ -152,45 +186,87 @@ struct SetLaunchBounds { typename PolicyBase::execution_space, typename PolicyBase::schedule_type, typename PolicyBase::work_tag, typename PolicyBase::index_type, typename PolicyBase::iteration_pattern, LaunchBounds, - typename PolicyBase::work_item_property>; + typename PolicyBase::work_item_property, + typename PolicyBase::is_graph_kernel, + typename PolicyBase::occupancy_control>; +}; + +template <typename PolicyBase> +struct SetIsGraphKernel { + using type = PolicyTraitsBase< + typename PolicyBase::execution_space, typename PolicyBase::schedule_type, + typename PolicyBase::work_tag, typename PolicyBase::index_type, + typename PolicyBase::iteration_pattern, + typename PolicyBase::launch_bounds, + typename PolicyBase::work_item_property, std::true_type, + typename PolicyBase::occupancy_control>; +}; + +template <typename PolicyBase, typename OccupancyControl> +struct SetOccupancyControl { + using type = PolicyTraitsBase< + typename PolicyBase::execution_space, typename PolicyBase::schedule_type, + typename PolicyBase::work_tag, typename PolicyBase::index_type, + typename PolicyBase::iteration_pattern, + typename PolicyBase::launch_bounds, + typename PolicyBase::work_item_property, + typename PolicyBase::is_graph_kernel, OccupancyControl>; }; template <typename Base, typename... Traits> struct AnalyzePolicy; +// TODO DSH rewrite this to be more extensible once we have metaprogramming from +// desul template <typename Base, typename T, typename... Traits> struct AnalyzePolicy<Base, T, Traits...> : public AnalyzePolicy< - typename std::conditional< + typename std::conditional_t< is_execution_space<T>::value, SetExecutionSpace<Base, T>, - typename std::conditional< + std::conditional_t< is_schedule_type<T>::value, SetSchedule<Base, T>, - typename std::conditional< + std::conditional_t< is_index_type<T>::value, SetIndexType<Base, T>, - typename std::conditional< + std::conditional_t< std::is_integral<T>::value, - SetIndexType<Base, IndexType<T> >, - typename std::conditional< + SetIndexType<Base, IndexType<T>>, + std::conditional_t< is_iteration_pattern<T>::value, SetIterationPattern<Base, T>, - typename std::conditional< + std::conditional_t< is_launch_bounds<T>::value, SetLaunchBounds<Base, T>, - typename std::conditional< + std::conditional_t< Kokkos::Experimental:: is_work_item_property<T>::value, SetWorkItemProperty<Base, T>, - typename std::conditional< - !std::is_void<T>::value, - SetWorkTag<Base, T>, Base>::type>:: - type>::type>::type>::type>::type>::type>:: - type::type, + std::conditional_t< + std::is_same<T, + IsGraphKernelTag>::value, + SetIsGraphKernel<Base>, + std::conditional_t< + std::is_same< + T, Kokkos::Experimental:: + DesiredOccupancy>:: + value || + std::is_same< + T, + Kokkos::Experimental:: + MaximizeOccupancy>:: + value, + SetOccupancyControl<Base, T>, + std::conditional_t< + !std::is_void<T>::value, + SetWorkTag<Base, T>, + Base>>>>>>>>>>::type, Traits...> {}; template <typename Base> struct AnalyzePolicy<Base> { + static constexpr auto execution_space_is_defaulted = + std::is_void<typename Base::execution_space>::value; using execution_space = - typename std::conditional<is_void<typename Base::execution_space>::value, + typename std::conditional<execution_space_is_defaulted, DefaultExecutionSpace, typename Base::execution_space>::type; @@ -221,14 +297,99 @@ struct AnalyzePolicy<Base> { using work_item_property = typename Base::work_item_property; + using is_graph_kernel = typename Base::is_graph_kernel; + + using occupancy_control = typename Base::occupancy_control; + using type = PolicyTraitsBase<execution_space, schedule_type, work_tag, index_type, - iteration_pattern, launch_bounds, work_item_property>; + iteration_pattern, launch_bounds, work_item_property, + is_graph_kernel, occupancy_control>; +}; + +template <class AnalyzedPolicy> +struct PolicyDataStorage : AnalyzedPolicy, + NoUniqueAddressMemberEmulation< + typename AnalyzedPolicy::occupancy_control> { + using occupancy_control_t = typename AnalyzedPolicy::occupancy_control; + + using occupancy_control_storage_base_t = + NoUniqueAddressMemberEmulation<occupancy_control_t>; + + static constexpr bool experimental_contains_desired_occupancy = + std::is_same<occupancy_control_t, + Kokkos::Experimental::DesiredOccupancy>::value; + + PolicyDataStorage() = default; + + // Converting constructors + template < + class Other, + std::enable_if_t< + experimental_contains_desired_occupancy && + PolicyDataStorage<Other>::experimental_contains_desired_occupancy, + int> = 0> + PolicyDataStorage(PolicyDataStorage<Other> const &other) { + this->impl_set_desired_occupancy(other.impl_get_desired_occupancy()); + } + + template <class Other, + std::enable_if_t<!experimental_contains_desired_occupancy || + !PolicyDataStorage<Other>:: + experimental_contains_desired_occupancy, + int> = 0> + PolicyDataStorage(PolicyDataStorage<Other> const &) {} + + // Converting assignment operators + template < + class Other, + std::enable_if_t< + experimental_contains_desired_occupancy && + PolicyDataStorage<Other>::experimental_contains_desired_occupancy, + int> = 0> + PolicyDataStorage &operator=(PolicyDataStorage<Other> const &other) { + this->impl_set_desired_occupancy(other.impl_get_desired_occupancy()); + return *this; + } + + template <class Other, + std::enable_if_t<!experimental_contains_desired_occupancy || + !PolicyDataStorage<Other>:: + experimental_contains_desired_occupancy, + int> = 0> + PolicyDataStorage &operator=(PolicyDataStorage<Other> const &) { + return *this; + } + + // Access to desired occupancy (getter and setter) + template <class Dummy = occupancy_control_t> + std::enable_if_t<std::is_same<Dummy, occupancy_control_t>::value && + experimental_contains_desired_occupancy, + Kokkos::Experimental::DesiredOccupancy> + impl_get_desired_occupancy() const { + return this + ->occupancy_control_storage_base_t::no_unique_address_data_member(); + } + + template <class Dummy = occupancy_control_t> + std::enable_if_t<std::is_same<Dummy, occupancy_control_t>::value && + experimental_contains_desired_occupancy> + impl_set_desired_occupancy(occupancy_control_t desired_occupancy) { + this->occupancy_control_storage_base_t::no_unique_address_data_member() = + desired_occupancy; + } }; template <typename... Traits> struct PolicyTraits - : public AnalyzePolicy<PolicyTraitsBase<>, Traits...>::type {}; + : PolicyDataStorage< + typename AnalyzePolicy<PolicyTraitsBase<>, Traits...>::type> { + using base_t = PolicyDataStorage< + typename AnalyzePolicy<PolicyTraitsBase<>, Traits...>::type>; + template <class... Args> + PolicyTraits(PolicyTraits<Args...> const &p) : base_t(p) {} + PolicyTraits() = default; +}; } // namespace Impl } // namespace Kokkos diff --git a/packages/kokkos/core/src/impl/Kokkos_Atomic_Compare_Exchange_Strong.hpp b/packages/kokkos/core/src/impl/Kokkos_Atomic_Compare_Exchange_Strong.hpp index c25b80a82..dd571eb6d 100644 --- a/packages/kokkos/core/src/impl/Kokkos_Atomic_Compare_Exchange_Strong.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_Atomic_Compare_Exchange_Strong.hpp @@ -103,7 +103,7 @@ __inline__ __device__ T atomic_compare_exchange( typename std::enable_if<sizeof(T) != sizeof(int) && sizeof(T) == sizeof(unsigned long long int), const T&>::type val) { - typedef unsigned long long int type; + using type = unsigned long long int; const type tmp = atomicCAS((type*)dest, *((type*)&compare), *((type*)&val)); return *((T*)&tmp); } @@ -126,8 +126,10 @@ __inline__ __device__ T atomic_compare_exchange( while (active != done_active) { if (!done) { if (Impl::lock_address_cuda_space((void*)dest)) { + Kokkos::memory_fence(); return_val = *dest; if (return_val == compare) *dest = val; + Kokkos::memory_fence(); Impl::unlock_address_cuda_space((void*)dest); done = 1; } @@ -146,9 +148,10 @@ __inline__ __device__ T atomic_compare_exchange( //---------------------------------------------------------------------------- // GCC native CAS supports int, long, unsigned int, unsigned long. // Intel native CAS support int and long with the same interface as GCC. -#if !defined(KOKKOS_ENABLE_ROCM_ATOMICS) || !defined(KOKKOS_ENABLE_HIP_ATOMICS) #if !defined(__CUDA_ARCH__) || defined(KOKKOS_IMPL_CUDA_CLANG_WORKAROUND) -#if defined(KOKKOS_ENABLE_GNU_ATOMICS) || defined(KOKKOS_ENABLE_INTEL_ATOMICS) +#if defined(KOKKOS_ENABLE_WINDOWS_ATOMICS) +// atomic_compare_exchange are already defined in Kokkos_Atomic_Windows.hpp +#elif defined(KOKKOS_ENABLE_GNU_ATOMICS) || defined(KOKKOS_ENABLE_INTEL_ATOMICS) inline int atomic_compare_exchange(volatile int* const dest, const int compare, const int val) { @@ -182,6 +185,12 @@ inline unsigned long atomic_compare_exchange(volatile unsigned long* const dest, return __sync_val_compare_and_swap(dest, compare, val); } +inline unsigned long long atomic_compare_exchange( + volatile unsigned long long* const dest, const unsigned long long compare, + const unsigned long long val) { + return __sync_val_compare_and_swap(dest, compare, val); +} + #endif template <typename T> @@ -263,6 +272,7 @@ inline T atomic_compare_exchange( while (!Impl::lock_address_host_space((void*)dest)) ; + Kokkos::memory_fence(); T return_val = *dest; if (return_val == compare) { // Don't use the following line of code here: @@ -279,6 +289,7 @@ inline T atomic_compare_exchange( #ifndef KOKKOS_COMPILER_CLANG (void)tmp; #endif + Kokkos::memory_fence(); } Impl::unlock_address_host_space((void*)dest); return return_val; @@ -312,7 +323,6 @@ KOKKOS_INLINE_FUNCTION T atomic_compare_exchange(volatile T* const dest_v, #endif #endif -#endif // !defined ROCM_ATOMICS // dummy for non-CUDA Kokkos headers being processed by NVCC #if defined(__CUDA_ARCH__) && !defined(KOKKOS_ENABLE_CUDA) @@ -378,8 +388,8 @@ template <class T, class MemoryOrderSuccess, class MemoryOrderFailure> KOKKOS_INTERNAL_INLINE_DEVICE_IF_CUDA_ARCH bool _atomic_compare_exchange_strong( T* dest, T compare, T val, MemoryOrderSuccess, MemoryOrderFailure, typename std::enable_if< - (sizeof(T) == 1 || sizeof(T) == 2 || sizeof(T) == 4 || - sizeof(T) == 8) && + (sizeof(T) == 1 || sizeof(T) == 2 || sizeof(T) == 4 || sizeof(T) == 8 || + sizeof(T) == 16) && std::is_same< typename MemoryOrderSuccess::memory_order, typename std::remove_cv<MemoryOrderSuccess>::type>::value && @@ -398,7 +408,7 @@ KOKKOS_INTERNAL_INLINE_DEVICE_IF_CUDA_ARCH bool _atomic_compare_exchange_strong( MemoryOrderFailure order_failure, typename std::enable_if< !(sizeof(T) == 1 || sizeof(T) == 2 || sizeof(T) == 4 || - sizeof(T) == 8) && + sizeof(T) == 8 || sizeof(T) == 16) && std::is_same< typename MemoryOrderSuccess::memory_order, typename std::remove_cv<MemoryOrderSuccess>::type>::value && diff --git a/packages/kokkos/core/src/impl/Kokkos_Atomic_Compare_Exchange_Weak.hpp b/packages/kokkos/core/src/impl/Kokkos_Atomic_Compare_Exchange_Weak.hpp index e3fd1c53d..bbea3c99b 100644 --- a/packages/kokkos/core/src/impl/Kokkos_Atomic_Compare_Exchange_Weak.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_Atomic_Compare_Exchange_Weak.hpp @@ -226,7 +226,6 @@ bool atomic_compare_exchange_weak( // GCC native CAS supports int, long, unsigned int, unsigned long. // Intel native CAS support int and long with the same interface as GCC. -#if !defined(KOKKOS_ENABLE_ROCM_ATOMICS) || !defined(KOKKOS_ENABLE_HIP_ATOMICS) #if !defined(__CUDA_ARCH__) || defined(KOKKOS_IMPL_CUDA_CLANG_WORKAROUND) #if defined(KOKKOS_ENABLE_GNU_ATOMICS) || defined(KOKKOS_ENABLE_INTEL_ATOMICS) @@ -262,6 +261,12 @@ inline unsigned long atomic_compare_exchange(volatile unsigned long* const dest, return __sync_val_compare_and_swap(dest, compare, val); } +inline unsigned long long atomic_compare_exchange( + volatile unsigned long long* const dest, const unsigned long long compare, + const unsigned long long val) { + return __sync_val_compare_and_swap(dest, compare, val); +} + #endif template <typename T> @@ -343,6 +348,7 @@ inline T atomic_compare_exchange( while (!Impl::lock_address_host_space((void*)dest)) ; + Kokkos::memory_fence(); T return_val = *dest; if (return_val == compare) { // Don't use the following line of code here: @@ -359,6 +365,7 @@ inline T atomic_compare_exchange( #ifndef KOKKOS_COMPILER_CLANG (void)tmp; #endif + Kokkos::memory_fence(); } Impl::unlock_address_host_space((void*)dest); return return_val; @@ -392,7 +399,6 @@ KOKKOS_INLINE_FUNCTION T atomic_compare_exchange(volatile T* const dest_v, #endif #endif -#endif // !defined ROCM_ATOMICS template <typename T> KOKKOS_INLINE_FUNCTION bool atomic_compare_exchange_strong( diff --git a/packages/kokkos/core/src/impl/Kokkos_Atomic_Exchange.hpp b/packages/kokkos/core/src/impl/Kokkos_Atomic_Exchange.hpp index 4a9a786df..8ed130d15 100644 --- a/packages/kokkos/core/src/impl/Kokkos_Atomic_Exchange.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_Atomic_Exchange.hpp @@ -100,7 +100,7 @@ __inline__ __device__ T atomic_exchange( typename std::enable_if<sizeof(T) != sizeof(int) && sizeof(T) == sizeof(unsigned long long int), const T&>::type val) { - typedef unsigned long long int type; + using type = unsigned long long int; #if defined(KOKKOS_ENABLE_RFO_PREFETCH) _mm_prefetch((const char*)dest, _MM_HINT_ET0); @@ -133,8 +133,10 @@ atomic_exchange(volatile T* const dest, while (active != done_active) { if (!done) { if (Impl::lock_address_cuda_space((void*)dest)) { + Kokkos::memory_fence(); return_val = *dest; *dest = val; + Kokkos::memory_fence(); Impl::unlock_address_cuda_space((void*)dest); done = 1; } @@ -162,7 +164,7 @@ __inline__ __device__ void atomic_assign( typename std::enable_if<sizeof(T) != sizeof(int) && sizeof(T) == sizeof(unsigned long long int), const T&>::type val) { - typedef unsigned long long int type; + using type = unsigned long long int; // (void) __ullAtomicExch( (type*) dest , *((type*)&val) ); (void)atomicExch(((type*)dest), *((type*)&val)); } @@ -189,8 +191,8 @@ inline T atomic_exchange(volatile T* const dest, typename std::enable_if<sizeof(T) == sizeof(int) || sizeof(T) == sizeof(long), const T&>::type val) { - typedef typename Kokkos::Impl::if_c<sizeof(T) == sizeof(int), int, long>::type - type; + using type = + typename Kokkos::Impl::if_c<sizeof(T) == sizeof(int), int, long>::type; #if defined(KOKKOS_ENABLE_RFO_PREFETCH) _mm_prefetch((const char*)dest, _MM_HINT_ET0); #endif @@ -257,6 +259,7 @@ inline T atomic_exchange( const T>::type& val) { while (!Impl::lock_address_host_space((void*)dest)) ; + Kokkos::memory_fence(); T return_val = *dest; // Don't use the following line of code here: // @@ -272,6 +275,7 @@ inline T atomic_exchange( #ifndef KOKKOS_COMPILER_CLANG (void)tmp; #endif + Kokkos::memory_fence(); Impl::unlock_address_host_space((void*)dest); return return_val; } @@ -281,8 +285,8 @@ inline void atomic_assign(volatile T* const dest, typename std::enable_if<sizeof(T) == sizeof(int) || sizeof(T) == sizeof(long), const T&>::type val) { - typedef typename Kokkos::Impl::if_c<sizeof(T) == sizeof(int), int, long>::type - type; + using type = + typename Kokkos::Impl::if_c<sizeof(T) == sizeof(int), int, long>::type; #if defined(KOKKOS_ENABLE_RFO_PREFETCH) _mm_prefetch((const char*)dest, _MM_HINT_ET0); @@ -343,6 +347,7 @@ inline void atomic_assign( const T>::type& val) { while (!Impl::lock_address_host_space((void*)dest)) ; + Kokkos::memory_fence(); // This is likely an aggregate type with a defined // 'volatile T & operator = ( const T & ) volatile' // member. The volatile return value implicitly defines a @@ -350,7 +355,7 @@ inline void atomic_assign( // Suppress warning by casting return to void. //(void)( *dest = val ); *dest = val; - + Kokkos::memory_fence(); Impl::unlock_address_host_space((void*)dest); } //---------------------------------------------------------------------------- diff --git a/packages/kokkos/core/src/impl/Kokkos_Atomic_Fetch_Add.hpp b/packages/kokkos/core/src/impl/Kokkos_Atomic_Fetch_Add.hpp index 0a6900f84..5c3f825ed 100644 --- a/packages/kokkos/core/src/impl/Kokkos_Atomic_Fetch_Add.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_Atomic_Fetch_Add.hpp @@ -160,8 +160,10 @@ atomic_fetch_add(volatile T* const dest, if (!done) { bool locked = Impl::lock_address_cuda_space((void*)dest); if (locked) { + Kokkos::memory_fence(); return_val = *dest; *dest = return_val + val; + Kokkos::memory_fence(); Impl::unlock_address_cuda_space((void*)dest); done = 1; } @@ -178,7 +180,6 @@ atomic_fetch_add(volatile T* const dest, #endif #endif //---------------------------------------------------------------------------- -#if !defined(KOKKOS_ENABLE_ROCM_ATOMICS) || !defined(KOKKOS_ENABLE_HIP_ATOMICS) #if !defined(__CUDA_ARCH__) || defined(KOKKOS_IMPL_CUDA_CLANG_WORKAROUND) #if defined(KOKKOS_ENABLE_GNU_ATOMICS) || defined(KOKKOS_ENABLE_INTEL_ATOMICS) @@ -233,6 +234,15 @@ inline unsigned long int atomic_fetch_add( return __sync_fetch_and_add(dest, val); } +inline unsigned long long int atomic_fetch_add( + volatile unsigned long long int* const dest, + const unsigned long long int val) { +#if defined(KOKKOS_ENABLE_RFO_PREFETCH) + _mm_prefetch((const char*)dest, _MM_HINT_ET0); +#endif + return __sync_fetch_and_add(dest, val); +} + #endif template <typename T> @@ -329,6 +339,7 @@ inline T atomic_fetch_add( const T>::type& val) { while (!Impl::lock_address_host_space((void*)dest)) ; + Kokkos::memory_fence(); T return_val = *dest; // Don't use the following line of code here: @@ -343,6 +354,7 @@ inline T atomic_fetch_add( *dest = return_val + val; const T tmp = *dest; (void)tmp; + Kokkos::memory_fence(); Impl::unlock_address_host_space((void*)dest); return return_val; @@ -375,7 +387,6 @@ T atomic_fetch_add(volatile T* const dest_v, #endif #endif -#endif // !defined ROCM_ATOMICS //---------------------------------------------------------------------------- // dummy for non-CUDA Kokkos headers being processed by NVCC diff --git a/packages/kokkos/core/src/impl/Kokkos_Atomic_Fetch_And.hpp b/packages/kokkos/core/src/impl/Kokkos_Atomic_Fetch_And.hpp index 1ad54ed3f..50bd2b0fa 100644 --- a/packages/kokkos/core/src/impl/Kokkos_Atomic_Fetch_And.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_Atomic_Fetch_And.hpp @@ -78,6 +78,23 @@ __inline__ __device__ unsigned long long int atomic_fetch_and( #endif #endif #endif + +// 08/05/20 Overload to work around https://bugs.llvm.org/show_bug.cgi?id=46922 + +#if (defined(KOKKOS_ENABLE_CUDA) && \ + (defined(__CUDA_ARCH__) || \ + defined(KOKKOS_IMPL_CUDA_CLANG_WORKAROUND))) || \ + (defined(KOKKOS_ENABLE_HIP)) +__inline__ __device__ unsigned long atomic_fetch_and( + volatile unsigned long* const dest, const unsigned long val) { + return atomic_fetch_and<unsigned long>(dest, val); +} +__inline__ __device__ long atomic_fetch_and(volatile long* const dest, + long val) { + return atomic_fetch_and<long>(dest, val); +} +#endif + //---------------------------------------------------------------------------- #if !defined(__CUDA_ARCH__) || defined(KOKKOS_IMPL_CUDA_CLANG_WORKAROUND) #if defined(KOKKOS_ENABLE_GNU_ATOMICS) || defined(KOKKOS_ENABLE_INTEL_ATOMICS) @@ -115,6 +132,15 @@ inline unsigned long int atomic_fetch_and( return __sync_fetch_and_and(dest, val); } +inline unsigned long long int atomic_fetch_and( + volatile unsigned long long int* const dest, + const unsigned long long int val) { +#if defined(KOKKOS_ENABLE_RFO_PREFETCH) + _mm_prefetch((const char*)dest, _MM_HINT_ET0); +#endif + return __sync_fetch_and_and(dest, val); +} + #endif //---------------------------------------------------------------------------- diff --git a/packages/kokkos/core/src/impl/Kokkos_Atomic_Fetch_Or.hpp b/packages/kokkos/core/src/impl/Kokkos_Atomic_Fetch_Or.hpp index dc567265a..7a04a8c7c 100644 --- a/packages/kokkos/core/src/impl/Kokkos_Atomic_Fetch_Or.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_Atomic_Fetch_Or.hpp @@ -78,6 +78,24 @@ __inline__ __device__ unsigned long long int atomic_fetch_or( #endif #endif #endif + +// 08/05/20 Overload to work around https://bugs.llvm.org/show_bug.cgi?id=46922 + +#if (defined(KOKKOS_ENABLE_CUDA) && \ + (defined(__CUDA_ARCH__) || \ + defined(KOKKOS_IMPL_CUDA_CLANG_WORKAROUND))) || \ + (defined(KOKKOS_ENABLE_HIP)) +__inline__ __device__ unsigned long atomic_fetch_or( + volatile unsigned long* const dest, const unsigned long val) { + return atomic_fetch_or<unsigned long>(dest, val); +} + +__inline__ __device__ long atomic_fetch_or(volatile long* const dest, + long val) { + return atomic_fetch_or<long>(dest, val); +} +#endif + //---------------------------------------------------------------------------- #if !defined(__CUDA_ARCH__) || defined(KOKKOS_IMPL_CUDA_CLANG_WORKAROUND) #if defined(KOKKOS_ENABLE_GNU_ATOMICS) || defined(KOKKOS_ENABLE_INTEL_ATOMICS) @@ -115,6 +133,15 @@ inline unsigned long int atomic_fetch_or(volatile unsigned long int* const dest, return __sync_fetch_and_or(dest, val); } +inline unsigned long long int atomic_fetch_or( + volatile unsigned long long int* const dest, + const unsigned long long int val) { +#if defined(KOKKOS_ENABLE_RFO_PREFETCH) + _mm_prefetch((const char*)dest, _MM_HINT_ET0); +#endif + return __sync_fetch_and_or(dest, val); +} + #endif //---------------------------------------------------------------------------- diff --git a/packages/kokkos/core/src/impl/Kokkos_Atomic_Fetch_Sub.hpp b/packages/kokkos/core/src/impl/Kokkos_Atomic_Fetch_Sub.hpp index c14749f1b..c3446ae6a 100644 --- a/packages/kokkos/core/src/impl/Kokkos_Atomic_Fetch_Sub.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_Atomic_Fetch_Sub.hpp @@ -154,8 +154,10 @@ atomic_fetch_sub(volatile T* const dest, while (active != done_active) { if (!done) { if (Impl::lock_address_cuda_space((void*)dest)) { + Kokkos::memory_fence(); return_val = *dest; *dest = return_val - val; + Kokkos::memory_fence(); Impl::unlock_address_cuda_space((void*)dest); done = 1; } @@ -171,7 +173,6 @@ atomic_fetch_sub(volatile T* const dest, #endif #endif //---------------------------------------------------------------------------- -#if !defined(KOKKOS_ENABLE_ROCM_ATOMICS) || !defined(KOKKOS_ENABLE_HIP_ATOMICS) #if !defined(__CUDA_ARCH__) || defined(KOKKOS_IMPL_CUDA_CLANG_WORKAROUND) #if defined(KOKKOS_ENABLE_GNU_ATOMICS) || defined(KOKKOS_ENABLE_INTEL_ATOMICS) @@ -208,6 +209,15 @@ inline unsigned long int atomic_fetch_sub( return __sync_fetch_and_sub(dest, val); } +inline unsigned long long int atomic_fetch_sub( + volatile unsigned long long int* const dest, + const unsigned long long int val) { +#if defined(KOKKOS_ENABLE_RFO_PREFETCH) + _mm_prefetch((const char*)dest, _MM_HINT_ET0); +#endif + return __sync_fetch_and_sub(dest, val); +} + #endif template <typename T> @@ -274,8 +284,10 @@ inline T atomic_fetch_sub( while (!Impl::lock_address_host_space((void*)dest)) ; + Kokkos::memory_fence(); T return_val = *dest; *dest = return_val - val; + Kokkos::memory_fence(); Impl::unlock_address_host_space((void*)dest); return return_val; } @@ -307,7 +319,6 @@ T atomic_fetch_sub(volatile T* const dest_v, const T val) { #endif #endif -#endif // !defined ROCM_ATOMICS // dummy for non-CUDA Kokkos headers being processed by NVCC #if defined(__CUDA_ARCH__) && !defined(KOKKOS_ENABLE_CUDA) diff --git a/packages/kokkos/core/src/impl/Kokkos_Atomic_Generic.hpp b/packages/kokkos/core/src/impl/Kokkos_Atomic_Generic.hpp index 49ee86b2c..6b9e4a4a2 100644 --- a/packages/kokkos/core/src/impl/Kokkos_Atomic_Generic.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_Atomic_Generic.hpp @@ -56,12 +56,44 @@ namespace Kokkos { namespace Impl { +template <class Op, class Scalar1, class Scalar2, class Enable = bool> +struct _check_early_exit_impl { + KOKKOS_FORCEINLINE_FUNCTION + static constexpr bool check(Op const&, Scalar1 const&, + Scalar2 const&) noexcept { + return false; + } +}; + +template <class Op, class Scalar1, class Scalar2> +struct _check_early_exit_impl< + Op, Scalar1, Scalar2, + decltype(std::declval<Op const&>().check_early_exit( + std::declval<Scalar1 const&>(), std::declval<Scalar2 const&>()))> { + KOKKOS_FORCEINLINE_FUNCTION + static constexpr bool check(Op const& op, Scalar1 const& v1, + Scalar2 const& v2) { + return op.check_early_exit(v1, v2); + } +}; + +template <class Op, class Scalar1, class Scalar2> +KOKKOS_FORCEINLINE_FUNCTION constexpr bool check_early_exit( + Op const& op, Scalar1 const& v1, Scalar2 const& v2) noexcept { + return _check_early_exit_impl<Op, Scalar1, Scalar2>::check(op, v1, v2); +} + template <class Scalar1, class Scalar2> struct MaxOper { KOKKOS_FORCEINLINE_FUNCTION static Scalar1 apply(const Scalar1& val1, const Scalar2& val2) { return (val1 > val2 ? val1 : val2); } + KOKKOS_FORCEINLINE_FUNCTION + static constexpr bool check_early_exit(Scalar1 const& val1, + Scalar2 const& val2) noexcept { + return (val1 > val2); + } }; template <class Scalar1, class Scalar2> @@ -70,6 +102,11 @@ struct MinOper { static Scalar1 apply(const Scalar1& val1, const Scalar2& val2) { return (val1 < val2 ? val1 : val2); } + KOKKOS_FORCEINLINE_FUNCTION + static constexpr bool check_early_exit(Scalar1 const& val1, + Scalar2 const& val2) noexcept { + return (val1 < val2); + } }; template <class Scalar1, class Scalar2> @@ -167,6 +204,7 @@ KOKKOS_INLINE_FUNCTION T atomic_fetch_oper( oldval.t = *dest; do { + if (check_early_exit(op, oldval.t, val)) return oldval.t; assume.i = oldval.i; newval.t = op.apply(assume.t, val); oldval.i = Kokkos::atomic_compare_exchange((unsigned long long int*)dest, @@ -191,6 +229,7 @@ KOKKOS_INLINE_FUNCTION T atomic_oper_fetch( oldval.t = *dest; do { + if (check_early_exit(op, oldval.t, val)) return oldval.t; assume.i = oldval.i; newval.t = op.apply(assume.t, val); oldval.i = Kokkos::atomic_compare_exchange((unsigned long long int*)dest, @@ -213,6 +252,7 @@ KOKKOS_INLINE_FUNCTION T atomic_fetch_oper( oldval.t = *dest; do { + if (check_early_exit(op, oldval.t, val)) return oldval.t; assume.i = oldval.i; newval.t = op.apply(assume.t, val); oldval.i = Kokkos::atomic_compare_exchange((int*)dest, assume.i, newval.i); @@ -234,6 +274,7 @@ KOKKOS_INLINE_FUNCTION T atomic_oper_fetch( oldval.t = *dest; do { + if (check_early_exit(op, oldval.t, val)) return oldval.t; assume.i = oldval.i; newval.t = op.apply(assume.t, val); oldval.i = Kokkos::atomic_compare_exchange((int*)dest, assume.i, newval.i); @@ -250,8 +291,10 @@ KOKKOS_INLINE_FUNCTION T atomic_fetch_oper( #ifdef KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST while (!Impl::lock_address_host_space((void*)dest)) ; + Kokkos::memory_fence(); T return_val = *dest; *dest = op.apply(return_val, val); + Kokkos::memory_fence(); Impl::unlock_address_host_space((void*)dest); return return_val; #elif defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_CUDA) @@ -268,8 +311,10 @@ KOKKOS_INLINE_FUNCTION T atomic_fetch_oper( while (active != done_active) { if (!done) { if (Impl::lock_address_cuda_space((void*)dest)) { + Kokkos::memory_fence(); return_val = *dest; *dest = op.apply(return_val, val); + Kokkos::memory_fence(); Impl::unlock_address_cuda_space((void*)dest); done = 1; } @@ -282,25 +327,29 @@ KOKKOS_INLINE_FUNCTION T atomic_fetch_oper( } return return_val; #elif defined(__HIP_DEVICE_COMPILE__) - // FIXME_HIP - Kokkos::abort("atomic_fetch_oper not implemented for large types."); T return_val = *dest; int done = 0; unsigned int active = __ballot(1); unsigned int done_active = 0; while (active != done_active) { if (!done) { - // if (Impl::lock_address_hip_space((void*)dest)) - { + if (Impl::lock_address_hip_space((void*)dest)) { return_val = *dest; *dest = op.apply(return_val, val); - // Impl::unlock_address_hip_space((void*)dest); + Impl::unlock_address_hip_space((void*)dest); done = 1; } } done_active = __ballot(done); } return return_val; +#elif defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_SYCL) + // FIXME_SYCL + std::abort(); + (void)op; + (void)dest; + (void)val; + return 0; #endif } @@ -318,8 +367,10 @@ atomic_oper_fetch(const Oper& op, volatile T* const dest, #ifdef KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST while (!Impl::lock_address_host_space((void*)dest)) ; + Kokkos::memory_fence(); T return_val = op.apply(*dest, val); *dest = return_val; + Kokkos::memory_fence(); Impl::unlock_address_host_space((void*)dest); return return_val; #elif defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_CUDA) @@ -336,8 +387,10 @@ atomic_oper_fetch(const Oper& op, volatile T* const dest, while (active != done_active) { if (!done) { if (Impl::lock_address_cuda_space((void*)dest)) { + Kokkos::memory_fence(); return_val = op.apply(*dest, val); *dest = return_val; + Kokkos::memory_fence(); Impl::unlock_address_cuda_space((void*)dest); done = 1; } @@ -350,25 +403,29 @@ atomic_oper_fetch(const Oper& op, volatile T* const dest, } return return_val; #elif defined(__HIP_DEVICE_COMPILE__) - // FIXME_HIP - Kokkos::abort("atomic_oper_fetch not implemented for large types."); T return_val; int done = 0; unsigned int active = __ballot(1); unsigned int done_active = 0; while (active != done_active) { if (!done) { - // if (Impl::lock_address_hip_space((void*)dest)) - { + if (Impl::lock_address_hip_space((void*)dest)) { return_val = op.apply(*dest, val); *dest = return_val; - // Impl::unlock_address_hip_space((void*)dest); + Impl::unlock_address_hip_space((void*)dest); done = 1; } } done_active = __ballot(done); } return return_val; +#elif defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_SYCL) + // FIXME_SYCL + std::abort(); + (void)op; + (void)dest; + (void)val; + return 0; #endif } diff --git a/packages/kokkos/core/src/impl/Kokkos_Atomic_Generic_Secondary.hpp b/packages/kokkos/core/src/impl/Kokkos_Atomic_Generic_Secondary.hpp index 9d0172b65..7ab635843 100644 --- a/packages/kokkos/core/src/impl/Kokkos_Atomic_Generic_Secondary.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_Atomic_Generic_Secondary.hpp @@ -72,5 +72,15 @@ KOKKOS_INLINE_FUNCTION void atomic_sub(volatile T* const dest, const T val) { (void)atomic_fetch_sub(dest, val); } +template <typename T> +KOKKOS_INLINE_FUNCTION void atomic_mul(volatile T* const dest, const T val) { + (void)atomic_fetch_mul(dest, val); +} + +template <typename T> +KOKKOS_INLINE_FUNCTION void atomic_div(volatile T* const dest, const T val) { + (void)atomic_fetch_div(dest, val); +} + } // namespace Kokkos #endif diff --git a/packages/kokkos/core/src/impl/Kokkos_Atomic_View.hpp b/packages/kokkos/core/src/impl/Kokkos_Atomic_View.hpp index c3719bed2..3916a1b03 100644 --- a/packages/kokkos/core/src/impl/Kokkos_Atomic_View.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_Atomic_View.hpp @@ -57,9 +57,9 @@ struct AtomicViewConstTag {}; template <class ViewTraits> class AtomicDataElement { public: - typedef typename ViewTraits::value_type value_type; - typedef typename ViewTraits::const_value_type const_value_type; - typedef typename ViewTraits::non_const_value_type non_const_value_type; + using value_type = typename ViewTraits::value_type; + using const_value_type = typename ViewTraits::const_value_type; + using non_const_value_type = typename ViewTraits::non_const_value_type; volatile value_type* const ptr; KOKKOS_INLINE_FUNCTION @@ -367,12 +367,12 @@ struct Kokkos_Atomic_is_only_allowed_with_32bit_and_64bit_scalars; template <> struct Kokkos_Atomic_is_only_allowed_with_32bit_and_64bit_scalars<4> { - typedef int type; + using type = int; }; template <> struct Kokkos_Atomic_is_only_allowed_with_32bit_and_64bit_scalars<8> { - typedef int64_t type; + using type = int64_t; }; } // namespace Impl diff --git a/packages/kokkos/core/src/impl/Kokkos_Atomic_Windows.hpp b/packages/kokkos/core/src/impl/Kokkos_Atomic_Windows.hpp index c5d3466c6..3f2e8914e 100644 --- a/packages/kokkos/core/src/impl/Kokkos_Atomic_Windows.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_Atomic_Windows.hpp @@ -67,14 +67,15 @@ _declspec(align(16)) return (lower != a.lower) || upper != a.upper; } } -#ifdef __GNUC__ +#if defined(__GNUC__) || defined(__clang__) __attribute__((aligned(16))) #endif ; } // namespace Impl +#if !defined(__CUDA_ARCH__) || defined(__clang__) template <typename T> -KOKKOS_INLINE_FUNCTION T atomic_compare_exchange( +inline T atomic_compare_exchange( volatile T* const dest, const T& compare, typename std::enable_if<sizeof(T) == sizeof(CHAR), const T&>::type val) { union U { @@ -89,7 +90,7 @@ KOKKOS_INLINE_FUNCTION T atomic_compare_exchange( } template <typename T> -KOKKOS_INLINE_FUNCTION T atomic_compare_exchange( +inline T atomic_compare_exchange( volatile T* const dest, const T& compare, typename std::enable_if<sizeof(T) == sizeof(SHORT), const T&>::type val) { union U { @@ -104,7 +105,7 @@ KOKKOS_INLINE_FUNCTION T atomic_compare_exchange( } template <typename T> -KOKKOS_INLINE_FUNCTION T atomic_compare_exchange( +inline T atomic_compare_exchange( volatile T* const dest, const T& compare, typename std::enable_if<sizeof(T) == sizeof(LONG), const T&>::type val) { union U { @@ -119,7 +120,7 @@ KOKKOS_INLINE_FUNCTION T atomic_compare_exchange( } template <typename T> -KOKKOS_INLINE_FUNCTION T atomic_compare_exchange( +inline T atomic_compare_exchange( volatile T* const dest, const T& compare, typename std::enable_if<sizeof(T) == sizeof(LONGLONG), const T&>::type val) { @@ -135,7 +136,7 @@ KOKKOS_INLINE_FUNCTION T atomic_compare_exchange( } template <typename T> -KOKKOS_INLINE_FUNCTION T atomic_compare_exchange( +inline T atomic_compare_exchange( volatile T* const dest, const T& compare, typename std::enable_if<sizeof(T) == sizeof(Impl::cas128_t), const T&>::type val) { @@ -153,11 +154,11 @@ KOKKOS_INLINE_FUNCTION T atomic_compare_exchange( } template <typename T> -KOKKOS_INLINE_FUNCTION T atomic_compare_exchange_strong(volatile T* const dest, - const T& compare, - const T& val) { +inline T atomic_compare_exchange_strong(volatile T* const dest, + const T& compare, const T& val) { return atomic_compare_exchange(dest, compare, val); } +#endif } // namespace Kokkos #endif diff --git a/packages/kokkos/core/src/impl/Kokkos_BitOps.hpp b/packages/kokkos/core/src/impl/Kokkos_BitOps.hpp index 7d2cdf0d4..eb0f07557 100644 --- a/packages/kokkos/core/src/impl/Kokkos_BitOps.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_BitOps.hpp @@ -53,23 +53,15 @@ #include <immintrin.h> #endif -#if defined(__HCC_ACCELERATOR__) -#include <hc.hpp> -#endif - namespace Kokkos { KOKKOS_FORCEINLINE_FUNCTION int log2(unsigned i) { enum : int { shift = sizeof(unsigned) * CHAR_BIT - 1 }; -#if defined(__CUDA_ARCH__) +#if defined(__CUDA_ARCH__) || defined(__HIP_DEVICE_COMPILE__) return shift - __clz(i); -#elif defined(__HCC_ACCELERATOR__) - return (int)hc::__firstbit_u32_u32(i); #elif defined(KOKKOS_COMPILER_INTEL) return _bit_scan_reverse(i); -#elif defined(KOKKOS_COMPILER_IBM) - return shift - __cntlz4(i); #elif defined(KOKKOS_COMPILER_CRAYC) return i ? shift - _leadz32(i) : 0; #elif defined(__GNUC__) || defined(__GNUG__) @@ -94,14 +86,10 @@ KOKKOS_FORCEINLINE_FUNCTION int bit_first_zero(unsigned i) noexcept { enum : unsigned { full = ~0u }; -#if defined(__CUDA_ARCH__) +#if defined(__CUDA_ARCH__) || defined(__HIP_DEVICE_COMPILE__) return full != i ? __ffs(~i) - 1 : -1; -#elif defined(__HCC_ACCELERATOR__) - return full != i ? (int)hc::__firstbit_u32_u32(~i) : -1; #elif defined(KOKKOS_COMPILER_INTEL) return full != i ? _bit_scan_forward(~i) : -1; -#elif defined(KOKKOS_COMPILER_IBM) - return full != i ? __cnttz4(~i) : -1; #elif defined(KOKKOS_COMPILER_CRAYC) return full != i ? _popcnt(i ^ (i + 1)) - 1 : -1; #elif defined(KOKKOS_COMPILER_GNU) || defined(__GNUC__) || defined(__GNUG__) @@ -118,14 +106,10 @@ int bit_first_zero(unsigned i) noexcept { KOKKOS_FORCEINLINE_FUNCTION int bit_scan_forward(unsigned i) { -#if defined(__CUDA_ARCH__) +#if defined(__CUDA_ARCH__) || defined(__HIP_DEVICE_COMPILE__) return __ffs(i) - 1; -#elif defined(__HCC_ACCELERATOR__) - return (int)hc::__firstbit_u32_u32(i); #elif defined(KOKKOS_COMPILER_INTEL) return _bit_scan_forward(i); -#elif defined(KOKKOS_COMPILER_IBM) - return __cnttz4(i); #elif defined(KOKKOS_COMPILER_CRAYC) return i ? _popcnt(~i & (i - 1)) : -1; #elif defined(KOKKOS_COMPILER_GNU) || defined(__GNUC__) || defined(__GNUG__) @@ -143,14 +127,10 @@ int bit_scan_forward(unsigned i) { /// Count the number of bits set. KOKKOS_FORCEINLINE_FUNCTION int bit_count(unsigned i) { -#if defined(__CUDA_ARCH__) +#if defined(__CUDA_ARCH__) || defined(__HIP_DEVICE_COMPILE__) return __popc(i); -#elif defined(__HCC_ACCELERATOR__) - return (int)hc::__popcount_u32_b32(i); #elif defined(__INTEL_COMPILER) return _popcnt32(i); -#elif defined(KOKKOS_COMPILER_IBM) - return __popcnt4(i); #elif defined(KOKKOS_COMPILER_CRAYC) return _popcnt(i); #elif defined(__GNUC__) || defined(__GNUG__) diff --git a/packages/kokkos/core/src/impl/Kokkos_CPUDiscovery.cpp b/packages/kokkos/core/src/impl/Kokkos_CPUDiscovery.cpp index 3b003f84e..3251cb0f5 100644 --- a/packages/kokkos/core/src/impl/Kokkos_CPUDiscovery.cpp +++ b/packages/kokkos/core/src/impl/Kokkos_CPUDiscovery.cpp @@ -45,13 +45,17 @@ #ifdef _WIN32 #define WIN32_LEAN_AND_MEAN #include <windows.h> -#elif !defined(__APPLE__) +#elif defined(__APPLE__) +#include <sys/types.h> +#include <sys/sysctl.h> +#else #include <unistd.h> #endif #include <cstdio> #include <cstdlib> #include <cstring> #include <cerrno> +#include <string> namespace Kokkos { namespace Impl { @@ -64,6 +68,16 @@ int processors_per_node() { return -1; } return num_procs; +#elif defined(__APPLE__) + int ncpu; + int activecpu; + size_t size = sizeof(int); + sysctlbyname("hw.ncpu", &ncpu, &size, nullptr, 0); + sysctlbyname("hw.activecpu", &activecpu, &size, nullptr, 0); + if (ncpu < 1 || activecpu < 1) + return -1; + else + return activecpu; #else return -1; #endif @@ -73,15 +87,15 @@ int mpi_ranks_per_node() { char *str; int ppn = 1; // if ((str = getenv("SLURM_TASKS_PER_NODE"))) { - // ppn = atoi(str); + // ppn = std::stoi(str); // if(ppn<=0) ppn = 1; //} if ((str = getenv("MV2_COMM_WORLD_LOCAL_SIZE"))) { - ppn = atoi(str); + ppn = std::stoi(str); if (ppn <= 0) ppn = 1; } if ((str = getenv("OMPI_COMM_WORLD_LOCAL_SIZE"))) { - ppn = atoi(str); + ppn = std::stoi(str); if (ppn <= 0) ppn = 1; } return ppn; @@ -91,13 +105,13 @@ int mpi_local_rank_on_node() { char *str; int local_rank = 0; // if ((str = getenv("SLURM_LOCALID"))) { - // local_rank = atoi(str); + // local_rank = std::stoi(str); //} if ((str = getenv("MV2_COMM_WORLD_LOCAL_RANK"))) { - local_rank = atoi(str); + local_rank = std::stoi(str); } if ((str = getenv("OMPI_COMM_WORLD_LOCAL_RANK"))) { - local_rank = atoi(str); + local_rank = std::stoi(str); } return local_rank; } diff --git a/packages/kokkos/core/src/impl/Kokkos_ClockTic.hpp b/packages/kokkos/core/src/impl/Kokkos_ClockTic.hpp index 386b5918d..8c2d53ba1 100644 --- a/packages/kokkos/core/src/impl/Kokkos_ClockTic.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_ClockTic.hpp @@ -48,6 +48,9 @@ #include <Kokkos_Macros.hpp> #include <stdint.h> #include <chrono> +#ifdef KOKKOS_ENABLE_OPENMPTARGET +#include <omp.h> +#endif namespace Kokkos { namespace Impl { @@ -64,21 +67,17 @@ namespace Impl { * concurrent threads will have high likelihood of * having different index-seed values. */ + KOKKOS_FORCEINLINE_FUNCTION uint64_t clock_tic(void) noexcept { -#if defined(__CUDA_ARCH__) +#if defined(__CUDA_ARCH__) || defined(__HIP_DEVICE_COMPILE__) // Return value of 64-bit hi-res clock register. return clock64(); -#elif defined(__HCC_ACCELERATOR__) - // Get clock register - return hc::__clock_u64(); #elif defined(KOKKOS_ENABLE_OPENMPTARGET) - return (uint64_t)std::chrono::high_resolution_clock::now() - .time_since_epoch() - .count(); + return uint64_t(omp_get_wtime() * 1.e9); #elif defined(__i386__) || defined(__x86_64) // Return value of 64-bit hi-res clock register. diff --git a/packages/kokkos/core/src/impl/Kokkos_Combined_Reducer.hpp b/packages/kokkos/core/src/impl/Kokkos_Combined_Reducer.hpp new file mode 100644 index 000000000..61c137590 --- /dev/null +++ b/packages/kokkos/core/src/impl/Kokkos_Combined_Reducer.hpp @@ -0,0 +1,704 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_COMBINED_REDUCER_HPP +#define KOKKOS_COMBINED_REDUCER_HPP + +#include <Kokkos_Macros.hpp> +#include <Kokkos_Core_fwd.hpp> + +#include <Kokkos_Parallel_Reduce.hpp> +#include <Kokkos_ExecPolicy.hpp> +#include <Kokkos_AnonymousSpace.hpp> +#include <impl/Kokkos_Utilities.hpp> // comma operator fold emulation + +namespace Kokkos { +namespace Impl { + +//============================================================================== +// <editor-fold desc="CombinedReducer reducer and value storage helpers"> {{{1 + +// Note: the index is only to avoid repeating the same base class multiple times +template <size_t /*Idx*/, class ValueType> +struct CombinedReducerValueItemImpl { + public: + using value_type = ValueType; + + private: + value_type m_value; + + public: + KOKKOS_DEFAULTED_FUNCTION constexpr CombinedReducerValueItemImpl() = default; + KOKKOS_DEFAULTED_FUNCTION constexpr CombinedReducerValueItemImpl( + CombinedReducerValueItemImpl const&) = default; + KOKKOS_DEFAULTED_FUNCTION constexpr CombinedReducerValueItemImpl( + CombinedReducerValueItemImpl&&) = default; + KOKKOS_DEFAULTED_FUNCTION KOKKOS_CONSTEXPR_14 CombinedReducerValueItemImpl& + operator=(CombinedReducerValueItemImpl const&) = default; + KOKKOS_DEFAULTED_FUNCTION KOKKOS_CONSTEXPR_14 CombinedReducerValueItemImpl& + operator=(CombinedReducerValueItemImpl&&) = default; + KOKKOS_DEFAULTED_FUNCTION + ~CombinedReducerValueItemImpl() = default; + explicit KOKKOS_FUNCTION CombinedReducerValueItemImpl(value_type arg_value) + : m_value(std::move(arg_value)) {} + + KOKKOS_FORCEINLINE_FUNCTION + KOKKOS_CONSTEXPR_14 value_type& ref() & noexcept { return m_value; } + KOKKOS_FORCEINLINE_FUNCTION + constexpr value_type const& ref() const& noexcept { return m_value; } + KOKKOS_FORCEINLINE_FUNCTION + value_type volatile& ref() volatile& noexcept { return m_value; } + KOKKOS_FORCEINLINE_FUNCTION + value_type const volatile& ref() const volatile& noexcept { return m_value; } +}; + +//============================================================================== + +template <class IdxSeq, class... ValueTypes> +struct CombinedReducerValueImpl; + +template <size_t... Idxs, class... ValueTypes> +struct CombinedReducerValueImpl<integer_sequence<size_t, Idxs...>, + ValueTypes...> + : CombinedReducerValueItemImpl<Idxs, ValueTypes>... { + public: + KOKKOS_DEFAULTED_FUNCTION + constexpr CombinedReducerValueImpl() = default; + KOKKOS_DEFAULTED_FUNCTION + constexpr CombinedReducerValueImpl(CombinedReducerValueImpl const&) = default; + KOKKOS_DEFAULTED_FUNCTION + constexpr CombinedReducerValueImpl(CombinedReducerValueImpl&&) = default; + KOKKOS_DEFAULTED_FUNCTION + KOKKOS_CONSTEXPR_14 CombinedReducerValueImpl& operator=( + CombinedReducerValueImpl const&) = default; + KOKKOS_DEFAULTED_FUNCTION + KOKKOS_CONSTEXPR_14 CombinedReducerValueImpl& operator=( + CombinedReducerValueImpl&&) = default; + KOKKOS_DEFAULTED_FUNCTION + ~CombinedReducerValueImpl() = default; + + KOKKOS_FUNCTION + explicit CombinedReducerValueImpl(ValueTypes... arg_values) + : CombinedReducerValueItemImpl<Idxs, ValueTypes>( + std::move(arg_values))... {} + + template <size_t Idx, class ValueType> + KOKKOS_INLINE_FUNCTION ValueType& get() & noexcept { + return this->CombinedReducerValueItemImpl<Idx, ValueType>::ref(); + } + template <size_t Idx, class ValueType> + KOKKOS_INLINE_FUNCTION ValueType const& get() const& noexcept { + return this->CombinedReducerValueItemImpl<Idx, ValueType>::ref(); + } + template <size_t Idx, class ValueType> + KOKKOS_INLINE_FUNCTION ValueType volatile& get() volatile& noexcept { + return this->CombinedReducerValueItemImpl<Idx, ValueType>::ref(); + } + template <size_t Idx, class ValueType> + KOKKOS_INLINE_FUNCTION ValueType const volatile& get() const + volatile& noexcept { + return this->CombinedReducerValueItemImpl<Idx, ValueType>::ref(); + } +}; + +//============================================================================== + +// TODO Empty base optmization? +template <size_t /*Idx*/, class Reducer> +// requires Kokkos::is_reducer<Reducer> +struct CombinedReducerStorageImpl { + public: + using value_type = typename Reducer::value_type; + + private: + Reducer m_reducer; + + public: + KOKKOS_INLINE_FUNCTION + explicit constexpr CombinedReducerStorageImpl(Reducer arg_reducer) + : m_reducer(std::move(arg_reducer)) {} + + // Leading underscores to make it clear that this class is not intended to + // model Reducer + + KOKKOS_INLINE_FUNCTION + KOKKOS_CONSTEXPR_14 _fold_comma_emulation_return + _init(value_type& val) const { + m_reducer.init(val); + return _fold_comma_emulation_return{}; + } + + KOKKOS_INLINE_FUNCTION KOKKOS_CONSTEXPR_14 _fold_comma_emulation_return + _join(value_type& dest, value_type const& src) const { + m_reducer.join(dest, src); + return _fold_comma_emulation_return{}; + } + + KOKKOS_INLINE_FUNCTION KOKKOS_CONSTEXPR_14 _fold_comma_emulation_return + _join(value_type volatile& dest, value_type const volatile& src) const { + m_reducer.join(dest, src); + return _fold_comma_emulation_return{}; + } +}; + +// </editor-fold> end CombinedReducerStorage }}}1 +//============================================================================== + +//============================================================================== +// <editor-fold desc="CombinedReducer"> {{{1 + +struct _construct_combined_reducer_from_args_tag {}; + +template <class T> +KOKKOS_INLINE_FUNCTION auto _get_value_from_combined_reducer_ctor_arg( + T&& arg) noexcept -> + typename std::enable_if< + !is_view<typename std::decay<T>::type>::value && + !is_reducer<typename std::decay<T>::type>::value, + typename std::decay<T>::type>::type { + return arg; +} + +template <class T> +KOKKOS_INLINE_FUNCTION auto _get_value_from_combined_reducer_ctor_arg( + T&& arg) noexcept -> + typename std::enable_if<is_view<typename std::decay<T>::type>::value, + typename std::decay<T>::type>::type::value_type { + return arg(); +} + +template <class T> +KOKKOS_INLINE_FUNCTION auto _get_value_from_combined_reducer_ctor_arg( + T&& arg) noexcept -> + typename std::enable_if<is_reducer<typename std::decay<T>::type>::value, + typename std::decay<T>::type>::type::value_type { + return arg.reference(); +} + +template <class IdxSeq, class Space, class...> +struct CombinedReducerImpl; + +template <size_t... Idxs, class Space, class... Reducers> +struct CombinedReducerImpl<integer_sequence<size_t, Idxs...>, Space, + Reducers...> + : private CombinedReducerStorageImpl<Idxs, Reducers>... { + public: + using reducer = CombinedReducerImpl<integer_sequence<size_t, Idxs...>, Space, + Reducers...>; + using value_type = CombinedReducerValueImpl<integer_sequence<size_t, Idxs...>, + typename Reducers::value_type...>; + using result_view_type = + Kokkos::View<value_type, Space, Kokkos::MemoryUnmanaged>; + + private: + result_view_type m_value_view; + + public: + KOKKOS_DEFAULTED_FUNCTION constexpr CombinedReducerImpl() = default; + KOKKOS_DEFAULTED_FUNCTION constexpr CombinedReducerImpl( + CombinedReducerImpl const&) = default; + KOKKOS_DEFAULTED_FUNCTION constexpr CombinedReducerImpl( + CombinedReducerImpl&&) = default; + KOKKOS_DEFAULTED_FUNCTION KOKKOS_CONSTEXPR_14 CombinedReducerImpl& operator=( + CombinedReducerImpl const&) = default; + KOKKOS_DEFAULTED_FUNCTION KOKKOS_CONSTEXPR_14 CombinedReducerImpl& operator=( + CombinedReducerImpl&&) = default; + + KOKKOS_DEFAULTED_FUNCTION ~CombinedReducerImpl() = default; + + template <class... ReducersDeduced> + KOKKOS_FUNCTION constexpr explicit CombinedReducerImpl( + value_type& value, ReducersDeduced&&... reducers) noexcept + : CombinedReducerStorageImpl<Idxs, Reducers>((ReducersDeduced &&) + reducers)..., + m_value_view(&value) {} + + KOKKOS_FUNCTION KOKKOS_CONSTEXPR_14 void join(value_type& dest, + value_type const& src) const + noexcept { + emulate_fold_comma_operator( + this->CombinedReducerStorageImpl<Idxs, Reducers>::_join( + dest.template get<Idxs, typename Reducers::value_type>(), + src.template get<Idxs, typename Reducers::value_type>())...); + } + + KOKKOS_FUNCTION void join(value_type volatile& dest, + value_type const volatile& src) const noexcept { + emulate_fold_comma_operator( + this->CombinedReducerStorageImpl<Idxs, Reducers>::_join( + dest.template get<Idxs, typename Reducers::value_type>(), + src.template get<Idxs, typename Reducers::value_type>())...); + } + + KOKKOS_FUNCTION KOKKOS_CONSTEXPR_14 void init(value_type& dest) const + noexcept { + emulate_fold_comma_operator( + this->CombinedReducerStorageImpl<Idxs, Reducers>::_init( + dest.template get<Idxs, typename Reducers::value_type>())...); + } + + // TODO figure out if we also need to call through to final + + KOKKOS_FUNCTION + constexpr bool references_scalar() const noexcept { + // For now, always pretend that we reference a scalar since we need to + // block to do the write-back because the references may not be contiguous + // in memory and the backends currently assume this and just do a single + // deep copy back to a chunk of memory associated with the output argument + return true; + } + + KOKKOS_FUNCTION + constexpr result_view_type const& view() const noexcept { + return m_value_view; + } + + KOKKOS_FUNCTION + KOKKOS_CONSTEXPR_14 static void write_value_back_to_original_references( + value_type const& value, + Reducers const&... reducers_that_reference_original_values) noexcept { + emulate_fold_comma_operator( + (reducers_that_reference_original_values.view()() = + value.template get<Idxs, typename Reducers::value_type>())...); + } +}; + +// Apparently this can't be an alias template because of a bug/unimplemented +// feature in GCC's name mangler. But in this case, this amounts to the same +// thing. +template <class Space, class... Reducers> +struct CombinedReducer + : CombinedReducerImpl<make_index_sequence<sizeof...(Reducers)>, Space, + Reducers...> { + using base_t = CombinedReducerImpl<make_index_sequence<sizeof...(Reducers)>, + Space, Reducers...>; + using base_t::base_t; + using reducer = CombinedReducer<Space, Reducers...>; +}; + +// </editor-fold> end CombinedReducer }}}1 +//============================================================================== + +//============================================================================== +// <editor-fold desc="CombinedReductionFunctorWrapper"> {{{1 + +template <class IdxSeq, class Functor, class Space, class... Reducers> +struct CombinedReductionFunctorWrapperImpl; + +template <size_t... Idxs, class Functor, class Space, class... Reducers> +struct CombinedReductionFunctorWrapperImpl<integer_sequence<size_t, Idxs...>, + Functor, Space, Reducers...> { + private: + Functor m_functor; + + public: + //------------------------------------------------------------------------------ + // <editor-fold desc="type aliases"> {{{2 + + using reducer_type = CombinedReducer<Space, Reducers...>; + + // Prevent Kokkos from attempting to deduce value_type + using value_type = typename reducer_type::value_type; + + // </editor-fold> end type aliases }}}2 + //------------------------------------------------------------------------------ + + //---------------------------------------------------------------------------- + // <editor-fold desc="Ctors, destructor, and assignment"> {{{2 + + KOKKOS_DEFAULTED_FUNCTION + constexpr CombinedReductionFunctorWrapperImpl() noexcept = default; + KOKKOS_DEFAULTED_FUNCTION + constexpr CombinedReductionFunctorWrapperImpl( + CombinedReductionFunctorWrapperImpl const&) = default; + KOKKOS_DEFAULTED_FUNCTION + constexpr CombinedReductionFunctorWrapperImpl( + CombinedReductionFunctorWrapperImpl&&) = default; + KOKKOS_DEFAULTED_FUNCTION + KOKKOS_CONSTEXPR_14 CombinedReductionFunctorWrapperImpl& operator=( + CombinedReductionFunctorWrapperImpl const&) = default; + KOKKOS_DEFAULTED_FUNCTION + KOKKOS_CONSTEXPR_14 CombinedReductionFunctorWrapperImpl& operator=( + CombinedReductionFunctorWrapperImpl&&) = default; + KOKKOS_DEFAULTED_FUNCTION + ~CombinedReductionFunctorWrapperImpl() = default; + + KOKKOS_INLINE_FUNCTION + constexpr explicit CombinedReductionFunctorWrapperImpl(Functor arg_functor) + : m_functor(std::move(arg_functor)) {} + + // </editor-fold> end Ctors, destructor, and assignment }}}2 + //---------------------------------------------------------------------------- + + //---------------------------------------------------------------------------- + // <editor-fold desc="call operator"> {{{2 + + // Variadic version for MDRangePolicy + // There are a number of ways to do this, but most of them that involve + // not assuming an implementation of tuple is available are gross. + // Unfortunately, that's what we have to do here + template <class IndexOrMemberOrTagType1, + class... IndexOrMemberTypesThenValueType> + KOKKOS_FUNCTION void operator()( + IndexOrMemberOrTagType1&& arg_first, + IndexOrMemberTypesThenValueType&&... args) const { + this->template _call_op_impl<IndexOrMemberOrTagType1&&>( + (IndexOrMemberOrTagType1 &&) arg_first, + (IndexOrMemberTypesThenValueType &&) args...); + } + + // </editor-fold> end call operator }}}2 + //---------------------------------------------------------------------------- + + // These are things that need to be done if we decide to ever support + // functor-customized join/init/final hooks with combined reducers. For now, + // they are explicitly not supported. + // TODO: forward join() function to user functor hook, or just ignore it? + // TODO: forward init() function to user functor hook, or just ignore it? + // TODO: forward final() function to user functor hook, or just ignore it? + + private: + // variadic forwarding for MDRangePolicy + // see comment above for why this has to be so gross + // recursive case + template <class... IdxOrMemberTypes, class IdxOrMemberType1, + class... IdxOrMemberTypesThenValueType> + KOKKOS_FORCEINLINE_FUNCTION std::enable_if_t< + !std::is_same<remove_cvref_t<IdxOrMemberType1>, value_type>::value> + _call_op_impl(IdxOrMemberTypes&&... idxs, IdxOrMemberType1&& idx, + IdxOrMemberTypesThenValueType&&... args) const { + this->template _call_op_impl<IdxOrMemberTypes&&..., IdxOrMemberType1&&>( + (IdxOrMemberTypes &&) idxs..., (IdxOrMemberType1 &&) idx, + (IdxOrMemberTypesThenValueType &&) args...); + } + + // base case + template <class... IdxOrMemberTypes> + KOKKOS_FORCEINLINE_FUNCTION void _call_op_impl(IdxOrMemberTypes&&... idxs, + value_type& out) const { + m_functor((IdxOrMemberTypes &&) idxs..., + out.template get<Idxs, typename Reducers::value_type>()...); + } +}; + +template <class Functor, class Space, class... Reducers> +struct CombinedReductionFunctorWrapper + : CombinedReductionFunctorWrapperImpl< + make_index_sequence<sizeof...(Reducers)>, Functor, Space, + Reducers...> { + using base_t = CombinedReductionFunctorWrapperImpl< + make_index_sequence<sizeof...(Reducers)>, Functor, Space, Reducers...>; + using base_t::base_t; +}; + +// </editor-fold> end CombinedReductionFunctorWrapper }}}1 +//============================================================================== + +//------------------------------------------------------------------------------ +// <editor-fold desc="_make_reducer_from_arg"> {{{2 + +template <class Space, class Reducer> +KOKKOS_INLINE_FUNCTION constexpr typename std::enable_if< + Kokkos::is_reducer<typename std::decay<Reducer>::type>::value, + typename std::decay<Reducer>::type>::type +_make_reducer_from_arg(Reducer&& arg_reducer) noexcept { + return arg_reducer; +} + +// Two purposes: SFINAE-safety for the `View` case and laziness for the return +// value otherwise to prevent extra instantiations of the Kokkos::Sum template +template <class Space, class T, class Enable = void> +struct _wrap_with_kokkos_sum { + using type = Kokkos::Sum<T, Space>; +}; + +template <class Space, class T> +struct _wrap_with_kokkos_sum< + Space, T, typename std::enable_if<Kokkos::is_view<T>::value>::type> { + using type = Kokkos::Sum<typename T::value_type, Space>; +}; + +// TODO better error message for the case when a const& to a scalar is passed in +// (this is needed in general, though) +template <class Space, class T> +KOKKOS_INLINE_FUNCTION constexpr typename std::enable_if< + !Kokkos::is_reducer<typename std::decay<T>::type>::value, + _wrap_with_kokkos_sum<Space, typename std::decay<T>::type>>::type::type +_make_reducer_from_arg(T&& arg_scalar) noexcept { + return + typename _wrap_with_kokkos_sum<Space, typename std::decay<T>::type>::type{ + arg_scalar}; +} + +// This can't be an alias template because GCC doesn't know how to mangle +// decltype expressions in return statements (and, even though every compiler +// is supposed to, GCC is the only one that does dependent alias template +// substitution correctly and tries to do the mangling, aparently). +template <class Space, class ReferenceOrViewOrReducer, class = void> +struct _reducer_from_arg { + using type = decltype(Impl::_make_reducer_from_arg<Space>( + std::declval<ReferenceOrViewOrReducer&&>())); +}; +template <class Space, class ReferenceOrViewOrReducer> +using _reducer_from_arg_t = + typename _reducer_from_arg<Space, ReferenceOrViewOrReducer>::type; + +// </editor-fold> end _make_reducer_from_arg }}}2 +//------------------------------------------------------------------------------ + +template <class Space, class... ReferencesOrViewsOrReducers> +KOKKOS_INLINE_FUNCTION constexpr CombinedReducerValueImpl< + make_index_sequence<sizeof...(ReferencesOrViewsOrReducers)>, + typename _reducer_from_arg_t<Space, + ReferencesOrViewsOrReducers>::value_type...> +make_combined_reducer_value(ReferencesOrViewsOrReducers&&... args) { + //---------------------------------------- + // This is a bit round-about and we should make sure it doesn't have + // any performance implications. Basically, we make a reducer out of anything + // just to get the value back out here (for the sake of uniformity). Most + // compilers should figure out what's going on, but we should double-check + // that. + return CombinedReducerValueImpl< + make_index_sequence<sizeof...(ReferencesOrViewsOrReducers)>, + typename _reducer_from_arg_t<Space, + ReferencesOrViewsOrReducers>::value_type...>{ + // This helper function is now poorly named after refactoring. + _get_value_from_combined_reducer_ctor_arg((ReferencesOrViewsOrReducers &&) + args)...}; + //---------------------------------------- +} + +template <class Space, class ValueType, class... ReferencesOrViewsOrReducers> +KOKKOS_INLINE_FUNCTION constexpr CombinedReducer< + Space, _reducer_from_arg_t<Space, ReferencesOrViewsOrReducers>...> +make_combined_reducer(ValueType& value, ReferencesOrViewsOrReducers&&... args) { + //---------------------------------------- + // This is doing more or less the same thing of making every argument into + // a reducer, just in a different place than in `make_combined_reducer_value`, + // so we should probably eventually make this read a little more similarly + using reducer_type = CombinedReducer< + Space, _reducer_from_arg_t<Space, ReferencesOrViewsOrReducers>...>; + return reducer_type(value, + _reducer_from_arg_t<Space, ReferencesOrViewsOrReducers>{ + (ReferencesOrViewsOrReducers &&) args}...); + //---------------------------------------- +} + +template <class Functor, class Space, class... ReferencesOrViewsOrReducers> +KOKKOS_INLINE_FUNCTION constexpr CombinedReductionFunctorWrapper< + Functor, Space, _reducer_from_arg_t<Space, ReferencesOrViewsOrReducers>...> +make_wrapped_combined_functor(Functor const& functor, Space, + ReferencesOrViewsOrReducers&&...) { + //---------------------------------------- + return CombinedReductionFunctorWrapper< + Functor, Space, + _reducer_from_arg_t<Space, ReferencesOrViewsOrReducers>...>(functor); + //---------------------------------------- +} + +} // end namespace Impl + +//============================================================================== +// <editor-fold desc="Overloads of parallel_reduce for multiple outputs"> {{{1 + +// These need to be forwarding references so that we can deduce const-ness, +// but none of them should be forwarded (and, indeed, none of them should be +// rvalue references) +template <class PolicyType, class Functor, class ReturnType1, class ReturnType2, + class... ReturnTypes> +auto parallel_reduce(std::string const& label, PolicyType const& policy, + Functor const& functor, ReturnType1&& returnType1, + ReturnType2&& returnType2, + ReturnTypes&&... returnTypes) noexcept -> + typename std::enable_if< + Kokkos::Impl::is_execution_policy<PolicyType>::value>::type { + //---------------------------------------- + // Since we don't support asynchronous combined reducers yet for various + // reasons, we actually just want to work with the pointers and references + // directly + using space_type = Kokkos::DefaultHostExecutionSpace::memory_space; + + auto value = Impl::make_combined_reducer_value<space_type>( + returnType1, returnType2, returnTypes...); + + using combined_reducer_type = Impl::CombinedReducer< + space_type, Impl::_reducer_from_arg_t<space_type, ReturnType1>, + Impl::_reducer_from_arg_t<space_type, ReturnType2>, + Impl::_reducer_from_arg_t<space_type, ReturnTypes>...>; + auto combined_reducer = Impl::make_combined_reducer<space_type>( + value, returnType1, returnType2, returnTypes...); + + auto combined_functor = Impl::make_wrapped_combined_functor( + functor, space_type{}, returnType1, returnType2, returnTypes...); + + using combined_functor_type = decltype(combined_functor); + static_assert( + Impl::FunctorDeclaresValueType<combined_functor_type, void>::value, + "value_type not properly detected"); + using reduce_adaptor_t = + Impl::ParallelReduceAdaptor<PolicyType, combined_functor_type, + combined_reducer_type>; + + reduce_adaptor_t::execute(label, policy, combined_functor, combined_reducer); + Impl::ParallelReduceFence<typename PolicyType::execution_space, + combined_reducer_type>::fence(policy.space(), + combined_reducer); + combined_reducer.write_value_back_to_original_references( + value, Impl::_make_reducer_from_arg<space_type>(returnType1), + Impl::_make_reducer_from_arg<space_type>(returnType2), + Impl::_make_reducer_from_arg<space_type>(returnTypes)...); + //---------------------------------------- +} + +template <class PolicyType, class Functor, class ReturnType1, class ReturnType2, + class... ReturnTypes> +auto parallel_reduce(PolicyType const& policy, Functor const& functor, + ReturnType1&& returnType1, ReturnType2&& returnType2, + ReturnTypes&&... returnTypes) noexcept -> + typename std::enable_if< + Kokkos::Impl::is_execution_policy<PolicyType>::value>::type { + //---------------------------------------- + Kokkos::parallel_reduce("", policy, functor, + std::forward<ReturnType1>(returnType1), + std::forward<ReturnType2>(returnType2), + std::forward<ReturnTypes>(returnTypes)...); + //---------------------------------------- +} + +template <class Functor, class ReturnType1, class ReturnType2, + class... ReturnTypes> +void parallel_reduce(std::string const& label, size_t n, Functor const& functor, + ReturnType1&& returnType1, ReturnType2&& returnType2, + ReturnTypes&&... returnTypes) noexcept { + Kokkos::parallel_reduce(label, + RangePolicy<Kokkos::DefaultExecutionSpace>(0, n), + functor, std::forward<ReturnType1>(returnType1), + std::forward<ReturnType2>(returnType2), + std::forward<ReturnTypes>(returnTypes)...); +} + +template <class Functor, class ReturnType1, class ReturnType2, + class... ReturnTypes> +void parallel_reduce(size_t n, Functor const& functor, + ReturnType1&& returnType1, ReturnType2&& returnType2, + ReturnTypes&&... returnTypes) noexcept { + Kokkos::parallel_reduce("", n, functor, + std::forward<ReturnType1>(returnType1), + std::forward<ReturnType2>(returnType2), + std::forward<ReturnTypes>(returnTypes)...); +} + +//------------------------------------------------------------------------------ +// <editor-fold desc="Team overloads"> {{{2 + +// Copied three times because that's the best way we have right now to match +// Impl::TeamThreadRangeBoundariesStruct, +// Impl::ThreadVectorRangeBoundariesStruct, and +// Impl::TeamVectorRangeBoundariesStruct. +// TODO make these work after restructuring + +// template <class iType, class MemberType, class Functor, class ReturnType1, +// class ReturnType2, class... ReturnTypes> +// KOKKOS_INLINE_FUNCTION void parallel_reduce( +// std::string const& label, +// Impl::TeamThreadRangeBoundariesStruct<iType, MemberType> const& +// boundaries, Functor const& functor, ReturnType1&& returnType1, +// ReturnType2&& returnType2, ReturnTypes&&... returnTypes) noexcept { +// const auto combined_reducer = +// Impl::make_combined_reducer<Kokkos::AnonymousSpace>( +// returnType1, returnType2, returnTypes...); +// +// auto combined_functor = Impl::make_wrapped_combined_functor( +// functor, Kokkos::AnonymousSpace{}, returnType1, returnType2, +// returnTypes...); +// +// parallel_reduce(label, boundaries, combined_functor, combined_reducer); +//} +// +// template <class iType, class MemberType, class Functor, class ReturnType1, +// class ReturnType2, class... ReturnTypes> +// KOKKOS_INLINE_FUNCTION void parallel_reduce( +// std::string const& label, +// Impl::ThreadVectorRangeBoundariesStruct<iType, MemberType> const& +// boundaries, +// Functor const& functor, ReturnType1&& returnType1, +// ReturnType2&& returnType2, ReturnTypes&&... returnTypes) noexcept { +// const auto combined_reducer = +// Impl::make_combined_reducer<Kokkos::AnonymousSpace>( +// returnType1, returnType2, returnTypes...); +// +// auto combined_functor = Impl::make_wrapped_combined_functor( +// functor, Kokkos::AnonymousSpace{}, returnType1, returnType2, +// returnTypes...); +// +// parallel_reduce(label, boundaries, combined_functor, combined_reducer); +//} + +// template <class iType, class MemberType, class Functor, class ReturnType1, +// class ReturnType2, class... ReturnTypes> +// KOKKOS_INLINE_FUNCTION void parallel_reduce( +// std::string const& label, +// Impl::TeamVectorRangeBoundariesStruct<iType, MemberType> const& +// boundaries, Functor const& functor, ReturnType1&& returnType1, +// ReturnType2&& returnType2, ReturnTypes&&... returnTypes) noexcept { +// const auto combined_reducer = +// Impl::make_combined_reducer<Kokkos::AnonymousSpace>( +// returnType1, returnType2, returnTypes...); +// +// auto combined_functor = Impl::make_wrapped_combined_functor( +// functor, Kokkos::AnonymousSpace{}, returnType1, returnType2, +// returnTypes...); +// +// parallel_reduce(label, boundaries, combined_functor, combined_reducer); +//} + +// </editor-fold> end Team overloads }}}2 +//------------------------------------------------------------------------------ + +// </editor-fold> end Overloads of parallel_reduce for multiple outputs }}}1 +//============================================================================== + +} // namespace Kokkos + +#endif // KOKKOS_COMBINED_REDUCER_HPP diff --git a/packages/kokkos/core/src/impl/Kokkos_ConcurrentBitset.hpp b/packages/kokkos/core/src/impl/Kokkos_ConcurrentBitset.hpp index 4f10fb141..c02f4acdd 100644 --- a/packages/kokkos/core/src/impl/Kokkos_ConcurrentBitset.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_ConcurrentBitset.hpp @@ -123,7 +123,7 @@ struct concurrent_bitset { , uint32_t const state_header = 0 /* optional header */ ) noexcept { - typedef Kokkos::pair<int, int> type; + using type = Kokkos::pair<int, int>; const uint32_t bit_bound = 1 << bit_bound_lg2; const uint32_t word_count = bit_bound >> bits_per_int_lg2; @@ -208,7 +208,7 @@ struct concurrent_bitset { , uint32_t const state_header = 0 /* optional header */ ) noexcept { - typedef Kokkos::pair<int, int> type; + using type = Kokkos::pair<int, int>; if ((max_bit_count < bit_bound) || (state_header & ~state_header_mask) || (bit_bound <= bit)) { @@ -249,6 +249,10 @@ struct concurrent_bitset { if (!(prev & mask)) { // Successfully claimed 'result.first' by // atomically setting that bit. + // Flush the set operation. Technically this only needs to be acquire/ + // release semantics and not sequentially consistent, but for now + // we'll just do this. + Kokkos::memory_fence(); return type(bit, state_bit_used + 1); } @@ -298,6 +302,9 @@ struct concurrent_bitset { const int count = Kokkos::atomic_fetch_add((volatile int *)buffer, -1); + // Flush the store-release + Kokkos::memory_fence(); + return (count & state_used_mask) - 1; } diff --git a/packages/kokkos/core/src/impl/Kokkos_Core.cpp b/packages/kokkos/core/src/impl/Kokkos_Core.cpp index 6a6559e41..d6dc384f2 100644 --- a/packages/kokkos/core/src/impl/Kokkos_Core.cpp +++ b/packages/kokkos/core/src/impl/Kokkos_Core.cpp @@ -44,6 +44,7 @@ #include <Kokkos_Core.hpp> #include <impl/Kokkos_Error.hpp> +#include <impl/Kokkos_ExecSpaceInitializer.hpp> #include <cctype> #include <cstring> #include <iostream> @@ -55,12 +56,15 @@ #include <cerrno> #ifndef _WIN32 #include <unistd.h> +#else +#include <Windows.h> #endif //---------------------------------------------------------------------------- namespace { bool g_is_initialized = false; bool g_show_warnings = true; +bool g_tune_internals = false; // When compiling with clang/LLVM and using the GNU (GCC) C++ Standard Library // (any recent version between GCC 7.3 and GCC 9.2), std::deque SEGV's during // the unwinding of the atexit(3C) handlers at program termination. However, @@ -77,6 +81,44 @@ std::stack<hook_function_type, std::list<hook_function_type>> finalize_hooks; namespace Kokkos { namespace Impl { +ExecSpaceManager& ExecSpaceManager::get_instance() { + static ExecSpaceManager space_initializer = {}; + return space_initializer; +} + +void ExecSpaceManager::register_space_factory( + const std::string name, std::unique_ptr<ExecSpaceInitializerBase> space) { + exec_space_factory_list[name] = std::move(space); +} + +void ExecSpaceManager::initialize_spaces(const Kokkos::InitArguments& args) { + // Note: the names of the execution spaces, used as keys in the map, encode + // the ordering of the initialization code from the old initializtion stuff. + // Eventually, we may want to do something less brittle than this, but for now + // we're just preserving compatibility with the old implementation. + for (auto& to_init : exec_space_factory_list) { + to_init.second->initialize(args); + } +} + +void ExecSpaceManager::finalize_spaces(const bool all_spaces) { + for (auto& to_finalize : exec_space_factory_list) { + to_finalize.second->finalize(all_spaces); + } +} + +void ExecSpaceManager::static_fence() { + for (auto& to_fence : exec_space_factory_list) { + to_fence.second->fence(); + } +} +void ExecSpaceManager::print_configuration(std::ostream& msg, + const bool detail) { + for (auto& to_print : exec_space_factory_list) { + to_print.second->print_configuration(msg, detail); + } +} + int get_ctest_gpu(const char* local_rank_str) { auto const* ctest_kokkos_device_type = std::getenv("CTEST_KOKKOS_DEVICE_TYPE"); @@ -91,8 +133,8 @@ int get_ctest_gpu(const char* local_rank_str) { } // Make sure rank is within bounds of resource groups specified by CTest - auto resource_group_count = std::atoi(ctest_resource_group_count_str); - auto local_rank = std::atoi(local_rank_str); + auto resource_group_count = std::stoi(ctest_resource_group_count_str); + auto local_rank = std::stoi(local_rank_str); if (local_rank >= resource_group_count) { std::ostringstream ss; ss << "Error: local rank " << local_rank @@ -163,15 +205,15 @@ int get_ctest_gpu(const char* local_rank_str) { } std::string id(resource_str + 3, comma - resource_str - 3); - return std::atoi(id.c_str()); + return std::stoi(id.c_str()); } -namespace { - +// function to extract gpu # from args int get_gpu(const InitArguments& args) { int use_gpu = args.device_id; const int ndevices = args.ndevices; const int skip_device = args.skip_device; + // if the exact device is not set, but ndevices was given, assign round-robin // using on-node MPI rank if (use_gpu < 0) { @@ -193,7 +235,7 @@ int get_gpu(const InitArguments& args) { } else if (ndevices >= 0) { // Use the device assigned by the rank if (local_rank_str) { - auto local_rank = std::atoi(local_rank_str); + auto local_rank = std::stoi(local_rank_str); use_gpu = local_rank % ndevices; } else { // user only gave use ndevices, but the MPI environment variable wasn't @@ -206,7 +248,7 @@ int get_gpu(const InitArguments& args) { } return use_gpu; } - +namespace { bool is_unsigned_int(const char* str) { const size_t len = strlen(str); for (size_t i = 0; i < len; ++i) { @@ -225,176 +267,16 @@ void initialize_backends(const InitArguments& args) { setenv("MEMKIND_HBW_NODES", "1", 0); #endif - // Protect declarations, to prevent "unused variable" warnings. -#if defined(KOKKOS_ENABLE_OPENMP) || defined(KOKKOS_ENABLE_THREADS) || \ - defined(KOKKOS_ENABLE_OPENMPTARGET) || defined(KOKKOS_ENABLE_HPX) - const int num_threads = args.num_threads; -#endif -#if defined(KOKKOS_ENABLE_THREADS) || defined(KOKKOS_ENABLE_OPENMPTARGET) - const int use_numa = args.num_numa; -#endif -#if defined(KOKKOS_ENABLE_CUDA) || defined(KOKKOS_ENABLE_ROCM) || \ - defined(KOKKOS_ENABLE_HIP) - int use_gpu = get_gpu(args); -#endif // defined( KOKKOS_ENABLE_CUDA ) - -#if defined(KOKKOS_ENABLE_OPENMP) - if (std::is_same<Kokkos::OpenMP, Kokkos::DefaultExecutionSpace>::value || - std::is_same<Kokkos::OpenMP, Kokkos::HostSpace::execution_space>::value) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - Kokkos::OpenMP::initialize(num_threads); -#else - Kokkos::OpenMP::impl_initialize(num_threads); -#endif - } else { - // std::cout << "Kokkos::initialize() fyi: OpenMP enabled but not - // initialized" << std::endl ; - } -#endif - -#if defined(KOKKOS_ENABLE_THREADS) - if (std::is_same<Kokkos::Threads, Kokkos::DefaultExecutionSpace>::value || - std::is_same<Kokkos::Threads, - Kokkos::HostSpace::execution_space>::value) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - if (num_threads > 0) { - if (use_numa > 0) { - Kokkos::Threads::initialize(num_threads, use_numa); - } else { - Kokkos::Threads::initialize(num_threads); - } - } else { - Kokkos::Threads::initialize(); - } -#else - if (num_threads > 0) { - if (use_numa > 0) { - Kokkos::Threads::impl_initialize(num_threads, use_numa); - } else { - Kokkos::Threads::impl_initialize(num_threads); - } - } else { - Kokkos::Threads::impl_initialize(); - } -#endif - // std::cout << "Kokkos::initialize() fyi: Pthread enabled and initialized" - // << std::endl ; - } else { - // std::cout << "Kokkos::initialize() fyi: Pthread enabled but not - // initialized" << std::endl ; - } -#endif - -#if defined(KOKKOS_ENABLE_HPX) - if (std::is_same<Kokkos::Experimental::HPX, - Kokkos::DefaultExecutionSpace>::value || - std::is_same<Kokkos::Experimental::HPX, - Kokkos::HostSpace::execution_space>::value) { - if (num_threads > 0) { - Kokkos::Experimental::HPX::impl_initialize(num_threads); - } else { - Kokkos::Experimental::HPX::impl_initialize(); - } - // std::cout << "Kokkos::initialize() fyi: HPX enabled and initialized" << - // std::endl ; - } else { - // std::cout << "Kokkos::initialize() fyi: HPX enabled but not initialized" - // << std::endl ; - } -#endif - -#if defined(KOKKOS_ENABLE_SERIAL) - // Prevent "unused variable" warning for 'args' input struct. If - // Serial::initialize() ever needs to take arguments from the input - // struct, you may remove this line of code. - (void)args; - - // Always initialize Serial if it is configure time enabled -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - Kokkos::Serial::initialize(); -#else - Kokkos::Serial::impl_initialize(); -#endif -#endif - -#if defined(KOKKOS_ENABLE_OPENMPTARGET) - if (std::is_same<Kokkos::Experimental::OpenMPTarget, - Kokkos::DefaultExecutionSpace>::value) { - Kokkos::Experimental::OpenMPTarget().impl_initialize(); - // std::cout << "Kokkos::initialize() fyi: OpenMP enabled and initialized" - // << std::endl ; - } else { - // std::cout << "Kokkos::initialize() fyi: OpenMP enabled but not - // initialized" << std::endl ; - } -#endif - -#if defined(KOKKOS_ENABLE_CUDA) - if (std::is_same<Kokkos::Cuda, Kokkos::DefaultExecutionSpace>::value || - 0 < use_gpu) { - if (use_gpu > -1) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - Kokkos::Cuda::initialize(Kokkos::Cuda::SelectDevice(use_gpu)); -#else - Kokkos::Cuda::impl_initialize(Kokkos::Cuda::SelectDevice(use_gpu)); -#endif - } else { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - Kokkos::Cuda::initialize(); -#else - Kokkos::Cuda::impl_initialize(); -#endif - } - // std::cout << "Kokkos::initialize() fyi: Cuda enabled and initialized" << - // std::endl ; - } -#endif - -#if defined(KOKKOS_ENABLE_ROCM) - if (std::is_same<Kokkos::Experimental::ROCm, - Kokkos::DefaultExecutionSpace>::value || - 0 < use_gpu) { - if (use_gpu > -1) { - Kokkos::Experimental::ROCm::initialize( - Kokkos::Experimental::ROCm::SelectDevice(use_gpu)); - } else { - Kokkos::Experimental::ROCm::initialize(); - } - std::cout << "Kokkos::initialize() fyi: ROCm enabled and initialized" - << std::endl; - } -#endif - -#if defined(KOKKOS_ENABLE_HIP) - if (std::is_same<Kokkos::Experimental::HIP, - Kokkos::DefaultExecutionSpace>::value || - 0 < use_gpu) { - if (use_gpu > -1) { - Kokkos::Experimental::HIP::impl_initialize( - Kokkos::Experimental::HIP::SelectDevice(use_gpu)); - } else { - Kokkos::Experimental::HIP::impl_initialize(); - } - std::cout << "Kokkos::initialize() fyi: HIP enabled and initialized" - << std::endl; - } -#endif + Impl::ExecSpaceManager::get_instance().initialize_spaces(args); } void initialize_profiling(const InitArguments&) { -#if defined(KOKKOS_ENABLE_PROFILING) Kokkos::Profiling::initialize(); -#else - if (getenv("KOKKOS_PROFILE_LIBRARY") != nullptr) { - std::cerr << "Kokkos::initialize() warning: Requested Kokkos Profiling, " - "but Kokkos was built without Profiling support" - << std::endl; - } -#endif } void pre_initialize_internal(const InitArguments& args) { if (args.disable_warnings) g_show_warnings = false; + if (args.tune_internals) g_tune_internals = true; } void post_initialize_internal(const InitArguments& args) { @@ -436,127 +318,16 @@ void finalize_internal(const bool all_spaces = false) { ++numSuccessfulCalls; } -#if defined(KOKKOS_ENABLE_PROFILING) Kokkos::Profiling::finalize(); -#endif -#if defined(KOKKOS_ENABLE_CUDA) - if (std::is_same<Kokkos::Cuda, Kokkos::DefaultExecutionSpace>::value || - all_spaces) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - if (Kokkos::Cuda::is_initialized()) Kokkos::Cuda::finalize(); -#else - if (Kokkos::Cuda::impl_is_initialized()) Kokkos::Cuda::impl_finalize(); -#endif - } -#else - (void)all_spaces; -#endif - -#if defined(KOKKOS_ENABLE_ROCM) - if (std::is_same<Kokkos::Experimental::ROCm, - Kokkos::DefaultExecutionSpace>::value || - all_spaces) { - if (Kokkos::Experimental::ROCm::is_initialized()) - Kokkos::Experimental::ROCm::finalize(); - } -#endif - -#if defined(KOKKOS_ENABLE_HIP) - if (std::is_same<Kokkos::Experimental::HIP, - Kokkos::DefaultExecutionSpace>::value || - all_spaces) { - if (Kokkos::Experimental::HIP::impl_is_initialized()) - Kokkos::Experimental::HIP::impl_finalize(); - } -#endif -#if defined(KOKKOS_ENABLE_OPENMPTARGET) - if (std::is_same<Kokkos::Experimental::OpenMPTarget, - Kokkos::DefaultExecutionSpace>::value || - all_spaces) { - if (Kokkos::Experimental::OpenMPTarget().impl_is_initialized()) - Kokkos::Experimental::OpenMPTarget().impl_finalize(); - } -#endif - -#if defined(KOKKOS_ENABLE_OPENMP) - if (std::is_same<Kokkos::OpenMP, Kokkos::DefaultExecutionSpace>::value || - std::is_same<Kokkos::OpenMP, Kokkos::HostSpace::execution_space>::value || - all_spaces) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - if (Kokkos::OpenMP::is_initialized()) Kokkos::OpenMP::finalize(); -#else - if (Kokkos::OpenMP::impl_is_initialized()) Kokkos::OpenMP::impl_finalize(); -#endif - } -#endif - -#if defined(KOKKOS_ENABLE_HPX) - if (std::is_same<Kokkos::Experimental::HPX, - Kokkos::DefaultExecutionSpace>::value || - std::is_same<Kokkos::Experimental::HPX, - Kokkos::HostSpace::execution_space>::value || - all_spaces) { - if (Kokkos::Experimental::HPX::impl_is_initialized()) - Kokkos::Experimental::HPX::impl_finalize(); - } -#endif - -#if defined(KOKKOS_ENABLE_THREADS) - if (std::is_same<Kokkos::Threads, Kokkos::DefaultExecutionSpace>::value || - std::is_same<Kokkos::Threads, - Kokkos::HostSpace::execution_space>::value || - all_spaces) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - if (Kokkos::Threads::is_initialized()) Kokkos::Threads::finalize(); -#else - if (Kokkos::Threads::impl_is_initialized()) - Kokkos::Threads::impl_finalize(); -#endif - } -#endif - -#if defined(KOKKOS_ENABLE_SERIAL) -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - if (Kokkos::Serial::is_initialized()) Kokkos::Serial::finalize(); -#else - if (Kokkos::Serial::impl_is_initialized()) Kokkos::Serial::impl_finalize(); -#endif -#endif + Impl::ExecSpaceManager::get_instance().finalize_spaces(all_spaces); g_is_initialized = false; g_show_warnings = true; + g_tune_internals = false; } -void fence_internal() { -#if defined(KOKKOS_ENABLE_CUDA) - Kokkos::Cuda::impl_static_fence(); -#endif - -#if defined(KOKKOS_ENABLE_ROCM) - Kokkos::Experimental::ROCm().fence(); -#endif - -#if defined(KOKKOS_ENABLE_HIP) - Kokkos::Experimental::HIP().fence(); -#endif - -#if defined(KOKKOS_ENABLE_OPENMP) - Kokkos::OpenMP::impl_static_fence(); -#endif - -#if defined(KOKKOS_ENABLE_HPX) - Kokkos::Experimental::HPX::impl_static_fence(); -#endif - -#if defined(KOKKOS_ENABLE_THREADS) - Kokkos::Threads::impl_static_fence(); -#endif - -#if defined(KOKKOS_ENABLE_SERIAL) - Kokkos::Serial::impl_static_fence(); -#endif -} +void fence_internal() { Impl::ExecSpaceManager::get_instance().static_fence(); } bool check_arg(char const* arg, char const* expected) { std::size_t arg_len = std::strlen(arg); @@ -582,7 +353,7 @@ bool check_int_arg(char const* arg, char const* expected, int* value) { if (arg_len == exp_len || arg[exp_len] != '=') okay = false; char const* number = arg + exp_len + 1; if (!Impl::is_unsigned_int(number) || strlen(number) == 0) okay = false; - *value = std::atoi(number); + *value = std::stoi(number); if (!okay) { std::ostringstream ss; ss << "Error: expecting an '=INT' after command line argument '" << expected @@ -618,11 +389,12 @@ void parse_command_line_arguments(int& narg, char* arg[], auto& ndevices = arguments.ndevices; auto& skip_device = arguments.skip_device; auto& disable_warnings = arguments.disable_warnings; + auto& tune_internals = arguments.tune_internals; - int kokkos_threads_found = 0; - int kokkos_numa_found = 0; - int kokkos_device_found = 0; - int kokkos_ndevices_found = 0; + bool kokkos_threads_found = false; + bool kokkos_numa_found = false; + bool kokkos_device_found = false; + bool kokkos_ndevices_found = false; int iarg = 0; @@ -631,7 +403,7 @@ void parse_command_line_arguments(int& narg, char* arg[], for (int k = iarg; k < narg - 1; k++) { arg[k] = arg[k + 1]; } - kokkos_threads_found = 1; + kokkos_threads_found = true; narg--; } else if (!kokkos_threads_found && check_int_arg(arg[iarg], "--threads", &num_threads)) { @@ -640,7 +412,7 @@ void parse_command_line_arguments(int& narg, char* arg[], for (int k = iarg; k < narg - 1; k++) { arg[k] = arg[k + 1]; } - kokkos_numa_found = 1; + kokkos_numa_found = true; narg--; } else if (!kokkos_numa_found && check_int_arg(arg[iarg], "--numa", &numa)) { @@ -654,7 +426,7 @@ void parse_command_line_arguments(int& narg, char* arg[], for (int k = iarg; k < narg - 1; k++) { arg[k] = arg[k + 1]; } - kokkos_device_found = 1; + kokkos_device_found = true; narg--; } else if (!kokkos_device_found && (check_int_arg(arg[iarg], "--device-id", &device) || @@ -699,7 +471,7 @@ void parse_command_line_arguments(int& narg, char* arg[], } if (check_arg(arg[iarg], "--kokkos-num-devices") || check_arg(arg[iarg], "--kokkos-ndevices") || !kokkos_ndevices_found) - ndevices = atoi(num1_only); + ndevices = std::stoi(num1_only); delete[] num1_only; if (num2 != nullptr) { @@ -711,7 +483,7 @@ void parse_command_line_arguments(int& narg, char* arg[], if (check_arg(arg[iarg], "--kokkos-num-devices") || check_arg(arg[iarg], "--kokkos-ndevices") || !kokkos_ndevices_found) - skip_device = atoi(num2 + 1); + skip_device = std::stoi(num2 + 1); } // Remove the --kokkos-num-devices argument from the list but leave @@ -721,7 +493,7 @@ void parse_command_line_arguments(int& narg, char* arg[], for (int k = iarg; k < narg - 1; k++) { arg[k] = arg[k + 1]; } - kokkos_ndevices_found = 1; + kokkos_ndevices_found = true; narg--; } else { iarg++; @@ -732,6 +504,12 @@ void parse_command_line_arguments(int& narg, char* arg[], arg[k] = arg[k + 1]; } narg--; + } else if (check_arg(arg[iarg], "--kokkos-tune-internals")) { + tune_internals = true; + for (int k = iarg; k < narg - 1; k++) { + arg[k] = arg[k + 1]; + } + narg--; } else if (check_arg(arg[iarg], "--kokkos-help") || check_arg(arg[iarg], "--help")) { auto const help_message = R"( @@ -746,6 +524,9 @@ void parse_command_line_arguments(int& narg, char* arg[], --kokkos-help : print this message --kokkos-disable-warnings : disable kokkos warning messages + --kokkos-tune-internals : allow Kokkos to autotune policies and declare + tuning features through the tuning system. If + left off, Kokkos uses heuristics --kokkos-threads=INT : specify total number of threads or number of threads per NUMA region if used in conjunction with '--numa' option. @@ -784,7 +565,7 @@ void parse_environment_variables(InitArguments& arguments) { auto& ndevices = arguments.ndevices; auto& skip_device = arguments.skip_device; auto& disable_warnings = arguments.disable_warnings; - + auto& tune_internals = arguments.tune_internals; char* endptr; auto env_num_threads_str = std::getenv("KOKKOS_NUM_THREADS"); if (env_num_threads_str != nullptr) { @@ -938,6 +719,20 @@ void parse_environment_variables(InitArguments& arguments) { "KOKKOS_DISABLE_WARNINGS if both are set. Raised by " "Kokkos::initialize(int narg, char* argc[])."); } + char* env_tuneinternals_str = std::getenv("KOKKOS_TUNE_INTERNALS"); + if (env_tuneinternals_str != nullptr) { + std::string env_str(env_tuneinternals_str); // deep-copies string + for (char& c : env_str) { + c = toupper(c); + } + if ((env_str == "TRUE") || (env_str == "ON") || (env_str == "1")) + tune_internals = true; + else if (tune_internals) + Impl::throw_runtime_exception( + "Error: expecting a match between --kokkos-tune-internals and " + "KOKKOS_TUNE_INTERNALS if both are set. Raised by " + "Kokkos::initialize(int narg, char* argc[])."); + } } } // namespace @@ -977,7 +772,7 @@ void push_finalize_hook(std::function<void()> f) { finalize_hooks.push(f); } void finalize() { Impl::finalize_internal(); } void finalize_all() { - enum { all_spaces = true }; + enum : bool { all_spaces = true }; Impl::finalize_internal(all_spaces); } @@ -1033,83 +828,10 @@ void print_configuration(std::ostream& out, const bool detail) { msg << " KOKKOS_ENABLE_ISA_X86_64: no" << std::endl; #endif - msg << "Devices:" << std::endl; - msg << " KOKKOS_ENABLE_CUDA: "; -#ifdef KOKKOS_ENABLE_CUDA - msg << "yes" << std::endl; -#else - msg << "no" << std::endl; -#endif - msg << " KOKKOS_ENABLE_HIP: "; -#ifdef KOKKOS_ENABLE_HIP - msg << "yes" << std::endl; -#else - msg << "no" << std::endl; -#endif - msg << " KOKKOS_ENABLE_OPENMP: "; -#ifdef KOKKOS_ENABLE_OPENMP - msg << "yes" << std::endl; -#else - msg << "no" << std::endl; -#endif - msg << " KOKKOS_ENABLE_HPX: "; -#ifdef KOKKOS_ENABLE_HPX - msg << "yes" << std::endl; -#else - msg << "no" << std::endl; -#endif - msg << " KOKKOS_ENABLE_THREADS: "; -#ifdef KOKKOS_ENABLE_THREADS - msg << "yes" << std::endl; -#else - msg << "no" << std::endl; -#endif - msg << " KOKKOS_ENABLE_SERIAL: "; -#ifdef KOKKOS_ENABLE_SERIAL - msg << "yes" << std::endl; -#else - msg << "no" << std::endl; -#endif - - msg << "Default Device:" << std::endl; - msg << " KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_CUDA: "; -#ifdef KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_CUDA - msg << "yes" << std::endl; -#else - msg << "no" << std::endl; -#endif - msg << " KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_HIP: "; -#ifdef KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_HIP - msg << "yes" << std::endl; -#else - msg << "no" << std::endl; -#endif - msg << " KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_OPENMP: "; -#ifdef KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_OPENMP - msg << "yes" << std::endl; -#else - msg << "no" << std::endl; -#endif - msg << " KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_THREADS: "; -#ifdef KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_THREADS - msg << "yes" << std::endl; -#else - msg << "no" << std::endl; -#endif - msg << " KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_SERIAL: "; -#ifdef KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_SERIAL - msg << "yes" << std::endl; -#else - msg << "no" << std::endl; -#endif + msg << "Default Device:" << typeid(Kokkos::DefaultExecutionSpace).name() + << std::endl; msg << "Atomics:" << std::endl; - msg << " KOKKOS_ENABLE_CUDA_ATOMICS: "; -#ifdef KOKKOS_ENABLE_CUDA_ATOMICS - msg << "yes" << std::endl; -#else - msg << "no" << std::endl; -#endif msg << " KOKKOS_ENABLE_GNU_ATOMICS: "; #ifdef KOKKOS_ENABLE_GNU_ATOMICS msg << "yes" << std::endl; @@ -1121,12 +843,6 @@ void print_configuration(std::ostream& out, const bool detail) { msg << "yes" << std::endl; #else msg << "no" << std::endl; -#endif - msg << " KOKKOS_ENABLE_OPENMP_ATOMICS: "; -#ifdef KOKKOS_ENABLE_OPENMP_ATOMICS - msg << "yes" << std::endl; -#else - msg << "no" << std::endl; #endif msg << " KOKKOS_ENABLE_WINDOWS_ATOMICS: "; #ifdef KOKKOS_ENABLE_WINDOWS_ATOMICS @@ -1134,12 +850,6 @@ void print_configuration(std::ostream& out, const bool detail) { #else msg << "no" << std::endl; #endif - msg << " KOKKOS_ENABLE_SERIAL_ATOMICS: "; -#ifdef KOKKOS_ENABLE_SERIAL_ATOMICS - msg << "yes" << std::endl; -#else - msg << "no" << std::endl; -#endif msg << "Vectorization:" << std::endl; msg << " KOKKOS_ENABLE_PRAGMA_IVDEP: "; @@ -1242,83 +952,8 @@ void print_configuration(std::ostream& out, const bool detail) { #else msg << "no" << std::endl; #endif - msg << " KOKKOS_ENABLE_PROFILING: "; -#ifdef KOKKOS_ENABLE_PROFILING - msg << "yes" << std::endl; -#else - msg << "no" << std::endl; -#endif - -#ifdef KOKKOS_ENABLE_CUDA - msg << "Cuda Options:" << std::endl; - msg << " KOKKOS_ENABLE_CUDA_LAMBDA: "; -#ifdef KOKKOS_ENABLE_CUDA_LAMBDA - msg << "yes" << std::endl; -#else - msg << "no" << std::endl; -#endif - msg << " KOKKOS_ENABLE_CUDA_LDG_INTRINSIC: "; -#ifdef KOKKOS_ENABLE_CUDA_LDG_INTRINSIC - msg << "yes" << std::endl; -#else - msg << "no" << std::endl; -#endif - msg << " KOKKOS_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE: "; -#ifdef KOKKOS_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE - msg << "yes" << std::endl; -#else - msg << "no" << std::endl; -#endif - msg << " KOKKOS_ENABLE_CUDA_UVM: "; -#ifdef KOKKOS_ENABLE_CUDA_UVM - msg << "yes" << std::endl; -#else - msg << "no" << std::endl; -#endif - msg << " KOKKOS_ENABLE_CUSPARSE: "; -#ifdef KOKKOS_ENABLE_CUSPARSE - msg << "yes" << std::endl; -#else - msg << "no" << std::endl; -#endif - msg << " KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA: "; -#ifdef KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA - msg << "yes" << std::endl; -#else - msg << "no" << std::endl; -#endif -#endif - -#ifdef KOKKOS_ENABLE_HIP - msg << "HIP Options:" << std::endl; - msg << " KOKKOS_ENABLE_HIP_RELOCATABLE_DEVICE_CODE: "; -#ifdef KOKKOS_ENABLE_HIP_RELOCATABLE_DEVICE_CODE - msg << "yes" << std::endl; -#else - msg << "no" << std::endl; -#endif -#endif - - msg << "\nRuntime Configuration:" << std::endl; -#ifdef KOKKOS_ENABLE_CUDA - Cuda::print_configuration(msg, detail); -#endif -#ifdef KOKKOS_ENABLE_HIP - Experimental::HIP::print_configuration(msg, detail); -#endif -#ifdef KOKKOS_ENABLE_OPENMP - OpenMP::print_configuration(msg, detail); -#endif -#ifdef KOKKOS_ENABLE_HPX - Experimental::HPX::print_configuration(msg, detail); -#endif -#if defined(KOKKOS_ENABLE_THREADS) - Threads::print_configuration(msg, detail); -#endif -#ifdef KOKKOS_ENABLE_SERIAL - Serial::print_configuration(msg, detail); -#endif + Impl::ExecSpaceManager::get_instance().print_configuration(msg, detail); out << msg.str() << std::endl; } @@ -1326,6 +961,7 @@ void print_configuration(std::ostream& out, const bool detail) { bool is_initialized() noexcept { return g_is_initialized; } bool show_warnings() noexcept { return g_show_warnings; } +bool tune_internals() noexcept { return g_tune_internals; } #ifdef KOKKOS_COMPILER_PGI namespace Impl { diff --git a/packages/kokkos/core/src/impl/Kokkos_Default_GraphNodeKernel.hpp b/packages/kokkos/core/src/impl/Kokkos_Default_GraphNodeKernel.hpp new file mode 100644 index 000000000..1edcca8f5 --- /dev/null +++ b/packages/kokkos/core/src/impl/Kokkos_Default_GraphNodeKernel.hpp @@ -0,0 +1,125 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_KOKKOS_HOST_GRAPHNODEKERNEL_HPP +#define KOKKOS_KOKKOS_HOST_GRAPHNODEKERNEL_HPP + +#include <Kokkos_Macros.hpp> + +#include <impl/Kokkos_Default_Graph_fwd.hpp> + +#include <Kokkos_Graph.hpp> +#include <Kokkos_Parallel.hpp> +#include <Kokkos_Parallel_Reduce.hpp> + +namespace Kokkos { +namespace Impl { + +//============================================================================== +// <editor-fold desc="GraphNodeKernelImpl"> {{{1 + +template <class ExecutionSpace> +struct GraphNodeKernelDefaultImpl { + // TODO @graphs decide if this should use vtable or intrusive erasure via + // function pointers like in the rest of the graph interface + virtual void execute_kernel() = 0; +}; + +// TODO Indicate that this kernel specialization is only for the Host somehow? +template <class ExecutionSpace, class PolicyType, class Functor, + class PatternTag, class... Args> +class GraphNodeKernelImpl + : public PatternImplSpecializationFromTag<PatternTag, Functor, PolicyType, + Args..., ExecutionSpace>::type, + public GraphNodeKernelDefaultImpl<ExecutionSpace> { + public: + using base_t = + typename PatternImplSpecializationFromTag<PatternTag, Functor, PolicyType, + Args..., ExecutionSpace>::type; + using execute_kernel_vtable_base_t = + GraphNodeKernelDefaultImpl<ExecutionSpace>; + // We have to use this name here because that's how it was done way back when + // then implementations of Impl::Parallel*<> were written + using Policy = PolicyType; + using graph_kernel = GraphNodeKernelImpl; + + // TODO @graph kernel name info propagation + template <class PolicyDeduced, class... ArgsDeduced> + GraphNodeKernelImpl(std::string const&, ExecutionSpace const&, + Functor arg_functor, PolicyDeduced&& arg_policy, + ArgsDeduced&&... args) + : base_t(std::move(arg_functor), (PolicyDeduced &&) arg_policy, + (ArgsDeduced &&) args...), + execute_kernel_vtable_base_t() {} + + // FIXME @graph Forward through the instance once that works in the backends + template <class PolicyDeduced, class... ArgsDeduced> + GraphNodeKernelImpl(ExecutionSpace const& ex, Functor arg_functor, + PolicyDeduced&& arg_policy, ArgsDeduced&&... args) + : GraphNodeKernelImpl("", ex, std::move(arg_functor), + (PolicyDeduced &&) arg_policy, + (ArgsDeduced &&) args...) {} + + void execute_kernel() final { this->base_t::execute(); } +}; + +// </editor-fold> end GraphNodeKernelImpl }}}1 +//============================================================================== + +template <class ExecutionSpace> +struct GraphNodeAggregateKernelDefaultImpl + : GraphNodeKernelDefaultImpl<ExecutionSpace> { + // Aggregates don't need a policy, but for the purposes of checking the static + // assertions about graph kernels, + struct Policy { + using is_graph_kernel = std::true_type; + }; + using graph_kernel = GraphNodeAggregateKernelDefaultImpl; + void execute_kernel() final {} +}; + +} // end namespace Impl +} // end namespace Kokkos + +#endif // KOKKOS_KOKKOS_HOST_GRAPHNODEKERNEL_HPP diff --git a/packages/kokkos/core/src/impl/Kokkos_Default_GraphNode_Impl.hpp b/packages/kokkos/core/src/impl/Kokkos_Default_GraphNode_Impl.hpp new file mode 100644 index 000000000..370415347 --- /dev/null +++ b/packages/kokkos/core/src/impl/Kokkos_Default_GraphNode_Impl.hpp @@ -0,0 +1,170 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_KOKKOS_HOST_GRAPHNODE_IMPL_HPP +#define KOKKOS_KOKKOS_HOST_GRAPHNODE_IMPL_HPP + +#include <Kokkos_Macros.hpp> + +#include <impl/Kokkos_Default_Graph_fwd.hpp> + +#include <Kokkos_Graph.hpp> + +#include <vector> +#include <memory> + +namespace Kokkos { +namespace Impl { + +//============================================================================== +// <editor-fold desc="GraphNodeBackendSpecificDetails"> {{{1 + +template <class ExecutionSpace> +struct GraphNodeBackendSpecificDetails { + private: + using execution_space_instance_storage_t = + ExecutionSpaceInstanceStorage<ExecutionSpace>; + using default_kernel_impl_t = GraphNodeKernelDefaultImpl<ExecutionSpace>; + using default_aggregate_kernel_impl_t = + GraphNodeAggregateKernelDefaultImpl<ExecutionSpace>; + + std::vector<std::shared_ptr<GraphNodeBackendSpecificDetails<ExecutionSpace>>> + m_predecessors = {}; + + Kokkos::ObservingRawPtr<default_kernel_impl_t> m_kernel_ptr = nullptr; + + bool m_has_executed = false; + bool m_is_aggregate = false; + bool m_is_root = false; + + template <class> + friend struct HostGraphImpl; + + protected: + //---------------------------------------------------------------------------- + // <editor-fold desc="Ctors, destructor, and assignment"> {{{2 + + explicit GraphNodeBackendSpecificDetails() = default; + + explicit GraphNodeBackendSpecificDetails( + _graph_node_is_root_ctor_tag) noexcept + : m_has_executed(true), m_is_root(true) {} + + GraphNodeBackendSpecificDetails(GraphNodeBackendSpecificDetails const&) = + delete; + + GraphNodeBackendSpecificDetails(GraphNodeBackendSpecificDetails&&) noexcept = + delete; + + GraphNodeBackendSpecificDetails& operator =( + GraphNodeBackendSpecificDetails const&) = delete; + + GraphNodeBackendSpecificDetails& operator =( + GraphNodeBackendSpecificDetails&&) noexcept = delete; + + ~GraphNodeBackendSpecificDetails() = default; + + // </editor-fold> end Ctors, destructor, and assignment }}}2 + //---------------------------------------------------------------------------- + + public: + void set_kernel(default_kernel_impl_t& arg_kernel) { + KOKKOS_EXPECTS(m_kernel_ptr == nullptr) + m_kernel_ptr = &arg_kernel; + } + + void set_kernel(default_aggregate_kernel_impl_t& arg_kernel) { + KOKKOS_EXPECTS(m_kernel_ptr == nullptr) + m_kernel_ptr = &arg_kernel; + m_is_aggregate = true; + } + + void set_predecessor( + std::shared_ptr<GraphNodeBackendSpecificDetails<ExecutionSpace>> + arg_pred_impl) { + // This method delegates responsibility for executing the predecessor to + // this node. Each node can have at most one predecessor (which may be an + // aggregate). + KOKKOS_EXPECTS(m_predecessors.empty() || m_is_aggregate) + KOKKOS_EXPECTS(bool(arg_pred_impl)) + KOKKOS_EXPECTS(!m_has_executed) + m_predecessors.push_back(std::move(arg_pred_impl)); + } + + void execute_node() { + // This node could have already been executed as the predecessor of some + // other + KOKKOS_EXPECTS(bool(m_kernel_ptr) || m_has_executed) + // Just execute the predecessor here, since calling set_predecessor() + // delegates the responsibility for running it to us. + if (!m_has_executed) { + // I'm pretty sure this doesn't need to be atomic under our current + // supported semantics, but instinct I have feels like it should be... + m_has_executed = true; + for (auto const& predecessor : m_predecessors) { + predecessor->execute_node(); + } + m_kernel_ptr->execute_kernel(); + } + KOKKOS_ENSURES(m_has_executed) + } + + // This is gross, but for the purposes of our simple default implementation... + void reset_has_executed() { + for (auto const& predecessor : m_predecessors) { + predecessor->reset_has_executed(); + } + // more readable, probably: + // if(!m_is_root) m_has_executed = false; + m_has_executed = m_is_root; + } +}; + +// </editor-fold> end GraphNodeBackendSpecificDetails }}}1 +//============================================================================== + +} // end namespace Impl +} // end namespace Kokkos + +#endif // KOKKOS_KOKKOS_HOST_GRAPHNODE_IMPL_HPP diff --git a/packages/kokkos/core/src/impl/Kokkos_Default_Graph_Impl.hpp b/packages/kokkos/core/src/impl/Kokkos_Default_Graph_Impl.hpp new file mode 100644 index 000000000..e4667ca01 --- /dev/null +++ b/packages/kokkos/core/src/impl/Kokkos_Default_Graph_Impl.hpp @@ -0,0 +1,197 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_HOST_GRAPH_IMPL_HPP +#define KOKKOS_HOST_GRAPH_IMPL_HPP + +#include <Kokkos_ExecPolicy.hpp> +#include <Kokkos_Graph.hpp> + +#include <impl/Kokkos_GraphImpl_fwd.hpp> +#include <impl/Kokkos_Default_Graph_fwd.hpp> + +#include <Kokkos_Serial.hpp> +#include <Kokkos_OpenMP.hpp> +// FIXME @graph other backends? + +#include <impl/Kokkos_OptionalRef.hpp> +#include <impl/Kokkos_EBO.hpp> + +#include <set> + +namespace Kokkos { +namespace Impl { + +//============================================================================== +// <editor-fold desc="GraphImpl default implementation"> {{{1 + +template <class ExecutionSpace> +struct GraphImpl : private ExecutionSpaceInstanceStorage<ExecutionSpace> { + public: + using root_node_impl_t = + GraphNodeImpl<ExecutionSpace, Kokkos::Experimental::TypeErasedTag, + Kokkos::Experimental::TypeErasedTag>; + + private: + using execution_space_instance_storage_base_t = + ExecutionSpaceInstanceStorage<ExecutionSpace>; + + using node_details_t = GraphNodeBackendSpecificDetails<ExecutionSpace>; + std::set<std::shared_ptr<node_details_t>> m_sinks; + + public: + //---------------------------------------------------------------------------- + // <editor-fold desc="Constructors, destructor, and assignment"> {{{2 + + // Not moveable or copyable; it spends its whole live as a shared_ptr in the + // Graph object + GraphImpl() = default; + GraphImpl(GraphImpl const&) = delete; + GraphImpl(GraphImpl&&) = delete; + GraphImpl& operator=(GraphImpl const&) = delete; + GraphImpl& operator=(GraphImpl&&) = delete; + ~GraphImpl() = default; + + explicit GraphImpl(ExecutionSpace arg_space) + : execution_space_instance_storage_base_t(std::move(arg_space)) {} + + // </editor-fold> end Constructors, destructor, and assignment }}}2 + //---------------------------------------------------------------------------- + + ExecutionSpace const& get_execution_space() const { + return this + ->execution_space_instance_storage_base_t::execution_space_instance(); + } + + //---------------------------------------------------------------------------- + // <editor-fold desc="required customizations"> {{{2 + + template <class NodeImpl> + // requires NodeImplPtr is a shared_ptr to specialization of GraphNodeImpl + void add_node(std::shared_ptr<NodeImpl> const& arg_node_ptr) { + static_assert( + NodeImpl::kernel_type::Policy::is_graph_kernel::value, + "Something has gone horribly wrong, but it's too complicated to " + "explain here. Buy Daisy a coffee and she'll explain it to you."); + // Since this is always called before any calls to add_predecessor involving + // it, we can treat this node as a sink until we discover otherwise. + arg_node_ptr->node_details_t::set_kernel(arg_node_ptr->get_kernel()); + auto spot = m_sinks.find(arg_node_ptr); + KOKKOS_ASSERT(spot == m_sinks.end()) + m_sinks.insert(std::move(spot), std::move(arg_node_ptr)); + } + + template <class NodeImplPtr, class PredecessorRef> + // requires PredecessorRef is a specialization of GraphNodeRef that has + // already been added to this graph and NodeImpl is a specialization of + // GraphNodeImpl that has already been added to this graph. + void add_predecessor(NodeImplPtr arg_node_ptr, PredecessorRef arg_pred_ref) { + auto node_ptr_spot = m_sinks.find(arg_node_ptr); + auto pred_ptr = GraphAccess::get_node_ptr(arg_pred_ref); + auto pred_ref_spot = m_sinks.find(pred_ptr); + KOKKOS_ASSERT(node_ptr_spot != m_sinks.end()) + if (pred_ref_spot != m_sinks.end()) { + // delegate responsibility for executing the predecessor to arg_node + // and then remove the predecessor from the set of sinks + (*node_ptr_spot)->set_predecessor(std::move(*pred_ref_spot)); + m_sinks.erase(pred_ref_spot); + } else { + // We still want to check that it's executed, even though someone else + // should have executed it before us + (*node_ptr_spot)->set_predecessor(std::move(pred_ptr)); + } + } + + template <class... PredecessorRefs> + // See requirements/expectations in GraphBuilder + auto create_aggregate_ptr(PredecessorRefs&&...) { + // The attachment to predecessors, which is all we really need, happens + // in the generic layer, which calls through to add_predecessor for + // each predecessor ref, so all we need to do here is create the (trivial) + // aggregate node. + using aggregate_kernel_impl_t = + GraphNodeAggregateKernelDefaultImpl<ExecutionSpace>; + using aggregate_node_impl_t = + GraphNodeImpl<ExecutionSpace, aggregate_kernel_impl_t, + Kokkos::Experimental::TypeErasedTag>; + return GraphAccess::make_node_shared_ptr<aggregate_node_impl_t>( + this->execution_space_instance(), _graph_node_kernel_ctor_tag{}, + aggregate_kernel_impl_t{}); + } + + auto create_root_node_ptr() { + auto rv = Kokkos::Impl::GraphAccess::make_node_shared_ptr<root_node_impl_t>( + get_execution_space(), _graph_node_is_root_ctor_tag{}); + m_sinks.insert(rv); + return rv; + } + + void submit() { + // This reset is gross, but for the purposes of our simple host + // implementation... + for (auto& sink : m_sinks) { + sink->reset_has_executed(); + } + for (auto& sink : m_sinks) { + sink->execute_node(); + } + } + + // </editor-fold> end required customizations }}}2 + //---------------------------------------------------------------------------- +}; + +// </editor-fold> end GraphImpl default implementation }}}1 +//============================================================================== + +} // end namespace Impl + +} // end namespace Kokkos + +#include <OpenMP/Kokkos_OpenMP_Parallel.hpp> + +#include <impl/Kokkos_Default_GraphNodeKernel.hpp> +#include <impl/Kokkos_Default_GraphNode_Impl.hpp> + +#endif // KOKKOS_HOST_GRAPH_IMPL_HPP diff --git a/packages/kokkos/core/src/Threads/Kokkos_Threads_ViewCopyETIDecl.hpp b/packages/kokkos/core/src/impl/Kokkos_Default_Graph_fwd.hpp similarity index 85% rename from packages/kokkos/core/src/Threads/Kokkos_Threads_ViewCopyETIDecl.hpp rename to packages/kokkos/core/src/impl/Kokkos_Default_Graph_fwd.hpp index eb287c0db..cdbed7288 100644 --- a/packages/kokkos/core/src/Threads/Kokkos_Threads_ViewCopyETIDecl.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_Default_Graph_fwd.hpp @@ -42,16 +42,21 @@ //@HEADER */ -#ifndef KOKKOS_THREADS_VIEWETIDECL_HPP -#define KOKKOS_THREADS_VIEWETIDECL_HPP +#ifndef KOKKOS_KOKKOS_HOST_GRAPH_FWD_HPP +#define KOKKOS_KOKKOS_HOST_GRAPH_FWD_HPP + +#include <Kokkos_Macros.hpp> namespace Kokkos { namespace Impl { -#define KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE Kokkos::Threads -#include <eti/common/Kokkos_ViewFillCopyETIDecl_Macros.hpp> +template <class ExecutionSpace> +struct GraphNodeKernelDefaultImpl; + +template <class ExecutionSpace> +struct GraphNodeAggregateKernelDefaultImpl; + +} // end namespace Impl +} // end namespace Kokkos -#undef KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE -} // namespace Impl -} // namespace Kokkos -#endif +#endif // KOKKOS_KOKKOS_HOST_GRAPH_FWD_HPP diff --git a/packages/kokkos/core/src/impl/Kokkos_EBO.hpp b/packages/kokkos/core/src/impl/Kokkos_EBO.hpp index 39e855a55..a124511c0 100644 --- a/packages/kokkos/core/src/impl/Kokkos_EBO.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_EBO.hpp @@ -277,6 +277,78 @@ class NoUniqueAddressMemberEmulation using base_t::no_unique_address_data_member; }; +template <class ExecutionSpace> +class ExecutionSpaceInstanceStorage + : private NoUniqueAddressMemberEmulation<ExecutionSpace, + DefaultCtorNotOnDevice> { + private: + using base_t = + NoUniqueAddressMemberEmulation<ExecutionSpace, DefaultCtorNotOnDevice>; + + protected: + constexpr explicit ExecutionSpaceInstanceStorage() : base_t() {} + + KOKKOS_INLINE_FUNCTION + constexpr explicit ExecutionSpaceInstanceStorage( + ExecutionSpace const& arg_execution_space) + : base_t(arg_execution_space) {} + + KOKKOS_INLINE_FUNCTION + constexpr explicit ExecutionSpaceInstanceStorage( + ExecutionSpace&& arg_execution_space) + : base_t(std::move(arg_execution_space)) {} + + KOKKOS_INLINE_FUNCTION + ExecutionSpace& execution_space_instance() & { + return this->no_unique_address_data_member(); + } + + KOKKOS_INLINE_FUNCTION + ExecutionSpace const& execution_space_instance() const& { + return this->no_unique_address_data_member(); + } + + KOKKOS_INLINE_FUNCTION + ExecutionSpace&& execution_space_instance() && { + return std::move(*this).no_unique_address_data_member(); + } +}; + +template <class MemorySpace> +class MemorySpaceInstanceStorage + : private NoUniqueAddressMemberEmulation<MemorySpace, + DefaultCtorNotOnDevice> { + private: + using base_t = + NoUniqueAddressMemberEmulation<MemorySpace, DefaultCtorNotOnDevice>; + + protected: + MemorySpaceInstanceStorage() : base_t() {} + + KOKKOS_INLINE_FUNCTION + MemorySpaceInstanceStorage(MemorySpace const& arg_memory_space) + : base_t(arg_memory_space) {} + + KOKKOS_INLINE_FUNCTION + constexpr explicit MemorySpaceInstanceStorage(MemorySpace&& arg_memory_space) + : base_t(arg_memory_space) {} + + KOKKOS_INLINE_FUNCTION + MemorySpace& memory_space_instance() & { + return this->no_unique_address_data_member(); + } + + KOKKOS_INLINE_FUNCTION + MemorySpace const& memory_space_instance() const& { + return this->no_unique_address_data_member(); + } + + KOKKOS_INLINE_FUNCTION + MemorySpace&& memory_space_instance() && { + return std::move(*this).no_unique_address_data_member(); + } +}; + } // end namespace Impl } // end namespace Kokkos diff --git a/packages/kokkos/core/src/impl/Kokkos_Error.cpp b/packages/kokkos/core/src/impl/Kokkos_Error.cpp index a42b916f8..6362487ed 100644 --- a/packages/kokkos/core/src/impl/Kokkos_Error.cpp +++ b/packages/kokkos/core/src/impl/Kokkos_Error.cpp @@ -51,6 +51,7 @@ #include <iomanip> #include <stdexcept> #include <impl/Kokkos_Error.hpp> +#include <Cuda/Kokkos_Cuda_Error.hpp> //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- @@ -131,6 +132,9 @@ void Experimental::RawMemoryAllocationFailure::print_error_message( case AllocationMechanism::CudaHostAlloc: o << "cudaHostAlloc()."; break; case AllocationMechanism::HIPMalloc: o << "hipMalloc()."; break; case AllocationMechanism::HIPHostMalloc: o << "hipHostMalloc()."; break; + case AllocationMechanism::SYCLMalloc: + o << "cl::sycl::malloc_device()."; + break; } append_additional_error_information(o); o << ")" << std::endl; @@ -156,4 +160,19 @@ void traceback_callstack(std::ostream &msg) { } } // namespace Impl + +#ifdef KOKKOS_ENABLE_CUDA +namespace Experimental { + +void CudaRawMemoryAllocationFailure::append_additional_error_information( + std::ostream &o) const { + if (m_error_code != cudaSuccess) { + o << " The Cuda allocation returned the error code \"\"" + << cudaGetErrorName(m_error_code) << "\"."; + } +} + +} // end namespace Experimental +#endif + } // namespace Kokkos diff --git a/packages/kokkos/core/src/impl/Kokkos_Error.hpp b/packages/kokkos/core/src/impl/Kokkos_Error.hpp index 41be6737e..ab966a4d4 100644 --- a/packages/kokkos/core/src/impl/Kokkos_Error.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_Error.hpp @@ -62,7 +62,7 @@ namespace Kokkos { namespace Impl { -void host_abort(const char *const); +[[noreturn]] void host_abort(const char *const); void throw_runtime_exception(const std::string &); @@ -92,7 +92,8 @@ class RawMemoryAllocationFailure : public std::bad_alloc { CudaMallocManaged, CudaHostAlloc, HIPMalloc, - HIPHostMalloc + HIPHostMalloc, + SYCLMalloc }; private: @@ -164,15 +165,40 @@ class RawMemoryAllocationFailure : public std::bad_alloc { //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- +#if defined(KOKKOS_ENABLE_CUDA) && defined(__CUDA_ARCH__) + +#if defined(__APPLE__) || defined(KOKKOS_ENABLE_DEBUG_BOUNDS_CHECK) +// cuda_abort does not abort when building for macOS. +// required to workaround failures in random number generator unit tests with +// pre-volta architectures +#define KOKKOS_IMPL_ABORT_NORETURN +#else +// cuda_abort aborts when building for other platforms than macOS +#define KOKKOS_IMPL_ABORT_NORETURN [[noreturn]] +#endif + +#elif defined(KOKKOS_ENABLE_HIP) && defined(__HIP_DEVICE_COMPILE__) +// HIP aborts +#define KOKKOS_IMPL_ABORT_NORETURN [[noreturn]] +#elif !defined(KOKKOS_ENABLE_OPENMPTARGET) && !defined(__SYCL_DEVICE_ONLY__) +// Host aborts +#define KOKKOS_IMPL_ABORT_NORETURN [[noreturn]] +#else +// Everything else does not abort +#define KOKKOS_IMPL_ABORT_NORETURN +#endif + namespace Kokkos { -KOKKOS_INLINE_FUNCTION -void abort(const char *const message) { +KOKKOS_IMPL_ABORT_NORETURN KOKKOS_INLINE_FUNCTION void abort( + const char *const message) { #if defined(KOKKOS_ENABLE_CUDA) && defined(__CUDA_ARCH__) Kokkos::Impl::cuda_abort(message); #elif defined(KOKKOS_ENABLE_HIP) && defined(__HIP_DEVICE_COMPILE__) Kokkos::Impl::hip_abort(message); -#elif !defined(KOKKOS_ENABLE_OPENMPTARGET) && !defined(__HCC_ACCELERATOR__) +#elif !defined(KOKKOS_ENABLE_OPENMPTARGET) && !defined(__SYCL_DEVICE_ONLY__) Kokkos::Impl::host_abort(message); +#else + (void)message; // FIXME_OPENMPTARGET, FIXME_SYCL #endif } @@ -182,7 +208,7 @@ void abort(const char *const message) { //---------------------------------------------------------------------------- #if !defined(NDEBUG) || defined(KOKKOS_ENFORCE_CONTRACTS) || \ - defined(KOKKOS_DEBUG) + defined(KOKKOS_ENABLE_DEBUG) #define KOKKOS_EXPECTS(...) \ { \ if (!bool(__VA_ARGS__)) { \ diff --git a/packages/kokkos/core/src/impl/Kokkos_ExecPolicy.cpp b/packages/kokkos/core/src/impl/Kokkos_ExecPolicy.cpp index eada15fe9..1c337b957 100644 --- a/packages/kokkos/core/src/impl/Kokkos_ExecPolicy.cpp +++ b/packages/kokkos/core/src/impl/Kokkos_ExecPolicy.cpp @@ -43,6 +43,8 @@ */ #include <Kokkos_Core.hpp> +#include <sstream> + namespace Kokkos { namespace Impl { PerTeamValue::PerTeamValue(int arg) : value(arg) {} @@ -56,4 +58,13 @@ Impl::PerThreadValue PerThread(const int& arg) { return Impl::PerThreadValue(arg); } +void team_policy_check_valid_storage_level_argument(int level) { + if (!(level == 0 || level == 1)) { + std::stringstream ss; + ss << "TeamPolicy::set_scratch_size(/*level*/ " << level + << ", ...) storage level argument must be 0 or 1 to be valid\n"; + Impl::throw_runtime_exception(ss.str()); + } +} + } // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp b/packages/kokkos/core/src/impl/Kokkos_ExecSpaceInitializer.hpp similarity index 79% rename from packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp rename to packages/kokkos/core/src/impl/Kokkos_ExecSpaceInitializer.hpp index 7a95f3975..a922e7e3f 100644 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_double_LayoutLeft_Rank2.cpp +++ b/packages/kokkos/core/src/impl/Kokkos_ExecSpaceInitializer.hpp @@ -1,3 +1,4 @@ +/* //@HEADER // ************************************************************************ // @@ -8,8 +9,6 @@ // Under the terms of Contract DE-NA0003525 with NTESS, // the U.S. Government retains certain rights in this software. // -// Kokkos is licensed under 3-clause BSD terms of use: -// // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: @@ -41,17 +40,27 @@ // // ************************************************************************ //@HEADER +*/ + +#ifndef KOKKOS_EXEC_SPACE_INITIALIZER_HPP +#define KOKKOS_EXEC_SPACE_INITIALIZER_HPP + +#include <iosfwd> -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> namespace Kokkos { namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutLeft, Serial, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(double**, LayoutLeft, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(double**, LayoutLeft, Serial, int64_t) + +class ExecSpaceInitializerBase { + public: + virtual void initialize(const InitArguments &args) = 0; + virtual void finalize(const bool all_spaces) = 0; + virtual void fence() = 0; + virtual void print_configuration(std::ostream &msg, const bool detail) = 0; + ExecSpaceInitializerBase() = default; + virtual ~ExecSpaceInitializerBase() = default; +}; } // namespace Impl } // namespace Kokkos + +#endif // KOKKOS_EXEC_SPACE_INITIALIZER_HPP diff --git a/packages/kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp b/packages/kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp index b777dac02..3bcb60f85 100644 --- a/packages/kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp @@ -58,51 +58,144 @@ namespace Impl { template <class FunctorType, class Enable = void> struct ReduceFunctorHasInit { - enum { value = false }; + enum : bool { value = false }; }; +// The else clause idiom failed with NVCC+MSVC, causing some symbols not being +// compiled for the device. The code in there is anyway sketchy, and likely not +// standard compliant (just happens to work on all compilers we ever used) +// We intend to replace all of this long term with proper detection idiom. +#if defined(KOKKOS_COMPILER_MSVC) || defined(KOKKOS_IMPL_WINDOWS_CUDA) +template <class> +using impl_void_t_workaround = void; + +template <class F> +using init_archetype = decltype(&F::init); + +template <class FunctorType> +struct ReduceFunctorHasInit< + FunctorType, impl_void_t_workaround<init_archetype<FunctorType>>> { + enum : bool { value = true }; +}; +#else template <class FunctorType> struct ReduceFunctorHasInit< FunctorType, typename std::enable_if<0 < sizeof(&FunctorType::init)>::type> { - enum { value = true }; + enum : bool { value = true }; +}; +// FIXME_SYCL not all compilers distinguish between the FunctorType::init and +// the FunctorType::template init<> specialization +#ifdef KOKKOS_ENABLE_SYCL +template <class FunctorType> +struct ReduceFunctorHasInit< + FunctorType, + typename std::enable_if<0 < sizeof(&FunctorType::template init<>)>::type> { + enum : bool { value = true }; }; +#endif +#endif template <class FunctorType, class Enable = void> struct ReduceFunctorHasJoin { - enum { value = false }; + enum : bool { value = false }; }; +#if defined(KOKKOS_COMPILER_MSVC) || defined(KOKKOS_IMPL_WINDOWS_CUDA) +template <class F> +using join_archetype = decltype(&F::join); + +template <class FunctorType> +struct ReduceFunctorHasJoin< + FunctorType, impl_void_t_workaround<join_archetype<FunctorType>>> { + enum : bool { value = true }; +}; +#else template <class FunctorType> struct ReduceFunctorHasJoin< FunctorType, typename std::enable_if<0 < sizeof(&FunctorType::join)>::type> { - enum { value = true }; + enum : bool { value = true }; +}; +// FIXME_SYCL not all compilers distinguish between the FunctorType::join and +// the FunctorType::template join<> specialization +#ifdef KOKKOS_ENABLE_SYCL +template <class FunctorType> +struct ReduceFunctorHasJoin< + FunctorType, + typename std::enable_if<0 < sizeof(&FunctorType::template join<>)>::type> { + enum : bool { value = true }; }; +#endif +#endif template <class FunctorType, class Enable = void> struct ReduceFunctorHasFinal { - enum { value = false }; + enum : bool { value = false }; }; +#if defined(KOKKOS_COMPILER_MSVC) || defined(KOKKOS_IMPL_WINDOWS_CUDA) +template <class F> +using final_archetype = decltype(&F::final); + +template <class FunctorType> +struct ReduceFunctorHasFinal< + FunctorType, impl_void_t_workaround<final_archetype<FunctorType>>> { + enum : bool { value = true }; +}; +#else template <class FunctorType> struct ReduceFunctorHasFinal< FunctorType, typename std::enable_if<0 < sizeof(&FunctorType::final)>::type> { - enum { value = true }; + enum : bool { value = true }; }; +// FIXME_SYCL not all compilers distinguish between the FunctorType::final and +// the FunctorType::template final<> specialization +#ifdef KOKKOS_ENABLE_SYCL +template <class FunctorType> +struct ReduceFunctorHasFinal< + FunctorType, + typename std::enable_if<0 < sizeof(&FunctorType::template final<>)>::type> { + enum : bool { value = true }; +}; +#endif +#endif template <class FunctorType, class Enable = void> struct ReduceFunctorHasShmemSize { - enum { value = false }; + enum : bool { value = false }; }; +#if defined(KOKKOS_COMPILER_MSVC) || defined(KOKKOS_IMPL_WINDOWS_CUDA) +template <class F> +using shmemsize_archetype = decltype(&F::team_shmem_size); + +template <class FunctorType> +struct ReduceFunctorHasShmemSize< + FunctorType, impl_void_t_workaround<shmemsize_archetype<FunctorType>>> { + enum : bool { value = true }; +}; +#else template <class FunctorType> struct ReduceFunctorHasShmemSize< FunctorType, typename std::enable_if<0 < sizeof(&FunctorType::team_shmem_size)>::type> { - enum { value = true }; + enum : bool { value = true }; +}; +// FIXME_SYCL not all compilers distinguish between the +// FunctorType::team_shmem_size and the FunctorType::template team_shmem_size<> +// specialization +#ifdef KOKKOS_ENABLE_SYCL +template <class FunctorType> +struct ReduceFunctorHasShmemSize< + FunctorType, + typename std::enable_if< + 0 < sizeof(&FunctorType::template team_shmem_size<>)>::type> { + enum : bool { value = true }; }; +#endif +#endif template <class FunctorType, class ArgTag, class Enable = void> struct FunctorDeclaresValueType : public std::false_type {}; @@ -120,12 +213,12 @@ template <class FunctorType, (ReduceFunctorHasFinal<FunctorType>::value) || (ReduceFunctorHasShmemSize<FunctorType>::value)> struct IsNonTrivialReduceFunctor { - enum { value = false }; + enum : bool { value = false }; }; template <class FunctorType> struct IsNonTrivialReduceFunctor<FunctorType, true> { - enum { value = true }; + enum : bool { value = true }; }; /** \brief Query Functor and execution policy argument tag for value type. @@ -136,10 +229,10 @@ struct IsNonTrivialReduceFunctor<FunctorType, true> { template <class FunctorType, class ArgTag, bool Dec = FunctorDeclaresValueType<FunctorType, ArgTag>::value> struct FunctorValueTraits { - typedef void value_type; - typedef void pointer_type; - typedef void reference_type; - typedef void functor_type; + using value_type = void; + using pointer_type = void; + using reference_type = void; + using functor_type = void; enum { StaticValueSize = 0 }; @@ -154,10 +247,10 @@ struct FunctorValueTraits { template <class ArgTag> struct FunctorValueTraits<void, ArgTag, false> { - typedef void value_type; - typedef void pointer_type; - typedef void reference_type; - typedef void functor_type; + using value_type = void; + using pointer_type = void; + using reference_type = void; + using functor_type = void; }; /** \brief FunctorType::value_type is explicitly declared so use it. @@ -165,18 +258,18 @@ struct FunctorValueTraits<void, ArgTag, false> { * Two options for declaration * * 1) A plain-old-data (POD) type - * typedef {pod_type} value_type ; + * using value_type = {pod_type}; * * 2) An array of POD of a runtime specified count. - * typedef {pod_type} value_type[] ; + * using value_type = {pod_type}[]; * const unsigned value_count ; */ template <class FunctorType, class ArgTag> struct FunctorValueTraits<FunctorType, ArgTag, true /* == exists FunctorType::value_type */> { - typedef typename std::remove_extent<typename FunctorType::value_type>::type - value_type; - typedef FunctorType functor_type; + using value_type = + typename std::remove_extent<typename FunctorType::value_type>::type; + using functor_type = FunctorType; static_assert((sizeof(value_type) < sizeof(int)) || 0 == (sizeof(value_type) % sizeof(int)), @@ -192,13 +285,13 @@ struct FunctorValueTraits<FunctorType, ArgTag, // If not an array then what is the sizeof(value_type) enum { StaticValueSize = IsArray ? 0 : sizeof(value_type) }; - typedef value_type* pointer_type; + using pointer_type = value_type*; // The reference_type for an array is 'value_type *' // The reference_type for a single value is 'value_type &' - typedef typename Impl::if_c<IsArray, value_type*, value_type&>::type - reference_type; + using reference_type = + typename Impl::if_c<IsArray, value_type*, value_type&>::type; // Number of values if single value template <class F> @@ -236,8 +329,8 @@ struct FunctorValueTraits<FunctorType, ArgTag, struct REJECTTAG { }; // Reject tagged operator() when using non-tagged execution policy. - typedef typename Impl::if_c<std::is_same<ArgTag, void>::value, VOIDTAG, - ArgTag>::type tag_type; + using tag_type = typename Impl::if_c<std::is_same<ArgTag, void>::value, + VOIDTAG, ArgTag>::type; //---------------------------------------- // parallel_for operator without a tag: @@ -1271,20 +1364,20 @@ struct FunctorValueTraits<FunctorType, ArgTag, const bool&) const) {} //---------------------------------------- - typedef decltype( - deduce_reduce_type(tag_type(), &FunctorType::operator())) ValueType; + using ValueType = + decltype(deduce_reduce_type(tag_type(), &FunctorType::operator())); enum { IS_VOID = std::is_same<VOIDTAG, ValueType>::value }; enum { IS_REJECT = std::is_same<REJECTTAG, ValueType>::value }; public: - typedef typename Impl::if_c<IS_VOID || IS_REJECT, void, ValueType>::type - value_type; - typedef typename Impl::if_c<IS_VOID || IS_REJECT, void, ValueType*>::type - pointer_type; - typedef typename Impl::if_c<IS_VOID || IS_REJECT, void, ValueType&>::type - reference_type; - typedef FunctorType functor_type; + using value_type = + typename Impl::if_c<IS_VOID || IS_REJECT, void, ValueType>::type; + using pointer_type = + typename Impl::if_c<IS_VOID || IS_REJECT, void, ValueType*>::type; + using reference_type = + typename Impl::if_c<IS_VOID || IS_REJECT, void, ValueType&>::type; + using functor_type = FunctorType; static_assert( IS_VOID || IS_REJECT || 0 == (sizeof(ValueType) % sizeof(int)), @@ -1316,8 +1409,8 @@ namespace Impl { */ template <class FunctorType, class ArgTag> struct FunctorValueInitFunction { - typedef typename FunctorValueTraits<FunctorType, ArgTag>::reference_type - reference_type; + using reference_type = + typename FunctorValueTraits<FunctorType, ArgTag>::reference_type; KOKKOS_INLINE_FUNCTION static void enable_if( void (FunctorType::*)(ArgTag, reference_type) const); @@ -1334,8 +1427,8 @@ struct FunctorValueInitFunction { */ template <class FunctorType> struct FunctorValueInitFunction<FunctorType, void> { - typedef typename FunctorValueTraits<FunctorType, void>::reference_type - reference_type; + using reference_type = + typename FunctorValueTraits<FunctorType, void>::reference_type; KOKKOS_INLINE_FUNCTION static void enable_if( void (FunctorType::*)(reference_type) const); @@ -1455,11 +1548,11 @@ template <class FunctorType, class ArgTag, bool IsArray = 0 == FunctorValueTraits<FunctorType, ArgTag>::StaticValueSize> struct FunctorValueJoinFunction { - typedef - typename FunctorValueTraits<FunctorType, ArgTag>::value_type value_type; + using value_type = + typename FunctorValueTraits<FunctorType, ArgTag>::value_type; - typedef volatile value_type& vref_type; - typedef const volatile value_type& cvref_type; + using vref_type = volatile value_type&; + using cvref_type = const volatile value_type&; KOKKOS_INLINE_FUNCTION static void enable_if( void (FunctorType::*)(ArgTag, vref_type, cvref_type) const); @@ -1474,11 +1567,11 @@ struct FunctorValueJoinFunction { // Signatures for compatible FunctorType::join with tag and is an array template <class FunctorType, class ArgTag> struct FunctorValueJoinFunction<FunctorType, ArgTag, true> { - typedef - typename FunctorValueTraits<FunctorType, ArgTag>::value_type value_type; + using value_type = + typename FunctorValueTraits<FunctorType, ArgTag>::value_type; - typedef volatile value_type* vptr_type; - typedef const volatile value_type* cvptr_type; + using vptr_type = volatile value_type*; + using cvptr_type = const volatile value_type*; KOKKOS_INLINE_FUNCTION static void enable_if( void (FunctorType::*)(ArgTag, vptr_type, cvptr_type) const); @@ -1493,10 +1586,10 @@ struct FunctorValueJoinFunction<FunctorType, ArgTag, true> { // Signatures for compatible FunctorType::join without tag and not an array template <class FunctorType> struct FunctorValueJoinFunction<FunctorType, void, false> { - typedef typename FunctorValueTraits<FunctorType, void>::value_type value_type; + using value_type = typename FunctorValueTraits<FunctorType, void>::value_type; - typedef volatile value_type& vref_type; - typedef const volatile value_type& cvref_type; + using vref_type = volatile value_type&; + using cvref_type = const volatile value_type&; KOKKOS_INLINE_FUNCTION static void enable_if(void (FunctorType::*)(vref_type, cvref_type) @@ -1507,10 +1600,10 @@ struct FunctorValueJoinFunction<FunctorType, void, false> { // Signatures for compatible FunctorType::join without tag and is an array template <class FunctorType> struct FunctorValueJoinFunction<FunctorType, void, true> { - typedef typename FunctorValueTraits<FunctorType, void>::value_type value_type; + using value_type = typename FunctorValueTraits<FunctorType, void>::value_type; - typedef volatile value_type* vptr_type; - typedef const volatile value_type* cvptr_type; + using vptr_type = volatile value_type*; + using cvptr_type = const volatile value_type*; KOKKOS_INLINE_FUNCTION static void enable_if(void (FunctorType::*)(vptr_type, cvptr_type) @@ -1701,7 +1794,7 @@ namespace Impl { template <typename ValueType, class JoinOp, class Enable = void> struct JoinLambdaAdapter { - typedef ValueType value_type; + using value_type = ValueType; const JoinOp& lambda; KOKKOS_INLINE_FUNCTION JoinLambdaAdapter(const JoinOp& lambda_) : lambda(lambda_) {} @@ -1730,7 +1823,7 @@ template <typename ValueType, class JoinOp> struct JoinLambdaAdapter<ValueType, JoinOp, decltype(FunctorValueJoinFunction< JoinOp, void>::enable_if(&JoinOp::join))> { - typedef ValueType value_type; + using value_type = ValueType; static_assert( std::is_same<ValueType, typename JoinOp::value_type>::value, "JoinLambdaAdapter static_assert Fail: ValueType != JoinOp::value_type"); @@ -1763,7 +1856,7 @@ struct JoinLambdaAdapter<ValueType, JoinOp, template <typename ValueType> struct JoinAdd { - typedef ValueType value_type; + using value_type = ValueType; KOKKOS_DEFAULTED_FUNCTION JoinAdd() = default; @@ -1839,8 +1932,8 @@ template <class FunctorType, class ArgTag, bool IsArray = 0 == FunctorValueTraits<FunctorType, ArgTag>::StaticValueSize> struct FunctorFinalFunction { - typedef - typename FunctorValueTraits<FunctorType, ArgTag>::value_type value_type; + using value_type = + typename FunctorValueTraits<FunctorType, ArgTag>::value_type; KOKKOS_INLINE_FUNCTION static void enable_if( void (FunctorType::*)(ArgTag, value_type&) const); @@ -1893,8 +1986,8 @@ struct FunctorFinalFunction { // Compatible functions for 'final' function and value_type is an array template <class FunctorType, class ArgTag> struct FunctorFinalFunction<FunctorType, ArgTag, true> { - typedef - typename FunctorValueTraits<FunctorType, ArgTag>::value_type value_type; + using value_type = + typename FunctorValueTraits<FunctorType, ArgTag>::value_type; KOKKOS_INLINE_FUNCTION static void enable_if( void (FunctorType::*)(ArgTag, value_type*) const); @@ -1946,7 +2039,7 @@ struct FunctorFinalFunction<FunctorType, ArgTag, true> { template <class FunctorType> struct FunctorFinalFunction<FunctorType, void, false> { - typedef typename FunctorValueTraits<FunctorType, void>::value_type value_type; + using value_type = typename FunctorValueTraits<FunctorType, void>::value_type; KOKKOS_INLINE_FUNCTION static void enable_if( void (FunctorType::*)(value_type&) const); @@ -1963,7 +2056,7 @@ struct FunctorFinalFunction<FunctorType, void, false> { template <class FunctorType> struct FunctorFinalFunction<FunctorType, void, true> { - typedef typename FunctorValueTraits<FunctorType, void>::value_type value_type; + using value_type = typename FunctorValueTraits<FunctorType, void>::value_type; KOKKOS_INLINE_FUNCTION static void enable_if( void (FunctorType::*)(value_type*) const); diff --git a/packages/kokkos/core/src/impl/Kokkos_FunctorAnalysis.hpp b/packages/kokkos/core/src/impl/Kokkos_FunctorAnalysis.hpp index 827a9f346..a56d19ee7 100644 --- a/packages/kokkos/core/src/impl/Kokkos_FunctorAnalysis.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_FunctorAnalysis.hpp @@ -104,14 +104,14 @@ struct FunctorAnalysis { template <typename T, typename = std::false_type> struct has_execution_space { using type = void; - enum { value = false }; + enum : bool { value = false }; }; template <typename T> struct has_execution_space< T, typename std::is_same<typename T::execution_space, void>::type> { using type = typename T::execution_space; - enum { value = true }; + enum : bool { value = true }; }; using policy_has_space = has_execution_space<Policy>; @@ -391,8 +391,8 @@ struct FunctorAnalysis { template <class F> struct has_join_function<F, NO_TAG_NOT_ARRAY> { - typedef volatile ValueType& vref_type; - typedef volatile const ValueType& cvref_type; + using vref_type = volatile ValueType&; + using cvref_type = const volatile ValueType&; KOKKOS_INLINE_FUNCTION static void enable_if(void (F::*)(vref_type, cvref_type) const); @@ -409,8 +409,8 @@ struct FunctorAnalysis { template <class F> struct has_join_function<F, NO_TAG_IS_ARRAY> { - typedef volatile ValueType* vref_type; - typedef volatile const ValueType* cvref_type; + using vref_type = volatile ValueType*; + using cvref_type = const volatile ValueType*; KOKKOS_INLINE_FUNCTION static void enable_if(void (F::*)(vref_type, cvref_type) const); @@ -427,8 +427,8 @@ struct FunctorAnalysis { template <class F> struct has_join_function<F, HAS_TAG_NOT_ARRAY> { - typedef volatile ValueType& vref_type; - typedef volatile const ValueType& cvref_type; + using vref_type = volatile ValueType&; + using cvref_type = const volatile ValueType&; KOKKOS_INLINE_FUNCTION static void enable_if(void (F::*)(WTag, vref_type, cvref_type) const); @@ -453,8 +453,8 @@ struct FunctorAnalysis { template <class F> struct has_join_function<F, HAS_TAG_IS_ARRAY> { - typedef volatile ValueType* vref_type; - typedef volatile const ValueType* cvref_type; + using vref_type = volatile ValueType*; + using cvref_type = const volatile ValueType*; KOKKOS_INLINE_FUNCTION static void enable_if(void (F::*)(WTag, vref_type, cvref_type) const); @@ -479,7 +479,7 @@ struct FunctorAnalysis { template <class F = Functor, INTERFACE = DEDUCED, typename = void> struct DeduceJoin { - enum { value = false }; + enum : bool { value = false }; KOKKOS_INLINE_FUNCTION static void join(F const* const f, ValueType volatile* dst, @@ -491,7 +491,7 @@ struct FunctorAnalysis { template <class F> struct DeduceJoin<F, DISABLE, void> { - enum { value = false }; + enum : bool { value = false }; KOKKOS_INLINE_FUNCTION static void join(F const* const, ValueType volatile*, ValueType volatile const*) {} @@ -501,7 +501,7 @@ struct FunctorAnalysis { struct DeduceJoin<F, I, decltype(has_join_function<F, I>::enable_if(&F::join))> : public has_join_function<F, I> { - enum { value = true }; + enum : bool { value = true }; }; //---------------------------------------- @@ -569,7 +569,7 @@ struct FunctorAnalysis { template <class F = Functor, INTERFACE = DEDUCED, typename = void> struct DeduceInit { - enum { value = false }; + enum : bool { value = false }; KOKKOS_INLINE_FUNCTION static void init(F const* const, ValueType* dst) { new (dst) ValueType(); @@ -578,7 +578,7 @@ struct FunctorAnalysis { template <class F> struct DeduceInit<F, DISABLE, void> { - enum { value = false }; + enum : bool { value = false }; KOKKOS_INLINE_FUNCTION static void init(F const* const, ValueType*) {} }; @@ -587,7 +587,7 @@ struct FunctorAnalysis { struct DeduceInit<F, I, decltype(has_init_function<F, I>::enable_if(&F::init))> : public has_init_function<F, I> { - enum { value = true }; + enum : bool { value = true }; }; //---------------------------------------- @@ -659,7 +659,7 @@ struct FunctorAnalysis { template <class F = Functor, INTERFACE = DEDUCED, typename = void> struct DeduceFinal { - enum { value = false }; + enum : bool { value = false }; KOKKOS_INLINE_FUNCTION static void final(F const* const, ValueType*) {} @@ -669,14 +669,14 @@ struct FunctorAnalysis { struct DeduceFinal<F, I, decltype(has_final_function<F, I>::enable_if(&F::final))> : public has_final_function<F, I> { - enum { value = true }; + enum : bool { value = true }; }; //---------------------------------------- template <class F = Functor, typename = void> struct DeduceTeamShmem { - enum { value = false }; + enum : bool { value = false }; static size_t team_shmem_size(F const&, int) { return 0; } }; @@ -684,7 +684,7 @@ struct FunctorAnalysis { template <class F> struct DeduceTeamShmem< F, typename std::enable_if<0 < sizeof(&F::team_shmem_size)>::type> { - enum { value = true }; + enum : bool { value = true }; static size_t team_shmem_size(F const* const f, int team_size) { return f->team_shmem_size(team_size); @@ -694,7 +694,7 @@ struct FunctorAnalysis { template <class F> struct DeduceTeamShmem< F, typename std::enable_if<0 < sizeof(&F::shmem_size)>::type> { - enum { value = true }; + enum : bool { value = true }; static size_t team_shmem_size(F const* const f, int team_size) { return f->shmem_size(team_size); diff --git a/packages/kokkos/core/src/impl/Kokkos_GraphImpl.hpp b/packages/kokkos/core/src/impl/Kokkos_GraphImpl.hpp new file mode 100644 index 000000000..9bf9e29d0 --- /dev/null +++ b/packages/kokkos/core/src/impl/Kokkos_GraphImpl.hpp @@ -0,0 +1,156 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_IMPL_KOKKOS_GRAPHIMPL_HPP +#define KOKKOS_IMPL_KOKKOS_GRAPHIMPL_HPP + +#include <Kokkos_Macros.hpp> + +#include <Kokkos_Core_fwd.hpp> +#include <Kokkos_Graph_fwd.hpp> + +#include <Kokkos_Concepts.hpp> // is_execution_policy +#include <Kokkos_PointerOwnership.hpp> +#include <impl/Kokkos_GraphImpl_fwd.hpp> + +#include <memory> // std::make_shared + +namespace Kokkos { +namespace Impl { + +struct GraphAccess { + template <class ExecutionSpace> + static Kokkos::Experimental::Graph<ExecutionSpace> construct_graph( + ExecutionSpace ex) { + //----------------------------------------// + return Kokkos::Experimental::Graph<ExecutionSpace>{ + std::make_shared<GraphImpl<ExecutionSpace>>(std::move(ex))}; + //----------------------------------------// + } + template <class ExecutionSpace> + static auto create_root_ref( + Kokkos::Experimental::Graph<ExecutionSpace>& arg_graph) { + auto const& graph_impl_ptr = arg_graph.m_impl_ptr; + + auto root_ptr = graph_impl_ptr->create_root_node_ptr(); + + return Kokkos::Experimental::GraphNodeRef<ExecutionSpace>{ + graph_impl_ptr, std::move(root_ptr)}; + } + + template <class NodeType, class... Args> + static auto make_node_shared_ptr(Args&&... args) { + static_assert( + Kokkos::Impl::is_specialization_of<NodeType, GraphNodeImpl>::value, + "Kokkos Internal Error in graph interface"); + return std::make_shared<NodeType>((Args &&) args...); + } + + template <class GraphImplWeakPtr, class ExecutionSpace, class Kernel, + class Predecessor> + static auto make_graph_node_ref( + GraphImplWeakPtr graph_impl, + std::shared_ptr< + Kokkos::Impl::GraphNodeImpl<ExecutionSpace, Kernel, Predecessor>> + pred_impl) { + //---------------------------------------- + return Kokkos::Experimental::GraphNodeRef<ExecutionSpace, Kernel, + Predecessor>{ + std::move(graph_impl), std::move(pred_impl)}; + //---------------------------------------- + } + + //---------------------------------------------------------------------------- + // <editor-fold desc="accessors for private members of public interface"> {{{2 + + template <class NodeRef> + static auto get_node_ptr(NodeRef&& node_ref) { + static_assert( + is_specialization_of<remove_cvref_t<NodeRef>, + Kokkos::Experimental::GraphNodeRef>::value, + "Kokkos Internal Implementation error (bad argument to " + "`GraphAccess::get_node_ptr()`)"); + return ((NodeRef &&) node_ref).get_node_ptr(); + } + + template <class NodeRef> + static auto get_graph_weak_ptr(NodeRef&& node_ref) { + static_assert( + is_specialization_of<remove_cvref_t<NodeRef>, + Kokkos::Experimental::GraphNodeRef>::value, + "Kokkos Internal Implementation error (bad argument to " + "`GraphAccess::get_graph_weak_ptr()`)"); + return ((NodeRef &&) node_ref).get_graph_weak_ptr(); + } + + // </editor-fold> end accessors for private members of public interface }}}2 + //---------------------------------------------------------------------------- +}; + +template <class Policy> +struct _add_graph_kernel_tag; + +template <template <class...> class PolicyTemplate, class... PolicyTraits> +struct _add_graph_kernel_tag<PolicyTemplate<PolicyTraits...>> { + using type = PolicyTemplate<PolicyTraits..., IsGraphKernelTag>; +}; + +} // end namespace Impl + +namespace Experimental { // but not for users, so... + +template <class Policy> +// requires ExecutionPolicy<Policy> +constexpr auto require(Policy const& policy, + Kokkos::Impl::KernelInGraphProperty) { + static_assert(Kokkos::is_execution_policy<Policy>::value, + "Internal implementation error!"); + return typename Kokkos::Impl::_add_graph_kernel_tag<Policy>::type{policy}; +} + +} // end namespace Experimental + +} // end namespace Kokkos + +#endif // KOKKOS_IMPL_KOKKOS_GRAPHIMPL_HPP diff --git a/packages/kokkos/core/src/impl/Kokkos_GraphImpl_Utilities.hpp b/packages/kokkos/core/src/impl/Kokkos_GraphImpl_Utilities.hpp new file mode 100644 index 000000000..109d37a05 --- /dev/null +++ b/packages/kokkos/core/src/impl/Kokkos_GraphImpl_Utilities.hpp @@ -0,0 +1,119 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_KOKKOS_GRAPHIMPL_UTILITIES_HPP +#define KOKKOS_KOKKOS_GRAPHIMPL_UTILITIES_HPP + +#include <Kokkos_Macros.hpp> + +#include <Kokkos_Graph_fwd.hpp> + +#include <type_traits> + +namespace Kokkos { +namespace Impl { + +//============================================================================== +// <editor-fold desc="is_compatible_type_erasure"> {{{1 + +template <class Src, class Dst, class Enable = void> +struct is_compatible_type_erasure : std::false_type {}; + +template <class T> +struct is_compatible_type_erasure<T, Kokkos::Experimental::TypeErasedTag> + : std::true_type {}; + +template <> +struct is_compatible_type_erasure<Kokkos::Experimental::TypeErasedTag, + Kokkos::Experimental::TypeErasedTag> + : std::true_type {}; + +template <class T> +struct is_compatible_type_erasure<T, T> : std::true_type {}; + +// So there are a couple of ways we could do this, but I didn't want to set up +// all of the machinery to do a lazy instantiation of the convertibility +// condition in the converting constructor of GraphNodeRef, so I'm going with +// this for now: +// TODO @desul-integration make this variadic once we have a meta-conjunction +template <template <class, class, class> class Template, class TSrc, class USrc, + class VSrc, class TDst, class UDst, class VDst> +struct is_compatible_type_erasure< + Template<TSrc, USrc, VSrc>, Template<TDst, UDst, VDst>, + // Because gcc thinks this is ambiguous, we need to add this: + std::enable_if_t<!std::is_same<TSrc, TDst>::value || + !std::is_same<USrc, UDst>::value || + !std::is_same<VSrc, VDst>::value>> + : std::integral_constant< + bool, is_compatible_type_erasure<TSrc, TDst>::value && + is_compatible_type_erasure<USrc, UDst>::value && + is_compatible_type_erasure<VSrc, VDst>::value> {}; + +// </editor-fold> end is_compatible_type_erasure }}}1 +//============================================================================== + +//============================================================================== +// <editor-fold desc="is_more_type_erased"> {{{1 + +template <class T, class U> +struct is_more_type_erased : std::false_type {}; + +template <class T> +struct is_more_type_erased<Kokkos::Experimental::TypeErasedTag, T> + : std::true_type {}; + +template <> +struct is_more_type_erased<Kokkos::Experimental::TypeErasedTag, + Kokkos::Experimental::TypeErasedTag> + : std::false_type {}; + +// TODO @desul-integration variadic version of this, like the above + +// </editor-fold> end is_more_type_erased }}}1 +//============================================================================== + +} // end namespace Impl +} // end namespace Kokkos + +#endif // KOKKOS_KOKKOS_GRAPHIMPL_UTILITIES_HPP diff --git a/packages/kokkos/core/src/impl/Kokkos_GraphImpl_fwd.hpp b/packages/kokkos/core/src/impl/Kokkos_GraphImpl_fwd.hpp new file mode 100644 index 000000000..37c53075d --- /dev/null +++ b/packages/kokkos/core/src/impl/Kokkos_GraphImpl_fwd.hpp @@ -0,0 +1,87 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_IMPL_KOKKOS_GRAPHIMPL_FWD_HPP +#define KOKKOS_IMPL_KOKKOS_GRAPHIMPL_FWD_HPP + +#include <Kokkos_Macros.hpp> + +namespace Kokkos { +namespace Impl { + +template <class ExecutionSpace, class Kernel, class Predecessor> +struct GraphNodeImpl; + +template <class ExecutionSpace> +struct GraphImpl; + +template <class ExecutionSpace, class Policy, class Functor, + class KernelTypeTag, class... Args> +class GraphNodeKernelImpl; + +struct _graph_node_kernel_ctor_tag {}; +struct _graph_node_predecessor_ctor_tag {}; +struct _graph_node_is_root_ctor_tag {}; + +struct GraphAccess; + +// Customizable for backends +template <class ExecutionSpace> +struct GraphNodeBackendSpecificDetails; + +// Customizable for backends +template <class ExecutionSpace, class Kernel, class PredecessorRef> +struct GraphNodeBackendDetailsBeforeTypeErasure; + +// TODO move this to a more appropriate place +struct DoNotExplicitlySpecifyThisTemplateParameter; + +struct KernelInGraphProperty {}; + +struct IsGraphKernelTag {}; + +} // end namespace Impl +} // end namespace Kokkos + +#endif // KOKKOS_IMPL_KOKKOS_GRAPHIMPL_FWD_HPP diff --git a/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Invoke.hpp b/packages/kokkos/core/src/impl/Kokkos_GraphNodeCustomization.hpp similarity index 51% rename from packages/kokkos/core/src/ROCm/Kokkos_ROCm_Invoke.hpp rename to packages/kokkos/core/src/impl/Kokkos_GraphNodeCustomization.hpp index 989a4aec9..fc75f945a 100644 --- a/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Invoke.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_GraphNodeCustomization.hpp @@ -42,85 +42,57 @@ //@HEADER */ -#include <type_traits> -#include <Kokkos_Macros.hpp> +#ifndef KOKKOS_IMPL_KOKKOS_GRAPHNODECUSTOMIZATION_HPP +#define KOKKOS_IMPL_KOKKOS_GRAPHNODECUSTOMIZATION_HPP -#if !defined(KOKKOS_ROCM_INVOKE_H) -#define KOKKOS_ROCM_INVOKE_H +#include <Kokkos_Macros.hpp> +#include <Kokkos_Core_fwd.hpp> +#include <Kokkos_Graph_fwd.hpp> +#include <impl/Kokkos_GraphImpl_fwd.hpp> namespace Kokkos { namespace Impl { -template <class Tag, class F, class... Ts, - typename std::enable_if<(!std::is_void<Tag>()), int>::type = 0> -KOKKOS_INLINE_FUNCTION void rocm_invoke(F&& f, Ts&&... xs) { - f(Tag(), static_cast<Ts&&>(xs)...); -} - -template <class Tag, class F, class... Ts, - typename std::enable_if<(std::is_void<Tag>()), int>::type = 0> -KOKKOS_INLINE_FUNCTION void rocm_invoke(F&& f, Ts&&... xs) { - f(static_cast<Ts&&>(xs)...); -} - -template <class F, class Tag = void> -struct rocm_invoke_fn { - F* f; - rocm_invoke_fn(F& f_) : f(&f_) {} +// Customizable for backends +template <class ExecutionSpace, class Kernel, class PredecessorRef> +struct GraphNodeBackendDetailsBeforeTypeErasure { + protected: + //---------------------------------------------------------------------------- + // <editor-fold desc="ctors, destructor, and assignment"> {{{2 - template <class... Ts> - KOKKOS_INLINE_FUNCTION void operator()(Ts&&... xs) const { - rocm_invoke<Tag>(*f, static_cast<Ts&&>(xs)...); - } -}; - -template <class Tag, class F> -KOKKOS_INLINE_FUNCTION rocm_invoke_fn<F, Tag> make_rocm_invoke_fn(F& f) { - return {f}; -} + // Required constructors in customizations: + GraphNodeBackendDetailsBeforeTypeErasure( + ExecutionSpace const&, Kernel&, PredecessorRef const&, + GraphNodeBackendSpecificDetails<ExecutionSpace>& + /* this_as_details */) noexcept {} + GraphNodeBackendDetailsBeforeTypeErasure( + ExecutionSpace const&, _graph_node_is_root_ctor_tag, + GraphNodeBackendSpecificDetails<ExecutionSpace>& + /* this_as_details */) noexcept {} -template <class T> -KOKKOS_INLINE_FUNCTION T& rocm_unwrap(T& x) { - return x; -} + // Not copyable or movable at the concept level, so the default + // implementation shouldn't be either. + GraphNodeBackendDetailsBeforeTypeErasure() = delete; -template <class T> -KOKKOS_INLINE_FUNCTION T& rocm_unwrap(std::reference_wrapper<T> x) { - return x; -} + GraphNodeBackendDetailsBeforeTypeErasure( + GraphNodeBackendDetailsBeforeTypeErasure const&) = delete; -template <class F, class T> -struct rocm_capture_fn { - F f; - T data; + GraphNodeBackendDetailsBeforeTypeErasure( + GraphNodeBackendDetailsBeforeTypeErasure&&) = delete; - KOKKOS_INLINE_FUNCTION rocm_capture_fn(F f_, T x) : f(f_), data(x) {} - - template <class... Ts> - KOKKOS_INLINE_FUNCTION void operator()(Ts&&... xs) const { - f(rocm_unwrap(data), static_cast<Ts&&>(xs)...); - } -}; + GraphNodeBackendDetailsBeforeTypeErasure& operator =( + GraphNodeBackendDetailsBeforeTypeErasure const&) = delete; -template <class F, class T> -KOKKOS_INLINE_FUNCTION rocm_capture_fn<F, T> rocm_capture(F f, T x) { - return {f, x}; -} + GraphNodeBackendDetailsBeforeTypeErasure& operator=( + GraphNodeBackendDetailsBeforeTypeErasure&&) = delete; -template <class F, class T, class U, class... Ts> -KOKKOS_INLINE_FUNCTION auto rocm_capture(F f, T x, U y, Ts... xs) - -> decltype(rocm_capture(rocm_capture(f, x), y, xs...)) { - return rocm_capture(rocm_capture(f, x), y, xs...); -} + ~GraphNodeBackendDetailsBeforeTypeErasure() = default; -struct rocm_apply_op { - template <class F, class... Ts> - KOKKOS_INLINE_FUNCTION void operator()(F&& f, Ts&&... xs) const { - f(static_cast<Ts&&>(xs)...); - } + // </editor-fold> end ctors, destructor, and assignment }}}2 + //---------------------------------------------------------------------------- }; -} // namespace Impl -} // namespace Kokkos +} // end namespace Impl +} // end namespace Kokkos -#endif +#endif // KOKKOS_KOKKOS_GRAPHNODECUSTOMIZATION_HPP diff --git a/packages/kokkos/core/src/impl/Kokkos_GraphNodeImpl.hpp b/packages/kokkos/core/src/impl/Kokkos_GraphNodeImpl.hpp new file mode 100644 index 000000000..2515995c0 --- /dev/null +++ b/packages/kokkos/core/src/impl/Kokkos_GraphNodeImpl.hpp @@ -0,0 +1,298 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_IMPL_GRAPHNODEIMPL_HPP +#define KOKKOS_IMPL_GRAPHNODEIMPL_HPP + +#include <Kokkos_Macros.hpp> + +#include <Kokkos_Core_fwd.hpp> +#include <Kokkos_Graph_fwd.hpp> + +#include <impl/Kokkos_SimpleTaskScheduler.hpp> // ExecutionSpaceInstanceStorage +#include <impl/Kokkos_GraphImpl.hpp> +#include <impl/Kokkos_GraphNodeCustomization.hpp> + +#include <impl/Kokkos_EBO.hpp> + +#include <memory> + +namespace Kokkos { +namespace Impl { + +//============================================================================== +// <editor-fold desc="Fully type-erased GraphNodeImpl"> {{{1 + +// Base specialization for the case where both the kernel and the predecessor +// type information is type-erased +template <class ExecutionSpace> +struct GraphNodeImpl<ExecutionSpace, Kokkos::Experimental::TypeErasedTag, + Kokkos::Experimental::TypeErasedTag> + : GraphNodeBackendSpecificDetails<ExecutionSpace>, + ExecutionSpaceInstanceStorage<ExecutionSpace> { + public: + using node_ref_t = + Kokkos::Experimental::GraphNodeRef<ExecutionSpace, + Kokkos::Experimental::TypeErasedTag, + Kokkos::Experimental::TypeErasedTag>; + + protected: + using implementation_base_t = GraphNodeBackendSpecificDetails<ExecutionSpace>; + using execution_space_storage_base_t = + ExecutionSpaceInstanceStorage<ExecutionSpace>; + + public: + virtual ~GraphNodeImpl() = default; + + protected: + //---------------------------------------------------------------------------- + // <editor-fold desc="protected ctors and destructors"> {{{2 + + explicit GraphNodeImpl(ExecutionSpace const& ex) noexcept + : implementation_base_t(), execution_space_storage_base_t(ex) {} + + // </editor-fold> end protected ctors and destructors }}}2 + //---------------------------------------------------------------------------- + + public: + //---------------------------------------------------------------------------- + // <editor-fold desc="public(-ish) constructors"> {{{2 + + template <class... Args> + GraphNodeImpl(ExecutionSpace const& ex, _graph_node_is_root_ctor_tag, + Args&&... args) noexcept + : implementation_base_t(_graph_node_is_root_ctor_tag{}, + (Args &&) args...), + execution_space_storage_base_t(ex) {} + + // </editor-fold> end public(-ish) constructors }}}2 + //---------------------------------------------------------------------------- + + //---------------------------------------------------------------------------- + // <editor-fold desc="no other constructors"> {{{2 + + GraphNodeImpl() = delete; + GraphNodeImpl(GraphNodeImpl const&) = delete; + GraphNodeImpl(GraphNodeImpl&&) = delete; + GraphNodeImpl& operator=(GraphNodeImpl const&) = delete; + GraphNodeImpl& operator=(GraphNodeImpl&&) = delete; + + // </editor-fold> end no other constructors }}}2 + //---------------------------------------------------------------------------- + + ExecutionSpace const& execution_space_instance() const { + return this->execution_space_storage_base_t::execution_space_instance(); + } +}; + +// </editor-fold> end Fully type-erased GraphNodeImpl }}}1 +//============================================================================== + +//============================================================================== +// <editor-fold desc="Type-erased predecessor GraphNodeImpl"> {{{1 + +// Specialization for the case with the concrete type of the kernel, but the +// predecessor erased. +template <class ExecutionSpace, class Kernel> +struct GraphNodeImpl<ExecutionSpace, Kernel, + Kokkos::Experimental::TypeErasedTag> + : GraphNodeImpl<ExecutionSpace, Kokkos::Experimental::TypeErasedTag, + Kokkos::Experimental::TypeErasedTag> { + private: + using base_t = + GraphNodeImpl<ExecutionSpace, Kokkos::Experimental::TypeErasedTag, + Kokkos::Experimental::TypeErasedTag>; + + public: + //---------------------------------------------------------------------------- + // <editor-fold desc="public member types"> {{{2 + + using node_ref_t = + Kokkos::Experimental::GraphNodeRef<ExecutionSpace, Kernel, + Kokkos::Experimental::TypeErasedTag>; + using kernel_type = Kernel; + + // </editor-fold> end public member types }}}2 + //---------------------------------------------------------------------------- + + private: + //---------------------------------------------------------------------------- + // <editor-fold desc="private data members"> {{{2 + + Kernel m_kernel; + + // </editor-fold> end private data members }}}2 + //---------------------------------------------------------------------------- + + public: + //---------------------------------------------------------------------------- + // <editor-fold desc="Ctors, destructors, and assignment"> {{{2 + + template <class KernelDeduced> + GraphNodeImpl(ExecutionSpace const& ex, _graph_node_kernel_ctor_tag, + KernelDeduced&& arg_kernel) + : base_t(ex), m_kernel((KernelDeduced &&) arg_kernel) {} + + template <class... Args> + GraphNodeImpl(ExecutionSpace const& ex, _graph_node_is_root_ctor_tag, + Args&&... args) + : base_t(ex, _graph_node_is_root_ctor_tag{}, (Args &&) args...) {} + + //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // <editor-fold desc="Rule of 6 for not copyable or movable"> {{{3 + + // Not copyable or movable + GraphNodeImpl() = delete; + GraphNodeImpl(GraphNodeImpl const&) = delete; + GraphNodeImpl(GraphNodeImpl&&) = delete; + GraphNodeImpl& operator=(GraphNodeImpl const&) = delete; + GraphNodeImpl& operator=(GraphNodeImpl&&) = delete; + ~GraphNodeImpl() override = default; + + // </editor-fold> end Rule of 6 for not copyable or movable }}}3 + //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + // </editor-fold> end Ctors, destructors, and assignment }}}2 + //---------------------------------------------------------------------------- + + //---------------------------------------------------------------------------- + // <editor-fold desc="member accessors"> {{{2 + + // Reference qualified to prevent dangling reference to data member + Kernel& get_kernel() & { return m_kernel; } + Kernel const& get_kernel() const& { return m_kernel; } + Kernel&& get_kernel() && = delete; + + // </editor-fold> end member accessors }}}2 + //---------------------------------------------------------------------------- +}; + +// </editor-fold> end Type-erased predecessor GraphNodeImpl }}}1 +//============================================================================== + +//============================================================================== +// <editor-fold desc="Fully concrete GraphNodeImpl"> {{{1 + +// Specialization for the case where nothing is type-erased +template <class ExecutionSpace, class Kernel, class PredecessorRef> +struct GraphNodeImpl + : GraphNodeImpl<ExecutionSpace, Kernel, + Kokkos::Experimental::TypeErasedTag>, + GraphNodeBackendDetailsBeforeTypeErasure<ExecutionSpace, Kernel, + PredecessorRef> { + private: + using base_t = GraphNodeImpl<ExecutionSpace, Kernel, + Kokkos::Experimental::TypeErasedTag>; + using backend_details_base_t = + GraphNodeBackendDetailsBeforeTypeErasure<ExecutionSpace, Kernel, + PredecessorRef>; + // The fully type-erased base type, for the destroy function + using type_erased_base_t = + GraphNodeImpl<ExecutionSpace, Kokkos::Experimental::TypeErasedTag, + Kokkos::Experimental::TypeErasedTag>; + + public: + //---------------------------------------------------------------------------- + // <editor-fold desc="public data members"> {{{2 + + using node_ref_t = Kokkos::Experimental::GraphNodeRef<ExecutionSpace, Kernel, + PredecessorRef>; + + // </editor-fold> end public data members }}}2 + //---------------------------------------------------------------------------- + + private: + //---------------------------------------------------------------------------- + // <editor-fold desc="private data members"> {{{2 + + PredecessorRef m_predecessor_ref; + + // </editor-fold> end private data members }}}2 + //---------------------------------------------------------------------------- + + public: + //---------------------------------------------------------------------------- + // <editor-fold desc="Ctors, destructors, and assignment"> {{{2 + + // Not copyable or movable + GraphNodeImpl() = delete; + GraphNodeImpl(GraphNodeImpl const&) = delete; + GraphNodeImpl(GraphNodeImpl&&) = delete; + GraphNodeImpl& operator=(GraphNodeImpl const&) = delete; + GraphNodeImpl& operator=(GraphNodeImpl&&) = delete; + ~GraphNodeImpl() override = default; + + // Normal kernel-and-predecessor constructor + template <class KernelDeduced, class PredecessorPtrDeduced> + GraphNodeImpl(ExecutionSpace const& ex, _graph_node_kernel_ctor_tag, + KernelDeduced&& arg_kernel, _graph_node_predecessor_ctor_tag, + PredecessorPtrDeduced&& arg_predecessor) + : base_t(ex, _graph_node_kernel_ctor_tag{}, + (KernelDeduced &&) arg_kernel), + // The backend gets the ability to store (weak, non-owning) references + // to the kernel in it's final resting place here if it wants. The + // predecessor is already a pointer, so it doesn't matter that it isn't + // already at its final address + backend_details_base_t(ex, this->base_t::get_kernel(), arg_predecessor, + *this), + m_predecessor_ref((PredecessorPtrDeduced &&) arg_predecessor) {} + + // Root-tagged constructor + template <class... Args> + GraphNodeImpl(ExecutionSpace const& ex, _graph_node_is_root_ctor_tag, + Args&&... args) + : base_t(ex, _graph_node_is_root_ctor_tag{}, (Args &&) args...), + backend_details_base_t(ex, _graph_node_is_root_ctor_tag{}, *this), + m_predecessor_ref() {} + + // </editor-fold> end Ctors, destructors, and assignment }}}2 + //------------------------------------------------------------------------------ +}; + +// </editor-fold> end Fully concrete GraphNodeImpl }}}1 +//============================================================================== +} // end namespace Impl +} // end namespace Kokkos + +#endif // KOKKOS_IMPL_GRAPHNODEIMPL_HPP diff --git a/packages/kokkos/core/src/impl/Kokkos_HBWSpace.cpp b/packages/kokkos/core/src/impl/Kokkos_HBWSpace.cpp index 9b5bee227..aeebcb64e 100644 --- a/packages/kokkos/core/src/impl/Kokkos_HBWSpace.cpp +++ b/packages/kokkos/core/src/impl/Kokkos_HBWSpace.cpp @@ -62,9 +62,7 @@ #include <memkind.h> #endif -#if defined(KOKKOS_ENABLE_PROFILING) -#include <impl/Kokkos_Profiling_Interface.hpp> -#endif +#include <impl/Kokkos_Tools.hpp> //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- @@ -93,6 +91,16 @@ HBWSpace::HBWSpace(const HBWSpace::AllocationMechanism &arg_alloc_mech) } void *HBWSpace::allocate(const size_t arg_alloc_size) const { + return allocate("[unlabeled]", arg_alloc_size); +} +void *HBWSpace::allocate(const char *arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size) const { + return impl_allocate(arg_label, arg_alloc_size, arg_logical_size); +} +void *HBWSpace::impl_allocate( + const char *arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size, + const Kokkos::Tools::SpaceHandle arg_handle) const { static_assert(sizeof(void *) == sizeof(uintptr_t), "Error sizeof(void*) != sizeof(uintptr_t)"); @@ -103,7 +111,7 @@ void *HBWSpace::allocate(const size_t arg_alloc_size) const { constexpr uintptr_t alignment = Kokkos::Impl::MEMORY_ALIGNMENT; constexpr uintptr_t alignment_mask = alignment - 1; - void *ptr = 0; + void *ptr = nullptr; if (arg_alloc_size) { if (m_alloc_mech == STD_MALLOC) { @@ -128,12 +136,15 @@ void *HBWSpace::allocate(const size_t arg_alloc_size) const { } } - if ((ptr == 0) || (reinterpret_cast<uintptr_t>(ptr) == ~uintptr_t(0)) || + if ((ptr == nullptr) || (reinterpret_cast<uintptr_t>(ptr) == ~uintptr_t(0)) || (reinterpret_cast<uintptr_t>(ptr) & alignment_mask)) { std::ostringstream msg; msg << "Kokkos::Experimental::HBWSpace::allocate[ "; switch (m_alloc_mech) { case STD_MALLOC: msg << "STD_MALLOC"; break; + case POSIX_MEMALIGN: msg << "POSIX_MEMALIGN"; break; + case POSIX_MMAP: msg << "POSIX_MMAP"; break; + case INTEL_MM_ALLOC: msg << "INTEL_MM_ALLOC"; break; } msg << " ]( " << arg_alloc_size << " ) FAILED"; if (ptr == nullptr) { @@ -147,13 +158,36 @@ void *HBWSpace::allocate(const size_t arg_alloc_size) const { Kokkos::Impl::throw_runtime_exception(msg.str()); } + if (Kokkos::Profiling::profileLibraryLoaded()) { + const size_t reported_size = + (arg_logical_size > 0) ? arg_logical_size : arg_alloc_size; + Kokkos::Profiling::allocateData(arg_handle, arg_label, ptr, reported_size); + } return ptr; } void HBWSpace::deallocate(void *const arg_alloc_ptr, const size_t arg_alloc_size) const { + deallocate("[unlabeled]", arg_alloc_ptr, arg_alloc_size); +} +void HBWSpace::deallocate(const char *arg_label, void *const arg_alloc_ptr, + const size_t arg_alloc_size, + const size_t arg_logical_size) const { + impl_deallocate(arg_label, arg_alloc_ptr, arg_alloc_size, arg_logical_size); +} +void HBWSpace::impl_deallocate( + const char *arg_label, void *const arg_alloc_ptr, + const size_t arg_alloc_size, const size_t arg_logical_size, + const Kokkos::Tools::SpaceHandle arg_handle) const { if (arg_alloc_ptr) { + if (Kokkos::Profiling::profileLibraryLoaded()) { + const size_t reported_size = + (arg_logical_size > 0) ? arg_logical_size : arg_alloc_size; + Kokkos::Profiling::deallocateData(arg_handle, arg_label, arg_alloc_ptr, + reported_size); + } + if (m_alloc_mech == STD_MALLOC) { void *alloc_ptr = *(reinterpret_cast<void **>(arg_alloc_ptr) - 1); memkind_free(MEMKIND_TYPE, alloc_ptr); @@ -170,7 +204,7 @@ void HBWSpace::deallocate(void *const arg_alloc_ptr, namespace Kokkos { namespace Impl { -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG SharedAllocationRecord<void, void> SharedAllocationRecord<Kokkos::Experimental::HBWSpace, void>::s_root_record; #endif @@ -187,16 +221,12 @@ SharedAllocationRecord<Kokkos::Experimental::HBWSpace, noexcept #endif { -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::deallocateData( - Kokkos::Profiling::SpaceHandle(Kokkos::Experimental::HBWSpace::name()), - RecordBase::m_alloc_ptr->m_label, data(), size()); - } -#endif - m_space.deallocate(SharedAllocationRecord<void, void>::m_alloc_ptr, - SharedAllocationRecord<void, void>::m_alloc_size); + m_space.deallocate(RecordBase::m_alloc_ptr->m_label, + SharedAllocationRecord<void, void>::m_alloc_ptr, + SharedAllocationRecord<void, void>::m_alloc_size, + (SharedAllocationRecord<void, void>::m_alloc_size - + sizeof(SharedAllocationHeader))); } SharedAllocationRecord<Kokkos::Experimental::HBWSpace, void>:: @@ -207,7 +237,7 @@ SharedAllocationRecord<Kokkos::Experimental::HBWSpace, void>:: // Pass through allocated [ SharedAllocationHeader , user_memory ] // Pass through deallocation function : SharedAllocationRecord<void, void>( -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG &SharedAllocationRecord<Kokkos::Experimental::HBWSpace, void>::s_root_record, #endif @@ -215,14 +245,6 @@ SharedAllocationRecord<Kokkos::Experimental::HBWSpace, void>:: arg_alloc_size), sizeof(SharedAllocationHeader) + arg_alloc_size, arg_dealloc), m_space(arg_space) { -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::allocateData( - Kokkos::Profiling::SpaceHandle(arg_space.name()), arg_label, data(), - arg_alloc_size); - } -#endif - // Fill in the Header information RecordBase::m_alloc_ptr->m_record = static_cast<SharedAllocationRecord<void, void> *>(this); @@ -240,7 +262,7 @@ void * SharedAllocationRecord<Kokkos::Experimental::HBWSpace, void>::allocate_tracked( const Kokkos::Experimental::HBWSpace &arg_space, const std::string &arg_alloc_label, const size_t arg_alloc_size) { - if (!arg_alloc_size) return (void *)0; + if (!arg_alloc_size) return nullptr; SharedAllocationRecord *const r = allocate(arg_space, arg_alloc_label, arg_alloc_size); @@ -253,7 +275,7 @@ SharedAllocationRecord<Kokkos::Experimental::HBWSpace, void>::allocate_tracked( void SharedAllocationRecord<Kokkos::Experimental::HBWSpace, void>::deallocate_tracked(void *const arg_alloc_ptr) { - if (arg_alloc_ptr != 0) { + if (arg_alloc_ptr != nullptr) { SharedAllocationRecord *const r = get_record(arg_alloc_ptr); RecordBase::decrement(r); @@ -279,14 +301,14 @@ void *SharedAllocationRecord<Kokkos::Experimental::HBWSpace, void>:: SharedAllocationRecord<Kokkos::Experimental::HBWSpace, void> *SharedAllocationRecord<Kokkos::Experimental::HBWSpace, void>::get_record( void *alloc_ptr) { - typedef SharedAllocationHeader Header; - typedef SharedAllocationRecord<Kokkos::Experimental::HBWSpace, void> - RecordHost; + using Header = SharedAllocationHeader; + using RecordHost = + SharedAllocationRecord<Kokkos::Experimental::HBWSpace, void>; SharedAllocationHeader const *const head = - alloc_ptr ? Header::get_header(alloc_ptr) : (SharedAllocationHeader *)0; + alloc_ptr ? Header::get_header(alloc_ptr) : nullptr; RecordHost *const record = - head ? static_cast<RecordHost *>(head->m_record) : (RecordHost *)0; + head ? static_cast<RecordHost *>(head->m_record) : nullptr; if (!alloc_ptr || record->m_alloc_ptr != head) { Kokkos::Impl::throw_runtime_exception(std::string( @@ -301,13 +323,13 @@ SharedAllocationRecord<Kokkos::Experimental::HBWSpace, void> void SharedAllocationRecord<Kokkos::Experimental::HBWSpace, void>:: print_records(std::ostream &s, const Kokkos::Experimental::HBWSpace &space, bool detail) { -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG SharedAllocationRecord<void, void>::print_host_accessible_records( s, "HBWSpace", &s_root_record, detail); #else throw_runtime_exception( "SharedAllocationRecord<HBWSpace>::print_records" - " only works with KOKKOS_DEBUG enabled"); + " only works with KOKKOS_ENABLE_DEBUG enabled"); #endif } diff --git a/packages/kokkos/core/src/impl/Kokkos_HostSpace.cpp b/packages/kokkos/core/src/impl/Kokkos_HostSpace.cpp index 59d14e539..130e5cce1 100644 --- a/packages/kokkos/core/src/impl/Kokkos_HostSpace.cpp +++ b/packages/kokkos/core/src/impl/Kokkos_HostSpace.cpp @@ -47,9 +47,7 @@ #include <Kokkos_Macros.hpp> #include <impl/Kokkos_Error.hpp> #include <impl/Kokkos_MemorySpace.hpp> -#if defined(KOKKOS_ENABLE_PROFILING) -#include <impl/Kokkos_Profiling_Interface.hpp> -#endif +#include <impl/Kokkos_Tools.hpp> /*--------------------------------------------------------------------------*/ @@ -166,6 +164,20 @@ HostSpace::HostSpace(const HostSpace::AllocationMechanism &arg_alloc_mech) } void *HostSpace::allocate(const size_t arg_alloc_size) const { + return allocate("[unlabeled]", arg_alloc_size); +} +void *HostSpace::allocate(const char *arg_label, const size_t arg_alloc_size, + const size_t + + arg_logical_size) const { + return impl_allocate(arg_label, arg_alloc_size, arg_logical_size); +} +void *HostSpace::impl_allocate( + const char *arg_label, const size_t arg_alloc_size, + const size_t arg_logical_size, + const Kokkos::Tools::SpaceHandle arg_handle) const { + const size_t reported_size = + (arg_logical_size > 0) ? arg_logical_size : arg_alloc_size; static_assert(sizeof(void *) == sizeof(uintptr_t), "Error sizeof(void*) != sizeof(uintptr_t)"); @@ -274,16 +286,35 @@ void *HostSpace::allocate(const size_t arg_alloc_size) const { throw Kokkos::Experimental::RawMemoryAllocationFailure( arg_alloc_size, alignment, failure_mode, alloc_mec); } - + if (Kokkos::Profiling::profileLibraryLoaded()) { + Kokkos::Profiling::allocateData(arg_handle, arg_label, ptr, reported_size); + } return ptr; } -void HostSpace::deallocate(void *const arg_alloc_ptr, const size_t -#if defined(KOKKOS_IMPL_POSIX_MMAP_FLAGS) - arg_alloc_size -#endif - ) const { +void HostSpace::deallocate(void *const arg_alloc_ptr, + const size_t arg_alloc_size) const { + deallocate("[unlabeled]", arg_alloc_ptr, arg_alloc_size); +} + +void HostSpace::deallocate(const char *arg_label, void *const arg_alloc_ptr, + const size_t arg_alloc_size, + const size_t + + arg_logical_size) const { + impl_deallocate(arg_label, arg_alloc_ptr, arg_alloc_size, arg_logical_size); +} +void HostSpace::impl_deallocate( + const char *arg_label, void *const arg_alloc_ptr, + const size_t arg_alloc_size, const size_t arg_logical_size, + const Kokkos::Tools::SpaceHandle arg_handle) const { if (arg_alloc_ptr) { + size_t reported_size = + (arg_logical_size > 0) ? arg_logical_size : arg_alloc_size; + if (Kokkos::Profiling::profileLibraryLoaded()) { + Kokkos::Profiling::deallocateData(arg_handle, arg_label, arg_alloc_ptr, + reported_size); + } if (m_alloc_mech == STD_MALLOC) { void *alloc_ptr = *(reinterpret_cast<void **>(arg_alloc_ptr) - 1); free(alloc_ptr); @@ -316,7 +347,7 @@ void HostSpace::deallocate(void *const arg_alloc_ptr, const size_t namespace Kokkos { namespace Impl { -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG SharedAllocationRecord<void, void> SharedAllocationRecord<Kokkos::HostSpace, void>::s_root_record; #endif @@ -332,16 +363,12 @@ SharedAllocationRecord<Kokkos::HostSpace, void>::~SharedAllocationRecord() noexcept #endif { -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::deallocateData( - Kokkos::Profiling::SpaceHandle(Kokkos::HostSpace::name()), - RecordBase::m_alloc_ptr->m_label, data(), size()); - } -#endif - m_space.deallocate(SharedAllocationRecord<void, void>::m_alloc_ptr, - SharedAllocationRecord<void, void>::m_alloc_size); + m_space.deallocate(RecordBase::m_alloc_ptr->m_label, + SharedAllocationRecord<void, void>::m_alloc_ptr, + SharedAllocationRecord<void, void>::m_alloc_size, + (SharedAllocationRecord<void, void>::m_alloc_size - + sizeof(SharedAllocationHeader))); } SharedAllocationHeader *_do_allocation(Kokkos::HostSpace const &space, @@ -373,20 +400,13 @@ SharedAllocationRecord<Kokkos::HostSpace, void>::SharedAllocationRecord( // Pass through allocated [ SharedAllocationHeader , user_memory ] // Pass through deallocation function : SharedAllocationRecord<void, void>( -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG &SharedAllocationRecord<Kokkos::HostSpace, void>::s_root_record, #endif Impl::checked_allocation_with_header(arg_space, arg_label, arg_alloc_size), sizeof(SharedAllocationHeader) + arg_alloc_size, arg_dealloc), m_space(arg_space) { -#if defined(KOKKOS_ENABLE_PROFILING) - if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::allocateData( - Kokkos::Profiling::SpaceHandle(arg_space.name()), arg_label, data(), - arg_alloc_size); - } -#endif // Fill in the Header information RecordBase::m_alloc_ptr->m_record = static_cast<SharedAllocationRecord<void, void> *>(this); @@ -439,8 +459,8 @@ void *SharedAllocationRecord<Kokkos::HostSpace, void>::reallocate_tracked( SharedAllocationRecord<Kokkos::HostSpace, void> * SharedAllocationRecord<Kokkos::HostSpace, void>::get_record(void *alloc_ptr) { - typedef SharedAllocationHeader Header; - typedef SharedAllocationRecord<Kokkos::HostSpace, void> RecordHost; + using Header = SharedAllocationHeader; + using RecordHost = SharedAllocationRecord<Kokkos::HostSpace, void>; SharedAllocationHeader const *const head = alloc_ptr ? Header::get_header(alloc_ptr) : nullptr; @@ -457,7 +477,7 @@ SharedAllocationRecord<Kokkos::HostSpace, void>::get_record(void *alloc_ptr) { } // Iterate records to print orphaned memory ... -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG void SharedAllocationRecord<Kokkos::HostSpace, void>::print_records( std::ostream &s, const Kokkos::HostSpace &, bool detail) { SharedAllocationRecord<void, void>::print_host_accessible_records( @@ -468,7 +488,7 @@ void SharedAllocationRecord<Kokkos::HostSpace, void>::print_records( std::ostream &, const Kokkos::HostSpace &, bool) { throw_runtime_exception( "SharedAllocationRecord<HostSpace>::print_records only works with " - "KOKKOS_DEBUG enabled"); + "KOKKOS_ENABLE_DEBUG enabled"); } #endif diff --git a/packages/kokkos/core/src/impl/Kokkos_HostSpace_deepcopy.cpp b/packages/kokkos/core/src/impl/Kokkos_HostSpace_deepcopy.cpp index 35eee40ab..b86670346 100644 --- a/packages/kokkos/core/src/impl/Kokkos_HostSpace_deepcopy.cpp +++ b/packages/kokkos/core/src/impl/Kokkos_HostSpace_deepcopy.cpp @@ -60,7 +60,7 @@ void hostspace_parallel_deepcopy(void* dst, const void* src, ptrdiff_t n) { return; } - typedef Kokkos::RangePolicy<Kokkos::DefaultHostExecutionSpace> policy_t; + using policy_t = Kokkos::RangePolicy<Kokkos::DefaultHostExecutionSpace>; // Both src and dst are aligned the same way with respect to 8 byte words if (reinterpret_cast<ptrdiff_t>(src) % 8 == diff --git a/packages/kokkos/core/src/impl/Kokkos_HostThreadTeam.hpp b/packages/kokkos/core/src/impl/Kokkos_HostThreadTeam.hpp index 9e4dda941..2480967eb 100644 --- a/packages/kokkos/core/src/impl/Kokkos_HostThreadTeam.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_HostThreadTeam.hpp @@ -155,19 +155,6 @@ class HostThreadTeamData { } inline int pool_rendezvous() const noexcept { -// not sure if the follow hack is still needed with the new barrier -#if 0 - static constexpr bool active_wait = -#if defined(KOKKOS_COMPILER_IBM) - // If running on IBM POWER architecture the global - // level rendzvous should immediately yield when - // waiting for other threads in the pool to arrive. - false; -#else - true; -#endif -#endif - int* ptr = (int*)(m_pool_scratch + m_pool_rendezvous); HostBarrier::split_arrive(ptr, m_pool_size, m_pool_rendezvous_step); if (m_pool_rank != 0) { diff --git a/packages/kokkos/core/src/impl/Kokkos_MemoryPool.cpp b/packages/kokkos/core/src/impl/Kokkos_MemoryPool.cpp index d48368f76..889d821bb 100644 --- a/packages/kokkos/core/src/impl/Kokkos_MemoryPool.cpp +++ b/packages/kokkos/core/src/impl/Kokkos_MemoryPool.cpp @@ -42,9 +42,10 @@ //@HEADER */ +#include <impl/Kokkos_Error.hpp> + #include <ostream> #include <sstream> -#include <impl/Kokkos_Error.hpp> //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- @@ -106,5 +107,29 @@ void memory_pool_bounds_verification(size_t min_block_alloc_size, } } +// This has way too many parameters, but it is entirely for moving the iostream +// inclusion out of the header file with as few changes as possible +void _print_memory_pool_state(std::ostream& s, uint32_t const* sb_state_ptr, + int32_t sb_count, uint32_t sb_size_lg2, + uint32_t sb_state_size, uint32_t state_shift, + uint32_t state_used_mask) { + s << "pool_size(" << (size_t(sb_count) << sb_size_lg2) << ")" + << " superblock_size(" << (1LU << sb_size_lg2) << ")" << std::endl; + + for (int32_t i = 0; i < sb_count; ++i, sb_state_ptr += sb_state_size) { + if (*sb_state_ptr) { + const uint32_t block_count_lg2 = (*sb_state_ptr) >> state_shift; + const uint32_t block_size_lg2 = sb_size_lg2 - block_count_lg2; + const uint32_t block_count = 1u << block_count_lg2; + const uint32_t block_used = (*sb_state_ptr) & state_used_mask; + + s << "Superblock[ " << i << " / " << sb_count << " ] {" + << " block_size(" << (1 << block_size_lg2) << ")" + << " block_count( " << block_used << " / " << block_count << " )" + << std::endl; + } + } +} + } // namespace Impl } // namespace Kokkos diff --git a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp b/packages/kokkos/core/src/impl/Kokkos_MemorySpace.cpp similarity index 53% rename from packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp rename to packages/kokkos/core/src/impl/Kokkos_MemorySpace.cpp index e6892ca01..ec2e573c0 100644 --- a/packages/kokkos/core/src/eti/ROCm/Kokkos_ROCm_ViewCopyETIInst_int_int_LayoutLeft_Rank3.cpp +++ b/packages/kokkos/core/src/impl/Kokkos_MemorySpace.cpp @@ -1,15 +1,13 @@ +/* //@HEADER // ************************************************************************ // // Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). +// Copyright (2019) Sandia Corporation // // Under the terms of Contract DE-NA0003525 with NTESS, // the U.S. Government retains certain rights in this software. // -// Kokkos is licensed under 3-clause BSD terms of use: -// // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: @@ -41,18 +39,57 @@ // // ************************************************************************ //@HEADER +*/ + +/** @file Kokkos_MemorySpace.cpp + * + * Operations common to memory space instances, or at least default + * implementations thereof. + */ + +#include <impl/Kokkos_MemorySpace.hpp> + +#include <iostream> +#include <string> +#include <sstream> -#define KOKKOS_IMPL_COMPILING_LIBRARY true -#include <Kokkos_Core.hpp> namespace Kokkos { namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutRight, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutLeft, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int***, LayoutLeft, LayoutStride, - Experimental::ROCm, int) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int***, LayoutLeft, Experimental::ROCm, int) -} // namespace Impl -} // namespace Kokkos +void safe_throw_allocation_with_header_failure( + std::string const& space_name, std::string const& label, + Kokkos::Experimental::RawMemoryAllocationFailure const& failure) { + auto generate_failure_message = [&](std::ostream& o) { + o << "Kokkos failed to allocate memory for label \"" << label + << "\". Allocation using MemorySpace named \"" << space_name + << "\" failed with the following error: "; + failure.print_error_message(o); + if (failure.failure_mode() == + Kokkos::Experimental::RawMemoryAllocationFailure::FailureMode:: + AllocationNotAligned) { + // TODO: delete the misaligned memory? + o << "Warning: Allocation failed due to misalignment; memory may " + "be leaked.\n"; + } + o.flush(); + }; + try { + std::ostringstream sstr; + generate_failure_message(sstr); + Kokkos::Impl::throw_runtime_exception(sstr.str()); + } catch (std::bad_alloc const&) { + // Probably failed to allocate the string because we're so close to out + // of memory. Try printing to std::cerr instead + try { + generate_failure_message(std::cerr); + } catch (std::bad_alloc const&) { + // oh well, we tried... + } + Kokkos::Impl::throw_runtime_exception( + "Kokkos encountered an allocation failure, then another allocation " + "failure while trying to create the error message."); + } +} + +} // end namespace Impl +} // end namespace Kokkos diff --git a/packages/kokkos/core/src/impl/Kokkos_MemorySpace.hpp b/packages/kokkos/core/src/impl/Kokkos_MemorySpace.hpp index 650cf8a70..5b3764686 100644 --- a/packages/kokkos/core/src/impl/Kokkos_MemorySpace.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_MemorySpace.hpp @@ -55,51 +55,25 @@ #include <impl/Kokkos_Error.hpp> #include <string> -#include <iostream> -#include <sstream> namespace Kokkos { namespace Impl { +// Defined in implementation file to avoid having to include iostream +void safe_throw_allocation_with_header_failure( + std::string const &space_name, std::string const &label, + Kokkos::Experimental::RawMemoryAllocationFailure const &failure); + template <class MemorySpace> SharedAllocationHeader *checked_allocation_with_header(MemorySpace const &space, std::string const &label, size_t alloc_size) { try { - return reinterpret_cast<SharedAllocationHeader *>( - space.allocate(alloc_size + sizeof(SharedAllocationHeader))); + return reinterpret_cast<SharedAllocationHeader *>(space.allocate( + label.c_str(), alloc_size + sizeof(SharedAllocationHeader), + alloc_size)); } catch (Kokkos::Experimental::RawMemoryAllocationFailure const &failure) { - auto generate_failure_message = [&](std::ostream &o) { - o << "Kokkos failed to allocate memory for label \"" << label - << "\". Allocation using MemorySpace named \"" << space.name() - << "\" failed with the following error: "; - failure.print_error_message(o); - if (failure.failure_mode() == - Kokkos::Experimental::RawMemoryAllocationFailure::FailureMode:: - AllocationNotAligned) { - // TODO: delete the misaligned memory? - o << "Warning: Allocation failed due to misalignment; memory may " - "be leaked." - << std::endl; - } - o.flush(); - }; - try { - std::ostringstream sstr; - generate_failure_message(sstr); - Kokkos::Impl::throw_runtime_exception(sstr.str()); - } catch (std::bad_alloc const &) { - // Probably failed to allocate the string because we're so close to out - // of memory. Try printing to std::cerr instead - try { - generate_failure_message(std::cerr); - } catch (std::bad_alloc const &) { - // oh well, we tried... - } - Kokkos::Impl::throw_runtime_exception( - "Kokkos encountered an allocation failure, then another allocation " - "failure while trying to create the error message."); - } + safe_throw_allocation_with_header_failure(space.name(), label, failure); } return nullptr; // unreachable } diff --git a/packages/kokkos/core/src/impl/Kokkos_Memory_Fence.hpp b/packages/kokkos/core/src/impl/Kokkos_Memory_Fence.hpp index eae14a92d..262aa9e3e 100644 --- a/packages/kokkos/core/src/impl/Kokkos_Memory_Fence.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_Memory_Fence.hpp @@ -53,9 +53,9 @@ KOKKOS_FORCEINLINE_FUNCTION void memory_fence() { #if defined(__CUDA_ARCH__) __threadfence(); -#elif defined(KOKKOS_ENABLE_ROCM_ATOMICS) - amp_barrier(CLK_LOCAL_MEM_FENCE | CLK_GLOBAL_MEM_FENCE); -#elif defined(KOKKOS_ENABLE_HIP_ATOMICS) +#elif defined(KOKKOS_ENABLE_OPENMPTARGET) +#pragma omp flush +#elif defined(__HIP_DEVICE_COMPILE__) __threadfence(); #elif defined(KOKKOS_ENABLE_ASM) && defined(KOKKOS_ENABLE_ISA_X86_64) asm volatile("mfence" ::: "memory"); diff --git a/packages/kokkos/core/src/impl/Kokkos_OldMacros.hpp b/packages/kokkos/core/src/impl/Kokkos_OldMacros.hpp deleted file mode 100644 index fbb921d7f..000000000 --- a/packages/kokkos/core/src/impl/Kokkos_OldMacros.hpp +++ /dev/null @@ -1,526 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#ifndef KOKKOS_IMPL_OLD_MACROS_HPP -#define KOKKOS_IMPL_OLD_MACROS_HPP - -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - -#ifdef KOKKOS_ATOMICS_USE_CUDA -#ifndef KOKKOS_ENABLE_CUDA_ATOMICS -#define KOKKOS_ENABLE_CUDA_ATOMICS KOKKOS_ATOMICS_USE_CUDA -#endif -#endif - -#ifdef KOKKOS_ATOMICS_USE_GCC -#ifndef KOKKOS_ENABLE_GNU_ATOMICS -#define KOKKOS_ENABLE_GNU_ATOMICS KOKKOS_ATOMICS_USE_GCC -#endif -#endif - -#ifdef KOKKOS_ATOMICS_USE_GNU -#ifndef KOKKOS_ENABLE_GNU_ATOMICS -#define KOKKOS_ENABLE_GNU_ATOMICS KOKKOS_ATOMICS_USE_GNU -#endif -#endif - -#ifdef KOKKOS_ATOMICS_USE_INTEL -#ifndef KOKKOS_ENABLE_INTEL_ATOMICS -#define KOKKOS_ENABLE_INTEL_ATOMICS KOKKOS_ATOMICS_USE_INTEL -#endif -#endif - -#ifdef KOKKOS_ATOMICS_USE_OMP31 -#ifndef KOKKOS_ENABLE_OPENMP_ATOMICS -#define KOKKOS_ENABLE_OPENMP_ATOMICS KOKKOS_ATOMICS_USE_OMP31 -#endif -#endif - -#ifdef KOKKOS_ATOMICS_USE_OPENMP31 -#ifndef KOKKOS_ENABLE_OPENMP_ATOMICS -#define KOKKOS_ENABLE_OPENMP_ATOMICS KOKKOS_ATOMICS_USE_OPENMP31 -#endif -#endif - -#ifdef KOKKOS_ATOMICS_USE_WINDOWS -#ifndef KOKKOS_ENABLE_WINDOWS_ATOMICS -#define KOKKOS_ENABLE_WINDOWS_ATOMICS KOKKOS_ATOMICS_USE_WINDOWS -#endif -#endif - -#ifdef KOKKOS_CUDA_CLANG_WORKAROUND -#ifndef KOKKOS_IMPL_CUDA_CLANG_WORKAROUND -#define KOKKOS_IMPL_CUDA_CLANG_WORKAROUND KOKKOS_CUDA_CLANG_WORKAROUND -#endif -#endif - -#ifdef KOKKOS_CUDA_USE_LAMBDA -#ifndef KOKKOS_ENABLE_CUDA_LAMBDA -#define KOKKOS_ENABLE_CUDA_LAMBDA KOKKOS_CUDA_USE_LAMBDA -#endif -#endif - -#ifdef KOKKOS_CUDA_USE_LDG_INTRINSIC -#ifndef KOKKOS_ENABLE_CUDA_LDG_INTRINSIC -#define KOKKOS_ENABLE_CUDA_LDG_INTRINSIC KOKKOS_CUDA_USE_LDG_INTRINSIC -#endif -#endif - -#ifdef KOKKOS_CUDA_USE_RELOCATABLE_DEVICE_CODE -#ifndef KOKKOS_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE -#define KOKKOS_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE \ - KOKKOS_CUDA_USE_RELOCATABLE_DEVICE_CODE -#endif -#endif - -#ifdef KOKKOS_CUDA_USE_UVM -#ifndef KOKKOS_ENABLE_CUDA_UVM -#define KOKKOS_ENABLE_CUDA_UVM KOKKOS_CUDA_USE_UVM -#endif -#endif - -#ifdef KOKKOS_HAVE_CUDA -#ifndef KOKKOS_ENABLE_CUDA -#define KOKKOS_ENABLE_CUDA KOKKOS_HAVE_CUDA -#endif -#endif - -#ifdef KOKKOS_HAVE_CUDA_LAMBDA -#ifndef KOKKOS_ENABLE_CUDA_LAMBDA -#define KOKKOS_ENABLE_CUDA_LAMBDA KOKKOS_HAVE_CUDA_LAMBDA -#endif -#endif - -#ifdef KOKKOS_HAVE_CUDA_RDC -#ifndef KOKKOS_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE -#define KOKKOS_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE KOKKOS_HAVE_CUDA_RDC -#endif -#endif - -#ifdef KOKKOS_HAVE_CUSPARSE -#ifndef KOKKOS_ENABLE_CUSPARSE -#define KOKKOS_ENABLE_CUSPARSE KOKKOS_HAVE_CUSPARSE -#endif -#endif - -#if defined(KOKKOS_HAVE_CXX1Z) || defined(KOKKOS_ENABLE_CXX17) -#ifndef KOKKOS_ENABLE_CXX1Z -#define KOKKOS_ENABLE_CXX1Z KOKKOS_HAVE_CXX1Z -#endif -#endif - -#ifdef KOKKOS_HAVE_DEFAULT_DEVICE_TYPE_CUDA -#ifndef KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_CUDA -#define KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_CUDA \ - KOKKOS_HAVE_DEFAULT_DEVICE_TYPE_CUDA -#endif -#endif - -#ifdef KOKKOS_HAVE_DEFAULT_DEVICE_TYPE_OPENMP -#ifndef KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_OPENMP -#define KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_OPENMP \ - KOKKOS_HAVE_DEFAULT_DEVICE_TYPE_OPENMP -#endif -#endif - -#ifdef KOKKOS_HAVE_DEFAULT_DEVICE_TYPE_SERIAL -#ifndef KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_SERIAL -#define KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_SERIAL \ - KOKKOS_HAVE_DEFAULT_DEVICE_TYPE_SERIAL -#endif -#endif - -#ifdef KOKKOS_HAVE_DEFAULT_DEVICE_TYPE_THREADS -#ifndef KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_THREADS -#define KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_THREADS \ - KOKKOS_HAVE_DEFAULT_DEVICE_TYPE_THREADS -#endif -#endif - -#ifdef KOKKOS_HAVE_HBWSPACE -#ifndef KOKKOS_ENABLE_HBWSPACE -#define KOKKOS_ENABLE_HBWSPACE KOKKOS_HAVE_HBWSPACE -#endif -#endif - -#ifdef KOKKOS_HAVE_HWLOC -#ifndef KOKKOS_ENABLE_HWLOC -#define KOKKOS_ENABLE_HWLOC KOKKOS_HAVE_HWLOC -#endif -#endif - -#ifdef KOKKOS_HAVE_MPI -#ifndef KOKKOS_ENABLE_MPI -#define KOKKOS_ENABLE_MPI KOKKOS_HAVE_MPI -#endif -#endif - -#ifdef KOKKOS_HAVE_OPENMP -#ifndef KOKKOS_ENABLE_OPENMP -#define KOKKOS_ENABLE_OPENMP KOKKOS_HAVE_OPENMP -#endif -#endif - -#ifdef KOKKOS_HAVE_PRAGMA_IVDEP -#ifndef KOKKOS_ENABLE_PRAGMA_IVDEP -#define KOKKOS_ENABLE_PRAGMA_IVDEP KOKKOS_HAVE_PRAGMA_IVDEP -#endif -#endif - -#ifdef KOKKOS_OPT_RANGE_AGGRESSIVE_VECTORIZATION -#ifndef KOKKOS_ENABLE_AGGRESSIVE_VECTORIZATION -#define KOKKOS_ENABLE_AGGRESSIVE_VECTORIZATION \ - KOKKOS_OPT_RANGE_AGGRESSIVE_VECTORIZATION -#endif -#endif - -#ifdef KOKKOS_HAVE_PRAGMA_LOOPCOUNT -#ifndef KOKKOS_ENABLE_PRAGMA_LOOPCOUNT -#define KOKKOS_ENABLE_PRAGMA_LOOPCOUNT KOKKOS_HAVE_PRAGMA_LOOPCOUNT -#endif -#endif - -#ifdef KOKKOS_HAVE_PRAGMA_SIMD -#ifndef KOKKOS_ENABLE_PRAGMA_SIMD -#define KOKKOS_ENABLE_PRAGMA_SIMD KOKKOS_HAVE_PRAGMA_SIMD -#endif -#endif - -#ifdef KOKKOS_HAVE_PRAGMA_UNROLL -#ifndef KOKKOS_ENABLE_PRAGMA_UNROLL -#define KOKKOS_ENABLE_PRAGMA_UNROLL KOKKOS_HAVE_PRAGMA_UNROLL -#endif -#endif - -#ifdef KOKKOS_HAVE_PRAGMA_VECTOR -#ifndef KOKKOS_ENABLE_PRAGMA_VECTOR -#define KOKKOS_ENABLE_PRAGMA_VECTOR KOKKOS_HAVE_PRAGMA_VECTOR -#endif -#endif - -#ifdef KOKKOS_HAVE_PTHREAD -#ifndef KOKKOS_ENABLE_PTHREAD -#define KOKKOS_ENABLE_PTHREAD KOKKOS_HAVE_PTHREAD -#endif -#endif - -#ifdef KOKKOS_HAVE_SERIAL -#ifndef KOKKOS_ENABLE_SERIAL -#define KOKKOS_ENABLE_SERIAL KOKKOS_HAVE_SERIAL -#endif -#endif - -#ifdef KOKKOS_HAVE_TYPE -#ifndef KOKKOS_IMPL_HAS_TYPE -#define KOKKOS_IMPL_HAS_TYPE KOKKOS_HAVE_TYPE -#endif -#endif - -#ifdef KOKKOS_HAVE_WINTHREAD -#ifndef KOKKOS_ENABLE_WINTHREAD -#define KOKKOS_ENABLE_WINTHREAD KOKKOS_HAVE_WINTHREAD -#endif -#endif - -#ifdef KOKKOS_HAVE_Winthread -#ifndef KOKKOS_ENABLE_WINTHREAD -#define KOKKOS_ENABLE_WINTHREAD KOKKOS_HAVE_Winthread -#endif -#endif - -#ifdef KOKKOS_INTEL_MM_ALLOC_AVAILABLE -#ifndef KOKKOS_ENABLE_INTEL_MM_ALLOC -#define KOKKOS_ENABLE_INTEL_MM_ALLOC KOKKOS_INTEL_MM_ALLOC_AVAILABLE -#endif -#endif - -#ifdef KOKKOS_MACRO_IMPL_TO_STRING -#ifndef KOKKOS_IMPL_MACRO_TO_STRING -#define KOKKOS_IMPL_MACRO_TO_STRING KOKKOS_MACRO_IMPL_TO_STRING -#endif -#endif - -#ifdef KOKKOS_MACRO_TO_STRING -#ifndef KOKKOS_MACRO_TO_STRING -#define KOKKOS_MACRO_TO_STRING KOKKOS_MACRO_TO_STRING -#endif -#endif - -#ifdef KOKKOS_MAY_ALIAS -#ifndef KOKKOS_IMPL_MAY_ALIAS -#define KOKKOS_IMPL_MAY_ALIAS KOKKOS_MAY_ALIAS -#endif -#endif - -#ifdef KOKKOS_MDRANGE_IVDEP -#ifndef KOKKOS_IMPL_MDRANGE_IVDEP -#define KOKKOS_IMPL_MDRANGE_IVDEP KOKKOS_MDRANGE_IVDEP -#endif -#endif - -#ifdef KOKKOS_MEMPOOL_PRINTERR -#ifndef KOKKOS_ENABLE_MEMPOOL_PRINTERR -#define KOKKOS_ENABLE_MEMPOOL_PRINTERR KOKKOS_MEMPOOL_PRINTERR -#endif -#endif - -#ifdef KOKKOS_MEMPOOL_PRINT_ACTIVE_SUPERBLOCKS -#ifndef KOKKOS_ENABLE_MEMPOOL_PRINT_ACTIVE_SUPERBLOCKS -#define KOKKOS_ENABLE_MEMPOOL_PRINT_ACTIVE_SUPERBLOCKS \ - KOKKOS_MEMPOOL_PRINT_ACTIVE_SUPERBLOCKS -#endif -#endif - -#ifdef KOKKOS_MEMPOOL_PRINT_BLOCKSIZE_INFO -#ifndef KOKKOS_ENABLE_MEMPOOL_PRINT_BLOCKSIZE_INFO -#define KOKKOS_ENABLE_MEMPOOL_PRINT_BLOCKSIZE_INFO \ - KOKKOS_MEMPOOL_PRINT_BLOCKSIZE_INFO -#endif -#endif - -#ifdef KOKKOS_MEMPOOL_PRINT_CONSTRUCTOR_INFO -#ifndef KOKKOS_ENABLE_MEMPOOL_PRINT_CONSTRUCTOR_INFO -#define KOKKOS_ENABLE_MEMPOOL_PRINT_CONSTRUCTOR_INFO \ - KOKKOS_MEMPOOL_PRINT_CONSTRUCTOR_INFO -#endif -#endif - -#ifdef KOKKOS_MEMPOOL_PRINT_INDIVIDUAL_PAGE_INFO -#ifndef KOKKOS_ENABLE_MEMPOOL_PRINT_INDIVIDUAL_PAGE_INFO -#define KOKKOS_ENABLE_MEMPOOL_PRINT_INDIVIDUAL_PAGE_INFO \ - KOKKOS_MEMPOOL_PRINT_INDIVIDUAL_PAGE_INFO -#endif -#endif - -#ifdef KOKKOS_MEMPOOL_PRINT_INFO -#ifndef KOKKOS_ENABLE_MEMPOOL_PRINT_INFO -#define KOKKOS_ENABLE_MEMPOOL_PRINT_INFO KOKKOS_MEMPOOL_PRINT_INFO -#endif -#endif - -#ifdef KOKKOS_MEMPOOL_PRINT_PAGE_INFO -#ifndef KOKKOS_ENABLE_MEMPOOL_PRINT_PAGE_INFO -#define KOKKOS_ENABLE_MEMPOOL_PRINT_PAGE_INFO KOKKOS_MEMPOOL_PRINT_PAGE_INFO -#endif -#endif - -#ifdef KOKKOS_MEMPOOL_PRINT_SUPERBLOCK_INFO -#ifndef KOKKOS_ENABLE_MEMPOOL_PRINT_SUPERBLOCK_INFO -#define KOKKOS_ENABLE_MEMPOOL_PRINT_SUPERBLOCK_INFO \ - KOKKOS_MEMPOOL_PRINT_SUPERBLOCK_INFO -#endif -#endif - -#ifdef KOKKOS_POSIX_MEMALIGN_AVAILABLE -#ifndef KOKKOS_ENABLE_POSIX_MEMALIGN -#define KOKKOS_ENABLE_POSIX_MEMALIGN KOKKOS_POSIX_MEMALIGN_AVAILABLE -#endif -#endif - -#ifdef KOKKOS_POSIX_MMAP_FLAGS -#ifndef KOKKOS_IMPL_POSIX_MMAP_FLAGS -#define KOKKOS_IMPL_POSIX_MMAP_FLAGS KOKKOS_POSIX_MMAP_FLAGS -#endif -#endif - -#ifdef KOKKOS_POSIX_MMAP_FLAGS_HUGE -#ifndef KOKKOS_IMPL_POSIX_MMAP_FLAGS_HUGE -#define KOKKOS_IMPL_POSIX_MMAP_FLAGS_HUGE KOKKOS_POSIX_MMAP_FLAGS_HUGE -#endif -#endif - -#ifdef KOKKOS_SHARED_ALLOCATION_TRACKER_DECREMENT -#ifndef KOKKOS_IMPL_SHARED_ALLOCATION_TRACKER_DECREMENT -#define KOKKOS_IMPL_SHARED_ALLOCATION_TRACKER_DECREMENT \ - KOKKOS_SHARED_ALLOCATION_TRACKER_DECREMENT -#endif -#endif - -#ifdef KOKKOS_SHARED_ALLOCATION_TRACKER_ENABLED -#ifndef KOKKOS_IMPL_SHARED_ALLOCATION_TRACKER_ENABLED -#define KOKKOS_IMPL_SHARED_ALLOCATION_TRACKER_ENABLED \ - KOKKOS_SHARED_ALLOCATION_TRACKER_ENABLED -#endif -#endif - -#ifdef KOKKOS_SHARED_ALLOCATION_TRACKER_INCREMENT -#ifndef KOKKOS_IMPL_SHARED_ALLOCATION_TRACKER_INCREMENT -#define KOKKOS_IMPL_SHARED_ALLOCATION_TRACKER_INCREMENT \ - KOKKOS_SHARED_ALLOCATION_TRACKER_INCREMENT -#endif -#endif - -#ifdef KOKKOS_USE_CUDA_UVM -#ifndef KOKKOS_ENABLE_CUDA_UVM -#define KOKKOS_ENABLE_CUDA_UVM KOKKOS_USE_CUDA_UVM -#endif -#endif - -#ifdef KOKKOS_USE_ISA_KNC -#ifndef KOKKOS_ENABLE_ISA_KNC -#define KOKKOS_ENABLE_ISA_KNC KOKKOS_USE_ISA_KNC -#endif -#endif - -#ifdef KOKKOS_USE_ISA_POWERPCLE -#ifndef KOKKOS_ENABLE_ISA_POWERPCLE -#define KOKKOS_ENABLE_ISA_POWERPCLE KOKKOS_USE_ISA_POWERPCLE -#endif -#endif - -#ifdef KOKKOS_USE_ISA_X86_64 -#ifndef KOKKOS_ENABLE_ISA_X86_64 -#define KOKKOS_ENABLE_ISA_X86_64 KOKKOS_USE_ISA_X86_64 -#endif -#endif - -#ifdef KOKKOS_USE_LIBRT -#ifndef KOKKOS_ENABLE_LIBRT -#define KOKKOS_ENABLE_LIBRT KOKKOS_USE_LIBRT -#endif -#endif - -#ifdef KOKKOS_VIEW_OPERATOR_VERIFY -#ifndef KOKKOS_IMPL_VIEW_OPERATOR_VERIFY -#define KOKKOS_IMPL_VIEW_OPERATOR_VERIFY KOKKOS_VIEW_OPERATOR_VERIFY -#endif -#endif - -#if defined(KOKKOS_ENABLE_PTHREAD) || defined(KOKKOS_ENABLE_WINTHREAD) -#ifndef KOKKOS_ENABLE_THREADS -#define KOKKOS_ENABLE_THREADS -#endif -#endif - -//------------------------------------------------------------------------------ -// Deprecated macros -//------------------------------------------------------------------------------ -#ifdef KOKKOS_HAVE_CXX11 -#undef KOKKOS_HAVE_CXX11 -#endif -#ifdef KOKKOS_ENABLE_CXX11 -#undef KOKKOS_ENABLE_CXX11 -#endif -#ifdef KOKKOS_USING_EXP_VIEW -#undef KOKKOS_USING_EXP_VIEW -#endif -#ifdef KOKKOS_USING_EXPERIMENTAL_VIEW -#undef KOKKOS_USING_EXPERIMENTAL_VIEW -#endif - -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_CXX11 1 -#define KOKKOS_USING_EXP_VIEW 1 -#define KOKKOS_USING_EXPERIMENTAL_VIEW 1 - -// backwards compatibility of no-longer-defined HAVE macros -// https://github.com/kokkos/kokkos/pull/1576/files -#if (!defined(KOKKOS_HAVE_CUDA)) && defined(KOKKOS_ENABLE_CUDA) -#define KOKKOS_HAVE_CUDA 1 -#endif - -#if (!defined(KOKKOS_HAVE_OPENMP)) && defined(KOKKOS_ENABLE_OPENMP) -#define KOKKOS_HAVE_OPENMP 1 -#endif - -#if (!defined(KOKKOS_HAVE_PTHREAD)) && defined(KOKKOS_ENABLE_THREADS) -#define KOKKOS_HAVE_PTHREAD 1 -#endif - -#if (!defined(KOKKOS_HAVE_SERIAL)) && defined(KOKKOS_ENABLE_SERIAL) -#define KOKKOS_HAVE_SERIAL 1 -#endif - -#if (!defined(KOKKOS_HAVE_CXX1Z)) && defined(KOKKOS_ENABLE_CXX1Z) -#define KOKKOS_HAVE_CXX1Z 1 -#endif - -#if (!defined(KOKKOS_HAVE_DEBUG)) && defined(KOKKOS_ENABLE_DEBUG) -#define KOKKOS_HAVE_DEBUG 1 -#endif - -#ifdef KOKKOS_HAVE_DEBUG -#ifndef KOKKOS_DEBUG -#define KOKKOS_DEBUG KOKKOS_HAVE_DEBUG -#endif -#endif - -#if (!defined(KOKKOS_HAVE_HWLOC)) && defined(KOKKOS_ENABLE_HWLOC) -#define KOKKOS_HAVE_HWLOC 1 -#endif - -#if (!defined(KOKKOS_HAVE_HBWSPACE)) && defined(KOKKOS_ENABLE_HBWSPACE) -#define KOKKOS_HAVE_HBWSPACE 1 -#endif - -#if (!defined(KOKKOS_CUDA_USE_LDG_INTRINSIC)) && \ - defined(KOKKOS_ENABLE_CUDA_LDG_INTRINSIC) -#define KOKKOS_CUDA_USE_LDG_INTRINSIC 1 -#endif - -#if (!defined(KOKKOS_CUDA_USE_UVM)) && defined(KOKKOS_ENABLE_CUDA_UVM) -#define KOKKOS_CUDA_USE_UVM 1 -#endif - -#if (!defined(KOKKOS_CUDA_USE_RELOCATABLE_DEVICE_CODE)) && \ - defined(KOKKOS_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE) -#define KOKKOS_CUDA_USE_RELOCATABLE_DEVICE_CODE 1 -#endif - -#if (!defined(KOKKOS_CUDA_USE_LAMBDA)) && defined(KOKKOS_ENABLE_CUDA_LAMBDA) -#define KOKKOS_CUDA_USE_LAMBDA 1 -#endif - -#if (!defined(KOKKOS_CUDA_CLANG_WORKAROUND)) && \ - defined(KOKKOS_IMPL_CUDA_CLANG_WORKAROUND) -#define KOKKOS_CUDA_CLANG_WORKAROUND 1 -#endif - -#if (!defined(KOKKOS_HAVE_MPI)) && defined(KOKKOS_ENABLE_MPI) -#define KOKKOS_HAVE_MPI 1 -#endif - -#endif // KOKKOS_ENABLE_DEPRECATED_CODE - -#endif // KOKKOS_IMPL_OLD_MACROS_HPP diff --git a/packages/kokkos/core/src/impl/Kokkos_Profiling.cpp b/packages/kokkos/core/src/impl/Kokkos_Profiling.cpp new file mode 100644 index 000000000..4b7e02bbb --- /dev/null +++ b/packages/kokkos/core/src/impl/Kokkos_Profiling.cpp @@ -0,0 +1,969 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include <Kokkos_Macros.hpp> +#include <Kokkos_Tuners.hpp> +#include <impl/Kokkos_Profiling.hpp> +#if defined(KOKKOS_ENABLE_LIBDL) +#include <dlfcn.h> +#endif + +#include <cstring> +#include <unordered_map> +#include <unordered_set> +#include <algorithm> +#include <vector> +#include <array> +#include <stack> +#include <iostream> +namespace Kokkos { + +namespace Tools { + +namespace Experimental { +#ifdef KOKKOS_ENABLE_TUNING +static size_t kernel_name_context_variable_id; +static size_t kernel_type_context_variable_id; +static std::unordered_map<size_t, std::unordered_set<size_t>> + features_per_context; +static std::unordered_set<size_t> active_features; +static std::unordered_map<size_t, VariableValue> feature_values; +static std::unordered_map<size_t, VariableInfo> variable_metadata; +#endif +static EventSet current_callbacks; +static EventSet backup_callbacks; +static EventSet no_profiling; + +bool eventSetsEqual(const EventSet& l, const EventSet& r) { + return l.init == r.init && l.finalize == r.finalize && + l.begin_parallel_for == r.begin_parallel_for && + l.end_parallel_for == r.end_parallel_for && + l.begin_parallel_reduce == r.begin_parallel_reduce && + l.end_parallel_reduce == r.end_parallel_reduce && + l.begin_parallel_scan == r.begin_parallel_scan && + l.end_parallel_scan == r.end_parallel_scan && + l.push_region == r.push_region && l.pop_region == r.pop_region && + l.allocate_data == r.allocate_data && + l.deallocate_data == r.deallocate_data && + l.create_profile_section == r.create_profile_section && + l.start_profile_section == r.start_profile_section && + l.stop_profile_section == r.stop_profile_section && + l.destroy_profile_section == r.destroy_profile_section && + l.profile_event == r.profile_event && + l.begin_deep_copy == r.begin_deep_copy && + l.end_deep_copy == r.end_deep_copy && l.begin_fence == r.begin_fence && + l.end_fence == r.end_fence && l.sync_dual_view == r.sync_dual_view && + l.modify_dual_view == r.modify_dual_view && + l.declare_input_type == r.declare_input_type && + l.declare_output_type == r.declare_output_type && + l.end_tuning_context == r.end_tuning_context && + l.begin_tuning_context == r.begin_tuning_context && + l.request_output_values == r.request_output_values && + l.declare_optimization_goal == r.declare_optimization_goal; +} +} // namespace Experimental +bool profileLibraryLoaded() { + return !Experimental::eventSetsEqual(Experimental::current_callbacks, + Experimental::no_profiling); +} + +void beginParallelFor(const std::string& kernelPrefix, const uint32_t devID, + uint64_t* kernelID) { + if (Experimental::current_callbacks.begin_parallel_for != nullptr) { + Kokkos::fence(); + (*Experimental::current_callbacks.begin_parallel_for)(kernelPrefix.c_str(), + devID, kernelID); + } +#ifdef KOKKOS_ENABLE_TUNING + if (Kokkos::tune_internals()) { + auto context_id = Experimental::get_new_context_id(); + Experimental::begin_context(context_id); + Experimental::VariableValue contextValues[] = { + Experimental::make_variable_value( + Experimental::kernel_name_context_variable_id, kernelPrefix), + Experimental::make_variable_value( + Experimental::kernel_type_context_variable_id, "parallel_for")}; + Experimental::set_input_values(context_id, 2, contextValues); + } +#endif +} + +void endParallelFor(const uint64_t kernelID) { + if (Experimental::current_callbacks.end_parallel_for != nullptr) { + Kokkos::fence(); + (*Experimental::current_callbacks.end_parallel_for)(kernelID); + } +#ifdef KOKKOS_ENABLE_TUNING + if (Kokkos::tune_internals()) { + Experimental::end_context(Experimental::get_current_context_id()); + } +#endif +} + +void beginParallelScan(const std::string& kernelPrefix, const uint32_t devID, + uint64_t* kernelID) { + if (Experimental::current_callbacks.begin_parallel_scan != nullptr) { + Kokkos::fence(); + (*Experimental::current_callbacks.begin_parallel_scan)(kernelPrefix.c_str(), + devID, kernelID); + } +#ifdef KOKKOS_ENABLE_TUNING + if (Kokkos::tune_internals()) { + auto context_id = Experimental::get_new_context_id(); + Experimental::begin_context(context_id); + Experimental::VariableValue contextValues[] = { + Experimental::make_variable_value( + Experimental::kernel_name_context_variable_id, kernelPrefix), + Experimental::make_variable_value( + Experimental::kernel_type_context_variable_id, "parallel_for")}; + Experimental::set_input_values(context_id, 2, contextValues); + } +#endif +} + +void endParallelScan(const uint64_t kernelID) { + if (Experimental::current_callbacks.end_parallel_scan != nullptr) { + Kokkos::fence(); + (*Experimental::current_callbacks.end_parallel_scan)(kernelID); + } +#ifdef KOKKOS_ENABLE_TUNING + if (Kokkos::tune_internals()) { + Experimental::end_context(Experimental::get_current_context_id()); + } +#endif +} + +void beginParallelReduce(const std::string& kernelPrefix, const uint32_t devID, + uint64_t* kernelID) { + if (Experimental::current_callbacks.begin_parallel_reduce != nullptr) { + Kokkos::fence(); + (*Experimental::current_callbacks.begin_parallel_reduce)( + kernelPrefix.c_str(), devID, kernelID); + } +#ifdef KOKKOS_ENABLE_TUNING + if (Kokkos::tune_internals()) { + auto context_id = Experimental::get_new_context_id(); + Experimental::begin_context(context_id); + Experimental::VariableValue contextValues[] = { + Experimental::make_variable_value( + Experimental::kernel_name_context_variable_id, kernelPrefix), + Experimental::make_variable_value( + Experimental::kernel_type_context_variable_id, "parallel_for")}; + Experimental::set_input_values(context_id, 2, contextValues); + } +#endif +} + +void endParallelReduce(const uint64_t kernelID) { + if (Experimental::current_callbacks.end_parallel_reduce != nullptr) { + Kokkos::fence(); + (*Experimental::current_callbacks.end_parallel_reduce)(kernelID); + } +#ifdef KOKKOS_ENABLE_TUNING + if (Kokkos::tune_internals()) { + Experimental::end_context(Experimental::get_current_context_id()); + } +#endif +} + +void pushRegion(const std::string& kName) { + if (Experimental::current_callbacks.push_region != nullptr) { + Kokkos::fence(); + (*Experimental::current_callbacks.push_region)(kName.c_str()); + } +} + +void popRegion() { + if (Experimental::current_callbacks.pop_region != nullptr) { + Kokkos::fence(); + (*Experimental::current_callbacks.pop_region)(); + } +} + +void allocateData(const SpaceHandle space, const std::string label, + const void* ptr, const uint64_t size) { + if (Experimental::current_callbacks.allocate_data != nullptr) { + (*Experimental::current_callbacks.allocate_data)(space, label.c_str(), ptr, + size); + } +} + +void deallocateData(const SpaceHandle space, const std::string label, + const void* ptr, const uint64_t size) { + if (Experimental::current_callbacks.deallocate_data != nullptr) { + (*Experimental::current_callbacks.deallocate_data)(space, label.c_str(), + ptr, size); + } +} + +void beginDeepCopy(const SpaceHandle dst_space, const std::string dst_label, + const void* dst_ptr, const SpaceHandle src_space, + const std::string src_label, const void* src_ptr, + const uint64_t size) { + if (Experimental::current_callbacks.begin_deep_copy != nullptr) { + (*Experimental::current_callbacks.begin_deep_copy)( + dst_space, dst_label.c_str(), dst_ptr, src_space, src_label.c_str(), + src_ptr, size); +#ifdef KOKKOS_ENABLE_TUNING + if (Kokkos::tune_internals()) { + auto context_id = Experimental::get_new_context_id(); + Experimental::begin_context(context_id); + Experimental::VariableValue contextValues[] = { + Experimental::make_variable_value( + Experimental::kernel_name_context_variable_id, + "deep_copy_kernel"), + Experimental::make_variable_value( + Experimental::kernel_type_context_variable_id, "deep_copy")}; + Experimental::set_input_values(context_id, 2, contextValues); + } +#endif + } +} + +void endDeepCopy() { + if (Experimental::current_callbacks.end_deep_copy != nullptr) { + (*Experimental::current_callbacks.end_deep_copy)(); +#ifdef KOKKOS_ENABLE_TUNING + if (Kokkos::tune_internals()) { + Experimental::end_context(Experimental::get_current_context_id()); + } +#endif + } +} + +void beginFence(const std::string name, const uint32_t deviceId, + uint64_t* handle) { + if (Experimental::current_callbacks.begin_fence != nullptr) { + (*Experimental::current_callbacks.begin_fence)(name.c_str(), deviceId, + handle); + } +} + +void endFence(const uint64_t handle) { + if (Experimental::current_callbacks.end_fence != nullptr) { + (*Experimental::current_callbacks.end_fence)(handle); + } +} + +void createProfileSection(const std::string& sectionName, uint32_t* secID) { + if (Experimental::current_callbacks.create_profile_section != nullptr) { + (*Experimental::current_callbacks.create_profile_section)( + sectionName.c_str(), secID); + } +} + +void startSection(const uint32_t secID) { + if (Experimental::current_callbacks.start_profile_section != nullptr) { + (*Experimental::current_callbacks.start_profile_section)(secID); + } +} + +void stopSection(const uint32_t secID) { + if (Experimental::current_callbacks.stop_profile_section != nullptr) { + (*Experimental::current_callbacks.stop_profile_section)(secID); + } +} + +void destroyProfileSection(const uint32_t secID) { + if (Experimental::current_callbacks.destroy_profile_section != nullptr) { + (*Experimental::current_callbacks.destroy_profile_section)(secID); + } +} + +void markEvent(const std::string& eventName) { + if (Experimental::current_callbacks.profile_event != nullptr) { + (*Experimental::current_callbacks.profile_event)(eventName.c_str()); + } +} + +SpaceHandle make_space_handle(const char* space_name) { + SpaceHandle handle; + strncpy(handle.name, space_name, 63); + return handle; +} + +void initialize() { + // Make sure initialize calls happens only once + static int is_initialized = 0; + if (is_initialized) return; + is_initialized = 1; + +#ifdef KOKKOS_ENABLE_LIBDL + void* firstProfileLibrary = nullptr; + + char* envProfileLibrary = getenv("KOKKOS_PROFILE_LIBRARY"); + + // If we do not find a profiling library in the environment then exit + // early. + if (envProfileLibrary == nullptr) { + return; + } + + char* envProfileCopy = + (char*)malloc(sizeof(char) * (strlen(envProfileLibrary) + 1)); + sprintf(envProfileCopy, "%s", envProfileLibrary); + + char* profileLibraryName = strtok(envProfileCopy, ";"); + + if ((profileLibraryName != nullptr) && + (strcmp(profileLibraryName, "") != 0)) { + firstProfileLibrary = dlopen(profileLibraryName, RTLD_NOW | RTLD_GLOBAL); + + if (firstProfileLibrary == nullptr) { + std::cerr << "Error: Unable to load KokkosP library: " + << profileLibraryName << std::endl; + std::cerr << "dlopen(" << profileLibraryName + << ", RTLD_NOW | RTLD_GLOBAL) failed with " << dlerror() + << '\n'; + } else { +#ifdef KOKKOS_ENABLE_PROFILING_LOAD_PRINT + std::cout << "KokkosP: Library Loaded: " << profileLibraryName + << std::endl; +#endif + // dlsym returns a pointer to an object, while we want to assign to + // pointer to function A direct cast will give warnings hence, we have to + // workaround the issue by casting pointer to pointers. + auto p1 = dlsym(firstProfileLibrary, "kokkosp_begin_parallel_for"); + Experimental::set_begin_parallel_for_callback( + *reinterpret_cast<beginFunction*>(&p1)); + auto p2 = dlsym(firstProfileLibrary, "kokkosp_begin_parallel_scan"); + Experimental::set_begin_parallel_scan_callback( + *reinterpret_cast<beginFunction*>(&p2)); + auto p3 = dlsym(firstProfileLibrary, "kokkosp_begin_parallel_reduce"); + Experimental::set_begin_parallel_reduce_callback( + *reinterpret_cast<beginFunction*>(&p3)); + + auto p4 = dlsym(firstProfileLibrary, "kokkosp_end_parallel_scan"); + Experimental::set_end_parallel_scan_callback( + *reinterpret_cast<endFunction*>(&p4)); + auto p5 = dlsym(firstProfileLibrary, "kokkosp_end_parallel_for"); + Experimental::set_end_parallel_for_callback( + *reinterpret_cast<endFunction*>(&p5)); + auto p6 = dlsym(firstProfileLibrary, "kokkosp_end_parallel_reduce"); + Experimental::set_end_parallel_reduce_callback( + *reinterpret_cast<endFunction*>(&p6)); + + auto p7 = dlsym(firstProfileLibrary, "kokkosp_init_library"); + Experimental::set_init_callback(*reinterpret_cast<initFunction*>(&p7)); + auto p8 = dlsym(firstProfileLibrary, "kokkosp_finalize_library"); + Experimental::set_finalize_callback( + *reinterpret_cast<finalizeFunction*>(&p8)); + + auto p9 = dlsym(firstProfileLibrary, "kokkosp_push_profile_region"); + Experimental::set_push_region_callback( + *reinterpret_cast<pushFunction*>(&p9)); + auto p10 = dlsym(firstProfileLibrary, "kokkosp_pop_profile_region"); + Experimental::set_pop_region_callback( + *reinterpret_cast<popFunction*>(&p10)); + + auto p11 = dlsym(firstProfileLibrary, "kokkosp_allocate_data"); + Experimental::set_allocate_data_callback( + *reinterpret_cast<allocateDataFunction*>(&p11)); + auto p12 = dlsym(firstProfileLibrary, "kokkosp_deallocate_data"); + Experimental::set_deallocate_data_callback( + *reinterpret_cast<deallocateDataFunction*>(&p12)); + + auto p13 = dlsym(firstProfileLibrary, "kokkosp_begin_deep_copy"); + Experimental::set_begin_deep_copy_callback( + *reinterpret_cast<beginDeepCopyFunction*>(&p13)); + auto p14 = dlsym(firstProfileLibrary, "kokkosp_end_deep_copy"); + Experimental::set_end_deep_copy_callback( + *reinterpret_cast<endDeepCopyFunction*>(&p14)); + + auto p15 = dlsym(firstProfileLibrary, "kokkosp_begin_fence"); + Experimental::set_begin_fence_callback( + *reinterpret_cast<beginFenceFunction*>(&p15)); + auto p16 = dlsym(firstProfileLibrary, "kokkosp_end_fence"); + Experimental::set_end_fence_callback( + *reinterpret_cast<endFenceFunction*>(&p16)); + + auto p17 = dlsym(firstProfileLibrary, "kokkosp_dual_view_sync"); + Experimental::set_dual_view_sync_callback( + *reinterpret_cast<dualViewSyncFunction*>(&p17)); + auto p18 = dlsym(firstProfileLibrary, "kokkosp_dual_view_modify"); + Experimental::set_dual_view_modify_callback( + *reinterpret_cast<dualViewModifyFunction*>(&p18)); + + auto p19 = dlsym(firstProfileLibrary, "kokkosp_create_profile_section"); + Experimental::set_create_profile_section_callback( + *(reinterpret_cast<createProfileSectionFunction*>(&p19))); + auto p20 = dlsym(firstProfileLibrary, "kokkosp_start_profile_section"); + Experimental::set_start_profile_section_callback( + *reinterpret_cast<startProfileSectionFunction*>(&p20)); + auto p21 = dlsym(firstProfileLibrary, "kokkosp_stop_profile_section"); + Experimental::set_stop_profile_section_callback( + *reinterpret_cast<stopProfileSectionFunction*>(&p21)); + auto p22 = dlsym(firstProfileLibrary, "kokkosp_destroy_profile_section"); + Experimental::set_destroy_profile_section_callback( + *(reinterpret_cast<destroyProfileSectionFunction*>(&p22))); + + auto p23 = dlsym(firstProfileLibrary, "kokkosp_profile_event"); + Experimental::set_profile_event_callback( + *reinterpret_cast<profileEventFunction*>(&p23)); + +#ifdef KOKKOS_ENABLE_TUNING + auto p24 = dlsym(firstProfileLibrary, "kokkosp_declare_output_type"); + Experimental::set_declare_output_type_callback( + *reinterpret_cast<Experimental::outputTypeDeclarationFunction*>( + &p24)); + + auto p25 = dlsym(firstProfileLibrary, "kokkosp_declare_input_type"); + Experimental::set_declare_input_type_callback( + *reinterpret_cast<Experimental::inputTypeDeclarationFunction*>(&p25)); + auto p26 = dlsym(firstProfileLibrary, "kokkosp_request_values"); + Experimental::set_request_output_values_callback( + *reinterpret_cast<Experimental::requestValueFunction*>(&p26)); + auto p27 = dlsym(firstProfileLibrary, "kokkosp_end_context"); + Experimental::set_end_context_callback( + *reinterpret_cast<Experimental::contextEndFunction*>(&p27)); + auto p28 = dlsym(firstProfileLibrary, "kokkosp_begin_context"); + Experimental::set_begin_context_callback( + *reinterpret_cast<Experimental::contextBeginFunction*>(&p28)); + auto p29 = + dlsym(firstProfileLibrary, "kokkosp_declare_optimization_goal"); + Experimental::set_declare_optimization_goal_callback( + *reinterpret_cast<Experimental::optimizationGoalDeclarationFunction*>( + &p29)); +#endif // KOKKOS_ENABLE_TUNING + } + } +#endif // KOKKOS_ENABLE_LIBDL + if (Experimental::current_callbacks.init != nullptr) { + (*Experimental::current_callbacks.init)( + 0, (uint64_t)KOKKOSP_INTERFACE_VERSION, (uint32_t)0, nullptr); + } + +#ifdef KOKKOS_ENABLE_TUNING + Experimental::VariableInfo kernel_name; + kernel_name.type = Experimental::ValueType::kokkos_value_string; + kernel_name.category = + Experimental::StatisticalCategory::kokkos_value_categorical; + kernel_name.valueQuantity = + Experimental::CandidateValueType::kokkos_value_unbounded; + + std::array<std::string, 4> candidate_values = { + "parallel_for", + "parallel_reduce", + "parallel_scan", + "parallel_copy", + }; + + Experimental::SetOrRange kernel_type_variable_candidates = + Experimental::make_candidate_set(4, candidate_values.data()); + + Experimental::kernel_name_context_variable_id = + Experimental::declare_input_type("kokkos.kernel_name", kernel_name); + + Experimental::VariableInfo kernel_type; + kernel_type.type = Experimental::ValueType::kokkos_value_string; + kernel_type.category = + Experimental::StatisticalCategory::kokkos_value_categorical; + kernel_type.valueQuantity = + Experimental::CandidateValueType::kokkos_value_set; + kernel_type.candidates = kernel_type_variable_candidates; + Experimental::kernel_type_context_variable_id = + Experimental::declare_input_type("kokkos.kernel_type", kernel_type); + +#endif + + Experimental::no_profiling.init = nullptr; + Experimental::no_profiling.finalize = nullptr; + + Experimental::no_profiling.begin_parallel_for = nullptr; + Experimental::no_profiling.begin_parallel_scan = nullptr; + Experimental::no_profiling.begin_parallel_reduce = nullptr; + Experimental::no_profiling.end_parallel_scan = nullptr; + Experimental::no_profiling.end_parallel_for = nullptr; + Experimental::no_profiling.end_parallel_reduce = nullptr; + + Experimental::no_profiling.push_region = nullptr; + Experimental::no_profiling.pop_region = nullptr; + Experimental::no_profiling.allocate_data = nullptr; + Experimental::no_profiling.deallocate_data = nullptr; + + Experimental::no_profiling.begin_deep_copy = nullptr; + Experimental::no_profiling.end_deep_copy = nullptr; + + Experimental::no_profiling.create_profile_section = nullptr; + Experimental::no_profiling.start_profile_section = nullptr; + Experimental::no_profiling.stop_profile_section = nullptr; + Experimental::no_profiling.destroy_profile_section = nullptr; + + Experimental::no_profiling.profile_event = nullptr; + + Experimental::no_profiling.declare_input_type = nullptr; + Experimental::no_profiling.declare_output_type = nullptr; + Experimental::no_profiling.request_output_values = nullptr; + Experimental::no_profiling.end_tuning_context = nullptr; +#ifdef KOKKOS_ENABLE_LIBDL + free(envProfileCopy); +#endif +} + +void finalize() { + // Make sure finalize calls happens only once + static int is_finalized = 0; + if (is_finalized) return; + is_finalized = 1; + + if (Experimental::current_callbacks.finalize != nullptr) { + (*Experimental::current_callbacks.finalize)(); + + Experimental::pause_tools(); + } +#ifdef KOKKOS_ENABLE_TUNING + // clean up string candidate set + for (auto& metadata_pair : Experimental::variable_metadata) { + auto metadata = metadata_pair.second; + if ((metadata.type == Experimental::ValueType::kokkos_value_string) && + (metadata.valueQuantity == + Experimental::CandidateValueType::kokkos_value_set)) { + auto candidate_set = metadata.candidates.set; + delete[] candidate_set.values.string_value; + } + } +#endif +} + +void syncDualView(const std::string& label, const void* const ptr, + bool to_device) { + if (Experimental::current_callbacks.sync_dual_view != nullptr) { + (*Experimental::current_callbacks.sync_dual_view)(label.c_str(), ptr, + to_device); + } +} +void modifyDualView(const std::string& label, const void* const ptr, + bool on_device) { + if (Experimental::current_callbacks.modify_dual_view != nullptr) { + (*Experimental::current_callbacks.modify_dual_view)(label.c_str(), ptr, + on_device); + } +} + +} // namespace Tools + +namespace Tools { +namespace Experimental { +void set_init_callback(initFunction callback) { + current_callbacks.init = callback; +} +void set_finalize_callback(finalizeFunction callback) { + current_callbacks.finalize = callback; +} +void set_begin_parallel_for_callback(beginFunction callback) { + current_callbacks.begin_parallel_for = callback; +} +void set_end_parallel_for_callback(endFunction callback) { + current_callbacks.end_parallel_for = callback; +} +void set_begin_parallel_reduce_callback(beginFunction callback) { + current_callbacks.begin_parallel_reduce = callback; +} +void set_end_parallel_reduce_callback(endFunction callback) { + current_callbacks.end_parallel_reduce = callback; +} +void set_begin_parallel_scan_callback(beginFunction callback) { + current_callbacks.begin_parallel_scan = callback; +} +void set_end_parallel_scan_callback(endFunction callback) { + current_callbacks.end_parallel_scan = callback; +} +void set_push_region_callback(pushFunction callback) { + current_callbacks.push_region = callback; +} +void set_pop_region_callback(popFunction callback) { + current_callbacks.pop_region = callback; +} +void set_allocate_data_callback(allocateDataFunction callback) { + current_callbacks.allocate_data = callback; +} +void set_deallocate_data_callback(deallocateDataFunction callback) { + current_callbacks.deallocate_data = callback; +} +void set_create_profile_section_callback( + createProfileSectionFunction callback) { + current_callbacks.create_profile_section = callback; +} +void set_start_profile_section_callback(startProfileSectionFunction callback) { + current_callbacks.start_profile_section = callback; +} +void set_stop_profile_section_callback(stopProfileSectionFunction callback) { + current_callbacks.stop_profile_section = callback; +} +void set_destroy_profile_section_callback( + destroyProfileSectionFunction callback) { + current_callbacks.destroy_profile_section = callback; +} +void set_profile_event_callback(profileEventFunction callback) { + current_callbacks.profile_event = callback; +} +void set_begin_deep_copy_callback(beginDeepCopyFunction callback) { + current_callbacks.begin_deep_copy = callback; +} +void set_end_deep_copy_callback(endDeepCopyFunction callback) { + current_callbacks.end_deep_copy = callback; +} +void set_begin_fence_callback(beginFenceFunction callback) { + current_callbacks.begin_fence = callback; +} +void set_end_fence_callback(endFenceFunction callback) { + current_callbacks.end_fence = callback; +} + +void set_dual_view_sync_callback(dualViewSyncFunction callback) { + current_callbacks.sync_dual_view = callback; +} +void set_dual_view_modify_callback(dualViewModifyFunction callback) { + current_callbacks.modify_dual_view = callback; +} + +void set_declare_output_type_callback(outputTypeDeclarationFunction callback) { + current_callbacks.declare_output_type = callback; +} +void set_declare_input_type_callback(inputTypeDeclarationFunction callback) { + current_callbacks.declare_input_type = callback; +} +void set_request_output_values_callback(requestValueFunction callback) { + current_callbacks.request_output_values = callback; +} +void set_end_context_callback(contextEndFunction callback) { + current_callbacks.end_tuning_context = callback; +} +void set_begin_context_callback(contextBeginFunction callback) { + current_callbacks.begin_tuning_context = callback; +} +void set_declare_optimization_goal_callback( + optimizationGoalDeclarationFunction callback) { + current_callbacks.declare_optimization_goal = callback; +} + +void pause_tools() { + backup_callbacks = current_callbacks; + current_callbacks = no_profiling; +} + +void resume_tools() { current_callbacks = backup_callbacks; } + +EventSet get_callbacks() { return current_callbacks; } +void set_callbacks(EventSet new_events) { current_callbacks = new_events; } +} // namespace Experimental +} // namespace Tools + +namespace Profiling { +bool profileLibraryLoaded() { return Kokkos::Tools::profileLibraryLoaded(); } + +void beginParallelFor(const std::string& kernelPrefix, const uint32_t devID, + uint64_t* kernelID) { + Kokkos::Tools::beginParallelFor(kernelPrefix, devID, kernelID); +} +void beginParallelReduce(const std::string& kernelPrefix, const uint32_t devID, + uint64_t* kernelID) { + Kokkos::Tools::beginParallelReduce(kernelPrefix, devID, kernelID); +} +void beginParallelScan(const std::string& kernelPrefix, const uint32_t devID, + uint64_t* kernelID) { + Kokkos::Tools::beginParallelScan(kernelPrefix, devID, kernelID); +} +void endParallelFor(const uint64_t kernelID) { + Kokkos::Tools::endParallelFor(kernelID); +} +void endParallelReduce(const uint64_t kernelID) { + Kokkos::Tools::endParallelReduce(kernelID); +} +void endParallelScan(const uint64_t kernelID) { + Kokkos::Tools::endParallelScan(kernelID); +} + +void pushRegion(const std::string& kName) { Kokkos::Tools::pushRegion(kName); } +void popRegion() { Kokkos::Tools::popRegion(); } + +void createProfileSection(const std::string& sectionName, uint32_t* secID) { + Kokkos::Tools::createProfileSection(sectionName, secID); +} +void destroyProfileSection(const uint32_t secID) { + Kokkos::Tools::destroyProfileSection(secID); +} + +void startSection(const uint32_t secID) { Kokkos::Tools::startSection(secID); } + +void stopSection(const uint32_t secID) { Kokkos::Tools::stopSection(secID); } + +void markEvent(const std::string& eventName) { + Kokkos::Tools::markEvent(eventName); +} +void allocateData(const SpaceHandle handle, const std::string name, + const void* data, const uint64_t size) { + Kokkos::Tools::allocateData(handle, name, data, size); +} +void deallocateData(const SpaceHandle space, const std::string label, + const void* ptr, const uint64_t size) { + Kokkos::Tools::deallocateData(space, label, ptr, size); +} + +void beginDeepCopy(const SpaceHandle dst_space, const std::string dst_label, + const void* dst_ptr, const SpaceHandle src_space, + const std::string src_label, const void* src_ptr, + const uint64_t size) { + Kokkos::Tools::beginDeepCopy(dst_space, dst_label, dst_ptr, src_space, + src_label, src_ptr, size); +} +void endDeepCopy() { Kokkos::Tools::endDeepCopy(); } + +void finalize() { Kokkos::Tools::finalize(); } +void initialize() { Kokkos::Tools::initialize(); } + +SpaceHandle make_space_handle(const char* space_name) { + return Kokkos::Tools::make_space_handle(space_name); +} +} // namespace Profiling + +} // namespace Kokkos + +// Tuning + +namespace Kokkos { +namespace Tools { +namespace Experimental { +static size_t& get_context_counter() { + static size_t x; + return x; +} +static size_t& get_variable_counter() { + static size_t x; + return ++x; +} + +size_t get_new_context_id() { return ++get_context_counter(); } +size_t get_current_context_id() { return get_context_counter(); } +void decrement_current_context_id() { --get_context_counter(); } +size_t get_new_variable_id() { return get_variable_counter(); } + +size_t declare_output_type(const std::string& variableName, VariableInfo info) { + size_t variableId = get_new_variable_id(); +#ifdef KOKKOS_ENABLE_TUNING + if (Experimental::current_callbacks.declare_output_type != nullptr) { + (*Experimental::current_callbacks.declare_output_type)(variableName.c_str(), + variableId, &info); + } + variable_metadata[variableId] = info; +#else + (void)variableName; + (void)info; +#endif + return variableId; +} + +size_t declare_input_type(const std::string& variableName, VariableInfo info) { + size_t variableId = get_new_variable_id(); +#ifdef KOKKOS_ENABLE_TUNING + if (Experimental::current_callbacks.declare_input_type != nullptr) { + (*Experimental::current_callbacks.declare_input_type)(variableName.c_str(), + variableId, &info); + } + variable_metadata[variableId] = info; +#else + (void)variableName; + (void)info; +#endif + return variableId; +} + +void set_input_values(size_t contextId, size_t count, VariableValue* values) { +#ifdef KOKKOS_ENABLE_TUNING + if (features_per_context.find(contextId) == features_per_context.end()) { + features_per_context[contextId] = std::unordered_set<size_t>(); + } + for (size_t x = 0; x < count; ++x) { + values[x].metadata = &variable_metadata[values[x].type_id]; + features_per_context[contextId].insert(values[x].type_id); + active_features.insert(values[x].type_id); + feature_values[values[x].type_id] = values[x]; + } +#else + (void)contextId; + (void)count; + (void)values; +#endif +} +#include <iostream> +void request_output_values(size_t contextId, size_t count, + VariableValue* values) { +#ifdef KOKKOS_ENABLE_TUNING + std::vector<size_t> context_ids; + std::vector<VariableValue> context_values; + for (auto id : active_features) { + context_values.push_back(feature_values[id]); + } + if (Experimental::current_callbacks.request_output_values != nullptr) { + for (size_t x = 0; x < count; ++x) { + values[x].metadata = &variable_metadata[values[x].type_id]; + } + (*Experimental::current_callbacks.request_output_values)( + contextId, context_values.size(), context_values.data(), count, values); + } +#else + (void)contextId; + (void)count; + (void)values; +#endif +} + +#ifdef KOKKOS_ENABLE_TUNING +static std::unordered_map<size_t, size_t> optimization_goals; +#endif + +void begin_context(size_t contextId) { + if (Experimental::current_callbacks.begin_tuning_context != nullptr) { + (*Experimental::current_callbacks.begin_tuning_context)(contextId); + } +} +void end_context(size_t contextId) { +#ifdef KOKKOS_ENABLE_TUNING + for (auto id : features_per_context[contextId]) { + active_features.erase(id); + } + if (Experimental::current_callbacks.end_tuning_context != nullptr) { + (*Experimental::current_callbacks.end_tuning_context)( + contextId, feature_values[optimization_goals[contextId]]); + } + optimization_goals.erase(contextId); + decrement_current_context_id(); +#else + (void)contextId; +#endif +} + +bool have_tuning_tool() { +#ifdef KOKKOS_ENABLE_TUNING + return (Experimental::current_callbacks.request_output_values != nullptr); +#else + return false; +#endif +} + +VariableValue make_variable_value(size_t id, int64_t val) { + VariableValue variable_value; + variable_value.type_id = id; + variable_value.value.int_value = val; + return variable_value; +} +VariableValue make_variable_value(size_t id, double val) { + VariableValue variable_value; + variable_value.type_id = id; + variable_value.value.double_value = val; + return variable_value; +} +VariableValue make_variable_value(size_t id, const std::string& val) { + VariableValue variable_value; + variable_value.type_id = id; + strncpy(variable_value.value.string_value, val.c_str(), + KOKKOS_TOOLS_TUNING_STRING_LENGTH - 1); + return variable_value; +} +SetOrRange make_candidate_set(size_t size, std::string* data) { + SetOrRange value_set; + value_set.set.values.string_value = new TuningString[size]; + for (size_t x = 0; x < size; ++x) { + strncpy(value_set.set.values.string_value[x], data[x].c_str(), + KOKKOS_TOOLS_TUNING_STRING_LENGTH - 1); + } + value_set.set.size = size; + return value_set; +} +SetOrRange make_candidate_set(size_t size, int64_t* data) { + SetOrRange value_set; + value_set.set.size = size; + value_set.set.values.int_value = data; + return value_set; +} +SetOrRange make_candidate_set(size_t size, double* data) { + SetOrRange value_set; + value_set.set.size = size; + value_set.set.values.double_value = data; + return value_set; +} +SetOrRange make_candidate_range(double lower, double upper, double step, + bool openLower = false, + bool openUpper = false) { + SetOrRange value_range; + value_range.range.lower.double_value = lower; + value_range.range.upper.double_value = upper; + value_range.range.step.double_value = step; + value_range.range.openLower = openLower; + value_range.range.openUpper = openUpper; + return value_range; +} + +SetOrRange make_candidate_range(int64_t lower, int64_t upper, int64_t step, + bool openLower = false, + bool openUpper = false) { + SetOrRange value_range; + value_range.range.lower.int_value = lower; + value_range.range.upper.int_value = upper; + value_range.range.step.int_value = step; + value_range.range.openLower = openLower; + value_range.range.openUpper = openUpper; + return value_range; +} + +size_t get_new_context_id(); +size_t get_current_context_id(); +void decrement_current_context_id(); +size_t get_new_variable_id(); +void declare_optimization_goal(const size_t context, + const OptimizationGoal& goal) { +#ifdef KOKKOS_ENABLE_TUNING + if (Experimental::current_callbacks.declare_optimization_goal != nullptr) { + (*Experimental::current_callbacks.declare_optimization_goal)(context, goal); + } + optimization_goals[context] = goal.type_id; +#else + (void)context; + (void)goal; +#endif +} +} // end namespace Experimental +} // end namespace Tools + +} // end namespace Kokkos diff --git a/packages/kokkos/core/src/impl/Kokkos_Profiling.hpp b/packages/kokkos/core/src/impl/Kokkos_Profiling.hpp new file mode 100644 index 000000000..688937623 --- /dev/null +++ b/packages/kokkos/core/src/impl/Kokkos_Profiling.hpp @@ -0,0 +1,595 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_IMPL_KOKKOS_PROFILING_HPP +#define KOKKOS_IMPL_KOKKOS_PROFILING_HPP + +#include <impl/Kokkos_Profiling_Interface.hpp> +#include <Kokkos_Macros.hpp> +#include <Kokkos_Core_fwd.hpp> +#include <Kokkos_ExecPolicy.hpp> +#include <Kokkos_Tuners.hpp> +#include <string> +#include <map> +#include <type_traits> +namespace Kokkos { + +// forward declaration +bool tune_internals() noexcept; + +namespace Tools { + +bool profileLibraryLoaded(); + +void beginParallelFor(const std::string& kernelPrefix, const uint32_t devID, + uint64_t* kernelID); +void endParallelFor(const uint64_t kernelID); +void beginParallelScan(const std::string& kernelPrefix, const uint32_t devID, + uint64_t* kernelID); +void endParallelScan(const uint64_t kernelID); +void beginParallelReduce(const std::string& kernelPrefix, const uint32_t devID, + uint64_t* kernelID); +void endParallelReduce(const uint64_t kernelID); + +void pushRegion(const std::string& kName); +void popRegion(); + +void createProfileSection(const std::string& sectionName, uint32_t* secID); +void startSection(const uint32_t secID); +void stopSection(const uint32_t secID); +void destroyProfileSection(const uint32_t secID); + +void markEvent(const std::string& evName); + +void allocateData(const SpaceHandle space, const std::string label, + const void* ptr, const uint64_t size); +void deallocateData(const SpaceHandle space, const std::string label, + const void* ptr, const uint64_t size); + +void beginDeepCopy(const SpaceHandle dst_space, const std::string dst_label, + const void* dst_ptr, const SpaceHandle src_space, + const std::string src_label, const void* src_ptr, + const uint64_t size); +void endDeepCopy(); +void beginFence(const std::string name, const uint32_t deviceId, + uint64_t* handle); +void endFence(const uint64_t handle); + +/** + * syncDualView declares to the tool that a given DualView + * has been synced. + * + * Arguments: + * + * label: name of the View within the DualView + * ptr: that View's data ptr + * to_device: true if the data is being synchronized to the device + * false otherwise + */ +void syncDualView(const std::string& label, const void* const ptr, + bool to_device); +/** + * modifyDualView declares to the tool that a given DualView + * has been modified. Note: this means that somebody *called* + * modify on the DualView, this doesn't get called any time + * somebody touches the data + * + * Arguments: + * + * label: name of the View within the DualView + * ptr: that View's data ptr + * on_device: true if the data is being modified on the device + * false otherwise + */ +void modifyDualView(const std::string& label, const void* const ptr, + bool on_device); + +void initialize(); +void finalize(); + +Kokkos_Profiling_SpaceHandle make_space_handle(const char* space_name); + +namespace Experimental { + +void set_init_callback(initFunction callback); +void set_finalize_callback(finalizeFunction callback); +void set_begin_parallel_for_callback(beginFunction callback); +void set_end_parallel_for_callback(endFunction callback); +void set_begin_parallel_reduce_callback(beginFunction callback); +void set_end_parallel_reduce_callback(endFunction callback); +void set_begin_parallel_scan_callback(beginFunction callback); +void set_end_parallel_scan_callback(endFunction callback); +void set_push_region_callback(pushFunction callback); +void set_pop_region_callback(popFunction callback); +void set_allocate_data_callback(allocateDataFunction callback); +void set_deallocate_data_callback(deallocateDataFunction callback); +void set_create_profile_section_callback(createProfileSectionFunction callback); +void set_start_profile_section_callback(startProfileSectionFunction callback); +void set_stop_profile_section_callback(stopProfileSectionFunction callback); +void set_destroy_profile_section_callback( + destroyProfileSectionFunction callback); +void set_profile_event_callback(profileEventFunction callback); +void set_begin_deep_copy_callback(beginDeepCopyFunction callback); +void set_end_deep_copy_callback(endDeepCopyFunction callback); +void set_begin_fence_callback(beginFenceFunction callback); +void set_end_fence_callback(endFenceFunction callback); +void set_dual_view_sync_callback(dualViewSyncFunction callback); +void set_dual_view_modify_callback(dualViewModifyFunction callback); + +void set_declare_output_type_callback(outputTypeDeclarationFunction callback); +void set_declare_input_type_callback(inputTypeDeclarationFunction callback); +void set_request_output_values_callback(requestValueFunction callback); +void set_declare_optimization_goal_callback( + optimizationGoalDeclarationFunction callback); +void set_end_context_callback(contextEndFunction callback); +void set_begin_context_callback(contextBeginFunction callback); + +void pause_tools(); +void resume_tools(); + +EventSet get_callbacks(); +void set_callbacks(EventSet new_events); +} // namespace Experimental + +namespace Experimental { +// forward declarations +size_t get_new_context_id(); +size_t get_current_context_id(); +} // namespace Experimental + +namespace Impl { + +static std::map<std::string, Kokkos::Tools::Experimental::TeamSizeTuner> + team_tuners; + +template <class ReducerType, class ExecPolicy, class Functor, typename TagType> +void tune_policy(const size_t, const std::string&, ExecPolicy&, const Functor&, + TagType) {} + +template <class ExecPolicy, class Functor, typename TagType> +void tune_policy(const size_t, const std::string&, ExecPolicy&, const Functor&, + const TagType&) {} + +/** + * Tuning for parallel_fors and parallel_scans is a fairly simple process. + * + * Tuning for a parallel_reduce turns out to be a little more complicated. + * + * If you're tuning a reducer, it might be a complex or a simple reducer + * (an example of simple would be one where the join is just "+". + * + * Unfortunately these two paths are very different in terms of which classes + * get instantiated. Thankfully, all of this complexity is encoded in the + * ReducerType. If it's a "simple" reducer, this will be Kokkos::InvalidType, + * otherwise it'll be something else. + * + * If the type is complex, for the code to be generally right you _must_ + * pass an instance of that ReducerType to functions that determine + * eligible team sizes. If the type is simple, you can't construct one, + * you use the simpler 2-arg formulation of team_size_recommended/max. + */ + +namespace Impl { + +struct SimpleTeamSizeCalculator { + template <typename Policy, typename Functor, typename Tag> + int get_max_team_size(const Policy& policy, const Functor& functor, + const Tag tag) { + auto max = policy.team_size_max(functor, tag); + return max; + } + template <typename Policy, typename Functor, typename Tag> + int get_recommended_team_size(const Policy& policy, const Functor& functor, + const Tag tag) { + auto max = policy.team_size_recommended(functor, tag); + return max; + } +}; + +// when we have a complex reducer, we need to pass an +// instance to team_size_recommended/max. Reducers +// aren't default constructible, but they are +// constructible from a reference to an +// instance of their value_type so we construct +// a value_type and temporary reducer here +template <typename ReducerType> +struct ComplexReducerSizeCalculator { + template <typename Policy, typename Functor, typename Tag> + int get_max_team_size(const Policy& policy, const Functor& functor, + const Tag tag) { + using value_type = typename ReducerType::value_type; + value_type value; + ReducerType reducer_example = ReducerType(value); + return policy.team_size_max(functor, reducer_example, tag); + } + template <typename Policy, typename Functor, typename Tag> + int get_recommended_team_size(const Policy& policy, const Functor& functor, + const Tag tag) { + using value_type = typename ReducerType::value_type; + value_type value; + ReducerType reducer_example = ReducerType(value); + return policy.team_size_recommended(functor, reducer_example, tag); + } +}; + +} // namespace Impl + +template <class Functor, class TagType, class... Properties> +void tune_policy(const size_t /**tuning_context*/, const std::string& label_in, + Kokkos::TeamPolicy<Properties...>& policy, + const Functor& functor, const TagType& tag) { + if (policy.impl_auto_team_size() || policy.impl_auto_vector_length()) { + std::string label = label_in; + if (label_in.empty()) { + using policy_type = + typename std::remove_reference<decltype(policy)>::type; + using work_tag = typename policy_type::work_tag; + Kokkos::Impl::ParallelConstructName<Functor, work_tag> name(label); + label = name.get(); + } + auto tuner_iter = [&]() { + auto my_tuner = team_tuners.find(label); + if (my_tuner == team_tuners.end()) { + return (team_tuners + .emplace(label, Kokkos::Tools::Experimental::TeamSizeTuner( + label, policy, functor, tag, + Impl::SimpleTeamSizeCalculator{})) + .first); + } + return my_tuner; + }(); + tuner_iter->second.tune(policy); + } +} + +template <class ReducerType, class Functor, class TagType, class... Properties> +void tune_policy(const size_t /**tuning_context*/, const std::string& label_in, + Kokkos::TeamPolicy<Properties...>& policy, + const Functor& functor, const TagType& tag) { + if (policy.impl_auto_team_size() || policy.impl_auto_vector_length()) { + std::string label = label_in; + if (label_in.empty()) { + using policy_type = + typename std::remove_reference<decltype(policy)>::type; + using work_tag = typename policy_type::work_tag; + Kokkos::Impl::ParallelConstructName<Functor, work_tag> name(label); + label = name.get(); + } + auto tuner_iter = [&]() { + auto my_tuner = team_tuners.find(label); + if (my_tuner == team_tuners.end()) { + return ( + team_tuners + .emplace(label, + Kokkos::Tools::Experimental::TeamSizeTuner( + label, policy, functor, tag, + Impl::ComplexReducerSizeCalculator<ReducerType>{})) + .first); + } + return my_tuner; + }(); + tuner_iter->second.tune(policy); + } +} + +template <class ReducerType> +struct ReductionSwitcher { + template <class Functor, class TagType, class ExecPolicy> + static void tune(const size_t tuning_context, const std::string& label, + ExecPolicy& policy, const Functor& functor, + const TagType& tag) { + if (Kokkos::tune_internals()) { + tune_policy<ReducerType>(tuning_context, label, policy, functor, tag); + } + } +}; + +template <> +struct ReductionSwitcher<Kokkos::InvalidType> { + template <class Functor, class TagType, class ExecPolicy> + static void tune(const size_t tuning_context, const std::string& label, + ExecPolicy& policy, const Functor& functor, + const TagType& tag) { + if (Kokkos::tune_internals()) { + tune_policy(tuning_context, label, policy, functor, tag); + } + } +}; + +template <class ExecPolicy, class Functor, typename TagType> +void report_policy_results(const size_t, const std::string&, ExecPolicy&, + const Functor&, const TagType&) {} + +template <class Functor, class TagType, class... Properties> +void report_policy_results(const size_t /**tuning_context*/, + const std::string& label_in, + Kokkos::TeamPolicy<Properties...> policy, + const Functor&, const TagType&) { + if (policy.impl_auto_team_size() || policy.impl_auto_vector_length()) { + std::string label = label_in; + if (label_in.empty()) { + using policy_type = + typename std::remove_reference<decltype(policy)>::type; + using work_tag = typename policy_type::work_tag; + Kokkos::Impl::ParallelConstructName<Functor, work_tag> name(label); + label = name.get(); + } + auto& tuner = team_tuners[label]; + tuner.end(); + } +} + +template <class ExecPolicy, class FunctorType> +void begin_parallel_for(ExecPolicy& policy, FunctorType& functor, + const std::string& label, uint64_t& kpID) { + if (Kokkos::Tools::profileLibraryLoaded()) { + Kokkos::Impl::ParallelConstructName<FunctorType, + typename ExecPolicy::work_tag> + name(label); + Kokkos::Tools::beginParallelFor( + name.get(), Kokkos::Profiling::Experimental::device_id(policy.space()), + &kpID); + } +#ifdef KOKKOS_ENABLE_TUNING + size_t context_id = Kokkos::Tools::Experimental::get_new_context_id(); + if (Kokkos::tune_internals()) { + tune_policy(context_id, label, policy, functor, Kokkos::ParallelForTag{}); + } +#else + (void)functor; +#endif +} + +template <class ExecPolicy, class FunctorType> +void end_parallel_for(ExecPolicy& policy, FunctorType& functor, + const std::string& label, uint64_t& kpID) { + if (Kokkos::Tools::profileLibraryLoaded()) { + Kokkos::Tools::endParallelFor(kpID); + } +#ifdef KOKKOS_ENABLE_TUNING + size_t context_id = Kokkos::Tools::Experimental::get_current_context_id(); + if (Kokkos::tune_internals()) { + report_policy_results(context_id, label, policy, functor, + Kokkos::ParallelForTag{}); + } +#else + (void)policy; + (void)functor; + (void)label; +#endif +} + +template <class ExecPolicy, class FunctorType> +void begin_parallel_scan(ExecPolicy& policy, FunctorType& functor, + const std::string& label, uint64_t& kpID) { + if (Kokkos::Tools::profileLibraryLoaded()) { + Kokkos::Impl::ParallelConstructName<FunctorType, + typename ExecPolicy::work_tag> + name(label); + Kokkos::Tools::beginParallelScan( + name.get(), Kokkos::Profiling::Experimental::device_id(policy.space()), + &kpID); + } +#ifdef KOKKOS_ENABLE_TUNING + size_t context_id = Kokkos::Tools::Experimental::get_new_context_id(); + if (Kokkos::tune_internals()) { + tune_policy(context_id, label, policy, functor, Kokkos::ParallelScanTag{}); + } +#else + (void)functor; +#endif +} + +template <class ExecPolicy, class FunctorType> +void end_parallel_scan(ExecPolicy& policy, FunctorType& functor, + const std::string& label, uint64_t& kpID) { + if (Kokkos::Tools::profileLibraryLoaded()) { + Kokkos::Tools::endParallelScan(kpID); + } +#ifdef KOKKOS_ENABLE_TUNING + size_t context_id = Kokkos::Tools::Experimental::get_current_context_id(); + if (Kokkos::tune_internals()) { + report_policy_results(context_id, label, policy, functor, + Kokkos::ParallelScanTag{}); + } +#else + (void)policy; + (void)functor; + (void)label; +#endif +} + +template <class ReducerType, class ExecPolicy, class FunctorType> +void begin_parallel_reduce(ExecPolicy& policy, FunctorType& functor, + const std::string& label, uint64_t& kpID) { + if (Kokkos::Tools::profileLibraryLoaded()) { + Kokkos::Impl::ParallelConstructName<FunctorType, + typename ExecPolicy::work_tag> + name(label); + Kokkos::Tools::beginParallelReduce( + name.get(), Kokkos::Profiling::Experimental::device_id(policy.space()), + &kpID); + } +#ifdef KOKKOS_ENABLE_TUNING + size_t context_id = Kokkos::Tools::Experimental::get_new_context_id(); + ReductionSwitcher<ReducerType>::tune(context_id, label, policy, functor, + Kokkos::ParallelReduceTag{}); +#else + (void)functor; +#endif +} + +template <class ReducerType, class ExecPolicy, class FunctorType> +void end_parallel_reduce(ExecPolicy& policy, FunctorType& functor, + const std::string& label, uint64_t& kpID) { + if (Kokkos::Tools::profileLibraryLoaded()) { + Kokkos::Tools::endParallelReduce(kpID); + } +#ifdef KOKKOS_ENABLE_TUNING + size_t context_id = Kokkos::Tools::Experimental::get_current_context_id(); + if (Kokkos::tune_internals()) { + report_policy_results(context_id, label, policy, functor, + Kokkos::ParallelReduceTag{}); + } +#else + (void)policy; + (void)functor; + (void)label; +#endif +} + +} // namespace Impl + +} // namespace Tools +namespace Profiling { + +bool profileLibraryLoaded(); + +void beginParallelFor(const std::string& kernelPrefix, const uint32_t devID, + uint64_t* kernelID); +void beginParallelReduce(const std::string& kernelPrefix, const uint32_t devID, + uint64_t* kernelID); +void beginParallelScan(const std::string& kernelPrefix, const uint32_t devID, + uint64_t* kernelID); +void endParallelFor(const uint64_t kernelID); +void endParallelReduce(const uint64_t kernelID); +void endParallelScan(const uint64_t kernelID); +void pushRegion(const std::string& kName); +void popRegion(); + +void createProfileSection(const std::string& sectionName, uint32_t* secID); +void destroyProfileSection(const uint32_t secID); +void startSection(const uint32_t secID); + +void stopSection(const uint32_t secID); + +void markEvent(const std::string& eventName); +void allocateData(const SpaceHandle handle, const std::string name, + const void* data, const uint64_t size); +void deallocateData(const SpaceHandle space, const std::string label, + const void* ptr, const uint64_t size); +void beginDeepCopy(const SpaceHandle dst_space, const std::string dst_label, + const void* dst_ptr, const SpaceHandle src_space, + const std::string src_label, const void* src_ptr, + const uint64_t size); +void endDeepCopy(); +void finalize(); +void initialize(); +SpaceHandle make_space_handle(const char* space_name); + +namespace Experimental { +using Kokkos::Tools::Experimental::set_allocate_data_callback; +using Kokkos::Tools::Experimental::set_begin_deep_copy_callback; +using Kokkos::Tools::Experimental::set_begin_parallel_for_callback; +using Kokkos::Tools::Experimental::set_begin_parallel_reduce_callback; +using Kokkos::Tools::Experimental::set_begin_parallel_scan_callback; +using Kokkos::Tools::Experimental::set_create_profile_section_callback; +using Kokkos::Tools::Experimental::set_deallocate_data_callback; +using Kokkos::Tools::Experimental::set_destroy_profile_section_callback; +using Kokkos::Tools::Experimental::set_end_deep_copy_callback; +using Kokkos::Tools::Experimental::set_end_parallel_for_callback; +using Kokkos::Tools::Experimental::set_end_parallel_reduce_callback; +using Kokkos::Tools::Experimental::set_end_parallel_scan_callback; +using Kokkos::Tools::Experimental::set_finalize_callback; +using Kokkos::Tools::Experimental::set_init_callback; +using Kokkos::Tools::Experimental::set_pop_region_callback; +using Kokkos::Tools::Experimental::set_profile_event_callback; +using Kokkos::Tools::Experimental::set_push_region_callback; +using Kokkos::Tools::Experimental::set_start_profile_section_callback; +using Kokkos::Tools::Experimental::set_stop_profile_section_callback; + +using Kokkos::Tools::Experimental::EventSet; + +using Kokkos::Tools::Experimental::pause_tools; +using Kokkos::Tools::Experimental::resume_tools; + +using Kokkos::Tools::Experimental::get_callbacks; +using Kokkos::Tools::Experimental::set_callbacks; + +} // namespace Experimental +} // namespace Profiling + +namespace Tools { +namespace Experimental { + +VariableValue make_variable_value(size_t id, int64_t val); +VariableValue make_variable_value(size_t id, double val); +VariableValue make_variable_value(size_t id, const std::string& val); + +SetOrRange make_candidate_set(size_t size, std::string* data); +SetOrRange make_candidate_set(size_t size, int64_t* data); +SetOrRange make_candidate_set(size_t size, double* data); +SetOrRange make_candidate_range(double lower, double upper, double step, + bool openLower, bool openUpper); + +SetOrRange make_candidate_range(int64_t lower, int64_t upper, int64_t step, + bool openLower, bool openUpper); + +void declare_optimization_goal(const size_t context, + const OptimizationGoal& goal); + +size_t declare_output_type(const std::string& typeName, VariableInfo info); + +size_t declare_input_type(const std::string& typeName, VariableInfo info); + +void set_input_values(size_t contextId, size_t count, VariableValue* values); + +void end_context(size_t contextId); +void begin_context(size_t contextId); + +void request_output_values(size_t contextId, size_t count, + VariableValue* values); + +bool have_tuning_tool(); + +size_t get_new_context_id(); +size_t get_current_context_id(); + +size_t get_new_variable_id(); +} // namespace Experimental +} // namespace Tools + +} // namespace Kokkos + +#endif diff --git a/packages/kokkos/core/src/impl/Kokkos_Profiling_C_Interface.h b/packages/kokkos/core/src/impl/Kokkos_Profiling_C_Interface.h new file mode 100644 index 000000000..de771d330 --- /dev/null +++ b/packages/kokkos/core/src/impl/Kokkos_Profiling_C_Interface.h @@ -0,0 +1,259 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_PROFILING_C_INTERFACE_HPP +#define KOKKOS_PROFILING_C_INTERFACE_HPP + +#ifdef __cplusplus +#include <cstddef> +#include <cstdint> +#else +#include <stddef.h> +#include <stdint.h> +#include <stdbool.h> +#endif + +#define KOKKOSP_INTERFACE_VERSION 20200625 + +// Profiling + +struct Kokkos_Profiling_KokkosPDeviceInfo { + size_t deviceID; +}; + +struct Kokkos_Profiling_SpaceHandle { + char name[64]; +}; + +// NOLINTNEXTLINE(modernize-use-using): C compatibility +typedef void (*Kokkos_Profiling_initFunction)( + const int, const uint64_t, const uint32_t, + struct Kokkos_Profiling_KokkosPDeviceInfo*); +// NOLINTNEXTLINE(modernize-use-using): C compatibility +typedef void (*Kokkos_Profiling_finalizeFunction)(); +// NOLINTNEXTLINE(modernize-use-using): C compatibility +typedef void (*Kokkos_Profiling_beginFunction)(const char*, const uint32_t, + uint64_t*); +// NOLINTNEXTLINE(modernize-use-using): C compatibility +typedef void (*Kokkos_Profiling_endFunction)(uint64_t); + +// NOLINTNEXTLINE(modernize-use-using): C compatibility +typedef void (*Kokkos_Profiling_pushFunction)(const char*); +// NOLINTNEXTLINE(modernize-use-using): C compatibility +typedef void (*Kokkos_Profiling_popFunction)(); + +// NOLINTNEXTLINE(modernize-use-using): C compatibility +typedef void (*Kokkos_Profiling_allocateDataFunction)( + const struct Kokkos_Profiling_SpaceHandle, const char*, const void*, + const uint64_t); +// NOLINTNEXTLINE(modernize-use-using): C compatibility +typedef void (*Kokkos_Profiling_deallocateDataFunction)( + const struct Kokkos_Profiling_SpaceHandle, const char*, const void*, + const uint64_t); + +// NOLINTNEXTLINE(modernize-use-using): C compatibility +typedef void (*Kokkos_Profiling_createProfileSectionFunction)(const char*, + uint32_t*); +// NOLINTNEXTLINE(modernize-use-using): C compatibility +typedef void (*Kokkos_Profiling_startProfileSectionFunction)(const uint32_t); +// NOLINTNEXTLINE(modernize-use-using): C compatibility +typedef void (*Kokkos_Profiling_stopProfileSectionFunction)(const uint32_t); +// NOLINTNEXTLINE(modernize-use-using): C compatibility +typedef void (*Kokkos_Profiling_destroyProfileSectionFunction)(const uint32_t); + +// NOLINTNEXTLINE(modernize-use-using): C compatibility +typedef void (*Kokkos_Profiling_profileEventFunction)(const char*); + +// NOLINTNEXTLINE(modernize-use-using): C compatibility +typedef void (*Kokkos_Profiling_beginDeepCopyFunction)( + struct Kokkos_Profiling_SpaceHandle, const char*, const void*, + struct Kokkos_Profiling_SpaceHandle, const char*, const void*, uint64_t); +// NOLINTNEXTLINE(modernize-use-using): C compatibility +typedef void (*Kokkos_Profiling_endDeepCopyFunction)(); +typedef void (*Kokkos_Profiling_beginFenceFunction)(const char*, const uint32_t, + uint64_t*); +typedef void (*Kokkos_Profiling_endFenceFunction)(uint64_t); + +// NOLINTNEXTLINE(modernize-use-using): C compatibility +typedef void (*Kokkos_Profiling_dualViewSyncFunction)(const char*, + const void* const, bool); +// NOLINTNEXTLINE(modernize-use-using): C compatibility +typedef void (*Kokkos_Profiling_dualViewModifyFunction)(const char*, + const void* const, + bool); + +// Tuning + +#define KOKKOS_TOOLS_TUNING_STRING_LENGTH 64 +typedef char Kokkos_Tools_Tuning_String[KOKKOS_TOOLS_TUNING_STRING_LENGTH]; +union Kokkos_Tools_VariableValue_ValueUnion { + int64_t int_value; + double double_value; + Kokkos_Tools_Tuning_String string_value; +}; + +union Kokkos_Tools_VariableValue_ValueUnionSet { + int64_t* int_value; + double* double_value; + Kokkos_Tools_Tuning_String* string_value; +}; + +struct Kokkos_Tools_ValueSet { + size_t size; + union Kokkos_Tools_VariableValue_ValueUnionSet values; +}; + +enum Kokkos_Tools_OptimizationType { + Kokkos_Tools_Minimize, + Kokkos_Tools_Maximize +}; + +struct Kokkos_Tools_OptimzationGoal { + size_t type_id; + enum Kokkos_Tools_OptimizationType goal; +}; + +struct Kokkos_Tools_ValueRange { + union Kokkos_Tools_VariableValue_ValueUnion lower; + union Kokkos_Tools_VariableValue_ValueUnion upper; + union Kokkos_Tools_VariableValue_ValueUnion step; + bool openLower; + bool openUpper; +}; + +enum Kokkos_Tools_VariableInfo_ValueType { + kokkos_value_double, + kokkos_value_int64, + kokkos_value_string, +}; + +enum Kokkos_Tools_VariableInfo_StatisticalCategory { + kokkos_value_categorical, // unordered distinct objects + kokkos_value_ordinal, // ordered distinct objects + kokkos_value_interval, // ordered distinct objects for which distance matters + kokkos_value_ratio // ordered distinct objects for which distance matters, + // division matters, and the concept of zero exists +}; + +enum Kokkos_Tools_VariableInfo_CandidateValueType { + kokkos_value_set, // I am one of [2,3,4,5] + kokkos_value_range, // I am somewhere in [2,12) + kokkos_value_unbounded // I am [text/int/float], but we don't know at + // declaration time what values are appropriate. Only + // valid for Context Variables +}; + +union Kokkos_Tools_VariableInfo_SetOrRange { + struct Kokkos_Tools_ValueSet set; + struct Kokkos_Tools_ValueRange range; +}; + +struct Kokkos_Tools_VariableInfo { + enum Kokkos_Tools_VariableInfo_ValueType type; + enum Kokkos_Tools_VariableInfo_StatisticalCategory category; + enum Kokkos_Tools_VariableInfo_CandidateValueType valueQuantity; + union Kokkos_Tools_VariableInfo_SetOrRange candidates; + void* toolProvidedInfo; +}; + +struct Kokkos_Tools_VariableValue { + size_t type_id; + union Kokkos_Tools_VariableValue_ValueUnion value; + struct Kokkos_Tools_VariableInfo* metadata; +}; + +typedef void (*Kokkos_Tools_outputTypeDeclarationFunction)( + const char*, const size_t, struct Kokkos_Tools_VariableInfo* info); +typedef void (*Kokkos_Tools_inputTypeDeclarationFunction)( + const char*, const size_t, struct Kokkos_Tools_VariableInfo* info); + +typedef void (*Kokkos_Tools_requestValueFunction)( + const size_t, const size_t, const struct Kokkos_Tools_VariableValue*, + const size_t count, struct Kokkos_Tools_VariableValue*); +typedef void (*Kokkos_Tools_contextBeginFunction)(const size_t); +typedef void (*Kokkos_Tools_contextEndFunction)( + const size_t, struct Kokkos_Tools_VariableValue); +typedef void (*Kokkos_Tools_optimizationGoalDeclarationFunction)( + const size_t, const struct Kokkos_Tools_OptimzationGoal goal); + +typedef void (*function_pointer)(); + +struct Kokkos_Profiling_EventSet { + Kokkos_Profiling_initFunction init; + Kokkos_Profiling_finalizeFunction finalize; + Kokkos_Profiling_beginFunction begin_parallel_for; + Kokkos_Profiling_endFunction end_parallel_for; + Kokkos_Profiling_beginFunction begin_parallel_reduce; + Kokkos_Profiling_endFunction end_parallel_reduce; + Kokkos_Profiling_beginFunction begin_parallel_scan; + Kokkos_Profiling_endFunction end_parallel_scan; + Kokkos_Profiling_pushFunction push_region; + Kokkos_Profiling_popFunction pop_region; + Kokkos_Profiling_allocateDataFunction allocate_data; + Kokkos_Profiling_deallocateDataFunction deallocate_data; + Kokkos_Profiling_createProfileSectionFunction create_profile_section; + Kokkos_Profiling_startProfileSectionFunction start_profile_section; + Kokkos_Profiling_stopProfileSectionFunction stop_profile_section; + Kokkos_Profiling_destroyProfileSectionFunction destroy_profile_section; + Kokkos_Profiling_profileEventFunction profile_event; + Kokkos_Profiling_beginDeepCopyFunction begin_deep_copy; + Kokkos_Profiling_endDeepCopyFunction end_deep_copy; + Kokkos_Profiling_beginFenceFunction begin_fence; + Kokkos_Profiling_endFenceFunction end_fence; + Kokkos_Profiling_dualViewSyncFunction sync_dual_view; + Kokkos_Profiling_dualViewModifyFunction modify_dual_view; + char profiling_padding[12 * sizeof(function_pointer)]; + Kokkos_Tools_outputTypeDeclarationFunction declare_output_type; + Kokkos_Tools_inputTypeDeclarationFunction declare_input_type; + Kokkos_Tools_requestValueFunction request_output_values; + Kokkos_Tools_contextBeginFunction begin_tuning_context; + Kokkos_Tools_contextEndFunction end_tuning_context; + Kokkos_Tools_optimizationGoalDeclarationFunction declare_optimization_goal; + char padding[234 * + sizeof(function_pointer)]; // allows us to add another 256 + // events to the Tools interface + // without changing struct layout +}; + +#endif // KOKKOS_PROFILING_C_INTERFACE_HPP diff --git a/packages/kokkos/core/src/impl/Kokkos_Profiling_DeviceInfo.hpp b/packages/kokkos/core/src/impl/Kokkos_Profiling_DeviceInfo.hpp index 51d1446ef..be6f756d0 100644 --- a/packages/kokkos/core/src/impl/Kokkos_Profiling_DeviceInfo.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_Profiling_DeviceInfo.hpp @@ -46,14 +46,10 @@ #define KOKKOSP_DEVICE_INFO_HPP #include <cstdint> - +#include <impl/Kokkos_Profiling_C_Interface.h> namespace Kokkos { namespace Profiling { - -struct KokkosPDeviceInfo { - uint32_t deviceID; -}; - +using KokkosPDeviceInfo = Kokkos_Profiling_KokkosPDeviceInfo; } // namespace Profiling } // namespace Kokkos diff --git a/packages/kokkos/core/src/impl/Kokkos_Profiling_Interface.cpp b/packages/kokkos/core/src/impl/Kokkos_Profiling_Interface.cpp deleted file mode 100644 index cf52caea9..000000000 --- a/packages/kokkos/core/src/impl/Kokkos_Profiling_Interface.cpp +++ /dev/null @@ -1,387 +0,0 @@ -/* - //@HEADER - // ************************************************************************ - // - // Kokkos v. 3.0 -// Copyright (2020) 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. - // - // 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 Corporation nor the names of the - // contributors may be used to endorse or promote products derived from - // this software without specific prior written permission. - // - // THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE - // 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. - // - // Questions? Contact Christian R. Trott (crtrott@sandia.gov) - // - // ************************************************************************ - //@HEADER - */ - -#include <Kokkos_Macros.hpp> - -#if defined(KOKKOS_ENABLE_PROFILING) - -#include <impl/Kokkos_Profiling_Interface.hpp> -#include <cstring> - -namespace Kokkos { -namespace Profiling { - -static initFunction initProfileLibrary = nullptr; -static finalizeFunction finalizeProfileLibrary = nullptr; - -static beginFunction beginForCallee = nullptr; -static beginFunction beginScanCallee = nullptr; -static beginFunction beginReduceCallee = nullptr; -static endFunction endForCallee = nullptr; -static endFunction endScanCallee = nullptr; -static endFunction endReduceCallee = nullptr; - -static pushFunction pushRegionCallee = nullptr; -static popFunction popRegionCallee = nullptr; - -static allocateDataFunction allocateDataCallee = nullptr; -static deallocateDataFunction deallocateDataCallee = nullptr; - -static beginDeepCopyFunction beginDeepCopyCallee = nullptr; -static endDeepCopyFunction endDeepCopyCallee = nullptr; - -static createProfileSectionFunction createSectionCallee = nullptr; -static startProfileSectionFunction startSectionCallee = nullptr; -static stopProfileSectionFunction stopSectionCallee = nullptr; -static destroyProfileSectionFunction destroySectionCallee = nullptr; - -static profileEventFunction profileEventCallee = nullptr; - -SpaceHandle::SpaceHandle(const char* space_name) { - strncpy(name, space_name, 64); -} - -bool profileLibraryLoaded() { return (nullptr != initProfileLibrary); } - -void beginParallelFor(const std::string& kernelPrefix, const uint32_t devID, - uint64_t* kernelID) { - if (nullptr != beginForCallee) { - Kokkos::fence(); - (*beginForCallee)(kernelPrefix.c_str(), devID, kernelID); - } -} - -void endParallelFor(const uint64_t kernelID) { - if (nullptr != endForCallee) { - Kokkos::fence(); - (*endForCallee)(kernelID); - } -} - -void beginParallelScan(const std::string& kernelPrefix, const uint32_t devID, - uint64_t* kernelID) { - if (nullptr != beginScanCallee) { - Kokkos::fence(); - (*beginScanCallee)(kernelPrefix.c_str(), devID, kernelID); - } -} - -void endParallelScan(const uint64_t kernelID) { - if (nullptr != endScanCallee) { - Kokkos::fence(); - (*endScanCallee)(kernelID); - } -} - -void beginParallelReduce(const std::string& kernelPrefix, const uint32_t devID, - uint64_t* kernelID) { - if (nullptr != beginReduceCallee) { - Kokkos::fence(); - (*beginReduceCallee)(kernelPrefix.c_str(), devID, kernelID); - } -} - -void endParallelReduce(const uint64_t kernelID) { - if (nullptr != endReduceCallee) { - Kokkos::fence(); - (*endReduceCallee)(kernelID); - } -} - -void pushRegion(const std::string& kName) { - if (nullptr != pushRegionCallee) { - Kokkos::fence(); - (*pushRegionCallee)(kName.c_str()); - } -} - -void popRegion() { - if (nullptr != popRegionCallee) { - Kokkos::fence(); - (*popRegionCallee)(); - } -} - -void allocateData(const SpaceHandle space, const std::string label, - const void* ptr, const uint64_t size) { - if (nullptr != allocateDataCallee) { - (*allocateDataCallee)(space, label.c_str(), ptr, size); - } -} - -void deallocateData(const SpaceHandle space, const std::string label, - const void* ptr, const uint64_t size) { - if (nullptr != deallocateDataCallee) { - (*deallocateDataCallee)(space, label.c_str(), ptr, size); - } -} - -void beginDeepCopy(const SpaceHandle dst_space, const std::string dst_label, - const void* dst_ptr, const SpaceHandle src_space, - const std::string src_label, const void* src_ptr, - const uint64_t size) { - if (nullptr != beginDeepCopyCallee) { - (*beginDeepCopyCallee)(dst_space, dst_label.c_str(), dst_ptr, src_space, - src_label.c_str(), src_ptr, size); - } -} - -void endDeepCopy() { - if (nullptr != endDeepCopyCallee) { - (*endDeepCopyCallee)(); - } -} - -void createProfileSection(const std::string& sectionName, uint32_t* secID) { - if (nullptr != createSectionCallee) { - (*createSectionCallee)(sectionName.c_str(), secID); - } -} - -void startSection(const uint32_t secID) { - if (nullptr != startSectionCallee) { - (*startSectionCallee)(secID); - } -} - -void stopSection(const uint32_t secID) { - if (nullptr != stopSectionCallee) { - (*stopSectionCallee)(secID); - } -} - -void destroyProfileSection(const uint32_t secID) { - if (nullptr != destroySectionCallee) { - (*destroySectionCallee)(secID); - } -} - -void markEvent(const std::string& eventName) { - if (nullptr != profileEventCallee) { - (*profileEventCallee)(eventName.c_str()); - } -} - -void initialize() { - // Make sure initialize calls happens only once - static int is_initialized = 0; - if (is_initialized) return; - is_initialized = 1; - - void* firstProfileLibrary; - - char* envProfileLibrary = getenv("KOKKOS_PROFILE_LIBRARY"); - - // If we do not find a profiling library in the environment then exit - // early. - if (nullptr == envProfileLibrary) { - return; - } - - char* envProfileCopy = - (char*)malloc(sizeof(char) * (strlen(envProfileLibrary) + 1)); - sprintf(envProfileCopy, "%s", envProfileLibrary); - - char* profileLibraryName = strtok(envProfileCopy, ";"); - - if ((nullptr != profileLibraryName) && - (strcmp(profileLibraryName, "") != 0)) { - firstProfileLibrary = dlopen(profileLibraryName, RTLD_NOW | RTLD_GLOBAL); - - if (nullptr == firstProfileLibrary) { - std::cerr << "Error: Unable to load KokkosP library: " - << profileLibraryName << std::endl; - std::cerr << "dlopen(" << profileLibraryName - << ", RTLD_NOW | RTLD_GLOBAL) failed with " << dlerror() - << '\n'; - } else { -#ifdef KOKKOS_ENABLE_PROFILING_LOAD_PRINT - std::cout << "KokkosP: Library Loaded: " << profileLibraryName - << std::endl; -#endif - - // dlsym returns a pointer to an object, while we want to assign to - // pointer to function A direct cast will give warnings hence, we have to - // workaround the issue by casting pointer to pointers. - auto p1 = dlsym(firstProfileLibrary, "kokkosp_begin_parallel_for"); - beginForCallee = *((beginFunction*)&p1); - auto p2 = dlsym(firstProfileLibrary, "kokkosp_begin_parallel_scan"); - beginScanCallee = *((beginFunction*)&p2); - auto p3 = dlsym(firstProfileLibrary, "kokkosp_begin_parallel_reduce"); - beginReduceCallee = *((beginFunction*)&p3); - - auto p4 = dlsym(firstProfileLibrary, "kokkosp_end_parallel_scan"); - endScanCallee = *((endFunction*)&p4); - auto p5 = dlsym(firstProfileLibrary, "kokkosp_end_parallel_for"); - endForCallee = *((endFunction*)&p5); - auto p6 = dlsym(firstProfileLibrary, "kokkosp_end_parallel_reduce"); - endReduceCallee = *((endFunction*)&p6); - - auto p7 = dlsym(firstProfileLibrary, "kokkosp_init_library"); - initProfileLibrary = *((initFunction*)&p7); - auto p8 = dlsym(firstProfileLibrary, "kokkosp_finalize_library"); - finalizeProfileLibrary = *((finalizeFunction*)&p8); - - auto p9 = dlsym(firstProfileLibrary, "kokkosp_push_profile_region"); - pushRegionCallee = *((pushFunction*)&p9); - auto p10 = dlsym(firstProfileLibrary, "kokkosp_pop_profile_region"); - popRegionCallee = *((popFunction*)&p10); - - auto p11 = dlsym(firstProfileLibrary, "kokkosp_allocate_data"); - allocateDataCallee = *((allocateDataFunction*)&p11); - auto p12 = dlsym(firstProfileLibrary, "kokkosp_deallocate_data"); - deallocateDataCallee = *((deallocateDataFunction*)&p12); - - auto p13 = dlsym(firstProfileLibrary, "kokkosp_begin_deep_copy"); - beginDeepCopyCallee = *((beginDeepCopyFunction*)&p13); - auto p14 = dlsym(firstProfileLibrary, "kokkosp_end_deep_copy"); - endDeepCopyCallee = *((endDeepCopyFunction*)&p14); - - auto p15 = dlsym(firstProfileLibrary, "kokkosp_create_profile_section"); - createSectionCallee = *((createProfileSectionFunction*)&p15); - auto p16 = dlsym(firstProfileLibrary, "kokkosp_start_profile_section"); - startSectionCallee = *((startProfileSectionFunction*)&p16); - auto p17 = dlsym(firstProfileLibrary, "kokkosp_stop_profile_section"); - stopSectionCallee = *((stopProfileSectionFunction*)&p17); - auto p18 = dlsym(firstProfileLibrary, "kokkosp_destroy_profile_section"); - destroySectionCallee = *((destroyProfileSectionFunction*)&p18); - - auto p19 = dlsym(firstProfileLibrary, "kokkosp_profile_event"); - profileEventCallee = *((profileEventFunction*)&p19); - } - } - - if (nullptr != initProfileLibrary) { - (*initProfileLibrary)(0, (uint64_t)KOKKOSP_INTERFACE_VERSION, (uint32_t)0, - nullptr); - } - - free(envProfileCopy); -} - -void finalize() { - // Make sure finalize calls happens only once - static int is_finalized = 0; - if (is_finalized) return; - is_finalized = 1; - - if (nullptr != finalizeProfileLibrary) { - (*finalizeProfileLibrary)(); - - // Set all profile hooks to nullptr to prevent - // any additional calls. Once we are told to - // finalize, we mean it - initProfileLibrary = nullptr; - finalizeProfileLibrary = nullptr; - - beginForCallee = nullptr; - beginScanCallee = nullptr; - beginReduceCallee = nullptr; - endScanCallee = nullptr; - endForCallee = nullptr; - endReduceCallee = nullptr; - - pushRegionCallee = nullptr; - popRegionCallee = nullptr; - - allocateDataCallee = nullptr; - deallocateDataCallee = nullptr; - - beginDeepCopyCallee = nullptr; - endDeepCopyCallee = nullptr; - - createSectionCallee = nullptr; - startSectionCallee = nullptr; - stopSectionCallee = nullptr; - destroySectionCallee = nullptr; - - profileEventCallee = nullptr; - } -} -} // namespace Profiling -} // namespace Kokkos - -#else - -#include <impl/Kokkos_Profiling_Interface.hpp> -#include <cstring> - -namespace Kokkos { -namespace Profiling { - -bool profileLibraryLoaded() { return false; } - -void beginParallelFor(const std::string&, const uint32_t, uint64_t*) {} -void endParallelFor(const uint64_t) {} -void beginParallelScan(const std::string&, const uint32_t, uint64_t*) {} -void endParallelScan(const uint64_t) {} -void beginParallelReduce(const std::string&, const uint32_t, uint64_t*) {} -void endParallelReduce(const uint64_t) {} - -void pushRegion(const std::string&) {} -void popRegion() {} -void createProfileSection(const std::string&, uint32_t*) {} -void startSection(const uint32_t) {} -void stopSection(const uint32_t) {} -void destroyProfileSection(const uint32_t) {} - -void markEvent(const std::string&) {} - -void allocateData(const SpaceHandle, const std::string, const void*, - const uint64_t) {} -void deallocateData(const SpaceHandle, const std::string, const void*, - const uint64_t) {} - -void beginDeepCopy(const SpaceHandle, const std::string, const void*, - const SpaceHandle, const std::string, const void*, - const uint64_t) {} -void endDeepCopy() {} - -void initialize() {} -void finalize() {} - -} // namespace Profiling -} // namespace Kokkos - -#endif diff --git a/packages/kokkos/core/src/impl/Kokkos_Profiling_Interface.hpp b/packages/kokkos/core/src/impl/Kokkos_Profiling_Interface.hpp index df17501ff..fad7a78e3 100644 --- a/packages/kokkos/core/src/impl/Kokkos_Profiling_Interface.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_Profiling_Interface.hpp @@ -45,20 +45,16 @@ #ifndef KOKKOSP_INTERFACE_HPP #define KOKKOSP_INTERFACE_HPP -#include <Kokkos_Macros.hpp> #include <cinttypes> #include <cstddef> -#include <Kokkos_Core_fwd.hpp> -#include <string> -#include <iostream> #include <cstdlib> // NOTE: in this Kokkos::Profiling block, do not define anything that shouldn't // exist should Profiling be disabled namespace Kokkos { -namespace Profiling { +namespace Tools { namespace Experimental { enum struct DeviceType { Serial, @@ -67,8 +63,11 @@ enum struct DeviceType { HIP, OpenMPTarget, HPX, - Threads + Threads, + SYCL, + Unknown }; + template <typename ExecutionSpace> struct DeviceTypeTraits; @@ -80,132 +79,125 @@ inline uint32_t device_id(ExecutionSpace const& space) noexcept { return (device_id << instance_bits) + space.impl_instance_id(); } } // namespace Experimental -} // namespace Profiling +} // namespace Tools } // end namespace Kokkos -#if defined(KOKKOS_ENABLE_PROFILING) +#if defined(KOKKOS_ENABLE_LIBDL) // We check at configure time that libdl is available. #include <dlfcn.h> +#endif #include <impl/Kokkos_Profiling_DeviceInfo.hpp> - -#define KOKKOSP_INTERFACE_VERSION 20171029 +#include <impl/Kokkos_Profiling_C_Interface.h> namespace Kokkos { -namespace Profiling { - -struct SpaceHandle { - SpaceHandle(const char* space_name); - char name[64]; -}; - -typedef void (*initFunction)(const int, const uint64_t, const uint32_t, - KokkosPDeviceInfo*); -typedef void (*finalizeFunction)(); -typedef void (*beginFunction)(const char*, const uint32_t, uint64_t*); -typedef void (*endFunction)(uint64_t); +namespace Tools { -typedef void (*pushFunction)(const char*); -typedef void (*popFunction)(); +using SpaceHandle = Kokkos_Profiling_SpaceHandle; -typedef void (*allocateDataFunction)(const SpaceHandle, const char*, - const void*, const uint64_t); -typedef void (*deallocateDataFunction)(const SpaceHandle, const char*, - const void*, const uint64_t); +} // namespace Tools -typedef void (*createProfileSectionFunction)(const char*, uint32_t*); -typedef void (*startProfileSectionFunction)(const uint32_t); -typedef void (*stopProfileSectionFunction)(const uint32_t); -typedef void (*destroyProfileSectionFunction)(const uint32_t); +namespace Tools { -typedef void (*profileEventFunction)(const char*); +namespace Experimental { +using EventSet = Kokkos_Profiling_EventSet; +static_assert(sizeof(EventSet) / sizeof(function_pointer) == 275, + "sizeof EventSet has changed, this is an error on the part of a " + "Kokkos developer"); +} // namespace Experimental +using initFunction = Kokkos_Profiling_initFunction; +using finalizeFunction = Kokkos_Profiling_finalizeFunction; +using beginFunction = Kokkos_Profiling_beginFunction; +using endFunction = Kokkos_Profiling_endFunction; +using pushFunction = Kokkos_Profiling_pushFunction; +using popFunction = Kokkos_Profiling_popFunction; +using allocateDataFunction = Kokkos_Profiling_allocateDataFunction; +using deallocateDataFunction = Kokkos_Profiling_deallocateDataFunction; +using createProfileSectionFunction = + Kokkos_Profiling_createProfileSectionFunction; +using startProfileSectionFunction = + Kokkos_Profiling_startProfileSectionFunction; +using stopProfileSectionFunction = Kokkos_Profiling_stopProfileSectionFunction; +using destroyProfileSectionFunction = + Kokkos_Profiling_destroyProfileSectionFunction; +using profileEventFunction = Kokkos_Profiling_profileEventFunction; +using beginDeepCopyFunction = Kokkos_Profiling_beginDeepCopyFunction; +using endDeepCopyFunction = Kokkos_Profiling_endDeepCopyFunction; +using beginFenceFunction = Kokkos_Profiling_beginFenceFunction; +using endFenceFunction = Kokkos_Profiling_endFenceFunction; +using dualViewSyncFunction = Kokkos_Profiling_dualViewSyncFunction; +using dualViewModifyFunction = Kokkos_Profiling_dualViewModifyFunction; + +} // namespace Tools -typedef void (*beginDeepCopyFunction)(SpaceHandle, const char*, const void*, - SpaceHandle, const char*, const void*, - uint64_t); -typedef void (*endDeepCopyFunction)(); +} // namespace Kokkos -bool profileLibraryLoaded(); +// Profiling -void beginParallelFor(const std::string& kernelPrefix, const uint32_t devID, - uint64_t* kernelID); -void endParallelFor(const uint64_t kernelID); -void beginParallelScan(const std::string& kernelPrefix, const uint32_t devID, - uint64_t* kernelID); -void endParallelScan(const uint64_t kernelID); -void beginParallelReduce(const std::string& kernelPrefix, const uint32_t devID, - uint64_t* kernelID); -void endParallelReduce(const uint64_t kernelID); +namespace Kokkos { -void pushRegion(const std::string& kName); -void popRegion(); +namespace Profiling { -void createProfileSection(const std::string& sectionName, uint32_t* secID); -void startSection(const uint32_t secID); -void stopSection(const uint32_t secID); -void destroyProfileSection(const uint32_t secID); +/** The Profiling namespace is being renamed to Tools. + * This is reexposing the contents of what used to be the Profiling + * Interface with their original names, to avoid breaking old code + */ -void markEvent(const std::string* evName); +namespace Experimental { -void allocateData(const SpaceHandle space, const std::string label, - const void* ptr, const uint64_t size); -void deallocateData(const SpaceHandle space, const std::string label, - const void* ptr, const uint64_t size); +using Kokkos::Tools::Experimental::device_id; +using Kokkos::Tools::Experimental::DeviceType; +using Kokkos::Tools::Experimental::DeviceTypeTraits; -void beginDeepCopy(const SpaceHandle dst_space, const std::string dst_label, - const void* dst_ptr, const SpaceHandle src_space, - const std::string src_label, const void* src_ptr, - const uint64_t size); -void endDeepCopy(); +} // namespace Experimental -void initialize(); -void finalize(); +using Kokkos::Tools::allocateDataFunction; +using Kokkos::Tools::beginDeepCopyFunction; +using Kokkos::Tools::beginFunction; +using Kokkos::Tools::createProfileSectionFunction; +using Kokkos::Tools::deallocateDataFunction; +using Kokkos::Tools::destroyProfileSectionFunction; +using Kokkos::Tools::endDeepCopyFunction; +using Kokkos::Tools::endFunction; +using Kokkos::Tools::finalizeFunction; +using Kokkos::Tools::initFunction; +using Kokkos::Tools::popFunction; +using Kokkos::Tools::profileEventFunction; +using Kokkos::Tools::pushFunction; +using Kokkos::Tools::SpaceHandle; +using Kokkos::Tools::startProfileSectionFunction; +using Kokkos::Tools::stopProfileSectionFunction; } // namespace Profiling } // namespace Kokkos -#else -namespace Kokkos { -namespace Profiling { - -struct SpaceHandle { - SpaceHandle(const char* space_name); - char name[64]; -}; - -bool profileLibraryLoaded(); - -void beginParallelFor(const std::string&, const uint32_t, uint64_t*); -void endParallelFor(const uint64_t); -void beginParallelScan(const std::string&, const uint32_t, uint64_t*); -void endParallelScan(const uint64_t); -void beginParallelReduce(const std::string&, const uint32_t, uint64_t*); -void endParallelReduce(const uint64_t); - -void pushRegion(const std::string&); -void popRegion(); -void createProfileSection(const std::string&, uint32_t*); -void startSection(const uint32_t); -void stopSection(const uint32_t); -void destroyProfileSection(const uint32_t); - -void markEvent(const std::string&); +// Tuning -void allocateData(const SpaceHandle, const std::string, const void*, - const uint64_t); -void deallocateData(const SpaceHandle, const std::string, const void*, - const uint64_t); - -void beginDeepCopy(const SpaceHandle, const std::string, const void*, - const SpaceHandle, const std::string, const void*, - const uint64_t); -void endDeepCopy(); - -void initialize(); -void finalize(); +namespace Kokkos { +namespace Tools { +namespace Experimental { +using ValueSet = Kokkos_Tools_ValueSet; +using ValueRange = Kokkos_Tools_ValueRange; +using StatisticalCategory = Kokkos_Tools_VariableInfo_StatisticalCategory; +using ValueType = Kokkos_Tools_VariableInfo_ValueType; +using CandidateValueType = Kokkos_Tools_VariableInfo_CandidateValueType; +using SetOrRange = Kokkos_Tools_VariableInfo_SetOrRange; +using VariableInfo = Kokkos_Tools_VariableInfo; +using OptimizationGoal = Kokkos_Tools_OptimzationGoal; +using TuningString = Kokkos_Tools_Tuning_String; +using VariableValue = Kokkos_Tools_VariableValue; + +using outputTypeDeclarationFunction = + Kokkos_Tools_outputTypeDeclarationFunction; +using inputTypeDeclarationFunction = Kokkos_Tools_inputTypeDeclarationFunction; +using requestValueFunction = Kokkos_Tools_requestValueFunction; +using contextBeginFunction = Kokkos_Tools_contextBeginFunction; +using contextEndFunction = Kokkos_Tools_contextEndFunction; +using optimizationGoalDeclarationFunction = + Kokkos_Tools_optimizationGoalDeclarationFunction; +} // end namespace Experimental +} // end namespace Tools -} // namespace Profiling -} // namespace Kokkos +} // end namespace Kokkos #endif -#endif diff --git a/packages/kokkos/core/src/impl/Kokkos_Serial.cpp b/packages/kokkos/core/src/impl/Kokkos_Serial.cpp index b39f9dfee..4bd037906 100644 --- a/packages/kokkos/core/src/impl/Kokkos_Serial.cpp +++ b/packages/kokkos/core/src/impl/Kokkos_Serial.cpp @@ -42,7 +42,7 @@ //@HEADER */ -#include <Kokkos_Macros.hpp> +#include <Kokkos_Core.hpp> #if defined(KOKKOS_ENABLE_SERIAL) #include <cstdlib> @@ -52,6 +52,7 @@ #include <impl/Kokkos_Error.hpp> #include <impl/Kokkos_SharedAlloc.hpp> +#include <sstream> /*--------------------------------------------------------------------------*/ @@ -94,7 +95,8 @@ void serial_resize_thread_team_data(size_t pool_reduce_bytes, g_serial_thread_team_data.disband_team(); g_serial_thread_team_data.disband_pool(); - space.deallocate(g_serial_thread_team_data.scratch_buffer(), + space.deallocate("Kokkos::Serial::scratch_mem", + g_serial_thread_team_data.scratch_buffer(), g_serial_thread_team_data.scratch_bytes()); } @@ -117,7 +119,7 @@ void serial_resize_thread_team_data(size_t pool_reduce_bytes, void* ptr = nullptr; try { - ptr = space.allocate(alloc_bytes); + ptr = space.allocate("Kokkos::Serial::scratch_mem", alloc_bytes); } catch (Kokkos::Experimental::RawMemoryAllocationFailure const& failure) { // For now, just rethrow the error message the existing way Kokkos::Impl::throw_runtime_exception(failure.get_error_message()); @@ -145,44 +147,18 @@ HostThreadTeamData* serial_get_thread_team_data() { namespace Kokkos { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -bool Serial::is_initialized() -#else -bool Serial::impl_is_initialized() -#endif -{ - return Impl::g_serial_is_initialized; -} +bool Serial::impl_is_initialized() { return Impl::g_serial_is_initialized; } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -void Serial::initialize(unsigned threads_count, unsigned use_numa_count, - unsigned use_cores_per_numa, - bool allow_asynchronous_threadpool) { - (void)threads_count; - (void)use_numa_count; - (void)use_cores_per_numa; - (void)allow_asynchronous_threadpool; -#else void Serial::impl_initialize() { -#endif - Impl::SharedAllocationRecord<void, void>::tracking_enable(); // Init the array of locks used for arbitrarily sized atomics Impl::init_lock_array_host_space(); -#if defined(KOKKOS_ENABLE_DEPRECATED_CODE) && defined(KOKKOS_ENABLE_PROFILING) - Kokkos::Profiling::initialize(); -#endif Impl::g_serial_is_initialized = true; } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE -void Serial::finalize() -#else -void Serial::impl_finalize() -#endif -{ +void Serial::impl_finalize() { if (Impl::g_serial_thread_team_data.scratch_buffer()) { Impl::g_serial_thread_team_data.disband_team(); Impl::g_serial_thread_team_data.disband_pool(); @@ -195,15 +171,53 @@ void Serial::impl_finalize() Impl::g_serial_thread_team_data.scratch_assign(nullptr, 0, 0, 0, 0, 0); } -#if defined(KOKKOS_ENABLE_PROFILING) Kokkos::Profiling::finalize(); -#endif Impl::g_serial_is_initialized = false; } const char* Serial::name() { return "Serial"; } +namespace Impl { + +int g_serial_space_factory_initialized = + initialize_space_factory<SerialSpaceInitializer>("100_Serial"); + +void SerialSpaceInitializer::initialize(const InitArguments& args) { + // Prevent "unused variable" warning for 'args' input struct. If + // Serial::initialize() ever needs to take arguments from the input + // struct, you may remove this line of code. + (void)args; + + // Always initialize Serial if it is configure time enabled + Kokkos::Serial::impl_initialize(); +} + +void SerialSpaceInitializer::finalize(const bool) { + if (Kokkos::Serial::impl_is_initialized()) Kokkos::Serial::impl_finalize(); +} + +void SerialSpaceInitializer::fence() { Kokkos::Serial::impl_static_fence(); } + +void SerialSpaceInitializer::print_configuration(std::ostream& msg, + const bool detail) { + msg << "Host Serial Execution Space:" << std::endl; + msg << " KOKKOS_ENABLE_SERIAL: "; + msg << "yes" << std::endl; + + msg << "Serial Atomics:" << std::endl; + msg << " KOKKOS_ENABLE_SERIAL_ATOMICS: "; +#ifdef KOKKOS_ENABLE_SERIAL_ATOMICS + msg << "yes" << std::endl; +#else + msg << "no" << std::endl; +#endif + + msg << "\nSerial Runtime Configuration:" << std::endl; + Serial::print_configuration(msg, detail); +} + +} // namespace Impl } // namespace Kokkos #else diff --git a/packages/kokkos/core/src/impl/Kokkos_Serial_WorkGraphPolicy.hpp b/packages/kokkos/core/src/impl/Kokkos_Serial_WorkGraphPolicy.hpp index 4e26e0b13..0f6ad5cb0 100644 --- a/packages/kokkos/core/src/impl/Kokkos_Serial_WorkGraphPolicy.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_Serial_WorkGraphPolicy.hpp @@ -52,7 +52,7 @@ template <class FunctorType, class... Traits> class ParallelFor<FunctorType, Kokkos::WorkGraphPolicy<Traits...>, Kokkos::Serial> { private: - typedef Kokkos::WorkGraphPolicy<Traits...> Policy; + using Policy = Kokkos::WorkGraphPolicy<Traits...>; Policy m_policy; FunctorType m_functor; diff --git a/packages/kokkos/core/src/impl/Kokkos_SharedAlloc.cpp b/packages/kokkos/core/src/impl/Kokkos_SharedAlloc.cpp index 6a054f73a..917ae7208 100644 --- a/packages/kokkos/core/src/impl/Kokkos_SharedAlloc.cpp +++ b/packages/kokkos/core/src/impl/Kokkos_SharedAlloc.cpp @@ -50,15 +50,16 @@ namespace Impl { KOKKOS_THREAD_LOCAL int SharedAllocationRecord<void, void>::t_tracking_enabled = 1; -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG bool SharedAllocationRecord<void, void>::is_sane( SharedAllocationRecord<void, void>* arg_record) { - SharedAllocationRecord* const root = arg_record ? arg_record->m_root : 0; + SharedAllocationRecord* const root = + arg_record ? arg_record->m_root : nullptr; - bool ok = root != 0 && root->use_count() == 0; + bool ok = root != nullptr && root->use_count() == 0; if (ok) { - SharedAllocationRecord* root_next = 0; + SharedAllocationRecord* root_next = nullptr; static constexpr SharedAllocationRecord* zero = nullptr; // Lock the list: while ((root_next = Kokkos::atomic_exchange(&root->m_next, zero)) == @@ -122,16 +123,16 @@ bool SharedAllocationRecord<void, void>::is_sane( SharedAllocationRecord<void, void>*) { Kokkos::Impl::throw_runtime_exception( "Kokkos::Impl::SharedAllocationRecord::is_sane only works with " - "KOKKOS_DEBUG enabled"); + "KOKKOS_ENABLE_DEBUG enabled"); return false; } -#endif //#ifdef KOKKOS_DEBUG +#endif //#ifdef KOKKOS_ENABLE_DEBUG -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG SharedAllocationRecord<void, void>* SharedAllocationRecord<void, void>::find( SharedAllocationRecord<void, void>* const arg_root, void* const arg_data_ptr) { - SharedAllocationRecord* root_next = 0; + SharedAllocationRecord* root_next = nullptr; static constexpr SharedAllocationRecord* zero = nullptr; // Lock the list: @@ -148,7 +149,7 @@ SharedAllocationRecord<void, void>* SharedAllocationRecord<void, void>::find( } if (r == arg_root) { - r = 0; + r = nullptr; } if (nullptr != Kokkos::atomic_exchange(&arg_root->m_next, root_next)) { @@ -161,7 +162,8 @@ SharedAllocationRecord<void, void>* SharedAllocationRecord<void, void>::find( SharedAllocationRecord<void, void>* SharedAllocationRecord<void, void>::find( SharedAllocationRecord<void, void>* const, void* const) { Kokkos::Impl::throw_runtime_exception( - "Kokkos::Impl::SharedAllocationRecord::find only works with KOKKOS_DEBUG " + "Kokkos::Impl::SharedAllocationRecord::find only works with " + "KOKKOS_ENABLE_DEBUG " "enabled"); return nullptr; } @@ -171,7 +173,7 @@ SharedAllocationRecord<void, void>* SharedAllocationRecord<void, void>::find( * use_count is zero. */ SharedAllocationRecord<void, void>::SharedAllocationRecord( -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG SharedAllocationRecord<void, void>* arg_root, #endif SharedAllocationHeader* arg_alloc_ptr, size_t arg_alloc_size, @@ -179,16 +181,16 @@ SharedAllocationRecord<void, void>::SharedAllocationRecord( : m_alloc_ptr(arg_alloc_ptr), m_alloc_size(arg_alloc_size), m_dealloc(arg_dealloc) -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG , m_root(arg_root), - m_prev(0), - m_next(0) + m_prev(nullptr), + m_next(nullptr) #endif , m_count(0) { if (nullptr != arg_alloc_ptr) { -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG // Insert into the root double-linked list for tracking // // before: arg_root->m_next == next ; next->m_prev == arg_root @@ -240,23 +242,17 @@ SharedAllocationRecord<void, void>* SharedAllocationRecord< ss << arg_record->get_label(); ss << "\" is being deallocated after Kokkos::finalize was called\n"; auto s = ss.str(); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - std::cerr << s; - std::cerr << "This behavior is incorrect Kokkos usage, and will crash in " - "future releases\n"; -#else Kokkos::Impl::throw_runtime_exception(s); -#endif } -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG // before: arg_record->m_prev->m_next == arg_record && // arg_record->m_next->m_prev == arg_record // // after: arg_record->m_prev->m_next == arg_record->m_next && // arg_record->m_next->m_prev == arg_record->m_prev - SharedAllocationRecord* root_next = 0; + SharedAllocationRecord* root_next = nullptr; static constexpr SharedAllocationRecord* zero = nullptr; // Lock the list: @@ -283,8 +279,8 @@ SharedAllocationRecord<void, void>* SharedAllocationRecord< "Kokkos::Impl::SharedAllocationRecord failed decrement unlocking"); } - arg_record->m_next = 0; - arg_record->m_prev = 0; + arg_record->m_next = nullptr; + arg_record->m_prev = nullptr; #endif function_type d = arg_record->m_dealloc; @@ -303,7 +299,7 @@ SharedAllocationRecord<void, void>* SharedAllocationRecord< return arg_record; } -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG void SharedAllocationRecord<void, void>::print_host_accessible_records( std::ostream& s, const char* const space_name, const SharedAllocationRecord* const root, const bool detail) { @@ -365,7 +361,7 @@ void SharedAllocationRecord<void, void>::print_host_accessible_records( const bool) { Kokkos::Impl::throw_runtime_exception( "Kokkos::Impl::SharedAllocationRecord::print_host_accessible_records" - " only works with KOKKOS_DEBUG enabled"); + " only works with KOKKOS_ENABLE_DEBUG enabled"); } #endif diff --git a/packages/kokkos/core/src/impl/Kokkos_SharedAlloc.hpp b/packages/kokkos/core/src/impl/Kokkos_SharedAlloc.hpp index 6e954e8f2..646280fae 100644 --- a/packages/kokkos/core/src/impl/Kokkos_SharedAlloc.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_SharedAlloc.hpp @@ -48,6 +48,18 @@ #include <cstdint> #include <string> +// undefined at end of file +#if defined(KOKKOS_ENABLE_OPENMPTARGET) +#if defined(KOKKOS_COMPILER_PGI) +#define KOKKOS_IMPL_IF_ON_HOST if (!__builtin_is_device_code()) +#else +// Note: OpenMPTarget enforces C++17 at configure time +#define KOKKOS_IMPL_IF_ON_HOST if constexpr (omp_is_initial_device()) +#endif +#else +#define KOKKOS_IMPL_IF_ON_HOST if (true) +#endif + namespace Kokkos { namespace Impl { @@ -56,7 +68,7 @@ class SharedAllocationRecord; class SharedAllocationHeader { private: - typedef SharedAllocationRecord<void, void> Record; + using Record = SharedAllocationRecord<void, void>; static constexpr unsigned maximum_label_length = (1u << 7 /* 128 */) - sizeof(Record*); @@ -93,7 +105,7 @@ class SharedAllocationRecord<void, void> { SharedAllocationHeader* const m_alloc_ptr; size_t const m_alloc_size; function_type const m_dealloc; -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG SharedAllocationRecord* const m_root; SharedAllocationRecord* m_prev; SharedAllocationRecord* m_next; @@ -109,7 +121,7 @@ class SharedAllocationRecord<void, void> { * use_count is zero. */ SharedAllocationRecord( -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG SharedAllocationRecord* arg_root, #endif SharedAllocationHeader* arg_alloc_ptr, size_t arg_alloc_size, @@ -120,17 +132,33 @@ class SharedAllocationRecord<void, void> { public: virtual std::string get_label() const { return std::string("Unmanaged"); } - static int tracking_enabled() { return t_tracking_enabled; } +#ifdef KOKKOS_IMPL_ENABLE_OVERLOAD_HOST_DEVICE + /* Device tracking_enabled -- always disabled */ + KOKKOS_IMPL_DEVICE_FUNCTION + static int tracking_enabled() { return 0; } +#endif + + KOKKOS_IMPL_HOST_FUNCTION + static int tracking_enabled() { + KOKKOS_IMPL_IF_ON_HOST { return t_tracking_enabled; } + else { + return 0; + } + } /**\brief A host process thread claims and disables the * shared allocation tracking flag. */ - static void tracking_disable() { t_tracking_enabled = 0; } + static void tracking_disable() { + KOKKOS_IMPL_IF_ON_HOST { t_tracking_enabled = 0; } + } /**\brief A host process thread releases and enables the * shared allocation tracking flag. */ - static void tracking_enable() { t_tracking_enabled = 1; } + static void tracking_enable() { + KOKKOS_IMPL_IF_ON_HOST { t_tracking_enabled = 1; } + } virtual ~SharedAllocationRecord() = default; @@ -138,7 +166,7 @@ class SharedAllocationRecord<void, void> { : m_alloc_ptr(nullptr), m_alloc_size(0), m_dealloc(nullptr) -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG , m_root(this), m_prev(this), @@ -164,11 +192,25 @@ class SharedAllocationRecord<void, void> { /* Cannot be 'constexpr' because 'm_count' is volatile */ int use_count() const { return *static_cast<const volatile int*>(&m_count); } +#ifdef KOKKOS_IMPL_ENABLE_OVERLOAD_HOST_DEVICE + /* Device tracking_enabled -- always disabled */ + KOKKOS_IMPL_DEVICE_FUNCTION + static void increment(SharedAllocationRecord*){}; +#endif + /* Increment use count */ + KOKKOS_IMPL_HOST_FUNCTION static void increment(SharedAllocationRecord*); +#ifdef KOKKOS_IMPL_ENABLE_OVERLOAD_HOST_DEVICE + /* Device tracking_enabled -- always disabled */ + KOKKOS_IMPL_DEVICE_FUNCTION + static void decrement(SharedAllocationRecord*){}; +#endif + /* Decrement use count. If 1->0 then remove from the tracking list and invoke * m_dealloc */ + KOKKOS_IMPL_HOST_FUNCTION static SharedAllocationRecord* decrement(SharedAllocationRecord*); /* Given a root record and data pointer find the record */ @@ -192,8 +234,8 @@ namespace { /* Taking the address of this function so make sure it is unique */ template <class MemorySpace, class DestroyFunctor> void deallocate(SharedAllocationRecord<void, void>* record_ptr) { - typedef SharedAllocationRecord<MemorySpace, void> base_type; - typedef SharedAllocationRecord<MemorySpace, DestroyFunctor> this_type; + using base_type = SharedAllocationRecord<MemorySpace, void>; + using this_type = SharedAllocationRecord<MemorySpace, DestroyFunctor>; this_type* const ptr = static_cast<this_type*>(static_cast<base_type*>(record_ptr)); @@ -259,7 +301,7 @@ class SharedAllocationRecord<MemorySpace, void> union SharedAllocationTracker { private: - typedef SharedAllocationRecord<void, void> Record; + using Record = SharedAllocationRecord<void, void>; enum : uintptr_t { DO_NOT_DEREF_FLAG = 0x01ul }; @@ -272,15 +314,36 @@ union SharedAllocationTracker { // pressure on compiler optimization by reducing // number of symbols and inline functions. -#if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) +#if defined(KOKKOS_IMPL_ENABLE_OVERLOAD_HOST_DEVICE) #define KOKKOS_IMPL_SHARED_ALLOCATION_TRACKER_ENABLED Record::tracking_enabled() +#ifdef KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST +#define KOKKOS_IMPL_SHARED_ALLOCATION_TRACKER_CONDITION \ + (!(m_record_bits & DO_NOT_DEREF_FLAG)) +#else +#define KOKKOS_IMPL_SHARED_ALLOCATION_TRACKER_CONDITION (0) +#endif + #define KOKKOS_IMPL_SHARED_ALLOCATION_TRACKER_INCREMENT \ - if (!(m_record_bits & DO_NOT_DEREF_FLAG)) Record::increment(m_record); + if (KOKKOS_IMPL_SHARED_ALLOCATION_TRACKER_CONDITION) \ + KOKKOS_IMPL_IF_ON_HOST Record::increment(m_record); #define KOKKOS_IMPL_SHARED_ALLOCATION_TRACKER_DECREMENT \ - if (!(m_record_bits & DO_NOT_DEREF_FLAG)) Record::decrement(m_record); + if (KOKKOS_IMPL_SHARED_ALLOCATION_TRACKER_CONDITION) \ + KOKKOS_IMPL_IF_ON_HOST Record::decrement(m_record); + +#elif defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) + +#define KOKKOS_IMPL_SHARED_ALLOCATION_TRACKER_ENABLED Record::tracking_enabled() + +#define KOKKOS_IMPL_SHARED_ALLOCATION_TRACKER_INCREMENT \ + if (!(m_record_bits & DO_NOT_DEREF_FLAG)) \ + KOKKOS_IMPL_IF_ON_HOST Record::increment(m_record); + +#define KOKKOS_IMPL_SHARED_ALLOCATION_TRACKER_DECREMENT \ + if (!(m_record_bits & DO_NOT_DEREF_FLAG)) \ + KOKKOS_IMPL_IF_ON_HOST Record::decrement(m_record); #else @@ -312,7 +375,7 @@ union SharedAllocationTracker { constexpr SharedAllocationRecord<MemorySpace, void>* get_record() const noexcept { return (m_record_bits & DO_NOT_DEREF_FLAG) - ? (SharedAllocationRecord<MemorySpace, void>*)0 + ? nullptr : static_cast<SharedAllocationRecord<MemorySpace, void>*>( m_record); } @@ -397,6 +460,38 @@ union SharedAllocationTracker { return *this; } + /* The following functions (assign_direct and assign_force_disable) + * are the result of deconstructing the + * KOKKOS_IMPL_SHARED_ALLOCATION_CARRY_RECORD_BITS macro. This + * allows the caller to do the check for tracking enabled and managed + * apart from the assignement of the record because the tracking + * enabled / managed question may be important for other tasks as well + */ + + /** \brief Copy assignment without the carry bits logic + * This assumes that externally defined tracking is explicitly enabled + */ + KOKKOS_FORCEINLINE_FUNCTION + void assign_direct(const SharedAllocationTracker& rhs) { + KOKKOS_IMPL_SHARED_ALLOCATION_TRACKER_DECREMENT + m_record_bits = rhs.m_record_bits; + KOKKOS_IMPL_SHARED_ALLOCATION_TRACKER_INCREMENT + } + + /** \brief Copy assignment without the increment + * we cannot assume that current record is unmanaged + * but with externally defined tracking explicitly disabled + * we can go straight to the do not deref flag */ + KOKKOS_FORCEINLINE_FUNCTION + void assign_force_disable(const SharedAllocationTracker& rhs) { + KOKKOS_IMPL_SHARED_ALLOCATION_TRACKER_DECREMENT + m_record_bits = rhs.m_record_bits | DO_NOT_DEREF_FLAG; + } + + // report if record is tracking or not + KOKKOS_FORCEINLINE_FUNCTION + bool tracking_enabled() { return (!(m_record_bits & DO_NOT_DEREF_FLAG)); } + /** \brief Copy assignment may disable tracking */ KOKKOS_FORCEINLINE_FUNCTION void assign(const SharedAllocationTracker& rhs, const bool enable_tracking) { @@ -413,5 +508,5 @@ union SharedAllocationTracker { } /* namespace Impl */ } /* namespace Kokkos */ - +#undef KOKKOS_IMPL_IF_ON_HOST #endif diff --git a/packages/kokkos/core/src/impl/Kokkos_SimpleTaskScheduler.hpp b/packages/kokkos/core/src/impl/Kokkos_SimpleTaskScheduler.hpp index a01b22e4e..85de7c977 100644 --- a/packages/kokkos/core/src/impl/Kokkos_SimpleTaskScheduler.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_SimpleTaskScheduler.hpp @@ -81,79 +81,7 @@ struct DefaultDestroy { void destroy_shared_allocation() { managed_object->~T(); } }; -template <class ExecutionSpace> -class ExecutionSpaceInstanceStorage - : private NoUniqueAddressMemberEmulation<ExecutionSpace, - DefaultCtorNotOnDevice> { - private: - using base_t = - NoUniqueAddressMemberEmulation<ExecutionSpace, DefaultCtorNotOnDevice>; - - protected: - constexpr explicit ExecutionSpaceInstanceStorage() : base_t() {} - - KOKKOS_INLINE_FUNCTION - constexpr explicit ExecutionSpaceInstanceStorage( - ExecutionSpace const& arg_execution_space) - : base_t(arg_execution_space) {} - - KOKKOS_INLINE_FUNCTION - constexpr explicit ExecutionSpaceInstanceStorage( - ExecutionSpace&& arg_execution_space) - : base_t(std::move(arg_execution_space)) {} - - KOKKOS_INLINE_FUNCTION - ExecutionSpace& execution_space_instance() & { - return this->no_unique_address_data_member(); - } - - KOKKOS_INLINE_FUNCTION - ExecutionSpace const& execution_space_instance() const& { - return this->no_unique_address_data_member(); - } - - KOKKOS_INLINE_FUNCTION - ExecutionSpace&& execution_space_instance() && { - return std::move(*this).no_unique_address_data_member(); - } -}; - -template <class MemorySpace> -class MemorySpaceInstanceStorage - : private NoUniqueAddressMemberEmulation<MemorySpace, - DefaultCtorNotOnDevice> { - private: - using base_t = - NoUniqueAddressMemberEmulation<MemorySpace, DefaultCtorNotOnDevice>; - - protected: - MemorySpaceInstanceStorage() : base_t() {} - - KOKKOS_INLINE_FUNCTION - MemorySpaceInstanceStorage(MemorySpace const& arg_memory_space) - : base_t(arg_memory_space) {} - - KOKKOS_INLINE_FUNCTION - constexpr explicit MemorySpaceInstanceStorage(MemorySpace&& arg_memory_space) - : base_t(arg_memory_space) {} - - KOKKOS_INLINE_FUNCTION - MemorySpace& memory_space_instance() & { - return this->no_unique_address_data_member(); - } - - KOKKOS_INLINE_FUNCTION - MemorySpace const& memory_space_instance() const& { - return this->no_unique_address_data_member(); - } - - KOKKOS_INLINE_FUNCTION - MemorySpace&& memory_space_instance() && { - return std::move(*this).no_unique_address_data_member(); - } -}; - -} // end namespace Impl +} // namespace Impl //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- @@ -366,20 +294,6 @@ class SimpleTaskScheduler //---------------------------------------------------------------------------- -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - // For backwards compatibility purposes only - KOKKOS_DEPRECATED - KOKKOS_INLINE_FUNCTION - memory_pool* memory() const noexcept KOKKOS_DEPRECATED_TRAILING_ATTRIBUTE { - if (m_queue != nullptr) - return &(m_queue->get_memory_pool()); - else - return nullptr; - } -#endif - - //---------------------------------------------------------------------------- - template <int TaskEnum, typename DepFutureType, typename FunctorType> KOKKOS_FUNCTION static Kokkos::BasicFuture<typename FunctorType::value_type, scheduler_type> diff --git a/packages/kokkos/core/src/impl/Kokkos_Tags.hpp b/packages/kokkos/core/src/impl/Kokkos_Tags.hpp index 1b33180ed..eea4c9386 100644 --- a/packages/kokkos/core/src/impl/Kokkos_Tags.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_Tags.hpp @@ -54,8 +54,8 @@ /** KOKKOS_IMPL_HAS_TYPE( Type ) * - * defines a meta-function that check if a type expose an internal typedef or - * type alias which matches Type + * defines a meta-function that check if a type expose an internal alias which + * matches Type * * e.g. * KOKKOS_IMPL_HAS_TYPE( array_layout ); @@ -73,7 +73,7 @@ : std::true_type {}; \ \ public: \ - typedef typename X<T>::type type; \ + using type = typename X<T>::type; \ enum : bool { value = type::value }; \ }; diff --git a/packages/kokkos/core/src/impl/Kokkos_TaskBase.hpp b/packages/kokkos/core/src/impl/Kokkos_TaskBase.hpp index 8078c68db..2d0f62a56 100644 --- a/packages/kokkos/core/src/impl/Kokkos_TaskBase.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_TaskBase.hpp @@ -148,7 +148,7 @@ class TaskBase { using queue_type = TaskQueueBase; using function_type = void (*)(TaskBase*, void*); - typedef void (*destroy_type)(TaskBase*); + using destroy_type = void (*)(TaskBase*); // sizeof(TaskBase) == 48 diff --git a/packages/kokkos/core/src/impl/Kokkos_TaskQueueCommon.hpp b/packages/kokkos/core/src/impl/Kokkos_TaskQueueCommon.hpp index cd53a81b1..cae06d4ea 100644 --- a/packages/kokkos/core/src/impl/Kokkos_TaskQueueCommon.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_TaskQueueCommon.hpp @@ -205,8 +205,8 @@ class TaskQueueCommonMixin { KOKKOS_FUNCTION void complete( AggregateTask<TaskQueueTraits, SchedulingInfo>&& task, TeamSchedulerInfo const& info) { - // TODO @tasking DSH old code has a ifndef __HCC_ACCELERATOR__ here; figure - // out why + // TODO @tasking DSH old code has a ifndef __HIP_DEVICE_COMPILE__ here; + // figure out why _complete_finished_task(std::move(task), info); } diff --git a/packages/kokkos/core/src/impl/Kokkos_TaskQueueMultiple.hpp b/packages/kokkos/core/src/impl/Kokkos_TaskQueueMultiple.hpp index 090bffd23..efee3d051 100644 --- a/packages/kokkos/core/src/impl/Kokkos_TaskQueueMultiple.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_TaskQueueMultiple.hpp @@ -245,7 +245,7 @@ class LeagueQueueCollection { KOKKOS_INLINE_FUNCTION team_queue_type& get_team_queue(int iteam) { iteam %= max_num_queues; -#if !defined(__HCC_ACCELERATOR__) && !defined(__CUDA_ARCH__) +#if !defined(__HIP_DEVICE_COMPILE__) && !defined(__CUDA_ARCH__) assert(initialized()); assert(iteam < m_size); assert(iteam >= 0); diff --git a/packages/kokkos/core/src/impl/Kokkos_TaskQueue_impl.hpp b/packages/kokkos/core/src/impl/Kokkos_TaskQueue_impl.hpp index fe3cac7bd..a87e5f727 100644 --- a/packages/kokkos/core/src/impl/Kokkos_TaskQueue_impl.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_TaskQueue_impl.hpp @@ -381,7 +381,7 @@ KOKKOS_FUNCTION void TaskQueue<ExecSpace, MemorySpace>::schedule_runnable( // If we don't have a dependency, or if pushing onto the wait queue of that // dependency failed (since the only time that queue should be locked is when - // the task is transitioning to complete??!?) + // the task is transitioning to complete?) const bool is_ready = (nullptr == dep) || (!push_task(&dep->m_wait, task)); if ((nullptr != dep) && respawn) { @@ -631,7 +631,7 @@ KOKKOS_FUNCTION void TaskQueue<ExecSpace, MemorySpace>::complete( if (task_root_type::Aggregate != vx.m_task_type) { schedule_runnable(x); } else { -#if !defined(__HCC_ACCELERATOR__) +#if !defined(__HIP_DEVICE_COMPILE__) schedule_aggregate(x); #endif } diff --git a/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Config.hpp b/packages/kokkos/core/src/impl/Kokkos_Tools.hpp similarity index 91% rename from packages/kokkos/core/src/ROCm/Kokkos_ROCm_Config.hpp rename to packages/kokkos/core/src/impl/Kokkos_Tools.hpp index 422e425cf..8d6ec6468 100644 --- a/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Config.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_Tools.hpp @@ -42,11 +42,13 @@ //@HEADER */ -#ifndef GUARD_CORE_KOKKOS_ROCM_CONFIG_HPP -#define GUARD_CORE_KOKKOS_ROCM_CONFIG_HPP +/** + * Header file to include all of Kokkos Tooling support + */ -#ifndef KOKKOS_IMPL_ROCM_CLANG_WORKAROUND -#define KOKKOS_IMPL_ROCM_CLANG_WORKAROUND 1 -#endif +#ifndef KOKKOS_IMPL_KOKKOS_TOOLS_HPP +#define KOKKOS_IMPL_KOKKOS_TOOLS_HPP + +#include <impl/Kokkos_Profiling.hpp> #endif diff --git a/packages/kokkos/core/src/impl/Kokkos_Traits.hpp b/packages/kokkos/core/src/impl/Kokkos_Traits.hpp index 32e78b7f5..ed0ede86e 100644 --- a/packages/kokkos/core/src/impl/Kokkos_Traits.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_Traits.hpp @@ -60,22 +60,22 @@ namespace Impl { template <unsigned I, typename... Pack> struct get_type { - typedef void type; + using type = void; }; template <typename T, typename... Pack> struct get_type<0, T, Pack...> { - typedef T type; + using type = T; }; template <unsigned I, typename T, typename... Pack> struct get_type<I, T, Pack...> { - typedef typename get_type<I - 1, Pack...>::type type; + using type = typename get_type<I - 1, Pack...>::type; }; template <typename T, typename... Pack> struct has_type { - enum { value = false }; + enum : bool { value = false }; }; template <typename T, typename S, typename... Pack> @@ -83,21 +83,21 @@ struct has_type<T, S, Pack...> { private: enum { self_value = std::is_same<T, S>::value }; - typedef has_type<T, Pack...> next; + using next = has_type<T, Pack...>; static_assert( !(self_value && next::value), "Error: more than one member of the argument pack matches the type"); public: - enum { value = self_value || next::value }; + enum : bool { value = self_value || next::value }; }; template <typename DefaultType, template <typename> class Condition, typename... Pack> struct has_condition { - enum { value = false }; - typedef DefaultType type; + enum : bool { value = false }; + using type = DefaultType; }; template <typename DefaultType, template <typename> class Condition, typename S, @@ -106,22 +106,22 @@ struct has_condition<DefaultType, Condition, S, Pack...> { private: enum { self_value = Condition<S>::value }; - typedef has_condition<DefaultType, Condition, Pack...> next; + using next = has_condition<DefaultType, Condition, Pack...>; static_assert( !(self_value && next::value), "Error: more than one member of the argument pack satisfies condition"); public: - enum { value = self_value || next::value }; + enum : bool { value = self_value || next::value }; - typedef - typename std::conditional<self_value, S, typename next::type>::type type; + using type = + typename std::conditional<self_value, S, typename next::type>::type; }; template <class... Args> struct are_integral { - enum { value = true }; + enum : bool { value = true }; }; template <typename T, class... Args> @@ -151,7 +151,7 @@ namespace Impl { template <class, class T = void> struct enable_if_type { - typedef T type; + using type = T; }; //---------------------------------------------------------------------------- @@ -159,14 +159,14 @@ struct enable_if_type { template <bool Cond, typename TrueType, typename FalseType> struct if_c { - enum { value = Cond }; + enum : bool { value = Cond }; - typedef FalseType type; + using type = FalseType; - typedef typename std::remove_const< - typename std::remove_reference<type>::type>::type value_type; + using value_type = typename std::remove_const< + typename std::remove_reference<type>::type>::type; - typedef typename std::add_const<value_type>::type const_value_type; + using const_value_type = typename std::add_const<value_type>::type; static KOKKOS_INLINE_FUNCTION const_value_type& select(const_value_type& v) { return v; @@ -194,14 +194,14 @@ struct if_c { template <typename TrueType, typename FalseType> struct if_c<true, TrueType, FalseType> { - enum { value = true }; + enum : bool { value = true }; - typedef TrueType type; + using type = TrueType; - typedef typename std::remove_const< - typename std::remove_reference<type>::type>::type value_type; + using value_type = typename std::remove_const< + typename std::remove_reference<type>::type>::type; - typedef typename std::add_const<value_type>::type const_value_type; + using const_value_type = typename std::add_const<value_type>::type; static KOKKOS_INLINE_FUNCTION const_value_type& select(const_value_type& v) { return v; @@ -229,46 +229,21 @@ struct if_c<true, TrueType, FalseType> { template <typename TrueType> struct if_c<false, TrueType, void> { - enum { value = false }; + enum : bool { value = false }; - typedef void type; - typedef void value_type; + using type = void; + using value_type = void; }; template <typename FalseType> struct if_c<true, void, FalseType> { - enum { value = true }; + enum : bool { value = true }; - typedef void type; - typedef void value_type; + using type = void; + using value_type = void; }; -template <typename Cond, typename TrueType, typename FalseType> -struct if_ : public if_c<Cond::value, TrueType, FalseType> {}; - //---------------------------------------------------------------------------- - -template <typename T> -struct is_label : public std::false_type {}; - -template <> -struct is_label<const char*> : public std::true_type {}; - -template <> -struct is_label<char*> : public std::true_type {}; - -template <int N> -struct is_label<const char[N]> : public std::true_type {}; - -template <int N> -struct is_label<char[N]> : public std::true_type {}; - -template <> -struct is_label<const std::string> : public std::true_type {}; - -template <> -struct is_label<std::string> : public std::true_type {}; - // These 'constexpr'functions can be used as // both regular functions and meta-function. @@ -337,50 +312,21 @@ struct integral_nonzero_constant { // Declaration of 'static const' causes an unresolved linker symbol in debug // static const T value = v ; enum { value = T(v) }; - typedef T value_type; - typedef integral_nonzero_constant<T, v> type; + using value_type = T; + using type = integral_nonzero_constant<T, v>; KOKKOS_INLINE_FUNCTION integral_nonzero_constant(const T&) {} }; template <typename T, T zero> struct integral_nonzero_constant<T, zero, false> { const T value; - typedef T value_type; - typedef integral_nonzero_constant<T, 0> type; + using value_type = T; + using type = integral_nonzero_constant<T, 0>; KOKKOS_INLINE_FUNCTION integral_nonzero_constant(const T& v) : value(v) {} }; //---------------------------------------------------------------------------- -template <class...> -class TypeList; - -//---------------------------------------------------------------------------- - -template <class> -struct ReverseTypeList; - -template <class Head, class... Tail> -struct ReverseTypeList<TypeList<Head, Tail...>> { - template <class... ReversedTail> - struct impl { - using type = typename ReverseTypeList<TypeList<Tail...>>::template impl< - Head, ReversedTail...>::type; - }; - using type = typename impl<>::type; -}; - -template <> -struct ReverseTypeList<TypeList<>> { - template <class... ReversedTail> - struct impl { - using type = TypeList<ReversedTail...>; - }; - using type = TypeList<>; -}; - -//---------------------------------------------------------------------------- - template <class T> struct make_all_extents_into_pointers { using type = T; diff --git a/packages/kokkos/core/src/impl/Kokkos_Utilities.hpp b/packages/kokkos/core/src/impl/Kokkos_Utilities.hpp index 1b095248e..facc8ba5b 100644 --- a/packages/kokkos/core/src/impl/Kokkos_Utilities.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_Utilities.hpp @@ -48,6 +48,7 @@ #include <Kokkos_Macros.hpp> #include <cstdint> #include <type_traits> +#include <initializer_list> // in-order comma operator fold emulation //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- @@ -55,32 +56,6 @@ namespace Kokkos { namespace Impl { -// same as std::forward -// needed to allow perfect forwarding on the device -template <typename T> -KOKKOS_INLINE_FUNCTION constexpr T&& forward( - typename std::remove_reference<T>::type& arg) noexcept { - return static_cast<T&&>(arg); -} - -template <typename T> -KOKKOS_INLINE_FUNCTION constexpr T&& forward( - typename std::remove_reference<T>::type&& arg) noexcept { - return static_cast<T&&>(arg); -} - -// same as std::move -// needed to allowing moving on the device -template <typename T> -KOKKOS_INLINE_FUNCTION constexpr typename std::remove_reference<T>::type&& move( - T&& arg) noexcept { - return static_cast<typename std::remove_reference<T>::type&&>(arg); -} - -// empty function to allow expanding a variadic argument pack -template <typename... Args> -KOKKOS_INLINE_FUNCTION void expand_variadic(Args&&...) {} - //---------------------------------------- // C++14 integer sequence template <typename T, T... Ints> @@ -145,7 +120,7 @@ struct make_integer_sequence_concat; template <typename T, T... x, T... y> struct make_integer_sequence_concat<integer_sequence<T, x...>, - integer_sequence<T, y...> > { + integer_sequence<T, y...>> { using type = integer_sequence<T, x..., (sizeof...(x) + y)...>; }; @@ -170,61 +145,61 @@ template <unsigned I, typename IntegerSequence> struct integer_sequence_at; template <unsigned I, typename T, T h0, T... tail> -struct integer_sequence_at<I, integer_sequence<T, h0, tail...> > - : public integer_sequence_at<I - 1u, integer_sequence<T, tail...> > { +struct integer_sequence_at<I, integer_sequence<T, h0, tail...>> + : public integer_sequence_at<I - 1u, integer_sequence<T, tail...>> { static_assert(8 <= I, "Reasoning Error"); static_assert(I < integer_sequence<T, h0, tail...>::size(), "Error: Index out of bounds"); }; template <typename T, T h0, T... tail> -struct integer_sequence_at<0u, integer_sequence<T, h0, tail...> > { +struct integer_sequence_at<0u, integer_sequence<T, h0, tail...>> { using type = T; static constexpr T value = h0; }; template <typename T, T h0, T h1, T... tail> -struct integer_sequence_at<1u, integer_sequence<T, h0, h1, tail...> > { +struct integer_sequence_at<1u, integer_sequence<T, h0, h1, tail...>> { using type = T; static constexpr T value = h1; }; template <typename T, T h0, T h1, T h2, T... tail> -struct integer_sequence_at<2u, integer_sequence<T, h0, h1, h2, tail...> > { +struct integer_sequence_at<2u, integer_sequence<T, h0, h1, h2, tail...>> { using type = T; static constexpr T value = h2; }; template <typename T, T h0, T h1, T h2, T h3, T... tail> -struct integer_sequence_at<3u, integer_sequence<T, h0, h1, h2, h3, tail...> > { +struct integer_sequence_at<3u, integer_sequence<T, h0, h1, h2, h3, tail...>> { using type = T; static constexpr T value = h3; }; template <typename T, T h0, T h1, T h2, T h3, T h4, T... tail> struct integer_sequence_at<4u, - integer_sequence<T, h0, h1, h2, h3, h4, tail...> > { + integer_sequence<T, h0, h1, h2, h3, h4, tail...>> { using type = T; static constexpr T value = h4; }; template <typename T, T h0, T h1, T h2, T h3, T h4, T h5, T... tail> struct integer_sequence_at< - 5u, integer_sequence<T, h0, h1, h2, h3, h4, h5, tail...> > { + 5u, integer_sequence<T, h0, h1, h2, h3, h4, h5, tail...>> { using type = T; static constexpr T value = h5; }; template <typename T, T h0, T h1, T h2, T h3, T h4, T h5, T h6, T... tail> struct integer_sequence_at< - 6u, integer_sequence<T, h0, h1, h2, h3, h4, h5, h6, tail...> > { + 6u, integer_sequence<T, h0, h1, h2, h3, h4, h5, h6, tail...>> { using type = T; static constexpr T value = h6; }; template <typename T, T h0, T h1, T h2, T h3, T h4, T h5, T h6, T h7, T... tail> struct integer_sequence_at< - 7u, integer_sequence<T, h0, h1, h2, h3, h4, h5, h6, h7, tail...> > { + 7u, integer_sequence<T, h0, h1, h2, h3, h4, h5, h6, h7, tail...>> { using type = T; static constexpr T value = h7; }; @@ -330,19 +305,18 @@ constexpr T at( template <typename IntegerSequence, typename ResultSequence = - integer_sequence<typename IntegerSequence::value_type> > + integer_sequence<typename IntegerSequence::value_type>> struct reverse_integer_sequence_helper; template <typename T, T h0, T... tail, T... results> struct reverse_integer_sequence_helper<integer_sequence<T, h0, tail...>, - integer_sequence<T, results...> > + integer_sequence<T, results...>> : public reverse_integer_sequence_helper< - integer_sequence<T, tail...>, integer_sequence<T, h0, results...> > { -}; + integer_sequence<T, tail...>, integer_sequence<T, h0, results...>> {}; template <typename T, T... results> struct reverse_integer_sequence_helper<integer_sequence<T>, - integer_sequence<T, results...> > { + integer_sequence<T, results...>> { using type = integer_sequence<T, results...>; }; @@ -354,20 +328,20 @@ using reverse_integer_sequence = template <typename IntegerSequence, typename Result, typename ResultSequence = - integer_sequence<typename IntegerSequence::value_type> > + integer_sequence<typename IntegerSequence::value_type>> struct exclusive_scan_integer_sequence_helper; template <typename T, T h0, T... tail, typename Result, T... results> struct exclusive_scan_integer_sequence_helper< - integer_sequence<T, h0, tail...>, Result, integer_sequence<T, results...> > + integer_sequence<T, h0, tail...>, Result, integer_sequence<T, results...>> : public exclusive_scan_integer_sequence_helper< integer_sequence<T, tail...>, std::integral_constant<T, Result::value + h0>, - integer_sequence<T, 0, (results + h0)...> > {}; + integer_sequence<T, 0, (results + h0)...>> {}; template <typename T, typename Result, T... results> -struct exclusive_scan_integer_sequence_helper< - integer_sequence<T>, Result, integer_sequence<T, results...> > { +struct exclusive_scan_integer_sequence_helper<integer_sequence<T>, Result, + integer_sequence<T, results...>> { using type = integer_sequence<T, results...>; static constexpr T value = Result::value; }; @@ -377,7 +351,7 @@ struct exclusive_scan_integer_sequence { using value_type = typename IntegerSequence::value_type; using helper = exclusive_scan_integer_sequence_helper< reverse_integer_sequence<IntegerSequence>, - std::integral_constant<value_type, 0> >; + std::integral_constant<value_type, 0>>; using type = typename helper::type; static constexpr value_type value = helper::value; }; @@ -386,20 +360,20 @@ struct exclusive_scan_integer_sequence { template <typename IntegerSequence, typename Result, typename ResultSequence = - integer_sequence<typename IntegerSequence::value_type> > + integer_sequence<typename IntegerSequence::value_type>> struct inclusive_scan_integer_sequence_helper; template <typename T, T h0, T... tail, typename Result, T... results> struct inclusive_scan_integer_sequence_helper< - integer_sequence<T, h0, tail...>, Result, integer_sequence<T, results...> > + integer_sequence<T, h0, tail...>, Result, integer_sequence<T, results...>> : public inclusive_scan_integer_sequence_helper< integer_sequence<T, tail...>, std::integral_constant<T, Result::value + h0>, - integer_sequence<T, h0, (results + h0)...> > {}; + integer_sequence<T, h0, (results + h0)...>> {}; template <typename T, typename Result, T... results> -struct inclusive_scan_integer_sequence_helper< - integer_sequence<T>, Result, integer_sequence<T, results...> > { +struct inclusive_scan_integer_sequence_helper<integer_sequence<T>, Result, + integer_sequence<T, results...>> { using type = integer_sequence<T, results...>; static constexpr T value = Result::value; }; @@ -409,13 +383,89 @@ struct inclusive_scan_integer_sequence { using value_type = typename IntegerSequence::value_type; using helper = inclusive_scan_integer_sequence_helper< reverse_integer_sequence<IntegerSequence>, - std::integral_constant<value_type, 0> >; + std::integral_constant<value_type, 0>>; using type = typename helper::type; static constexpr value_type value = helper::value; }; template <typename T> -using identity_t = T; +struct identity { + using type = T; +}; + +template <typename T> +using identity_t = typename identity<T>::type; + +//============================================================================== +// <editor-fold desc="remove_cvref_t"> {{{1 + +#if defined(__cpp_lib_remove_cvref) +// since C++20 +using std::remove_cvref; +using std::remove_cvref_t; +#else +template <class T> +struct remove_cvref { + using type = std::remove_cv_t<std::remove_reference_t<T>>; +}; + +template <class T> +using remove_cvref_t = typename remove_cvref<T>::type; +#endif + +// </editor-fold> end remove_cvref_t }}}1 +//============================================================================== + +//============================================================================== +// <editor-fold desc="is_specialization_of"> {{{1 + +template <class Type, template <class...> class Template, class Enable = void> +struct is_specialization_of : std::false_type {}; + +template <template <class...> class Template, class... Args> +struct is_specialization_of<Template<Args...>, Template> : std::true_type {}; + +// </editor-fold> end is_specialization_of }}}1 +//============================================================================== + +//============================================================================== +// <editor-fold desc="Folding emulation"> {{{1 + +// acts like void for comma fold emulation +struct _fold_comma_emulation_return {}; + +template <class... Ts> +constexpr KOKKOS_INLINE_FUNCTION _fold_comma_emulation_return +emulate_fold_comma_operator(Ts&&...) noexcept { + return _fold_comma_emulation_return{}; +} + +#define KOKKOS_IMPL_FOLD_COMMA_OPERATOR(expr) \ + ::Kokkos::Impl::emulate_fold_comma_operator( \ + ::std::initializer_list<::Kokkos::Impl::_fold_comma_emulation_return>{ \ + ((expr), ::Kokkos::Impl::_fold_comma_emulation_return{})...}) + +// </editor-fold> end Folding emulation }}}1 +//============================================================================== + +//============================================================================== +// destruct_delete is a unique_ptr deleter for objects +// created by placement new into already allocated memory +// by only calling the destructor on the object. +// +// Because unique_ptr never calls its deleter with a nullptr value, +// no need to check if p == nullptr. +// +// Note: This differs in interface from std::default_delete in that the +// function call operator is templated instead of the class, to make +// it easier to use and disallow specialization. +struct destruct_delete { + template <typename T> + KOKKOS_INLINE_FUNCTION constexpr void operator()(T* p) const noexcept { + p->~T(); + } +}; +//============================================================================== } // namespace Impl } // namespace Kokkos diff --git a/packages/kokkos/core/src/impl/Kokkos_VLAEmulation.hpp b/packages/kokkos/core/src/impl/Kokkos_VLAEmulation.hpp index 9b9086419..41607a2a8 100644 --- a/packages/kokkos/core/src/impl/Kokkos_VLAEmulation.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_VLAEmulation.hpp @@ -195,8 +195,7 @@ struct ObjectWithVLAEmulation { } KOKKOS_INLINE_FUNCTION - ~ObjectWithVLAEmulation() noexcept( - noexcept(std::declval<vla_value_type>().~vla_value_type())) { + ~ObjectWithVLAEmulation() { for (auto&& value : *this) { value.~vla_value_type(); } diff --git a/packages/kokkos/core/src/impl/Kokkos_ViewArray.hpp b/packages/kokkos/core/src/impl/Kokkos_ViewArray.hpp index 119ad4ecc..7adbe4690 100644 --- a/packages/kokkos/core/src/impl/Kokkos_ViewArray.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_ViewArray.hpp @@ -51,21 +51,21 @@ namespace Kokkos { namespace Impl { template <class DataType, class ArrayLayout, class V, size_t N, class P> -struct ViewDataAnalysis<DataType, ArrayLayout, Kokkos::Array<V, N, P> > { +struct ViewDataAnalysis<DataType, ArrayLayout, Kokkos::Array<V, N, P>> { private: - typedef ViewArrayAnalysis<DataType> array_analysis; + using array_analysis = ViewArrayAnalysis<DataType>; static_assert(std::is_same<P, void>::value, ""); static_assert(std::is_same<typename array_analysis::non_const_value_type, - Kokkos::Array<V, N, P> >::value, + Kokkos::Array<V, N, P>>::value, ""); static_assert(std::is_scalar<V>::value, "View of Array type must be of a scalar type"); public: - typedef Kokkos::Array<> specialize; + using specialize = Kokkos::Array<>; - typedef typename array_analysis::dimension dimension; + using dimension = typename array_analysis::dimension; private: enum { @@ -73,29 +73,29 @@ struct ViewDataAnalysis<DataType, ArrayLayout, Kokkos::Array<V, N, P> > { typename array_analysis::const_value_type>::value }; - typedef typename dimension::template append<N>::type array_scalar_dimension; + using array_scalar_dimension = typename dimension::template append<N>::type; - typedef typename std::conditional<is_const, const V, V>::type scalar_type; - typedef V non_const_scalar_type; - typedef const V const_scalar_type; + using scalar_type = typename std::conditional<is_const, const V, V>::type; + using non_const_scalar_type = V; + using const_scalar_type = const V; public: - typedef typename array_analysis::value_type value_type; - typedef typename array_analysis::const_value_type const_value_type; - typedef typename array_analysis::non_const_value_type non_const_value_type; - - typedef typename ViewDataType<value_type, dimension>::type type; - typedef typename ViewDataType<const_value_type, dimension>::type const_type; - typedef typename ViewDataType<non_const_value_type, dimension>::type - non_const_type; - - typedef typename ViewDataType<scalar_type, array_scalar_dimension>::type - scalar_array_type; - typedef typename ViewDataType<const_scalar_type, array_scalar_dimension>::type - const_scalar_array_type; - typedef - typename ViewDataType<non_const_scalar_type, array_scalar_dimension>::type - non_const_scalar_array_type; + using value_type = typename array_analysis::value_type; + using const_value_type = typename array_analysis::const_value_type; + using non_const_value_type = typename array_analysis::non_const_value_type; + + using type = typename ViewDataType<value_type, dimension>::type; + using const_type = typename ViewDataType<const_value_type, dimension>::type; + using non_const_type = + typename ViewDataType<non_const_value_type, dimension>::type; + + using scalar_array_type = + typename ViewDataType<scalar_type, array_scalar_dimension>::type; + using const_scalar_array_type = + typename ViewDataType<const_scalar_type, array_scalar_dimension>::type; + using non_const_scalar_array_type = + typename ViewDataType<non_const_scalar_type, + array_scalar_dimension>::type; }; } // namespace Impl @@ -109,31 +109,28 @@ namespace Impl { /** \brief View mapping for non-specialized data type and standard layout */ template <class Traits> -class ViewMapping<Traits, Kokkos::Array<> > { +class ViewMapping<Traits, Kokkos::Array<>> { private: template <class, class...> friend class ViewMapping; template <class, class...> friend class Kokkos::View; - typedef ViewOffset<typename Traits::dimension, typename Traits::array_layout, - void> - offset_type; + using offset_type = ViewOffset<typename Traits::dimension, + typename Traits::array_layout, void>; - typedef typename Traits::value_type::pointer handle_type; + using handle_type = typename Traits::value_type::pointer; handle_type m_impl_handle; offset_type m_impl_offset; - size_t m_stride; + size_t m_stride = 0; - typedef typename Traits::value_type::value_type scalar_type; + using scalar_type = typename Traits::value_type::value_type; - typedef Kokkos::Array<scalar_type, KOKKOS_INVALID_INDEX, - Kokkos::Array<>::contiguous> - contiguous_reference; - typedef Kokkos::Array<scalar_type, KOKKOS_INVALID_INDEX, - Kokkos::Array<>::strided> - strided_reference; + using contiguous_reference = Kokkos::Array<scalar_type, (~std::size_t(0)), + Kokkos::Array<>::contiguous>; + using strided_reference = + Kokkos::Array<scalar_type, (~std::size_t(0)), Kokkos::Array<>::strided>; enum { is_contiguous_reference = @@ -232,11 +229,11 @@ class ViewMapping<Traits, Kokkos::Array<> > { return m_impl_offset.span_is_contiguous(); } - typedef + using reference_type = typename std::conditional<is_contiguous_reference, contiguous_reference, - strided_reference>::type reference_type; + strided_reference>::type; - typedef handle_type pointer_type; + using pointer_type = handle_type; /** \brief If data references are lvalue_reference than can query pointer to * memory */ @@ -338,30 +335,7 @@ class ViewMapping<Traits, Kokkos::Array<> > { //---------------------------------------- - KOKKOS_DEFAULTED_FUNCTION ~ViewMapping() = default; - KOKKOS_INLINE_FUNCTION ViewMapping() - : m_impl_handle(), m_impl_offset(), m_stride(0) {} - KOKKOS_INLINE_FUNCTION ViewMapping(const ViewMapping &rhs) - : m_impl_handle(rhs.m_impl_handle), - m_impl_offset(rhs.m_impl_offset), - m_stride(rhs.m_stride) {} - KOKKOS_INLINE_FUNCTION ViewMapping &operator=(const ViewMapping &rhs) { - m_impl_handle = rhs.m_impl_handle; - m_impl_offset = rhs.m_impl_offset; - m_stride = rhs.m_stride; - return *this; - } - - KOKKOS_INLINE_FUNCTION ViewMapping(ViewMapping &&rhs) - : m_impl_handle(rhs.m_impl_handle), - m_impl_offset(rhs.m_impl_offset), - m_stride(rhs.m_stride) {} - KOKKOS_INLINE_FUNCTION ViewMapping &operator=(ViewMapping &&rhs) { - m_impl_handle = rhs.m_impl_handle; - m_impl_offset = rhs.m_impl_offset; - m_stride = rhs.m_stride; - return *this; - } + KOKKOS_DEFAULTED_FUNCTION ViewMapping() = default; //---------------------------------------- @@ -377,31 +351,33 @@ class ViewMapping<Traits, Kokkos::Array<> > { Kokkos::Impl::SharedAllocationRecord<> *allocate_shared( Kokkos::Impl::ViewCtorProp<P...> const &arg_prop, typename Traits::array_layout const &arg_layout) { - typedef Kokkos::Impl::ViewCtorProp<P...> alloc_prop; + using alloc_prop = Kokkos::Impl::ViewCtorProp<P...>; - typedef typename alloc_prop::execution_space execution_space; - typedef typename Traits::memory_space memory_space; - typedef ViewValueFunctor<execution_space, scalar_type> functor_type; - typedef Kokkos::Impl::SharedAllocationRecord<memory_space, functor_type> - record_type; + using execution_space = typename alloc_prop::execution_space; + using memory_space = typename Traits::memory_space; + using functor_type = ViewValueFunctor<execution_space, scalar_type>; + using record_type = + Kokkos::Impl::SharedAllocationRecord<memory_space, functor_type>; // Query the mapping for byte-size of allocation. - typedef std::integral_constant< - unsigned, alloc_prop::allow_padding ? sizeof(scalar_type) : 0> - padding; + using padding = std::integral_constant< + unsigned int, alloc_prop::allow_padding ? sizeof(scalar_type) : 0>; m_impl_offset = offset_type(padding(), arg_layout); const size_t alloc_size = (m_impl_offset.span() * Array_N * MemorySpanSize + MemorySpanMask) & ~size_t(MemorySpanMask); - + const auto &alloc_name = + static_cast<Kokkos::Impl::ViewCtorProp<void, std::string> const &>( + arg_prop) + .value; // Allocate memory from the memory space and create tracking record. record_type *const record = record_type::allocate( - ((Kokkos::Impl::ViewCtorProp<void, memory_space> const &)arg_prop) + static_cast<Kokkos::Impl::ViewCtorProp<void, memory_space> const &>( + arg_prop) .value, - ((Kokkos::Impl::ViewCtorProp<void, std::string> const &)arg_prop).value, - alloc_size); + alloc_name, alloc_size); if (alloc_size) { m_impl_handle = @@ -410,10 +386,11 @@ class ViewMapping<Traits, Kokkos::Array<> > { if (alloc_prop::initialize) { // The functor constructs and destroys record->m_destroy = functor_type( - ((Kokkos::Impl::ViewCtorProp<void, execution_space> const &) - arg_prop) + static_cast<Kokkos::Impl::ViewCtorProp<void, execution_space> const + &>(arg_prop) .value, - (pointer_type)m_impl_handle, m_impl_offset.span() * Array_N); + (pointer_type)m_impl_handle, m_impl_offset.span() * Array_N, + alloc_name); record->m_destroy.construct_shared_allocation(); } @@ -438,7 +415,7 @@ class ViewMapping< Kokkos::LayoutRight>::value || std::is_same<typename DstTraits::array_layout, Kokkos::LayoutStride>::value) && - std::is_same<typename SrcTraits::specialize, Kokkos::Array<> >::value && + std::is_same<typename SrcTraits::specialize, Kokkos::Array<>>::value && (std::is_same<typename SrcTraits::array_layout, Kokkos::LayoutLeft>::value || std::is_same<typename SrcTraits::array_layout, @@ -462,16 +439,16 @@ class ViewMapping< typename SrcTraits::array_layout>::value }; - typedef Kokkos::Impl::SharedAllocationTracker TrackType; - typedef ViewMapping<DstTraits, void> DstType; - typedef ViewMapping<SrcTraits, Kokkos::Array<> > SrcType; + using TrackType = Kokkos::Impl::SharedAllocationTracker; + using DstType = ViewMapping<DstTraits, void>; + using SrcType = ViewMapping<SrcTraits, Kokkos::Array<>>; KOKKOS_INLINE_FUNCTION static void assign(DstType &dst, const SrcType &src, const TrackType & /*src_track*/) { static_assert(is_assignable, "Can only convert to array_type"); - typedef typename DstType::offset_type dst_offset_type; + using dst_offset_type = typename DstType::offset_type; // Array dimension becomes the last dimension. // Arguments beyond the destination rank are ignored. @@ -496,9 +473,8 @@ class ViewMapping< (7 < SrcType::Rank ? src.dimension_7() : SrcTraits::value_type::size()))); } else { // is padded - typedef std::integral_constant< - unsigned, sizeof(typename SrcTraits::value_type::value_type)> - padded; + using padded = std::integral_constant< + unsigned int, sizeof(typename SrcTraits::value_type::value_type)>; dst.m_impl_offset = dst_offset_type( padded(), typename DstTraits::array_layout( @@ -528,9 +504,9 @@ class ViewMapping< //---------------------------------------------------------------------------- template <class SrcTraits, class... Args> -struct ViewMapping< +class ViewMapping< typename std::enable_if<( - std::is_same<typename SrcTraits::specialize, Kokkos::Array<> >::value && + std::is_same<typename SrcTraits::specialize, Kokkos::Array<>>::value && (std::is_same<typename SrcTraits::array_layout, Kokkos::LayoutLeft>::value || std::is_same<typename SrcTraits::array_layout, @@ -580,26 +556,20 @@ struct ViewMapping< }; // Subview's layout - typedef typename std::conditional< - ( /* Same array layout IF */ - (rank == 0) /* output rank zero */ - || - // OutputRank 1 or 2, InputLayout Left, Interval 0 - // because single stride one or second index has a stride. - (rank <= 2 && R0 && - std::is_same<typename SrcTraits::array_layout, - Kokkos::LayoutLeft>::value) || - // OutputRank 1 or 2, InputLayout Right, Interval [InputRank-1] - // because single stride one or second index has a stride. - (rank <= 2 && R0_rev && - std::is_same<typename SrcTraits::array_layout, - Kokkos::LayoutRight>::value)), - typename SrcTraits::array_layout, Kokkos::LayoutStride>::type - array_layout; - - typedef typename SrcTraits::value_type value_type; - - typedef typename std::conditional< + using array_layout = + typename std::conditional<((rank == 0) || + (rank <= 2 && R0 && + std::is_same<typename SrcTraits::array_layout, + Kokkos::LayoutLeft>::value) || + (rank <= 2 && R0_rev && + std::is_same<typename SrcTraits::array_layout, + Kokkos::LayoutRight>::value)), + typename SrcTraits::array_layout, + Kokkos::LayoutStride>::type; + + using value_type = typename SrcTraits::value_type; + + using data_type = typename std::conditional< rank == 0, value_type, typename std::conditional< rank == 1, value_type *, @@ -616,25 +586,24 @@ struct ViewMapping< typename std::conditional< rank == 7, value_type *******, value_type ********>::type>::type>::type>:: - type>::type>::type>::type>::type data_type; + type>::type>::type>::type>::type; public: - typedef Kokkos::ViewTraits<data_type, array_layout, - typename SrcTraits::device_type, - typename SrcTraits::memory_traits> - traits_type; + using traits_type = Kokkos::ViewTraits<data_type, array_layout, + typename SrcTraits::device_type, + typename SrcTraits::memory_traits>; - typedef Kokkos::View<data_type, array_layout, typename SrcTraits::device_type, - typename SrcTraits::memory_traits> - type; + using type = + Kokkos::View<data_type, array_layout, typename SrcTraits::device_type, + typename SrcTraits::memory_traits>; KOKKOS_INLINE_FUNCTION static void assign(ViewMapping<traits_type, void> &dst, ViewMapping<SrcTraits, void> const &src, Args... args) { - typedef ViewMapping<traits_type, void> DstType; + using DstType = ViewMapping<traits_type, void>; - typedef typename DstType::offset_type dst_offset_type; - typedef typename DstType::handle_type dst_handle_type; + using dst_offset_type = typename DstType::offset_type; + using dst_handle_type = typename DstType::handle_type; const SubviewExtents<SrcTraits::rank, rank> extents(src.m_impl_offset.m_dim, args...); diff --git a/packages/kokkos/core/src/impl/Kokkos_ViewCtor.hpp b/packages/kokkos/core/src/impl/Kokkos_ViewCtor.hpp index 93a267ffa..b9e32a04e 100644 --- a/packages/kokkos/core/src/impl/Kokkos_ViewCtor.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_ViewCtor.hpp @@ -48,27 +48,6 @@ //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- -namespace Kokkos { - -/* For backward compatibility */ - -struct ViewAllocateWithoutInitializing { - const std::string label; - - ViewAllocateWithoutInitializing() : label() {} - - explicit ViewAllocateWithoutInitializing(const std::string &arg_label) - : label(arg_label) {} - - explicit ViewAllocateWithoutInitializing(const char *const arg_label) - : label(arg_label) {} -}; - -} /* namespace Kokkos */ - -//---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- - namespace Kokkos { namespace Impl { @@ -141,7 +120,7 @@ struct ViewCtorProp<typename std::enable_if< ViewCtorProp(const ViewCtorProp &) = default; ViewCtorProp &operator=(const ViewCtorProp &) = default; - typedef P type; + using type = P; ViewCtorProp(const type &) {} @@ -156,7 +135,7 @@ struct ViewCtorProp<typename std::enable_if<is_view_label<Label>::value>::type, ViewCtorProp(const ViewCtorProp &) = default; ViewCtorProp &operator=(const ViewCtorProp &) = default; - typedef std::string type; + using type = std::string; ViewCtorProp(const type &arg) : value(arg) {} ViewCtorProp(type &&arg) : value(arg) {} @@ -173,7 +152,7 @@ struct ViewCtorProp<typename std::enable_if< ViewCtorProp(const ViewCtorProp &) = default; ViewCtorProp &operator=(const ViewCtorProp &) = default; - typedef Space type; + using type = Space; ViewCtorProp(const type &arg) : value(arg) {} @@ -186,7 +165,7 @@ struct ViewCtorProp<void, T *> { ViewCtorProp(const ViewCtorProp &) = default; ViewCtorProp &operator=(const ViewCtorProp &) = default; - typedef T *type; + using type = T *; KOKKOS_INLINE_FUNCTION ViewCtorProp(const type arg) : value(arg) {} @@ -194,20 +173,49 @@ struct ViewCtorProp<void, T *> { type value; }; +// For some reason I don't understand I needed this specialization explicitly +// for NVCC/MSVC +template <typename T> +struct ViewCtorProp<T *> { + ViewCtorProp() = default; + ViewCtorProp(const ViewCtorProp &) = default; + ViewCtorProp &operator=(const ViewCtorProp &) = default; + + using type = T *; + + KOKKOS_INLINE_FUNCTION + ViewCtorProp(const type arg) : value(arg) {} + + enum : bool { has_pointer = true }; + using pointer_type = type; + type value; +}; + +// If we use `ViewCtorProp<Args...>` and `ViewCtorProp<void, Args>...` directly +// in the parameter lists and base class initializers, respectively, as far as +// we can tell MSVC 16.5.5+CUDA 10.2 thinks that `ViewCtorProp` refers to the +// current instantiation, not the template itself, and gets all kinds of +// confused. To work around this, we just use a couple of alias templates that +// amount to the same thing. +template <typename... Args> +using view_ctor_prop_args = ViewCtorProp<Args...>; + +template <typename Arg> +using view_ctor_prop_base = ViewCtorProp<void, Arg>; + template <typename... P> struct ViewCtorProp : public ViewCtorProp<void, P>... { private: - typedef Kokkos::Impl::has_condition<void, Kokkos::Impl::is_memory_space, P...> - var_memory_space; + using var_memory_space = + Kokkos::Impl::has_condition<void, Kokkos::Impl::is_memory_space, P...>; - typedef Kokkos::Impl::has_condition<void, Kokkos::Impl::is_execution_space, - P...> - var_execution_space; + using var_execution_space = + Kokkos::Impl::has_condition<void, Kokkos::Impl::is_execution_space, P...>; struct VOIDDUMMY {}; - typedef Kokkos::Impl::has_condition<VOIDDUMMY, std::is_pointer, P...> - var_pointer; + using var_pointer = + Kokkos::Impl::has_condition<VOIDDUMMY, std::is_pointer, P...>; public: /* Flags for the common properties */ @@ -220,9 +228,9 @@ struct ViewCtorProp : public ViewCtorProp<void, P>... { initialize = !Kokkos::Impl::has_type<WithoutInitializing_t, P...>::value }; - typedef typename var_memory_space::type memory_space; - typedef typename var_execution_space::type execution_space; - typedef typename var_pointer::type pointer_type; + using memory_space = typename var_memory_space::type; + using execution_space = typename var_execution_space::type; + using pointer_type = typename var_pointer::type; /* Copy from a matching argument list. * Requires std::is_same< P , ViewCtorProp< void , Args >::value ... @@ -236,10 +244,20 @@ struct ViewCtorProp : public ViewCtorProp<void, P>... { ViewCtorProp<void, typename ViewCtorProp<void, Args>::type>(args)... {} /* Copy from a matching property subset */ + KOKKOS_INLINE_FUNCTION ViewCtorProp(pointer_type arg0) + : ViewCtorProp<void, pointer_type>(arg0) {} + + // If we use `ViewCtorProp<Args...>` and `ViewCtorProp<void, Args>...` here + // directly, MSVC 16.5.5+CUDA 10.2 appears to think that `ViewCtorProp` refers + // to the current instantiation, not the template itself, and gets all kinds + // of confused. To work around this, we just use a couple of alias templates + // that amount to the same thing. template <typename... Args> - ViewCtorProp(ViewCtorProp<Args...> const &arg) - : ViewCtorProp<void, Args>( - static_cast<ViewCtorProp<void, Args> const &>(arg))... { + ViewCtorProp(view_ctor_prop_args<Args...> const &arg) + : view_ctor_prop_base<Args>( + static_cast<view_ctor_prop_base<Args> const &>(arg))... { + // Suppress an unused argument warning that (at least at one point) would + // show up if sizeof...(Args) == 0 (void)arg; } }; @@ -250,4 +268,37 @@ struct ViewCtorProp : public ViewCtorProp<void, P>... { //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- +namespace Kokkos { + +/* For backward compatibility */ +namespace Impl { +struct ViewAllocateWithoutInitializingBackwardCompat {}; + +template <> +struct ViewCtorProp<void, ViewAllocateWithoutInitializingBackwardCompat> {}; + +// NOTE This specialization is meant to be used as the +// ViewAllocateWithoutInitializing alias below. All it does is add a +// constructor that takes the label as single argument. +template <> +struct ViewCtorProp<WithoutInitializing_t, std::string, + ViewAllocateWithoutInitializingBackwardCompat> + : ViewCtorProp<WithoutInitializing_t, std::string>, + ViewCtorProp<void, ViewAllocateWithoutInitializingBackwardCompat> { + ViewCtorProp(std::string label) + : ViewCtorProp<WithoutInitializing_t, std::string>( + WithoutInitializing_t(), std::move(label)) {} +}; +} /* namespace Impl */ + +/*[[deprecated(Use Kokkos::alloc(Kokkos::WithoutInitializing, label) instead]]*/ +using ViewAllocateWithoutInitializing = + Impl::ViewCtorProp<Impl::WithoutInitializing_t, std::string, + Impl::ViewAllocateWithoutInitializingBackwardCompat>; + +} /* namespace Kokkos */ + +//---------------------------------------------------------------------------- +//---------------------------------------------------------------------------- + #endif diff --git a/packages/kokkos/core/src/impl/Kokkos_ViewFillCopyETIAvail.hpp b/packages/kokkos/core/src/impl/Kokkos_ViewFillCopyETIAvail.hpp deleted file mode 100644 index b415cb6d5..000000000 --- a/packages/kokkos/core/src/impl/Kokkos_ViewFillCopyETIAvail.hpp +++ /dev/null @@ -1,126 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#ifndef KOKKOS_EXPERIMENTAL_VIEWETIAVAIL_HPP -#define KOKKOS_EXPERIMENTAL_VIEWETIAVAIL_HPP - -namespace Kokkos { -namespace Impl { - -template <class ViewTypeA, class ViewTypeB, class Layout, class ExecSpace, - int Rank, typename iType> -struct ViewCopyETIAvail { - enum { value = false }; -}; - -#define KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(DATATYPE, LAYOUTA, LAYOUTB, EXECSPACE, \ - ITYPE) \ - template <> \ - struct ViewCopyETIAvail< \ - Kokkos::View<DATATYPE, LAYOUTA, \ - Kokkos::Device<EXECSPACE, Kokkos::AnonymousSpace>, \ - Kokkos::MemoryTraits<0>>, \ - Kokkos::View<const DATATYPE, LAYOUTB, \ - Kokkos::Device<EXECSPACE, Kokkos::AnonymousSpace>, \ - Kokkos::MemoryTraits<0>>, \ - Kokkos::LayoutLeft, EXECSPACE, Kokkos::View<DATATYPE>::rank, ITYPE> { \ - enum { value = true }; \ - }; \ - template <> \ - struct ViewCopyETIAvail< \ - Kokkos::View<DATATYPE, LAYOUTA, \ - Kokkos::Device<EXECSPACE, Kokkos::AnonymousSpace>, \ - Kokkos::MemoryTraits<0>>, \ - Kokkos::View<const DATATYPE, LAYOUTB, \ - Kokkos::Device<EXECSPACE, Kokkos::AnonymousSpace>, \ - Kokkos::MemoryTraits<0>>, \ - Kokkos::LayoutRight, EXECSPACE, Kokkos::View<DATATYPE>::rank, ITYPE> { \ - enum { value = true }; \ - }; - -template <class ViewType, class Layout, class ExecSpace, int Rank, - typename iType> -struct ViewFillETIAvail { - enum { value = false }; -}; - -#define KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(DATATYPE, LAYOUT, EXECSPACE, ITYPE) \ - template <> \ - struct ViewFillETIAvail< \ - Kokkos::View<DATATYPE, LAYOUT, \ - Kokkos::Device<EXECSPACE, Kokkos::AnonymousSpace>, \ - Kokkos::MemoryTraits<0>>, \ - Kokkos::LayoutLeft, EXECSPACE, Kokkos::View<DATATYPE>::rank, ITYPE> { \ - enum { value = true }; \ - }; \ - template <> \ - struct ViewFillETIAvail< \ - Kokkos::View<DATATYPE, LAYOUT, \ - Kokkos::Device<EXECSPACE, Kokkos::AnonymousSpace>, \ - Kokkos::MemoryTraits<0>>, \ - Kokkos::LayoutRight, EXECSPACE, Kokkos::View<DATATYPE>::rank, ITYPE> { \ - enum { value = true }; \ - }; - -} // namespace Impl -} // namespace Kokkos -#ifdef KOKKOS_ENABLE_ETI -#ifdef KOKKOS_ENABLE_Serial -#include <Serial/Kokkos_Serial_ViewCopyETIAvail.hpp> -#endif -#ifdef KOKKOS_ENABLE_OPENMP -#include <OpenMP/Kokkos_OpenMP_ViewCopyETIAvail.hpp> -#endif -#ifdef KOKKOS_ENABLE_THREADS -#include <Threads/Kokkos_Threads_ViewCopyETIAvail.hpp> -#endif -#ifdef KOKKOS_ENABLE_CUDA -#include <Cuda/Kokkos_Cuda_ViewCopyETIAvail.hpp> -#endif -#ifdef KOKKOS_ENABLE_ROCM -#include <ROCm/Kokkos_ROCm_ViewCopyETIAvail.hpp> -#endif -#endif - -#endif diff --git a/packages/kokkos/core/src/impl/Kokkos_ViewFillCopyETIDecl.hpp b/packages/kokkos/core/src/impl/Kokkos_ViewFillCopyETIDecl.hpp deleted file mode 100644 index e23dabd84..000000000 --- a/packages/kokkos/core/src/impl/Kokkos_ViewFillCopyETIDecl.hpp +++ /dev/null @@ -1,140 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#ifndef KOKKOS_EXPERIMENTAL_VIEWETIDECL_HPP -#define KOKKOS_EXPERIMENTAL_VIEWETIDECL_HPP - -namespace Kokkos { -namespace Impl { - -#define KOKKOS_IMPL_VIEWCOPY_ETI_DECL(DATATYPE, LAYOUTA, LAYOUTB, EXECSPACE, \ - ITYPE) \ - extern template struct ViewCopy< \ - Kokkos::View<DATATYPE, LAYOUTA, \ - Kokkos::Device<EXECSPACE, Kokkos::AnonymousSpace>, \ - Kokkos::MemoryTraits<0>>, \ - Kokkos::View<const DATATYPE, LAYOUTB, \ - Kokkos::Device<EXECSPACE, Kokkos::AnonymousSpace>, \ - Kokkos::MemoryTraits<0>>, \ - Kokkos::LayoutLeft, EXECSPACE, Kokkos::View<DATATYPE>::rank, ITYPE, \ - true>; \ - extern template struct ViewCopy< \ - Kokkos::View<DATATYPE, LAYOUTA, \ - Kokkos::Device<EXECSPACE, Kokkos::AnonymousSpace>, \ - Kokkos::MemoryTraits<0>>, \ - Kokkos::View<const DATATYPE, LAYOUTB, \ - Kokkos::Device<EXECSPACE, Kokkos::AnonymousSpace>, \ - Kokkos::MemoryTraits<0>>, \ - Kokkos::LayoutRight, EXECSPACE, Kokkos::View<DATATYPE>::rank, ITYPE, \ - true>; - -#define KOKKOS_IMPL_VIEWFILL_ETI_DECL(DATATYPE, LAYOUT, EXECSPACE, ITYPE) \ - extern template struct ViewFill< \ - Kokkos::View<DATATYPE, LAYOUT, \ - Kokkos::Device<EXECSPACE, Kokkos::AnonymousSpace>, \ - Kokkos::MemoryTraits<0>>, \ - Kokkos::LayoutLeft, EXECSPACE, Kokkos::View<DATATYPE>::rank, ITYPE, \ - true>; \ - extern template struct ViewFill< \ - Kokkos::View<DATATYPE, LAYOUT, \ - Kokkos::Device<EXECSPACE, Kokkos::AnonymousSpace>, \ - Kokkos::MemoryTraits<0>>, \ - Kokkos::LayoutRight, EXECSPACE, Kokkos::View<DATATYPE>::rank, ITYPE, \ - true>; - -#define KOKKOS_IMPL_VIEWCOPY_ETI_INST(DATATYPE, LAYOUTA, LAYOUTB, EXECSPACE, \ - ITYPE) \ - template struct ViewCopy< \ - Kokkos::View<DATATYPE, LAYOUTA, \ - Kokkos::Device<EXECSPACE, Kokkos::AnonymousSpace>, \ - Kokkos::MemoryTraits<0>>, \ - Kokkos::View<const DATATYPE, LAYOUTB, \ - Kokkos::Device<EXECSPACE, Kokkos::AnonymousSpace>, \ - Kokkos::MemoryTraits<0>>, \ - Kokkos::LayoutLeft, EXECSPACE, Kokkos::View<DATATYPE>::rank, ITYPE, \ - true>; \ - template struct ViewCopy< \ - Kokkos::View<DATATYPE, LAYOUTA, \ - Kokkos::Device<EXECSPACE, Kokkos::AnonymousSpace>, \ - Kokkos::MemoryTraits<0>>, \ - Kokkos::View<const DATATYPE, LAYOUTB, \ - Kokkos::Device<EXECSPACE, Kokkos::AnonymousSpace>, \ - Kokkos::MemoryTraits<0>>, \ - Kokkos::LayoutRight, EXECSPACE, Kokkos::View<DATATYPE>::rank, ITYPE, \ - true>; - -#define KOKKOS_IMPL_VIEWFILL_ETI_INST(DATATYPE, LAYOUT, EXECSPACE, ITYPE) \ - template struct ViewFill< \ - Kokkos::View<DATATYPE, LAYOUT, \ - Kokkos::Device<EXECSPACE, Kokkos::AnonymousSpace>, \ - Kokkos::MemoryTraits<0>>, \ - Kokkos::LayoutLeft, EXECSPACE, Kokkos::View<DATATYPE>::rank, ITYPE, \ - true>; \ - template struct ViewFill< \ - Kokkos::View<DATATYPE, LAYOUT, \ - Kokkos::Device<EXECSPACE, Kokkos::AnonymousSpace>, \ - Kokkos::MemoryTraits<0>>, \ - Kokkos::LayoutRight, EXECSPACE, Kokkos::View<DATATYPE>::rank, ITYPE, \ - true>; - -} // namespace Impl -} // namespace Kokkos -#ifdef KOKKOS_ENABLE_ETI -#ifdef KOKKOS_ENABLE_Serial -#include <Serial/Kokkos_Serial_ViewCopyETIDecl.hpp> -#endif -#ifdef KOKKOS_ENABLE_OPENMP -#include <OpenMP/Kokkos_OpenMP_ViewCopyETIDecl.hpp> -#endif -#ifdef KOKKOS_ENABLE_THREADS -#include <Threads/Kokkos_Threads_ViewCopyETIDecl.hpp> -#endif -#ifdef KOKKOS_ENABLE_CUDA -#include <Cuda/Kokkos_Cuda_ViewCopyETIDecl.hpp> -#endif -#ifdef KOKKOS_ENABLE_ROCM -#include <ROCm/Kokkos_ROCm_ViewCopyETIDecl.hpp> -#endif -#endif -#endif diff --git a/packages/kokkos/core/src/impl/Kokkos_ViewLayoutTiled.hpp b/packages/kokkos/core/src/impl/Kokkos_ViewLayoutTiled.hpp index 27f4375e5..267b35f66 100644 --- a/packages/kokkos/core/src/impl/Kokkos_ViewLayoutTiled.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_ViewLayoutTiled.hpp @@ -45,8 +45,6 @@ #ifndef KOKKOS_EXPERIMENTAL_VIEWLAYOUTTILE_HPP #define KOKKOS_EXPERIMENTAL_VIEWLAYOUTTILE_HPP -#ifndef KOKKOS_ENABLE_DEPRECATED_CODE - #include <Kokkos_Layout.hpp> #include <Kokkos_View.hpp> @@ -131,14 +129,14 @@ struct ViewOffset< enum { VORank = Dimension::rank }; - enum { SHIFT_0 = Kokkos::Impl::integral_power_of_two(Layout::N0) }; - enum { SHIFT_1 = Kokkos::Impl::integral_power_of_two(Layout::N1) }; - enum { SHIFT_2 = Kokkos::Impl::integral_power_of_two(Layout::N2) }; - enum { SHIFT_3 = Kokkos::Impl::integral_power_of_two(Layout::N3) }; - enum { SHIFT_4 = Kokkos::Impl::integral_power_of_two(Layout::N4) }; - enum { SHIFT_5 = Kokkos::Impl::integral_power_of_two(Layout::N5) }; - enum { SHIFT_6 = Kokkos::Impl::integral_power_of_two(Layout::N6) }; - enum { SHIFT_7 = Kokkos::Impl::integral_power_of_two(Layout::N7) }; + enum : unsigned { SHIFT_0 = Kokkos::Impl::integral_power_of_two(Layout::N0) }; + enum : unsigned { SHIFT_1 = Kokkos::Impl::integral_power_of_two(Layout::N1) }; + enum : unsigned { SHIFT_2 = Kokkos::Impl::integral_power_of_two(Layout::N2) }; + enum : unsigned { SHIFT_3 = Kokkos::Impl::integral_power_of_two(Layout::N3) }; + enum : unsigned { SHIFT_4 = Kokkos::Impl::integral_power_of_two(Layout::N4) }; + enum : unsigned { SHIFT_5 = Kokkos::Impl::integral_power_of_two(Layout::N5) }; + enum : unsigned { SHIFT_6 = Kokkos::Impl::integral_power_of_two(Layout::N6) }; + enum : unsigned { SHIFT_7 = Kokkos::Impl::integral_power_of_two(Layout::N7) }; enum { MASK_0 = Layout::N0 - 1 }; enum { MASK_1 = Layout::N1 - 1 }; enum { MASK_2 = Layout::N2 - 1 }; @@ -148,16 +146,20 @@ struct ViewOffset< enum { MASK_6 = Layout::N6 - 1 }; enum { MASK_7 = Layout::N7 - 1 }; - enum { SHIFT_2T = SHIFT_0 + SHIFT_1 }; - enum { SHIFT_3T = SHIFT_0 + SHIFT_1 + SHIFT_2 }; - enum { SHIFT_4T = SHIFT_0 + SHIFT_1 + SHIFT_2 + SHIFT_3 }; - enum { SHIFT_5T = SHIFT_0 + SHIFT_1 + SHIFT_2 + SHIFT_3 + SHIFT_4 }; - enum { SHIFT_6T = SHIFT_0 + SHIFT_1 + SHIFT_2 + SHIFT_3 + SHIFT_4 + SHIFT_5 }; - enum { + enum : unsigned { SHIFT_2T = SHIFT_0 + SHIFT_1 }; + enum : unsigned { SHIFT_3T = SHIFT_0 + SHIFT_1 + SHIFT_2 }; + enum : unsigned { SHIFT_4T = SHIFT_0 + SHIFT_1 + SHIFT_2 + SHIFT_3 }; + enum : unsigned { + SHIFT_5T = SHIFT_0 + SHIFT_1 + SHIFT_2 + SHIFT_3 + SHIFT_4 + }; + enum : unsigned { + SHIFT_6T = SHIFT_0 + SHIFT_1 + SHIFT_2 + SHIFT_3 + SHIFT_4 + SHIFT_5 + }; + enum : unsigned { SHIFT_7T = SHIFT_0 + SHIFT_1 + SHIFT_2 + SHIFT_3 + SHIFT_4 + SHIFT_5 + SHIFT_6 }; - enum { + enum : unsigned { SHIFT_8T = SHIFT_0 + SHIFT_1 + SHIFT_2 + SHIFT_3 + SHIFT_4 + SHIFT_5 + SHIFT_6 + SHIFT_7 }; @@ -166,9 +168,9 @@ struct ViewOffset< using is_mapping_plugin = std::true_type; using is_regular = std::false_type; - typedef size_t size_type; - typedef Dimension dimension_type; - typedef Layout array_layout; + using size_type = size_t; + using dimension_type = Dimension; + using array_layout = Layout; dimension_type m_dim; size_type m_tile_N0; // Num tiles dim 0 @@ -600,11 +602,37 @@ struct ViewOffset< } //---------------------------------------- - +#ifdef KOKKOS_IMPL_WINDOWS_CUDA + KOKKOS_FUNCTION ViewOffset() {} + KOKKOS_FUNCTION ViewOffset(const ViewOffset& src) { + m_dim = src.m_dim; + m_tile_N0 = src.m_tile_N0; + m_tile_N1 = src.m_tile_N1; + m_tile_N2 = src.m_tile_N2; + m_tile_N3 = src.m_tile_N3; + m_tile_N4 = src.m_tile_N4; + m_tile_N5 = src.m_tile_N5; + m_tile_N6 = src.m_tile_N6; + m_tile_N7 = src.m_tile_N7; + } + KOKKOS_FUNCTION ViewOffset& operator=(const ViewOffset& src) { + m_dim = src.m_dim; + m_tile_N0 = src.m_tile_N0; + m_tile_N1 = src.m_tile_N1; + m_tile_N2 = src.m_tile_N2; + m_tile_N3 = src.m_tile_N3; + m_tile_N4 = src.m_tile_N4; + m_tile_N5 = src.m_tile_N5; + m_tile_N6 = src.m_tile_N6; + m_tile_N7 = src.m_tile_N7; + return *this; + } +#else KOKKOS_DEFAULTED_FUNCTION ~ViewOffset() = default; KOKKOS_DEFAULTED_FUNCTION ViewOffset() = default; KOKKOS_DEFAULTED_FUNCTION ViewOffset(const ViewOffset&) = default; KOKKOS_DEFAULTED_FUNCTION ViewOffset& operator=(const ViewOffset&) = default; +#endif template <unsigned TrivialScalarSize> KOKKOS_INLINE_FUNCTION constexpr ViewOffset( @@ -641,7 +669,7 @@ template <typename T, Kokkos::Iterate OuterP, Kokkos::Iterate InnerP, unsigned N0, unsigned N1, unsigned N2, unsigned N3, unsigned N4, unsigned N5, unsigned N6, unsigned N7, class... P, typename iType0, typename iType1> -struct ViewMapping< +class ViewMapping< typename std::enable_if<(N2 == 0 && N3 == 0 && N4 == 0 && N5 == 0 && N6 == 0 && N7 == 0)>::type // void , @@ -653,26 +681,28 @@ struct ViewMapping< Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, N3, N4, N5, N6, N7, true>, iType0, iType1> { - typedef Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, N3, N4, - N5, N6, N7, true> - src_layout; - typedef Kokkos::ViewTraits<T**, src_layout, P...> src_traits; + public: + using src_layout = + Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, N3, N4, N5, + N6, N7, true>; + using src_traits = Kokkos::ViewTraits<T**, src_layout, P...>; enum { is_outer_left = (OuterP == Kokkos::Iterate::Left) }; enum { is_inner_left = (InnerP == Kokkos::Iterate::Left) }; - typedef typename std::conditional<is_inner_left, Kokkos::LayoutLeft, - Kokkos::LayoutRight>::type array_layout; - typedef Kokkos::ViewTraits<T[N0][N1], array_layout, P...> traits; - typedef Kokkos::View<T[N0][N1], array_layout, P...> type; + using array_layout = + typename std::conditional<is_inner_left, Kokkos::LayoutLeft, + Kokkos::LayoutRight>::type; + using traits = Kokkos::ViewTraits<T[N0][N1], array_layout, P...>; + using type = Kokkos::View<T[N0][N1], array_layout, P...>; KOKKOS_INLINE_FUNCTION static void assign( ViewMapping<traits, void>& dst, const ViewMapping<src_traits, void>& src, const src_layout&, const iType0 i_tile0, const iType1 i_tile1) { - typedef ViewMapping<traits, void> dst_map_type; - typedef ViewMapping<src_traits, void> src_map_type; - typedef typename dst_map_type::handle_type dst_handle_type; - typedef typename dst_map_type::offset_type dst_offset_type; - typedef typename src_map_type::offset_type src_offset_type; + using dst_map_type = ViewMapping<traits, void>; + using src_map_type = ViewMapping<src_traits, void>; + using dst_handle_type = typename dst_map_type::handle_type; + using dst_offset_type = typename dst_map_type::offset_type; + using src_offset_type = typename src_map_type::offset_type; dst = dst_map_type( dst_handle_type( @@ -692,38 +722,40 @@ template <typename T, Kokkos::Iterate OuterP, Kokkos::Iterate InnerP, unsigned N0, unsigned N1, unsigned N2, unsigned N3, unsigned N4, unsigned N5, unsigned N6, unsigned N7, class... P, typename iType0, typename iType1, typename iType2> -struct ViewMapping<typename std::enable_if<(N3 == 0 && N4 == 0 && N5 == 0 && - N6 == 0 && N7 == 0)>::type // void - , - Kokkos::ViewTraits<T***, - Kokkos::Experimental::LayoutTiled< - OuterP, InnerP, N0, N1, N2, N3, N4, - N5, N6, N7, true>, - P...>, - Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, - N3, N4, N5, N6, N7, true>, - iType0, iType1, iType2> { - typedef Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, N3, N4, - N5, N6, N7, true> - src_layout; - typedef Kokkos::ViewTraits<T***, src_layout, P...> src_traits; +class ViewMapping<typename std::enable_if<(N3 == 0 && N4 == 0 && N5 == 0 && + N6 == 0 && N7 == 0)>::type // void + , + Kokkos::ViewTraits< + T***, + Kokkos::Experimental::LayoutTiled< + OuterP, InnerP, N0, N1, N2, N3, N4, N5, N6, N7, true>, + P...>, + Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, + N3, N4, N5, N6, N7, true>, + iType0, iType1, iType2> { + public: + using src_layout = + Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, N3, N4, N5, + N6, N7, true>; + using src_traits = Kokkos::ViewTraits<T***, src_layout, P...>; enum { is_outer_left = (OuterP == Kokkos::Iterate::Left) }; enum { is_inner_left = (InnerP == Kokkos::Iterate::Left) }; - typedef typename std::conditional<is_inner_left, Kokkos::LayoutLeft, - Kokkos::LayoutRight>::type array_layout; - typedef Kokkos::ViewTraits<T[N0][N1][N2], array_layout, P...> traits; - typedef Kokkos::View<T[N0][N1][N2], array_layout, P...> type; + using array_layout = + typename std::conditional<is_inner_left, Kokkos::LayoutLeft, + Kokkos::LayoutRight>::type; + using traits = Kokkos::ViewTraits<T[N0][N1][N2], array_layout, P...>; + using type = Kokkos::View<T[N0][N1][N2], array_layout, P...>; KOKKOS_INLINE_FUNCTION static void assign( ViewMapping<traits, void>& dst, const ViewMapping<src_traits, void>& src, const src_layout&, const iType0 i_tile0, const iType1 i_tile1, const iType2 i_tile2) { - typedef ViewMapping<traits, void> dst_map_type; - typedef ViewMapping<src_traits, void> src_map_type; - typedef typename dst_map_type::handle_type dst_handle_type; - typedef typename dst_map_type::offset_type dst_offset_type; - typedef typename src_map_type::offset_type src_offset_type; + using dst_map_type = ViewMapping<traits, void>; + using src_map_type = ViewMapping<src_traits, void>; + using dst_handle_type = typename dst_map_type::handle_type; + using dst_offset_type = typename dst_map_type::offset_type; + using src_offset_type = typename src_map_type::offset_type; dst = dst_map_type( dst_handle_type( @@ -748,38 +780,40 @@ template <typename T, Kokkos::Iterate OuterP, Kokkos::Iterate InnerP, unsigned N0, unsigned N1, unsigned N2, unsigned N3, unsigned N4, unsigned N5, unsigned N6, unsigned N7, class... P, typename iType0, typename iType1, typename iType2, typename iType3> -struct ViewMapping<typename std::enable_if<(N4 == 0 && N5 == 0 && N6 == 0 && - N7 == 0)>::type // void - , - Kokkos::ViewTraits<T****, - Kokkos::Experimental::LayoutTiled< - OuterP, InnerP, N0, N1, N2, N3, N4, - N5, N6, N7, true>, - P...>, - Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, - N3, N4, N5, N6, N7, true>, - iType0, iType1, iType2, iType3> { - typedef Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, N3, N4, - N5, N6, N7, true> - src_layout; - typedef Kokkos::ViewTraits<T****, src_layout, P...> src_traits; +class ViewMapping<typename std::enable_if<(N4 == 0 && N5 == 0 && N6 == 0 && + N7 == 0)>::type // void + , + Kokkos::ViewTraits< + T****, + Kokkos::Experimental::LayoutTiled< + OuterP, InnerP, N0, N1, N2, N3, N4, N5, N6, N7, true>, + P...>, + Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, + N3, N4, N5, N6, N7, true>, + iType0, iType1, iType2, iType3> { + public: + using src_layout = + Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, N3, N4, N5, + N6, N7, true>; + using src_traits = Kokkos::ViewTraits<T****, src_layout, P...>; enum { is_outer_left = (OuterP == Kokkos::Iterate::Left) }; enum { is_inner_left = (InnerP == Kokkos::Iterate::Left) }; - typedef typename std::conditional<is_inner_left, Kokkos::LayoutLeft, - Kokkos::LayoutRight>::type array_layout; - typedef Kokkos::ViewTraits<T[N0][N1][N2][N3], array_layout, P...> traits; - typedef Kokkos::View<T[N0][N1][N2][N3], array_layout, P...> type; + using array_layout = + typename std::conditional<is_inner_left, Kokkos::LayoutLeft, + Kokkos::LayoutRight>::type; + using traits = Kokkos::ViewTraits<T[N0][N1][N2][N3], array_layout, P...>; + using type = Kokkos::View<T[N0][N1][N2][N3], array_layout, P...>; KOKKOS_INLINE_FUNCTION static void assign( ViewMapping<traits, void>& dst, const ViewMapping<src_traits, void>& src, const src_layout&, const iType0 i_tile0, const iType1 i_tile1, const iType2 i_tile2, const iType3 i_tile3) { - typedef ViewMapping<traits, void> dst_map_type; - typedef ViewMapping<src_traits, void> src_map_type; - typedef typename dst_map_type::handle_type dst_handle_type; - typedef typename dst_map_type::offset_type dst_offset_type; - typedef typename src_map_type::offset_type src_offset_type; + using dst_map_type = ViewMapping<traits, void>; + using src_map_type = ViewMapping<src_traits, void>; + using dst_handle_type = typename dst_map_type::handle_type; + using dst_offset_type = typename dst_map_type::offset_type; + using src_offset_type = typename src_map_type::offset_type; dst = dst_map_type( dst_handle_type( @@ -809,7 +843,7 @@ template <typename T, Kokkos::Iterate OuterP, Kokkos::Iterate InnerP, unsigned N0, unsigned N1, unsigned N2, unsigned N3, unsigned N4, unsigned N5, unsigned N6, unsigned N7, class... P, typename iType0, typename iType1, typename iType2, typename iType3, typename iType4> -struct ViewMapping< +class ViewMapping< typename std::enable_if<(N5 == 0 && N6 == 0 && N7 == 0)>::type // void , Kokkos::ViewTraits< @@ -820,27 +854,29 @@ struct ViewMapping< Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, N3, N4, N5, N6, N7, true>, iType0, iType1, iType2, iType3, iType4> { - typedef Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, N3, N4, - N5, N6, N7, true> - src_layout; - typedef Kokkos::ViewTraits<T*****, src_layout, P...> src_traits; + public: + using src_layout = + Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, N3, N4, N5, + N6, N7, true>; + using src_traits = Kokkos::ViewTraits<T*****, src_layout, P...>; enum { is_outer_left = (OuterP == Kokkos::Iterate::Left) }; enum { is_inner_left = (InnerP == Kokkos::Iterate::Left) }; - typedef typename std::conditional<is_inner_left, Kokkos::LayoutLeft, - Kokkos::LayoutRight>::type array_layout; - typedef Kokkos::ViewTraits<T[N0][N1][N2][N3][N4], array_layout, P...> traits; - typedef Kokkos::View<T[N0][N1][N2][N3][N4], array_layout, P...> type; + using array_layout = + typename std::conditional<is_inner_left, Kokkos::LayoutLeft, + Kokkos::LayoutRight>::type; + using traits = Kokkos::ViewTraits<T[N0][N1][N2][N3][N4], array_layout, P...>; + using type = Kokkos::View<T[N0][N1][N2][N3][N4], array_layout, P...>; KOKKOS_INLINE_FUNCTION static void assign( ViewMapping<traits, void>& dst, const ViewMapping<src_traits, void>& src, const src_layout&, const iType0 i_tile0, const iType1 i_tile1, const iType2 i_tile2, const iType3 i_tile3, const iType4 i_tile4) { - typedef ViewMapping<traits, void> dst_map_type; - typedef ViewMapping<src_traits, void> src_map_type; - typedef typename dst_map_type::handle_type dst_handle_type; - typedef typename dst_map_type::offset_type dst_offset_type; - typedef typename src_map_type::offset_type src_offset_type; + using dst_map_type = ViewMapping<traits, void>; + using src_map_type = ViewMapping<src_traits, void>; + using dst_handle_type = typename dst_map_type::handle_type; + using dst_offset_type = typename dst_map_type::offset_type; + using src_offset_type = typename src_map_type::offset_type; dst = dst_map_type( dst_handle_type( @@ -876,39 +912,41 @@ template <typename T, Kokkos::Iterate OuterP, Kokkos::Iterate InnerP, unsigned N5, unsigned N6, unsigned N7, class... P, typename iType0, typename iType1, typename iType2, typename iType3, typename iType4, typename iType5> -struct ViewMapping<typename std::enable_if<(N6 == 0 && N7 == 0)>::type // void - , - Kokkos::ViewTraits<T******, - Kokkos::Experimental::LayoutTiled< - OuterP, InnerP, N0, N1, N2, N3, N4, - N5, N6, N7, true>, - P...>, - Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, - N3, N4, N5, N6, N7, true>, - iType0, iType1, iType2, iType3, iType4, iType5> { - typedef Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, N3, N4, - N5, N6, N7, true> - src_layout; - typedef Kokkos::ViewTraits<T******, src_layout, P...> src_traits; +class ViewMapping<typename std::enable_if<(N6 == 0 && N7 == 0)>::type // void + , + Kokkos::ViewTraits< + T******, + Kokkos::Experimental::LayoutTiled< + OuterP, InnerP, N0, N1, N2, N3, N4, N5, N6, N7, true>, + P...>, + Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, + N3, N4, N5, N6, N7, true>, + iType0, iType1, iType2, iType3, iType4, iType5> { + public: + using src_layout = + Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, N3, N4, N5, + N6, N7, true>; + using src_traits = Kokkos::ViewTraits<T******, src_layout, P...>; enum { is_outer_left = (OuterP == Kokkos::Iterate::Left) }; enum { is_inner_left = (InnerP == Kokkos::Iterate::Left) }; - typedef typename std::conditional<is_inner_left, Kokkos::LayoutLeft, - Kokkos::LayoutRight>::type array_layout; - typedef Kokkos::ViewTraits<T[N0][N1][N2][N3][N4][N5], array_layout, P...> - traits; - typedef Kokkos::View<T[N0][N1][N2][N3][N4][N5], array_layout, P...> type; + using array_layout = + typename std::conditional<is_inner_left, Kokkos::LayoutLeft, + Kokkos::LayoutRight>::type; + using traits = + Kokkos::ViewTraits<T[N0][N1][N2][N3][N4][N5], array_layout, P...>; + using type = Kokkos::View<T[N0][N1][N2][N3][N4][N5], array_layout, P...>; KOKKOS_INLINE_FUNCTION static void assign( ViewMapping<traits, void>& dst, const ViewMapping<src_traits, void>& src, const src_layout&, const iType0 i_tile0, const iType1 i_tile1, const iType2 i_tile2, const iType3 i_tile3, const iType4 i_tile4, const iType5 i_tile5) { - typedef ViewMapping<traits, void> dst_map_type; - typedef ViewMapping<src_traits, void> src_map_type; - typedef typename dst_map_type::handle_type dst_handle_type; - typedef typename dst_map_type::offset_type dst_offset_type; - typedef typename src_map_type::offset_type src_offset_type; + using dst_map_type = ViewMapping<traits, void>; + using src_map_type = ViewMapping<src_traits, void>; + using dst_handle_type = typename dst_map_type::handle_type; + using dst_offset_type = typename dst_map_type::offset_type; + using src_offset_type = typename src_map_type::offset_type; dst = dst_map_type( dst_handle_type( @@ -948,39 +986,41 @@ template <typename T, Kokkos::Iterate OuterP, Kokkos::Iterate InnerP, unsigned N5, unsigned N6, unsigned N7, class... P, typename iType0, typename iType1, typename iType2, typename iType3, typename iType4, typename iType5, typename iType6> -struct ViewMapping<typename std::enable_if<(N7 == 0)>::type // void - , - Kokkos::ViewTraits<T*******, - Kokkos::Experimental::LayoutTiled< - OuterP, InnerP, N0, N1, N2, N3, N4, - N5, N6, N7, true>, - P...>, - Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, - N3, N4, N5, N6, N7, true>, - iType0, iType1, iType2, iType3, iType4, iType5, iType6> { - typedef Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, N3, N4, - N5, N6, N7, true> - src_layout; - typedef Kokkos::ViewTraits<T*******, src_layout, P...> src_traits; +class ViewMapping<typename std::enable_if<(N7 == 0)>::type // void + , + Kokkos::ViewTraits< + T*******, + Kokkos::Experimental::LayoutTiled< + OuterP, InnerP, N0, N1, N2, N3, N4, N5, N6, N7, true>, + P...>, + Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, + N3, N4, N5, N6, N7, true>, + iType0, iType1, iType2, iType3, iType4, iType5, iType6> { + public: + using src_layout = + Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, N3, N4, N5, + N6, N7, true>; + using src_traits = Kokkos::ViewTraits<T*******, src_layout, P...>; enum { is_outer_left = (OuterP == Kokkos::Iterate::Left) }; enum { is_inner_left = (InnerP == Kokkos::Iterate::Left) }; - typedef typename std::conditional<is_inner_left, Kokkos::LayoutLeft, - Kokkos::LayoutRight>::type array_layout; - typedef Kokkos::ViewTraits<T[N0][N1][N2][N3][N4][N5][N6], array_layout, P...> - traits; - typedef Kokkos::View<T[N0][N1][N2][N3][N4][N5][N6], array_layout, P...> type; + using array_layout = + typename std::conditional<is_inner_left, Kokkos::LayoutLeft, + Kokkos::LayoutRight>::type; + using traits = + Kokkos::ViewTraits<T[N0][N1][N2][N3][N4][N5][N6], array_layout, P...>; + using type = Kokkos::View<T[N0][N1][N2][N3][N4][N5][N6], array_layout, P...>; KOKKOS_INLINE_FUNCTION static void assign( ViewMapping<traits, void>& dst, const ViewMapping<src_traits, void>& src, const src_layout&, const iType0 i_tile0, const iType1 i_tile1, const iType2 i_tile2, const iType3 i_tile3, const iType4 i_tile4, const iType5 i_tile5, const iType6 i_tile6) { - typedef ViewMapping<traits, void> dst_map_type; - typedef ViewMapping<src_traits, void> src_map_type; - typedef typename dst_map_type::handle_type dst_handle_type; - typedef typename dst_map_type::offset_type dst_offset_type; - typedef typename src_map_type::offset_type src_offset_type; + using dst_map_type = ViewMapping<traits, void>; + using src_map_type = ViewMapping<src_traits, void>; + using dst_handle_type = typename dst_map_type::handle_type; + using dst_offset_type = typename dst_map_type::offset_type; + using src_offset_type = typename src_map_type::offset_type; dst = dst_map_type( dst_handle_type( @@ -1026,44 +1066,45 @@ template <typename T, Kokkos::Iterate OuterP, Kokkos::Iterate InnerP, unsigned N5, unsigned N6, unsigned N7, class... P, typename iType0, typename iType1, typename iType2, typename iType3, typename iType4, typename iType5, typename iType6, typename iType7> -struct ViewMapping< - typename std::enable_if<(N0 != 0 && N1 != 0 && N2 != 0 && N3 != 0 && - N4 != 0 && N5 != 0 && N6 != 0 && - N7 != 0)>::type // void - , - Kokkos::ViewTraits< - T********, - Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, N3, N4, - N5, N6, N7, true>, - P...>, - Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, N3, N4, N5, - N6, N7, true>, - iType0, iType1, iType2, iType3, iType4, iType5, iType6, iType7> { - typedef Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, N3, N4, - N5, N6, N7, true> - src_layout; - typedef Kokkos::ViewTraits<T********, src_layout, P...> src_traits; +class ViewMapping<typename std::enable_if<(N0 != 0 && N1 != 0 && N2 != 0 && + N3 != 0 && N4 != 0 && N5 != 0 && + N6 != 0 && N7 != 0)>::type // void + , + Kokkos::ViewTraits< + T********, + Kokkos::Experimental::LayoutTiled< + OuterP, InnerP, N0, N1, N2, N3, N4, N5, N6, N7, true>, + P...>, + Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, + N3, N4, N5, N6, N7, true>, + iType0, iType1, iType2, iType3, iType4, iType5, iType6, + iType7> { + public: + using src_layout = + Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, N3, N4, N5, + N6, N7, true>; + using src_traits = Kokkos::ViewTraits<T********, src_layout, P...>; enum { is_outer_left = (OuterP == Kokkos::Iterate::Left) }; enum { is_inner_left = (InnerP == Kokkos::Iterate::Left) }; - typedef typename std::conditional<is_inner_left, Kokkos::LayoutLeft, - Kokkos::LayoutRight>::type array_layout; - typedef Kokkos::ViewTraits<T[N0][N1][N2][N3][N4][N5][N6][N7], array_layout, - P...> - traits; - typedef Kokkos::View<T[N0][N1][N2][N3][N4][N5][N6][N7], array_layout, P...> - type; + using array_layout = + typename std::conditional<is_inner_left, Kokkos::LayoutLeft, + Kokkos::LayoutRight>::type; + using traits = + Kokkos::ViewTraits<T[N0][N1][N2][N3][N4][N5][N6][N7], array_layout, P...>; + using type = + Kokkos::View<T[N0][N1][N2][N3][N4][N5][N6][N7], array_layout, P...>; KOKKOS_INLINE_FUNCTION static void assign( ViewMapping<traits, void>& dst, const ViewMapping<src_traits, void>& src, const src_layout&, const iType0 i_tile0, const iType1 i_tile1, const iType2 i_tile2, const iType3 i_tile3, const iType4 i_tile4, const iType5 i_tile5, const iType6 i_tile6, const iType7 i_tile7) { - typedef ViewMapping<traits, void> dst_map_type; - typedef ViewMapping<src_traits, void> src_map_type; - typedef typename dst_map_type::handle_type dst_handle_type; - typedef typename dst_map_type::offset_type dst_offset_type; - typedef typename src_map_type::offset_type src_offset_type; + using dst_map_type = ViewMapping<traits, void>; + using src_map_type = ViewMapping<src_traits, void>; + using dst_handle_type = typename dst_map_type::handle_type; + using dst_offset_type = typename dst_map_type::offset_type; + using src_offset_type = typename src_map_type::offset_type; dst = dst_map_type( dst_handle_type( @@ -1131,13 +1172,12 @@ tile_subview(const Kokkos::View< const size_t i_tile0, const size_t i_tile1) { // Force the specialized ViewMapping for extracting a tile // by using the first subview argument as the layout. - typedef + using array_layout = typename std::conditional<(InnerP == Kokkos::Iterate::Left), - Kokkos::LayoutLeft, Kokkos::LayoutRight>::type - array_layout; - typedef Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, N3, N4, - N5, N6, N7, true> - SrcLayout; + Kokkos::LayoutLeft, Kokkos::LayoutRight>::type; + using SrcLayout = + Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, N3, N4, N5, + N6, N7, true>; return Kokkos::View<T[N0][N1], array_layout, P...>(src, SrcLayout(), i_tile0, i_tile1); @@ -1160,13 +1200,12 @@ tile_subview(const Kokkos::View< const size_t i_tile0, const size_t i_tile1, const size_t i_tile2) { // Force the specialized ViewMapping for extracting a tile // by using the first subview argument as the layout. - typedef + using array_layout = typename std::conditional<(InnerP == Kokkos::Iterate::Left), - Kokkos::LayoutLeft, Kokkos::LayoutRight>::type - array_layout; - typedef Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, N3, N4, - N5, N6, N7, true> - SrcLayout; + Kokkos::LayoutLeft, Kokkos::LayoutRight>::type; + using SrcLayout = + Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, N3, N4, N5, + N6, N7, true>; return Kokkos::View<T[N0][N1][N2], array_layout, P...>( src, SrcLayout(), i_tile0, i_tile1, i_tile2); @@ -1190,13 +1229,12 @@ tile_subview(const Kokkos::View< const size_t i_tile3) { // Force the specialized ViewMapping for extracting a tile // by using the first subview argument as the layout. - typedef + using array_layout = typename std::conditional<(InnerP == Kokkos::Iterate::Left), - Kokkos::LayoutLeft, Kokkos::LayoutRight>::type - array_layout; - typedef Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, N3, N4, - N5, N6, N7, true> - SrcLayout; + Kokkos::LayoutLeft, Kokkos::LayoutRight>::type; + using SrcLayout = + Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, N3, N4, N5, + N6, N7, true>; return Kokkos::View<T[N0][N1][N2][N3], array_layout, P...>( src, SrcLayout(), i_tile0, i_tile1, i_tile2, i_tile3); @@ -1220,13 +1258,12 @@ tile_subview(const Kokkos::View< const size_t i_tile3, const size_t i_tile4) { // Force the specialized ViewMapping for extracting a tile // by using the first subview argument as the layout. - typedef + using array_layout = typename std::conditional<(InnerP == Kokkos::Iterate::Left), - Kokkos::LayoutLeft, Kokkos::LayoutRight>::type - array_layout; - typedef Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, N3, N4, - N5, N6, N7, true> - SrcLayout; + Kokkos::LayoutLeft, Kokkos::LayoutRight>::type; + using SrcLayout = + Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, N3, N4, N5, + N6, N7, true>; return Kokkos::View<T[N0][N1][N2][N3][N4], array_layout, P...>( src, SrcLayout(), i_tile0, i_tile1, i_tile2, i_tile3, i_tile4); @@ -1250,13 +1287,12 @@ tile_subview(const Kokkos::View< const size_t i_tile3, const size_t i_tile4, const size_t i_tile5) { // Force the specialized ViewMapping for extracting a tile // by using the first subview argument as the layout. - typedef + using array_layout = typename std::conditional<(InnerP == Kokkos::Iterate::Left), - Kokkos::LayoutLeft, Kokkos::LayoutRight>::type - array_layout; - typedef Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, N3, N4, - N5, N6, N7, true> - SrcLayout; + Kokkos::LayoutLeft, Kokkos::LayoutRight>::type; + using SrcLayout = + Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, N3, N4, N5, + N6, N7, true>; return Kokkos::View<T[N0][N1][N2][N3][N4][N5], array_layout, P...>( src, SrcLayout(), i_tile0, i_tile1, i_tile2, i_tile3, i_tile4, i_tile5); @@ -1281,13 +1317,12 @@ tile_subview(const Kokkos::View< const size_t i_tile6) { // Force the specialized ViewMapping for extracting a tile // by using the first subview argument as the layout. - typedef + using array_layout = typename std::conditional<(InnerP == Kokkos::Iterate::Left), - Kokkos::LayoutLeft, Kokkos::LayoutRight>::type - array_layout; - typedef Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, N3, N4, - N5, N6, N7, true> - SrcLayout; + Kokkos::LayoutLeft, Kokkos::LayoutRight>::type; + using SrcLayout = + Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, N3, N4, N5, + N6, N7, true>; return Kokkos::View<T[N0][N1][N2][N3][N4][N5][N6], array_layout, P...>( src, SrcLayout(), i_tile0, i_tile1, i_tile2, i_tile3, i_tile4, i_tile5, @@ -1313,13 +1348,12 @@ tile_subview(const Kokkos::View< const size_t i_tile6, const size_t i_tile7) { // Force the specialized ViewMapping for extracting a tile // by using the first subview argument as the layout. - typedef + using array_layout = typename std::conditional<(InnerP == Kokkos::Iterate::Left), - Kokkos::LayoutLeft, Kokkos::LayoutRight>::type - array_layout; - typedef Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, N3, N4, - N5, N6, N7, true> - SrcLayout; + Kokkos::LayoutLeft, Kokkos::LayoutRight>::type; + using SrcLayout = + Kokkos::Experimental::LayoutTiled<OuterP, InnerP, N0, N1, N2, N3, N4, N5, + N6, N7, true>; return Kokkos::View<T[N0][N1][N2][N3][N4][N5][N6][N7], array_layout, P...>( src, SrcLayout(), i_tile0, i_tile1, i_tile2, i_tile3, i_tile4, i_tile5, @@ -1327,7 +1361,6 @@ tile_subview(const Kokkos::View< } } /* namespace Kokkos */ -#endif //! defined(KOKKOS_ENABLE_DEPRECATED_CODE //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- diff --git a/packages/kokkos/core/src/impl/Kokkos_ViewMapping.hpp b/packages/kokkos/core/src/impl/Kokkos_ViewMapping.hpp index c8230169e..d72b80251 100644 --- a/packages/kokkos/core/src/impl/Kokkos_ViewMapping.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_ViewMapping.hpp @@ -54,11 +54,10 @@ #include <Kokkos_Extents.hpp> #include <impl/Kokkos_Error.hpp> #include <impl/Kokkos_Traits.hpp> +#include <impl/Kokkos_ViewTracker.hpp> #include <impl/Kokkos_ViewCtor.hpp> #include <impl/Kokkos_Atomic_View.hpp> -#if defined(KOKKOS_ENABLE_PROFILING) -#include <impl/Kokkos_Profiling_Interface.hpp> -#endif +#include <impl/Kokkos_Tools.hpp> //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- @@ -68,17 +67,17 @@ namespace Impl { template <unsigned I, size_t... Args> struct variadic_size_t { - enum { value = KOKKOS_INVALID_INDEX }; + enum : size_t { value = KOKKOS_INVALID_INDEX }; }; template <size_t Val, size_t... Args> struct variadic_size_t<0, Val, Args...> { - enum { value = Val }; + enum : size_t { value = Val }; }; template <unsigned I, size_t Val, size_t... Args> struct variadic_size_t<I, Val, Args...> { - enum { value = variadic_size_t<I - 1, Args...>::value }; + enum : size_t { value = variadic_size_t<I - 1, Args...>::value }; }; template <size_t... Args> @@ -86,33 +85,39 @@ struct rank_dynamic; template <> struct rank_dynamic<> { - enum { value = 0 }; + enum : unsigned { value = 0 }; }; template <size_t Val, size_t... Args> struct rank_dynamic<Val, Args...> { - enum { value = (Val == 0 ? 1 : 0) + rank_dynamic<Args...>::value }; + enum : unsigned { value = (Val == 0 ? 1 : 0) + rank_dynamic<Args...>::value }; }; #define KOKKOS_IMPL_VIEW_DIMENSION(R) \ template <size_t V, unsigned> \ struct ViewDimension##R { \ - enum { ArgN##R = (V != KOKKOS_INVALID_INDEX ? V : 1) }; \ - enum { N##R = (V != KOKKOS_INVALID_INDEX ? V : 1) }; \ + static constexpr size_t ArgN##R = (V != KOKKOS_INVALID_INDEX ? V : 1); \ + static constexpr size_t N##R = (V != KOKKOS_INVALID_INDEX ? V : 1); \ KOKKOS_INLINE_FUNCTION explicit ViewDimension##R(size_t) {} \ ViewDimension##R() = default; \ ViewDimension##R(const ViewDimension##R&) = default; \ ViewDimension##R& operator=(const ViewDimension##R&) = default; \ }; \ + template <size_t V, unsigned RD> \ + constexpr size_t ViewDimension##R<V, RD>::ArgN##R; \ + template <size_t V, unsigned RD> \ + constexpr size_t ViewDimension##R<V, RD>::N##R; \ template <unsigned RD> \ - struct ViewDimension##R<0, RD> { \ - enum { ArgN##R = 0 }; \ + struct ViewDimension##R<0u, RD> { \ + static constexpr size_t ArgN##R = 0; \ typename std::conditional<(RD < 3), size_t, unsigned>::type N##R; \ ViewDimension##R() = default; \ ViewDimension##R(const ViewDimension##R&) = default; \ ViewDimension##R& operator=(const ViewDimension##R&) = default; \ KOKKOS_INLINE_FUNCTION explicit ViewDimension##R(size_t V) : N##R(V) {} \ - }; + }; \ + template <unsigned RD> \ + constexpr size_t ViewDimension##R<0u, RD>::ArgN##R; KOKKOS_IMPL_VIEW_DIMENSION(0) KOKKOS_IMPL_VIEW_DIMENSION(1) @@ -125,47 +130,42 @@ KOKKOS_IMPL_VIEW_DIMENSION(7) #undef KOKKOS_IMPL_VIEW_DIMENSION +// MSVC does not do empty base class optimization by default. +// Per standard it is required for standard layout types template <size_t... Vals> -struct ViewDimension : public ViewDimension0<variadic_size_t<0, Vals...>::value, - rank_dynamic<Vals...>::value>, - public ViewDimension1<variadic_size_t<1, Vals...>::value, - rank_dynamic<Vals...>::value>, - public ViewDimension2<variadic_size_t<2, Vals...>::value, - rank_dynamic<Vals...>::value>, - public ViewDimension3<variadic_size_t<3, Vals...>::value, - rank_dynamic<Vals...>::value>, - public ViewDimension4<variadic_size_t<4, Vals...>::value, - rank_dynamic<Vals...>::value>, - public ViewDimension5<variadic_size_t<5, Vals...>::value, - rank_dynamic<Vals...>::value>, - public ViewDimension6<variadic_size_t<6, Vals...>::value, - rank_dynamic<Vals...>::value>, - public ViewDimension7<variadic_size_t<7, Vals...>::value, - rank_dynamic<Vals...>::value> { - typedef ViewDimension0<variadic_size_t<0, Vals...>::value, - rank_dynamic<Vals...>::value> - D0; - typedef ViewDimension1<variadic_size_t<1, Vals...>::value, - rank_dynamic<Vals...>::value> - D1; - typedef ViewDimension2<variadic_size_t<2, Vals...>::value, - rank_dynamic<Vals...>::value> - D2; - typedef ViewDimension3<variadic_size_t<3, Vals...>::value, - rank_dynamic<Vals...>::value> - D3; - typedef ViewDimension4<variadic_size_t<4, Vals...>::value, - rank_dynamic<Vals...>::value> - D4; - typedef ViewDimension5<variadic_size_t<5, Vals...>::value, - rank_dynamic<Vals...>::value> - D5; - typedef ViewDimension6<variadic_size_t<6, Vals...>::value, - rank_dynamic<Vals...>::value> - D6; - typedef ViewDimension7<variadic_size_t<7, Vals...>::value, - rank_dynamic<Vals...>::value> - D7; +struct KOKKOS_IMPL_ENFORCE_EMPTY_BASE_OPTIMIZATION ViewDimension + : public ViewDimension0<variadic_size_t<0u, Vals...>::value, + rank_dynamic<Vals...>::value>, + public ViewDimension1<variadic_size_t<1u, Vals...>::value, + rank_dynamic<Vals...>::value>, + public ViewDimension2<variadic_size_t<2u, Vals...>::value, + rank_dynamic<Vals...>::value>, + public ViewDimension3<variadic_size_t<3u, Vals...>::value, + rank_dynamic<Vals...>::value>, + public ViewDimension4<variadic_size_t<4u, Vals...>::value, + rank_dynamic<Vals...>::value>, + public ViewDimension5<variadic_size_t<5u, Vals...>::value, + rank_dynamic<Vals...>::value>, + public ViewDimension6<variadic_size_t<6u, Vals...>::value, + rank_dynamic<Vals...>::value>, + public ViewDimension7<variadic_size_t<7u, Vals...>::value, + rank_dynamic<Vals...>::value> { + using D0 = ViewDimension0<variadic_size_t<0U, Vals...>::value, + rank_dynamic<Vals...>::value>; + using D1 = ViewDimension1<variadic_size_t<1U, Vals...>::value, + rank_dynamic<Vals...>::value>; + using D2 = ViewDimension2<variadic_size_t<2U, Vals...>::value, + rank_dynamic<Vals...>::value>; + using D3 = ViewDimension3<variadic_size_t<3U, Vals...>::value, + rank_dynamic<Vals...>::value>; + using D4 = ViewDimension4<variadic_size_t<4U, Vals...>::value, + rank_dynamic<Vals...>::value>; + using D5 = ViewDimension5<variadic_size_t<5U, Vals...>::value, + rank_dynamic<Vals...>::value>; + using D6 = ViewDimension6<variadic_size_t<6U, Vals...>::value, + rank_dynamic<Vals...>::value>; + using D7 = ViewDimension7<variadic_size_t<7U, Vals...>::value, + rank_dynamic<Vals...>::value>; using D0::ArgN0; using D1::ArgN1; @@ -185,8 +185,8 @@ struct ViewDimension : public ViewDimension0<variadic_size_t<0, Vals...>::value, using D6::N6; using D7::N7; - enum { rank = sizeof...(Vals) }; - enum { rank_dynamic = Impl::rank_dynamic<Vals...>::value }; + enum : unsigned { rank = sizeof...(Vals) }; + enum : unsigned { rank_dynamic = Impl::rank_dynamic<Vals...>::value }; ViewDimension() = default; ViewDimension(const ViewDimension&) = default; @@ -239,12 +239,12 @@ struct ViewDimension : public ViewDimension0<variadic_size_t<0, Vals...>::value, template <size_t N> struct prepend { - typedef ViewDimension<N, Vals...> type; + using type = ViewDimension<N, Vals...>; }; template <size_t N> struct append { - typedef ViewDimension<Vals..., N> type; + using type = ViewDimension<Vals..., N>; }; }; @@ -253,7 +253,7 @@ struct ViewDimensionJoin; template <size_t... A, size_t... B> struct ViewDimensionJoin<ViewDimension<A...>, ViewDimension<B...>> { - typedef ViewDimension<A..., B...> type; + using type = ViewDimension<A..., B...>; }; //---------------------------------------------------------------------------- @@ -264,8 +264,8 @@ struct ViewDimensionAssignable; template <size_t... DstArgs, size_t... SrcArgs> struct ViewDimensionAssignable<ViewDimension<DstArgs...>, ViewDimension<SrcArgs...>> { - typedef ViewDimension<DstArgs...> dst; - typedef ViewDimension<SrcArgs...> src; + using dst = ViewDimension<DstArgs...>; + using src = ViewDimension<SrcArgs...>; enum { value = unsigned(dst::rank) == unsigned(src::rank) && @@ -323,32 +323,32 @@ namespace Impl { template <class T> struct is_integral_extent_type { - enum { value = std::is_same<T, Kokkos::Impl::ALL_t>::value ? 1 : 0 }; + enum : bool { value = std::is_same<T, Kokkos::Impl::ALL_t>::value ? 1 : 0 }; }; template <class iType> struct is_integral_extent_type<std::pair<iType, iType>> { - enum { value = std::is_integral<iType>::value ? 1 : 0 }; + enum : bool { value = std::is_integral<iType>::value ? 1 : 0 }; }; template <class iType> struct is_integral_extent_type<Kokkos::pair<iType, iType>> { - enum { value = std::is_integral<iType>::value ? 1 : 0 }; + enum : bool { value = std::is_integral<iType>::value ? 1 : 0 }; }; // Assuming '2 == initializer_list<iType>::size()' template <class iType> struct is_integral_extent_type<std::initializer_list<iType>> { - enum { value = std::is_integral<iType>::value ? 1 : 0 }; + enum : bool { value = std::is_integral<iType>::value ? 1 : 0 }; }; template <unsigned I, class... Args> struct is_integral_extent { // get_type is void when sizeof...(Args) <= I - typedef typename std::remove_cv<typename std::remove_reference< - typename Kokkos::Impl::get_type<I, Args...>::type>::type>::type type; + using type = typename std::remove_cv<typename std::remove_reference< + typename Kokkos::Impl::get_type<I, Args...>::type>::type>::type; - enum { value = is_integral_extent_type<type>::value }; + enum : bool { value = is_integral_extent_type<type>::value }; static_assert(value || std::is_integral<type>::value || std::is_same<type, void>::value, @@ -426,21 +426,21 @@ template <int RankDest, int RankSrc, int CurrentArg, class... SubViewArgs> struct SubviewLegalArgsCompileTime<Kokkos::LayoutStride, Kokkos::LayoutLeft, RankDest, RankSrc, CurrentArg, SubViewArgs...> { - enum { value = true }; + enum : bool { value = true }; }; template <int RankDest, int RankSrc, int CurrentArg, class... SubViewArgs> struct SubviewLegalArgsCompileTime<Kokkos::LayoutStride, Kokkos::LayoutRight, RankDest, RankSrc, CurrentArg, SubViewArgs...> { - enum { value = true }; + enum : bool { value = true }; }; template <int RankDest, int RankSrc, int CurrentArg, class... SubViewArgs> struct SubviewLegalArgsCompileTime<Kokkos::LayoutStride, Kokkos::LayoutStride, RankDest, RankSrc, CurrentArg, SubViewArgs...> { - enum { value = true }; + enum : bool { value = true }; }; template <unsigned DomainRank, unsigned RangeRank> @@ -731,17 +731,17 @@ struct ViewDataType; template <class T> struct ViewDataType<T, ViewDimension<>> { - typedef T type; + using type = T; }; template <class T, size_t... Args> struct ViewDataType<T, ViewDimension<0, Args...>> { - typedef typename ViewDataType<T*, ViewDimension<Args...>>::type type; + using type = typename ViewDataType<T*, ViewDimension<Args...>>::type; }; template <class T, size_t N, size_t... Args> struct ViewDataType<T, ViewDimension<N, Args...>> { - typedef typename ViewDataType<T, ViewDimension<Args...>>::type type[N]; + using type = typename ViewDataType<T, ViewDimension<Args...>>::type[N]; }; /**\brief Analysis of View data type. @@ -751,80 +751,80 @@ struct ViewDataType<T, ViewDimension<N, Args...>> { * {const} value_type ***[#][#][#] * Where the sum of counts of '*' and '[#]' is at most ten. * - * Provide typedef for the ViewDimension<...> and value_type. + * Provide alias for ViewDimension<...> and value_type. */ template <class T> struct ViewArrayAnalysis { - typedef T value_type; - typedef typename std::add_const<T>::type const_value_type; - typedef typename std::remove_const<T>::type non_const_value_type; - typedef ViewDimension<> static_dimension; - typedef ViewDimension<> dynamic_dimension; - typedef ViewDimension<> dimension; + using value_type = T; + using const_value_type = typename std::add_const<T>::type; + using non_const_value_type = typename std::remove_const<T>::type; + using static_dimension = ViewDimension<>; + using dynamic_dimension = ViewDimension<>; + using dimension = ViewDimension<>; }; template <class T, size_t N> struct ViewArrayAnalysis<T[N]> { private: - typedef ViewArrayAnalysis<T> nested; + using nested = ViewArrayAnalysis<T>; public: - typedef typename nested::value_type value_type; - typedef typename nested::const_value_type const_value_type; - typedef typename nested::non_const_value_type non_const_value_type; + using value_type = typename nested::value_type; + using const_value_type = typename nested::const_value_type; + using non_const_value_type = typename nested::non_const_value_type; - typedef typename nested::static_dimension::template prepend<N>::type - static_dimension; + using static_dimension = + typename nested::static_dimension::template prepend<N>::type; - typedef typename nested::dynamic_dimension dynamic_dimension; + using dynamic_dimension = typename nested::dynamic_dimension; - typedef typename ViewDimensionJoin<dynamic_dimension, static_dimension>::type - dimension; + using dimension = + typename ViewDimensionJoin<dynamic_dimension, static_dimension>::type; }; template <class T> struct ViewArrayAnalysis<T[]> { private: - typedef ViewArrayAnalysis<T> nested; - typedef typename nested::dimension nested_dimension; + using nested = ViewArrayAnalysis<T>; + using nested_dimension = typename nested::dimension; public: - typedef typename nested::value_type value_type; - typedef typename nested::const_value_type const_value_type; - typedef typename nested::non_const_value_type non_const_value_type; + using value_type = typename nested::value_type; + using const_value_type = typename nested::const_value_type; + using non_const_value_type = typename nested::non_const_value_type; - typedef typename nested::dynamic_dimension::template prepend<0>::type - dynamic_dimension; + using dynamic_dimension = + typename nested::dynamic_dimension::template prepend<0>::type; - typedef typename nested::static_dimension static_dimension; + using static_dimension = typename nested::static_dimension; - typedef typename ViewDimensionJoin<dynamic_dimension, static_dimension>::type - dimension; + using dimension = + typename ViewDimensionJoin<dynamic_dimension, static_dimension>::type; }; template <class T> struct ViewArrayAnalysis<T*> { private: - typedef ViewArrayAnalysis<T> nested; + using nested = ViewArrayAnalysis<T>; public: - typedef typename nested::value_type value_type; - typedef typename nested::const_value_type const_value_type; - typedef typename nested::non_const_value_type non_const_value_type; + using value_type = typename nested::value_type; + using const_value_type = typename nested::const_value_type; + using non_const_value_type = typename nested::non_const_value_type; - typedef typename nested::dynamic_dimension::template prepend<0>::type - dynamic_dimension; + using dynamic_dimension = + typename nested::dynamic_dimension::template prepend<0>::type; - typedef typename nested::static_dimension static_dimension; + using static_dimension = typename nested::static_dimension; - typedef typename ViewDimensionJoin<dynamic_dimension, static_dimension>::type - dimension; + using dimension = + typename ViewDimensionJoin<dynamic_dimension, static_dimension>::type; }; template <class DataType, class ArrayLayout, class ValueType> struct ViewDataAnalysis { private: - typedef ViewArrayAnalysis<DataType> array_analysis; + using array_analysis = ViewArrayAnalysis<DataType>; // ValueType is opportunity for partial specialization. // Must match array analysis when this default template is used. @@ -834,23 +834,23 @@ struct ViewDataAnalysis { ""); public: - typedef void specialize; // No specialization + using specialize = void; // No specialization - typedef typename array_analysis::dimension dimension; - typedef typename array_analysis::value_type value_type; - typedef typename array_analysis::const_value_type const_value_type; - typedef typename array_analysis::non_const_value_type non_const_value_type; + using dimension = typename array_analysis::dimension; + using value_type = typename array_analysis::value_type; + using const_value_type = typename array_analysis::const_value_type; + using non_const_value_type = typename array_analysis::non_const_value_type; // Generate analogous multidimensional array specification type. - typedef typename ViewDataType<value_type, dimension>::type type; - typedef typename ViewDataType<const_value_type, dimension>::type const_type; - typedef typename ViewDataType<non_const_value_type, dimension>::type - non_const_type; + using type = typename ViewDataType<value_type, dimension>::type; + using const_type = typename ViewDataType<const_value_type, dimension>::type; + using non_const_type = + typename ViewDataType<non_const_value_type, dimension>::type; // Generate "flattened" multidimensional array specification type. - typedef type scalar_array_type; - typedef const_type const_scalar_array_type; - typedef non_const_type non_const_scalar_array_type; + using scalar_array_type = type; + using const_scalar_array_type = const_type; + using non_const_scalar_array_type = non_const_type; }; } // namespace Impl @@ -877,9 +877,9 @@ struct ViewOffset< using is_mapping_plugin = std::true_type; using is_regular = std::true_type; - typedef size_t size_type; - typedef Dimension dimension_type; - typedef Kokkos::LayoutLeft array_layout; + using size_type = size_t; + using dimension_type = Dimension; + using array_layout = Kokkos::LayoutLeft; dimension_type m_dim; @@ -1080,9 +1080,21 @@ struct ViewOffset< //---------------------------------------- + // MSVC (16.5.5) + CUDA (10.2) did not generate the defaulted functions + // correct and errors out during compilation. Same for the other places where + // I changed this. +#ifdef KOKKOS_IMPL_WINDOWS_CUDA + KOKKOS_FUNCTION ViewOffset() : m_dim(dimension_type()) {} + KOKKOS_FUNCTION ViewOffset(const ViewOffset& src) { m_dim = src.m_dim; } + KOKKOS_FUNCTION ViewOffset& operator=(const ViewOffset& src) { + m_dim = src.m_dim; + return *this; + } +#else ViewOffset() = default; ViewOffset(const ViewOffset&) = default; ViewOffset& operator=(const ViewOffset&) = default; +#endif template <unsigned TrivialScalarSize> KOKKOS_INLINE_FUNCTION constexpr ViewOffset( @@ -1147,9 +1159,9 @@ struct ViewOffset< using is_mapping_plugin = std::true_type; using is_regular = std::true_type; - typedef size_t size_type; - typedef Dimension dimension_type; - typedef Kokkos::LayoutLeft array_layout; + using size_type = size_t; + using dimension_type = Dimension; + using array_layout = Kokkos::LayoutLeft; dimension_type m_dim; size_type m_stride; @@ -1385,9 +1397,26 @@ struct ViewOffset< }; public: + // MSVC (16.5.5) + CUDA (10.2) did not generate the defaulted functions + // correct and errors out during compilation. Same for the other places where + // I changed this. +#ifdef KOKKOS_IMPL_WINDOWS_CUDA + KOKKOS_FUNCTION ViewOffset() : m_dim(dimension_type()), m_stride(0) {} + KOKKOS_FUNCTION ViewOffset(const ViewOffset& src) { + m_dim = src.m_dim; + m_stride = src.m_stride; + } + KOKKOS_FUNCTION ViewOffset& operator=(const ViewOffset& src) { + m_dim = src.m_dim; + m_stride = src.m_stride; + return *this; + } +#else + ViewOffset() = default; ViewOffset(const ViewOffset&) = default; ViewOffset& operator=(const ViewOffset&) = default; +#endif /* Enable padding for trivial scalar types with non-zero trivial scalar size */ @@ -1473,9 +1502,9 @@ struct ViewOffset< using is_mapping_plugin = std::true_type; using is_regular = std::true_type; - typedef size_t size_type; - typedef Dimension dimension_type; - typedef Kokkos::LayoutRight array_layout; + using size_type = size_t; + using dimension_type = Dimension; + using array_layout = Kokkos::LayoutRight; dimension_type m_dim; @@ -1685,10 +1714,23 @@ struct ViewOffset< } //---------------------------------------- + // MSVC (16.5.5) + CUDA (10.2) did not generate the defaulted functions + // correct and errors out during compilation. Same for the other places where + // I changed this. + +#ifdef KOKKOS_IMPL_WINDOWS_CUDA + KOKKOS_FUNCTION ViewOffset() : m_dim(dimension_type()) {} + KOKKOS_FUNCTION ViewOffset(const ViewOffset& src) { m_dim = src.m_dim; } + KOKKOS_FUNCTION ViewOffset& operator=(const ViewOffset& src) { + m_dim = src.m_dim; + return *this; + } +#else ViewOffset() = default; ViewOffset(const ViewOffset&) = default; ViewOffset& operator=(const ViewOffset&) = default; +#endif template <unsigned TrivialScalarSize> KOKKOS_INLINE_FUNCTION constexpr ViewOffset( @@ -1747,9 +1789,9 @@ struct ViewOffset< using is_mapping_plugin = std::true_type; using is_regular = std::true_type; - typedef size_t size_type; - typedef Dimension dimension_type; - typedef Kokkos::LayoutRight array_layout; + using size_type = size_t; + using dimension_type = Dimension; + using array_layout = Kokkos::LayoutRight; dimension_type m_dim; size_type m_stride; @@ -1988,9 +2030,27 @@ struct ViewOffset< }; public: + // MSVC (16.5.5) + CUDA (10.2) did not generate the defaulted functions + // correct and errors out during compilation. Same for the other places where + // I changed this. + +#ifdef KOKKOS_IMPL_WINDOWS_CUDA + KOKKOS_FUNCTION ViewOffset() : m_dim(dimension_type()), m_stride(0) {} + KOKKOS_FUNCTION ViewOffset(const ViewOffset& src) { + m_dim = src.m_dim; + m_stride = src.m_stride; + } + KOKKOS_FUNCTION ViewOffset& operator=(const ViewOffset& src) { + m_dim = src.m_dim; + m_stride = src.m_stride; + return *this; + } +#else + ViewOffset() = default; ViewOffset(const ViewOffset&) = default; ViewOffset& operator=(const ViewOffset&) = default; +#endif /* Enable padding for trivial scalar types with non-zero trivial scalar size. */ @@ -2259,15 +2319,15 @@ struct ViewStride<8> { template <class Dimension> struct ViewOffset<Dimension, Kokkos::LayoutStride, void> { private: - typedef ViewStride<Dimension::rank> stride_type; + using stride_type = ViewStride<Dimension::rank>; public: using is_mapping_plugin = std::true_type; using is_regular = std::true_type; - typedef size_t size_type; - typedef Dimension dimension_type; - typedef Kokkos::LayoutStride array_layout; + using size_type = size_t; + using dimension_type = Dimension; + using array_layout = Kokkos::LayoutStride; dimension_type m_dim; stride_type m_stride; @@ -2473,10 +2533,28 @@ struct ViewOffset<Dimension, Kokkos::LayoutStride, void> { } //---------------------------------------- + // MSVC (16.5.5) + CUDA (10.2) did not generate the defaulted functions + // correct and errors out during compilation. Same for the other places where + // I changed this. + +#ifdef KOKKOS_IMPL_WINDOWS_CUDA + KOKKOS_FUNCTION ViewOffset() + : m_dim(dimension_type()), m_stride(stride_type()) {} + KOKKOS_FUNCTION ViewOffset(const ViewOffset& src) { + m_dim = src.m_dim; + m_stride = src.m_stride; + } + KOKKOS_FUNCTION ViewOffset& operator=(const ViewOffset& src) { + m_dim = src.m_dim; + m_stride = src.m_stride; + return *this; + } +#else ViewOffset() = default; ViewOffset(const ViewOffset&) = default; ViewOffset& operator=(const ViewOffset&) = default; +#endif KOKKOS_INLINE_FUNCTION constexpr ViewOffset(std::integral_constant<unsigned, 0> const&, @@ -2568,10 +2646,10 @@ namespace Impl { */ template <class Traits, class Enable = void> struct ViewDataHandle { - typedef typename Traits::value_type value_type; - typedef typename Traits::value_type* handle_type; - typedef typename Traits::value_type& return_type; - typedef Kokkos::Impl::SharedAllocationTracker track_type; + using value_type = typename Traits::value_type; + using handle_type = typename Traits::value_type*; + using return_type = typename Traits::value_type&; + using track_type = Kokkos::Impl::SharedAllocationTracker; KOKKOS_INLINE_FUNCTION static handle_type assign(value_type* arg_data_ptr, @@ -2592,10 +2670,10 @@ struct ViewDataHandle< typename Traits::value_type>::value && std::is_same<typename Traits::specialize, void>::value && Traits::memory_traits::is_atomic)>::type> { - typedef typename Traits::value_type value_type; - typedef typename Kokkos::Impl::AtomicViewDataHandle<Traits> handle_type; - typedef typename Kokkos::Impl::AtomicDataElement<Traits> return_type; - typedef Kokkos::Impl::SharedAllocationTracker track_type; + using value_type = typename Traits::value_type; + using handle_type = typename Kokkos::Impl::AtomicViewDataHandle<Traits>; + using return_type = typename Kokkos::Impl::AtomicDataElement<Traits>; + using track_type = Kokkos::Impl::SharedAllocationTracker; KOKKOS_INLINE_FUNCTION static handle_type assign(value_type* arg_data_ptr, @@ -2623,10 +2701,10 @@ struct ViewDataHandle< Kokkos::CudaUVMSpace>::value)) #endif && (!Traits::memory_traits::is_atomic))>::type> { - typedef typename Traits::value_type value_type; - typedef typename Traits::value_type* KOKKOS_RESTRICT handle_type; - typedef typename Traits::value_type& KOKKOS_RESTRICT return_type; - typedef Kokkos::Impl::SharedAllocationTracker track_type; + using value_type = typename Traits::value_type; + using handle_type = typename Traits::value_type* KOKKOS_RESTRICT; + using return_type = typename Traits::value_type& KOKKOS_RESTRICT; + using track_type = Kokkos::Impl::SharedAllocationTracker; KOKKOS_INLINE_FUNCTION static value_type* assign(value_type* arg_data_ptr, @@ -2653,11 +2731,14 @@ struct ViewDataHandle< Kokkos::CudaUVMSpace>::value)) #endif && (!Traits::memory_traits::is_atomic))>::type> { - typedef typename Traits::value_type value_type; - typedef typename Traits::value_type* KOKKOS_IMPL_ALIGN_PTR( - KOKKOS_MEMORY_ALIGNMENT) handle_type; - typedef typename Traits::value_type& return_type; - typedef Kokkos::Impl::SharedAllocationTracker track_type; + using value_type = typename Traits::value_type; + // typedef work-around for intel compilers error #3186: expected typedef + // declaration + // NOLINTNEXTLINE(modernize-use-using) + typedef value_type* KOKKOS_IMPL_ALIGN_PTR(KOKKOS_MEMORY_ALIGNMENT) + handle_type; + using return_type = typename Traits::value_type&; + using track_type = Kokkos::Impl::SharedAllocationTracker; KOKKOS_INLINE_FUNCTION static handle_type assign(value_type* arg_data_ptr, @@ -2695,11 +2776,14 @@ struct ViewDataHandle< Kokkos::CudaUVMSpace>::value)) #endif && (!Traits::memory_traits::is_atomic))>::type> { - typedef typename Traits::value_type value_type; - typedef typename Traits::value_type* KOKKOS_RESTRICT - KOKKOS_IMPL_ALIGN_PTR(KOKKOS_MEMORY_ALIGNMENT) handle_type; - typedef typename Traits::value_type& return_type; - typedef Kokkos::Impl::SharedAllocationTracker track_type; + using value_type = typename Traits::value_type; + // typedef work-around for intel compilers error #3186: expected typedef + // declaration + // NOLINTNEXTLINE(modernize-use-using) + typedef value_type* KOKKOS_IMPL_ALIGN_PTR(KOKKOS_MEMORY_ALIGNMENT) + handle_type; + using return_type = typename Traits::value_type& KOKKOS_RESTRICT; + using track_type = Kokkos::Impl::SharedAllocationTracker; KOKKOS_INLINE_FUNCTION static value_type* assign(value_type* arg_data_ptr, @@ -2748,13 +2832,14 @@ struct ViewValueFunctor; template <class ExecSpace, class ValueType> struct ViewValueFunctor<ExecSpace, ValueType, false /* is_scalar */> { - typedef Kokkos::RangePolicy<ExecSpace, Kokkos::IndexType<int64_t>> PolicyType; - typedef typename ExecSpace::execution_space Exec; + using PolicyType = Kokkos::RangePolicy<ExecSpace, Kokkos::IndexType<int64_t>>; + using Exec = typename ExecSpace::execution_space; Exec space; ValueType* ptr; size_t n; bool destroy; + std::string name; KOKKOS_INLINE_FUNCTION void operator()(const size_t i) const { @@ -2772,21 +2857,26 @@ struct ViewValueFunctor<ExecSpace, ValueType, false /* is_scalar */> { ViewValueFunctor& operator=(const ViewValueFunctor&) = default; ViewValueFunctor(ExecSpace const& arg_space, ValueType* const arg_ptr, - size_t const arg_n) - : space(arg_space), ptr(arg_ptr), n(arg_n), destroy(false) {} + size_t const arg_n, std::string arg_name) + : space(arg_space), + ptr(arg_ptr), + n(arg_n), + destroy(false), + name(std::move(arg_name)) {} void execute(bool arg) { destroy = arg; + PolicyType policy(0, n); + std::string functor_name; if (!space.in_parallel()) { -#if defined(KOKKOS_ENABLE_PROFILING) uint64_t kpID = 0; if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::beginParallelFor( - (destroy ? "Kokkos::View::destruction" - : "Kokkos::View::initialization"), - 0, &kpID); + functor_name = + (destroy ? "Kokkos::View::destruction [" + name + "]" + : "Kokkos::View::initialization [" + name + "]"); + Kokkos::Tools::Impl::begin_parallel_for(policy, *this, functor_name, + kpID); } -#endif #ifdef KOKKOS_ENABLE_CUDA if (std::is_same<ExecSpace, Kokkos::Cuda>::value) { Kokkos::Impl::cuda_prefetch_pointer(space, ptr, sizeof(ValueType) * n, @@ -2794,14 +2884,13 @@ struct ViewValueFunctor<ExecSpace, ValueType, false /* is_scalar */> { } #endif const Kokkos::Impl::ParallelFor<ViewValueFunctor, PolicyType> closure( - *this, PolicyType(0, n)); + *this, policy); closure.execute(); space.fence(); -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::endParallelFor(kpID); + Kokkos::Tools::Impl::end_parallel_for(policy, *this, functor_name, + kpID); } -#endif } else { for (size_t i = 0; i < n; ++i) operator()(i); } @@ -2814,11 +2903,12 @@ struct ViewValueFunctor<ExecSpace, ValueType, false /* is_scalar */> { template <class ExecSpace, class ValueType> struct ViewValueFunctor<ExecSpace, ValueType, true /* is_scalar */> { - typedef Kokkos::RangePolicy<ExecSpace, Kokkos::IndexType<int64_t>> PolicyType; + using PolicyType = Kokkos::RangePolicy<ExecSpace, Kokkos::IndexType<int64_t>>; ExecSpace space; ValueType* ptr; size_t n; + std::string name; KOKKOS_INLINE_FUNCTION void operator()(const size_t i) const { ptr[i] = ValueType(); } @@ -2828,18 +2918,16 @@ struct ViewValueFunctor<ExecSpace, ValueType, true /* is_scalar */> { ViewValueFunctor& operator=(const ViewValueFunctor&) = default; ViewValueFunctor(ExecSpace const& arg_space, ValueType* const arg_ptr, - size_t const arg_n) - : space(arg_space), ptr(arg_ptr), n(arg_n) {} + size_t const arg_n, std::string arg_name) + : space(arg_space), ptr(arg_ptr), n(arg_n), name(std::move(arg_name)) {} void construct_shared_allocation() { if (!space.in_parallel()) { -#if defined(KOKKOS_ENABLE_PROFILING) uint64_t kpID = 0; if (Kokkos::Profiling::profileLibraryLoaded()) { - Kokkos::Profiling::beginParallelFor("Kokkos::View::initialization", 0, - &kpID); + Kokkos::Profiling::beginParallelFor( + "Kokkos::View::initialization [" + name + "]", 0, &kpID); } -#endif #ifdef KOKKOS_ENABLE_CUDA if (std::is_same<ExecSpace, Kokkos::Cuda>::value) { Kokkos::Impl::cuda_prefetch_pointer(space, ptr, sizeof(ValueType) * n, @@ -2850,11 +2938,9 @@ struct ViewValueFunctor<ExecSpace, ValueType, true /* is_scalar */> { *this, PolicyType(0, n)); closure.execute(); space.fence(); -#if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::endParallelFor(kpID); } -#endif } else { for (size_t i = 0; i < n; ++i) operator()(i); } @@ -2873,11 +2959,10 @@ class ViewMapping< ViewOffset<typename Traits::dimension, typename Traits::array_layout, void>::is_mapping_plugin::value)>::type> { public: - typedef ViewOffset<typename Traits::dimension, typename Traits::array_layout, - void> - offset_type; + using offset_type = ViewOffset<typename Traits::dimension, + typename Traits::array_layout, void>; - typedef typename ViewDataHandle<Traits>::handle_type handle_type; + using handle_type = typename ViewDataHandle<Traits>::handle_type; handle_type m_impl_handle; offset_type m_impl_offset; @@ -2891,7 +2976,7 @@ class ViewMapping< : m_impl_handle(arg_handle), m_impl_offset(arg_offset) {} public: - typedef void printable_label_typedef; + using printable_label_typedef = void; enum { is_managed = Traits::is_managed }; //---------------------------------------- @@ -2986,8 +3071,8 @@ class ViewMapping< return m_impl_offset.span_is_contiguous(); } - typedef typename ViewDataHandle<Traits>::return_type reference_type; - typedef typename Traits::value_type* pointer_type; + using reference_type = typename ViewDataHandle<Traits>::return_type; + using pointer_type = typename Traits::value_type*; /** \brief Query raw pointer to memory */ KOKKOS_INLINE_FUNCTION constexpr pointer_type data() const { @@ -3003,9 +3088,12 @@ class ViewMapping< template <typename I0> KOKKOS_FORCEINLINE_FUNCTION - typename std::enable_if<std::is_integral<I0>::value && - !std::is_same<typename Traits::array_layout, - Kokkos::LayoutStride>::value, + typename std::enable_if<(std::is_integral<I0>::value && + // if layout is neither stride nor irregular, + // then just use the handle directly + !(std::is_same<typename Traits::array_layout, + Kokkos::LayoutStride>::value || + !is_regular::value)), reference_type>::type reference(const I0& i0) const { return m_impl_handle[i0]; @@ -3013,9 +3101,12 @@ class ViewMapping< template <typename I0> KOKKOS_FORCEINLINE_FUNCTION - typename std::enable_if<std::is_integral<I0>::value && - std::is_same<typename Traits::array_layout, - Kokkos::LayoutStride>::value, + typename std::enable_if<(std::is_integral<I0>::value && + // if the layout is strided or irregular, then + // we have to use the offset + (std::is_same<typename Traits::array_layout, + Kokkos::LayoutStride>::value || + !is_regular::value)), reference_type>::type reference(const I0& i0) const { return m_impl_handle[m_impl_offset(i0)]; @@ -3091,21 +3182,13 @@ class ViewMapping< KOKKOS_DEFAULTED_FUNCTION ~ViewMapping() = default; KOKKOS_INLINE_FUNCTION ViewMapping() : m_impl_handle(), m_impl_offset() {} - KOKKOS_INLINE_FUNCTION ViewMapping(const ViewMapping& rhs) - : m_impl_handle(rhs.m_impl_handle), m_impl_offset(rhs.m_impl_offset) {} - KOKKOS_INLINE_FUNCTION ViewMapping& operator=(const ViewMapping& rhs) { - m_impl_handle = rhs.m_impl_handle; - m_impl_offset = rhs.m_impl_offset; - return *this; - } - KOKKOS_INLINE_FUNCTION ViewMapping(ViewMapping&& rhs) - : m_impl_handle(rhs.m_impl_handle), m_impl_offset(rhs.m_impl_offset) {} - KOKKOS_INLINE_FUNCTION ViewMapping& operator=(ViewMapping&& rhs) { - m_impl_handle = rhs.m_impl_handle; - m_impl_offset = rhs.m_impl_offset; - return *this; - } + KOKKOS_DEFAULTED_FUNCTION ViewMapping(const ViewMapping&) = default; + KOKKOS_DEFAULTED_FUNCTION ViewMapping& operator=(const ViewMapping&) = + default; + + KOKKOS_DEFAULTED_FUNCTION ViewMapping(ViewMapping&&) = default; + KOKKOS_DEFAULTED_FUNCTION ViewMapping& operator=(ViewMapping&&) = default; //---------------------------------------- @@ -3113,7 +3196,7 @@ class ViewMapping< KOKKOS_INLINE_FUNCTION static constexpr size_t memory_span( typename Traits::array_layout const& arg_layout) { - typedef std::integral_constant<unsigned, 0> padding; + using padding = std::integral_constant<unsigned int, 0>; return (offset_type(padding(), arg_layout).span() * MemorySpanSize + MemorySpanMask) & ~size_t(MemorySpanMask); @@ -3144,43 +3227,39 @@ class ViewMapping< Kokkos::Impl::SharedAllocationRecord<>* allocate_shared( Kokkos::Impl::ViewCtorProp<P...> const& arg_prop, typename Traits::array_layout const& arg_layout) { - typedef Kokkos::Impl::ViewCtorProp<P...> alloc_prop; + using alloc_prop = Kokkos::Impl::ViewCtorProp<P...>; - typedef typename alloc_prop::execution_space execution_space; - typedef typename Traits::memory_space memory_space; - typedef typename Traits::value_type value_type; - typedef ViewValueFunctor<execution_space, value_type> functor_type; - typedef Kokkos::Impl::SharedAllocationRecord<memory_space, functor_type> - record_type; + using execution_space = typename alloc_prop::execution_space; + using memory_space = typename Traits::memory_space; + using value_type = typename Traits::value_type; + using functor_type = ViewValueFunctor<execution_space, value_type>; + using record_type = + Kokkos::Impl::SharedAllocationRecord<memory_space, functor_type>; // Query the mapping for byte-size of allocation. // If padding is allowed then pass in sizeof value type // for padding computation. - typedef std::integral_constant< - unsigned, alloc_prop::allow_padding ? sizeof(value_type) : 0> - padding; + using padding = std::integral_constant< + unsigned int, alloc_prop::allow_padding ? sizeof(value_type) : 0>; m_impl_offset = offset_type(padding(), arg_layout); const size_t alloc_size = (m_impl_offset.span() * MemorySpanSize + MemorySpanMask) & ~size_t(MemorySpanMask); - + const std::string& alloc_name = + static_cast<Kokkos::Impl::ViewCtorProp<void, std::string> const&>( + arg_prop) + .value; // Create shared memory tracking record with allocate memory from the memory // space record_type* const record = record_type::allocate( - ((Kokkos::Impl::ViewCtorProp<void, memory_space> const&)arg_prop).value, - ((Kokkos::Impl::ViewCtorProp<void, std::string> const&)arg_prop).value, - alloc_size); + static_cast<Kokkos::Impl::ViewCtorProp<void, memory_space> const&>( + arg_prop) + .value, + alloc_name, alloc_size); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - if (alloc_size) { -#endif - m_impl_handle = - handle_type(reinterpret_cast<pointer_type>(record->data())); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - } -#endif + m_impl_handle = handle_type(reinterpret_cast<pointer_type>(record->data())); // Only initialize if the allocation is non-zero. // May be zero if one of the dimensions is zero. @@ -3189,9 +3268,10 @@ class ViewMapping< // The ViewValueFunctor has both value construction and destruction // operators. record->m_destroy = functor_type( - ((Kokkos::Impl::ViewCtorProp<void, execution_space> const&)arg_prop) + static_cast<Kokkos::Impl::ViewCtorProp<void, execution_space> const&>( + arg_prop) .value, - (value_type*)m_impl_handle, m_impl_offset.span()); + (value_type*)m_impl_handle, m_impl_offset.span(), alloc_name); // Construct values record->m_destroy.construct_shared_allocation(); @@ -3281,9 +3361,9 @@ class ViewMapping< is_assignable_dimension && is_assignable_layout }; - typedef Kokkos::Impl::SharedAllocationTracker TrackType; - typedef ViewMapping<DstTraits, void> DstType; - typedef ViewMapping<SrcTraits, void> SrcType; + using TrackType = Kokkos::Impl::SharedAllocationTracker; + using DstType = ViewMapping<DstTraits, void>; + using SrcType = ViewMapping<SrcTraits, void>; KOKKOS_INLINE_FUNCTION static void assign(DstType& dst, const SrcType& src, @@ -3302,11 +3382,11 @@ class ViewMapping< is_assignable_layout, "View assignment must have compatible layout or have rank <= 1"); - typedef typename DstType::offset_type dst_offset_type; + using dst_offset_type = typename DstType::offset_type; if (size_t(DstTraits::dimension::rank_dynamic) < size_t(SrcTraits::dimension::rank_dynamic)) { - typedef typename DstTraits::dimension dst_dim; + using dst_dim = typename DstTraits::dimension; bool assignable = ((1 > DstTraits::dimension::rank_dynamic && 1 <= SrcTraits::dimension::rank_dynamic) ? dst_dim::ArgN0 == src.dimension_0() @@ -3403,9 +3483,9 @@ class ViewMapping< is_assignable_dimension }; - typedef Kokkos::Impl::SharedAllocationTracker TrackType; - typedef ViewMapping<DstTraits, void> DstType; - typedef ViewMapping<SrcTraits, void> SrcType; + using TrackType = Kokkos::Impl::SharedAllocationTracker; + using DstType = ViewMapping<DstTraits, void>; + using SrcType = ViewMapping<SrcTraits, void>; KOKKOS_INLINE_FUNCTION static bool assignable_layout_check(DstType&, @@ -3455,11 +3535,11 @@ class ViewMapping< if (!assignable_layout) Kokkos::abort("View assignment must have compatible layouts\n"); - typedef typename DstType::offset_type dst_offset_type; + using dst_offset_type = typename DstType::offset_type; if (size_t(DstTraits::dimension::rank_dynamic) < size_t(SrcTraits::dimension::rank_dynamic)) { - typedef typename DstTraits::dimension dst_dim; + using dst_dim = typename DstTraits::dimension; bool assignable = ((1 > DstTraits::dimension::rank_dynamic && 1 <= SrcTraits::dimension::rank_dynamic) ? dst_dim::ArgN0 == src.dimension_0() @@ -3554,7 +3634,7 @@ struct SubViewDataType : SubViewDataTypeImpl<void, ValueType, Exts, Args...> {}; //---------------------------------------------------------------------------- template <class SrcTraits, class... Args> -struct ViewMapping< +class ViewMapping< typename std::enable_if<( std::is_same<typename SrcTraits::specialize, void>::value && (std::is_same<typename SrcTraits::array_layout, @@ -3609,7 +3689,7 @@ struct ViewMapping< }; // Subview's layout - typedef typename std::conditional< + using array_layout = typename std::conditional< ( /* Same array layout IF */ (rank == 0) /* output rank zero */ || SubviewLegalArgsCompileTime<typename SrcTraits::array_layout, @@ -3627,49 +3707,35 @@ struct ViewMapping< std::is_same<typename SrcTraits::array_layout, Kokkos::LayoutRight>::value) // replace input rank ), - typename SrcTraits::array_layout, Kokkos::LayoutStride>::type - array_layout; + typename SrcTraits::array_layout, Kokkos::LayoutStride>::type; - typedef typename SrcTraits::value_type value_type; + using value_type = typename SrcTraits::value_type; using data_type = typename SubViewDataType<value_type, typename Kokkos::Impl::ParseViewExtents< typename SrcTraits::data_type>::type, Args...>::type; - // typedef typename std::conditional< rank == 0 , value_type , - // typename std::conditional< rank == 1 , value_type * , - // typename std::conditional< rank == 2 , value_type ** , - // typename std::conditional< rank == 3 , value_type *** , - // typename std::conditional< rank == 4 , value_type **** , - // typename std::conditional< rank == 5 , value_type ***** , - // typename std::conditional< rank == 6 , value_type ****** , - // typename std::conditional< rank == 7 , value_type ******* , - // value_type ******** - // >::type >::type >::type >::type >::type >::type >::type >::type - // data_type ; public: - typedef Kokkos::ViewTraits<data_type, array_layout, - typename SrcTraits::device_type, - typename SrcTraits::memory_traits> - traits_type; + using traits_type = Kokkos::ViewTraits<data_type, array_layout, + typename SrcTraits::device_type, + typename SrcTraits::memory_traits>; - typedef Kokkos::View<data_type, array_layout, typename SrcTraits::device_type, - typename SrcTraits::memory_traits> - type; + using type = + Kokkos::View<data_type, array_layout, typename SrcTraits::device_type, + typename SrcTraits::memory_traits>; template <class MemoryTraits> struct apply { static_assert(Kokkos::Impl::is_memory_traits<MemoryTraits>::value, ""); - typedef Kokkos::ViewTraits<data_type, array_layout, - typename SrcTraits::device_type, MemoryTraits> - traits_type; + using traits_type = + Kokkos::ViewTraits<data_type, array_layout, + typename SrcTraits::device_type, MemoryTraits>; - typedef Kokkos::View<data_type, array_layout, - typename SrcTraits::device_type, MemoryTraits> - type; + using type = Kokkos::View<data_type, array_layout, + typename SrcTraits::device_type, MemoryTraits>; }; // The presumed type is 'ViewMapping< traits_type , void >' @@ -3682,9 +3748,9 @@ struct ViewMapping< "Subview destination type must be compatible with subview " "derived type"); - typedef ViewMapping<DstTraits, void> DstType; + using DstType = ViewMapping<DstTraits, void>; - typedef typename DstType::offset_type dst_offset_type; + using dst_offset_type = typename DstType::offset_type; const SubviewExtents<SrcTraits::rank, rank> extents(src.m_impl_offset.m_dim, args...); @@ -3774,7 +3840,7 @@ struct OperatorBoundsErrorOnDevice<MapType, true> { /* Check #2: does the ViewMapping have the printable_label_typedef defined? See above that only the non-specialized standard-layout ViewMapping has this defined by default. - The existence of this typedef indicates the existence of MapType::is_managed + The existence of this alias indicates the existence of MapType::is_managed */ template <class T, class Enable = void> struct has_printable_label_typedef : public std::false_type {}; @@ -3798,15 +3864,16 @@ KOKKOS_INLINE_FUNCTION void operator_bounds_error_on_device(MapType const& map, #endif // ! defined( KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST ) -template <class MemorySpace, class MapType, class... Args> +template <class MemorySpace, class ViewType, class MapType, class... Args> KOKKOS_INLINE_FUNCTION void view_verify_operator_bounds( - Kokkos::Impl::SharedAllocationTracker const& tracker, const MapType& map, + Kokkos::Impl::ViewTracker<ViewType> const& tracker, const MapType& map, Args... args) { if (!view_verify_operator_bounds<0>(map, args...)) { #if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) enum { LEN = 1024 }; char buffer[LEN]; - const std::string label = tracker.template get_label<MemorySpace>(); + const std::string label = + tracker.m_tracker.template get_label<MemorySpace>(); int n = snprintf(buffer, LEN, "View bounds error of view %s (", label.c_str()); view_error_operator_bounds<0>(buffer + n, LEN - n, map, args...); @@ -3817,7 +3884,7 @@ KOKKOS_INLINE_FUNCTION void view_verify_operator_bounds( a corresponding SharedAllocationHeader containing a label). This check should cover the case of Views that don't have the Unmanaged trait but were initialized by pointer. */ - if (tracker.has_record()) { + if (tracker.m_tracker.has_record()) { operator_bounds_error_on_device<MapType>( map, has_printable_label_typedef<MapType>()); } else { diff --git a/packages/kokkos/core/src/impl/Kokkos_ViewTile.hpp b/packages/kokkos/core/src/impl/Kokkos_ViewTile.hpp deleted file mode 100644 index 342927ef7..000000000 --- a/packages/kokkos/core/src/impl/Kokkos_ViewTile.hpp +++ /dev/null @@ -1,222 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#ifndef KOKKOS_EXPERIMENTAL_VIEWTILE_HPP -#define KOKKOS_EXPERIMENTAL_VIEWTILE_HPP - -//---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- - -namespace Kokkos { -namespace Impl { - -// =========================================================================== -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - -// View mapping for rank two tiled array - -template <class L> -struct is_layout_tile : public std::false_type {}; - -template <unsigned N0, unsigned N1> -struct is_layout_tile<Kokkos::LayoutTileLeft<N0, N1, true> > - : public std::true_type {}; - -template <class Dimension, class Layout> -struct ViewOffset< - Dimension, Layout, - typename std::enable_if<((Dimension::rank == 2) && - is_layout_tile<Layout>::value)>::type> { - public: - enum { SHIFT_0 = Kokkos::Impl::integral_power_of_two(Layout::N0) }; - enum { SHIFT_1 = Kokkos::Impl::integral_power_of_two(Layout::N1) }; - enum { SHIFT_T = SHIFT_0 + SHIFT_1 }; - enum { MASK_0 = Layout::N0 - 1 }; - enum { MASK_1 = Layout::N1 - 1 }; - - // Is an irregular layout that does not have uniform striding for each index. - using is_mapping_plugin = std::true_type; - using is_regular = std::false_type; - - typedef size_t size_type; - typedef Dimension dimension_type; - typedef Layout array_layout; - - dimension_type m_dim; - size_type m_tile_N0; - - //---------------------------------------- - - // Only instantiated for rank 2 - template <typename I0, typename I1> - KOKKOS_INLINE_FUNCTION constexpr size_type operator()(I0 const& i0, - I1 const& i1, int = 0, - int = 0, int = 0, - int = 0, int = 0, - int = 0) const { - return /* ( ( Tile offset ) * Tile size ) */ - (((i0 >> SHIFT_0) + m_tile_N0 * (i1 >> SHIFT_1)) << SHIFT_T) + - /* ( Offset within tile ) */ - ((i0 & MASK_0) + ((i1 & MASK_1) << SHIFT_0)); - } - - //---------------------------------------- - - KOKKOS_INLINE_FUNCTION constexpr array_layout layout() const { - return array_layout(m_dim.N0, m_dim.N1); - } - - KOKKOS_INLINE_FUNCTION constexpr size_type dimension_0() const { - return m_dim.N0; - } - KOKKOS_INLINE_FUNCTION constexpr size_type dimension_1() const { - return m_dim.N1; - } - KOKKOS_INLINE_FUNCTION constexpr size_type dimension_2() const { return 1; } - KOKKOS_INLINE_FUNCTION constexpr size_type dimension_3() const { return 1; } - KOKKOS_INLINE_FUNCTION constexpr size_type dimension_4() const { return 1; } - KOKKOS_INLINE_FUNCTION constexpr size_type dimension_5() const { return 1; } - KOKKOS_INLINE_FUNCTION constexpr size_type dimension_6() const { return 1; } - KOKKOS_INLINE_FUNCTION constexpr size_type dimension_7() const { return 1; } - - KOKKOS_INLINE_FUNCTION constexpr size_type size() const { - return m_dim.N0 * m_dim.N1; - } - - // Strides are meaningless due to irregularity - KOKKOS_INLINE_FUNCTION constexpr size_type stride_0() const { return 0; } - KOKKOS_INLINE_FUNCTION constexpr size_type stride_1() const { return 0; } - KOKKOS_INLINE_FUNCTION constexpr size_type stride_2() const { return 0; } - KOKKOS_INLINE_FUNCTION constexpr size_type stride_3() const { return 0; } - KOKKOS_INLINE_FUNCTION constexpr size_type stride_4() const { return 0; } - KOKKOS_INLINE_FUNCTION constexpr size_type stride_5() const { return 0; } - KOKKOS_INLINE_FUNCTION constexpr size_type stride_6() const { return 0; } - KOKKOS_INLINE_FUNCTION constexpr size_type stride_7() const { return 0; } - - KOKKOS_INLINE_FUNCTION constexpr size_type span() const { - // ( TileDim0 * ( TileDim1 ) ) * TileSize - return (m_tile_N0 * ((m_dim.N1 + MASK_1) >> SHIFT_1)) << SHIFT_T; - } - - KOKKOS_INLINE_FUNCTION constexpr bool span_is_contiguous() const { - // Only if dimensions align with tile size - return (m_dim.N0 & MASK_0) == 0 && (m_dim.N1 & MASK_1) == 0; - } - - //---------------------------------------- - - KOKKOS_DEFAULTED_FUNCTION ~ViewOffset() = default; - KOKKOS_DEFAULTED_FUNCTION ViewOffset() = default; - KOKKOS_DEFAULTED_FUNCTION ViewOffset(const ViewOffset&) = default; - KOKKOS_DEFAULTED_FUNCTION ViewOffset& operator=(const ViewOffset&) = default; - - template <unsigned TrivialScalarSize> - KOKKOS_INLINE_FUNCTION constexpr ViewOffset( - std::integral_constant<unsigned, TrivialScalarSize> const&, - array_layout const arg_layout) - : m_dim(arg_layout.dimension[0], arg_layout.dimension[1], 0, 0, 0, 0, 0, - 0), - m_tile_N0((arg_layout.dimension[0] + MASK_0) >> - SHIFT_0 /* number of tiles in first dimension */) {} -}; - -template <typename T, unsigned N0, unsigned N1, class... P, typename iType0, - typename iType1> -struct ViewMapping< - void, Kokkos::ViewTraits<T**, Kokkos::LayoutTileLeft<N0, N1, true>, P...>, - Kokkos::LayoutTileLeft<N0, N1, true>, iType0, iType1> { - typedef Kokkos::LayoutTileLeft<N0, N1, true> src_layout; - typedef Kokkos::ViewTraits<T**, src_layout, P...> src_traits; - typedef Kokkos::ViewTraits<T[N0][N1], LayoutLeft, P...> traits; - typedef Kokkos::View<T[N0][N1], LayoutLeft, P...> type; - - KOKKOS_INLINE_FUNCTION static void assign( - ViewMapping<traits, void>& dst, const ViewMapping<src_traits, void>& src, - const src_layout&, const size_t i_tile0, const size_t i_tile1) { - typedef ViewMapping<traits, void> dst_map_type; - typedef ViewMapping<src_traits, void> src_map_type; - typedef typename dst_map_type::handle_type dst_handle_type; - typedef typename dst_map_type::offset_type dst_offset_type; - typedef typename src_map_type::offset_type src_offset_type; - - dst = dst_map_type( - dst_handle_type(src.m_impl_handle + - ((i_tile0 + src.m_impl_offset.m_tile_N0 * i_tile1) - << src_offset_type::SHIFT_T)), - dst_offset_type()); - } -}; - -#endif // KOKKOS_ENABLE_DEPRECATED_CODE -// =============================================================================== - -} /* namespace Impl */ -} /* namespace Kokkos */ - -namespace Kokkos { - -// ============================================================================== -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - -template <typename T, unsigned N0, unsigned N1, class... P> -KOKKOS_INLINE_FUNCTION Kokkos::View<T[N0][N1], LayoutLeft, P...> tile_subview( - const Kokkos::View<T**, Kokkos::LayoutTileLeft<N0, N1, true>, P...>& src, - const size_t i_tile0, const size_t i_tile1) { - // Force the specialized ViewMapping for extracting a tile - // by using the first subview argument as the layout. - typedef Kokkos::LayoutTileLeft<N0, N1, true> SrcLayout; - - return Kokkos::View<T[N0][N1], LayoutLeft, P...>(src, SrcLayout(), i_tile0, - i_tile1); -} - -#endif // KOKKOS_ENABLE_DEPRECATED_CODE -// =============================================================================== - -} /* namespace Kokkos */ - -//---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- - -#endif /* #ifndef KOKKOS_EXPERIENTAL_VIEWTILE_HPP */ diff --git a/packages/kokkos/core/src/impl/Kokkos_ViewTracker.hpp b/packages/kokkos/core/src/impl/Kokkos_ViewTracker.hpp new file mode 100644 index 000000000..9cfe9d791 --- /dev/null +++ b/packages/kokkos/core/src/impl/Kokkos_ViewTracker.hpp @@ -0,0 +1,130 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_VIEW_TRACKER_HPP +#define KOKKOS_VIEW_TRACKER_HPP + +namespace Kokkos { + +template <class DataType, class... Properties> +class View; + +namespace Impl { + +/* + * \class ViewTracker + * \brief template class to wrap the shared allocation tracker + * + * \section This class is templated on the View and provides + * constructors that match the view. The constructors and assignments + * from view will externalize the logic needed to enable/disable + * ref counting to provide a single gate to enable further developments + * which may hing on the same logic. + * + */ +template <class ParentView> +struct ViewTracker { + using track_type = Kokkos::Impl::SharedAllocationTracker; + using view_traits = typename ParentView::traits; + + track_type m_tracker; + + KOKKOS_INLINE_FUNCTION + ViewTracker() : m_tracker() {} + + KOKKOS_INLINE_FUNCTION + ViewTracker(const ViewTracker& vt) noexcept + : m_tracker(vt.m_tracker, view_traits::is_managed) {} + + KOKKOS_INLINE_FUNCTION + explicit ViewTracker(const ParentView& vt) noexcept : m_tracker() { + assign(vt); + } + + template <class RT, class... RP> + KOKKOS_INLINE_FUNCTION explicit ViewTracker( + const View<RT, RP...>& vt) noexcept + : m_tracker() { + assign(vt); + } + + template <class RT, class... RP> + KOKKOS_INLINE_FUNCTION void assign(const View<RT, RP...>& vt) noexcept { +#if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) + if (view_traits::is_managed && + Kokkos::Impl::SharedAllocationRecord<void, void>::tracking_enabled()) { + m_tracker.assign_direct(vt.m_track.m_tracker); + } else { + m_tracker.assign_force_disable(vt.m_track.m_tracker); + } +#else + m_tracker.assign_force_disable(vt.m_track.m_tracker); +#endif + } + + KOKKOS_INLINE_FUNCTION + ViewTracker& operator=(const ViewTracker& rhs) noexcept { +#if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) + if (view_traits::is_managed && + Kokkos::Impl::SharedAllocationRecord<void, void>::tracking_enabled()) { + m_tracker.assign_direct(rhs.m_tracker); + } else { + m_tracker.assign_force_disable(rhs.m_tracker); + } +#else + m_tracker.assign_force_disable(rhs.m_tracker); +#endif + return *this; + } + + KOKKOS_INLINE_FUNCTION + explicit ViewTracker(const track_type& tt) noexcept + : m_tracker(tt, view_traits::is_managed) {} +}; + +} // namespace Impl + +} // namespace Kokkos + +#endif // KOKKOS_VIEW_TRACKER_HPP diff --git a/packages/kokkos/core/src/impl/Kokkos_ViewUniformType.hpp b/packages/kokkos/core/src/impl/Kokkos_ViewUniformType.hpp index 7ce3a532b..2eb8fc9e3 100644 --- a/packages/kokkos/core/src/impl/Kokkos_ViewUniformType.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_ViewUniformType.hpp @@ -45,77 +45,77 @@ #ifndef KOKKOS_EXPERIMENTAL_VIEWUNIFORMTYPE_HPP #define KOKKOS_EXPERIMENTAL_VIEWUNIFORMTYPE_HPP +#include <Kokkos_Macros.hpp> + namespace Kokkos { namespace Impl { template <class ScalarType, int Rank> struct ViewScalarToDataType { - typedef typename ViewScalarToDataType<ScalarType, Rank - 1>::type* type; + using type = typename ViewScalarToDataType<ScalarType, Rank - 1>::type *; }; template <class ScalarType> struct ViewScalarToDataType<ScalarType, 0> { - typedef ScalarType type; + using type = ScalarType; }; template <class LayoutType, int Rank> struct ViewUniformLayout { - typedef LayoutType array_layout; + using array_layout = LayoutType; }; template <class LayoutType> struct ViewUniformLayout<LayoutType, 0> { - typedef Kokkos::LayoutLeft array_layout; + using array_layout = Kokkos::LayoutLeft; }; template <> struct ViewUniformLayout<Kokkos::LayoutRight, 1> { - typedef Kokkos::LayoutLeft array_layout; + using array_layout = Kokkos::LayoutLeft; }; template <class ViewType, int Traits> struct ViewUniformType { - typedef typename ViewType::data_type data_type; - typedef typename std::add_const<typename ViewType::data_type>::type - const_data_type; - typedef typename ViewScalarToDataType<typename ViewType::value_type, - ViewType::rank>::type runtime_data_type; - typedef typename ViewScalarToDataType< + using data_type = typename ViewType::data_type; + using const_data_type = + typename std::add_const<typename ViewType::data_type>::type; + using runtime_data_type = + typename ViewScalarToDataType<typename ViewType::value_type, + ViewType::rank>::type; + using runtime_const_data_type = typename ViewScalarToDataType< typename std::add_const<typename ViewType::value_type>::type, - ViewType::rank>::type runtime_const_data_type; + ViewType::rank>::type; - typedef typename ViewUniformLayout<typename ViewType::array_layout, - ViewType::rank>::array_layout array_layout; + using array_layout = + typename ViewUniformLayout<typename ViewType::array_layout, + ViewType::rank>::array_layout; - typedef typename ViewType::device_type device_type; - typedef typename Kokkos::Device<typename device_type::execution_space, - Kokkos::AnonymousSpace> - anonymous_device_type; + using device_type = typename ViewType::device_type; + using anonymous_device_type = + typename Kokkos::Device<typename device_type::execution_space, + Kokkos::AnonymousSpace>; - typedef typename Kokkos::MemoryTraits<Traits> memory_traits; - typedef Kokkos::View<data_type, array_layout, device_type, memory_traits> - type; - typedef Kokkos::View<const_data_type, array_layout, device_type, - memory_traits> - const_type; - typedef Kokkos::View<runtime_data_type, array_layout, device_type, - memory_traits> - runtime_type; - typedef Kokkos::View<runtime_const_data_type, array_layout, device_type, - memory_traits> - runtime_const_type; + using memory_traits = typename Kokkos::MemoryTraits<Traits>; + using type = + Kokkos::View<data_type, array_layout, device_type, memory_traits>; + using const_type = + Kokkos::View<const_data_type, array_layout, device_type, memory_traits>; + using runtime_type = + Kokkos::View<runtime_data_type, array_layout, device_type, memory_traits>; + using runtime_const_type = Kokkos::View<runtime_const_data_type, array_layout, + device_type, memory_traits>; - typedef Kokkos::View<data_type, array_layout, anonymous_device_type, - memory_traits> - nomemspace_type; - typedef Kokkos::View<const_data_type, array_layout, anonymous_device_type, - memory_traits> - const_nomemspace_type; - typedef Kokkos::View<runtime_data_type, array_layout, anonymous_device_type, - memory_traits> - runtime_nomemspace_type; - typedef Kokkos::View<runtime_const_data_type, array_layout, - anonymous_device_type, memory_traits> - runtime_const_nomemspace_type; + using nomemspace_type = Kokkos::View<data_type, array_layout, + anonymous_device_type, memory_traits>; + using const_nomemspace_type = + Kokkos::View<const_data_type, array_layout, anonymous_device_type, + memory_traits>; + using runtime_nomemspace_type = + Kokkos::View<runtime_data_type, array_layout, anonymous_device_type, + memory_traits>; + using runtime_const_nomemspace_type = + Kokkos::View<runtime_const_data_type, array_layout, anonymous_device_type, + memory_traits>; }; } // namespace Impl } // namespace Kokkos diff --git a/packages/kokkos/core/src/impl/Kokkos_Volatile_Load.hpp b/packages/kokkos/core/src/impl/Kokkos_Volatile_Load.hpp index 3626a1f17..4af26dcc9 100644 --- a/packages/kokkos/core/src/impl/Kokkos_Volatile_Load.hpp +++ b/packages/kokkos/core/src/impl/Kokkos_Volatile_Load.hpp @@ -42,6 +42,8 @@ //@HEADER */ +#include <Kokkos_Macros.hpp> + #if defined(KOKKOS_ATOMIC_HPP) && !defined(KOKKOS_VOLATILE_LOAD_HPP) #define KOKKOS_VOLATILE_LOAD_HPP @@ -62,10 +64,10 @@ namespace Kokkos { template <typename T> KOKKOS_FORCEINLINE_FUNCTION T volatile_load(T const volatile* const src_ptr) { - typedef uint64_t KOKKOS_IMPL_MAY_ALIAS T64; - typedef uint32_t KOKKOS_IMPL_MAY_ALIAS T32; - typedef uint16_t KOKKOS_IMPL_MAY_ALIAS T16; - typedef uint8_t KOKKOS_IMPL_MAY_ALIAS T8; + typedef uint64_t KOKKOS_IMPL_MAY_ALIAS T64; // NOLINT(modernize-use-using) + typedef uint32_t KOKKOS_IMPL_MAY_ALIAS T32; // NOLINT(modernize-use-using) + typedef uint16_t KOKKOS_IMPL_MAY_ALIAS T16; // NOLINT(modernize-use-using) + typedef uint8_t KOKKOS_IMPL_MAY_ALIAS T8; // NOLINT(modernize-use-using) enum { NUM_8 = sizeof(T), @@ -114,10 +116,10 @@ KOKKOS_FORCEINLINE_FUNCTION T volatile_load(T const volatile* const src_ptr) { template <typename T> KOKKOS_FORCEINLINE_FUNCTION void volatile_store( T volatile* const dst_ptr, T const volatile* const src_ptr) { - typedef uint64_t KOKKOS_IMPL_MAY_ALIAS T64; - typedef uint32_t KOKKOS_IMPL_MAY_ALIAS T32; - typedef uint16_t KOKKOS_IMPL_MAY_ALIAS T16; - typedef uint8_t KOKKOS_IMPL_MAY_ALIAS T8; + typedef uint64_t KOKKOS_IMPL_MAY_ALIAS T64; // NOLINT(modernize-use-using) + typedef uint32_t KOKKOS_IMPL_MAY_ALIAS T32; // NOLINT(modernize-use-using) + typedef uint16_t KOKKOS_IMPL_MAY_ALIAS T16; // NOLINT(modernize-use-using) + typedef uint8_t KOKKOS_IMPL_MAY_ALIAS T8; // NOLINT(modernize-use-using) enum { NUM_8 = sizeof(T), @@ -162,10 +164,10 @@ KOKKOS_FORCEINLINE_FUNCTION void volatile_store( template <typename T> KOKKOS_FORCEINLINE_FUNCTION void volatile_store(T volatile* const dst_ptr, T const* const src_ptr) { - typedef uint64_t KOKKOS_IMPL_MAY_ALIAS T64; - typedef uint32_t KOKKOS_IMPL_MAY_ALIAS T32; - typedef uint16_t KOKKOS_IMPL_MAY_ALIAS T16; - typedef uint8_t KOKKOS_IMPL_MAY_ALIAS T8; + typedef uint64_t KOKKOS_IMPL_MAY_ALIAS T64; // NOLINT(modernize-use-using) + typedef uint32_t KOKKOS_IMPL_MAY_ALIAS T32; // NOLINT(modernize-use-using) + typedef uint16_t KOKKOS_IMPL_MAY_ALIAS T16; // NOLINT(modernize-use-using) + typedef uint8_t KOKKOS_IMPL_MAY_ALIAS T8; // NOLINT(modernize-use-using) enum { NUM_8 = sizeof(T), diff --git a/packages/kokkos/core/src/setup/Kokkos_Setup_Cuda.hpp b/packages/kokkos/core/src/setup/Kokkos_Setup_Cuda.hpp new file mode 100644 index 000000000..1913e5082 --- /dev/null +++ b/packages/kokkos/core/src/setup/Kokkos_Setup_Cuda.hpp @@ -0,0 +1,138 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_CUDA_SETUP_HPP_ +#define KOKKOS_CUDA_SETUP_HPP_ + +#if !defined(KOKKOS_ENABLE_CUDA) +#error \ + "KOKKOS_ENABLE_CUDA was not defined, but Kokkos_Setup_Cuda.hpp was included anyway." +#endif + +#if defined(KOKKOS_ENABLE_CUDA) && !defined(__CUDACC__) +#error \ + "KOKKOS_ENABLE_CUDA defined but the compiler is not defining the __CUDACC__ macro as expected" +// Some tooling environments will still function better if we do this here. +#define __CUDACC__ +#endif /* defined(KOKKOS_ENABLE_CUDA) && !defined(__CUDACC__) */ + +// Compiling with a CUDA compiler. +// +// Include <cuda.h> to pick up the CUDA_VERSION macro defined as: +// CUDA_VERSION = ( MAJOR_VERSION * 1000 ) + ( MINOR_VERSION * 10 ) +// +// When generating device code the __CUDA_ARCH__ macro is defined as: +// __CUDA_ARCH__ = ( MAJOR_CAPABILITY * 100 ) + ( MINOR_CAPABILITY * 10 ) + +#include <cuda_runtime.h> +#include <cuda.h> + +#if defined(_WIN32) +#define KOKKOS_IMPL_WINDOWS_CUDA +#endif + +#if !defined(CUDA_VERSION) +#error "#include <cuda.h> did not define CUDA_VERSION." +#endif + +#if defined(__CUDA_ARCH__) && (__CUDA_ARCH__ < 300) +// Compiling with CUDA compiler for device code. +#error "Cuda device capability >= 3.0 is required." +#endif + +#ifdef KOKKOS_ENABLE_CUDA_LAMBDA +#define KOKKOS_LAMBDA [=] __host__ __device__ + +#if defined(KOKKOS_ENABLE_CXX17) || defined(KOKKOS_ENABLE_CXX20) +#define KOKKOS_CLASS_LAMBDA [ =, *this ] __host__ __device__ +#endif + +#if defined(__NVCC__) +#define KOKKOS_IMPL_NEED_FUNCTOR_WRAPPER +#endif +#else // !defined(KOKKOS_ENABLE_CUDA_LAMBDA) +#undef KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA +#endif // !defined(KOKKOS_ENABLE_CUDA_LAMBDA) + +#if (10000 > CUDA_VERSION) +#define KOKKOS_ENABLE_PRE_CUDA_10_DEPRECATION_API +#endif + +#if defined(__CUDA_ARCH__) && (__CUDA_ARCH__ >= 700) +// PTX atomics with memory order semantics are only available on volta and later +#if !defined(KOKKOS_DISABLE_CUDA_ASM) +#if !defined(KOKKOS_ENABLE_CUDA_ASM) +#define KOKKOS_ENABLE_CUDA_ASM +#if !defined(KOKKOS_DISABLE_CUDA_ASM_ATOMICS) && \ + defined(KOKKOS_ENABLE_GNU_ATOMICS) +#define KOKKOS_ENABLE_CUDA_ASM_ATOMICS +#endif +#endif +#endif +#endif + +#define KOKKOS_IMPL_FORCEINLINE_FUNCTION __device__ __host__ __forceinline__ +#define KOKKOS_IMPL_FORCEINLINE __forceinline__ +#define KOKKOS_IMPL_INLINE_FUNCTION __device__ __host__ inline +#define KOKKOS_IMPL_FUNCTION __device__ __host__ +#define KOKKOS_IMPL_HOST_FUNCTION __host__ +#define KOKKOS_IMPL_DEVICE_FUNCTION __device__ +#if defined(KOKKOS_COMPILER_NVCC) +#define KOKKOS_INLINE_FUNCTION_DELETED inline +#else +#define KOKKOS_INLINE_FUNCTION_DELETED __device__ __host__ inline +#endif +#if (CUDA_VERSION < 10000) +#define KOKKOS_DEFAULTED_FUNCTION __host__ __device__ inline +#else +#define KOKKOS_DEFAULTED_FUNCTION inline +#endif +#define KOKKOS_IMPL_HOST_FUNCTION __host__ +#define KOKKOS_IMPL_DEVICE_FUNCTION __device__ + +#if (CUDA_VERSION >= 10000) +#define KOKKOS_CUDA_ENABLE_GRAPHS +#endif + +#endif /* KOKKOS_CUDA_SETUP_HPP_ */ diff --git a/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Join.hpp b/packages/kokkos/core/src/setup/Kokkos_Setup_HIP.hpp similarity index 70% rename from packages/kokkos/core/src/ROCm/Kokkos_ROCm_Join.hpp rename to packages/kokkos/core/src/setup/Kokkos_Setup_HIP.hpp index 8968663c1..f1df2f87b 100644 --- a/packages/kokkos/core/src/ROCm/Kokkos_ROCm_Join.hpp +++ b/packages/kokkos/core/src/setup/Kokkos_Setup_HIP.hpp @@ -42,29 +42,30 @@ //@HEADER */ -#if !defined(KOKKOS_ROCM_JOIN_H) -#define KOKKOS_ROCM_JOIN_H +#ifndef KOKKOS_SETUP_HIP_HPP_ +#define KOKKOS_SETUP_HIP_HPP_ -namespace Kokkos { -namespace Impl { +#if defined(KOKKOS_ENABLE_HIP) -// Adaptor to use ValueJoin with standard algorithms -template <class Joiner, class F> -struct join_operator { - const F* fp; - template <class T, class U> - T operator()(T x, const U& y) const { - Joiner::join(*fp, &x, &y); - return x; - } -}; +#define KOKKOS_IMPL_HIP_CLANG_WORKAROUND -template <class Joiner, class F> -join_operator<Joiner, F> make_join_operator(const F& f) { - return join_operator<Joiner, F>{&f}; -} +#define HIP_ENABLE_PRINTF +#include <hip/hip_runtime.h> +#include <hip/hip_runtime_api.h> -} // namespace Impl -} // namespace Kokkos +#define KOKKOS_LAMBDA [=] __host__ __device__ +#if defined(KOKKOS_ENABLE_CXX17) || defined(KOKKOS_ENABLE_CXX20) +#define KOKKOS_CLASS_LAMBDA [ =, *this ] __host__ __device__ +#endif + +#define KOKKOS_IMPL_FORCEINLINE_FUNCTION __device__ __host__ __forceinline__ +#define KOKKOS_IMPL_INLINE_FUNCTION __device__ __host__ inline +#define KOKKOS_DEFAULTED_FUNCTION __device__ __host__ inline +#define KOKKOS_INLINE_FUNCTION_DELETED __device__ __host__ inline +#define KOKKOS_IMPL_FUNCTION __device__ __host__ +#define KOKKOS_IMPL_HOST_FUNCTION __host__ +#define KOKKOS_IMPL_DEVICE_FUNCTION __device__ + +#endif // #if defined( KOKKOS_ENABLE_HIP ) #endif diff --git a/packages/kokkos/core/unit_test/CMakeLists.txt b/packages/kokkos/core/unit_test/CMakeLists.txt index dec2f5e92..125560db3 100644 --- a/packages/kokkos/core/unit_test/CMakeLists.txt +++ b/packages/kokkos/core/unit_test/CMakeLists.txt @@ -12,18 +12,20 @@ KOKKOS_ADD_TEST_LIBRARY( HEADERS ${GTEST_SOURCE_DIR}/gtest/gtest.h SOURCES ${GTEST_SOURCE_DIR}/gtest/gtest-all.cc ) -#These can be direct, no need for Tribits or Kokkos wrappers -# WORKAROUND FOR HIPCC -IF(Kokkos_ENABLE_HIP) - TARGET_COMPILE_DEFINITIONS(kokkos_gtest PUBLIC "-DGTEST_HAS_PTHREAD=0 --amdgpu-target=gfx906") -ELSE() - TARGET_COMPILE_DEFINITIONS(kokkos_gtest PUBLIC "-DGTEST_HAS_PTHREAD=0") -ENDIF() +# avoid deprecation warnings from MSVC +TARGET_COMPILE_DEFINITIONS(kokkos_gtest PUBLIC GTEST_HAS_TR1_TUPLE=0 GTEST_HAS_PTHREAD=0) TARGET_INCLUDE_DIRECTORIES(kokkos_gtest PUBLIC ${GTEST_SOURCE_DIR}) #Gtest minimally requires C++11 +IF((NOT (Kokkos_ENABLE_CUDA AND WIN32)) AND (NOT ("${KOKKOS_CXX_COMPILER_ID}" STREQUAL "Fujitsu"))) TARGET_COMPILE_FEATURES(kokkos_gtest PUBLIC cxx_std_11) +ENDIF() + +# Suppress clang-tidy diagnostics on code that we do not have control over +IF(CMAKE_CXX_CLANG_TIDY) + SET_TARGET_PROPERTIES(kokkos_gtest PROPERTIES CXX_CLANG_TIDY "") +ENDIF() # # Define Incremental Testing Feature Levels @@ -32,16 +34,18 @@ TARGET_COMPILE_FEATURES(kokkos_gtest PUBLIC cxx_std_11) SET(KOKKOS_CUDA_FEATURE_LEVEL 999) SET(KOKKOS_CUDA_NAME Cuda) -SET(KOKKOS_HIP_FEATURE_LEVEL 12) +SET(KOKKOS_HIP_FEATURE_LEVEL 999) SET(KOKKOS_HIP_NAME Experimental::HIP) SET(KOKKOS_HPX_FEATURE_LEVEL 999) SET(KOKKOS_HPX_NAME Experimental::HPX) SET(KOKKOS_OPENMP_FEATURE_LEVEL 999) SET(KOKKOS_OPENMP_NAME OpenMP) -SET(KOKKOS_OPENMPTARGET_FEATURE_LEVEL 10) +SET(KOKKOS_OPENMPTARGET_FEATURE_LEVEL 12) SET(KOKKOS_OPENMPTARGET_NAME Experimental::OpenMPTarget) SET(KOKKOS_SERIAL_FEATURE_LEVEL 999) SET(KOKKOS_SERIAL_NAME Serial) +SET(KOKKOS_SYCL_FEATURE_LEVEL 5) +SET(KOKKOS_SYCL_NAME Experimental::SYCL) SET(KOKKOS_THREADS_FEATURE_LEVEL 999) SET(KOKKOS_THREADS_NAME Threads) @@ -54,7 +58,7 @@ SET(KOKKOS_THREADS_NAME Threads) KOKKOS_INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) KOKKOS_INCLUDE_DIRECTORIES(REQUIRED_DURING_INSTALLATION_TESTING ${CMAKE_CURRENT_SOURCE_DIR}) -foreach(Tag Threads;Serial;OpenMP;Cuda;HPX;OpenMPTarget;HIP) +foreach(Tag Threads;Serial;OpenMP;Cuda;HPX;OpenMPTarget;HIP;SYCL) # Because there is always an exception to the rule if(Tag STREQUAL "Threads") set(DEVICE "PTHREAD") @@ -63,116 +67,194 @@ foreach(Tag Threads;Serial;OpenMP;Cuda;HPX;OpenMPTarget;HIP) endif() string(TOLOWER ${Tag} dir) - SET(${Tag}_SOURCES - UnitTestMainInit.cpp - ${dir}/Test${Tag}_AtomicOperations_int.cpp - ${dir}/Test${Tag}_AtomicOperations_unsignedint.cpp - ${dir}/Test${Tag}_AtomicOperations_longint.cpp - ${dir}/Test${Tag}_AtomicOperations_unsignedlongint.cpp - ${dir}/Test${Tag}_AtomicOperations_longlongint.cpp - ${dir}/Test${Tag}_AtomicOperations_double.cpp - ${dir}/Test${Tag}_AtomicOperations_float.cpp - ${dir}/Test${Tag}_AtomicOperations_complexdouble.cpp - ${dir}/Test${Tag}_AtomicOperations_complexfloat.cpp - ${dir}/Test${Tag}_AtomicViews.cpp - ${dir}/Test${Tag}_Atomics.cpp - ${dir}/Test${Tag}_Concepts.cpp - ${dir}/Test${Tag}_Complex.cpp - ${dir}/Test${Tag}_Crs.cpp - ${dir}/Test${Tag}_DeepCopyAlignment.cpp - ${dir}/Test${Tag}_FunctorAnalysis.cpp - ${dir}/Test${Tag}_Init.cpp - ${dir}/Test${Tag}_LocalDeepCopy.cpp - ${dir}/Test${Tag}_MDRange_a.cpp - ${dir}/Test${Tag}_MDRange_b.cpp - ${dir}/Test${Tag}_MDRange_c.cpp - ${dir}/Test${Tag}_MDRange_d.cpp - ${dir}/Test${Tag}_MDRange_e.cpp - ${dir}/Test${Tag}_Other.cpp - ${dir}/Test${Tag}_RangePolicy.cpp - ${dir}/Test${Tag}_RangePolicyRequire.cpp - ${dir}/Test${Tag}_Reductions.cpp - ${dir}/Test${Tag}_Reducers_a.cpp - ${dir}/Test${Tag}_Reducers_b.cpp - ${dir}/Test${Tag}_Reducers_c.cpp - ${dir}/Test${Tag}_Reducers_d.cpp - ${dir}/Test${Tag}_Reductions_DeviceView.cpp - ${dir}/Test${Tag}_Scan.cpp - ${dir}/Test${Tag}_SharedAlloc.cpp - ${dir}/Test${Tag}_SubView_a.cpp - ${dir}/Test${Tag}_SubView_b.cpp - ${dir}/Test${Tag}_SubView_c01.cpp - ${dir}/Test${Tag}_SubView_c02.cpp - ${dir}/Test${Tag}_SubView_c03.cpp - ${dir}/Test${Tag}_SubView_c04.cpp - ${dir}/Test${Tag}_SubView_c05.cpp - ${dir}/Test${Tag}_SubView_c06.cpp - ${dir}/Test${Tag}_SubView_c07.cpp - ${dir}/Test${Tag}_SubView_c08.cpp - ${dir}/Test${Tag}_SubView_c09.cpp - ${dir}/Test${Tag}_SubView_c10.cpp - ${dir}/Test${Tag}_SubView_c11.cpp - ${dir}/Test${Tag}_SubView_c12.cpp - ${dir}/Test${Tag}_SubView_c13.cpp - ${dir}/Test${Tag}_Team.cpp - ${dir}/Test${Tag}_TeamReductionScan.cpp - ${dir}/Test${Tag}_TeamScratch.cpp - ${dir}/Test${Tag}_TeamTeamSize.cpp - ${dir}/Test${Tag}_TeamVectorRange.cpp - ${dir}/Test${Tag}_UniqueToken.cpp - ${dir}/Test${Tag}_ViewAPI_a.cpp - ${dir}/Test${Tag}_ViewAPI_b.cpp - ${dir}/Test${Tag}_ViewAPI_c.cpp - ${dir}/Test${Tag}_ViewAPI_d.cpp - ${dir}/Test${Tag}_ViewAPI_e.cpp - ${dir}/Test${Tag}_ViewLayoutStrideAssignment.cpp - ${dir}/Test${Tag}_ViewMapping_a.cpp - ${dir}/Test${Tag}_ViewMapping_b.cpp - ${dir}/Test${Tag}_ViewMapping_subview.cpp - ${dir}/Test${Tag}_ViewOfClass.cpp - ${dir}/Test${Tag}_WorkGraph.cpp - ${dir}/Test${Tag}_View_64bit.cpp - ${dir}/Test${Tag}_ViewResize.cpp - ) + if(Kokkos_ENABLE_${DEVICE}) + set(dir ${CMAKE_CURRENT_BINARY_DIR}/${dir}) + file(MAKE_DIRECTORY ${dir}) + # Needed to split this for Windows NVCC, since it ends up putting everything on the + # command line in an intermediate compilation step even if CMake generated a response + # file. That then exceeded the shell command line max length. + set(${Tag}_SOURCES1) + foreach(Name + AtomicOperations_int + AtomicOperations_unsignedint + AtomicOperations_longint + AtomicOperations_unsignedlongint + AtomicOperations_longlongint + AtomicOperations_double + AtomicOperations_float + AtomicOperations_complexdouble + AtomicOperations_complexfloat + AtomicViews + Atomics + BlockSizeDeduction + Concepts + Complex + Crs + DeepCopyAlignment + FunctorAnalysis + Init + LocalDeepCopy + MDRange_a + MDRange_b + MDRange_c + MDRange_d + MDRange_e + MDRange_f + Other + RangePolicy + RangePolicyRequire + Reductions + Reducers_a + Reducers_b + Reducers_c + Reducers_d + Reductions_DeviceView + Scan + SharedAlloc + ViewMapping_a + ) + set(file ${dir}/Test${Tag}_${Name}.cpp) + # Write to a temporary intermediate file and call configure_file to avoid + # updating timestamps triggering unnecessary rebuilds on subsequent cmake runs. + file(WRITE ${dir}/dummy.cpp + "#include <Test${Tag}_Category.hpp>\n" + "#include <Test${Name}.hpp>\n" + ) + configure_file(${dir}/dummy.cpp ${file}) + list(APPEND ${Tag}_SOURCES1 ${file}) + endforeach() + + SET(${Tag}_SOURCES2) + foreach(Name + TeamBasic + TeamReductionScan + TeamScan + TeamScratch + TeamTeamSize + TeamVectorRange + UniqueToken + ViewAPI_a + ViewAPI_b + ViewAPI_c + ViewAPI_d + ViewAPI_e + ViewCopy_a + ViewCopy_b + ViewLayoutStrideAssignment + ViewMapping_b + ViewMapping_subview + ViewOfClass + WorkGraph + View_64bit + ViewResize + ) + set(file ${dir}/Test${Tag}_${Name}.cpp) + # Write to a temporary intermediate file and call configure_file to avoid + # updating timestamps triggering unnecessary rebuilds on subsequent cmake runs. + file(WRITE ${dir}/dummy.cpp + "#include <Test${Tag}_Category.hpp>\n" + "#include <Test${Name}.hpp>\n" + ) + configure_file(${dir}/dummy.cpp ${file}) + list(APPEND ${Tag}_SOURCES2 ${file}) + endforeach() + + set(TagHostAccessible ${Tag}) + if (Tag STREQUAL "Cuda") + set(TagHostAccessible CudaUVM) + elseif(Tag STREQUAL "HIP") + set(TagHostAccessible HIPHostPinned) + endif() + foreach(Name + SubView_a + SubView_b + SubView_c01 + SubView_c02 + SubView_c03 + SubView_c04 + SubView_c05 + SubView_c06 + SubView_c07 + SubView_c08 + SubView_c09 + SubView_c10 + SubView_c11 + SubView_c12 + SubView_c13 + ) + set(file ${dir}/Test${Tag}_${Name}.cpp) + # Write to a temporary intermediate file and call configure_file to avoid + # updating timestamps triggering unnecessary rebuilds on subsequent cmake runs. + file(WRITE ${dir}/dummy.cpp + "#include <Test${TagHostAccessible}_Category.hpp>\n" + "#include <Test${Name}.hpp>\n" + ) + configure_file(${dir}/dummy.cpp ${file}) + list(APPEND ${Tag}_SOURCES2 ${file}) + endforeach() + + SET(${Tag}_SOURCES ${${Tag}_SOURCES1} ${${Tag}_SOURCES2}) + endif() endforeach() if(Kokkos_ENABLE_OPENMPTARGET) list(REMOVE_ITEM OpenMPTarget_SOURCES - openmptarget/TestOpenMPTarget_AtomicOperations_complexdouble.cpp - openmptarget/TestOpenMPTarget_MDRange_a.cpp - openmptarget/TestOpenMPTarget_MDRange_b.cpp - openmptarget/TestOpenMPTarget_MDRange_c.cpp - openmptarget/TestOpenMPTarget_MDRange_d.cpp - openmptarget/TestOpenMPTarget_MDRange_e.cpp - openmptarget/TestOpenMPTarget_Other.cpp - openmptarget/TestOpenMPTarget_Scan.cpp - openmptarget/TestOpenMPTarget_Team.cpp - openmptarget/TestOpenMPTarget_TeamScratch.cpp - openmptarget/TestOpenMPTarget_ViewAPI_e.cpp - openmptarget/TestOpenMPTarget_ViewMapping_subview.cpp - openmptarget/TestOpenMPTarget_ViewOfClass.cpp + ${CMAKE_CURRENT_BINARY_DIR}/openmptarget/TestOpenMPTarget_AtomicOperations_complexfloat.cpp + ${CMAKE_CURRENT_BINARY_DIR}/openmptarget/TestOpenMPTarget_AtomicOperations_complexdouble.cpp + ${CMAKE_CURRENT_BINARY_DIR}/openmptarget/TestOpenMPTarget_Crs.cpp + ${CMAKE_CURRENT_BINARY_DIR}/openmptarget/TestOpenMPTarget_LocalDeepCopy.cpp + ${CMAKE_CURRENT_BINARY_DIR}/openmptarget/TestOpenMPTarget_MDRange_a.cpp + ${CMAKE_CURRENT_BINARY_DIR}/openmptarget/TestOpenMPTarget_MDRange_b.cpp + ${CMAKE_CURRENT_BINARY_DIR}/openmptarget/TestOpenMPTarget_MDRange_c.cpp + ${CMAKE_CURRENT_BINARY_DIR}/openmptarget/TestOpenMPTarget_MDRange_d.cpp + ${CMAKE_CURRENT_BINARY_DIR}/openmptarget/TestOpenMPTarget_MDRange_e.cpp + ${CMAKE_CURRENT_BINARY_DIR}/openmptarget/TestOpenMPTarget_MDRange_f.cpp + ${CMAKE_CURRENT_BINARY_DIR}/openmptarget/TestOpenMPTarget_Other.cpp + ${CMAKE_CURRENT_BINARY_DIR}/openmptarget/TestOpenMPTarget_Reductions_DeviceView.cpp + ${CMAKE_CURRENT_BINARY_DIR}/openmptarget/TestOpenMPTarget_Scan.cpp + ${CMAKE_CURRENT_BINARY_DIR}/openmptarget/TestOpenMPTarget_TeamBasic.cpp + ${CMAKE_CURRENT_BINARY_DIR}/openmptarget/TestOpenMPTarget_TeamScratch.cpp + ${CMAKE_CURRENT_BINARY_DIR}/openmptarget/TestOpenMPTarget_TeamReductionScan.cpp + ${CMAKE_CURRENT_BINARY_DIR}/openmptarget/TestOpenMPTarget_TeamTeamSize.cpp + ${CMAKE_CURRENT_BINARY_DIR}/openmptarget/TestOpenMPTarget_TeamScan.cpp + ${CMAKE_CURRENT_BINARY_DIR}/openmptarget/TestOpenMPTarget_TeamVectorRange.cpp + ${CMAKE_CURRENT_BINARY_DIR}/openmptarget/TestOpenMPTarget_UniqueToken.cpp + ${CMAKE_CURRENT_BINARY_DIR}/openmptarget/TestOpenMPTarget_ViewAPI_e.cpp + ${CMAKE_CURRENT_BINARY_DIR}/openmptarget/TestOpenMPTarget_ViewCopy_a.cpp + ${CMAKE_CURRENT_BINARY_DIR}/openmptarget/TestOpenMPTarget_ViewCopy_b.cpp + ${CMAKE_CURRENT_BINARY_DIR}/openmptarget/TestOpenMPTarget_ViewMapping_subview.cpp + ${CMAKE_CURRENT_BINARY_DIR}/openmptarget/TestOpenMPTarget_ViewOfClass.cpp + ${CMAKE_CURRENT_BINARY_DIR}/openmptarget/TestOpenMPTarget_WorkGraph.cpp ) endif() -if(Kokkos_ENABLE_HIP) - # FIXME Linktime error: undefined reference to - # Kokkos::Impl::ViewDimensin<0ul, ...>(unsigned int, ...) - list(REMOVE_ITEM Serial_SOURCES serial/TestSerial_ViewLayoutStrideAssignment.cpp) -endif() - if(Kokkos_ENABLE_SERIAL) KOKKOS_ADD_EXECUTABLE_AND_TEST( - UnitTest_Serial + UnitTest_Serial1 SOURCES - ${Serial_SOURCES} + UnitTestMainInit.cpp + ${Serial_SOURCES1} serial/TestSerial_Task.cpp ) + KOKKOS_ADD_EXECUTABLE_AND_TEST( + UnitTest_Serial2 + SOURCES + UnitTestMainInit.cpp + ${Serial_SOURCES2} + ) + KOKKOS_ADD_EXECUTABLE_AND_TEST( + UnitTest_SerialGraph + SOURCES + UnitTestMainInit.cpp + serial/TestSerial_Graph.cpp + ) endif() if(Kokkos_ENABLE_PTHREAD) KOKKOS_ADD_EXECUTABLE_AND_TEST( UnitTest_Threads SOURCES ${Threads_SOURCES} + UnitTestMainInit.cpp ) endif() @@ -180,7 +262,9 @@ if(Kokkos_ENABLE_OPENMP) KOKKOS_ADD_EXECUTABLE_AND_TEST( UnitTest_OpenMP SOURCES + UnitTestMainInit.cpp ${OpenMP_SOURCES} + openmp/TestOpenMP_PartitionMaster.cpp openmp/TestOpenMP_Task.cpp ) KOKKOS_ADD_EXECUTABLE_AND_TEST( @@ -189,12 +273,19 @@ if(Kokkos_ENABLE_OPENMP) UnitTestMain.cpp openmp/TestOpenMP_InterOp.cpp ) + KOKKOS_ADD_EXECUTABLE_AND_TEST( + UnitTest_OpenMPGraph + SOURCES + UnitTestMainInit.cpp + openmp/TestOpenMP_Graph.cpp + ) endif() if(Kokkos_ENABLE_HPX) KOKKOS_ADD_EXECUTABLE_AND_TEST( UnitTest_HPX SOURCES + UnitTestMainInit.cpp ${HPX_SOURCES} hpx/TestHPX_Task.cpp ) @@ -204,46 +295,95 @@ if(Kokkos_ENABLE_HPX) UnitTestMain.cpp hpx/TestHPX_InterOp.cpp ) + KOKKOS_ADD_EXECUTABLE_AND_TEST( + UnitTest_HPX_IndependentInstances + SOURCES + UnitTestMain.cpp + hpx/TestHPX_IndependentInstances.cpp + ) + KOKKOS_ADD_EXECUTABLE_AND_TEST( + UnitTest_HPX_IndependentInstancesDelayedExecution + SOURCES + UnitTestMain.cpp + hpx/TestHPX_IndependentInstancesDelayedExecution.cpp + ) + KOKKOS_ADD_EXECUTABLE_AND_TEST( + UnitTest_HPX_IndependentInstancesInstanceIds + SOURCES + UnitTestMain.cpp + hpx/TestHPX_IndependentInstancesInstanceIds.cpp + ) + KOKKOS_ADD_EXECUTABLE_AND_TEST( + UnitTest_HPX_IndependentInstancesRefCounting + SOURCES + UnitTestMain.cpp + hpx/TestHPX_IndependentInstancesRefCounting.cpp + ) endif() if(Kokkos_ENABLE_OPENMPTARGET) KOKKOS_ADD_EXECUTABLE_AND_TEST( UnitTest_OpenMPTarget SOURCES + UnitTestMainInit.cpp ${OpenMPTarget_SOURCES} ) endif() if(Kokkos_ENABLE_CUDA) - KOKKOS_ADD_EXECUTABLE_AND_TEST( - UnitTest_Cuda + KOKKOS_ADD_EXECUTABLE_AND_TEST( + UnitTest_Cuda1 + SOURCES + UnitTestMainInit.cpp + ${Cuda_SOURCES1} + ) + + KOKKOS_ADD_EXECUTABLE_AND_TEST( + UnitTest_Cuda2 SOURCES - ${Cuda_SOURCES} + UnitTestMainInit.cpp + ${Cuda_SOURCES2} + ) + + KOKKOS_ADD_EXECUTABLE_AND_TEST( + UnitTest_Cuda3 + SOURCES + UnitTestMainInit.cpp cuda/TestCuda_Task.cpp + cuda/TestCuda_TeamScratchStreams.cpp cuda/TestCudaHostPinned_SharedAlloc.cpp - cuda/TestCudaHostPinned_ViewCopy.cpp cuda/TestCudaHostPinned_ViewAPI_a.cpp cuda/TestCudaHostPinned_ViewAPI_b.cpp cuda/TestCudaHostPinned_ViewAPI_c.cpp cuda/TestCudaHostPinned_ViewAPI_d.cpp cuda/TestCudaHostPinned_ViewAPI_e.cpp + cuda/TestCudaHostPinned_ViewCopy_a.cpp + cuda/TestCudaHostPinned_ViewCopy_b.cpp cuda/TestCudaHostPinned_ViewMapping_a.cpp cuda/TestCudaHostPinned_ViewMapping_b.cpp cuda/TestCudaHostPinned_ViewMapping_subview.cpp cuda/TestCudaUVM_SharedAlloc.cpp - cuda/TestCudaUVM_ViewCopy.cpp cuda/TestCudaUVM_ViewAPI_a.cpp cuda/TestCudaUVM_ViewAPI_b.cpp cuda/TestCudaUVM_ViewAPI_c.cpp cuda/TestCudaUVM_ViewAPI_d.cpp cuda/TestCudaUVM_ViewAPI_e.cpp + cuda/TestCudaUVM_ViewCopy_a.cpp + cuda/TestCudaUVM_ViewCopy_b.cpp cuda/TestCudaUVM_ViewMapping_a.cpp cuda/TestCudaUVM_ViewMapping_b.cpp cuda/TestCudaUVM_ViewMapping_subview.cpp cuda/TestCuda_Spaces.cpp + ) + + KOKKOS_ADD_EXECUTABLE_AND_TEST( + UnitTest_CudaTimingBased + SOURCES + UnitTestMainInit.cpp cuda/TestCuda_DebugSerialExecution.cpp cuda/TestCuda_DebugPinUVMSpace.cpp ) + KOKKOS_ADD_EXECUTABLE_AND_TEST( UnitTest_CudaInterOpInit SOURCES @@ -256,37 +396,29 @@ if(Kokkos_ENABLE_CUDA) UnitTestMain.cpp cuda/TestCuda_InterOp_Streams.cpp ) + KOKKOS_ADD_EXECUTABLE_AND_TEST( + UnitTest_CudaGraph + SOURCES + UnitTestMainInit.cpp + cuda/TestCuda_Graph.cpp + ) endif() if(Kokkos_ENABLE_HIP) - # FIXME_HIP - LIST(REMOVE_ITEM HIP_SOURCES - hip/TestHIP_AtomicOperations_complexdouble.cpp - hip/TestHIP_Other.cpp - hip/TestHIP_Reductions_DeviceView.cpp - hip/TestHIP_Team.cpp - hip/TestHIP_TeamReductionScan.cpp - hip/TestHIP_TeamScratch.cpp - hip/TestHIP_TeamTeamSize.cpp - hip/TestHIP_TeamVectorRange.cpp - hip/TestHIP_UniqueToken.cpp - hip/TestHIP_ViewAPI_a.cpp - hip/TestHIP_ViewAPI_b.cpp - hip/TestHIP_ViewAPI_e.cpp - hip/TestHIP_ViewLayoutStrideAssignment.cpp - hip/TestHIP_WorkGraph.cpp - ) - KOKKOS_ADD_EXECUTABLE_AND_TEST( UnitTest_HIP SOURCES + UnitTestMainInit.cpp ${HIP_SOURCES} + hip/TestHIP_ScanUnit.cpp + hip/TestHIP_TeamScratchStreams.cpp hip/TestHIPHostPinned_ViewAPI_a.cpp hip/TestHIPHostPinned_ViewAPI_b.cpp hip/TestHIPHostPinned_ViewAPI_c.cpp hip/TestHIPHostPinned_ViewAPI_d.cpp hip/TestHIPHostPinned_ViewAPI_e.cpp - hip/TestHIPHostPinned_ViewCopy.cpp + hip/TestHIPHostPinned_ViewCopy_a.cpp + hip/TestHIPHostPinned_ViewCopy_b.cpp hip/TestHIPHostPinned_ViewMapping_a.cpp hip/TestHIPHostPinned_ViewMapping_b.cpp hip/TestHIPHostPinned_ViewMapping_subview.cpp @@ -297,6 +429,72 @@ if(Kokkos_ENABLE_HIP) UnitTestMain.cpp hip/TestHIP_InterOp_Init.cpp ) + KOKKOS_ADD_EXECUTABLE_AND_TEST( + UnitTest_HIPInterOpStreams + SOURCES + UnitTestMain.cpp + hip/TestHIP_InterOp_Streams.cpp + ) +endif() + +if(Kokkos_ENABLE_SYCL) + list(REMOVE_ITEM SYCL_SOURCES + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_AtomicOperations_int.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_AtomicOperations_unsignedint.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_AtomicOperations_longint.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_AtomicOperations_unsignedlongint.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_AtomicOperations_longlongint.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_AtomicOperations_double.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_AtomicOperations_float.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_AtomicOperations_complexdouble.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_AtomicOperations_complexfloat.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_AtomicViews.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_Atomics.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_Atomics.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_AtomicViews.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_BlockSizeDeduction.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_Crs.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_DeepCopyAlignment.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_LocalDeepCopy.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_MDRange_a.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_MDRange_b.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_MDRange_c.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_MDRange_d.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_MDRange_e.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_MDRange_f.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_Other.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_Reductions.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_Reducers_a.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_Reducers_b.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_Reducers_c.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_Reducers_d.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_Reductions_DeviceView.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_SharedAlloc.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_SubView_c04.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_SubView_c05.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_SubView_c06.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_SubView_c07.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_SubView_c08.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_SubView_c09.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_SubView_c10.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_SubView_c11.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_SubView_c12.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_TeamBasic.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_TeamReductionScan.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_TeamScan.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_TeamScratch.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_TeamTeamSize.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_TeamVectorRange.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_UniqueToken.cpp + ${CMAKE_CURRENT_BINARY_DIR}/sycl/TestSYCL_WorkGraph.cpp + ) + + KOKKOS_ADD_EXECUTABLE_AND_TEST( + UnitTest_SYCL + SOURCES + UnitTestMainInit.cpp + ${SYCL_SOURCES} + ) endif() SET(DEFAULT_DEVICE_SOURCES @@ -326,6 +524,15 @@ KOKKOS_ADD_EXECUTABLE_AND_TEST( UnitTest_PushFinalizeHook.cpp ) +# This test is intended for development and debugging by putting code +# into TestDefaultDeviceDevelop.cpp. By default its empty. +KOKKOS_ADD_EXECUTABLE_AND_TEST( + UnitTest_Develop + SOURCES + UnitTestMainInit.cpp + default/TestDefaultDeviceDevelop.cpp +) + # This test is special, because it passes exactly when it prints the # message "PASSED: I am the custom std::terminate handler.", AND calls # std::terminate. This means that we can't use @@ -344,6 +551,43 @@ KOKKOS_ADD_ADVANCED_TEST( UnitTest_PushFinalizeHook_terminate ALWAYS_FAIL_ON_ZERO_RETURN ) + if(KOKKOS_ENABLE_TUNING) + KOKKOS_ADD_EXECUTABLE_AND_TEST( + UnitTest_TuningBasics + SOURCES + tools/TestTuning.cpp + ) + endif() + if(NOT Kokkos_ENABLE_OPENMPTARGET) + KOKKOS_ADD_EXECUTABLE_AND_TEST( + UnitTest_LogicalSpaces + SOURCES + tools/TestLogicalSpaces.cpp + ) + endif() + if(KOKKOS_ENABLE_LIBDL) + + KOKKOS_ADD_TEST_LIBRARY( + kokkosprinter-tool SHARED + SOURCES tools/printing-tool.cpp + ) + + KOKKOS_ADD_TEST_EXECUTABLE( + ProfilingAllCalls + tools/TestAllCalls.cpp + ) + + set(ADDRESS_REGEX "0x[0-9a-f]*") + set(MEMSPACE_REGEX "[HC][ou][sd][ta][a-zA-Z]*") + set(SIZE_REGEX "[0-9]*") + set(SKIP_SCRATCH_INITIALIZATION_REGEX ".*") + + KOKKOS_ADD_TEST( NAME ProfilingTestLibraryLoad + EXE ProfilingAllCalls + TOOL kokkosprinter-tool + PASS_REGULAR_EXPRESSION "kokkosp_init_library::kokkosp_allocate_data:${MEMSPACE_REGEX}:source:${ADDRESS_REGEX}:40::kokkosp_begin_parallel_for:Kokkos::View::initialization [[]source]:0:0::kokkosp_end_parallel_for:0::kokkosp_allocate_data:${MEMSPACE_REGEX}:destination:${ADDRESS_REGEX}:40::kokkosp_begin_parallel_for:Kokkos::View::initialization [[]destination]:0:0::kokkosp_end_parallel_for:0::kokkosp_begin_deep_copy:${MEMSPACE_REGEX}:destination:${ADDRESS_REGEX}:${MEMSPACE_REGEX}:source:${ADDRESS_REGEX}:40::kokkosp_end_deep_copy::kokkosp_begin_parallel_for:parallel_for:${SIZE_REGEX}:0::kokkosp_end_parallel_for:0::kokkosp_begin_parallel_reduce:parallel_reduce:${SIZE_REGEX}:1${SKIP_SCRATCH_INITIALIZATION_REGEX}::kokkosp_end_parallel_reduce:1::kokkosp_begin_parallel_scan:parallel_scan:${SIZE_REGEX}:2::kokkosp_end_parallel_scan:2::kokkosp_push_profile_region:push_region::kokkosp_pop_profile_region::kokkosp_create_profile_section:created_section:3::kokkosp_start_profile_section:3::kokkosp_stop_profile_section:3::kokkosp_destroy_profile_section:3::kokkosp_profile_event:profiling_event::kokkosp_deallocate_data:${MEMSPACE_REGEX}:destination:${ADDRESS_REGEX}:40::kokkosp_deallocate_data:${MEMSPACE_REGEX}:source:${ADDRESS_REGEX}:40::kokkosp_finalize_library::" + ) + endif() #KOKKOS_ENABLE_LIBDL if(NOT KOKKOS_HAS_TRILINOS) KOKKOS_ADD_TEST_EXECUTABLE( StackTraceTestExec @@ -365,7 +609,7 @@ KOKKOS_ADD_TEST( NAME UnitTest_StackTraceTest ) endif() -foreach(INITTESTS_NUM RANGE 1 16) +foreach(INITTESTS_NUM RANGE 1 18) KOKKOS_ADD_EXECUTABLE_AND_TEST( UnitTest_DefaultInit_${INITTESTS_NUM} SOURCES UnitTestMain.cpp default/TestDefaultDeviceTypeInit_${INITTESTS_NUM}.cpp @@ -421,7 +665,12 @@ FUNCTION (KOKKOS_ADD_INCREMENTAL_TEST DEVICE) SOURCES ${${DEVICE}_SOURCES} ) - TARGET_INCLUDE_DIRECTORIES( ${PACKAGE_NAME}_IncrementalTest_${DEVICE} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/incremental ) + SET(EXE_NAME ${PACKAGE_NAME}_IncrementalTest_${DEVICE}) + # Check that the target was actually created because in a TribITS build + # where only tests marked as PERFORMANCE enabled it would not be. + IF(TARGET ${EXE_NAME}) + TARGET_INCLUDE_DIRECTORIES(${EXE_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/incremental ) + ENDIF() ENDFUNCTION() @@ -433,3 +682,11 @@ KOKKOS_ADD_EXECUTABLE_AND_TEST( UnitTest_CTestDevice SOURCES UnitTestMain.cpp TestCTestDevice.cpp ) + +KOKKOS_ADD_EXECUTABLE_AND_TEST( + UnitTest_CMakePassCmdLineArgs + SOURCES UnitTest_CMakePassCmdLineArgs.cpp + ARGS "one 2 THREE" +) + +add_subdirectory(headers_self_contained) diff --git a/packages/kokkos/core/unit_test/Makefile b/packages/kokkos/core/unit_test/Makefile index 1a386adc4..f039d889e 100644 --- a/packages/kokkos/core/unit_test/Makefile +++ b/packages/kokkos/core/unit_test/Makefile @@ -11,7 +11,6 @@ vpath %.cpp ${KOKKOS_PATH}/core/unit_test/openmptarget vpath %.cpp ${KOKKOS_PATH}/core/unit_test/hip vpath %.cpp ${KOKKOS_PATH}/core/unit_test/hpx vpath %.cpp ${KOKKOS_PATH}/core/unit_test/cuda -vpath %.cpp ${KOKKOS_PATH}/core/unit_test/rocm TEST_HEADERS = $(wildcard $(KOKKOS_PATH)/core/unit_test/*.hpp) @@ -63,17 +62,50 @@ else STACK_TRACE_TERMINATE_FILTER := endif +TESTS = AtomicOperations_int AtomicOperations_unsignedint AtomicOperations_longint AtomicOperations_unsignedlongint AtomicOperations_longlongint AtomicOperations_double AtomicOperations_float AtomicOperations_complexdouble AtomicOperations_complexfloat AtomicViews Atomics BlockSizeDeduction Concepts Complex Crs DeepCopyAlignment FunctorAnalysis Init LocalDeepCopy MDRange_a MDRange_b MDRange_c MDRange_d MDRange_e MDRange_f Other RangePolicy RangePolicyRequire Reductions Reducers_a Reducers_b Reducers_c Reducers_d Reductions_DeviceView Scan SharedAlloc TeamBasic TeamReductionScan TeamScratch TeamTeamSize TeamVectorRange UniqueToken ViewAPI_a ViewAPI_b ViewAPI_c ViewAPI_d ViewAPI_e ViewCopy_a ViewCopy_b ViewLayoutStrideAssignment ViewMapping_a ViewMapping_b ViewMapping_subview ViewOfClass WorkGraph View_64bit ViewResize + +tmp := $(foreach device, $(KOKKOS_DEVICELIST), \ + tmp2 := $(foreach test, $(TESTS), \ + $(if $(filter Test$(device)_$(test).cpp, $(shell ls Test$(device)_$(test).cpp 2>/dev/null)),,\ + $(shell echo "\#include <Test"$(device)"_Category.hpp>" > Test$(device)_$(test).cpp); \ + $(shell echo "\#include <Test"$(test)".hpp>" >> Test$(device)_$(test).cpp); \ + ) \ + ) \ +) + +SUBVIEW_TESTS = SubView_a SubView_b SubView_c01 SubView_c02 SubView_c03 SubView_c04 SubView_c05 SubView_c06 SubView_c07 SubView_c08 SubView_c09 SubView_c10 SubView_c11 SubView_c12 SubView_c13 + +KOKKOS_SUBVIEW_DEVICELIST := $(filter-out Cuda, $(KOKKOS_DEVICELIST)) + +tmp := $(foreach device, $(KOKKOS_SUBVIEW_DEVICELIST), \ + tmp2 := $(foreach test, $(SUBVIEW_TESTS), \ + $(if $(filter Test$(device)_$(test).cpp, $(shell ls Test$(device)_$(test).cpp 2>/dev/null)),, \ + $(shell echo "\#include <Test"$(device)"_Category.hpp>" > Test$(device)_$(test).cpp); \ + $(shell echo "\#include <Test"$(test)".hpp>" >> Test$(device)_$(test).cpp); \ + ) \ + )\ +) + ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1) + tmp2 := $(foreach test, $(SUBVIEW_TESTS), \ + $(if $(filter TestCuda_$(test).cpp, $(shell ls TestCuda_$(test).cpp 2>/dev/null)),,\ + $(shell echo "\#include <TestCudaUVM_Category.hpp>" > TestCuda_$(test).cpp); \ + $(shell echo "\#include <Test"$(test)".hpp>" >> TestCuda_$(test).cpp); \ + )\ + ) + OBJ_CUDA = UnitTestMainInit.o gtest-all.o OBJ_CUDA += TestCuda_Init.o OBJ_CUDA += TestCuda_SharedAlloc.o TestCudaUVM_SharedAlloc.o TestCudaHostPinned_SharedAlloc.o OBJ_CUDA += TestCuda_RangePolicy.o TestCuda_RangePolicyRequire.o - OBJ_CUDA += TestCuda_ViewAPI_a.o TestCuda_ViewAPI_b.o TestCuda_ViewAPI_c.o TestCuda_ViewAPI_d.o TestCuda_ViewAPI_e.o + OBJ_CUDA += TestCuda_ViewAPI_a.o TestCuda_ViewAPI_b.o TestCuda_ViewAPI_c.o TestCuda_ViewAPI_d.o TestCuda_ViewAPI_e.o TestCuda_ViewCopy_a.o TestCuda_ViewCopy_b.o OBJ_CUDA += TestCuda_DeepCopyAlignment.o OBJ_CUDA += TestCuda_ViewMapping_a.o TestCuda_ViewMapping_b.o TestCuda_ViewMapping_subview.o TestCuda_ViewResize.o TestCuda_ViewLayoutStrideAssignment.o - OBJ_CUDA += TestCudaUVM_ViewCopy.o TestCudaUVM_ViewAPI_a.o TestCudaUVM_ViewAPI_b.o TestCudaUVM_ViewAPI_c.o TestCudaUVM_ViewAPI_d.o TestCudaUVM_ViewAPI_e.o + OBJ_CUDA += TestCudaUVM_ViewAPI_a.o TestCudaUVM_ViewAPI_b.o TestCudaUVM_ViewAPI_c.o TestCudaUVM_ViewAPI_d.o TestCudaUVM_ViewAPI_e.o + OBJ_CUDA += TestCudaUVM_ViewCopy_a.o TestCudaUVM_ViewCopy_b.o OBJ_CUDA += TestCudaUVM_ViewMapping_a.o TestCudaUVM_ViewMapping_b.o TestCudaUVM_ViewMapping_subview.o - OBJ_CUDA += TestCudaHostPinned_ViewCopy.o TestCudaHostPinned_ViewAPI_a.o TestCudaHostPinned_ViewAPI_b.o TestCudaHostPinned_ViewAPI_c.o TestCudaHostPinned_ViewAPI_d.o TestCudaHostPinned_ViewAPI_e.o + OBJ_CUDA += TestCudaHostPinned_ViewAPI_a.o TestCudaHostPinned_ViewAPI_b.o TestCudaHostPinned_ViewAPI_c.o TestCudaHostPinned_ViewAPI_d.o TestCudaHostPinned_ViewAPI_e.o + OBJ_CUDA += TestCudaHostPinned_ViewCopy_a.o TestCudaHostPinned_ViewCopy_b.o OBJ_CUDA += TestCudaHostPinned_ViewMapping_a.o TestCudaHostPinned_ViewMapping_b.o TestCudaHostPinned_ViewMapping_subview.o OBJ_CUDA += TestCuda_View_64bit.o OBJ_CUDA += TestCuda_ViewOfClass.o @@ -91,7 +123,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1) OBJ_CUDA += TestCuda_AtomicOperations_unsignedlongint.o TestCuda_AtomicOperations_longlongint.o TestCuda_AtomicOperations_double.o TestCuda_AtomicOperations_float.o OBJ_CUDA += TestCuda_AtomicOperations_complexfloat.o TestCuda_AtomicOperations_complexdouble.o OBJ_CUDA += TestCuda_AtomicViews.o TestCuda_Atomics.o - OBJ_CUDA += TestCuda_Team.o TestCuda_TeamScratch.o + OBJ_CUDA += TestCuda_TeamBasic.o TestCuda_TeamScratch.o OBJ_CUDA += TestCuda_TeamReductionScan.o TestCuda_TeamTeamSize.o OBJ_CUDA += TestCuda_TeamVectorRange.o OBJ_CUDA += TestCuda_Other.o @@ -103,6 +135,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1) OBJ_CUDA += TestCuda_LocalDeepCopy.o OBJ_CUDA += TestCuda_DebugSerialExecution.o OBJ_CUDA += TestCuda_DebugPinUVMSpace.o + OBJ_CUDA += TestCuda_TeamScratchStreams.o TARGETS += KokkosCore_UnitTest_Cuda TARGETS += KokkosCore_UnitTest_CudaInterOpInit @@ -110,58 +143,6 @@ ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1) TEST_TARGETS += test-cuda endif -ifeq ($(KOKKOS_INTERNAL_USE_ROCM), 1) - OBJ_ROCM = UnitTestMainInit.o gtest-all.o - OBJ_ROCM += TestROCm_Init.o - OBJ_ROCM += TestROCm_Complex.o - OBJ_ROCM += TestROCm_RangePolicy.o - OBJ_ROCM += TestROCm_AtomicOperations_int.o TestROCm_AtomicOperations_unsignedint.o TestROCm_AtomicOperations_longint.o - OBJ_ROCM += TestROCm_AtomicOperations_unsignedlongint.o TestROCm_AtomicOperations_longlongint.o TestROCm_AtomicOperations_double.o TestROCm_AtomicOperations_float.o - OBJ_ROCM += TestROCm_Atomics.o - OBJ_ROCM += TestROCm_AtomicViews.o - OBJ_ROCM += TestROCm_Other.o - OBJ_ROCM += TestROCm_MDRange_a.o TestROCm_MDRange_b.o TestROCm_MDRange_c.o TestROCm_MDRange_d.o TestROCm_MDRange_e.o - OBJ_ROCM += TestROCm_MDRangeReduce_a.o TestROCm_MDRangeReduce_b.o TestROCm_MDRangeReduce_c.o TestROCm_MDRangeReduce_d.o TestROCm_MDRangeReduce_e.o - OBJ_ROCM += TestROCm_Reductions.o - OBJ_ROCM += TestROCm_Reducers_a.o TestROCm_Reducers_b.o TestROCm_Reducers_c.o TestROCm_Reducers_d.o - OBJ_ROCM += TestROCm_Scan.o - OBJ_ROCM += TestROCm_SharedAlloc.o - OBJ_ROCM += TestROCm_SubView_a.o - OBJ_ROCM += TestROCm_SubView_b.o - OBJ_ROCM += TestROCm_SubView_c01.o - OBJ_ROCM += TestROCm_SubView_c02.o - OBJ_ROCM += TestROCm_SubView_c03.o - OBJ_ROCM += TestROCm_SubView_c04.o - OBJ_ROCM += TestROCm_SubView_c05.o - OBJ_ROCM += TestROCm_SubView_c06.o - OBJ_ROCM += TestROCm_SubView_c07.o - OBJ_ROCM += TestROCm_SubView_c08.o - OBJ_ROCM += TestROCm_SubView_c09.o - OBJ_ROCM += TestROCm_SubView_c10.o - OBJ_ROCM += TestROCm_SubView_c11.o - OBJ_ROCM += TestROCm_SubView_c12.o - OBJ_ROCM += TestROCm_SubView_c13.o - OBJ_ROCM += TestROCm_Team.o - OBJ_ROCM += TestROCm_TeamReductionScan.o - OBJ_ROCM += TestROCm_TeamScratch.o TestROCm_TeamTeamSize.o - OBJ_ROCM += TestROCm_ViewAPI_a.o TestROCm_ViewAPI_b.o TestROCm_ViewAPI_c.o TestROCm_ViewAPI_d.o TestROCm_ViewAPI_e.o - OBJ_ROCM += TestROCm_DeepCopyAlignment.o - OBJ_ROCM += TestROCm_ViewMapping_a.o - OBJ_ROCM += TestROCm_ViewMapping_b.o - OBJ_ROCM += TestROCm_ViewMapping_subview.o - OBJ_ROCM += TestROCmHostPinned_ViewCopy.o TestROCmHostPinned_ViewAPI_a.o TestROCmHostPinned_ViewAPI_b.o TestROCmHostPinned_ViewAPI_c.o TestROCmHostPinned_ViewAPI_d.o TestROCmHostPinned_ViewAPI_e.o - OBJ_ROCM += TestROCmHostPinned_View_64bit.o - OBJ_ROCM += TestROCmHostPinned_ViewMapping_a.o - OBJ_ROCM += TestROCmHostPinned_ViewMapping_b.o - OBJ_ROCM += TestROCmHostPinned_ViewMapping_subview.o - OBJ_ROCM += TestROCm_ViewOfClass.o - OBJ_ROCM += TestROCm_Spaces.o - OBJ_ROCM += TestROCm_Crs.o - - TARGETS += KokkosCore_UnitTest_ROCm - TEST_TARGETS += test-rocm -endif - ifeq ($(KOKKOS_INTERNAL_USE_PTHREADS), 1) OBJ_THREADS = UnitTestMainInit.o gtest-all.o OBJ_THREADS += TestThreads_Init.o @@ -169,6 +150,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_PTHREADS), 1) OBJ_THREADS += TestThreads_RangePolicy.o TestThreads_RangePolicyRequire.o OBJ_THREADS += TestThreads_View_64bit.o OBJ_THREADS += TestThreads_ViewAPI_a.o TestThreads_ViewAPI_b.o TestThreads_ViewAPI_c.o TestThreads_ViewAPI_d.o TestThreads_ViewAPI_e.o + OBJ_THREADS += TestThreads_ViewCopy_a.o TestThreads_ViewCopy_b.o OBJ_THREADS += TestThreads_DeepCopyAlignment.o OBJ_THREADS += TestThreads_ViewMapping_a.o TestThreads_ViewMapping_b.o TestThreads_ViewMapping_subview.o TestThreads_ViewResize.o TestThreads_ViewLayoutStrideAssignment.o OBJ_THREADS += TestThreads_ViewOfClass.o @@ -185,7 +167,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_PTHREADS), 1) OBJ_THREADS += TestThreads_AtomicOperations_unsignedlongint.o TestThreads_AtomicOperations_longlongint.o TestThreads_AtomicOperations_double.o TestThreads_AtomicOperations_float.o OBJ_THREADS += TestThreads_AtomicOperations_complexfloat.o TestThreads_AtomicOperations_complexdouble.o OBJ_THREADS += TestThreads_AtomicViews.o TestThreads_Atomics.o - OBJ_THREADS += TestThreads_Team.o TestThreads_TeamScratch.o TestThreads_TeamTeamSize.o + OBJ_THREADS += TestThreads_TeamBasic.o TestThreads_TeamScratch.o TestThreads_TeamTeamSize.o OBJ_THREADS += TestThreads_TeamReductionScan.o OBJ_THREADS += TestThreads_TeamVectorRange.o OBJ_THREADS += TestThreads_Other.o @@ -204,7 +186,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_OPENMP), 1) OBJ_OPENMP += TestOpenMP_RangePolicy.o TestOpenMP_RangePolicyRequire.o OBJ_OPENMP += TestOpenMP_View_64bit.o OBJ_OPENMP += TestOpenMP_ViewAPI_a.o TestOpenMP_ViewAPI_b.o TestOpenMP_ViewAPI_c.o TestOpenMP_ViewAPI_d.o TestOpenMP_ViewAPI_e.o - OBJ_OPENMP += TestOpenMP_DeepCopyAlignment.o + OBJ_OPENMP += TestOpenMP_DeepCopyAlignment.o TestOpenMP_ViewCopy_a.o TestOpenMP_ViewCopy_b.o OBJ_OPENMP += TestOpenMP_ViewMapping_a.o TestOpenMP_ViewMapping_b.o TestOpenMP_ViewMapping_subview.o TestOpenMP_ViewResize.o TestOpenMP_ViewLayoutStrideAssignment.o OBJ_OPENMP += TestOpenMP_ViewOfClass.o OBJ_OPENMP += TestOpenMP_SubView_a.o TestOpenMP_SubView_b.o @@ -221,7 +203,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_OPENMP), 1) OBJ_OPENMP += TestOpenMP_AtomicOperations_unsignedlongint.o TestOpenMP_AtomicOperations_longlongint.o TestOpenMP_AtomicOperations_double.o TestOpenMP_AtomicOperations_float.o OBJ_OPENMP += TestOpenMP_AtomicOperations_complexfloat.o TestOpenMP_AtomicOperations_complexdouble.o OBJ_OPENMP += TestOpenMP_AtomicViews.o TestOpenMP_Atomics.o - OBJ_OPENMP += TestOpenMP_Team.o TestOpenMP_TeamScratch.o + OBJ_OPENMP += TestOpenMP_TeamBasic.o TestOpenMP_TeamScratch.o OBJ_OPENMP += TestOpenMP_TeamReductionScan.o TestOpenMP_TeamTeamSize.o OBJ_OPENMP += TestOpenMP_TeamVectorRange.o OBJ_OPENMP += TestOpenMP_Other.o @@ -243,7 +225,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_OPENMPTARGET), 1) #OBJ_OPENMPTARGET += TestOpenMPTarget_SharedAlloc.o OBJ_OPENMPTARGET += TestOpenMPTarget_RangePolicy.o OBJ_OPENMPTARGET += TestOpenMPTarget_ViewAPI_a.o TestOpenMPTarget_ViewAPI_b.o TestOpenMPTarget_ViewAPI_c.o TestOpenMPTarget_ViewAPI_d.o #Some commented out code - #OBJ_OPENMPTARGET += TestOpenMPTarget_ViewAPI_e.o + #OBJ_OPENMPTARGET += TestOpenMPTarget_ViewAPI_e.o TestOpenMPTarget_ViewCopy_a.o TestOpenMPTarget_ViewCopy_b.o OBJ_OPENMPTARGET += TestOpenMPTarget_DeepCopyAlignment.o OBJ_OPENMPTARGET += TestOpenMPTarget_ViewMapping_a.o OBJ_OPENMPTARGET += TestOpenMPTarget_ViewMapping_b.o @@ -265,8 +247,9 @@ ifeq ($(KOKKOS_INTERNAL_USE_OPENMPTARGET), 1) #OBJ_OPENMPTARGET += TestOpenMPTarget_AtomicOperations_complexdouble.o OBJ_OPENMPTARGET += TestOpenMPTarget_AtomicViews.o OBJ_OPENMPTARGET += TestOpenMPTarget_Atomics.o # Commented Out Arbitrary Type Atomics - #OBJ_OPENMPTARGET += TestOpenMPTarget_Team.o # There is still a static function in this + #OBJ_OPENMPTARGET += TestOpenMPTarget_TeamBasic.o # There is still a static function in this #OBJ_OPENMPTARGET += TestOpenMPTarget_TeamScratch.o + #OBJ_OPENMPTARGET += TestOpenMPTarget_TeamScan.o #OBJ_OPENMPTARGET += TestOpenMPTarget_TeamReductionScan.o #OBJ_OPENMPTARGET += TestOpenMPTarget_Other.o #OBJ_OPENMPTARGET += TestOpenMPTarget_MDRange_a.o TestOpenMPTarget_MDRange_b.o TestOpenMPTarget_MDRange_c.o TestOpenMPTarget_MDRange_d.o TestOpenMPTarget_MDRange_d.e @@ -284,7 +267,8 @@ ifeq ($(KOKKOS_INTERNAL_USE_HIP), 1) OBJ_HIP += TestHIP_Reductions.o OBJ_HIP += TestHIP_MDRange_a.o TestHIP_MDRange_b.o TestHIP_MDRange_c.o TestHIP_MDRange_d.o TestHIP_MDRange_e.o OBJ_HIP += TestHIP_Spaces.o - OBJ_HIP += TestHIPHostPinned_ViewCopy.o TestHIPHostPinned_ViewAPI_a.o TestHIPHostPinned_ViewAPI_b.o TestHIPHostPinned_ViewAPI_c.o TestHIPHostPinned_ViewAPI_d.o TestHIPHostPinned_ViewAPI_e.o + OBJ_HIP += TestHIPHostPinned_ViewAPI_a.o TestHIPHostPinned_ViewAPI_b.o TestHIPHostPinned_ViewAPI_c.o TestHIPHostPinned_ViewAPI_d.o TestHIPHostPinned_ViewAPI_e.o + OBJ_HIP += TestHIPHostPinned_ViewCopy_a.o TestHIPHostPinned_ViewCopy_b.o OBJ_HIP += TestHIPHostPinned_ViewMapping_a.o TestHIPHostPinned_ViewMapping_b.o TestHIPHostPinned_ViewMapping_subview.o TARGETS += KokkosCore_UnitTest_HIP @@ -299,6 +283,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_HPX), 1) OBJ_HPX += TestHPX_RangePolicy.o TestHPX_RangePolicyRequire.o OBJ_HPX += TestHPX_View_64bit.o OBJ_HPX += TestHPX_ViewAPI_a.o TestHPX_ViewAPI_b.o TestHPX_ViewAPI_c.o TestHPX_ViewAPI_d.o TestHPX_ViewAPI_e.o + OBJ_HPX += TestHPX_ViewCopy_a.o TestHPX_ViewCopy_b.o OBJ_HPX += TestHPX_ViewMapping_a.o TestHPX_ViewMapping_b.o TestHPX_ViewMapping_subview.o TestHPX_ViewResize.o OBJ_HPX += TestHPX_ViewOfClass.o OBJ_HPX += TestHPX_SubView_a.o TestHPX_SubView_b.o @@ -314,7 +299,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_HPX), 1) OBJ_HPX += TestHPX_AtomicOperations_int.o TestHPX_AtomicOperations_unsignedint.o TestHPX_AtomicOperations_longint.o OBJ_HPX += TestHPX_AtomicOperations_unsignedlongint.o TestHPX_AtomicOperations_longlongint.o TestHPX_AtomicOperations_double.o TestHPX_AtomicOperations_float.o OBJ_HPX += TestHPX_AtomicViews.o TestHPX_Atomics.o - OBJ_HPX += TestHPX_Team.o + OBJ_HPX += TestHPX_TeamBasic.o OBJ_HPX += TestHPX_TeamVectorRange.o OBJ_HPX += TestHPX_TeamScratch.o OBJ_HPX += TestHPX_TeamReductionScan.o @@ -338,7 +323,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_SERIAL), 1) OBJ_SERIAL += TestSerial_RangePolicy.o TestSerial_RangePolicyRequire.o OBJ_SERIAL += TestSerial_View_64bit.o OBJ_SERIAL += TestSerial_ViewAPI_a.o TestSerial_ViewAPI_b.o TestSerial_ViewAPI_c.o TestSerial_ViewAPI_d.o TestSerial_ViewAPI_e.o - OBJ_SERIAL += TestSerial_DeepCopyAlignment.o + OBJ_SERIAL += TestSerial_DeepCopyAlignment.o TestSerial_ViewCopy_a.o TestSerial_ViewCopy_b.o OBJ_SERIAL += TestSerial_ViewMapping_a.o TestSerial_ViewMapping_b.o TestSerial_ViewMapping_subview.o TestSerial_ViewResize.o TestSerial_ViewLayoutStrideAssignment.o OBJ_SERIAL += TestSerial_ViewOfClass.o OBJ_SERIAL += TestSerial_SubView_a.o TestSerial_SubView_b.o @@ -355,7 +340,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_SERIAL), 1) OBJ_SERIAL += TestSerial_AtomicOperations_unsignedlongint.o TestSerial_AtomicOperations_longlongint.o TestSerial_AtomicOperations_double.o TestSerial_AtomicOperations_float.o OBJ_SERIAL += TestSerial_AtomicOperations_complexfloat.o TestSerial_AtomicOperations_complexdouble.o OBJ_SERIAL += TestSerial_AtomicViews.o TestSerial_Atomics.o - OBJ_SERIAL += TestSerial_Team.o TestSerial_TeamScratch.o + OBJ_SERIAL += TestSerial_TeamBasic.o TestSerial_TeamScratch.o OBJ_SERIAL += TestSerial_TeamVectorRange.o OBJ_SERIAL += TestSerial_TeamReductionScan.o TestSerial_TeamTeamSize.o OBJ_SERIAL += TestSerial_Other.o @@ -420,9 +405,6 @@ KokkosCore_UnitTest_CudaInterOpInit: UnitTestMain.o gtest-all.o TestCuda_InterOp KokkosCore_UnitTest_CudaInterOpStreams: UnitTestMain.o gtest-all.o TestCuda_InterOp_Streams.o $(KOKKOS_LINK_DEPENDS) $(LINK) $(EXTRA_PATH) UnitTestMain.o gtest-all.o TestCuda_InterOp_Streams.o $(KOKKOS_LIBS) $(LIB) $(KOKKOS_LDFLAGS) $(LDFLAGS) -o KokkosCore_UnitTest_CudaInterOpStreams -KokkosCore_UnitTest_ROCm: $(OBJ_ROCM) $(KOKKOS_LINK_DEPENDS) - $(LINK) $(EXTRA_PATH) $(OBJ_ROCM) $(KOKKOS_LIBS) $(LIB) $(KOKKOS_LDFLAGS) $(LDFLAGS) -o KokkosCore_UnitTest_ROCm - KokkosCore_UnitTest_Threads: $(OBJ_THREADS) $(KOKKOS_LINK_DEPENDS) $(LINK) $(EXTRA_PATH) $(OBJ_THREADS) $(KOKKOS_LIBS) $(LIB) $(KOKKOS_LDFLAGS) $(LDFLAGS) -o KokkosCore_UnitTest_Threads @@ -477,9 +459,6 @@ test-cuda: KokkosCore_UnitTest_Cuda ./KokkosCore_UnitTest_CudaInterOpInit ./KokkosCore_UnitTest_CudaInterOpStreams -test-rocm: KokkosCore_UnitTest_ROCm - ./KokkosCore_UnitTest_ROCm - test-threads: KokkosCore_UnitTest_Threads ./KokkosCore_UnitTest_Threads @@ -536,7 +515,8 @@ build_all: $(TARGETS) test: $(TEST_TARGETS) clean: kokkos-clean - rm -f *.o $(TARGETS) + rm -f *.o $(TARGETS) TestCuda*.cpp TestThreads*.cpp TestOpenMP*.cpp TestSerial*.cpp TestHIP*.cpp \ + TestOpenMPTarget*.cpp TestHPX*.cpp # Compilation rules diff --git a/packages/kokkos/core/unit_test/TestAggregate.hpp b/packages/kokkos/core/unit_test/TestAggregate.hpp index 1f812cc11..3151143a6 100644 --- a/packages/kokkos/core/unit_test/TestAggregate.hpp +++ b/packages/kokkos/core/unit_test/TestAggregate.hpp @@ -57,18 +57,18 @@ namespace Test { template <class DeviceType> void TestViewAggregate() { - typedef Kokkos::Array<double, 32> value_type; - typedef Kokkos::Impl::ViewDataAnalysis<value_type *, Kokkos::LayoutLeft, - value_type> - analysis_1d; + using value_type = Kokkos::Array<double, 32>; + using analysis_1d = + Kokkos::Impl::ViewDataAnalysis<value_type *, Kokkos::LayoutLeft, + value_type>; static_assert( std::is_same<typename analysis_1d::specialize, Kokkos::Array<> >::value, ""); - typedef Kokkos::ViewTraits<value_type **, DeviceType> a32_traits; - typedef Kokkos::ViewTraits<typename a32_traits::scalar_array_type, DeviceType> - flat_traits; + using a32_traits = Kokkos::ViewTraits<value_type **, DeviceType>; + using flat_traits = + Kokkos::ViewTraits<typename a32_traits::scalar_array_type, DeviceType>; static_assert( std::is_same<typename a32_traits::specialize, Kokkos::Array<> >::value, @@ -84,8 +84,8 @@ void TestViewAggregate() { static_assert(flat_traits::rank_dynamic == 2, ""); static_assert(flat_traits::dimension::N2 == 32, ""); - typedef Kokkos::View<Kokkos::Array<double, 32> **, DeviceType> a32_type; - typedef typename a32_type::array_type a32_flat_type; + using a32_type = Kokkos::View<Kokkos::Array<double, 32> **, DeviceType>; + using a32_flat_type = typename a32_type::array_type; static_assert(std::is_same<typename a32_type::value_type, value_type>::value, ""); diff --git a/packages/kokkos/core/unit_test/TestAtomicOperations.hpp b/packages/kokkos/core/unit_test/TestAtomicOperations.hpp index 109adaa1b..04362125c 100644 --- a/packages/kokkos/core/unit_test/TestAtomicOperations.hpp +++ b/packages/kokkos/core/unit_test/TestAtomicOperations.hpp @@ -52,9 +52,9 @@ namespace TestAtomicOperations { template <class T, class DEVICE_TYPE> struct ZeroFunctor { - typedef DEVICE_TYPE execution_space; - typedef typename Kokkos::View<T, execution_space> type; - typedef typename Kokkos::View<T, execution_space>::HostMirror h_type; + using execution_space = DEVICE_TYPE; + using type = typename Kokkos::View<T, execution_space>; + using h_type = typename Kokkos::View<T, execution_space>::HostMirror; type data; @@ -68,9 +68,9 @@ struct ZeroFunctor { template <class T, class DEVICE_TYPE> struct InitFunctor { - typedef DEVICE_TYPE execution_space; - typedef typename Kokkos::View<T, execution_space> type; - typedef typename Kokkos::View<T, execution_space>::HostMirror h_type; + using execution_space = DEVICE_TYPE; + using type = typename Kokkos::View<T, execution_space>; + using h_type = typename Kokkos::View<T, execution_space>::HostMirror; type data; T init_value; @@ -87,8 +87,8 @@ struct InitFunctor { template <class T, class DEVICE_TYPE> struct MaxFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View<T, execution_space> type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View<T, execution_space>; type data; T i0; @@ -160,8 +160,8 @@ bool MaxAtomicTest(T i0, T i1) { template <class T, class DEVICE_TYPE> struct MinFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View<T, execution_space> type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View<T, execution_space>; type data; T i0; @@ -231,8 +231,8 @@ bool MinAtomicTest(T i0, T i1) { template <class T, class DEVICE_TYPE> struct IncFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View<T, execution_space> type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View<T, execution_space>; type data; T i0; @@ -301,8 +301,8 @@ bool IncAtomicTest(T i0) { template <class T, class DEVICE_TYPE> struct DecFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View<T, execution_space> type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View<T, execution_space>; type data; T i0; @@ -371,8 +371,8 @@ bool DecAtomicTest(T i0) { template <class T, class DEVICE_TYPE> struct MulFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View<T, execution_space> type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View<T, execution_space>; type data; T i0; @@ -442,8 +442,8 @@ bool MulAtomicTest(T i0, T i1) { template <class T, class DEVICE_TYPE> struct DivFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View<T, execution_space> type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View<T, execution_space>; type data; T i0; @@ -515,8 +515,8 @@ bool DivAtomicTest(T i0, T i1) { template <class T, class DEVICE_TYPE> struct ModFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View<T, execution_space> type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View<T, execution_space>; type data; T i0; @@ -586,8 +586,8 @@ bool ModAtomicTest(T i0, T i1) { template <class T, class DEVICE_TYPE> struct AndFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View<T, execution_space> type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View<T, execution_space>; type data; T i0; @@ -657,8 +657,8 @@ bool AndAtomicTest(T i0, T i1) { template <class T, class DEVICE_TYPE> struct OrFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View<T, execution_space> type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View<T, execution_space>; type data; T i0; @@ -728,8 +728,8 @@ bool OrAtomicTest(T i0, T i1) { template <class T, class DEVICE_TYPE> struct XorFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View<T, execution_space> type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View<T, execution_space>; type data; T i0; @@ -799,8 +799,8 @@ bool XorAtomicTest(T i0, T i1) { template <class T, class DEVICE_TYPE> struct LShiftFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View<T, execution_space> type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View<T, execution_space>; type data; T i0; @@ -870,8 +870,8 @@ bool LShiftAtomicTest(T i0, T i1) { template <class T, class DEVICE_TYPE> struct RShiftFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View<T, execution_space> type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View<T, execution_space>; type data; T i0; diff --git a/packages/kokkos/core/unit_test/TestAtomicViews.hpp b/packages/kokkos/core/unit_test/TestAtomicViews.hpp index 109598e8c..b615b407f 100644 --- a/packages/kokkos/core/unit_test/TestAtomicViews.hpp +++ b/packages/kokkos/core/unit_test/TestAtomicViews.hpp @@ -66,11 +66,11 @@ struct TestViewOperator_LeftAndRight; template <class DataType, class DeviceType> struct TestViewOperator_LeftAndRight<DataType, DeviceType, 1> { - typedef typename DeviceType::execution_space execution_space; - typedef typename DeviceType::memory_space memory_space; - typedef typename execution_space::size_type size_type; + using execution_space = typename DeviceType::execution_space; + using memory_space = typename DeviceType::memory_space; + using size_type = typename execution_space::size_type; - typedef int value_type; + using value_type = int; KOKKOS_INLINE_FUNCTION static void join(volatile value_type& update, @@ -81,17 +81,16 @@ struct TestViewOperator_LeftAndRight<DataType, DeviceType, 1> { KOKKOS_INLINE_FUNCTION static void init(value_type& update) { update = 0; } - typedef Kokkos::View<DataType, Kokkos::LayoutLeft, execution_space, - Kokkos::MemoryTraits<Kokkos::Atomic> > - left_view; + using left_view = Kokkos::View<DataType, Kokkos::LayoutLeft, execution_space, + Kokkos::MemoryTraits<Kokkos::Atomic> >; - typedef Kokkos::View<DataType, Kokkos::LayoutRight, execution_space, - Kokkos::MemoryTraits<Kokkos::Atomic> > - right_view; + using right_view = + Kokkos::View<DataType, Kokkos::LayoutRight, execution_space, + Kokkos::MemoryTraits<Kokkos::Atomic> >; - typedef Kokkos::View<DataType, Kokkos::LayoutStride, execution_space, - Kokkos::MemoryTraits<Kokkos::Atomic> > - stride_view; + using stride_view = + Kokkos::View<DataType, Kokkos::LayoutStride, execution_space, + Kokkos::MemoryTraits<Kokkos::Atomic> >; left_view left; right_view right; @@ -123,21 +122,12 @@ struct TestViewOperator_LeftAndRight<DataType, DeviceType, 1> { for (unsigned i0 = 0; i0 < unsigned(left.extent(0)); ++i0) { // Below checks that values match, but unable to check the references. // Should this be able to be checked? -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - if (left(i0) != left(i0, 0, 0, 0, 0, 0, 0, 0)) { - update |= 3; - } - if (right(i0) != right(i0, 0, 0, 0, 0, 0, 0, 0)) { - update |= 3; - } -#else if (left(i0) != left.access(i0, 0, 0, 0, 0, 0, 0, 0)) { update |= 3; } if (right(i0) != right.access(i0, 0, 0, 0, 0, 0, 0, 0)) { update |= 3; } -#endif if (left(i0) != left_stride(i0)) { update |= 4; } @@ -157,42 +147,42 @@ struct TestViewOperator_LeftAndRight<DataType, DeviceType, 1> { template <typename T, class DeviceType> class TestAtomicViewAPI { public: - typedef DeviceType device; + using device = DeviceType; enum { N0 = 1000, N1 = 3, N2 = 5, N3 = 7 }; - typedef Kokkos::View<T, device> dView0; - typedef Kokkos::View<T*, device> dView1; - typedef Kokkos::View<T * [N1], device> dView2; - typedef Kokkos::View<T * [N1][N2], device> dView3; - typedef Kokkos::View<T * [N1][N2][N3], device> dView4; - typedef Kokkos::View<const T * [N1][N2][N3], device> const_dView4; - typedef Kokkos::View<T****, device, Kokkos::MemoryUnmanaged> dView4_unmanaged; - typedef typename dView0::host_mirror_space host; - - typedef Kokkos::View<T, device, Kokkos::MemoryTraits<Kokkos::Atomic> > aView0; - typedef Kokkos::View<T*, device, Kokkos::MemoryTraits<Kokkos::Atomic> > - aView1; - typedef Kokkos::View<T * [N1], device, Kokkos::MemoryTraits<Kokkos::Atomic> > - aView2; - typedef Kokkos::View<T * [N1][N2], device, - Kokkos::MemoryTraits<Kokkos::Atomic> > - aView3; - typedef Kokkos::View<T * [N1][N2][N3], device, - Kokkos::MemoryTraits<Kokkos::Atomic> > - aView4; - typedef Kokkos::View<const T * [N1][N2][N3], device, - Kokkos::MemoryTraits<Kokkos::Atomic> > - const_aView4; - - typedef Kokkos::View< - T****, device, Kokkos::MemoryTraits<Kokkos::Unmanaged | Kokkos::Atomic> > - aView4_unmanaged; - - typedef typename aView0::host_mirror_space host_atomic; + using dView0 = Kokkos::View<T, device>; + using dView1 = Kokkos::View<T*, device>; + using dView2 = Kokkos::View<T * [N1], device>; + using dView3 = Kokkos::View<T * [N1][N2], device>; + using dView4 = Kokkos::View<T * [N1][N2][N3], device>; + using const_dView4 = Kokkos::View<const T * [N1][N2][N3], device>; + using dView4_unmanaged = Kokkos::View<T****, device, Kokkos::MemoryUnmanaged>; + using host = typename dView0::host_mirror_space; + + using aView0 = Kokkos::View<T, device, Kokkos::MemoryTraits<Kokkos::Atomic> >; + using aView1 = + Kokkos::View<T*, device, Kokkos::MemoryTraits<Kokkos::Atomic> >; + using aView2 = + Kokkos::View<T * [N1], device, Kokkos::MemoryTraits<Kokkos::Atomic> >; + using aView3 = + Kokkos::View<T * [N1][N2], device, Kokkos::MemoryTraits<Kokkos::Atomic> >; + using aView4 = Kokkos::View<T * [N1][N2][N3], device, + Kokkos::MemoryTraits<Kokkos::Atomic> >; + using const_aView4 = Kokkos::View<const T * [N1][N2][N3], device, + Kokkos::MemoryTraits<Kokkos::Atomic> >; + + using aView4_unmanaged = + Kokkos::View<T****, device, + Kokkos::MemoryTraits<Kokkos::Unmanaged | Kokkos::Atomic> >; + + using host_atomic = typename aView0::host_mirror_space; TestAtomicViewAPI() { + // FIXME_OPENMPTARGET +#ifndef KOKKOS_ENABLE_OPENMPTARGET TestViewOperator_LeftAndRight<int[2], device>::testit(); +#endif run_test_rank0(); run_test_rank4(); run_test_const(); @@ -281,7 +271,7 @@ class TestAtomicViewAPI { unsigned(N0) * unsigned(N1) * unsigned(N2) * unsigned(N3)); } - typedef T DataType[2]; + using DataType = T[2]; static void check_auto_conversion_to_const( const Kokkos::View<const DataType, device, @@ -292,12 +282,10 @@ class TestAtomicViewAPI { } static void run_test_const() { - typedef Kokkos::View<DataType, device, - Kokkos::MemoryTraits<Kokkos::Atomic> > - typeX; - typedef Kokkos::View<const DataType, device, - Kokkos::MemoryTraits<Kokkos::Atomic> > - const_typeX; + using typeX = + Kokkos::View<DataType, device, Kokkos::MemoryTraits<Kokkos::Atomic> >; + using const_typeX = Kokkos::View<const DataType, device, + Kokkos::MemoryTraits<Kokkos::Atomic> >; typeX x("X"); const_typeX xc = x; @@ -315,7 +303,7 @@ class TestAtomicViewAPI { template <class T, class execution_space> struct InitFunctor_Seq { - typedef Kokkos::View<T*, execution_space> view_type; + using view_type = Kokkos::View<T*, execution_space>; view_type input; const int64_t length; @@ -333,7 +321,7 @@ struct InitFunctor_Seq { template <class T, class execution_space> struct InitFunctor_ModTimes { - typedef Kokkos::View<T*, execution_space> view_type; + using view_type = Kokkos::View<T*, execution_space>; view_type input; const int64_t length; @@ -357,7 +345,7 @@ struct InitFunctor_ModTimes { template <class T, class execution_space> struct InitFunctor_ModShift { - typedef Kokkos::View<T*, execution_space> view_type; + using view_type = Kokkos::View<T*, execution_space>; view_type input; const int64_t length; @@ -383,10 +371,9 @@ struct InitFunctor_ModShift { template <class T, class execution_space> struct PlusEqualAtomicViewFunctor { - typedef Kokkos::View<T*, execution_space, - Kokkos::MemoryTraits<Kokkos::Atomic> > - atomic_view_type; - typedef Kokkos::View<T*, execution_space> view_type; + using atomic_view_type = + Kokkos::View<T*, execution_space, Kokkos::MemoryTraits<Kokkos::Atomic> >; + using view_type = Kokkos::View<T*, execution_space>; view_type input; atomic_view_type even_odd_result; @@ -411,8 +398,8 @@ struct PlusEqualAtomicViewFunctor { template <class T, class execution_space> T PlusEqualAtomicView(const int64_t input_length) { - typedef Kokkos::View<T*, execution_space> view_type; - typedef typename view_type::HostMirror host_view_type; + using view_type = Kokkos::View<T*, execution_space>; + using host_view_type = typename view_type::HostMirror; const int64_t length = input_length; @@ -480,10 +467,9 @@ bool PlusEqualAtomicViewTest(int64_t input_length) { template <class T, class execution_space> struct MinusEqualAtomicViewFunctor { - typedef Kokkos::View<T*, execution_space, - Kokkos::MemoryTraits<Kokkos::Atomic> > - atomic_view_type; - typedef Kokkos::View<T*, execution_space> view_type; + using atomic_view_type = + Kokkos::View<T*, execution_space, Kokkos::MemoryTraits<Kokkos::Atomic> >; + using view_type = Kokkos::View<T*, execution_space>; view_type input; atomic_view_type even_odd_result; @@ -509,8 +495,8 @@ struct MinusEqualAtomicViewFunctor { template <class T, class execution_space> T MinusEqualAtomicView(const int64_t input_length) { - typedef Kokkos::View<T*, execution_space> view_type; - typedef typename view_type::HostMirror host_view_type; + using view_type = Kokkos::View<T*, execution_space>; + using host_view_type = typename view_type::HostMirror; const int64_t length = input_length; @@ -578,10 +564,9 @@ bool MinusEqualAtomicViewTest(int64_t input_length) { template <class T, class execution_space> struct TimesEqualAtomicViewFunctor { - typedef Kokkos::View<T*, execution_space, - Kokkos::MemoryTraits<Kokkos::Atomic> > - atomic_view_type; - typedef Kokkos::View<T*, execution_space> view_type; + using atomic_view_type = + Kokkos::View<T*, execution_space, Kokkos::MemoryTraits<Kokkos::Atomic> >; + using view_type = Kokkos::View<T*, execution_space>; view_type input; atomic_view_type result; @@ -602,8 +587,8 @@ struct TimesEqualAtomicViewFunctor { template <class T, class execution_space> T TimesEqualAtomicView(const int64_t input_length, const int64_t remainder) { - typedef Kokkos::View<T*, execution_space> view_type; - typedef typename view_type::HostMirror host_view_type; + using view_type = Kokkos::View<T*, execution_space>; + using host_view_type = typename view_type::HostMirror; const int64_t length = input_length; @@ -669,11 +654,10 @@ bool TimesEqualAtomicViewTest(const int64_t input_length) { template <class T, class execution_space> struct DivEqualAtomicViewFunctor { - typedef Kokkos::View<T, execution_space, - Kokkos::MemoryTraits<Kokkos::Atomic> > - atomic_view_type; - typedef Kokkos::View<T*, execution_space> view_type; - typedef Kokkos::View<T, execution_space> scalar_view_type; + using atomic_view_type = + Kokkos::View<T, execution_space, Kokkos::MemoryTraits<Kokkos::Atomic> >; + using view_type = Kokkos::View<T*, execution_space>; + using scalar_view_type = Kokkos::View<T, execution_space>; view_type input; atomic_view_type result; @@ -694,9 +678,9 @@ struct DivEqualAtomicViewFunctor { template <class T, class execution_space> T DivEqualAtomicView(const int64_t input_length, const int64_t remainder) { - typedef Kokkos::View<T*, execution_space> view_type; - typedef Kokkos::View<T, execution_space> scalar_view_type; - typedef typename scalar_view_type::HostMirror host_scalar_view_type; + using view_type = Kokkos::View<T*, execution_space>; + using scalar_view_type = Kokkos::View<T, execution_space>; + using host_scalar_view_type = typename scalar_view_type::HostMirror; const int64_t length = input_length; @@ -760,11 +744,10 @@ bool DivEqualAtomicViewTest(const int64_t input_length) { template <class T, class execution_space> struct ModEqualAtomicViewFunctor { - typedef Kokkos::View<T, execution_space, - Kokkos::MemoryTraits<Kokkos::Atomic> > - atomic_view_type; - typedef Kokkos::View<T*, execution_space> view_type; - typedef Kokkos::View<T, execution_space> scalar_view_type; + using atomic_view_type = + Kokkos::View<T, execution_space, Kokkos::MemoryTraits<Kokkos::Atomic> >; + using view_type = Kokkos::View<T*, execution_space>; + using scalar_view_type = Kokkos::View<T, execution_space>; view_type input; atomic_view_type result; @@ -785,9 +768,9 @@ struct ModEqualAtomicViewFunctor { template <class T, class execution_space> T ModEqualAtomicView(const int64_t input_length, const int64_t remainder) { - typedef Kokkos::View<T*, execution_space> view_type; - typedef Kokkos::View<T, execution_space> scalar_view_type; - typedef typename scalar_view_type::HostMirror host_scalar_view_type; + using view_type = Kokkos::View<T*, execution_space>; + using scalar_view_type = Kokkos::View<T, execution_space>; + using host_scalar_view_type = typename scalar_view_type::HostMirror; const int64_t length = input_length; @@ -855,11 +838,10 @@ bool ModEqualAtomicViewTest(const int64_t input_length) { template <class T, class execution_space> struct RSEqualAtomicViewFunctor { - typedef Kokkos::View<T****, execution_space, - Kokkos::MemoryTraits<Kokkos::Atomic> > - atomic_view_type; - typedef Kokkos::View<T*, execution_space> view_type; - typedef Kokkos::View<T****, execution_space> result_view_type; + using atomic_view_type = Kokkos::View<T****, execution_space, + Kokkos::MemoryTraits<Kokkos::Atomic> >; + using view_type = Kokkos::View<T*, execution_space>; + using result_view_type = Kokkos::View<T****, execution_space>; const view_type input; atomic_view_type result; @@ -890,9 +872,9 @@ struct RSEqualAtomicViewFunctor { template <class T, class execution_space> T RSEqualAtomicView(const int64_t input_length, const int64_t value, const int64_t remainder) { - typedef Kokkos::View<T*, execution_space> view_type; - typedef Kokkos::View<T****, execution_space> result_view_type; - typedef typename result_view_type::HostMirror host_scalar_view_type; + using view_type = Kokkos::View<T*, execution_space>; + using result_view_type = Kokkos::View<T****, execution_space>; + using host_scalar_view_type = typename result_view_type::HostMirror; const int64_t length = input_length; @@ -983,11 +965,10 @@ bool RSEqualAtomicViewTest(const int64_t input_length) { template <class T, class execution_space> struct LSEqualAtomicViewFunctor { - typedef Kokkos::View<T****, execution_space, - Kokkos::MemoryTraits<Kokkos::Atomic> > - atomic_view_type; - typedef Kokkos::View<T*, execution_space> view_type; - typedef Kokkos::View<T****, execution_space> result_view_type; + using atomic_view_type = Kokkos::View<T****, execution_space, + Kokkos::MemoryTraits<Kokkos::Atomic> >; + using view_type = Kokkos::View<T*, execution_space>; + using result_view_type = Kokkos::View<T****, execution_space>; view_type input; atomic_view_type result; @@ -1018,9 +999,9 @@ struct LSEqualAtomicViewFunctor { template <class T, class execution_space> T LSEqualAtomicView(const int64_t input_length, const int64_t value, const int64_t remainder) { - typedef Kokkos::View<T*, execution_space> view_type; - typedef Kokkos::View<T****, execution_space> result_view_type; - typedef typename result_view_type::HostMirror host_scalar_view_type; + using view_type = Kokkos::View<T*, execution_space>; + using result_view_type = Kokkos::View<T****, execution_space>; + using host_scalar_view_type = typename result_view_type::HostMirror; const int64_t length = input_length; @@ -1111,10 +1092,9 @@ bool LSEqualAtomicViewTest(const int64_t input_length) { template <class T, class execution_space> struct AndEqualAtomicViewFunctor { - typedef Kokkos::View<T*, execution_space, - Kokkos::MemoryTraits<Kokkos::Atomic> > - atomic_view_type; - typedef Kokkos::View<T*, execution_space> view_type; + using atomic_view_type = + Kokkos::View<T*, execution_space, Kokkos::MemoryTraits<Kokkos::Atomic> >; + using view_type = Kokkos::View<T*, execution_space>; view_type input; atomic_view_type even_odd_result; @@ -1139,8 +1119,8 @@ struct AndEqualAtomicViewFunctor { template <class T, class execution_space> T AndEqualAtomicView(const int64_t input_length) { - typedef Kokkos::View<T*, execution_space> view_type; - typedef typename view_type::HostMirror host_view_type; + using view_type = Kokkos::View<T*, execution_space>; + using host_view_type = typename view_type::HostMirror; const int64_t length = input_length; @@ -1205,10 +1185,9 @@ bool AndEqualAtomicViewTest(int64_t input_length) { template <class T, class execution_space> struct OrEqualAtomicViewFunctor { - typedef Kokkos::View<T*, execution_space, - Kokkos::MemoryTraits<Kokkos::Atomic> > - atomic_view_type; - typedef Kokkos::View<T*, execution_space> view_type; + using atomic_view_type = + Kokkos::View<T*, execution_space, Kokkos::MemoryTraits<Kokkos::Atomic> >; + using view_type = Kokkos::View<T*, execution_space>; view_type input; atomic_view_type even_odd_result; @@ -1233,8 +1212,8 @@ struct OrEqualAtomicViewFunctor { template <class T, class execution_space> T OrEqualAtomicView(const int64_t input_length) { - typedef Kokkos::View<T*, execution_space> view_type; - typedef typename view_type::HostMirror host_view_type; + using view_type = Kokkos::View<T*, execution_space>; + using host_view_type = typename view_type::HostMirror; const int64_t length = input_length; @@ -1298,10 +1277,9 @@ bool OrEqualAtomicViewTest(int64_t input_length) { template <class T, class execution_space> struct XOrEqualAtomicViewFunctor { - typedef Kokkos::View<T*, execution_space, - Kokkos::MemoryTraits<Kokkos::Atomic> > - atomic_view_type; - typedef Kokkos::View<T*, execution_space> view_type; + using atomic_view_type = + Kokkos::View<T*, execution_space, Kokkos::MemoryTraits<Kokkos::Atomic> >; + using view_type = Kokkos::View<T*, execution_space>; view_type input; atomic_view_type even_odd_result; @@ -1326,8 +1304,8 @@ struct XOrEqualAtomicViewFunctor { template <class T, class execution_space> T XOrEqualAtomicView(const int64_t input_length) { - typedef Kokkos::View<T*, execution_space> view_type; - typedef typename view_type::HostMirror host_view_type; + using view_type = Kokkos::View<T*, execution_space>; + using host_view_type = typename view_type::HostMirror; const int64_t length = input_length; diff --git a/packages/kokkos/core/unit_test/TestAtomic.hpp b/packages/kokkos/core/unit_test/TestAtomics.hpp similarity index 94% rename from packages/kokkos/core/unit_test/TestAtomic.hpp rename to packages/kokkos/core/unit_test/TestAtomics.hpp index 809f9dc01..1051ae20f 100644 --- a/packages/kokkos/core/unit_test/TestAtomic.hpp +++ b/packages/kokkos/core/unit_test/TestAtomics.hpp @@ -160,9 +160,9 @@ std::ostream& operator<<(std::ostream& os, const SuperScalar<N>& dt) { template <class T, class DEVICE_TYPE> struct ZeroFunctor { - typedef DEVICE_TYPE execution_space; - typedef typename Kokkos::View<T, execution_space> type; - typedef typename Kokkos::View<T, execution_space>::HostMirror h_type; + using execution_space = DEVICE_TYPE; + using type = typename Kokkos::View<T, execution_space>; + using h_type = typename Kokkos::View<T, execution_space>::HostMirror; type data; @@ -176,8 +176,8 @@ struct ZeroFunctor { template <class T, class DEVICE_TYPE> struct AddFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View<T, execution_space> type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View<T, execution_space>; type data; @@ -187,8 +187,8 @@ struct AddFunctor { template <class T, class DEVICE_TYPE> struct AddFunctorReduce { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View<T, execution_space> type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View<T, execution_space>; type data; @@ -246,8 +246,8 @@ T AddLoopSerial(int loop) { template <class T, class DEVICE_TYPE> struct CASFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View<T, execution_space> type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View<T, execution_space>; type data; @@ -266,8 +266,8 @@ struct CASFunctor { template <class T, class DEVICE_TYPE> struct CASFunctorReduce { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View<T, execution_space> type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View<T, execution_space>; type data; @@ -341,8 +341,8 @@ T CASLoopSerial(int loop) { template <class T, class DEVICE_TYPE> struct ExchFunctor { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View<T, execution_space> type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View<T, execution_space>; type data, data2; @@ -355,8 +355,8 @@ struct ExchFunctor { template <class T, class DEVICE_TYPE> struct ExchFunctorReduce { - typedef DEVICE_TYPE execution_space; - typedef Kokkos::View<T, execution_space> type; + using execution_space = DEVICE_TYPE; + using type = Kokkos::View<T, execution_space>; type data, data2; diff --git a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp b/packages/kokkos/core/unit_test/TestBlockSizeDeduction.hpp similarity index 71% rename from packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp rename to packages/kokkos/core/unit_test/TestBlockSizeDeduction.hpp index 4fc3ffeac..d29e3737c 100644 --- a/packages/kokkos/core/src/eti/Cuda/Kokkos_Cuda_ViewCopyETIInst_int64_t_int_LayoutStride_Rank1.cpp +++ b/packages/kokkos/core/unit_test/TestBlockSizeDeduction.hpp @@ -1,3 +1,4 @@ +/* //@HEADER // ************************************************************************ // @@ -8,8 +9,6 @@ // Under the terms of Contract DE-NA0003525 with NTESS, // the U.S. Government retains certain rights in this software. // -// Kokkos is licensed under 3-clause BSD terms of use: -// // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: @@ -41,15 +40,37 @@ // // ************************************************************************ //@HEADER +*/ + +#ifndef TEST_BLOCK_SIZE_DEDUCTION_HPP +#define TEST_BLOCK_SIZE_DEDUCTION_HPP -#define KOKKOS_IMPL_COMPILING_LIBRARY true #include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutRight, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutLeft, Cuda, int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int*, LayoutStride, LayoutStride, Cuda, int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int*, LayoutStride, Cuda, int64_t) - -} // namespace Impl -} // namespace Kokkos +#include <gtest/gtest.h> + +// NOTE kokkos/kokkos#3103 introduced a bug that was accidentally fixed in #3124 +// The code below will do until we decide to test block size deduction more +// thoroughly + +struct PoorMansLambda { + template <typename MemberType> + KOKKOS_FUNCTION void operator()(MemberType const&) const {} +}; + +template <typename ExecutionSpace> +void test_bug_pr_3103() { + using Policy = + Kokkos::TeamPolicy<ExecutionSpace, Kokkos::LaunchBounds<32, 1>>; + int const league_size = 1; + int const team_size = std::min(32, ExecutionSpace::concurrency()); + int const vector_length = 1; + + Kokkos::parallel_for(Policy(league_size, team_size, vector_length), + PoorMansLambda()); +} + +TEST(TEST_CATEGORY, test_block_deduction_bug_pr_3103) { + test_bug_pr_3103<TEST_EXECSPACE>(); +} + +#endif diff --git a/packages/kokkos/core/unit_test/TestCXX11.hpp b/packages/kokkos/core/unit_test/TestCXX11.hpp index 405652b29..bbe0d01cb 100644 --- a/packages/kokkos/core/unit_test/TestCXX11.hpp +++ b/packages/kokkos/core/unit_test/TestCXX11.hpp @@ -48,9 +48,9 @@ namespace TestCXX11 { template <class DeviceType> struct FunctorAddTest { - typedef Kokkos::View<double**, DeviceType> view_type; - typedef DeviceType execution_space; - typedef typename Kokkos::TeamPolicy<execution_space>::member_type team_member; + using view_type = Kokkos::View<double**, DeviceType>; + using execution_space = DeviceType; + using team_member = typename Kokkos::TeamPolicy<execution_space>::member_type; view_type a_, b_; @@ -81,7 +81,7 @@ struct FunctorAddTest { template <class DeviceType, bool PWRTest> double AddTestFunctor() { - typedef Kokkos::TeamPolicy<DeviceType> policy_type; + using policy_type = Kokkos::TeamPolicy<DeviceType>; Kokkos::View<double**, DeviceType> a("A", 100, 5); Kokkos::View<double**, DeviceType> b("B", 100, 5); @@ -142,16 +142,17 @@ double AddTestLambda() { b(i, 4) = a(i, 3) + a(i, 4); }); } else { - typedef Kokkos::TeamPolicy<DeviceType> policy_type; - typedef typename policy_type::member_type team_member; + using policy_type = Kokkos::TeamPolicy<DeviceType>; + using team_member = typename policy_type::member_type; policy_type policy(25, Kokkos::AUTO); Kokkos::parallel_for( policy, KOKKOS_LAMBDA(const team_member& dev) { - const int begin = dev.league_rank() * 4; - const int end = begin + 4; - for (int i = begin + dev.team_rank(); i < end; i += dev.team_size()) { + const unsigned int begin = dev.league_rank() * 4; + const unsigned int end = begin + 4; + for (unsigned int i = begin + dev.team_rank(); i < end; + i += dev.team_size()) { b(i, 0) = a(i, 1) + a(i, 2); b(i, 1) = a(i, 0) - a(i, 3); b(i, 2) = a(i, 4) + a(i, 0); @@ -180,10 +181,10 @@ double AddTestLambda() { template <class DeviceType> struct FunctorReduceTest { - typedef Kokkos::View<double**, DeviceType> view_type; - typedef DeviceType execution_space; - typedef double value_type; - typedef typename Kokkos::TeamPolicy<execution_space>::member_type team_member; + using view_type = Kokkos::View<double**, DeviceType>; + using execution_space = DeviceType; + using value_type = double; + using team_member = typename Kokkos::TeamPolicy<execution_space>::member_type; view_type a_; @@ -223,10 +224,10 @@ struct FunctorReduceTest { template <class DeviceType, bool PWRTest> double ReduceTestFunctor() { - typedef Kokkos::TeamPolicy<DeviceType> policy_type; - typedef Kokkos::View<double**, DeviceType> view_type; - typedef Kokkos::View<double, Kokkos::HostSpace, Kokkos::MemoryUnmanaged> - unmanaged_result; + using policy_type = Kokkos::TeamPolicy<DeviceType>; + using view_type = Kokkos::View<double**, DeviceType>; + using unmanaged_result = + Kokkos::View<double, Kokkos::HostSpace, Kokkos::MemoryUnmanaged>; view_type a("A", 100, 5); typename view_type::HostMirror h_a = Kokkos::create_mirror_view(a); @@ -255,10 +256,10 @@ double ReduceTestFunctor() { #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) template <class DeviceType, bool PWRTest> double ReduceTestLambda() { - typedef Kokkos::TeamPolicy<DeviceType> policy_type; - typedef Kokkos::View<double**, DeviceType> view_type; - typedef Kokkos::View<double, Kokkos::HostSpace, Kokkos::MemoryUnmanaged> - unmanaged_result; + using policy_type = Kokkos::TeamPolicy<DeviceType>; + using view_type = Kokkos::View<double**, DeviceType>; + using unmanaged_result = + Kokkos::View<double, Kokkos::HostSpace, Kokkos::MemoryUnmanaged>; view_type a("A", 100, 5); typename view_type::HostMirror h_a = Kokkos::create_mirror_view(a); @@ -284,13 +285,14 @@ double ReduceTestLambda() { }, unmanaged_result(&result)); } else { - typedef typename policy_type::member_type team_member; + using team_member = typename policy_type::member_type; Kokkos::parallel_reduce( policy_type(25, Kokkos::AUTO), KOKKOS_LAMBDA(const team_member& dev, double& sum) { - const int begin = dev.league_rank() * 4; - const int end = begin + 4; - for (int i = begin + dev.team_rank(); i < end; i += dev.team_size()) { + const unsigned int begin = dev.league_rank() * 4; + const unsigned int end = begin + 4; + for (unsigned int i = begin + dev.team_rank(); i < end; + i += dev.team_size()) { sum += a(i, 1) + a(i, 2); sum += a(i, 0) - a(i, 3); sum += a(i, 4) + a(i, 0); diff --git a/packages/kokkos/core/unit_test/TestCXX11Deduction.hpp b/packages/kokkos/core/unit_test/TestCXX11Deduction.hpp index 0e60d91a8..c7efab271 100644 --- a/packages/kokkos/core/unit_test/TestCXX11Deduction.hpp +++ b/packages/kokkos/core/unit_test/TestCXX11Deduction.hpp @@ -72,7 +72,7 @@ struct TestReductionDeductionFunctor { template <class ExecSpace> void test_reduction_deduction() { - typedef TestReductionDeductionFunctor<ExecSpace> Functor; + using Functor = TestReductionDeductionFunctor<ExecSpace>; const long N = 50; // const long answer = N % 2 ? ( N * ( ( N + 1 ) / 2 ) ) : ( ( N / 2 ) * ( N diff --git a/packages/kokkos/core/unit_test/TestCompilerMacros.hpp b/packages/kokkos/core/unit_test/TestCompilerMacros.hpp index c644daca0..273e87ccc 100644 --- a/packages/kokkos/core/unit_test/TestCompilerMacros.hpp +++ b/packages/kokkos/core/unit_test/TestCompilerMacros.hpp @@ -60,8 +60,8 @@ namespace TestCompilerMacros { template <class DEVICE_TYPE> struct AddFunctor { - typedef DEVICE_TYPE execution_space; - typedef typename Kokkos::View<int**, execution_space> type; + using execution_space = DEVICE_TYPE; + using type = typename Kokkos::View<int**, execution_space>; type a, b; int length; @@ -81,7 +81,7 @@ struct AddFunctor { #ifdef KOKKOS_ENABLE_PRAGMA_LOOPCOUNT #pragma loop count(128) #endif -#ifndef KOKKOS_DEBUG +#ifndef KOKKOS_ENABLE_DEBUG #ifdef KOKKOS_ENABLE_PRAGMA_SIMD #pragma simd #endif @@ -94,7 +94,7 @@ struct AddFunctor { template <class DeviceType> bool Test() { - typedef typename Kokkos::View<int**, DeviceType> type; + using type = typename Kokkos::View<int**, DeviceType>; type a("A", 1024, 128); type b("B", 1024, 128); diff --git a/packages/kokkos/core/unit_test/TestComplex.hpp b/packages/kokkos/core/unit_test/TestComplex.hpp index 2bb81052f..b0307ec8c 100644 --- a/packages/kokkos/core/unit_test/TestComplex.hpp +++ b/packages/kokkos/core/unit_test/TestComplex.hpp @@ -86,7 +86,6 @@ struct TestComplexConstruction { // Copy construction conversion between // Kokkos::complex and std::complex doesn't compile -#ifndef KOKKOS_ENABLE_HIP // FIXME_HIP Kokkos::complex<double> a(1.5, 2.5), b(3.25, 5.25), r_kk; std::complex<double> sa(a), sb(3.25, 5.25), r; r = a; @@ -101,7 +100,6 @@ struct TestComplexConstruction { r_kk = a; ASSERT_FLOAT_EQ(r.real(), r_kk.real()); ASSERT_FLOAT_EQ(r.imag(), r_kk.imag()); -#endif } KOKKOS_INLINE_FUNCTION @@ -322,6 +320,47 @@ struct TestComplexSpecialFunctions { r = Kokkos::exp(a); ASSERT_FLOAT_EQ(h_results(4).real(), r.real()); ASSERT_FLOAT_EQ(h_results(4).imag(), r.imag()); +#ifndef KOKKOS_WORKAROUND_OPENMPTARGET_CLANG + r = std::log(a); + ASSERT_FLOAT_EQ(h_results(5).real(), r.real()); + ASSERT_FLOAT_EQ(h_results(5).imag(), r.imag()); + r = std::sin(a); + ASSERT_FLOAT_EQ(h_results(6).real(), r.real()); + ASSERT_FLOAT_EQ(h_results(6).imag(), r.imag()); + r = std::cos(a); + ASSERT_FLOAT_EQ(h_results(7).real(), r.real()); + ASSERT_FLOAT_EQ(h_results(7).imag(), r.imag()); + r = std::tan(a); + ASSERT_FLOAT_EQ(h_results(8).real(), r.real()); + ASSERT_FLOAT_EQ(h_results(8).imag(), r.imag()); + r = std::sinh(a); + ASSERT_FLOAT_EQ(h_results(9).real(), r.real()); + ASSERT_FLOAT_EQ(h_results(9).imag(), r.imag()); + r = std::cosh(a); + ASSERT_FLOAT_EQ(h_results(10).real(), r.real()); + ASSERT_FLOAT_EQ(h_results(10).imag(), r.imag()); + r = std::tanh(a); + ASSERT_FLOAT_EQ(h_results(11).real(), r.real()); + ASSERT_FLOAT_EQ(h_results(11).imag(), r.imag()); + r = std::asinh(a); + ASSERT_FLOAT_EQ(h_results(12).real(), r.real()); + ASSERT_FLOAT_EQ(h_results(12).imag(), r.imag()); + r = std::acosh(a); + ASSERT_FLOAT_EQ(h_results(13).real(), r.real()); + ASSERT_FLOAT_EQ(h_results(13).imag(), r.imag()); + r = std::atanh(a); + ASSERT_FLOAT_EQ(h_results(14).real(), r.real()); + ASSERT_FLOAT_EQ(h_results(14).imag(), r.imag()); + r = std::asin(a); + ASSERT_FLOAT_EQ(h_results(15).real(), r.real()); + ASSERT_FLOAT_EQ(h_results(15).imag(), r.imag()); + r = std::acos(a); + ASSERT_FLOAT_EQ(h_results(16).real(), r.real()); + ASSERT_FLOAT_EQ(h_results(16).imag(), r.imag()); + r = std::atan(a); + ASSERT_FLOAT_EQ(h_results(17).real(), r.real()); + ASSERT_FLOAT_EQ(h_results(17).imag(), r.imag()); +#endif } KOKKOS_INLINE_FUNCTION @@ -330,11 +369,24 @@ struct TestComplexSpecialFunctions { Kokkos::complex<double> b(3.25, 5.75); double c = 9.3; - d_results(0) = Kokkos::complex<double>(Kokkos::real(a), Kokkos::imag(a)); - d_results(1) = Kokkos::sqrt(a); - d_results(2) = Kokkos::pow(a, c); - d_results(3) = Kokkos::abs(a); - d_results(4) = Kokkos::exp(a); + d_results(0) = Kokkos::complex<double>(Kokkos::real(a), Kokkos::imag(a)); + d_results(1) = Kokkos::sqrt(a); + d_results(2) = Kokkos::pow(a, c); + d_results(3) = Kokkos::abs(a); + d_results(4) = Kokkos::exp(a); + d_results(5) = Kokkos::log(a); + d_results(6) = Kokkos::sin(a); + d_results(7) = Kokkos::cos(a); + d_results(8) = Kokkos::tan(a); + d_results(9) = Kokkos::sinh(a); + d_results(10) = Kokkos::cosh(a); + d_results(11) = Kokkos::tanh(a); + d_results(12) = Kokkos::asinh(a); + d_results(13) = Kokkos::acosh(a); + d_results(14) = Kokkos::atanh(a); + d_results(15) = Kokkos::asin(a); + d_results(16) = Kokkos::acos(a); + d_results(17) = Kokkos::atan(a); } }; @@ -371,30 +423,8 @@ TEST(TEST_CATEGORY, complex_trivially_copyable) { #if !defined(__ibmxl__) // clang claims compatibility with gcc 4.2.1 but all versions tested know // about std::is_trivially_copyable. -#if !defined(__clang__) -#define KOKKOS_COMPILER_GNU_VERSION \ - __GNUC__ * 100 + __GNUC_MINOR__ * 10 + __GNUC_PATCHLEVEL__ -#endif -#if KOKKOS_COMPILER_GNU_VERSION == 0 || KOKKOS_COMPILER_GNU_VERSION > 500 ASSERT_TRUE(std::is_trivially_copyable<Kokkos::complex<RealType>>::value || !std::is_trivially_copyable<RealType>::value); -#elif KOKKOS_COMPILER_GNU_VERSION > 480 - ASSERT_TRUE( - (std::has_trivial_copy_constructor<Kokkos::complex<RealType>>::value && - std::has_trivial_copy_assign<Kokkos::complex<RealType>>::value && - std::is_trivially_destructible<Kokkos::complex<RealType>>::value) || - !(std::has_trivial_copy_constructor<RealType>::value && - std::has_trivial_copy_assign<RealType>::value && - std::is_trivially_destructible<RealType>::value)); -#else - ASSERT_TRUE( - (std::has_trivial_copy_constructor<Kokkos::complex<RealType>>::value && - std::has_trivial_copy_assign<Kokkos::complex<RealType>>::value && - std::has_trivial_destructor<Kokkos::complex<RealType>>::value) || - !(std::has_trivial_copy_constructor<RealType>::value && - std::has_trivial_copy_assign<RealType>::value && - std::has_trivial_destructor<RealType>::value)); -#endif #endif } diff --git a/packages/kokkos/core/unit_test/TestConcepts.hpp b/packages/kokkos/core/unit_test/TestConcepts.hpp index dcd4d948a..561302f2a 100644 --- a/packages/kokkos/core/unit_test/TestConcepts.hpp +++ b/packages/kokkos/core/unit_test/TestConcepts.hpp @@ -78,4 +78,10 @@ static_assert(!Kokkos::is_space<ExecutionSpace &>{}, ""); static_assert(!Kokkos::is_space<MemorySpace &>{}, ""); static_assert(!Kokkos::is_space<DeviceType &>{}, ""); +static_assert( + std::is_same<float, Kokkos::Impl::remove_cvref_t<float const &>>{}, ""); +static_assert(std::is_same<int, Kokkos::Impl::remove_cvref_t<int &>>{}, ""); +static_assert(std::is_same<int, Kokkos::Impl::remove_cvref_t<int const>>{}, ""); +static_assert(std::is_same<float, Kokkos::Impl::remove_cvref_t<float>>{}, ""); + } // namespace TestConcept diff --git a/packages/kokkos/core/unit_test/TestConcurrentBitset.hpp b/packages/kokkos/core/unit_test/TestConcurrentBitset.hpp index db451495b..5a7b8e4ba 100644 --- a/packages/kokkos/core/unit_test/TestConcurrentBitset.hpp +++ b/packages/kokkos/core/unit_test/TestConcurrentBitset.hpp @@ -57,8 +57,8 @@ namespace Test { template <class DeviceType> struct ConcurrentBitset { - typedef Kokkos::View<uint32_t*, DeviceType> view_unsigned_type; - typedef Kokkos::View<int*, DeviceType> view_int_type; + using view_unsigned_type = Kokkos::View<uint32_t*, DeviceType>; + using view_int_type = Kokkos::View<int*, DeviceType>; view_unsigned_type bitset; view_int_type acquired; @@ -117,9 +117,9 @@ struct ConcurrentBitset { template <class DeviceType> void test_concurrent_bitset(int bit_count) { - typedef ConcurrentBitset<DeviceType> Functor; - typedef typename Functor::view_unsigned_type view_unsigned_type; - typedef typename Functor::view_int_type view_int_type; + using Functor = ConcurrentBitset<DeviceType>; + using view_unsigned_type = typename Functor::view_unsigned_type; + using view_int_type = typename Functor::view_int_type; int bit_count_lg2 = 1; diff --git a/packages/kokkos/core/unit_test/TestCrs.hpp b/packages/kokkos/core/unit_test/TestCrs.hpp index 296235aad..78208c911 100644 --- a/packages/kokkos/core/unit_test/TestCrs.hpp +++ b/packages/kokkos/core/unit_test/TestCrs.hpp @@ -176,7 +176,7 @@ void test_count_fill(std::int32_t nrows) { template <class ExecSpace> void test_constructor(std::int32_t nrows) { for (int nTest = 1; nTest < 5; nTest++) { - typedef Kokkos::Crs<float, ExecSpace, void, std::int32_t> crs_type; + using crs_type = Kokkos::Crs<float, ExecSpace, void, std::int32_t>; crs_type graph; Kokkos::count_and_fill_crs(graph, nrows, CountFillFunctor<ExecSpace>()); ASSERT_EQ(graph.numRows(), nrows); diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c04.cpp b/packages/kokkos/core/unit_test/TestCudaUVM_Category.hpp similarity index 90% rename from packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c04.cpp rename to packages/kokkos/core/unit_test/TestCudaUVM_Category.hpp index d0f5a7bc0..ff53e5a71 100644 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c04.cpp +++ b/packages/kokkos/core/unit_test/TestCudaUVM_Category.hpp @@ -42,13 +42,13 @@ //@HEADER */ -#include <cuda/TestCudaUVM_Category.hpp> -#include <TestViewSubview.hpp> +#ifndef KOKKOS_TEST_CUDAUVM_HPP +#define KOKKOS_TEST_CUDAUVM_HPP -namespace Test { +#include <gtest/gtest.h> -TEST(TEST_CATEGORY, view_subview_2d_from_3d) { - TestViewSubview::test_2d_subview_3d<TEST_EXECSPACE>(); -} +#define TEST_CATEGORY cuda_uvm +#define TEST_CATEGORY_DEATH cuda_uvm_DeathTest +#define TEST_EXECSPACE Kokkos::CudaUVMSpace -} // namespace Test +#endif diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c01.cpp b/packages/kokkos/core/unit_test/TestCuda_Category.hpp similarity index 89% rename from packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c01.cpp rename to packages/kokkos/core/unit_test/TestCuda_Category.hpp index 2a1286281..7c572e3a0 100644 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c01.cpp +++ b/packages/kokkos/core/unit_test/TestCuda_Category.hpp @@ -42,13 +42,14 @@ //@HEADER */ -#include <cuda/TestCudaUVM_Category.hpp> -#include <TestViewSubview.hpp> +#ifndef KOKKOS_TEST_CUDA_HPP +#define KOKKOS_TEST_CUDA_HPP -namespace Test { +#include <gtest/gtest.h> -TEST(TEST_CATEGORY, view_subview_1d_assign) { - TestViewSubview::test_1d_assign<TEST_EXECSPACE>(); -} +#define TEST_CATEGORY cuda +#define TEST_CATEGORY_NUMBER 5 +#define TEST_CATEGORY_DEATH cuda_DeathTest +#define TEST_EXECSPACE Kokkos::Cuda -} // namespace Test +#endif diff --git a/packages/kokkos/core/unit_test/TestDeepCopy.hpp b/packages/kokkos/core/unit_test/TestDeepCopyAlignment.hpp similarity index 95% rename from packages/kokkos/core/unit_test/TestDeepCopy.hpp rename to packages/kokkos/core/unit_test/TestDeepCopyAlignment.hpp index 56c259ff6..8158f4058 100644 --- a/packages/kokkos/core/unit_test/TestDeepCopy.hpp +++ b/packages/kokkos/core/unit_test/TestDeepCopyAlignment.hpp @@ -6,13 +6,13 @@ namespace Test { namespace Impl { template <class MemorySpaceA, class MemorySpaceB> struct TestDeepCopy { - typedef Kokkos::View<double*, Kokkos::LayoutRight, MemorySpaceA> a_base_t; - typedef Kokkos::View<double*, Kokkos::LayoutRight, MemorySpaceB> b_base_t; - typedef Kokkos::View<char*, Kokkos::LayoutRight, MemorySpaceA> a_char_t; - typedef Kokkos::View<char*, Kokkos::LayoutRight, MemorySpaceB> b_char_t; + using a_base_t = Kokkos::View<double*, Kokkos::LayoutRight, MemorySpaceA>; + using b_base_t = Kokkos::View<double*, Kokkos::LayoutRight, MemorySpaceB>; + using a_char_t = Kokkos::View<char*, Kokkos::LayoutRight, MemorySpaceA>; + using b_char_t = Kokkos::View<char*, Kokkos::LayoutRight, MemorySpaceB>; - typedef Kokkos::RangePolicy<typename MemorySpaceA::execution_space> policyA_t; - typedef Kokkos::RangePolicy<typename MemorySpaceB::execution_space> policyB_t; + using policyA_t = Kokkos::RangePolicy<typename MemorySpaceA::execution_space>; + using policyB_t = Kokkos::RangePolicy<typename MemorySpaceB::execution_space>; static void reset_a_copy_and_b( Kokkos::View<char*, Kokkos::LayoutRight, MemorySpaceA> a_char_copy, @@ -213,8 +213,6 @@ TEST(TEST_CATEGORY, deep_copy_alignment) { } #endif -// KOKKOS_IMPL_HIP_CLANG_WORKAROUND -#ifndef KOKKOS_ENABLE_HIP namespace Impl { template <class Scalar1, class Scalar2, class Layout1, class Layout2> struct TestDeepCopyScalarConversion { @@ -355,5 +353,4 @@ TEST(TEST_CATEGORY, deep_copy_conversion) { Impl::TestDeepCopyScalarConversion<double, float, right, stride>().run_tests( N0, N1); } -#endif } // namespace Test diff --git a/packages/kokkos/core/unit_test/TestDefaultDeviceTypeInit.hpp b/packages/kokkos/core/unit_test/TestDefaultDeviceTypeInit.hpp index c27f13e95..8a9263c8d 100644 --- a/packages/kokkos/core/unit_test/TestDefaultDeviceTypeInit.hpp +++ b/packages/kokkos/core/unit_test/TestDefaultDeviceTypeInit.hpp @@ -49,28 +49,38 @@ #ifdef KOKKOS_ENABLE_OPENMP #include <omp.h> #endif - +#include <set> #if !defined(KOKKOS_ENABLE_CUDA) || defined(__CUDACC__) namespace Test { namespace Impl { +std::set<char*> delete_these; +void cleanup_memory() { + for (auto x : delete_these) { + delete[] x; + } +} + char** init_kokkos_args(bool do_threads, bool do_numa, bool do_device, - bool do_other, int& nargs, + bool do_other, bool do_tune, int& nargs, Kokkos::InitArguments& init_args) { nargs = (do_threads ? 1 : 0) + (do_numa ? 1 : 0) + (do_device ? 1 : 0) + - (do_other ? 4 : 0); + (do_other ? 4 : 0) + (do_tune ? 1 : 0); char** args_kokkos = new char*[nargs]; for (int i = 0; i < nargs; i++) { - args_kokkos[i] = new char[20]; + args_kokkos[i] = new char[45]; + delete_these.insert(args_kokkos[i]); } int threads_idx = do_other ? 1 : 0; int numa_idx = (do_other ? 3 : 0) + (do_threads ? 1 : 0); int device_idx = (do_other ? 3 : 0) + (do_threads ? 1 : 0) + (do_numa ? 1 : 0); + int tune_idx = (do_other ? 3 : 0) + (do_threads ? 1 : 0) + (do_numa ? 1 : 0) + + (do_device ? 1 : 0); if (do_threads) { int nthreads = 3; @@ -117,7 +127,7 @@ char** init_kokkos_args(bool do_threads, bool do_numa, bool do_device, if (do_device) { init_args.device_id = 0; - sprintf(args_kokkos[device_idx], "--device=%i", 0); + sprintf(args_kokkos[device_idx], "--device-id=%i", 0); } if (do_other) { @@ -127,11 +137,16 @@ char** init_kokkos_args(bool do_threads, bool do_numa, bool do_device, sprintf(args_kokkos[device_idx + (do_device ? 1 : 0)], "dummy4arg=1"); } + if (do_tune) { + init_args.tune_internals = true; + sprintf(args_kokkos[tune_idx], "--kokkos-tune-internals"); + } + return args_kokkos; } Kokkos::InitArguments init_initstruct(bool do_threads, bool do_numa, - bool do_device) { + bool do_device, bool do_tune) { Kokkos::InitArguments args; if (do_threads) { @@ -182,17 +197,16 @@ Kokkos::InitArguments init_initstruct(bool do_threads, bool do_numa, args.device_id = 0; } + if (do_tune) { + args.tune_internals = true; + } + return args; } void check_correct_initialization(const Kokkos::InitArguments& argstruct) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - ASSERT_EQ(Kokkos::DefaultExecutionSpace::is_initialized(), 1); - ASSERT_EQ(Kokkos::HostSpace::execution_space::is_initialized(), 1); -#else ASSERT_EQ(Kokkos::DefaultExecutionSpace::impl_is_initialized(), 1); ASSERT_EQ(Kokkos::HostSpace::execution_space::impl_is_initialized(), 1); -#endif // Figure out the number of threads the HostSpace ExecutionSpace should have // initialized to. @@ -258,13 +272,8 @@ void check_correct_initialization(const Kokkos::InitArguments& argstruct) { #endif } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - ASSERT_EQ(Kokkos::HostSpace::execution_space::thread_pool_size(), - expected_nthreads); -#else ASSERT_EQ(Kokkos::HostSpace::execution_space::impl_thread_pool_size(), expected_nthreads); -#endif #ifdef KOKKOS_ENABLE_CUDA if (std::is_same<Kokkos::DefaultExecutionSpace, Kokkos::Cuda>::value) { @@ -279,6 +288,7 @@ void check_correct_initialization(const Kokkos::InitArguments& argstruct) { ASSERT_EQ(expected_device, device); } #endif + ASSERT_EQ(argstruct.tune_internals, Kokkos::tune_internals()); } // TODO: Add check whether correct number of threads are actually started. @@ -310,14 +320,12 @@ TEST(defaultdevicetypeinit, no_args) { Impl::test_no_arguments(); } #ifdef KOKKOS_DEFAULTDEVICETYPE_INIT_TEST_02 TEST(defaultdevicetypeinit, commandline_args_empty) { Kokkos::InitArguments argstruct; - int nargs = 0; - char** args = - Impl::init_kokkos_args(false, false, false, false, nargs, argstruct); + int nargs = 0; + char** args = Impl::init_kokkos_args(false, false, false, false, false, nargs, + argstruct); Impl::test_commandline_args(nargs, args, argstruct); - for (int i = 0; i < nargs; i++) { - delete[] args[i]; - } + Impl::cleanup_memory(); delete[] args; } #endif @@ -325,14 +333,12 @@ TEST(defaultdevicetypeinit, commandline_args_empty) { #ifdef KOKKOS_DEFAULTDEVICETYPE_INIT_TEST_03 TEST(defaultdevicetypeinit, commandline_args_other) { Kokkos::InitArguments argstruct; - int nargs = 0; - char** args = - Impl::init_kokkos_args(false, false, false, true, nargs, argstruct); + int nargs = 0; + char** args = Impl::init_kokkos_args(false, false, false, true, false, nargs, + argstruct); Impl::test_commandline_args(nargs, args, argstruct); - for (int i = 0; i < nargs; i++) { - delete[] args[i]; - } + Impl::cleanup_memory(); delete[] args; } #endif @@ -340,14 +346,12 @@ TEST(defaultdevicetypeinit, commandline_args_other) { #ifdef KOKKOS_DEFAULTDEVICETYPE_INIT_TEST_04 TEST(defaultdevicetypeinit, commandline_args_nthreads) { Kokkos::InitArguments argstruct; - int nargs = 0; - char** args = - Impl::init_kokkos_args(true, false, false, false, nargs, argstruct); + int nargs = 0; + char** args = Impl::init_kokkos_args(true, false, false, false, false, nargs, + argstruct); Impl::test_commandline_args(nargs, args, argstruct); - for (int i = 0; i < nargs; i++) { - delete[] args[i]; - } + Impl::cleanup_memory(); delete[] args; } #endif @@ -357,12 +361,11 @@ TEST(defaultdevicetypeinit, commandline_args_nthreads_numa) { Kokkos::InitArguments argstruct; int nargs = 0; char** args = - Impl::init_kokkos_args(true, true, false, false, nargs, argstruct); + Impl::init_kokkos_args(true, true, false, false, false, nargs, argstruct); Impl::test_commandline_args(nargs, args, argstruct); - for (int i = 0; i < nargs; i++) { - delete[] args[i]; - } + Impl::cleanup_memory(); + delete[] args; } #endif @@ -372,12 +375,11 @@ TEST(defaultdevicetypeinit, commandline_args_nthreads_numa_device) { Kokkos::InitArguments argstruct; int nargs = 0; char** args = - Impl::init_kokkos_args(true, true, true, false, nargs, argstruct); + Impl::init_kokkos_args(true, true, true, false, false, nargs, argstruct); Impl::test_commandline_args(nargs, args, argstruct); - for (int i = 0; i < nargs; i++) { - delete[] args[i]; - } + Impl::cleanup_memory(); + delete[] args; } #endif @@ -387,12 +389,10 @@ TEST(defaultdevicetypeinit, commandline_args_nthreads_device) { Kokkos::InitArguments argstruct; int nargs = 0; char** args = - Impl::init_kokkos_args(true, false, true, false, nargs, argstruct); + Impl::init_kokkos_args(true, false, true, false, false, nargs, argstruct); Impl::test_commandline_args(nargs, args, argstruct); - for (int i = 0; i < nargs; i++) { - delete[] args[i]; - } + Impl::cleanup_memory(); delete[] args; } #endif @@ -402,12 +402,10 @@ TEST(defaultdevicetypeinit, commandline_args_numa_device) { Kokkos::InitArguments argstruct; int nargs = 0; char** args = - Impl::init_kokkos_args(false, true, true, false, nargs, argstruct); + Impl::init_kokkos_args(false, true, true, false, false, nargs, argstruct); Impl::test_commandline_args(nargs, args, argstruct); - for (int i = 0; i < nargs; i++) { - delete[] args[i]; - } + Impl::cleanup_memory(); delete[] args; } #endif @@ -415,14 +413,12 @@ TEST(defaultdevicetypeinit, commandline_args_numa_device) { #ifdef KOKKOS_DEFAULTDEVICETYPE_INIT_TEST_09 TEST(defaultdevicetypeinit, commandline_args_device) { Kokkos::InitArguments argstruct; - int nargs = 0; - char** args = - Impl::init_kokkos_args(false, false, true, false, nargs, argstruct); + int nargs = 0; + char** args = Impl::init_kokkos_args(false, false, true, false, false, nargs, + argstruct); Impl::test_commandline_args(nargs, args, argstruct); - for (int i = 0; i < nargs; i++) { - delete[] args[i]; - } + Impl::cleanup_memory(); delete[] args; } #endif @@ -432,54 +428,70 @@ TEST(defaultdevicetypeinit, commandline_args_nthreads_numa_device_other) { Kokkos::InitArguments argstruct; int nargs = 0; char** args = - Impl::init_kokkos_args(true, true, true, true, nargs, argstruct); + Impl::init_kokkos_args(true, true, true, true, false, nargs, argstruct); Impl::test_commandline_args(nargs, args, argstruct); - - for (int i = 0; i < nargs; i++) { - delete[] args[i]; - } + Impl::cleanup_memory(); delete[] args; } #endif #ifdef KOKKOS_DEFAULTDEVICETYPE_INIT_TEST_11 +TEST(defaultdevicetypeinit, commandline_args_nthreads_numa_device_other_tune) { + Kokkos::InitArguments argstruct; + int nargs = 0; + char** args = + Impl::init_kokkos_args(true, true, true, true, true, nargs, argstruct); + Impl::test_commandline_args(nargs, args, argstruct); + Impl::cleanup_memory(); + delete[] args; +} +#endif + +#ifdef KOKKOS_DEFAULTDEVICETYPE_INIT_TEST_12 TEST(defaultdevicetypeinit, initstruct_default) { Kokkos::InitArguments args; Impl::test_initstruct_args(args); } #endif -#ifdef KOKKOS_DEFAULTDEVICETYPE_INIT_TEST_12 +#ifdef KOKKOS_DEFAULTDEVICETYPE_INIT_TEST_13 TEST(defaultdevicetypeinit, initstruct_nthreads) { - Kokkos::InitArguments args = Impl::init_initstruct(true, false, false); + Kokkos::InitArguments args = Impl::init_initstruct(true, false, false, false); Impl::test_initstruct_args(args); } #endif -#ifdef KOKKOS_DEFAULTDEVICETYPE_INIT_TEST_13 +#ifdef KOKKOS_DEFAULTDEVICETYPE_INIT_TEST_14 TEST(defaultdevicetypeinit, initstruct_nthreads_numa) { - Kokkos::InitArguments args = Impl::init_initstruct(true, true, false); + Kokkos::InitArguments args = Impl::init_initstruct(true, true, false, false); Impl::test_initstruct_args(args); } #endif -#ifdef KOKKOS_DEFAULTDEVICETYPE_INIT_TEST_14 +#ifdef KOKKOS_DEFAULTDEVICETYPE_INIT_TEST_15 TEST(defaultdevicetypeinit, initstruct_device) { - Kokkos::InitArguments args = Impl::init_initstruct(false, false, true); + Kokkos::InitArguments args = Impl::init_initstruct(false, false, true, false); Impl::test_initstruct_args(args); } #endif -#ifdef KOKKOS_DEFAULTDEVICETYPE_INIT_TEST_15 +#ifdef KOKKOS_DEFAULTDEVICETYPE_INIT_TEST_16 TEST(defaultdevicetypeinit, initstruct_nthreads_device) { - Kokkos::InitArguments args = Impl::init_initstruct(true, false, true); + Kokkos::InitArguments args = Impl::init_initstruct(true, false, true, false); Impl::test_initstruct_args(args); } #endif -#ifdef KOKKOS_DEFAULTDEVICETYPE_INIT_TEST_16 +#ifdef KOKKOS_DEFAULTDEVICETYPE_INIT_TEST_17 TEST(defaultdevicetypeinit, initstruct_nthreads_numa_device) { - Kokkos::InitArguments args = Impl::init_initstruct(true, true, true); + Kokkos::InitArguments args = Impl::init_initstruct(true, true, true, false); + Impl::test_initstruct_args(args); +} +#endif + +#ifdef KOKKOS_DEFAULTDEVICETYPE_INIT_TEST_18 +TEST(defaultdevicetypeinit, initstruct_nthreads_numa_device_tune) { + Kokkos::InitArguments args = Impl::init_initstruct(true, true, true, true); Impl::test_initstruct_args(args); } #endif diff --git a/packages/kokkos/core/unit_test/TestFunctorAnalysis.hpp b/packages/kokkos/core/unit_test/TestFunctorAnalysis.hpp index 5e72972be..d9e2486a4 100644 --- a/packages/kokkos/core/unit_test/TestFunctorAnalysis.hpp +++ b/packages/kokkos/core/unit_test/TestFunctorAnalysis.hpp @@ -70,12 +70,12 @@ template <class ExecSpace> void test_functor_analysis() { //------------------------------ auto c01 = KOKKOS_LAMBDA(int){}; - typedef Kokkos::Impl::FunctorAnalysis< - Kokkos::Impl::FunctorPatternInterface::FOR, - Kokkos::RangePolicy<ExecSpace>, decltype(c01)> - A01; + using A01 = + Kokkos::Impl::FunctorAnalysis<Kokkos::Impl::FunctorPatternInterface::FOR, + Kokkos::RangePolicy<ExecSpace>, + decltype(c01)>; - typedef typename A01::template Reducer<typename ExecSpace::memory_space> R01; + using R01 = typename A01::template Reducer<typename ExecSpace::memory_space>; static_assert(std::is_same<typename A01::value_type, void>::value, ""); static_assert(std::is_same<typename A01::pointer_type, void>::value, ""); @@ -90,12 +90,11 @@ void test_functor_analysis() { ASSERT_EQ(R01(&c01).length(), 0); //------------------------------ - auto c02 = KOKKOS_LAMBDA(int, double&){}; - typedef Kokkos::Impl::FunctorAnalysis< + auto c02 = KOKKOS_LAMBDA(int, double&){}; + using A02 = Kokkos::Impl::FunctorAnalysis< Kokkos::Impl::FunctorPatternInterface::REDUCE, - Kokkos::RangePolicy<ExecSpace>, decltype(c02)> - A02; - typedef typename A02::template Reducer<typename ExecSpace::memory_space> R02; + Kokkos::RangePolicy<ExecSpace>, decltype(c02)>; + using R02 = typename A02::template Reducer<typename ExecSpace::memory_space>; static_assert(std::is_same<typename A02::value_type, double>::value, ""); static_assert(std::is_same<typename A02::pointer_type, double*>::value, ""); @@ -112,11 +111,10 @@ void test_functor_analysis() { //------------------------------ TestFunctorAnalysis_03 c03; - typedef Kokkos::Impl::FunctorAnalysis< + using A03 = Kokkos::Impl::FunctorAnalysis< Kokkos::Impl::FunctorPatternInterface::REDUCE, - Kokkos::RangePolicy<ExecSpace>, TestFunctorAnalysis_03> - A03; - typedef typename A03::template Reducer<typename ExecSpace::memory_space> R03; + Kokkos::RangePolicy<ExecSpace>, TestFunctorAnalysis_03>; + using R03 = typename A03::template Reducer<typename ExecSpace::memory_space>; static_assert(std::is_same<typename A03::value_type, TestFunctorAnalysis_03::value_type>::value, diff --git a/packages/kokkos/core/unit_test/TestGraph.hpp b/packages/kokkos/core/unit_test/TestGraph.hpp new file mode 100644 index 000000000..d012da47b --- /dev/null +++ b/packages/kokkos/core/unit_test/TestGraph.hpp @@ -0,0 +1,253 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include <Kokkos_Core.hpp> +#include <Kokkos_Graph.hpp> + +#include <gtest/gtest.h> + +namespace Test { + +template <class ExecSpace> +struct CountTestFunctor { + using value_type = int; + template <class T> + using atomic_view = + Kokkos::View<T, ExecSpace, Kokkos::MemoryTraits<Kokkos::Atomic>>; + atomic_view<int> count; + atomic_view<int> bugs; + int expected_count_min; + int expected_count_max; + + template <class... Ts> + KOKKOS_FUNCTION void operator()(Ts&&...) const noexcept { + bugs() += int(count() > expected_count_max || count() < expected_count_min); + count()++; + } +}; + +template <class ExecSpace, class T> +struct SetViewToValueFunctor { + using value_type = T; + using view_type = + Kokkos::View<T, ExecSpace, Kokkos::MemoryTraits<Kokkos::Atomic>>; + view_type v; + T value; + + template <class... Ts> + KOKKOS_FUNCTION void operator()(Ts&&...) const noexcept { + v() = value; + } +}; + +template <class ExecSpace, class T> +struct SetResultToViewFunctor { + using value_type = T; + using view_type = + Kokkos::View<T, ExecSpace, Kokkos::MemoryTraits<Kokkos::Atomic>>; + view_type v; + + template <class U> + KOKKOS_FUNCTION void operator()(U&&, value_type& val) const noexcept { + val += v(); + } +}; + +struct TEST_CATEGORY_FIXTURE(count_bugs) : public ::testing::Test { + public: + using count_functor = CountTestFunctor<TEST_EXECSPACE>; + using set_functor = SetViewToValueFunctor<TEST_EXECSPACE, int>; + using set_result_functor = SetResultToViewFunctor<TEST_EXECSPACE, int>; + using view_type = Kokkos::View<int, TEST_EXECSPACE>; + using atomic_view_type = typename count_functor::template atomic_view<int>; + using view_host = Kokkos::View<int, Kokkos::HostSpace>; + atomic_view_type count{"count"}; + atomic_view_type bugs{"bugs"}; + view_host count_host{"count_host"}; + view_host bugs_host{"bugs_host"}; + TEST_EXECSPACE ex{}; + + protected: + void SetUp() override { + Kokkos::deep_copy(ex, count, 0); + Kokkos::deep_copy(ex, bugs, 0); + ex.fence(); + } +}; + +TEST_F(TEST_CATEGORY_FIXTURE(count_bugs), launch_one) { + auto graph = + Kokkos::Experimental::create_graph<TEST_EXECSPACE>([&](auto root) { + root.then_parallel_for(1, count_functor{count, bugs, 0, 0}); + }); + graph.submit(); + Kokkos::deep_copy(graph.get_execution_space(), count_host, count); + Kokkos::deep_copy(graph.get_execution_space(), bugs_host, bugs); + graph.get_execution_space().fence(); + ASSERT_EQ(1, count_host()); + ASSERT_EQ(0, bugs_host()); +} + +TEST_F(TEST_CATEGORY_FIXTURE(count_bugs), launch_one_rvalue) { + Kokkos::Experimental::create_graph(ex, [&](auto root) { + root.then_parallel_for(1, count_functor{count, bugs, 0, 0}); + }).submit(); + Kokkos::deep_copy(ex, count_host, count); + Kokkos::deep_copy(ex, bugs_host, bugs); + ex.fence(); + ASSERT_EQ(1, count_host()); + ASSERT_EQ(0, bugs_host()); +} + +TEST_F(TEST_CATEGORY_FIXTURE(count_bugs), launch_six) { + auto graph = Kokkos::Experimental::create_graph(ex, [&](auto root) { + auto f_setup_count = root.then_parallel_for(1, set_functor{count, 0}); + auto f_setup_bugs = root.then_parallel_for(1, set_functor{bugs, 0}); + + //---------------------------------------- + auto ready = Kokkos::Experimental::when_all(f_setup_count, f_setup_bugs); + + //---------------------------------------- + ready.then_parallel_for(1, count_functor{count, bugs, 0, 6}); + //---------------------------------------- + ready.then_parallel_for(Kokkos::RangePolicy<TEST_EXECSPACE>{0, 1}, + count_functor{count, bugs, 0, 6}); + //---------------------------------------- + ready.then_parallel_for( + Kokkos::MDRangePolicy<TEST_EXECSPACE, Kokkos::Rank<2>>{{0, 0}, {1, 1}}, + count_functor{count, bugs, 0, 6}); + //---------------------------------------- + ready.then_parallel_for(Kokkos::TeamPolicy<TEST_EXECSPACE>{1, 1}, + count_functor{count, bugs, 0, 6}); + //---------------------------------------- + ready.then_parallel_for(2, count_functor{count, bugs, 0, 6}); + //---------------------------------------- + }); + graph.submit(); + Kokkos::deep_copy(ex, count_host, count); + Kokkos::deep_copy(ex, bugs_host, bugs); + ex.fence(); + + ASSERT_EQ(6, count_host()); + ASSERT_EQ(0, bugs_host()); +} + +TEST_F(TEST_CATEGORY_FIXTURE(count_bugs), when_all_cycle) { + view_type reduction_out{"reduction_out"}; + view_host reduction_host{"reduction_host"}; + Kokkos::Experimental::create_graph(ex, [&](auto root) { + //---------------------------------------- + // Test when_all when redundant dependencies are given + auto f1 = root.then_parallel_for(1, set_functor{count, 0}); + auto f2 = f1.then_parallel_for(1, count_functor{count, bugs, 0, 0}); + auto f3 = f2.then_parallel_for(5, count_functor{count, bugs, 1, 5}); + auto f4 = Kokkos::Experimental::when_all(f2, f3).then_parallel_for( + 1, count_functor{count, bugs, 6, 6}); + Kokkos::Experimental::when_all(f1, f4, f3) + .then_parallel_reduce(6, set_result_functor{count}, reduction_out); + //---------------------------------------- + }).submit(); + Kokkos::deep_copy(ex, bugs_host, bugs); + Kokkos::deep_copy(ex, count_host, count); + Kokkos::deep_copy(ex, reduction_host, reduction_out); + ex.fence(); + ASSERT_EQ(0, bugs_host()); + ASSERT_EQ(7, count_host()); + ASSERT_EQ(42, reduction_host()); + //---------------------------------------- +} + +// This test is disabled because we don't currently support copying to host, +// even asynchronously. We _may_ want to do that eventually? +TEST_F(TEST_CATEGORY_FIXTURE(count_bugs), DISABLED_repeat_chain) { + auto graph = Kokkos::Experimental::create_graph( + ex, [&, count_host = count_host](auto root) { + //---------------------------------------- + root.then_parallel_for(1, set_functor{count, 0}) + .then_parallel_for(1, count_functor{count, bugs, 0, 0}) + .then_parallel_for(1, count_functor{count, bugs, 1, 1}) + .then_parallel_reduce(1, set_result_functor{count}, count_host) + .then_parallel_reduce( + 1, set_result_functor{bugs}, + Kokkos::Sum<int, Kokkos::HostSpace>{bugs_host}); + //---------------------------------------- + }); + + //---------------------------------------- + constexpr int repeats = 10; + + for (int i = 0; i < repeats; ++i) { + graph.submit(); + ex.fence(); + EXPECT_EQ(2, count_host()); + EXPECT_EQ(0, bugs_host()); + } + //---------------------------------------- +} + +TEST_F(TEST_CATEGORY_FIXTURE(count_bugs), zero_work_reduce) { + auto graph = Kokkos::Experimental::create_graph(ex, [&](auto root) { + root.then_parallel_reduce(0, set_result_functor{bugs}, count); + }); +// These fences are only necessary because of the weirdness of how CUDA +// UVM works on pre pascal cards. +#if defined(KOKKOS_ENABLE_CUDA) && defined(KOKKOS_ENABLE_CUDA_UVM) && \ + (defined(KOKKOS_ARCH_KEPLER) || defined(KOKKOS_ARCH_MAXWELL)) + Kokkos::fence(); +#endif + graph.submit(); + Kokkos::deep_copy(ex, count, 1); +// These fences are only necessary because of the weirdness of how CUDA +// UVM works on pre pascal cards. +#if defined(KOKKOS_ENABLE_CUDA) && defined(KOKKOS_ENABLE_CUDA_UVM) && \ + (defined(KOKKOS_ARCH_KEPLER) || defined(KOKKOS_ARCH_MAXWELL)) + Kokkos::fence(); +#endif + graph.submit(); // should reset to 0, but doesn't + Kokkos::deep_copy(ex, count_host, count); + ex.fence(); + ASSERT_EQ(count_host(), 0); +} + +} // end namespace Test diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_Category.hpp b/packages/kokkos/core/unit_test/TestHIPHostPinned_Category.hpp similarity index 91% rename from packages/kokkos/core/unit_test/rocm/TestROCm_Category.hpp rename to packages/kokkos/core/unit_test/TestHIPHostPinned_Category.hpp index f89b18f49..12c69926c 100644 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_Category.hpp +++ b/packages/kokkos/core/unit_test/TestHIPHostPinned_Category.hpp @@ -42,13 +42,12 @@ //@HEADER */ -#ifndef KOKKOS_TEST_ROCM_HPP -#define KOKKOS_TEST_ROCM_HPP +#ifndef KOKKOS_TEST_HIPHOSTPINNED_HPP +#define KOKKOS_TEST_HIPHOSTPINNED_HPP #include <gtest/gtest.h> -#define TEST_CATEGORY rocm -#define TEST_CATEGORY_DEATH rocm_DeathTest -#define TEST_EXECSPACE Kokkos::Experimental::ROCm +#define TEST_CATEGORY hip_hostpinned +#define TEST_EXECSPACE Kokkos::Experimental::HIPHostPinnedSpace #endif diff --git a/packages/kokkos/core/unit_test/TestHIP_Category.hpp b/packages/kokkos/core/unit_test/TestHIP_Category.hpp new file mode 100644 index 000000000..0a9fe5a08 --- /dev/null +++ b/packages/kokkos/core/unit_test/TestHIP_Category.hpp @@ -0,0 +1,54 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_TEST_HIP_HPP +#define KOKKOS_TEST_HIP_HPP + +#include <gtest/gtest.h> + +#define TEST_CATEGORY hip +#define TEST_CATEGORY_NUMBER 6 +#define TEST_EXECSPACE Kokkos::Experimental::HIP + +#endif diff --git a/packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_Category.hpp b/packages/kokkos/core/unit_test/TestHPX_Category.hpp similarity index 89% rename from packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_Category.hpp rename to packages/kokkos/core/unit_test/TestHPX_Category.hpp index fc74d52b4..401794c43 100644 --- a/packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_Category.hpp +++ b/packages/kokkos/core/unit_test/TestHPX_Category.hpp @@ -42,13 +42,14 @@ //@HEADER */ -#ifndef KOKKOS_TEST_ROCMHOSTPINNED_HPP -#define KOKKOS_TEST_ROCMHOSTPINNED_HPP +#ifndef KOKKOS_TEST_HPX_HPP +#define KOKKOS_TEST_HPX_HPP #include <gtest/gtest.h> -#define TEST_CATEGORY rocm_hostpinned -#define TEST_CATEGORY_DEATH rocm_hostpinned_DeathTest -#define TEST_EXECSPACE Kokkos::Experimental::ROCmHostPinnedSpace +#define TEST_CATEGORY hpx +#define TEST_CATEGORY_NUMBER 3 +#define TEST_CATEGORY_DEATH hpx_DeathTest +#define TEST_EXECSPACE Kokkos::Experimental::HPX #endif diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_TeamScratch.cpp b/packages/kokkos/core/unit_test/TestHalfConversion.hpp similarity index 56% rename from packages/kokkos/core/unit_test/rocm/TestROCm_TeamScratch.cpp rename to packages/kokkos/core/unit_test/TestHalfConversion.hpp index 8ec583c23..277fb1b04 100644 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_TeamScratch.cpp +++ b/packages/kokkos/core/unit_test/TestHalfConversion.hpp @@ -1,3 +1,4 @@ + /* //@HEADER // ************************************************************************ @@ -42,41 +43,49 @@ //@HEADER */ -#include <rocm/TestROCm_Category.hpp> -#include <TestTeam.hpp> - +#ifndef TESTHALFCONVERSION_HPP_ +#define TESTHALFCONVERSION_HPP_ namespace Test { -TEST_F(TEST_CATEGORY, team_shared_request) { - TestSharedTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(); - TestSharedTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(); -} +template <class T> +void test_half_conversion_type() { + double epsilon = KOKKOS_HALF_T_IS_FLOAT ? 0.0000003 : 0.0003; + T base = static_cast<T>(3.3); + Kokkos::Experimental::half_t a = Kokkos::Experimental::cast_to_half(base); + T b = Kokkos::Experimental::cast_from_half<T>(a); + ASSERT_TRUE((double(b - base) / double(base)) < epsilon); -TEST_F(TEST_CATEGORY, team_scratch_request) { - TestScratchTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(); - TestScratchTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(); -} +// TODO: Remove ifndef once https://github.com/kokkos/kokkos/pull/3480 merges +#ifndef KOKKOS_ENABLE_SYCL +#ifdef KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA + Kokkos::View<T> b_v("b_v"); + Kokkos::parallel_for( + "TestHalfConversion", 1, KOKKOS_LAMBDA(int) { + Kokkos::Experimental::half_t d_a = + Kokkos::Experimental::cast_to_half(base); + b_v() = Kokkos::Experimental::cast_from_half<T>(d_a); + }); -#if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) -#if !defined(KOKKOS_ENABLE_ROCM) || (8000 <= ROCM_VERSION) -TEST_F(TEST_CATEGORY, team_lambda_shared_request) { - TestLambdaSharedTeam<Kokkos::HostSpace, TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Static> >(); - TestLambdaSharedTeam<Kokkos::HostSpace, TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Dynamic> >(); + Kokkos::deep_copy(b, b_v); + ASSERT_TRUE((double(b - base) / double(base)) < epsilon); +#endif // KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA +#endif // KOKKOS_ENABLE_SYCL } -TEST_F(TEST_CATEGORY, scratch_align) { TestScratchAlignment<TEST_EXECSPACE>(); } -#endif -#endif - -TEST_F(TEST_CATEGORY, shmem_size) { TestShmemSize<TEST_EXECSPACE>(); } - -TEST_F(TEST_CATEGORY, multi_level_scratch) { - TestMultiLevelScratchTeam<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Static> >(); - TestMultiLevelScratchTeam<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Dynamic> >(); +void test_half_conversion() { + test_half_conversion_type<float>(); + test_half_conversion_type<double>(); + test_half_conversion_type<short>(); + test_half_conversion_type<int>(); + test_half_conversion_type<long>(); + test_half_conversion_type<long long>(); + test_half_conversion_type<unsigned short>(); + test_half_conversion_type<unsigned int>(); + test_half_conversion_type<unsigned long>(); + test_half_conversion_type<unsigned long long>(); } +TEST(TEST_CATEGORY, half_conversion) { test_half_conversion(); } + } // namespace Test +#endif diff --git a/packages/kokkos/core/unit_test/TestHalfOperators.hpp b/packages/kokkos/core/unit_test/TestHalfOperators.hpp new file mode 100644 index 000000000..feba5acdd --- /dev/null +++ b/packages/kokkos/core/unit_test/TestHalfOperators.hpp @@ -0,0 +1,361 @@ + +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef TESTHALFOPERATOR_HPP_ +#define TESTHALFOPERATOR_HPP_ +// TODO: Remove ifndef once https://github.com/kokkos/kokkos/pull/3480 merges +#ifndef KOKKOS_ENABLE_SYCL +namespace Test { +#define FP16_EPSILON 0.0009765625F +using namespace Kokkos::Experimental; +using ExecutionSpace = TEST_EXECSPACE; +using ScalarType = double; +using ViewType = Kokkos::View<ScalarType*, ExecutionSpace>; +using ViewTypeHost = Kokkos::View<ScalarType*, Kokkos::HostSpace>; +KOKKOS_FUNCTION +const half_t& accept_ref(const half_t& a) { return a; } + +enum OP_TESTS { + ASSIGN, + ASSIGN_CHAINED, + UNA, + UNS, + PREFIX_INC, + PREFIX_DEC, + POSTFIX_INC, + POSTFIX_DEC, + CADD_H_H, + CADD_H_S, + CSUB_H_H, + CSUB_H_S, + CMUL_H_H, + CMUL_H_S, + CDIV_H_H, + CDIV_H_S, + ADD_H_H, + ADD_H_S, + ADD_S_H, + SUB_H_H, + SUB_H_S, + SUB_S_H, + MUL_H_H, + MUL_H_S, + MUL_S_H, + DIV_H_H, + DIV_H_S, + DIV_S_H, + NEG, + AND, + OR, + EQ, + NEQ, + LT, + GT, + LE, + GE, + TW, + PASS_BY_REF, + AO_IMPL_HALF, + AO_HALF_T, + N_OP_TESTS +}; + +template <class view_type> +struct Functor_TestHalfOperators { + half_t h_lhs, h_rhs; + double d_lhs, d_rhs; + view_type actual_lhs, expected_lhs; + + Functor_TestHalfOperators(half_t lhs = half_t(0), half_t rhs = half_t(0)) + : h_lhs(lhs), h_rhs(rhs) { + actual_lhs = view_type("actual_lhs", N_OP_TESTS); + expected_lhs = view_type("expected_lhs", N_OP_TESTS); + d_lhs = cast_from_half<double>(h_lhs); + d_rhs = cast_from_half<double>(h_rhs); + + if (std::is_same<view_type, ViewTypeHost>::value) { + auto run_on_host = *this; + run_on_host(0); + } else { + Kokkos::parallel_for("Test::Functor_TestHalfOperators", + Kokkos::RangePolicy<ExecutionSpace>(0, 1), *this); + } + } + + KOKKOS_FUNCTION + void operator()(int) const { + half_t tmp_lhs, tmp2_lhs, *tmp_ptr; + double tmp_d_lhs; + using half_impl_type = Kokkos::Impl::half_impl_t::type; + half_impl_type half_tmp; + + tmp_lhs = h_lhs; + actual_lhs(ASSIGN) = cast_from_half<double>(tmp_lhs); + expected_lhs(ASSIGN) = d_lhs; + + tmp_lhs = 0; + tmp2_lhs = tmp_lhs = h_lhs; + actual_lhs(ASSIGN_CHAINED) = cast_from_half<double>(tmp2_lhs); + expected_lhs(ASSIGN_CHAINED) = d_lhs; + + actual_lhs(UNA) = cast_from_half<double>(+h_lhs); + expected_lhs(UNA) = +d_lhs; + + actual_lhs(UNS) = cast_from_half<double>(-h_lhs); + expected_lhs(UNS) = -d_lhs; + + tmp_lhs = h_lhs; + tmp_d_lhs = d_lhs; + actual_lhs(PREFIX_INC) = cast_from_half<double>(++tmp_lhs); + expected_lhs(PREFIX_INC) = ++tmp_d_lhs; + + actual_lhs(PREFIX_DEC) = cast_from_half<double>(--tmp_lhs); + expected_lhs(PREFIX_DEC) = --tmp_d_lhs; + + // if (h_lhs != tmp_lhs) { + // printf("tmp_lhs = %f, h_lhs = %f\n", __half2float(tmp_lhs), + // __half2float(h_lhs)); Kokkos::abort("Error in half_t prefix operators"); + //} + + actual_lhs(POSTFIX_INC) = cast_from_half<double>(tmp_lhs++); + expected_lhs(POSTFIX_INC) = tmp_d_lhs++; + + actual_lhs(POSTFIX_DEC) = cast_from_half<double>(tmp_lhs--); + expected_lhs(POSTFIX_DEC) = tmp_d_lhs--; + + // if (h_lhs != tmp_lhs) { + // printf("tmp_lhs = %f, h_lhs = %f\n", __half2float(tmp_lhs), + // __half2float(h_lhs)); Kokkos::abort("Error in half_t postfix + // operators"); + //} + + tmp_lhs = h_lhs; + tmp_lhs += h_rhs; + actual_lhs(CADD_H_H) = cast_from_half<double>(tmp_lhs); + expected_lhs(CADD_H_H) = d_lhs; + expected_lhs(CADD_H_H) += d_rhs; + + // tmp_lhs = h_lhs; + // tmp_lhs += static_cast<float>(d_rhs); + // actual_lhs(CADD_H_S) = cast_from_half<double>(tmp_lhs); + // expected_lhs(CADD_H_S) = d_lhs; + // expected_lhs(CADD_H_S) += d_rhs; + + tmp_lhs = h_lhs; + tmp_lhs -= h_rhs; + actual_lhs(CSUB_H_H) = cast_from_half<double>(tmp_lhs); + expected_lhs(CSUB_H_H) = d_lhs; + expected_lhs(CSUB_H_H) -= d_rhs; + + // tmp_lhs = h_lhs; + // tmp_lhs -= static_cast<float>(d_rhs); + // actual_lhs(CSUB_H_S) = cast_from_half<double>(tmp_lhs); + // expected_lhs(CSUB_H_S) = d_lhs; + // expected_lhs(CSUB_H_S) -= d_rhs; + + tmp_lhs = h_lhs; + tmp_lhs *= h_rhs; + actual_lhs(CMUL_H_H) = cast_from_half<double>(tmp_lhs); + expected_lhs(CMUL_H_H) = d_lhs; + expected_lhs(CMUL_H_H) *= d_rhs; + + // tmp_lhs = h_lhs; + // tmp_lhs *= static_cast<float>(d_rhs); + // actual_lhs(CMUL_H_S) = cast_from_half<double>(tmp_lhs); + // expected_lhs(CMUL_H_S) = d_lhs; + // expected_lhs(CMUL_H_S) *= d_rhs; + + tmp_lhs = h_lhs; + tmp_lhs /= h_rhs; + actual_lhs(CDIV_H_H) = cast_from_half<double>(tmp_lhs); + expected_lhs(CDIV_H_H) = d_lhs; + expected_lhs(CDIV_H_H) /= d_rhs; + + // tmp_lhs = h_lhs; + // tmp_lhs /= static_cast<float>(d_rhs); + // actual_lhs(CDIV_H_S) = cast_from_half<double>(tmp_lhs); + // expected_lhs(CDIV_H_S) = d_lhs; + // expected_lhs(CDIV_H_S) /= d_rhs; + + actual_lhs(ADD_H_H) = cast_from_half<double>(h_lhs + h_rhs); + expected_lhs(ADD_H_H) = d_lhs + d_rhs; + // actual_lhs(ADD_H_S) = + // cast_from_half<double>(h_lhs + static_cast<float>(d_rhs)); + // expected_lhs(ADD_H_S) = d_lhs + d_rhs; + // actual_lhs(ADD_S_H) = + // cast_from_half<double>(static_cast<float>(d_lhs) + h_rhs); + // expected_lhs(ADD_S_H) = d_lhs + d_rhs; + + actual_lhs(SUB_H_H) = cast_from_half<double>(h_lhs - h_rhs); + expected_lhs(SUB_H_H) = d_lhs - d_rhs; + // actual_lhs(SUB_H_S) = + // cast_from_half<double>(h_lhs - static_cast<float>(d_rhs)); + // expected_lhs(SUB_H_S) = d_lhs - d_rhs; + // actual_lhs(SUB_S_H) = + // cast_from_half<double>(static_cast<float>(d_lhs) - h_rhs); + // expected_lhs(SUB_S_H) = d_lhs - d_rhs; + + actual_lhs(MUL_H_H) = cast_from_half<double>(h_lhs * h_rhs); + expected_lhs(MUL_H_H) = d_lhs * d_rhs; + // actual_lhs(MUL_H_S) = + // cast_from_half<double>(h_lhs * static_cast<float>(d_rhs)); + // expected_lhs(MUL_H_S) = d_lhs * d_rhs; + // actual_lhs(MUL_S_H) = + // cast_from_half<double>(static_cast<float>(d_lhs) * h_rhs); + // expected_lhs(MUL_S_H) = d_lhs * d_rhs; + + actual_lhs(DIV_H_H) = cast_from_half<double>(h_lhs / h_rhs); + expected_lhs(DIV_H_H) = d_lhs / d_rhs; + // actual_lhs(DIV_H_S) = + // cast_from_half<double>(h_lhs / static_cast<float>(d_rhs)); + // expected_lhs(DIV_H_S) = d_lhs / d_rhs; + // actual_lhs(DIV_S_H) = + // cast_from_half<double>(static_cast<float>(d_lhs) / h_rhs); + // expected_lhs(DIV_S_H) = d_lhs / d_rhs; + + // TODO: figure out why operator{!,&&,||} are returning __nv_bool + actual_lhs(NEG) = static_cast<double>(!h_lhs); + expected_lhs(NEG) = !d_lhs; + + actual_lhs(AND) = static_cast<double>(half_t(0) && h_lhs); + expected_lhs(AND) = double(0) && d_lhs; + + actual_lhs(OR) = static_cast<double>(h_lhs || half_t(1)); + expected_lhs(OR) = d_lhs || double(1); + + actual_lhs(EQ) = h_lhs == h_rhs; + expected_lhs(EQ) = d_lhs == d_rhs; + + actual_lhs(NEQ) = h_lhs != h_rhs; + expected_lhs(NEQ) = d_lhs != d_rhs; + + actual_lhs(LT) = h_lhs < h_rhs; + expected_lhs(LT) = d_lhs < d_rhs; + + actual_lhs(GT) = h_lhs > h_rhs; + expected_lhs(GT) = d_lhs > d_rhs; + + actual_lhs(LE) = h_lhs <= h_rhs; + expected_lhs(LE) = d_lhs <= d_rhs; + + actual_lhs(GE) = h_lhs >= h_rhs; + expected_lhs(GE) = d_lhs >= d_rhs; + + // actual_lhs(TW) = h_lhs <=> h_rhs; // Need C++20? + // expected_lhs(TW) = d_lhs <=> d_rhs; // Need C++20? + + actual_lhs(PASS_BY_REF) = cast_from_half<double>(accept_ref(h_lhs)); + expected_lhs(PASS_BY_REF) = d_lhs; + + half_tmp = cast_from_half<float>(h_lhs); + tmp_ptr = &(tmp_lhs = half_tmp); + if (tmp_ptr != &tmp_lhs) + Kokkos::abort("Error in half_t address-of operator"); + actual_lhs(AO_IMPL_HALF) = cast_from_half<double>(*tmp_ptr); + expected_lhs(AO_IMPL_HALF) = d_lhs; + + tmp2_lhs = h_lhs; + tmp_ptr = &(tmp_lhs = tmp2_lhs); + if (tmp_ptr != &tmp_lhs) + Kokkos::abort("Error in half_t address-of operator"); + actual_lhs(AO_HALF_T) = cast_from_half<double>(tmp_ptr[0]); + expected_lhs(AO_HALF_T) = d_lhs; + + // TODO: Add upcast / downcast tests using sizeof + } +}; + +void __test_half_operators(half_t h_lhs, half_t h_rhs) { + double epsilon = KOKKOS_HALF_T_IS_FLOAT ? FLT_EPSILON : FP16_EPSILON; + Functor_TestHalfOperators<ViewType> f_device(h_lhs, h_rhs); // Run on device + Functor_TestHalfOperators<ViewTypeHost> f_host(h_lhs, h_rhs); // Run on host + typename ViewType::HostMirror f_device_actual_lhs = + Kokkos::create_mirror_view(f_device.actual_lhs); + typename ViewType::HostMirror f_device_expected_lhs = + Kokkos::create_mirror_view(f_device.expected_lhs); + + ExecutionSpace().fence(); + Kokkos::deep_copy(f_device_actual_lhs, f_device.actual_lhs); + Kokkos::deep_copy(f_device_expected_lhs, f_device.expected_lhs); + for (int op_test = 0; op_test < N_OP_TESTS; op_test++) { + // printf("%lf\n", actual_lhs(op)); + ASSERT_NEAR(f_device_actual_lhs(op_test), f_device_expected_lhs(op_test), + epsilon); + ASSERT_NEAR(f_host.actual_lhs(op_test), f_host.expected_lhs(op_test), + epsilon); + } + + // Check whether half_t is trivially copyable + ASSERT_TRUE(std::is_trivially_copyable<half_t>::value); + constexpr size_t n = 2; + constexpr size_t n_bytes = sizeof(half_t) * n; + const half_t h_arr0 = half_t(0x89ab), h_arr1 = half_t(0xcdef); + half_t h_arr[n]; + char c_arr[n_bytes], *h_arr_ptr = nullptr; + size_t i; + + h_arr[0] = h_arr0; + h_arr[1] = h_arr1; + h_arr_ptr = reinterpret_cast<char*>(h_arr); + + std::memcpy(c_arr, h_arr, n_bytes); + for (i = 0; i < n_bytes; i++) ASSERT_TRUE(c_arr[i] == h_arr_ptr[i]); + + std::memcpy(h_arr, c_arr, n_bytes); + ASSERT_TRUE(h_arr[0] == h_arr0); + ASSERT_TRUE(h_arr[1] == h_arr1); +} + +void test_half_operators() { + half_t h_lhs = half_t(0.23458), h_rhs = half_t(0.67898); + for (int i = -3; i < 2; i++) { + __test_half_operators(h_lhs + cast_to_half(i + 1), h_rhs + cast_to_half(i)); + } +} + +TEST(TEST_CATEGORY, half_operators) { test_half_operators(); } +} // namespace Test +#endif // KOKKOS_ENABLE_SYCL +#endif // TESTHALFOPERATOR_HPP_ diff --git a/packages/kokkos/core/unit_test/TestInit.hpp b/packages/kokkos/core/unit_test/TestInit.hpp index 03ceb45d7..f124c6202 100644 --- a/packages/kokkos/core/unit_test/TestInit.hpp +++ b/packages/kokkos/core/unit_test/TestInit.hpp @@ -69,3 +69,6 @@ TEST(TEST_CATEGORY, dispatch) { test_dispatch<TEST_EXECSPACE>(); } #endif } // namespace Test + +#include <TestCompilerMacros.hpp> +#include <TestPolicyConstruction.hpp> diff --git a/packages/kokkos/core/unit_test/TestIrregularLayout.hpp b/packages/kokkos/core/unit_test/TestIrregularLayout.hpp new file mode 100644 index 000000000..86f9353e2 --- /dev/null +++ b/packages/kokkos/core/unit_test/TestIrregularLayout.hpp @@ -0,0 +1,264 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include <gtest/gtest.h> +#include <Kokkos_Core.hpp> +#include <stdexcept> +#include <sstream> +#include <iostream> +#define OFFSET_LIST_MAX_SIZE 100 + +namespace Kokkos { + +struct LayoutSelective { + //! Tag this class as a kokkos array layout + using array_layout = LayoutSelective; + + size_t offset_list[OFFSET_LIST_MAX_SIZE]; + size_t list_size; + + enum : bool { is_extent_constructible = false }; + + KOKKOS_INLINE_FUNCTION + LayoutSelective() { + for (int i = 0; i < OFFSET_LIST_MAX_SIZE; i++) { + offset_list[i] = i; + } + } + + KOKKOS_INLINE_FUNCTION + void assign(const size_t ol_[], const size_t size_) { + list_size = size_; + for (int i = 0; i < (int)list_size; i++) { + offset_list[i] = ol_[i]; + } + } + + KOKKOS_INLINE_FUNCTION + LayoutSelective(LayoutSelective const& rhs) { + assign(rhs.offset_list, rhs.list_size); + } + + KOKKOS_INLINE_FUNCTION + LayoutSelective(LayoutSelective&& rhs) { + assign(rhs.offset_list, rhs.list_size); + } + KOKKOS_INLINE_FUNCTION + LayoutSelective& operator=(LayoutSelective const& rhs) { + assign(rhs.offset_list, rhs.list_size); + return *this; + } + KOKKOS_INLINE_FUNCTION + LayoutSelective& operator=(LayoutSelective&& rhs) { + assign(rhs.offset_list, rhs.list_size); + return *this; + } + + KOKKOS_INLINE_FUNCTION + explicit LayoutSelective(const size_t ol_[], const size_t size_) { + assign(ol_, size_); + } + + KOKKOS_INLINE_FUNCTION + size_t offset(size_t ndx) const { + KOKKOS_ASSERT(ndx < list_size); + return offset_list[ndx]; + } +}; + +namespace Impl { +template <class Dimension> +struct ViewOffset<Dimension, Kokkos::LayoutSelective, void> { + public: + using is_mapping_plugin = std::true_type; + using is_regular = std::false_type; + + using size_type = size_t; + using dimension_type = Dimension; + using array_layout = Kokkos::LayoutSelective; + + //---------------------------------------- + dimension_type m_dim; + array_layout m_selective; + + // rank 1 + template <typename I0> + KOKKOS_INLINE_FUNCTION size_type operator()(I0 const& i0) const { + return m_selective.offset(i0); + } + + // This ViewOffset and the underlying layout only supports rank 1 Views + + //---------------------------------------- + + KOKKOS_INLINE_FUNCTION + array_layout layout() const { return array_layout(); } + + KOKKOS_INLINE_FUNCTION constexpr size_type dimension_0() const { + return m_dim.N0; + } + + /* Cardinality of the domain index space */ + KOKKOS_INLINE_FUNCTION + constexpr size_type size() const { return m_dim.N0; } + + public: + /* Span of the range space, largest stride * dimension */ + KOKKOS_INLINE_FUNCTION + constexpr size_type span() const { return m_dim.N0; } + + KOKKOS_INLINE_FUNCTION constexpr bool span_is_contiguous() const { + return false; + } + + /* Strides of dimensions */ + KOKKOS_INLINE_FUNCTION constexpr size_type stride_0() const { return 1; } + + // Stride with [ rank ] value is the total length + template <typename iType> + KOKKOS_INLINE_FUNCTION void stride(iType* const s) const { + if (0 < dimension_type::rank) { + s[0] = 1; + } + for (int i = 1; i < 8; i++) s[i] = 0; + s[dimension_type::rank] = span(); + } + + //---------------------------------------- + ViewOffset() = default; + ViewOffset(const ViewOffset&) = default; + ViewOffset& operator=(const ViewOffset&) = default; + + KOKKOS_INLINE_FUNCTION + ViewOffset(std::integral_constant<unsigned, 0> const&, + Kokkos::LayoutSelective const& rhs) + : m_dim(rhs.list_size, 0, 0, 0, 0, 0, 0, 0), m_selective(rhs) {} +}; + +} // namespace Impl +} // namespace Kokkos + +namespace Test { + +class InnerClass { + public: + long data[100]; + + KOKKOS_INLINE_FUNCTION + InnerClass() { + for (int i = 0; i < 100; i++) { + data[i] = (long)i; + } + } + + KOKKOS_INLINE_FUNCTION + void update(long d) { + for (int i = 0; i < 100; i++) { + data[i] += d; + } + } + + KOKKOS_INLINE_FUNCTION + void set(long d) { + for (int i = 0; i < 100; i++) { + data[i] = d; + } + } +}; + +template <class ExecutionSpace> +struct TestLayout { + const int N = 100; + size_t offsets[2] = {20, 40}; + using Layout = Kokkos::LayoutRight; + using SubLayout = Kokkos::LayoutSelective; + + // Allocate y, x vectors and Matrix A on device. + using ViewVectorType = + Kokkos::View<InnerClass*, Layout, typename ExecutionSpace::memory_space>; + using SubViewVectorType = Kokkos::View<InnerClass*, SubLayout, + typename ExecutionSpace::memory_space, + Kokkos::MemoryUnmanaged>; + struct InitTag {}; + struct UpdateTag {}; + + ViewVectorType a; + SubLayout sl; + SubViewVectorType b; + TestLayout() : a("a", N), sl(offsets, 2), b(a.data(), sl) {} + + void run_test() { + Kokkos::parallel_for(Kokkos::RangePolicy<ExecutionSpace, InitTag>(0, N), + *this); + + Kokkos::parallel_for(Kokkos::RangePolicy<ExecutionSpace, UpdateTag>(0, 2), + *this); + + validate_results(); + } + + // set all values + KOKKOS_INLINE_FUNCTION + void operator()(const InitTag&, const int i) const { a(i).update(i); } + + // update selective values + KOKKOS_INLINE_FUNCTION + void operator()(const UpdateTag&, const int i) const { + b(i).set(200 * (i + 1)); + } + + void validate_results() { + auto a_h = Kokkos::create_mirror_view(a); + Kokkos::deep_copy(a_h, a); + ASSERT_EQ(a_h(20).data[0], 200); + ASSERT_EQ(a_h(40).data[0], 400); + } +}; + +TEST(TEST_CATEGORY, view_irregular_layout) { + TestLayout<TEST_EXECSPACE> tl; + tl.run_test(); +} + +} // namespace Test diff --git a/packages/kokkos/core/unit_test/TestLocalDeepCopy.hpp b/packages/kokkos/core/unit_test/TestLocalDeepCopy.hpp index c776481c7..80feb11f9 100644 --- a/packages/kokkos/core/unit_test/TestLocalDeepCopy.hpp +++ b/packages/kokkos/core/unit_test/TestLocalDeepCopy.hpp @@ -68,8 +68,8 @@ void impl_test_local_deepcopy_teampolicy_rank_1(const int N) { Kokkos::subview(A, 1, 1, 1, 1, 1, 1, Kokkos::ALL(), Kokkos::ALL()); Kokkos::deep_copy(subA, 10.0); - typedef Kokkos::TeamPolicy<ExecSpace> team_policy; - typedef typename Kokkos::TeamPolicy<ExecSpace>::member_type member_type; + using team_policy = Kokkos::TeamPolicy<ExecSpace>; + using member_type = typename Kokkos::TeamPolicy<ExecSpace>::member_type; // Deep Copy Kokkos::parallel_for( @@ -130,8 +130,8 @@ void impl_test_local_deepcopy_teampolicy_rank_2(const int N) { Kokkos::ALL()); Kokkos::deep_copy(subA, 10.0); - typedef Kokkos::TeamPolicy<ExecSpace> team_policy; - typedef typename Kokkos::TeamPolicy<ExecSpace>::member_type member_type; + using team_policy = Kokkos::TeamPolicy<ExecSpace>; + using member_type = typename Kokkos::TeamPolicy<ExecSpace>::member_type; // Deep Copy Kokkos::parallel_for( @@ -195,8 +195,8 @@ void impl_test_local_deepcopy_teampolicy_rank_3(const int N) { Kokkos::ALL(), Kokkos::ALL()); Kokkos::deep_copy(subA, 10.0); - typedef Kokkos::TeamPolicy<ExecSpace> team_policy; - typedef typename Kokkos::TeamPolicy<ExecSpace>::member_type member_type; + using team_policy = Kokkos::TeamPolicy<ExecSpace>; + using member_type = typename Kokkos::TeamPolicy<ExecSpace>::member_type; // Deep Copy Kokkos::parallel_for( @@ -260,8 +260,8 @@ void impl_test_local_deepcopy_teampolicy_rank_4(const int N) { Kokkos::ALL(), Kokkos::ALL(), Kokkos::ALL()); Kokkos::deep_copy(subA, 10.0); - typedef Kokkos::TeamPolicy<ExecSpace> team_policy; - typedef typename Kokkos::TeamPolicy<ExecSpace>::member_type member_type; + using team_policy = Kokkos::TeamPolicy<ExecSpace>; + using member_type = typename Kokkos::TeamPolicy<ExecSpace>::member_type; // Deep Copy Kokkos::parallel_for( @@ -329,8 +329,8 @@ void impl_test_local_deepcopy_teampolicy_rank_5(const int N) { Kokkos::ALL(), Kokkos::ALL(), Kokkos::ALL()); Kokkos::deep_copy(subA, 10.0); - typedef Kokkos::TeamPolicy<ExecSpace> team_policy; - typedef typename Kokkos::TeamPolicy<ExecSpace>::member_type member_type; + using team_policy = Kokkos::TeamPolicy<ExecSpace>; + using member_type = typename Kokkos::TeamPolicy<ExecSpace>::member_type; // Deep Copy Kokkos::parallel_for( @@ -398,8 +398,8 @@ void impl_test_local_deepcopy_teampolicy_rank_6(const int N) { Kokkos::ALL()); Kokkos::deep_copy(subA, 10.0); - typedef Kokkos::TeamPolicy<ExecSpace> team_policy; - typedef typename Kokkos::TeamPolicy<ExecSpace>::member_type member_type; + using team_policy = Kokkos::TeamPolicy<ExecSpace>; + using member_type = typename Kokkos::TeamPolicy<ExecSpace>::member_type; // Deep Copy Kokkos::parallel_for( @@ -464,8 +464,8 @@ void impl_test_local_deepcopy_teampolicy_rank_7(const int N) { // Initialize A matrix. Kokkos::deep_copy(A, 10.0); - typedef Kokkos::TeamPolicy<ExecSpace> team_policy; - typedef typename Kokkos::TeamPolicy<ExecSpace>::member_type member_type; + using team_policy = Kokkos::TeamPolicy<ExecSpace>; + using member_type = typename Kokkos::TeamPolicy<ExecSpace>::member_type; // Deep Copy Kokkos::parallel_for( @@ -935,8 +935,8 @@ void impl_test_local_deepcopy_rangepolicy_rank_7(const int N) { #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) TEST(TEST_CATEGORY, local_deepcopy_teampolicy_layoutleft) { - typedef TEST_EXECSPACE ExecSpace; - typedef Kokkos::View<double********, Kokkos::LayoutLeft, ExecSpace> ViewType; + using ExecSpace = TEST_EXECSPACE; + using ViewType = Kokkos::View<double********, Kokkos::LayoutLeft, ExecSpace>; { // Rank-1 impl_test_local_deepcopy_teampolicy_rank_1<ExecSpace, ViewType>(8); @@ -962,8 +962,8 @@ TEST(TEST_CATEGORY, local_deepcopy_teampolicy_layoutleft) { } //------------------------------------------------------------------------------------------------------------- TEST(TEST_CATEGORY, local_deepcopy_rangepolicy_layoutleft) { - typedef TEST_EXECSPACE ExecSpace; - typedef Kokkos::View<double********, Kokkos::LayoutLeft, ExecSpace> ViewType; + using ExecSpace = TEST_EXECSPACE; + using ViewType = Kokkos::View<double********, Kokkos::LayoutLeft, ExecSpace>; { // Rank-1 impl_test_local_deepcopy_rangepolicy_rank_1<ExecSpace, ViewType>(8); @@ -989,8 +989,8 @@ TEST(TEST_CATEGORY, local_deepcopy_rangepolicy_layoutleft) { } //------------------------------------------------------------------------------------------------------------- TEST(TEST_CATEGORY, local_deepcopy_teampolicy_layoutright) { - typedef TEST_EXECSPACE ExecSpace; - typedef Kokkos::View<double********, Kokkos::LayoutRight, ExecSpace> ViewType; + using ExecSpace = TEST_EXECSPACE; + using ViewType = Kokkos::View<double********, Kokkos::LayoutRight, ExecSpace>; { // Rank-1 impl_test_local_deepcopy_teampolicy_rank_1<ExecSpace, ViewType>(8); @@ -1016,8 +1016,8 @@ TEST(TEST_CATEGORY, local_deepcopy_teampolicy_layoutright) { } //------------------------------------------------------------------------------------------------------------- TEST(TEST_CATEGORY, local_deepcopy_rangepolicy_layoutright) { - typedef TEST_EXECSPACE ExecSpace; - typedef Kokkos::View<double********, Kokkos::LayoutRight, ExecSpace> ViewType; + using ExecSpace = TEST_EXECSPACE; + using ViewType = Kokkos::View<double********, Kokkos::LayoutRight, ExecSpace>; { // Rank-1 impl_test_local_deepcopy_rangepolicy_rank_1<ExecSpace, ViewType>(8); diff --git a/packages/kokkos/core/unit_test/TestMDRange.hpp b/packages/kokkos/core/unit_test/TestMDRange.hpp index c4288f21a..90a31fe0f 100644 --- a/packages/kokkos/core/unit_test/TestMDRange.hpp +++ b/packages/kokkos/core/unit_test/TestMDRange.hpp @@ -103,14 +103,14 @@ struct TestMDRange_ReduceArray_2D { static void test_arrayreduce2(const int N0, const int N1) { { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<2>, - Kokkos::IndexType<int>, InitTag> - range_type_init; - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<2>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type_init = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<2>, + Kokkos::IndexType<int>, InitTag>; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<2>, + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type_init range_init(point_type{{0, 0}}, point_type{{N0, N1}}, tile_type{{3, 3}}); @@ -190,14 +190,14 @@ struct TestMDRange_ReduceArray_3D { static void test_arrayreduce3(const int N0, const int N1, const int N2) { { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<3>, - Kokkos::IndexType<int>, InitTag> - range_type_init; - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<3>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type_init = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<3>, + Kokkos::IndexType<int>, InitTag>; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<3>, + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type_init range_init(point_type{{0, 0, 0}}, point_type{{N0, N1, N2}}, @@ -257,11 +257,11 @@ struct TestMDRange_2D { static void test_reduce2(const int N0, const int N1) { #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<2>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<2>, + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0}}, point_type{{N0, N1}}, tile_type{{3, 3}}); @@ -277,11 +277,11 @@ struct TestMDRange_2D { #endif { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<2>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<2>, + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0}}, point_type{{N0, N1}}, tile_type{{3, 3}}); @@ -297,9 +297,9 @@ struct TestMDRange_2D { // Test with reducers - scalar { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<2>, - Kokkos::IndexType<int> > - range_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<2>, + Kokkos::IndexType<int>>; int s0 = 1; int s1 = 1; range_type range({{s0, s1}}, {{N0, N1}}, {{3, 3}}); @@ -317,9 +317,9 @@ struct TestMDRange_2D { } // Test with reducers - scalar + label { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<2>, - Kokkos::IndexType<int> > - range_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<2>, + Kokkos::IndexType<int>>; int s0 = 1; int s1 = 1; range_type range({{s0, s1}}, {{N0, N1}}, {{3, 3}}); @@ -337,9 +337,9 @@ struct TestMDRange_2D { } // Test with reducers - scalar view { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<2>, - Kokkos::IndexType<int> > - range_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<2>, + Kokkos::IndexType<int>>; range_type range({{0, 0}}, {{N0, N1}}, {{3, 3}}); TestMDRange_2D functor(N0, N1); @@ -360,9 +360,9 @@ struct TestMDRange_2D { // Test Min reducer with lambda #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<2>, - Kokkos::IndexType<int> > - range_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<2>, + Kokkos::IndexType<int>>; range_type range({{1, 1}}, {{N0, N1}}, {{3, 3}}); Kokkos::View<double **, ExecSpace> v_in("v_in", N0, N1); @@ -387,12 +387,11 @@ struct TestMDRange_2D { #endif // Tagged operator test { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<2, Iterate::Default, Iterate::Default>, - Kokkos::IndexType<int>, InitTag> - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>, InitTag>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0}}, point_type{{N0, N1}}, tile_type{{2, 4}}); @@ -426,12 +425,11 @@ struct TestMDRange_2D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<2, Iterate::Default, Iterate::Default>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0}}, point_type{{N0, N1}}, tile_type{{2, 6}}); @@ -446,12 +444,11 @@ struct TestMDRange_2D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<2, Iterate::Left, Iterate::Left>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0}}, point_type{{N0, N1}}, tile_type{{2, 6}}); @@ -466,12 +463,11 @@ struct TestMDRange_2D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<2, Iterate::Left, Iterate::Right>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0}}, point_type{{N0, N1}}, tile_type{{2, 6}}); @@ -486,12 +482,11 @@ struct TestMDRange_2D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<2, Iterate::Right, Iterate::Left>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0}}, point_type{{N0, N1}}, tile_type{{2, 6}}); @@ -506,12 +501,11 @@ struct TestMDRange_2D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<2, Iterate::Right, Iterate::Right>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0}}, point_type{{N0, N1}}, tile_type{{2, 6}}); @@ -529,11 +523,11 @@ struct TestMDRange_2D { static void test_for2(const int N0, const int N1) { #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<2>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<2>, + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; const int s0 = 1; const int s1 = 1; @@ -569,11 +563,11 @@ struct TestMDRange_2D { #endif { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<2>, - Kokkos::IndexType<int>, InitTag> - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<2>, + Kokkos::IndexType<int>, InitTag>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; const int s0 = 1; const int s1 = 1; @@ -605,11 +599,10 @@ struct TestMDRange_2D { } { - typedef - typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<2>, InitTag> - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<2>, InitTag>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0}}, point_type{{N0, N1}}, tile_type{{3, 3}}); @@ -639,10 +632,9 @@ struct TestMDRange_2D { } { - typedef - typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<2>, InitTag> - range_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<2>, InitTag>; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0}}, point_type{{N0, N1}}); TestMDRange_2D functor(N0, N1); @@ -671,11 +663,11 @@ struct TestMDRange_2D { } { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<2>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<2>, + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0}}, point_type{{N0, N1}}, tile_type{{3, 3}}); @@ -702,12 +694,11 @@ struct TestMDRange_2D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<2, Iterate::Default, Iterate::Default>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0}}, point_type{{N0, N1}}, tile_type{{4, 4}}); @@ -734,12 +725,11 @@ struct TestMDRange_2D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<2, Iterate::Left, Iterate::Left>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0}}, point_type{{N0, N1}}, tile_type{{3, 3}}); @@ -766,12 +756,11 @@ struct TestMDRange_2D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<2, Iterate::Left, Iterate::Right>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0}}, point_type{{N0, N1}}, tile_type{{7, 7}}); @@ -798,12 +787,11 @@ struct TestMDRange_2D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<2, Iterate::Right, Iterate::Left>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0}}, point_type{{N0, N1}}, tile_type{{16, 16}}); @@ -830,12 +818,11 @@ struct TestMDRange_2D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<2, Iterate::Right, Iterate::Right>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0}}, point_type{{N0, N1}}, tile_type{{5, 16}}); @@ -904,11 +891,11 @@ struct TestMDRange_3D { static void test_reduce3(const int N0, const int N1, const int N2) { #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<3>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<3>, + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0}}, point_type{{N0, N1, N2}}, tile_type{{3, 3, 3}}); @@ -923,11 +910,11 @@ struct TestMDRange_3D { #endif { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<3>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<3>, + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; int s0 = 1; int s1 = 1; @@ -946,9 +933,9 @@ struct TestMDRange_3D { // Test with reducers - scalar { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<3>, - Kokkos::IndexType<int> > - range_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<3>, + Kokkos::IndexType<int>>; range_type range({{0, 0, 0}}, {{N0, N1, N2}}, {{3, 3, 3}}); TestMDRange_3D functor(N0, N1, N2); @@ -964,9 +951,9 @@ struct TestMDRange_3D { } // Test with reducers - scalar + label { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<3>, - Kokkos::IndexType<int> > - range_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<3>, + Kokkos::IndexType<int>>; range_type range({{0, 0, 0}}, {{N0, N1, N2}}, {{3, 3, 3}}); TestMDRange_3D functor(N0, N1, N2); @@ -982,9 +969,9 @@ struct TestMDRange_3D { } // Test with reducers - scalar view { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<3>, - Kokkos::IndexType<int> > - range_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<3>, + Kokkos::IndexType<int>>; range_type range({{0, 0, 0}}, {{N0, N1, N2}}, {{3, 3, 3}}); TestMDRange_3D functor(N0, N1, N2); @@ -1005,9 +992,9 @@ struct TestMDRange_3D { // Test Min reducer with lambda #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<3>, - Kokkos::IndexType<int> > - range_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<3>, + Kokkos::IndexType<int>>; range_type range({{1, 1, 1}}, {{N0, N1, N2}}, {{3, 3, 3}}); @@ -1040,12 +1027,11 @@ struct TestMDRange_3D { // Tagged operator test { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<3, Iterate::Default, Iterate::Default>, - Kokkos::IndexType<int>, InitTag> - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>, InitTag>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0}}, point_type{{N0, N1, N2}}, tile_type{{2, 4, 6}}); @@ -1080,12 +1066,11 @@ struct TestMDRange_3D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<3, Iterate::Default, Iterate::Default>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0}}, point_type{{N0, N1, N2}}, tile_type{{2, 4, 6}}); @@ -1100,12 +1085,11 @@ struct TestMDRange_3D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<3, Iterate::Left, Iterate::Left>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0}}, point_type{{N0, N1, N2}}, tile_type{{2, 4, 6}}); @@ -1120,12 +1104,11 @@ struct TestMDRange_3D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<3, Iterate::Left, Iterate::Right>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0}}, point_type{{N0, N1, N2}}, tile_type{{2, 4, 6}}); @@ -1140,12 +1123,11 @@ struct TestMDRange_3D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<3, Iterate::Right, Iterate::Left>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0}}, point_type{{N0, N1, N2}}, tile_type{{2, 4, 6}}); @@ -1160,12 +1142,11 @@ struct TestMDRange_3D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<3, Iterate::Right, Iterate::Right>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0}}, point_type{{N0, N1, N2}}, tile_type{{2, 4, 6}}); @@ -1183,11 +1164,11 @@ struct TestMDRange_3D { static void test_for3(const int N0, const int N1, const int N2) { #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<3>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<3>, + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; const int s0 = 1; const int s1 = 1; @@ -1227,9 +1208,9 @@ struct TestMDRange_3D { #endif { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<3> > - range_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<3>>; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0}}, point_type{{N0, N1, N2}}); TestMDRange_3D functor(N0, N1, N2); @@ -1257,11 +1238,11 @@ struct TestMDRange_3D { } { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<3>, - Kokkos::IndexType<int>, InitTag> - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<3>, + Kokkos::IndexType<int>, InitTag>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; int s0 = 1; int s1 = 1; @@ -1295,11 +1276,11 @@ struct TestMDRange_3D { } { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<3>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<3>, + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0}}, point_type{{N0, N1, N2}}, tile_type{{3, 3, 3}}); @@ -1328,12 +1309,11 @@ struct TestMDRange_3D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<3, Iterate::Default, Iterate::Default>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0}}, point_type{{N0, N1, N2}}, tile_type{{3, 3, 3}}); @@ -1361,12 +1341,11 @@ struct TestMDRange_3D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<3, Iterate::Left, Iterate::Left>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0}}, point_type{{N0, N1, N2}}, tile_type{{2, 4, 2}}); @@ -1394,12 +1373,11 @@ struct TestMDRange_3D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<3, Iterate::Left, Iterate::Right>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0}}, point_type{{N0, N1, N2}}, tile_type{{3, 5, 7}}); @@ -1427,12 +1405,11 @@ struct TestMDRange_3D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<3, Iterate::Right, Iterate::Left>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0}}, point_type{{N0, N1, N2}}, tile_type{{8, 8, 8}}); @@ -1460,12 +1437,11 @@ struct TestMDRange_3D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<3, Iterate::Right, Iterate::Right>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0}}, point_type{{N0, N1, N2}}, tile_type{{2, 4, 2}}); @@ -1537,11 +1513,11 @@ struct TestMDRange_4D { const int N3) { #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<4>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<4>, + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0}}, point_type{{N0, N1, N2, N3}}, tile_type{{3, 3, 3, 3}}); @@ -1556,11 +1532,11 @@ struct TestMDRange_4D { #endif { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<4>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<4>, + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; int s0 = 1; int s1 = 1; @@ -1580,9 +1556,9 @@ struct TestMDRange_4D { // Test with reducers - scalar { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<4>, - Kokkos::IndexType<int> > - range_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<4>, + Kokkos::IndexType<int>>; range_type range({{0, 0, 0, 0}}, {{N0, N1, N2, N3}}, {{3, 3, 3, 3}}); TestMDRange_4D functor(N0, N1, N2, N3); @@ -1599,9 +1575,9 @@ struct TestMDRange_4D { // Test with reducers - scalar + label { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<4>, - Kokkos::IndexType<int> > - range_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<4>, + Kokkos::IndexType<int>>; range_type range({{0, 0, 0, 0}}, {{N0, N1, N2, N3}}, {{3, 3, 3, 3}}); TestMDRange_4D functor(N0, N1, N2, N3); @@ -1618,9 +1594,9 @@ struct TestMDRange_4D { // Test with reducers - scalar view { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<4>, - Kokkos::IndexType<int> > - range_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<4>, + Kokkos::IndexType<int>>; range_type range({{0, 0, 0, 0}}, {{N0, N1, N2, N3}}, {{3, 3, 3, 3}}); TestMDRange_4D functor(N0, N1, N2, N3); @@ -1642,9 +1618,9 @@ struct TestMDRange_4D { // Test Min reducer with lambda #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<4>, - Kokkos::IndexType<int> > - range_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<4>, + Kokkos::IndexType<int>>; range_type range({{1, 1, 1, 1}}, {{N0, N1, N2, N3}}, {{3, 3, 3, 3}}); @@ -1672,12 +1648,11 @@ struct TestMDRange_4D { // Tagged operator test { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<4, Iterate::Default, Iterate::Default>, - Kokkos::IndexType<int>, InitTag> - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>, InitTag>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0}}, point_type{{N0, N1, N2, N3}}, tile_type{{2, 4, 6, 2}}); @@ -1714,12 +1689,11 @@ struct TestMDRange_4D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<4, Iterate::Default, Iterate::Default>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0}}, point_type{{N0, N1, N2, N3}}, tile_type{{2, 4, 6, 2}}); @@ -1734,12 +1708,11 @@ struct TestMDRange_4D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<4, Iterate::Left, Iterate::Left>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0}}, point_type{{N0, N1, N2, N3}}, tile_type{{2, 4, 6, 2}}); @@ -1754,12 +1727,11 @@ struct TestMDRange_4D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<4, Iterate::Left, Iterate::Right>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0}}, point_type{{N0, N1, N2, N3}}, tile_type{{2, 4, 6, 2}}); @@ -1774,12 +1746,11 @@ struct TestMDRange_4D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<4, Iterate::Right, Iterate::Left>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0}}, point_type{{N0, N1, N2, N3}}, tile_type{{2, 4, 6, 2}}); @@ -1794,12 +1765,11 @@ struct TestMDRange_4D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<4, Iterate::Right, Iterate::Right>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0}}, point_type{{N0, N1, N2, N3}}, tile_type{{2, 4, 6, 2}}); @@ -1818,11 +1788,11 @@ struct TestMDRange_4D { const int N3) { #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<4>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<4>, + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; const int s0 = 1; const int s1 = 1; @@ -1863,9 +1833,9 @@ struct TestMDRange_4D { #endif { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<4> > - range_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<4>>; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0}}, point_type{{N0, N1, N2, N3}}); TestMDRange_4D functor(N0, N1, N2, N3); @@ -1894,11 +1864,11 @@ struct TestMDRange_4D { } { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<4>, - Kokkos::IndexType<int>, InitTag> - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<4>, + Kokkos::IndexType<int>, InitTag>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; int s0 = 1; int s1 = 1; @@ -1934,11 +1904,11 @@ struct TestMDRange_4D { } { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<4>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<4>, + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0}}, point_type{{N0, N1, N2, N3}}, tile_type{{4, 4, 4, 4}}); @@ -1968,12 +1938,11 @@ struct TestMDRange_4D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<4, Iterate::Default, Iterate::Default>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0}}, point_type{{N0, N1, N2, N3}}, tile_type{{4, 4, 4, 4}}); @@ -2003,12 +1972,11 @@ struct TestMDRange_4D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<4, Iterate::Left, Iterate::Left>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0}}, point_type{{N0, N1, N2, N3}}, tile_type{{4, 4, 4, 4}}); @@ -2038,12 +2006,11 @@ struct TestMDRange_4D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<4, Iterate::Left, Iterate::Right>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0}}, point_type{{N0, N1, N2, N3}}, tile_type{{4, 4, 4, 4}}); @@ -2073,12 +2040,11 @@ struct TestMDRange_4D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<4, Iterate::Right, Iterate::Left>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0}}, point_type{{N0, N1, N2, N3}}, tile_type{{4, 4, 4, 4}}); @@ -2108,12 +2074,11 @@ struct TestMDRange_4D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<4, Iterate::Right, Iterate::Right>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0}}, point_type{{N0, N1, N2, N3}}, tile_type{{4, 4, 4, 4}}); @@ -2188,11 +2153,11 @@ struct TestMDRange_5D { const int N3, const int N4) { #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<5>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<5>, + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0, 0}}, point_type{{N0, N1, N2, N3, N4}}, @@ -2209,11 +2174,11 @@ struct TestMDRange_5D { #endif { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<5>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<5>, + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; int s0 = 1; int s1 = 1; @@ -2236,9 +2201,9 @@ struct TestMDRange_5D { // Test with reducers - scalar { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<5>, - Kokkos::IndexType<int> > - range_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<5>, + Kokkos::IndexType<int>>; range_type range({{0, 0, 0, 0, 0}}, {{N0, N1, N2, N3, N4}}, {{3, 3, 3, 3, 3}}); @@ -2256,9 +2221,9 @@ struct TestMDRange_5D { // Test with reducers - scalar + label { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<5>, - Kokkos::IndexType<int> > - range_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<5>, + Kokkos::IndexType<int>>; range_type range({{0, 0, 0, 0, 0}}, {{N0, N1, N2, N3, N4}}, {{3, 3, 3, 3, 3}}); @@ -2276,9 +2241,9 @@ struct TestMDRange_5D { // Test with reducers - scalar view { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<5>, - Kokkos::IndexType<int> > - range_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<5>, + Kokkos::IndexType<int>>; range_type range({{0, 0, 0, 0, 0}}, {{N0, N1, N2, N3, N4}}, {{3, 3, 3, 3, 3}}); @@ -2301,9 +2266,9 @@ struct TestMDRange_5D { // Test Min reducer with lambda #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<5>, - Kokkos::IndexType<int> > - range_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<5>, + Kokkos::IndexType<int>>; range_type range({{1, 1, 1, 1, 1}}, {{N0, N1, N2, N3, N4}}, {{3, 3, 3, 2, 2}}); @@ -2335,12 +2300,11 @@ struct TestMDRange_5D { // Tagged operator test { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<5, Iterate::Default, Iterate::Default>, - Kokkos::IndexType<int>, InitTag> - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>, InitTag>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0, 0}}, point_type{{N0, N1, N2, N3, N4}}, @@ -2383,11 +2347,11 @@ struct TestMDRange_5D { const int N4) { #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<5>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<5>, + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; const int s0 = 1; const int s1 = 1; @@ -2432,9 +2396,9 @@ struct TestMDRange_5D { #endif { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<5> > - range_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<5>>; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0, 0}}, point_type{{N0, N1, N2, N3, N4}}); @@ -2465,11 +2429,11 @@ struct TestMDRange_5D { } { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<5>, - Kokkos::IndexType<int>, InitTag> - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<5>, + Kokkos::IndexType<int>, InitTag>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; int s0 = 1; int s1 = 1; @@ -2508,11 +2472,11 @@ struct TestMDRange_5D { } { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<5>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<5>, + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0, 0}}, point_type{{N0, N1, N2, N3, N4}}, @@ -2544,12 +2508,11 @@ struct TestMDRange_5D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<5, Iterate::Default, Iterate::Default>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0, 0}}, point_type{{N0, N1, N2, N3, N4}}, @@ -2581,12 +2544,11 @@ struct TestMDRange_5D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<5, Iterate::Left, Iterate::Left>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0, 0}}, point_type{{N0, N1, N2, N3, N4}}, @@ -2618,12 +2580,11 @@ struct TestMDRange_5D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<5, Iterate::Left, Iterate::Right>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0, 0}}, point_type{{N0, N1, N2, N3, N4}}, @@ -2655,12 +2616,11 @@ struct TestMDRange_5D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<5, Iterate::Right, Iterate::Left>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0, 0}}, point_type{{N0, N1, N2, N3, N4}}, @@ -2692,12 +2652,11 @@ struct TestMDRange_5D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<5, Iterate::Right, Iterate::Right>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0, 0}}, point_type{{N0, N1, N2, N3, N4}}, @@ -2775,11 +2734,11 @@ struct TestMDRange_6D { const int N3, const int N4, const int N5) { #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<6>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<6>, + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0, 0, 0}}, point_type{{N0, N1, N2, N3, N4, N5}}, @@ -2796,11 +2755,11 @@ struct TestMDRange_6D { #endif { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<6>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<6>, + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; int s0 = 1; int s1 = 1; @@ -2824,9 +2783,9 @@ struct TestMDRange_6D { // Test with reducers - scalar { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<6>, - Kokkos::IndexType<int> > - range_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<6>, + Kokkos::IndexType<int>>; range_type range({{0, 0, 0, 0, 0, 0}}, {{N0, N1, N2, N3, N4, N5}}, {{3, 3, 3, 3, 3, 2}}); @@ -2844,9 +2803,9 @@ struct TestMDRange_6D { // Test with reducers - scalar + label { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<6>, - Kokkos::IndexType<int> > - range_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<6>, + Kokkos::IndexType<int>>; range_type range({{0, 0, 0, 0, 0, 0}}, {{N0, N1, N2, N3, N4, N5}}, {{3, 3, 3, 3, 3, 2}}); @@ -2864,9 +2823,9 @@ struct TestMDRange_6D { // Test with reducers - scalar view { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<6>, - Kokkos::IndexType<int> > - range_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<6>, + Kokkos::IndexType<int>>; range_type range({{0, 0, 0, 0, 0, 0}}, {{N0, N1, N2, N3, N4, N5}}, {{3, 3, 3, 3, 3, 2}}); @@ -2889,9 +2848,9 @@ struct TestMDRange_6D { // Test Min reducer with lambda #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<6>, - Kokkos::IndexType<int> > - range_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<6>, + Kokkos::IndexType<int>>; range_type range({{1, 1, 1, 1, 1, 1}}, {{N0, N1, N2, N3, N4, N5}}, {{3, 3, 3, 2, 2, 1}}); @@ -2925,12 +2884,11 @@ struct TestMDRange_6D { // Tagged operator test { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<6, Iterate::Default, Iterate::Default>, - Kokkos::IndexType<int>, InitTag> - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>, InitTag>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0, 0, 0}}, point_type{{N0, N1, N2, N3, N4, N5}}, @@ -2974,11 +2932,11 @@ struct TestMDRange_6D { const int N4, const int N5) { #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<6>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<6>, + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; const int s0 = 1; const int s1 = 1; @@ -3025,9 +2983,9 @@ struct TestMDRange_6D { #endif { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<6> > - range_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<6>>; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0, 0, 0}}, point_type{{N0, N1, N2, N3, N4, N5}}); @@ -3059,11 +3017,11 @@ struct TestMDRange_6D { } { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<6>, - Kokkos::IndexType<int>, InitTag> - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<6>, + Kokkos::IndexType<int>, InitTag>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; int s0 = 1; int s1 = 1; @@ -3106,11 +3064,11 @@ struct TestMDRange_6D { } { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<6>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<6>, + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0, 0, 0}}, point_type{{N0, N1, N2, N3, N4, N5}}, @@ -3143,12 +3101,11 @@ struct TestMDRange_6D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<6, Iterate::Default, Iterate::Default>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0, 0, 0}}, point_type{{N0, N1, N2, N3, N4, N5}}, @@ -3181,12 +3138,11 @@ struct TestMDRange_6D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<6, Iterate::Left, Iterate::Left>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0, 0, 0}}, point_type{{N0, N1, N2, N3, N4, N5}}, @@ -3219,12 +3175,11 @@ struct TestMDRange_6D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<6, Iterate::Left, Iterate::Right>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0, 0, 0}}, point_type{{N0, N1, N2, N3, N4, N5}}, @@ -3257,12 +3212,11 @@ struct TestMDRange_6D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<6, Iterate::Right, Iterate::Left>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0, 0, 0}}, point_type{{N0, N1, N2, N3, N4, N5}}, @@ -3295,12 +3249,11 @@ struct TestMDRange_6D { } { - typedef typename Kokkos::MDRangePolicy< + using range_type = typename Kokkos::MDRangePolicy< ExecSpace, Kokkos::Rank<6, Iterate::Right, Iterate::Right>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; range_type range(point_type{{0, 0, 0, 0, 0, 0}}, point_type{{N0, N1, N2, N3, N4, N5}}, @@ -3366,11 +3319,11 @@ struct TestMDRange_2D_NegIdx { static void test_2D_negidx(const int N0, const int N1) { { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<2>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<2>, + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; const point_type lower{{-1, -1}}; const point_type upper{{N0, N1}}; @@ -3428,11 +3381,11 @@ struct TestMDRange_3D_NegIdx { static void test_3D_negidx(const int N0, const int N1, const int N2) { { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<3>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<3>, + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; const point_type lower{{-1, -1, -1}}; const point_type upper{{N0, N1, N2}}; @@ -3495,11 +3448,11 @@ struct TestMDRange_4D_NegIdx { static void test_4D_negidx(const int N0, const int N1, const int N2, const int N3) { { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<4>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<4>, + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; const point_type lower{{-1, -1, -1, -1}}; const point_type upper{{N0, N1, N2, N3}}; @@ -3566,11 +3519,11 @@ struct TestMDRange_5D_NegIdx { static void test_5D_negidx(const int N0, const int N1, const int N2, const int N3, const int N4) { { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<5>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<5>, + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; const point_type lower{{-1, -1, -1, -1, -1}}; const point_type upper{{N0, N1, N2, N3, N4}}; @@ -3643,11 +3596,11 @@ struct TestMDRange_6D_NegIdx { static void test_6D_negidx(const int N0, const int N1, const int N2, const int N3, const int N4, const int N5) { { - typedef typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<6>, - Kokkos::IndexType<int> > - range_type; - typedef typename range_type::tile_type tile_type; - typedef typename range_type::point_type point_type; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<6>, + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; const point_type lower{{-1, -1, -1, -1, -1, -1}}; const point_type upper{{N0, N1, N2, N3, N4, N5}}; @@ -3675,6 +3628,63 @@ struct TestMDRange_6D_NegIdx { } }; +template <typename ExecSpace> +struct TestMDRange_ReduceScalar { + struct Scalar { + double v[4]; + KOKKOS_INLINE_FUNCTION + Scalar() { + for (int i = 0; i < 4; i++) v[i] = 0; + } + + KOKKOS_INLINE_FUNCTION + Scalar(const Scalar &src) { + for (int i = 0; i < 4; i++) v[i] = src.v[i]; + } + KOKKOS_INLINE_FUNCTION + void operator=(const Scalar &src) { + for (int i = 0; i < 4; i++) v[i] = src.v[i]; + } + KOKKOS_INLINE_FUNCTION + void operator+=(const Scalar &src) { + for (int i = 0; i < 4; i++) v[i] += src.v[i]; + } + KOKKOS_INLINE_FUNCTION + void operator=(const volatile Scalar &src) volatile { + for (int i = 0; i < 4; i++) v[i] = src.v[i]; + } + KOKKOS_INLINE_FUNCTION + void operator+=(const volatile Scalar &src) volatile { + for (int i = 0; i < 4; i++) v[i] += src.v[i]; + } + }; + + static void test_scalar_reduce(const int N0, const int N1) { +#if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) + Scalar sum; + using range_type = + typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<2>, + Kokkos::IndexType<int>>; + using tile_type = typename range_type::tile_type; + using point_type = typename range_type::point_type; + + range_type range(point_type{{0, 0}}, point_type{{N0, N1}}, + tile_type{{3, 3}}); + + parallel_reduce( + range, + KOKKOS_LAMBDA(int, int, Scalar &lsum) { + for (int i = 0; i < 4; i++) lsum.v[i]++; + }, + sum); + for (int i = 0; i < 4; i++) ASSERT_EQ(sum.v[i], N0 * N1); +#else + std::ignore = N0; + std::ignore = N1; +#endif + } +}; + } // namespace } // namespace Test diff --git a/packages/kokkos/core/unit_test/TestMDRange_a.hpp b/packages/kokkos/core/unit_test/TestMDRange_a.hpp index 3bb9ab089..3f3d13e7c 100644 --- a/packages/kokkos/core/unit_test/TestMDRange_a.hpp +++ b/packages/kokkos/core/unit_test/TestMDRange_a.hpp @@ -47,10 +47,7 @@ namespace Test { TEST(TEST_CATEGORY, mdrange_5d) { -#if !defined(KOKKOS_ENABLE_ROCM) // MDRange Reduce explicitly handled in its - // own cpp file TestMDRange_5D<TEST_EXECSPACE>::test_reduce5(100, 10, 10, 10, 5); -#endif TestMDRange_5D<TEST_EXECSPACE>::test_for5(100, 10, 10, 10, 5); } diff --git a/packages/kokkos/core/unit_test/TestMDRange_b.hpp b/packages/kokkos/core/unit_test/TestMDRange_b.hpp index 17dcedd42..f43ba38c7 100644 --- a/packages/kokkos/core/unit_test/TestMDRange_b.hpp +++ b/packages/kokkos/core/unit_test/TestMDRange_b.hpp @@ -48,10 +48,7 @@ namespace Test { TEST(TEST_CATEGORY, mdrange_6d) { TestMDRange_6D<TEST_EXECSPACE>::test_for6(10, 10, 10, 10, 5, 5); -#if !defined(KOKKOS_ENABLE_ROCM) // MDRange Reduce explicitly handled in its - // own cpp file TestMDRange_6D<TEST_EXECSPACE>::test_reduce6(100, 10, 10, 10, 5, 5); -#endif } } // namespace Test diff --git a/packages/kokkos/core/unit_test/TestMDRange_c.hpp b/packages/kokkos/core/unit_test/TestMDRange_c.hpp index c37b25993..dbaed8ec1 100644 --- a/packages/kokkos/core/unit_test/TestMDRange_c.hpp +++ b/packages/kokkos/core/unit_test/TestMDRange_c.hpp @@ -47,10 +47,7 @@ namespace Test { TEST(TEST_CATEGORY, mdrange_2d) { -#if !defined(KOKKOS_ENABLE_ROCM) // MDRange Reduce explicitly handled in its - // own cpp file TestMDRange_2D<TEST_EXECSPACE>::test_reduce2(100, 100); -#endif TestMDRange_2D<TEST_EXECSPACE>::test_for2(100, 100); } diff --git a/packages/kokkos/core/unit_test/TestMDRange_d.hpp b/packages/kokkos/core/unit_test/TestMDRange_d.hpp index 75c33caf5..ea5300a1a 100644 --- a/packages/kokkos/core/unit_test/TestMDRange_d.hpp +++ b/packages/kokkos/core/unit_test/TestMDRange_d.hpp @@ -49,11 +49,8 @@ namespace Test { TEST(TEST_CATEGORY, mdrange_3d) { TestMDRange_3D<TEST_EXECSPACE>::test_for3(1, 10, 100); TestMDRange_3D<TEST_EXECSPACE>::test_for3(100, 10, 100); -#if !defined(KOKKOS_ENABLE_ROCM) // MDRange Reduced explicitly handled in its - // own cpp file TestMDRange_3D<TEST_EXECSPACE>::test_reduce3(1, 10, 100); TestMDRange_3D<TEST_EXECSPACE>::test_reduce3(100, 10, 100); -#endif } TEST(TEST_CATEGORY, mdrange_neg_idx) { diff --git a/packages/kokkos/core/unit_test/TestMDRange_e.hpp b/packages/kokkos/core/unit_test/TestMDRange_e.hpp index 38746cd78..d1576e5e5 100644 --- a/packages/kokkos/core/unit_test/TestMDRange_e.hpp +++ b/packages/kokkos/core/unit_test/TestMDRange_e.hpp @@ -47,10 +47,7 @@ namespace Test { TEST(TEST_CATEGORY, mdrange_4d) { -#if !defined(KOKKOS_ENABLE_ROCM) // MDRange Reduce explicitly handled in its - // own cpp file TestMDRange_4D<TEST_EXECSPACE>::test_reduce4(100, 10, 10, 10); -#endif TestMDRange_4D<TEST_EXECSPACE>::test_for4(100, 10, 10, 10); } diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_MDRangeReduce_c.cpp b/packages/kokkos/core/unit_test/TestMDRange_f.hpp similarity index 93% rename from packages/kokkos/core/unit_test/rocm/TestROCm_MDRangeReduce_c.cpp rename to packages/kokkos/core/unit_test/TestMDRange_f.hpp index e9cdb6fe9..4f10ce273 100644 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_MDRangeReduce_c.cpp +++ b/packages/kokkos/core/unit_test/TestMDRange_f.hpp @@ -1,4 +1,3 @@ - /* //@HEADER // ************************************************************************ @@ -43,12 +42,12 @@ //@HEADER */ -#include <rocm/TestROCm_Category.hpp> #include <TestMDRange.hpp> + namespace Test { -TEST_F(TEST_CATEGORY, mdrange_2d_reduce) { - TestMDRange_2D<TEST_EXECSPACE>::test_reduce2(100, 100); +TEST(TEST_CATEGORY, mdrange_scalar) { + TestMDRange_ReduceScalar<TEST_EXECSPACE>::test_scalar_reduce(12, 11); } } // namespace Test diff --git a/packages/kokkos/core/unit_test/TestMemoryPool.hpp b/packages/kokkos/core/unit_test/TestMemoryPool.hpp index cc18a9030..63895ad47 100644 --- a/packages/kokkos/core/unit_test/TestMemoryPool.hpp +++ b/packages/kokkos/core/unit_test/TestMemoryPool.hpp @@ -56,8 +56,8 @@ namespace TestMemoryPool { template <typename MemSpace = Kokkos::HostSpace> void test_host_memory_pool_defaults() { - typedef typename MemSpace::execution_space Space; - typedef typename Kokkos::MemoryPool<Space> MemPool; + using Space = typename MemSpace::execution_space; + using MemPool = typename Kokkos::MemoryPool<Space>; { const size_t MemoryCapacity = 32000; @@ -132,8 +132,8 @@ void test_host_memory_pool_defaults() { template <typename MemSpace = Kokkos::HostSpace> void test_host_memory_pool_stats() { - typedef typename MemSpace::execution_space Space; - typedef typename Kokkos::MemoryPool<Space> MemPool; + using Space = typename MemSpace::execution_space; + using MemPool = typename Kokkos::MemoryPool<Space>; const size_t MemoryCapacity = 32000; const size_t MinBlockSize = 64; @@ -178,8 +178,8 @@ void test_host_memory_pool_stats() { template <class DeviceType> struct TestMemoryPool_Functor { - typedef Kokkos::View<uintptr_t*, DeviceType> ptrs_type; - typedef Kokkos::MemoryPool<DeviceType> pool_type; + using ptrs_type = Kokkos::View<uintptr_t*, DeviceType>; + using pool_type = Kokkos::MemoryPool<DeviceType>; pool_type pool; ptrs_type ptrs; @@ -268,15 +268,15 @@ void print_memory_pool_stats(typename PoolType::usage_statistics const& stats) { template <class DeviceType> void test_memory_pool_v2(const bool print_statistics, const bool print_superblocks) { - typedef typename DeviceType::memory_space memory_space; - typedef typename DeviceType::execution_space execution_space; - typedef Kokkos::MemoryPool<DeviceType> pool_type; - typedef TestMemoryPool_Functor<DeviceType> functor_type; + using memory_space = typename DeviceType::memory_space; + using execution_space = typename DeviceType::execution_space; + using pool_type = Kokkos::MemoryPool<DeviceType>; + using functor_type = TestMemoryPool_Functor<DeviceType>; - typedef typename functor_type::TagAlloc TagAlloc; - typedef typename functor_type::TagDealloc TagDealloc; - typedef typename functor_type::TagRealloc TagRealloc; - typedef typename functor_type::TagMixItUp TagMixItUp; + using TagAlloc = typename functor_type::TagAlloc; + using TagDealloc = typename functor_type::TagDealloc; + using TagRealloc = typename functor_type::TagRealloc; + using TagMixItUp = typename functor_type::TagMixItUp; const size_t total_alloc_size = 10000000; const unsigned min_block_size = 64; @@ -364,8 +364,8 @@ void test_memory_pool_v2(const bool print_statistics, template <class DeviceType> struct TestMemoryPoolCorners { - typedef Kokkos::View<uintptr_t*, DeviceType> ptrs_type; - typedef Kokkos::MemoryPool<DeviceType> pool_type; + using ptrs_type = Kokkos::View<uintptr_t*, DeviceType>; + using pool_type = Kokkos::MemoryPool<DeviceType>; pool_type pool; ptrs_type ptrs; @@ -407,11 +407,11 @@ struct TestMemoryPoolCorners { template <class DeviceType> void test_memory_pool_corners(const bool print_statistics, const bool print_superblocks) { - typedef typename DeviceType::memory_space memory_space; - typedef typename DeviceType::execution_space execution_space; - typedef Kokkos::MemoryPool<DeviceType> pool_type; - typedef TestMemoryPoolCorners<DeviceType> functor_type; - typedef typename functor_type::ptrs_type ptrs_type; + using memory_space = typename DeviceType::memory_space; + using execution_space = typename DeviceType::execution_space; + using pool_type = Kokkos::MemoryPool<DeviceType>; + using functor_type = TestMemoryPoolCorners<DeviceType>; + using ptrs_type = typename functor_type::ptrs_type; { // superblock size 1 << 14 @@ -491,9 +491,9 @@ struct TestMemoryPoolHuge< DeviceType, typename std::enable_if<std::is_same< Kokkos::HostSpace, typename DeviceType::memory_space>::value>::type> { - typedef Kokkos::View<uintptr_t*, DeviceType> ptrs_type; - typedef Kokkos::MemoryPool<DeviceType> pool_type; - typedef typename DeviceType::memory_space memory_space; + using ptrs_type = Kokkos::View<uintptr_t*, DeviceType>; + using pool_type = Kokkos::MemoryPool<DeviceType>; + using memory_space = typename DeviceType::memory_space; pool_type pool; ptrs_type ptrs; @@ -541,9 +541,9 @@ struct TestMemoryPoolHuge< template <class DeviceType> void test_memory_pool_huge() { - typedef typename DeviceType::execution_space execution_space; - typedef TestMemoryPoolHuge<DeviceType> functor_type; - typedef Kokkos::RangePolicy<execution_space> policy_type; + using execution_space = typename DeviceType::execution_space; + using functor_type = TestMemoryPoolHuge<DeviceType>; + using policy_type = Kokkos::RangePolicy<execution_space>; functor_type f; policy_type policy(0, functor_type::num_superblock); diff --git a/packages/kokkos/core/unit_test/TestNonTrivialScalarTypes.hpp b/packages/kokkos/core/unit_test/TestNonTrivialScalarTypes.hpp new file mode 100644 index 000000000..3ee4a25ec --- /dev/null +++ b/packages/kokkos/core/unit_test/TestNonTrivialScalarTypes.hpp @@ -0,0 +1,338 @@ + +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef TESTNONTRIVIALSCALARTYPES_HPP_ +#define TESTNONTRIVIALSCALARTYPES_HPP_ + +#include <Kokkos_Core.hpp> + +#include <impl/Kokkos_Timer.hpp> +#include <iostream> +#include <cstdlib> +#include <cstdint> +#include <cinttypes> + +namespace Test { + +struct my_complex { + double re, im; + int dummy; + + KOKKOS_INLINE_FUNCTION + my_complex() { + re = 0.0; + im = 0.0; + dummy = 0; + } + + KOKKOS_INLINE_FUNCTION + my_complex(const my_complex &src) { + re = src.re; + im = src.im; + dummy = src.dummy; + } + + KOKKOS_INLINE_FUNCTION + my_complex &operator=(const my_complex &src) { + re = src.re; + im = src.im; + dummy = src.dummy; + return *this; + } + + KOKKOS_INLINE_FUNCTION + my_complex &operator=(const volatile my_complex &src) { + re = src.re; + im = src.im; + dummy = src.dummy; + return *this; + } + + KOKKOS_INLINE_FUNCTION + volatile my_complex &operator=(const my_complex &src) volatile { + re = src.re; + im = src.im; + dummy = src.dummy; + return *this; + } + + KOKKOS_INLINE_FUNCTION + volatile my_complex &operator=(const volatile my_complex &src) volatile { + re = src.re; + im = src.im; + dummy = src.dummy; + return *this; + } + + KOKKOS_INLINE_FUNCTION + my_complex(const volatile my_complex &src) { + re = src.re; + im = src.im; + dummy = src.dummy; + } + + KOKKOS_INLINE_FUNCTION + my_complex(const double &val) { + re = val; + im = 0.0; + dummy = 0; + } + + KOKKOS_INLINE_FUNCTION + my_complex &operator+=(const my_complex &src) { + re += src.re; + im += src.im; + dummy += src.dummy; + return *this; + } + + KOKKOS_INLINE_FUNCTION + void operator+=(const volatile my_complex &src) volatile { + re += src.re; + im += src.im; + dummy += src.dummy; + } + + KOKKOS_INLINE_FUNCTION + my_complex operator+(const my_complex &src) { + my_complex tmp = *this; + tmp.re += src.re; + tmp.im += src.im; + tmp.dummy += src.dummy; + return tmp; + } + + KOKKOS_INLINE_FUNCTION + my_complex operator+(const volatile my_complex &src) volatile { + my_complex tmp = *this; + tmp.re += src.re; + tmp.im += src.im; + tmp.dummy += src.dummy; + return tmp; + } + + KOKKOS_INLINE_FUNCTION + my_complex &operator*=(const my_complex &src) { + double re_tmp = re * src.re - im * src.im; + double im_tmp = re * src.im + im * src.re; + re = re_tmp; + im = im_tmp; + dummy *= src.dummy; + return *this; + } + + KOKKOS_INLINE_FUNCTION + void operator*=(const volatile my_complex &src) volatile { + double re_tmp = re * src.re - im * src.im; + double im_tmp = re * src.im + im * src.re; + re = re_tmp; + im = im_tmp; + dummy *= src.dummy; + } + + KOKKOS_INLINE_FUNCTION + bool operator==(const my_complex &src) { + return (re == src.re) && (im == src.im) && (dummy == src.dummy); + } + + KOKKOS_INLINE_FUNCTION + bool operator!=(const my_complex &src) { + return (re != src.re) || (im != src.im) || (dummy != src.dummy); + } + + KOKKOS_INLINE_FUNCTION + bool operator!=(const double &val) { + return (re != val) || (im != 0) || (dummy != 0); + } + + KOKKOS_INLINE_FUNCTION + my_complex &operator=(const int &val) { + re = val; + im = 0.0; + dummy = 0; + return *this; + } + + KOKKOS_INLINE_FUNCTION + my_complex &operator=(const double &val) { + re = val; + im = 0.0; + dummy = 0; + return *this; + } + + KOKKOS_INLINE_FUNCTION + operator double() { return re; } +}; + +template <class scalar_t, int N> +struct array_reduce { + scalar_t data[N]; + KOKKOS_INLINE_FUNCTION + array_reduce() { + for (int i = 0; i < N; i++) data[i] = scalar_t(); + } + KOKKOS_INLINE_FUNCTION + array_reduce(const array_reduce &rhs) { + for (int i = 0; i < N; i++) data[i] = rhs.data[i]; + } + KOKKOS_INLINE_FUNCTION + array_reduce(const scalar_t value) { + for (int i = 0; i < N; i++) data[i] = scalar_t(value); + } + + KOKKOS_INLINE_FUNCTION + array_reduce &operator=(const array_reduce &src) { + for (int i = 0; i < N; i++) data[i] = src.data[i]; + return *this; + } + + KOKKOS_INLINE_FUNCTION + array_reduce &operator=(const volatile array_reduce &src) { + for (int i = 0; i < N; i++) data[i] = src.data[i]; + return *this; + } + + KOKKOS_INLINE_FUNCTION // add operator + array_reduce & + operator=(const scalar_t val) { + for (int i = 0; i < N; i++) data[i] = val; + return *this; + } + KOKKOS_INLINE_FUNCTION // add operator + array_reduce & + operator=(const int val) { + for (int i = 0; i < N; i++) data[i] = val; + return *this; + } + + KOKKOS_INLINE_FUNCTION // add operator + array_reduce & + operator+=(const array_reduce &src) { + for (int i = 0; i < N; i++) data[i] += src.data[i]; + return *this; + } + KOKKOS_INLINE_FUNCTION // volatile add operator + void + operator+=(const volatile array_reduce &src) volatile { + for (int i = 0; i < N; i++) data[i] += src.data[i]; + } + KOKKOS_INLINE_FUNCTION // add operator + array_reduce + operator+(const array_reduce &src) const { + array_reduce result(*this); + for (int i = 0; i < N; i++) result.data[i] += src.data[i]; + return result; + } + KOKKOS_INLINE_FUNCTION // add operator + array_reduce + operator-(const array_reduce &src) const { + array_reduce result(*this); + for (int i = 0; i < N; i++) result.data[i] -= src.data[i]; + return result; + } + KOKKOS_INLINE_FUNCTION // add operator + array_reduce & + operator*=(const array_reduce &src) { + for (int i = 0; i < N; i++) data[i] *= src.data[i]; + return *this; + } + KOKKOS_INLINE_FUNCTION // volatile add operator + void + operator*=(const volatile array_reduce &src) volatile { + for (int i = 0; i < N; i++) data[i] *= src.data[i]; + } + KOKKOS_INLINE_FUNCTION // add operator + array_reduce + operator*(const array_reduce &src) const { + array_reduce result(*this); + for (int i = 0; i < N; i++) result.data[i] *= src.data[i]; + return result; + } + KOKKOS_INLINE_FUNCTION + bool operator==(const array_reduce &src) const { + bool equal = true; + for (int i = 0; i < N; i++) equal = equal && (data[i] == src.data[i]); + return equal; + } + KOKKOS_INLINE_FUNCTION + bool operator!=(const array_reduce &src) const { + bool equal = true; + for (int i = 0; i < N; i++) equal = equal && (data[i] == src.data[i]); + return !equal; + } + KOKKOS_INLINE_FUNCTION + explicit operator double() const { + double lsum = 0.0; + for (int i = 0; i < N; i++) lsum += data[i]; + return lsum; + } +}; +} // namespace Test + +namespace Kokkos { +template <> +struct reduction_identity<Test::my_complex> { + using t_red_ident = reduction_identity<double>; + KOKKOS_FORCEINLINE_FUNCTION static Test::my_complex sum() { + return Test::my_complex(t_red_ident::sum()); + } + KOKKOS_FORCEINLINE_FUNCTION static Test::my_complex prod() { + return Test::my_complex(t_red_ident::prod()); + } +}; + +template <class scalar_t, int N> +struct reduction_identity<Test::array_reduce<scalar_t, N>> { + using t_red_ident = reduction_identity<scalar_t>; + KOKKOS_FORCEINLINE_FUNCTION static Test::array_reduce<scalar_t, N> sum() { + return Test::array_reduce<scalar_t, N>(t_red_ident::sum()); + } + KOKKOS_FORCEINLINE_FUNCTION static Test::array_reduce<scalar_t, N> prod() { + return Test::array_reduce<scalar_t, N>(t_red_ident::prod()); + } +}; +} // namespace Kokkos +#endif // TESTNONTRIVIALSCALARTYPES_HPP_ diff --git a/packages/kokkos/core/unit_test/TestOpenMPTarget_Category.hpp b/packages/kokkos/core/unit_test/TestOpenMPTarget_Category.hpp new file mode 100644 index 000000000..4d3d14e24 --- /dev/null +++ b/packages/kokkos/core/unit_test/TestOpenMPTarget_Category.hpp @@ -0,0 +1,55 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_TEST_OMPTARGET_HPP +#define KOKKOS_TEST_OMPTARGET_HPP + +#include <gtest/gtest.h> + +#define TEST_CATEGORY openmptarget +#define TEST_CATEGORY_NUMBER 4 +#define TEST_CATEGORY_DEATH openmptarget_DeathTest +#define TEST_EXECSPACE Kokkos::Experimental::OpenMPTarget + +#endif diff --git a/packages/kokkos/core/unit_test/TestOpenMP_Category.hpp b/packages/kokkos/core/unit_test/TestOpenMP_Category.hpp new file mode 100644 index 000000000..98b8b9f51 --- /dev/null +++ b/packages/kokkos/core/unit_test/TestOpenMP_Category.hpp @@ -0,0 +1,56 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_TEST_OMP_HPP +#define KOKKOS_TEST_OMP_HPP + +#include <gtest/gtest.h> + +#define TEST_CATEGORY openmp +#define TEST_CATEGORY_NUMBER 2 +#define TEST_CATEGORY_DEATH openmp_DeathTest +#define TEST_EXECSPACE Kokkos::OpenMP +#define TEST_CATEGORY_FIXTURE(name) openmp_##name + +#endif diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_Other.cpp b/packages/kokkos/core/unit_test/TestOther.hpp similarity index 97% rename from packages/kokkos/core/unit_test/cuda/TestCuda_Other.cpp rename to packages/kokkos/core/unit_test/TestOther.hpp index 155226178..2d298d307 100644 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_Other.cpp +++ b/packages/kokkos/core/unit_test/TestOther.hpp @@ -1,4 +1,3 @@ - /* //@HEADER // ************************************************************************ @@ -43,12 +42,13 @@ //@HEADER */ -#include <cuda/TestCuda_Category.hpp> +#ifndef KOKKOS_TEST_OTHER_HPP +#define KOKKOS_TEST_OTHER_HPP #include <TestTemplateMetaFunctions.hpp> #include <TestAggregate.hpp> #include <TestMemoryPool.hpp> #include <TestCXX11.hpp> -#include <TestTile.hpp> #include <TestViewCtorPropEmbeddedDim.hpp> #include <TestViewLayoutTiled.hpp> +#endif diff --git a/packages/kokkos/core/unit_test/TestPolicyConstruction.hpp b/packages/kokkos/core/unit_test/TestPolicyConstruction.hpp index a5ec17320..405782b8f 100644 --- a/packages/kokkos/core/unit_test/TestPolicyConstruction.hpp +++ b/packages/kokkos/core/unit_test/TestPolicyConstruction.hpp @@ -63,269 +63,262 @@ class TestRangePolicyConstruction { private: void test_compile_time_parameters() { { - Kokkos::Impl::expand_variadic(); - Kokkos::Impl::expand_variadic(1, 2, 3); - } - - { - typedef Kokkos::RangePolicy<> policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = Kokkos::RangePolicy<>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE(( std::is_same<execution_space, Kokkos::DefaultExecutionSpace>::value)); ASSERT_TRUE((std::is_same<index_type, typename execution_space::size_type>::value)); ASSERT_TRUE((std::is_same<schedule_type, - Kokkos::Schedule<Kokkos::Static> >::value)); + Kokkos::Schedule<Kokkos::Static>>::value)); ASSERT_TRUE((std::is_same<work_tag, void>::value)); } { - typedef Kokkos::RangePolicy<ExecutionSpace> policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = Kokkos::RangePolicy<ExecutionSpace>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE((std::is_same<execution_space, ExecutionSpace>::value)); ASSERT_TRUE((std::is_same<index_type, typename execution_space::size_type>::value)); ASSERT_TRUE((std::is_same<schedule_type, - Kokkos::Schedule<Kokkos::Static> >::value)); + Kokkos::Schedule<Kokkos::Static>>::value)); ASSERT_TRUE((std::is_same<work_tag, void>::value)); } { - typedef Kokkos::RangePolicy<ExecutionSpace, - Kokkos::Schedule<Kokkos::Dynamic> > - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = Kokkos::RangePolicy<ExecutionSpace, + Kokkos::Schedule<Kokkos::Dynamic>>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE((std::is_same<execution_space, ExecutionSpace>::value)); ASSERT_TRUE((std::is_same<index_type, typename execution_space::size_type>::value)); ASSERT_TRUE((std::is_same<schedule_type, - Kokkos::Schedule<Kokkos::Dynamic> >::value)); + Kokkos::Schedule<Kokkos::Dynamic>>::value)); ASSERT_TRUE((std::is_same<work_tag, void>::value)); } { - typedef Kokkos::RangePolicy<ExecutionSpace, - Kokkos::Schedule<Kokkos::Dynamic>, - Kokkos::IndexType<long> > - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = + Kokkos::RangePolicy<ExecutionSpace, Kokkos::Schedule<Kokkos::Dynamic>, + Kokkos::IndexType<long>>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE((std::is_same<execution_space, ExecutionSpace>::value)); ASSERT_TRUE((std::is_same<index_type, long>::value)); ASSERT_TRUE((std::is_same<schedule_type, - Kokkos::Schedule<Kokkos::Dynamic> >::value)); + Kokkos::Schedule<Kokkos::Dynamic>>::value)); ASSERT_TRUE((std::is_same<work_tag, void>::value)); } { - typedef Kokkos::RangePolicy<Kokkos::IndexType<long>, ExecutionSpace, - Kokkos::Schedule<Kokkos::Dynamic> > - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = + Kokkos::RangePolicy<Kokkos::IndexType<long>, ExecutionSpace, + Kokkos::Schedule<Kokkos::Dynamic>>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE((std::is_same<execution_space, ExecutionSpace>::value)); ASSERT_TRUE((std::is_same<index_type, long>::value)); ASSERT_TRUE((std::is_same<schedule_type, - Kokkos::Schedule<Kokkos::Dynamic> >::value)); + Kokkos::Schedule<Kokkos::Dynamic>>::value)); ASSERT_TRUE((std::is_same<work_tag, void>::value)); } { - typedef Kokkos::RangePolicy<ExecutionSpace, - Kokkos::Schedule<Kokkos::Dynamic>, - Kokkos::IndexType<long>, SomeTag> - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = + Kokkos::RangePolicy<ExecutionSpace, Kokkos::Schedule<Kokkos::Dynamic>, + Kokkos::IndexType<long>, SomeTag>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE((std::is_same<execution_space, ExecutionSpace>::value)); ASSERT_TRUE((std::is_same<index_type, long>::value)); ASSERT_TRUE((std::is_same<schedule_type, - Kokkos::Schedule<Kokkos::Dynamic> >::value)); + Kokkos::Schedule<Kokkos::Dynamic>>::value)); ASSERT_TRUE((std::is_same<work_tag, SomeTag>::value)); } { - typedef Kokkos::RangePolicy<Kokkos::Schedule<Kokkos::Dynamic>, - ExecutionSpace, Kokkos::IndexType<long>, - SomeTag> - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = + Kokkos::RangePolicy<Kokkos::Schedule<Kokkos::Dynamic>, ExecutionSpace, + Kokkos::IndexType<long>, SomeTag>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE((std::is_same<execution_space, ExecutionSpace>::value)); ASSERT_TRUE((std::is_same<index_type, long>::value)); ASSERT_TRUE((std::is_same<schedule_type, - Kokkos::Schedule<Kokkos::Dynamic> >::value)); + Kokkos::Schedule<Kokkos::Dynamic>>::value)); ASSERT_TRUE((std::is_same<work_tag, SomeTag>::value)); } { - typedef Kokkos::RangePolicy<SomeTag, Kokkos::Schedule<Kokkos::Dynamic>, - Kokkos::IndexType<long>, ExecutionSpace> - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = + Kokkos::RangePolicy<SomeTag, Kokkos::Schedule<Kokkos::Dynamic>, + Kokkos::IndexType<long>, ExecutionSpace>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE((std::is_same<execution_space, ExecutionSpace>::value)); ASSERT_TRUE((std::is_same<index_type, long>::value)); ASSERT_TRUE((std::is_same<schedule_type, - Kokkos::Schedule<Kokkos::Dynamic> >::value)); + Kokkos::Schedule<Kokkos::Dynamic>>::value)); ASSERT_TRUE((std::is_same<work_tag, SomeTag>::value)); } { - typedef Kokkos::RangePolicy<Kokkos::Schedule<Kokkos::Dynamic> > policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = Kokkos::RangePolicy<Kokkos::Schedule<Kokkos::Dynamic>>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE(( std::is_same<execution_space, Kokkos::DefaultExecutionSpace>::value)); ASSERT_TRUE((std::is_same<index_type, typename execution_space::size_type>::value)); ASSERT_TRUE((std::is_same<schedule_type, - Kokkos::Schedule<Kokkos::Dynamic> >::value)); + Kokkos::Schedule<Kokkos::Dynamic>>::value)); ASSERT_TRUE((std::is_same<work_tag, void>::value)); } { - typedef Kokkos::RangePolicy<Kokkos::Schedule<Kokkos::Dynamic>, - Kokkos::IndexType<long> > - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = Kokkos::RangePolicy<Kokkos::Schedule<Kokkos::Dynamic>, + Kokkos::IndexType<long>>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE(( std::is_same<execution_space, Kokkos::DefaultExecutionSpace>::value)); ASSERT_TRUE((std::is_same<index_type, long>::value)); ASSERT_TRUE((std::is_same<schedule_type, - Kokkos::Schedule<Kokkos::Dynamic> >::value)); + Kokkos::Schedule<Kokkos::Dynamic>>::value)); ASSERT_TRUE((std::is_same<work_tag, void>::value)); } { - typedef Kokkos::RangePolicy<Kokkos::IndexType<long>, - Kokkos::Schedule<Kokkos::Dynamic> > - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = Kokkos::RangePolicy<Kokkos::IndexType<long>, + Kokkos::Schedule<Kokkos::Dynamic>>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE(( std::is_same<execution_space, Kokkos::DefaultExecutionSpace>::value)); ASSERT_TRUE((std::is_same<index_type, long>::value)); ASSERT_TRUE((std::is_same<schedule_type, - Kokkos::Schedule<Kokkos::Dynamic> >::value)); + Kokkos::Schedule<Kokkos::Dynamic>>::value)); ASSERT_TRUE((std::is_same<work_tag, void>::value)); } { - typedef Kokkos::RangePolicy<Kokkos::Schedule<Kokkos::Dynamic>, - Kokkos::IndexType<long>, SomeTag> - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = Kokkos::RangePolicy<Kokkos::Schedule<Kokkos::Dynamic>, + Kokkos::IndexType<long>, SomeTag>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE(( std::is_same<execution_space, Kokkos::DefaultExecutionSpace>::value)); ASSERT_TRUE((std::is_same<index_type, long>::value)); ASSERT_TRUE((std::is_same<schedule_type, - Kokkos::Schedule<Kokkos::Dynamic> >::value)); + Kokkos::Schedule<Kokkos::Dynamic>>::value)); ASSERT_TRUE((std::is_same<work_tag, SomeTag>::value)); } { - typedef Kokkos::RangePolicy<Kokkos::Schedule<Kokkos::Dynamic>, - Kokkos::IndexType<long>, SomeTag> - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = Kokkos::RangePolicy<Kokkos::Schedule<Kokkos::Dynamic>, + Kokkos::IndexType<long>, SomeTag>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE(( std::is_same<execution_space, Kokkos::DefaultExecutionSpace>::value)); ASSERT_TRUE((std::is_same<index_type, long>::value)); ASSERT_TRUE((std::is_same<schedule_type, - Kokkos::Schedule<Kokkos::Dynamic> >::value)); + Kokkos::Schedule<Kokkos::Dynamic>>::value)); ASSERT_TRUE((std::is_same<work_tag, SomeTag>::value)); } { - typedef Kokkos::RangePolicy<SomeTag, Kokkos::Schedule<Kokkos::Dynamic>, - Kokkos::IndexType<long> > - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = + Kokkos::RangePolicy<SomeTag, Kokkos::Schedule<Kokkos::Dynamic>, + Kokkos::IndexType<long>>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE(( std::is_same<execution_space, Kokkos::DefaultExecutionSpace>::value)); ASSERT_TRUE((std::is_same<index_type, long>::value)); ASSERT_TRUE((std::is_same<schedule_type, - Kokkos::Schedule<Kokkos::Dynamic> >::value)); + Kokkos::Schedule<Kokkos::Dynamic>>::value)); ASSERT_TRUE((std::is_same<work_tag, SomeTag>::value)); } } void test_runtime_parameters() { + using policy_t = Kokkos::RangePolicy<>; { - typedef Kokkos::RangePolicy<> policy_t; policy_t p(5, 15); ASSERT_TRUE((p.begin() == 5)); ASSERT_TRUE((p.end() == 15)); } { - typedef Kokkos::RangePolicy<> policy_t; policy_t p(Kokkos::DefaultExecutionSpace(), 5, 15); ASSERT_TRUE((p.begin() == 5)); ASSERT_TRUE((p.end() == 15)); } { - typedef Kokkos::RangePolicy<> policy_t; policy_t p(5, 15, Kokkos::ChunkSize(10)); ASSERT_TRUE((p.begin() == 5)); ASSERT_TRUE((p.end() == 15)); ASSERT_TRUE((p.chunk_size() == 10)); } { - typedef Kokkos::RangePolicy<> policy_t; policy_t p(Kokkos::DefaultExecutionSpace(), 5, 15, Kokkos::ChunkSize(10)); ASSERT_TRUE((p.begin() == 5)); ASSERT_TRUE((p.end() == 15)); ASSERT_TRUE((p.chunk_size() == 10)); } + { + policy_t p; + ASSERT_TRUE((p.begin() == 0)); + ASSERT_TRUE((p.end() == 0)); + p = policy_t(5, 15, Kokkos::ChunkSize(10)); + ASSERT_TRUE((p.begin() == 5)); + ASSERT_TRUE((p.end() == 15)); + ASSERT_TRUE((p.chunk_size() == 10)); + } } }; @@ -340,234 +333,226 @@ class TestTeamPolicyConstruction { private: void test_compile_time_parameters() { { - typedef Kokkos::TeamPolicy<> policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = Kokkos::TeamPolicy<>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE(( std::is_same<execution_space, Kokkos::DefaultExecutionSpace>::value)); ASSERT_TRUE((std::is_same<index_type, typename execution_space::size_type>::value)); ASSERT_TRUE((std::is_same<schedule_type, - Kokkos::Schedule<Kokkos::Static> >::value)); + Kokkos::Schedule<Kokkos::Static>>::value)); ASSERT_TRUE((std::is_same<work_tag, void>::value)); } { - typedef Kokkos::TeamPolicy<ExecutionSpace> policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = Kokkos::TeamPolicy<ExecutionSpace>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE((std::is_same<execution_space, ExecutionSpace>::value)); ASSERT_TRUE((std::is_same<index_type, typename execution_space::size_type>::value)); ASSERT_TRUE((std::is_same<schedule_type, - Kokkos::Schedule<Kokkos::Static> >::value)); + Kokkos::Schedule<Kokkos::Static>>::value)); ASSERT_TRUE((std::is_same<work_tag, void>::value)); } { - typedef Kokkos::TeamPolicy<ExecutionSpace, - Kokkos::Schedule<Kokkos::Dynamic> > - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = + Kokkos::TeamPolicy<ExecutionSpace, Kokkos::Schedule<Kokkos::Dynamic>>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE((std::is_same<execution_space, ExecutionSpace>::value)); ASSERT_TRUE((std::is_same<index_type, typename execution_space::size_type>::value)); ASSERT_TRUE((std::is_same<schedule_type, - Kokkos::Schedule<Kokkos::Dynamic> >::value)); + Kokkos::Schedule<Kokkos::Dynamic>>::value)); ASSERT_TRUE((std::is_same<work_tag, void>::value)); } { - typedef Kokkos::TeamPolicy<ExecutionSpace, - Kokkos::Schedule<Kokkos::Dynamic>, - Kokkos::IndexType<long> > - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = + Kokkos::TeamPolicy<ExecutionSpace, Kokkos::Schedule<Kokkos::Dynamic>, + Kokkos::IndexType<long>>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE((std::is_same<execution_space, ExecutionSpace>::value)); ASSERT_TRUE((std::is_same<index_type, long>::value)); ASSERT_TRUE((std::is_same<schedule_type, - Kokkos::Schedule<Kokkos::Dynamic> >::value)); + Kokkos::Schedule<Kokkos::Dynamic>>::value)); ASSERT_TRUE((std::is_same<work_tag, void>::value)); } { - typedef Kokkos::TeamPolicy<Kokkos::IndexType<long>, ExecutionSpace, - Kokkos::Schedule<Kokkos::Dynamic> > - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = + Kokkos::TeamPolicy<Kokkos::IndexType<long>, ExecutionSpace, + Kokkos::Schedule<Kokkos::Dynamic>>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE((std::is_same<execution_space, ExecutionSpace>::value)); ASSERT_TRUE((std::is_same<index_type, long>::value)); ASSERT_TRUE((std::is_same<schedule_type, - Kokkos::Schedule<Kokkos::Dynamic> >::value)); + Kokkos::Schedule<Kokkos::Dynamic>>::value)); ASSERT_TRUE((std::is_same<work_tag, void>::value)); } { - typedef Kokkos::TeamPolicy<ExecutionSpace, - Kokkos::Schedule<Kokkos::Dynamic>, - Kokkos::IndexType<long>, SomeTag> - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = + Kokkos::TeamPolicy<ExecutionSpace, Kokkos::Schedule<Kokkos::Dynamic>, + Kokkos::IndexType<long>, SomeTag>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE((std::is_same<execution_space, ExecutionSpace>::value)); ASSERT_TRUE((std::is_same<index_type, long>::value)); ASSERT_TRUE((std::is_same<schedule_type, - Kokkos::Schedule<Kokkos::Dynamic> >::value)); + Kokkos::Schedule<Kokkos::Dynamic>>::value)); ASSERT_TRUE((std::is_same<work_tag, SomeTag>::value)); } { - typedef Kokkos::TeamPolicy<Kokkos::Schedule<Kokkos::Dynamic>, - ExecutionSpace, Kokkos::IndexType<long>, - SomeTag> - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = + Kokkos::TeamPolicy<Kokkos::Schedule<Kokkos::Dynamic>, ExecutionSpace, + Kokkos::IndexType<long>, SomeTag>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE((std::is_same<execution_space, ExecutionSpace>::value)); ASSERT_TRUE((std::is_same<index_type, long>::value)); ASSERT_TRUE((std::is_same<schedule_type, - Kokkos::Schedule<Kokkos::Dynamic> >::value)); + Kokkos::Schedule<Kokkos::Dynamic>>::value)); ASSERT_TRUE((std::is_same<work_tag, SomeTag>::value)); } { - typedef Kokkos::TeamPolicy<SomeTag, Kokkos::Schedule<Kokkos::Dynamic>, - Kokkos::IndexType<long>, ExecutionSpace> - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = + Kokkos::TeamPolicy<SomeTag, Kokkos::Schedule<Kokkos::Dynamic>, + Kokkos::IndexType<long>, ExecutionSpace>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE((std::is_same<execution_space, ExecutionSpace>::value)); ASSERT_TRUE((std::is_same<index_type, long>::value)); ASSERT_TRUE((std::is_same<schedule_type, - Kokkos::Schedule<Kokkos::Dynamic> >::value)); + Kokkos::Schedule<Kokkos::Dynamic>>::value)); ASSERT_TRUE((std::is_same<work_tag, SomeTag>::value)); } { - typedef Kokkos::TeamPolicy<Kokkos::Schedule<Kokkos::Dynamic> > policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = Kokkos::TeamPolicy<Kokkos::Schedule<Kokkos::Dynamic>>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE(( std::is_same<execution_space, Kokkos::DefaultExecutionSpace>::value)); ASSERT_TRUE((std::is_same<index_type, typename execution_space::size_type>::value)); ASSERT_TRUE((std::is_same<schedule_type, - Kokkos::Schedule<Kokkos::Dynamic> >::value)); + Kokkos::Schedule<Kokkos::Dynamic>>::value)); ASSERT_TRUE((std::is_same<work_tag, void>::value)); } { - typedef Kokkos::TeamPolicy<Kokkos::Schedule<Kokkos::Dynamic>, - Kokkos::IndexType<long> > - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = Kokkos::TeamPolicy<Kokkos::Schedule<Kokkos::Dynamic>, + Kokkos::IndexType<long>>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE(( std::is_same<execution_space, Kokkos::DefaultExecutionSpace>::value)); ASSERT_TRUE((std::is_same<index_type, long>::value)); ASSERT_TRUE((std::is_same<schedule_type, - Kokkos::Schedule<Kokkos::Dynamic> >::value)); + Kokkos::Schedule<Kokkos::Dynamic>>::value)); ASSERT_TRUE((std::is_same<work_tag, void>::value)); } { - typedef Kokkos::TeamPolicy<Kokkos::IndexType<long>, - Kokkos::Schedule<Kokkos::Dynamic> > - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = Kokkos::TeamPolicy<Kokkos::IndexType<long>, + Kokkos::Schedule<Kokkos::Dynamic>>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE(( std::is_same<execution_space, Kokkos::DefaultExecutionSpace>::value)); ASSERT_TRUE((std::is_same<index_type, long>::value)); ASSERT_TRUE((std::is_same<schedule_type, - Kokkos::Schedule<Kokkos::Dynamic> >::value)); + Kokkos::Schedule<Kokkos::Dynamic>>::value)); ASSERT_TRUE((std::is_same<work_tag, void>::value)); } { - typedef Kokkos::TeamPolicy<Kokkos::Schedule<Kokkos::Dynamic>, - Kokkos::IndexType<long>, SomeTag> - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = Kokkos::TeamPolicy<Kokkos::Schedule<Kokkos::Dynamic>, + Kokkos::IndexType<long>, SomeTag>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE(( std::is_same<execution_space, Kokkos::DefaultExecutionSpace>::value)); ASSERT_TRUE((std::is_same<index_type, long>::value)); ASSERT_TRUE((std::is_same<schedule_type, - Kokkos::Schedule<Kokkos::Dynamic> >::value)); + Kokkos::Schedule<Kokkos::Dynamic>>::value)); ASSERT_TRUE((std::is_same<work_tag, SomeTag>::value)); } { - typedef Kokkos::TeamPolicy<Kokkos::Schedule<Kokkos::Dynamic>, - Kokkos::IndexType<long>, SomeTag> - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = Kokkos::TeamPolicy<Kokkos::Schedule<Kokkos::Dynamic>, + Kokkos::IndexType<long>, SomeTag>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE(( std::is_same<execution_space, Kokkos::DefaultExecutionSpace>::value)); ASSERT_TRUE((std::is_same<index_type, long>::value)); ASSERT_TRUE((std::is_same<schedule_type, - Kokkos::Schedule<Kokkos::Dynamic> >::value)); + Kokkos::Schedule<Kokkos::Dynamic>>::value)); ASSERT_TRUE((std::is_same<work_tag, SomeTag>::value)); } { - typedef Kokkos::TeamPolicy<SomeTag, Kokkos::Schedule<Kokkos::Dynamic>, - Kokkos::IndexType<long> > - policy_t; - typedef typename policy_t::execution_space execution_space; - typedef typename policy_t::index_type index_type; - typedef typename policy_t::schedule_type schedule_type; - typedef typename policy_t::work_tag work_tag; + using policy_t = + Kokkos::TeamPolicy<SomeTag, Kokkos::Schedule<Kokkos::Dynamic>, + Kokkos::IndexType<long>>; + using execution_space = typename policy_t::execution_space; + using index_type = typename policy_t::index_type; + using schedule_type = typename policy_t::schedule_type; + using work_tag = typename policy_t::work_tag; ASSERT_TRUE(( std::is_same<execution_space, Kokkos::DefaultExecutionSpace>::value)); ASSERT_TRUE((std::is_same<index_type, long>::value)); ASSERT_TRUE((std::is_same<schedule_type, - Kokkos::Schedule<Kokkos::Dynamic> >::value)); + Kokkos::Schedule<Kokkos::Dynamic>>::value)); ASSERT_TRUE((std::is_same<work_tag, SomeTag>::value)); } } @@ -580,14 +565,16 @@ class TestTeamPolicyConstruction { : policy_t::execution_space::concurrency(); #ifdef KOKKOS_ENABLE_HPX team_size = 1; +#endif +#ifdef KOKKOS_ENABLE_OPENMPTARGET + if (std::is_same<typename policy_t::execution_space, + Kokkos::Experimental::OpenMPTarget>::value) + team_size = 32; #endif int chunk_size = 4; int per_team_scratch = 1024; int per_thread_scratch = 16; int scratch_size = per_team_scratch + per_thread_scratch * team_size; -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - int vector_length = 4; -#endif policy_t p1(league_size, team_size); ASSERT_EQ(p1.league_size(), league_size); @@ -598,11 +585,7 @@ class TestTeamPolicyConstruction { policy_t p2 = p1.set_chunk_size(chunk_size); ASSERT_EQ(p1.league_size(), league_size); ASSERT_EQ(p1.team_size(), team_size); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - ASSERT_TRUE(p1.chunk_size() > 0); -#else ASSERT_EQ(p1.chunk_size(), chunk_size); -#endif ASSERT_EQ(p1.scratch_size(0), 0); ASSERT_EQ(p2.league_size(), league_size); @@ -614,11 +597,7 @@ class TestTeamPolicyConstruction { ASSERT_EQ(p2.league_size(), league_size); ASSERT_EQ(p2.team_size(), team_size); ASSERT_EQ(p2.chunk_size(), chunk_size); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - ASSERT_EQ(p2.scratch_size(0), 0); -#else ASSERT_EQ(p2.scratch_size(0), per_team_scratch); -#endif ASSERT_EQ(p3.league_size(), league_size); ASSERT_EQ(p3.team_size(), team_size); ASSERT_EQ(p3.chunk_size(), chunk_size); @@ -628,30 +607,18 @@ class TestTeamPolicyConstruction { ASSERT_EQ(p2.league_size(), league_size); ASSERT_EQ(p2.team_size(), team_size); ASSERT_EQ(p2.chunk_size(), chunk_size); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - ASSERT_EQ(p2.scratch_size(0), 0); -#else ASSERT_EQ(p2.scratch_size(0), scratch_size); -#endif ASSERT_EQ(p4.league_size(), league_size); ASSERT_EQ(p4.team_size(), team_size); ASSERT_EQ(p4.chunk_size(), chunk_size); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - ASSERT_EQ(p4.scratch_size(0), per_thread_scratch * team_size); -#else ASSERT_EQ(p4.scratch_size(0), scratch_size); -#endif policy_t p5 = p2.set_scratch_size(0, Kokkos::PerThread(per_thread_scratch), Kokkos::PerTeam(per_team_scratch)); ASSERT_EQ(p2.league_size(), league_size); ASSERT_EQ(p2.team_size(), team_size); ASSERT_EQ(p2.chunk_size(), chunk_size); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - ASSERT_EQ(p2.scratch_size(0), 0); -#else ASSERT_EQ(p2.scratch_size(0), scratch_size); -#endif ASSERT_EQ(p5.league_size(), league_size); ASSERT_EQ(p5.team_size(), team_size); ASSERT_EQ(p5.chunk_size(), chunk_size); @@ -662,11 +629,7 @@ class TestTeamPolicyConstruction { ASSERT_EQ(p2.league_size(), league_size); ASSERT_EQ(p2.team_size(), team_size); ASSERT_EQ(p2.chunk_size(), chunk_size); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - ASSERT_EQ(p2.scratch_size(0), 0); -#else ASSERT_EQ(p2.scratch_size(0), scratch_size); -#endif ASSERT_EQ(p6.league_size(), league_size); ASSERT_EQ(p6.team_size(), team_size); ASSERT_EQ(p6.chunk_size(), chunk_size); @@ -677,208 +640,244 @@ class TestTeamPolicyConstruction { ASSERT_EQ(p3.league_size(), league_size); ASSERT_EQ(p3.team_size(), team_size); ASSERT_EQ(p3.chunk_size(), chunk_size); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - ASSERT_EQ(p3.scratch_size(0), per_team_scratch); -#else ASSERT_EQ(p3.scratch_size(0), scratch_size); -#endif ASSERT_EQ(p7.league_size(), league_size); ASSERT_EQ(p7.team_size(), team_size); ASSERT_EQ(p7.chunk_size(), chunk_size); ASSERT_EQ(p7.scratch_size(0), scratch_size); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - policy_t p8(league_size, team_size, Kokkos::ChunkSize(chunk_size)); + policy_t p8; // default constructed + ASSERT_EQ(p8.league_size(), 0); + ASSERT_EQ(p8.scratch_size(0), 0); + p8 = p3; // call assignment operator + ASSERT_EQ(p3.league_size(), league_size); + ASSERT_EQ(p3.team_size(), team_size); + ASSERT_EQ(p3.chunk_size(), chunk_size); + ASSERT_EQ(p3.scratch_size(0), scratch_size); ASSERT_EQ(p8.league_size(), league_size); ASSERT_EQ(p8.team_size(), team_size); ASSERT_EQ(p8.chunk_size(), chunk_size); - ASSERT_EQ(p8.scratch_size(0), 0); - - policy_t p10(league_size, team_size, - Kokkos::ScratchRequest(0, Kokkos::PerTeam(per_team_scratch))); - ASSERT_EQ(p10.league_size(), league_size); - ASSERT_EQ(p10.team_size(), team_size); - ASSERT_TRUE(p10.chunk_size() > 0); - ASSERT_EQ(p10.scratch_size(0), per_team_scratch); - - policy_t p11( - league_size, team_size, - Kokkos::ScratchRequest(0, Kokkos::PerThread(per_thread_scratch))); - ASSERT_EQ(p11.league_size(), league_size); - ASSERT_EQ(p11.team_size(), team_size); - ASSERT_TRUE(p11.chunk_size() > 0); - ASSERT_EQ(p11.scratch_size(0), per_thread_scratch * team_size); - - policy_t p12( - league_size, team_size, - Kokkos::ScratchRequest(0, Kokkos::PerThread(per_thread_scratch), - Kokkos::PerTeam(per_team_scratch))); - ASSERT_EQ(p12.league_size(), league_size); - ASSERT_EQ(p12.team_size(), team_size); - ASSERT_TRUE(p12.chunk_size() > 0); - ASSERT_EQ(p12.scratch_size(0), scratch_size); - - policy_t p13(league_size, team_size, - Kokkos::ScratchRequest(0, Kokkos::PerTeam(per_team_scratch), - Kokkos::PerThread(per_thread_scratch))); - ASSERT_EQ(p13.league_size(), league_size); - ASSERT_EQ(p13.team_size(), team_size); - ASSERT_TRUE(p13.chunk_size() > 0); - ASSERT_EQ(p13.scratch_size(0), scratch_size); - - policy_t p14(league_size, team_size, - Kokkos::ScratchRequest(0, Kokkos::PerTeam(per_team_scratch), - Kokkos::PerThread(per_thread_scratch))); - ASSERT_EQ(p14.league_size(), league_size); - ASSERT_EQ(p14.team_size(), team_size); - ASSERT_TRUE(p14.chunk_size() > 0); - ASSERT_EQ(p14.scratch_size(0), scratch_size); - - policy_t p15(league_size, team_size, Kokkos::ChunkSize(chunk_size), - Kokkos::ScratchRequest(0, Kokkos::PerTeam(per_team_scratch))); - ASSERT_EQ(p15.league_size(), league_size); - ASSERT_EQ(p15.team_size(), team_size); - ASSERT_TRUE(p15.chunk_size() > 0); - ASSERT_EQ(p15.scratch_size(0), per_team_scratch); - - policy_t p16( - league_size, team_size, - Kokkos::ScratchRequest(0, Kokkos::PerThread(per_thread_scratch)), - Kokkos::ChunkSize(chunk_size)); - ASSERT_EQ(p16.league_size(), league_size); - ASSERT_EQ(p16.team_size(), team_size); - ASSERT_EQ(p16.chunk_size(), chunk_size); - ASSERT_EQ(p16.scratch_size(0), per_thread_scratch * team_size); - - policy_t p17( - league_size, team_size, Kokkos::ChunkSize(chunk_size), - Kokkos::ScratchRequest(0, Kokkos::PerThread(per_thread_scratch), - Kokkos::PerTeam(per_team_scratch))); - ASSERT_EQ(p17.league_size(), league_size); - ASSERT_EQ(p17.team_size(), team_size); - ASSERT_EQ(p17.chunk_size(), chunk_size); - ASSERT_EQ(p17.scratch_size(0), scratch_size); - - policy_t p18(league_size, team_size, - Kokkos::ScratchRequest(0, Kokkos::PerTeam(per_team_scratch), - Kokkos::PerThread(per_thread_scratch)), - Kokkos::ChunkSize(chunk_size)); - ASSERT_EQ(p18.league_size(), league_size); - ASSERT_EQ(p18.team_size(), team_size); - ASSERT_EQ(p18.chunk_size(), chunk_size); - ASSERT_EQ(p18.scratch_size(0), scratch_size); - - policy_t p19(league_size, team_size, Kokkos::ChunkSize(chunk_size), - Kokkos::ScratchRequest(0, Kokkos::PerTeam(per_team_scratch), - Kokkos::PerThread(per_thread_scratch))); - ASSERT_EQ(p19.league_size(), league_size); - ASSERT_EQ(p19.team_size(), team_size); - ASSERT_EQ(p19.chunk_size(), chunk_size); - ASSERT_EQ(p19.scratch_size(0), scratch_size); - - policy_t p20(league_size, team_size, vector_length, - Kokkos::ScratchRequest(0, Kokkos::PerTeam(per_team_scratch))); - ASSERT_EQ(p20.league_size(), league_size); - ASSERT_EQ(p20.team_size(), team_size); - ASSERT_TRUE(p20.chunk_size() > 0); - ASSERT_EQ(p20.scratch_size(0), per_team_scratch); - - policy_t p21( - league_size, team_size, vector_length, - Kokkos::ScratchRequest(0, Kokkos::PerThread(per_thread_scratch))); - ASSERT_EQ(p21.league_size(), league_size); - ASSERT_EQ(p21.team_size(), team_size); - ASSERT_TRUE(p21.chunk_size() > 0); - ASSERT_EQ(p21.scratch_size(0), per_thread_scratch * team_size); - - policy_t p22( - league_size, team_size, vector_length, - Kokkos::ScratchRequest(0, Kokkos::PerThread(per_thread_scratch), - Kokkos::PerTeam(per_team_scratch))); - ASSERT_EQ(p22.league_size(), league_size); - ASSERT_EQ(p22.team_size(), team_size); - ASSERT_TRUE(p22.chunk_size() > 0); - ASSERT_EQ(p22.scratch_size(0), scratch_size); - - policy_t p23(league_size, team_size, (size_t)vector_length, - Kokkos::ScratchRequest(0, Kokkos::PerTeam(per_team_scratch), - Kokkos::PerThread(per_thread_scratch))); - ASSERT_EQ(p23.league_size(), league_size); - ASSERT_EQ(p23.team_size(), team_size); - ASSERT_TRUE(p23.chunk_size() > 0); - ASSERT_EQ(p23.scratch_size(0), scratch_size); - - policy_t p24(league_size, team_size, (size_t)vector_length, - Kokkos::ScratchRequest(0, Kokkos::PerTeam(per_team_scratch), - Kokkos::PerThread(per_thread_scratch))); - ASSERT_EQ(p24.league_size(), league_size); - ASSERT_EQ(p24.team_size(), team_size); - ASSERT_TRUE(p24.chunk_size() > 0); - ASSERT_EQ(p24.scratch_size(0), scratch_size); - - policy_t p25(league_size, team_size, vector_length, - Kokkos::ChunkSize(chunk_size), - Kokkos::ScratchRequest(0, Kokkos::PerTeam(per_team_scratch))); - ASSERT_EQ(p25.league_size(), league_size); - ASSERT_EQ(p25.team_size(), team_size); - ASSERT_TRUE(p25.chunk_size() > 0); - ASSERT_EQ(p25.scratch_size(0), per_team_scratch); - - policy_t p26( - league_size, team_size, vector_length, - Kokkos::ScratchRequest(0, Kokkos::PerThread(per_thread_scratch)), - Kokkos::ChunkSize(chunk_size)); - ASSERT_EQ(p26.league_size(), league_size); - ASSERT_EQ(p26.team_size(), team_size); - ASSERT_EQ(p26.chunk_size(), chunk_size); - ASSERT_EQ(p26.scratch_size(0), per_thread_scratch * team_size); - - policy_t p27( - league_size, team_size, vector_length, Kokkos::ChunkSize(chunk_size), - Kokkos::ScratchRequest(0, Kokkos::PerThread(per_thread_scratch), - Kokkos::PerTeam(per_team_scratch))); - ASSERT_EQ(p27.league_size(), league_size); - ASSERT_EQ(p27.team_size(), team_size); - ASSERT_EQ(p27.chunk_size(), chunk_size); - ASSERT_EQ(p27.scratch_size(0), scratch_size); - - policy_t p28(league_size, team_size, (size_t)vector_length, - Kokkos::ScratchRequest(0, Kokkos::PerTeam(per_team_scratch), - Kokkos::PerThread(per_thread_scratch)), - Kokkos::ChunkSize(chunk_size)); - ASSERT_EQ(p28.league_size(), league_size); - ASSERT_EQ(p28.team_size(), team_size); - ASSERT_EQ(p28.chunk_size(), chunk_size); - ASSERT_EQ(p28.scratch_size(0), scratch_size); - - policy_t p29(league_size, team_size, (size_t)vector_length, - Kokkos::ChunkSize(chunk_size), - Kokkos::ScratchRequest(0, Kokkos::PerTeam(per_team_scratch), - Kokkos::PerThread(per_thread_scratch))); - ASSERT_EQ(p29.league_size(), league_size); - ASSERT_EQ(p29.team_size(), team_size); - ASSERT_EQ(p29.chunk_size(), chunk_size); - ASSERT_EQ(p29.scratch_size(0), scratch_size); -#endif + ASSERT_EQ(p8.scratch_size(0), scratch_size); } void test_run_time_parameters() { - test_run_time_parameters_type<Kokkos::TeamPolicy<ExecutionSpace> >(); + test_run_time_parameters_type<Kokkos::TeamPolicy<ExecutionSpace>>(); test_run_time_parameters_type< Kokkos::TeamPolicy<ExecutionSpace, Kokkos::Schedule<Kokkos::Dynamic>, - Kokkos::IndexType<long> > >(); + Kokkos::IndexType<long>>>(); test_run_time_parameters_type< Kokkos::TeamPolicy<Kokkos::IndexType<long>, ExecutionSpace, - Kokkos::Schedule<Kokkos::Dynamic> > >(); - test_run_time_parameters_type<Kokkos::TeamPolicy< - Kokkos::Schedule<Kokkos::Dynamic>, Kokkos::IndexType<long>, - ExecutionSpace, SomeTag> >(); + Kokkos::Schedule<Kokkos::Dynamic>>>(); + test_run_time_parameters_type< + Kokkos::TeamPolicy<Kokkos::Schedule<Kokkos::Dynamic>, + Kokkos::IndexType<long>, ExecutionSpace, SomeTag>>(); } }; +// semiregular is copyable and default initializable +// (regular requires equality comparable) +template <class Policy> +void check_semiregular() { + static_assert(std::is_default_constructible<Policy>::value, ""); + static_assert(std::is_copy_constructible<Policy>::value, ""); + static_assert(std::is_move_constructible<Policy>::value, ""); + static_assert(std::is_copy_assignable<Policy>::value, ""); + static_assert(std::is_move_assignable<Policy>::value, ""); + static_assert(std::is_destructible<Policy>::value, ""); +} + TEST(TEST_CATEGORY, policy_construction) { + check_semiregular<Kokkos::RangePolicy<TEST_EXECSPACE>>(); + check_semiregular<Kokkos::TeamPolicy<TEST_EXECSPACE>>(); + check_semiregular<Kokkos::MDRangePolicy<TEST_EXECSPACE, Kokkos::Rank<2>>>(); + TestRangePolicyConstruction<TEST_EXECSPACE>(); + // FIXME_SYCL requires Team policy +#ifndef KOKKOS_ENABLE_SYCL TestTeamPolicyConstruction<TEST_EXECSPACE>(); +#endif } +template <template <class...> class Policy, class... Args> +void check_converting_constructor_add_work_tag(Policy<Args...> const& policy) { + // Not the greatest but at least checking it compiles + struct WorkTag {}; + Policy<Args..., WorkTag> policy_with_tag = policy; + (void)policy_with_tag; +} + +TEST(TEST_CATEGORY, policy_converting_constructor_from_other_policy) { + check_converting_constructor_add_work_tag( + Kokkos::RangePolicy<TEST_EXECSPACE>{}); + // FIXME_SYCL requires MDRange policy and Team policy +#ifndef KOKKOS_ENABLE_SYCL + check_converting_constructor_add_work_tag( + Kokkos::TeamPolicy<TEST_EXECSPACE>{}); + check_converting_constructor_add_work_tag( + Kokkos::MDRangePolicy<TEST_EXECSPACE, Kokkos::Rank<2>>{}); +#endif +} + +#ifndef KOKKOS_ENABLE_OPENMPTARGET // FIXME_OPENMPTARGET +TEST(TEST_CATEGORY_DEATH, policy_bounds_unsafe_narrowing_conversions) { + using Policy = Kokkos::MDRangePolicy<TEST_EXECSPACE, Kokkos::Rank<2>, + Kokkos::IndexType<unsigned>>; + + ::testing::FLAGS_gtest_death_test_style = "threadsafe"; + ASSERT_DEATH( + { + (void)Policy({-1, 0}, {2, 3}); + }, + "unsafe narrowing conversion"); +} +#endif + +template <class Policy> +void test_prefer_desired_occupancy(Policy const& policy) { + static_assert(!Policy::experimental_contains_desired_occupancy, ""); + + // MaximizeOccupancy -> MaximizeOccupancy + auto const policy_still_no_occ = Kokkos::Experimental::prefer( + policy, Kokkos::Experimental::MaximizeOccupancy{}); + static_assert( + !decltype(policy_still_no_occ)::experimental_contains_desired_occupancy, + ""); + + // MaximizeOccupancy -> DesiredOccupancy + auto const policy_with_occ = Kokkos::Experimental::prefer( + policy, Kokkos::Experimental::DesiredOccupancy{33}); + static_assert( + decltype(policy_with_occ)::experimental_contains_desired_occupancy, ""); + EXPECT_EQ(policy_with_occ.impl_get_desired_occupancy().value(), 33); + + // DesiredOccupancy -> DesiredOccupancy + auto const policy_change_occ = Kokkos::Experimental::prefer( + policy_with_occ, Kokkos::Experimental::DesiredOccupancy{24}); + static_assert( + decltype(policy_change_occ)::experimental_contains_desired_occupancy, ""); + EXPECT_EQ(policy_change_occ.impl_get_desired_occupancy().value(), 24); + + // DesiredOccupancy -> MaximizeOccupancy + auto const policy_drop_occ = Kokkos::Experimental::prefer( + policy_with_occ, Kokkos::Experimental::MaximizeOccupancy{}); + static_assert( + !decltype(policy_drop_occ)::experimental_contains_desired_occupancy, ""); +} + +template <class... Args> +struct DummyPolicy : Kokkos::Impl::PolicyTraits<Args...> { + using execution_policy = DummyPolicy; + using traits = Kokkos::Impl::PolicyTraits<Args...>; + template <class... OtherArgs> + DummyPolicy(DummyPolicy<OtherArgs...> const& p) : traits(p) {} + DummyPolicy() = default; +}; + +TEST(TEST_CATEGORY, desired_occupancy_prefer) { + test_prefer_desired_occupancy(DummyPolicy<TEST_EXECSPACE>{}); + test_prefer_desired_occupancy(Kokkos::RangePolicy<TEST_EXECSPACE>{}); + // FIXME_SYCL requires MDRange policy and Team policy +#ifndef KOKKOS_ENABLE_SYCL + test_prefer_desired_occupancy( + Kokkos::MDRangePolicy<TEST_EXECSPACE, Kokkos::Rank<2>>{}); + test_prefer_desired_occupancy(Kokkos::TeamPolicy<TEST_EXECSPACE>{}); +#endif +} + +TEST(TEST_CATEGORY, desired_occupancy_empty_base_optimization) { + DummyPolicy<TEST_EXECSPACE> const policy{}; + static_assert(sizeof(decltype(policy)) == 1, ""); + + using Kokkos::Experimental::DesiredOccupancy; + auto policy_with_occ = + Kokkos::Experimental::prefer(policy, DesiredOccupancy{50}); + static_assert(sizeof(decltype(policy_with_occ)) == sizeof(DesiredOccupancy), + ""); +} + +template <typename Policy> +void test_desired_occupancy_converting_constructors(Policy const& policy) { + auto policy_with_occ = Kokkos::Experimental::prefer( + policy, Kokkos::Experimental::DesiredOccupancy{50}); + EXPECT_EQ(policy_with_occ.impl_get_desired_occupancy().value(), 50); + + auto policy_with_hint = Kokkos::Experimental::require( + policy_with_occ, Kokkos::Experimental::WorkItemProperty::HintLightWeight); + EXPECT_EQ(policy_with_hint.impl_get_desired_occupancy().value(), 50); +} + +TEST(TEST_CATEGORY, desired_occupancy_converting_constructors) { + test_desired_occupancy_converting_constructors( + Kokkos::RangePolicy<TEST_EXECSPACE>{}); + // FIXME_SYCL requires MDRange policy and Team policy +#ifndef KOKKOS_ENABLE_SYCL + test_desired_occupancy_converting_constructors( + Kokkos::MDRangePolicy<TEST_EXECSPACE, Kokkos::Rank<2>>{}); + test_desired_occupancy_converting_constructors( + Kokkos::TeamPolicy<TEST_EXECSPACE>{}); +#endif +} + +#ifndef KOKKOS_ENABLE_SYCL +template <class T> +void more_md_range_policy_construction_test() { + (void)Kokkos::MDRangePolicy<TEST_EXECSPACE, Kokkos::Rank<2>>{ + Kokkos::Array<T, 2>{}, Kokkos::Array<T, 2>{}}; + + (void)Kokkos::MDRangePolicy<TEST_EXECSPACE, Kokkos::Rank<2>>{{{T(0), T(0)}}, + {{T(2), T(2)}}}; + + (void)Kokkos::MDRangePolicy<TEST_EXECSPACE, Kokkos::Rank<2>>{{T(0), T(0)}, + {T(2), T(2)}}; +} + +TEST(TEST_CATEGORY, md_range_policy_construction_from_arrays) { + { + // Check that construction from Kokkos::Array of long compiles for backwards + // compability. This was broken in + // https://github.com/kokkos/kokkos/pull/3527/commits/88ea8eec6567c84739d77bdd25fdbc647fae28bb#r512323639 + Kokkos::MDRangePolicy<TEST_EXECSPACE, Kokkos::Rank<2>> p1( + Kokkos::Array<long, 2>{{0, 1}}, Kokkos::Array<long, 2>{{2, 3}}); + Kokkos::MDRangePolicy<TEST_EXECSPACE, Kokkos::Rank<2>> p2( + Kokkos::Array<long, 2>{{0, 1}}, Kokkos::Array<long, 2>{{2, 3}}); + Kokkos::MDRangePolicy<TEST_EXECSPACE, Kokkos::Rank<2>> p3( + Kokkos::Array<long, 2>{{0, 1}}, Kokkos::Array<long, 2>{{2, 3}}, + Kokkos::Array<long, 1>{{4}}); + } + { + // Check that construction from Kokkos::Array of the specified index type + // works. + using index_type = unsigned long long; + Kokkos::MDRangePolicy<TEST_EXECSPACE, Kokkos::Rank<2>, + Kokkos::IndexType<index_type>> + p1(Kokkos::Array<index_type, 2>{{0, 1}}, + Kokkos::Array<index_type, 2>{{2, 3}}); + Kokkos::MDRangePolicy<TEST_EXECSPACE, Kokkos::Rank<2>, + Kokkos::IndexType<index_type>> + p2(Kokkos::Array<index_type, 2>{{0, 1}}, + Kokkos::Array<index_type, 2>{{2, 3}}); + Kokkos::MDRangePolicy<TEST_EXECSPACE, Kokkos::Rank<2>, + Kokkos::IndexType<index_type>> + p3(Kokkos::Array<index_type, 2>{{0, 1}}, + Kokkos::Array<index_type, 2>{{2, 3}}, + Kokkos::Array<index_type, 1>{{4}}); + } + { + // Check that construction from double-braced initliazer list + // works. + using index_type = unsigned long long; + Kokkos::MDRangePolicy<TEST_EXECSPACE, Kokkos::Rank<2>> p1({{0, 1}}, + {{2, 3}}); + Kokkos::MDRangePolicy<TEST_EXECSPACE, Kokkos::Rank<2>, + Kokkos::IndexType<index_type>> + p2({{0, 1}}, {{2, 3}}); + } + + more_md_range_policy_construction_test<char>(); + more_md_range_policy_construction_test<int>(); + more_md_range_policy_construction_test<unsigned long>(); + more_md_range_policy_construction_test<std::int64_t>(); +} +#endif + } // namespace Test diff --git a/packages/kokkos/core/unit_test/TestRange.hpp b/packages/kokkos/core/unit_test/TestRange.hpp index 9bd13ad23..1f14ae4f3 100644 --- a/packages/kokkos/core/unit_test/TestRange.hpp +++ b/packages/kokkos/core/unit_test/TestRange.hpp @@ -52,9 +52,9 @@ namespace { template <class ExecSpace, class ScheduleType> struct TestRange { - typedef int value_type; ///< typedef required for the parallel_reduce + using value_type = int; ///< alias required for the parallel_reduce - typedef Kokkos::View<value_type *, ExecSpace> view_type; + using view_type = Kokkos::View<value_type *, ExecSpace>; view_type m_flags; view_type result_view; @@ -72,8 +72,9 @@ struct TestRange { int offset; #endif TestRange(const size_t N_) - : m_flags(Kokkos::ViewAllocateWithoutInitializing("flags"), N_), - result_view(Kokkos::ViewAllocateWithoutInitializing("results"), N_), + : m_flags(Kokkos::view_alloc(Kokkos::WithoutInitializing, "flags"), N_), + result_view(Kokkos::view_alloc(Kokkos::WithoutInitializing, "results"), + N_), N(N_) { #ifdef KOKKOS_WORKAROUND_OPENMPTARGET_GCC offset = 13; @@ -87,9 +88,8 @@ struct TestRange { Kokkos::parallel_for(Kokkos::RangePolicy<ExecSpace, ScheduleType>(0, N), *this); -#if defined(KOKKOS_ENABLE_PROFILING) { - typedef TestRange<ExecSpace, ScheduleType> ThisType; + using ThisType = TestRange<ExecSpace, ScheduleType>; std::string label("parallel_for"); Kokkos::Impl::ParallelConstructName<ThisType, void> pcn(label); ASSERT_EQ(pcn.get(), label); @@ -98,15 +98,13 @@ struct TestRange { empty_label); ASSERT_EQ(empty_pcn.get(), typeid(ThisType).name()); } -#endif Kokkos::parallel_for( Kokkos::RangePolicy<ExecSpace, ScheduleType, VerifyInitTag>(0, N), *this); -#if defined(KOKKOS_ENABLE_PROFILING) { - typedef TestRange<ExecSpace, ScheduleType> ThisType; + using ThisType = TestRange<ExecSpace, ScheduleType>; std::string label("parallel_for"); Kokkos::Impl::ParallelConstructName<ThisType, VerifyInitTag> pcn(label); ASSERT_EQ(pcn.get(), label); @@ -116,7 +114,6 @@ struct TestRange { ASSERT_EQ(empty_pcn.get(), std::string(typeid(ThisType).name()) + "/" + typeid(VerifyInitTag).name()); } -#endif Kokkos::deep_copy(host_flags, m_flags); @@ -165,7 +162,9 @@ struct TestRange { KOKKOS_INLINE_FUNCTION void operator()(const VerifyInitTag &, const int i) const { if (i != m_flags(i)) { - printf("TestRange::test_for error at %d != %d\n", i, m_flags(i)); +#ifndef __SYCL_DEVICE_ONLY__ + printf("TestRange::test_for_error at %d != %d\n", i, m_flags(i)); +#endif } } @@ -177,7 +176,9 @@ struct TestRange { KOKKOS_INLINE_FUNCTION void operator()(const VerifyResetTag &, const int i) const { if (2 * i != m_flags(i)) { - printf("TestRange::test_for error at %d != %d\n", i, m_flags(i)); +#ifndef __SYCL_DEVICE_ONLY__ + printf("TestRange::test_for_error at %d != %d\n", i, m_flags(i)); +#endif } } @@ -189,7 +190,9 @@ struct TestRange { KOKKOS_INLINE_FUNCTION void operator()(const VerifyOffsetTag &, const int i) const { if (i + offset != m_flags(i)) { - printf("TestRange::test_for error at %d != %d\n", i + offset, m_flags(i)); +#ifndef __SYCL_DEVICE_ONLY__ + printf("TestRange::test_for_error at %d != %d\n", i + offset, m_flags(i)); +#endif } } @@ -207,6 +210,12 @@ struct TestRange { // sum( 0 .. N-1 ) ASSERT_EQ(size_t((N - 1) * (N) / 2), size_t(total)); + Kokkos::parallel_reduce( + "TestKernelReduce_long", + Kokkos::RangePolicy<ExecSpace, ScheduleType, long>(0, N), *this, total); + // sum( 0 .. N-1 ) + ASSERT_EQ(size_t((N - 1) * (N) / 2), size_t(total)); + Kokkos::parallel_reduce( Kokkos::RangePolicy<ExecSpace, ScheduleType, OffsetTag>(offset, N + offset), @@ -266,8 +275,10 @@ struct TestRange { if (final) { if (update != (i * (i + 1)) / 2) { +#ifndef __SYCL_DEVICE_ONLY__ printf("TestRange::test_scan error (%d,%d) : %d != %d\n", i, m_flags(i), (i * (i + 1)) / 2, update); +#endif } result_view(i) = update; } @@ -276,8 +287,8 @@ struct TestRange { void test_dynamic_policy() { #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) auto const N_no_implicit_capture = N; - typedef Kokkos::RangePolicy<ExecSpace, Kokkos::Schedule<Kokkos::Dynamic> > - policy_t; + using policy_t = + Kokkos::RangePolicy<ExecSpace, Kokkos::Schedule<Kokkos::Dynamic> >; { Kokkos::View<size_t *, ExecSpace, Kokkos::MemoryTraits<Kokkos::Atomic> > @@ -290,11 +301,7 @@ struct TestRange { k++) { a(i)++; } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - count(ExecSpace::hardware_thread_id())++; -#else - count( ExecSpace::impl_hardware_thread_id() )++; -#endif + count(ExecSpace::impl_hardware_thread_id())++; }); int error = 0; @@ -335,11 +342,7 @@ struct TestRange { k++) { a(i)++; } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - count(ExecSpace::hardware_thread_id())++; -#else count(ExecSpace::impl_hardware_thread_id())++; -#endif lsum++; }, sum); @@ -443,7 +446,8 @@ TEST(TEST_CATEGORY, range_scan) { TestRange<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> > f(0); f.test_scan(); } -#if !defined(KOKKOS_ENABLE_CUDA) && !defined(KOKKOS_ENABLE_HIP) +#if !defined(KOKKOS_ENABLE_CUDA) && !defined(KOKKOS_ENABLE_HIP) && \ + !defined(KOKKOS_ENABLE_SYCL) { TestRange<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> > f(0); f.test_dynamic_policy(); @@ -458,7 +462,8 @@ TEST(TEST_CATEGORY, range_scan) { TestRange<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> > f(3); f.test_scan(); } -#if !defined(KOKKOS_ENABLE_CUDA) && !defined(KOKKOS_ENABLE_HIP) +#if !defined(KOKKOS_ENABLE_CUDA) && !defined(KOKKOS_ENABLE_HIP) && \ + !defined(KOKKOS_ENABLE_SYCL) { TestRange<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> > f(3); f.test_dynamic_policy(); @@ -473,7 +478,8 @@ TEST(TEST_CATEGORY, range_scan) { TestRange<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> > f(1001); f.test_scan(); } -#if !defined(KOKKOS_ENABLE_CUDA) && !defined(KOKKOS_ENABLE_HIP) +#if !defined(KOKKOS_ENABLE_CUDA) && !defined(KOKKOS_ENABLE_HIP) && \ + !defined(KOKKOS_ENABLE_SYCL) { TestRange<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> > f(1001); f.test_dynamic_policy(); diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_RangePolicy.cpp b/packages/kokkos/core/unit_test/TestRangePolicy.hpp similarity index 96% rename from packages/kokkos/core/unit_test/cuda/TestCuda_RangePolicy.cpp rename to packages/kokkos/core/unit_test/TestRangePolicy.hpp index 730978c35..3f40e24d1 100644 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_RangePolicy.cpp +++ b/packages/kokkos/core/unit_test/TestRangePolicy.hpp @@ -1,4 +1,3 @@ - /* //@HEADER // ************************************************************************ @@ -43,5 +42,7 @@ //@HEADER */ -#include <cuda/TestCuda_Category.hpp> +#ifndef KOKKOS_TEST_RANGEPOLICY_HPP +#define KOKKOS_TEST_RANGEPOLICY_HPP #include <TestRange.hpp> +#endif diff --git a/packages/kokkos/core/unit_test/TestRangeRequire.hpp b/packages/kokkos/core/unit_test/TestRangePolicyRequire.hpp similarity index 93% rename from packages/kokkos/core/unit_test/TestRangeRequire.hpp rename to packages/kokkos/core/unit_test/TestRangePolicyRequire.hpp index a75af0b95..18ff450a1 100644 --- a/packages/kokkos/core/unit_test/TestRangeRequire.hpp +++ b/packages/kokkos/core/unit_test/TestRangePolicyRequire.hpp @@ -56,9 +56,9 @@ namespace { template <class ExecSpace, class ScheduleType, class Property> struct TestRangeRequire { - typedef int value_type; ///< typedef required for the parallel_reduce + using value_type = int; ///< alias required for the parallel_reduce - typedef Kokkos::View<int *, ExecSpace> view_type; + using view_type = Kokkos::View<int *, ExecSpace>; view_type m_flags; @@ -71,7 +71,8 @@ struct TestRangeRequire { int N; static const int offset = 13; TestRangeRequire(const size_t N_) - : m_flags(Kokkos::ViewAllocateWithoutInitializing("flags"), N_), N(N_) {} + : m_flags(Kokkos::view_alloc(Kokkos::WithoutInitializing, "flags"), N_), + N(N_) {} void test_for() { typename view_type::HostMirror host_flags = @@ -82,9 +83,8 @@ struct TestRangeRequire { Kokkos::RangePolicy<ExecSpace, ScheduleType>(0, N), Property()), *this); -#if defined(KOKKOS_ENABLE_PROFILING) { - typedef TestRangeRequire<ExecSpace, ScheduleType, Property> ThisType; + using ThisType = TestRangeRequire<ExecSpace, ScheduleType, Property>; std::string label("parallel_for"); Kokkos::Impl::ParallelConstructName<ThisType, void> pcn(label); ASSERT_EQ(pcn.get(), label); @@ -93,7 +93,6 @@ struct TestRangeRequire { empty_label); ASSERT_EQ(empty_pcn.get(), typeid(ThisType).name()); } -#endif Kokkos::parallel_for( Kokkos::Experimental::require( @@ -101,9 +100,8 @@ struct TestRangeRequire { Property()), *this); -#if defined(KOKKOS_ENABLE_PROFILING) { - typedef TestRangeRequire<ExecSpace, ScheduleType, Property> ThisType; + using ThisType = TestRangeRequire<ExecSpace, ScheduleType, Property>; std::string label("parallel_for"); Kokkos::Impl::ParallelConstructName<ThisType, VerifyInitTag> pcn(label); ASSERT_EQ(pcn.get(), label); @@ -113,7 +111,6 @@ struct TestRangeRequire { ASSERT_EQ(empty_pcn.get(), std::string(typeid(ThisType).name()) + "/" + typeid(VerifyInitTag).name()); } -#endif Kokkos::deep_copy(host_flags, m_flags); @@ -173,7 +170,9 @@ struct TestRangeRequire { KOKKOS_INLINE_FUNCTION void operator()(const VerifyInitTag &, const int i) const { if (i != m_flags(i)) { +#ifndef KOKKOS_ENABLE_SYCL printf("TestRangeRequire::test_for error at %d != %d\n", i, m_flags(i)); +#endif } } @@ -185,7 +184,9 @@ struct TestRangeRequire { KOKKOS_INLINE_FUNCTION void operator()(const VerifyResetTag &, const int i) const { if (2 * i != m_flags(i)) { +#ifndef KOKKOS_ENABLE_SYCL printf("TestRangeRequire::test_for error at %d != %d\n", i, m_flags(i)); +#endif } } @@ -197,8 +198,10 @@ struct TestRangeRequire { KOKKOS_INLINE_FUNCTION void operator()(const VerifyOffsetTag &, const int i) const { if (i + offset != m_flags(i)) { +#ifndef KOKKOS_ENABLE_SYCL printf("TestRangeRequire::test_for error at %d != %d\n", i + offset, m_flags(i)); +#endif } } @@ -265,8 +268,10 @@ struct TestRangeRequire { if (final) { if (update != (i * (i + 1)) / 2) { +#ifndef KOKKOS_ENABLE_SYCL printf("TestRangeRequire::test_scan error %d : %d != %d\n", i, (i * (i + 1)) / 2, m_flags(i)); +#endif } } } @@ -274,8 +279,8 @@ struct TestRangeRequire { void test_dynamic_policy() { #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) auto const N_no_implicit_capture = N; - typedef Kokkos::RangePolicy<ExecSpace, Kokkos::Schedule<Kokkos::Dynamic> > - policy_t; + using policy_t = + Kokkos::RangePolicy<ExecSpace, Kokkos::Schedule<Kokkos::Dynamic> >; { Kokkos::View<size_t *, ExecSpace, Kokkos::MemoryTraits<Kokkos::Atomic> > @@ -288,11 +293,7 @@ struct TestRangeRequire { k++) { a(i)++; } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - count(ExecSpace::hardware_thread_id())++; -#else - count( ExecSpace::impl_hardware_thread_id() )++; -#endif + count(ExecSpace::impl_hardware_thread_id())++; }); int error = 0; @@ -333,11 +334,7 @@ struct TestRangeRequire { k++) { a(i)++; } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - count(ExecSpace::hardware_thread_id())++; -#else count(ExecSpace::impl_hardware_thread_id())++; -#endif lsum++; }, sum); @@ -465,7 +462,8 @@ TEST(TEST_CATEGORY, range_scan_require) { f(0); f.test_scan(); } -#if !defined(KOKKOS_ENABLE_CUDA) && !defined(KOKKOS_ENABLE_HIP) +#if !defined(KOKKOS_ENABLE_CUDA) && !defined(KOKKOS_ENABLE_HIP) && \ + !defined(KOKKOS_ENABLE_SYCL) { TestRangeRequire<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, Property> @@ -485,7 +483,8 @@ TEST(TEST_CATEGORY, range_scan_require) { f(3); f.test_scan(); } -#if !defined(KOKKOS_ENABLE_CUDA) && !defined(KOKKOS_ENABLE_HIP) +#if !defined(KOKKOS_ENABLE_CUDA) && !defined(KOKKOS_ENABLE_HIP) && \ + !defined(KOKKOS_ENABLE_SYCL) { TestRangeRequire<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, Property> @@ -505,7 +504,8 @@ TEST(TEST_CATEGORY, range_scan_require) { f(1001); f.test_scan(); } -#if !defined(KOKKOS_ENABLE_CUDA) && !defined(KOKKOS_ENABLE_HIP) +#if !defined(KOKKOS_ENABLE_CUDA) && !defined(KOKKOS_ENABLE_HIP) && \ + !defined(KOKKOS_ENABLE_SYCL) { TestRangeRequire<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, Property> diff --git a/packages/kokkos/core/unit_test/TestReduce.hpp b/packages/kokkos/core/unit_test/TestReduce.hpp index d63d5e8d4..9fab5b1f0 100644 --- a/packages/kokkos/core/unit_test/TestReduce.hpp +++ b/packages/kokkos/core/unit_test/TestReduce.hpp @@ -54,8 +54,8 @@ namespace Test { template <typename ScalarType, class DeviceType> class ReduceFunctor { public: - typedef DeviceType execution_space; - typedef typename execution_space::size_type size_type; + using execution_space = DeviceType; + using size_type = typename execution_space::size_type; struct value_type { ScalarType value[3]; @@ -97,7 +97,7 @@ class ReduceFunctor { template <class DeviceType> class ReduceFunctorFinal : public ReduceFunctor<int64_t, DeviceType> { public: - typedef typename ReduceFunctor<int64_t, DeviceType>::value_type value_type; + using value_type = typename ReduceFunctor<int64_t, DeviceType>::value_type; KOKKOS_INLINE_FUNCTION ReduceFunctorFinal(const size_t n) : ReduceFunctor<int64_t, DeviceType>(n) {} @@ -114,13 +114,13 @@ template <typename ScalarType, class DeviceType> class RuntimeReduceFunctor { public: // Required for functor: - typedef DeviceType execution_space; - typedef ScalarType value_type[]; + using execution_space = DeviceType; + using value_type = ScalarType[]; const unsigned value_count; // Unit test details: - typedef typename execution_space::size_type size_type; + using size_type = typename execution_space::size_type; const size_type nwork; @@ -151,13 +151,13 @@ template <typename ScalarType, class DeviceType> class RuntimeReduceMinMax { public: // Required for functor: - typedef DeviceType execution_space; - typedef ScalarType value_type[]; + using execution_space = DeviceType; + using value_type = ScalarType[]; const unsigned value_count; // Unit test details: - typedef typename execution_space::size_type size_type; + using size_type = typename execution_space::size_type; const size_type nwork; const ScalarType amin; @@ -200,9 +200,9 @@ template <class DeviceType> class RuntimeReduceFunctorFinal : public RuntimeReduceFunctor<int64_t, DeviceType> { public: - typedef RuntimeReduceFunctor<int64_t, DeviceType> base_type; - typedef typename base_type::value_type value_type; - typedef int64_t scalar_type; + using base_type = RuntimeReduceFunctor<int64_t, DeviceType>; + using value_type = typename base_type::value_type; + using scalar_type = int64_t; RuntimeReduceFunctorFinal(const size_t theNwork, const size_t count) : base_type(theNwork, count) {} @@ -215,13 +215,47 @@ class RuntimeReduceFunctorFinal } }; +template <class ValueType, class DeviceType> +class CombinedReduceFunctorSameType { + public: + using execution_space = typename DeviceType::execution_space; + using size_type = typename execution_space::size_type; + + const size_type nwork; + + KOKKOS_INLINE_FUNCTION + constexpr explicit CombinedReduceFunctorSameType(const size_type& arg_nwork) + : nwork(arg_nwork) {} + + KOKKOS_DEFAULTED_FUNCTION + constexpr CombinedReduceFunctorSameType( + const CombinedReduceFunctorSameType& rhs) = default; + + KOKKOS_INLINE_FUNCTION + void operator()(size_type iwork, ValueType& dst1, ValueType& dst2, + ValueType& dst3) const { + dst1 += 1; + dst2 += iwork + 1; + dst3 += nwork - iwork; + } + + KOKKOS_INLINE_FUNCTION + void operator()(size_type iwork, size_type always_zero_1, + size_type always_zero_2, ValueType& dst1, ValueType& dst2, + ValueType& dst3) const { + dst1 += 1 + always_zero_1; + dst2 += iwork + 1 + always_zero_2; + dst3 += nwork - iwork; + } +}; + namespace { template <typename ScalarType, class DeviceType> class TestReduce { public: - typedef DeviceType execution_space; - typedef typename execution_space::size_type size_type; + using execution_space = DeviceType; + using size_type = typename execution_space::size_type; TestReduce(const size_type& nwork) { run_test(nwork); @@ -229,8 +263,8 @@ class TestReduce { } void run_test(const size_type& nwork) { - typedef Test::ReduceFunctor<ScalarType, execution_space> functor_type; - typedef typename functor_type::value_type value_type; + using functor_type = Test::ReduceFunctor<ScalarType, execution_space>; + using value_type = typename functor_type::value_type; enum { Count = 3 }; enum { Repeat = 100 }; @@ -253,8 +287,8 @@ class TestReduce { } void run_test_final(const size_type& nwork) { - typedef Test::ReduceFunctorFinal<execution_space> functor_type; - typedef typename functor_type::value_type value_type; + using functor_type = Test::ReduceFunctorFinal<execution_space>; + using value_type = typename functor_type::value_type; enum { Count = 3 }; enum { Repeat = 100 }; @@ -285,8 +319,8 @@ class TestReduce { template <typename ScalarType, class DeviceType> class TestReduceDynamic { public: - typedef DeviceType execution_space; - typedef typename execution_space::size_type size_type; + using execution_space = DeviceType; + using size_type = typename execution_space::size_type; TestReduceDynamic(const size_type nwork) { run_test_dynamic(nwork); @@ -295,8 +329,8 @@ class TestReduceDynamic { } void run_test_dynamic(const size_type nwork) { - typedef Test::RuntimeReduceFunctor<ScalarType, execution_space> - functor_type; + using functor_type = + Test::RuntimeReduceFunctor<ScalarType, execution_space>; enum { Count = 3 }; enum { Repeat = 100 }; @@ -324,7 +358,7 @@ class TestReduceDynamic { } void run_test_dynamic_minmax(const size_type nwork) { - typedef Test::RuntimeReduceMinMax<ScalarType, execution_space> functor_type; + using functor_type = Test::RuntimeReduceMinMax<ScalarType, execution_space>; enum { Count = 2 }; enum { Repeat = 100 }; @@ -356,7 +390,7 @@ class TestReduceDynamic { } void run_test_dynamic_final(const size_type nwork) { - typedef Test::RuntimeReduceFunctorFinal<execution_space> functor_type; + using functor_type = Test::RuntimeReduceFunctorFinal<execution_space>; enum { Count = 3 }; enum { Repeat = 100 }; @@ -387,17 +421,17 @@ class TestReduceDynamic { template <typename ScalarType, class DeviceType> class TestReduceDynamicView { public: - typedef DeviceType execution_space; - typedef typename execution_space::size_type size_type; + using execution_space = DeviceType; + using size_type = typename execution_space::size_type; TestReduceDynamicView(const size_type nwork) { run_test_dynamic_view(nwork); } void run_test_dynamic_view(const size_type nwork) { - typedef Test::RuntimeReduceFunctor<ScalarType, execution_space> - functor_type; + using functor_type = + Test::RuntimeReduceFunctor<ScalarType, execution_space>; - typedef Kokkos::View<ScalarType*, DeviceType> result_type; - typedef typename result_type::HostMirror result_host_type; + using result_type = Kokkos::View<ScalarType*, DeviceType>; + using result_host_type = typename result_type::HostMirror; const unsigned CountLimit = 23; @@ -455,4 +489,66 @@ TEST(TEST_CATEGORY, int64_t_reduce_dynamic_view) { TestReduceDynamicView<int64_t, TEST_EXECSPACE>(1000000); } +TEST(TEST_CATEGORY, int_combined_reduce) { + using functor_type = CombinedReduceFunctorSameType<int64_t, TEST_EXECSPACE>; + constexpr uint64_t nw = 1000; + + uint64_t nsum = (nw / 2) * (nw + 1); + + int64_t result1 = 0; + int64_t result2 = 0; + int64_t result3 = 0; + + Kokkos::parallel_reduce("int_combined_reduce", + Kokkos::RangePolicy<TEST_EXECSPACE>(0, nw), + functor_type(nw), result1, result2, result3); + + ASSERT_EQ(nw, result1); + ASSERT_EQ(nsum, result2); + ASSERT_EQ(nsum, result3); +} + +TEST(TEST_CATEGORY, mdrange_combined_reduce) { + using functor_type = CombinedReduceFunctorSameType<int64_t, TEST_EXECSPACE>; + constexpr uint64_t nw = 1000; + + uint64_t nsum = (nw / 2) * (nw + 1); + + int64_t result1 = 0; + int64_t result2 = 0; + int64_t result3 = 0; + + Kokkos::parallel_reduce( + "int_combined_reduce_mdrange", + Kokkos::MDRangePolicy<TEST_EXECSPACE, Kokkos::Rank<3>>({{0, 0, 0}}, + {{nw, 1, 1}}), + functor_type(nw), result1, result2, result3); + + ASSERT_EQ(nw, result1); + ASSERT_EQ(nsum, result2); + ASSERT_EQ(nsum, result3); +} + +TEST(TEST_CATEGORY, int_combined_reduce_mixed) { + using functor_type = CombinedReduceFunctorSameType<int64_t, TEST_EXECSPACE>; + + constexpr uint64_t nw = 1000; + + uint64_t nsum = (nw / 2) * (nw + 1); + + auto result1_v = Kokkos::View<int64_t, Kokkos::HostSpace>{"result1_v"}; + + int64_t result2 = 0; + + auto result3_v = Kokkos::View<int64_t, Kokkos::HostSpace>{"result3_v"}; + + Kokkos::parallel_reduce("int_combined-reduce_mixed", + Kokkos::RangePolicy<TEST_EXECSPACE>(0, nw), + functor_type(nw), result1_v, result2, + Kokkos::Sum<int64_t, Kokkos::HostSpace>{result3_v}); + + ASSERT_EQ(nw, result1_v()); + ASSERT_EQ(nsum, result2); + ASSERT_EQ(nsum, result3_v()); +} } // namespace Test diff --git a/packages/kokkos/core/unit_test/TestReduceCombinatorical.hpp b/packages/kokkos/core/unit_test/TestReduceCombinatorical.hpp index fe85f360c..f8c693b96 100644 --- a/packages/kokkos/core/unit_test/TestReduceCombinatorical.hpp +++ b/packages/kokkos/core/unit_test/TestReduceCombinatorical.hpp @@ -57,12 +57,11 @@ template <class Scalar, class Space = Kokkos::HostSpace> struct AddPlus { public: // Required. - typedef AddPlus reducer; - typedef Scalar value_type; + using reducer = AddPlus; + using value_type = Scalar; - typedef Kokkos::View<value_type, Space, - Kokkos::MemoryTraits<Kokkos::Unmanaged> > - result_view_type; + using result_view_type = + Kokkos::View<value_type, Space, Kokkos::MemoryTraits<Kokkos::Unmanaged> >; private: result_view_type result; @@ -103,9 +102,11 @@ struct FunctorScalar<0> { void operator()(const int& i, double& update) const { update += i; } }; +// FIXME_SYCL requires TeamPolicy +#ifndef KOKKOS_ENABLE_SYCL template <> struct FunctorScalar<1> { - typedef Kokkos::TeamPolicy<>::member_type team_type; + using team_type = Kokkos::TeamPolicy<>::member_type; Kokkos::View<double> result; @@ -116,6 +117,7 @@ struct FunctorScalar<1> { update += 1.0 / team.team_size() * team.league_rank(); } }; +#endif template <int ISTEAM> struct FunctorScalarInit; @@ -133,9 +135,11 @@ struct FunctorScalarInit<0> { void init(double& update) const { update = 0.0; } }; +// FIXME_SYCL requires TeamPolicy +#ifndef KOKKOS_ENABLE_SYCL template <> struct FunctorScalarInit<1> { - typedef Kokkos::TeamPolicy<>::member_type team_type; + using team_type = Kokkos::TeamPolicy<>::member_type; Kokkos::View<double> result; @@ -149,6 +153,7 @@ struct FunctorScalarInit<1> { KOKKOS_INLINE_FUNCTION void init(double& update) const { update = 0.0; } }; +#endif template <int ISTEAM> struct FunctorScalarFinal; @@ -166,9 +171,11 @@ struct FunctorScalarFinal<0> { void final(double& update) const { result() = update; } }; +// FIXME_SYCL requires TeamPolicy +#ifndef KOKKOS_ENABLE_SYCL template <> struct FunctorScalarFinal<1> { - typedef Kokkos::TeamPolicy<>::member_type team_type; + using team_type = Kokkos::TeamPolicy<>::member_type; Kokkos::View<double> result; @@ -182,6 +189,7 @@ struct FunctorScalarFinal<1> { KOKKOS_INLINE_FUNCTION void final(double& update) const { result() = update; } }; +#endif template <int ISTEAM> struct FunctorScalarJoin; @@ -201,9 +209,11 @@ struct FunctorScalarJoin<0> { } }; +// FIXME_SYCL requires TeamPolicy +#ifndef KOKKOS_ENABLE_SYCL template <> struct FunctorScalarJoin<1> { - typedef Kokkos::TeamPolicy<>::member_type team_type; + using team_type = Kokkos::TeamPolicy<>::member_type; Kokkos::View<double> result; @@ -219,6 +229,7 @@ struct FunctorScalarJoin<1> { dst += update; } }; +#endif template <int ISTEAM> struct FunctorScalarJoinFinal; @@ -241,9 +252,11 @@ struct FunctorScalarJoinFinal<0> { void final(double& update) const { result() = update; } }; +// FIXME_SYCL requires TeamPolicy +#ifndef KOKKOS_ENABLE_SYCL template <> struct FunctorScalarJoinFinal<1> { - typedef Kokkos::TeamPolicy<>::member_type team_type; + using team_type = Kokkos::TeamPolicy<>::member_type; Kokkos::View<double> result; @@ -262,6 +275,7 @@ struct FunctorScalarJoinFinal<1> { KOKKOS_INLINE_FUNCTION void final(double& update) const { result() = update; } }; +#endif template <int ISTEAM> struct FunctorScalarJoinInit; @@ -284,9 +298,11 @@ struct FunctorScalarJoinInit<0> { void init(double& update) const { update = 0.0; } }; +// FIXME_SYCL requires TeamPolicy +#ifndef KOKKOS_ENABLE_SYCL template <> struct FunctorScalarJoinInit<1> { - typedef Kokkos::TeamPolicy<>::member_type team_type; + using team_type = Kokkos::TeamPolicy<>::member_type; Kokkos::View<double> result; @@ -305,6 +321,7 @@ struct FunctorScalarJoinInit<1> { KOKKOS_INLINE_FUNCTION void init(double& update) const { update = 0.0; } }; +#endif template <int ISTEAM> struct FunctorScalarJoinFinalInit; @@ -330,9 +347,11 @@ struct FunctorScalarJoinFinalInit<0> { void init(double& update) const { update = 0.0; } }; +// FIXME_SYCL requires TeamPolicy +#ifndef KOKKOS_ENABLE_SYCL template <> struct FunctorScalarJoinFinalInit<1> { - typedef Kokkos::TeamPolicy<>::member_type team_type; + using team_type = Kokkos::TeamPolicy<>::member_type; Kokkos::View<double> result; @@ -354,6 +373,7 @@ struct FunctorScalarJoinFinalInit<1> { KOKKOS_INLINE_FUNCTION void init(double& update) const { update = 0.0; } }; +#endif struct Functor1 { KOKKOS_INLINE_FUNCTION @@ -361,7 +381,7 @@ struct Functor1 { }; struct Functor2 { - typedef double value_type[]; + using value_type = double[]; const unsigned value_count; @@ -395,20 +415,29 @@ struct TestReduceCombinatoricalInstantiation { } template <class... Args> - static void AddReturnArgument(Args... args) { - Kokkos::View<double, Kokkos::HostSpace> result_view("ResultView"); - double expected_result = 1000.0 * 999.0 / 2.0; + static void AddReturnArgument(int N, Args... args) { + Kokkos::View<double, Kokkos::HostSpace> result_view("ResultViewHost"); + Kokkos::View<double, ExecSpace> result_view_device("ResultViewDevice"); + double expected_result = (1.0 * N) * (1.0 * N - 1.0) / 2.0; - double value = 0; + double value = 99; Kokkos::parallel_reduce(args..., value); ASSERT_EQ(expected_result, value); - result_view() = 0; + result_view() = 99; CallParallelReduce(args..., result_view); Kokkos::fence(); ASSERT_EQ(expected_result, result_view()); - value = 0; +#ifndef KOKKOS_ENABLE_OPENMPTARGET + result_view() = 99; + CallParallelReduce(args..., result_view_device); + Kokkos::fence(); + Kokkos::deep_copy(result_view, result_view_device); + ASSERT_EQ(expected_result, result_view()); +#endif + + value = 99; CallParallelReduce( args..., Kokkos::View<double, Kokkos::HostSpace, @@ -416,7 +445,7 @@ struct TestReduceCombinatoricalInstantiation { Kokkos::fence(); ASSERT_EQ(expected_result, value); - result_view() = 0; + result_view() = 99; const Kokkos::View<double, Kokkos::HostSpace, Kokkos::MemoryTraits<Kokkos::Unmanaged> > result_view_const_um = result_view; @@ -424,74 +453,83 @@ struct TestReduceCombinatoricalInstantiation { Kokkos::fence(); ASSERT_EQ(expected_result, result_view_const_um()); - value = 0; + value = 99; +// WORKAROUND OPENMPTARGET Custom Reducers not implemented +#ifndef KOKKOS_ENABLE_OPENMPTARGET CallParallelReduce(args..., Test::ReduceCombinatorical::AddPlus<double>(value)); if ((Kokkos::DefaultExecutionSpace::concurrency() > 1) && - (ExecSpace::concurrency() > 1)) { + (ExecSpace::concurrency() > 1) && (expected_result > 0)) { ASSERT_TRUE(expected_result < value); - } else if ((Kokkos::DefaultExecutionSpace::concurrency() > 1) || - (ExecSpace::concurrency() > 1)) { + } else if (((Kokkos::DefaultExecutionSpace::concurrency() > 1) || + (ExecSpace::concurrency() > 1)) && + (expected_result > 0)) { ASSERT_TRUE(expected_result <= value); } else { ASSERT_EQ(expected_result, value); } - value = 0; + value = 99; Test::ReduceCombinatorical::AddPlus<double> add(value); CallParallelReduce(args..., add); if ((Kokkos::DefaultExecutionSpace::concurrency() > 1) && - (ExecSpace::concurrency() > 1)) { + (ExecSpace::concurrency() > 1) && (expected_result > 0)) { ASSERT_TRUE(expected_result < value); - } else if ((Kokkos::DefaultExecutionSpace::concurrency() > 1) || - (ExecSpace::concurrency() > 1)) { + } else if (((Kokkos::DefaultExecutionSpace::concurrency() > 1) || + (ExecSpace::concurrency() > 1)) && + (expected_result > 0)) { ASSERT_TRUE(expected_result <= value); } else { ASSERT_EQ(expected_result, value); } +#endif } template <class... Args> - static void AddLambdaRange(void*, Args... args) { + static void AddLambdaRange(int N, void*, Args... args) { AddReturnArgument( - args..., KOKKOS_LAMBDA(const int& i, double& lsum) { lsum += i; }); + N, args..., KOKKOS_LAMBDA(const int& i, double& lsum) { lsum += i; }); } template <class... Args> - static void AddLambdaTeam(void*, Args... args) { + static void AddLambdaTeam(int N, void*, Args... args) { AddReturnArgument( - args..., KOKKOS_LAMBDA(const Kokkos::TeamPolicy<>::member_type& team, - double& update) { + N, args..., + KOKKOS_LAMBDA(const Kokkos::TeamPolicy<>::member_type& team, + double& update) { update += 1.0 / team.team_size() * team.league_rank(); }); } template <class... Args> - static void AddLambdaRange(Kokkos::InvalidType, Args... /*args*/) {} + static void AddLambdaRange(int, Kokkos::InvalidType, Args... /*args*/) {} template <class... Args> - static void AddLambdaTeam(Kokkos::InvalidType, Args... /*args*/) {} + static void AddLambdaTeam(int, Kokkos::InvalidType, Args... /*args*/) {} template <int ISTEAM, class... Args> - static void AddFunctor(Args... args) { - Kokkos::View<double> result_view("FunctorView"); + static void AddFunctor(int N, Args... args) { + Kokkos::View<double, ExecSpace> result_view("FunctorView"); auto h_r = Kokkos::create_mirror_view(result_view); Test::ReduceCombinatorical::FunctorScalar<ISTEAM> functor(result_view); - double expected_result = 1000.0 * 999.0 / 2.0; - AddReturnArgument(args..., functor); + AddReturnArgument(N, args..., functor); AddReturnArgument( - args..., + N, args..., Test::ReduceCombinatorical::FunctorScalar<ISTEAM>(result_view)); +// WORKAROUND OPENMPTARGET: reductions with functor join/init/final +// not implemented +#if !defined(KOKKOS_ENABLE_OPENMPTARGET) AddReturnArgument( - args..., + N, args..., Test::ReduceCombinatorical::FunctorScalarInit<ISTEAM>(result_view)); AddReturnArgument( - args..., + N, args..., Test::ReduceCombinatorical::FunctorScalarJoin<ISTEAM>(result_view)); AddReturnArgument( - args..., + N, args..., Test::ReduceCombinatorical::FunctorScalarJoinInit<ISTEAM>(result_view)); + double expected_result = (1.0 * N) * (1.0 * N - 1.0) / 2.0; h_r() = 0; Kokkos::deep_copy(result_view, h_r); @@ -519,13 +557,15 @@ struct TestReduceCombinatoricalInstantiation { Kokkos::fence(); Kokkos::deep_copy(h_r, result_view); ASSERT_EQ(expected_result, h_r()); +#endif } template <class... Args> - static void AddFunctorLambdaRange(Args... args) { - AddFunctor<0, Args...>(args...); + static void AddFunctorLambdaRange(int N, Args... args) { + AddFunctor<0, Args...>(N, args...); #ifdef KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA AddLambdaRange( + N, typename std::conditional< std::is_same<ExecSpace, Kokkos::DefaultExecutionSpace>::value, void*, Kokkos::InvalidType>::type(), @@ -534,10 +574,11 @@ struct TestReduceCombinatoricalInstantiation { } template <class... Args> - static void AddFunctorLambdaTeam(Args... args) { - AddFunctor<1, Args...>(args...); + static void AddFunctorLambdaTeam(int N, Args... args) { + AddFunctor<1, Args...>(N, args...); #ifdef KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA AddLambdaTeam( + N, typename std::conditional< std::is_same<ExecSpace, Kokkos::DefaultExecutionSpace>::value, void*, Kokkos::InvalidType>::type(), @@ -546,95 +587,103 @@ struct TestReduceCombinatoricalInstantiation { } template <class... Args> - static void AddPolicy_1(Args... args) { - int N = 1000; + static void AddPolicy_1(int N, Args... args) { Kokkos::RangePolicy<ExecSpace> policy(0, N); - AddFunctorLambdaRange(args..., 1000); - AddFunctorLambdaRange(args..., N); - AddFunctorLambdaRange(args..., policy); + AddFunctorLambdaRange(1000, args..., 1000); + AddFunctorLambdaRange(N, args..., N); + AddFunctorLambdaRange(N, args..., policy); } template <class... Args> - static void AddPolicy_2(Args... args) { - int N = 1000; - Kokkos::RangePolicy<ExecSpace> policy(0, N); - - AddFunctorLambdaRange(args..., Kokkos::RangePolicy<ExecSpace>(0, N)); + static void AddPolicy_2(int N, Args... args) { + AddFunctorLambdaRange(N, args..., Kokkos::RangePolicy<ExecSpace>(0, N)); AddFunctorLambdaRange( - args..., + N, args..., Kokkos::RangePolicy<ExecSpace, Kokkos::Schedule<Kokkos::Dynamic> >(0, N)); AddFunctorLambdaRange( - args..., + N, args..., Kokkos::RangePolicy<ExecSpace, Kokkos::Schedule<Kokkos::Static> >(0, N) - .set_chunk_size(10)); + .set_chunk_size(16)); AddFunctorLambdaRange( - args..., + N, args..., Kokkos::RangePolicy<ExecSpace, Kokkos::Schedule<Kokkos::Dynamic> >(0, N) - .set_chunk_size(10)); + .set_chunk_size(16)); } template <class... Args> - static void AddPolicy_3(Args... args) { - int N = 1000; - Kokkos::RangePolicy<ExecSpace> policy(0, N); - - AddFunctorLambdaTeam(args..., + static void AddPolicy_3(int N, Args... args) { + AddFunctorLambdaTeam(N, args..., Kokkos::TeamPolicy<ExecSpace>(N, Kokkos::AUTO)); AddFunctorLambdaTeam( - args..., + N, args..., Kokkos::TeamPolicy<ExecSpace, Kokkos::Schedule<Kokkos::Dynamic> >( N, Kokkos::AUTO)); AddFunctorLambdaTeam( - args..., + N, args..., Kokkos::TeamPolicy<ExecSpace, Kokkos::Schedule<Kokkos::Static> >( N, Kokkos::AUTO) - .set_chunk_size(10)); + .set_chunk_size(16)); AddFunctorLambdaTeam( - args..., + N, args..., Kokkos::TeamPolicy<ExecSpace, Kokkos::Schedule<Kokkos::Dynamic> >( N, Kokkos::AUTO) - .set_chunk_size(10)); + .set_chunk_size(16)); } - static void execute_a1() { AddPolicy_1(); } + static void execute_a1() { AddPolicy_1(1000); } static void execute_b1() { std::string s("Std::String"); - AddPolicy_1(s.c_str()); - AddPolicy_1("Char Constant"); + AddPolicy_1(1000, s.c_str()); + AddPolicy_1(1000, "Char Constant"); +#ifndef KOKKOS_ENABLE_OPENMPTARGET + AddPolicy_1(0, "Char Constant"); +#endif } static void execute_c1() { std::string s("Std::String"); - AddPolicy_1(s); + AddPolicy_1(1000, s); } - static void execute_a2() { AddPolicy_2(); } + static void execute_a2() { AddPolicy_2(1000); } static void execute_b2() { std::string s("Std::String"); - AddPolicy_2(s.c_str()); - AddPolicy_2("Char Constant"); + AddPolicy_2(1000, s.c_str()); + AddPolicy_2(1000, "Char Constant"); +#ifndef KOKKOS_ENABLE_OPENMPTARGET + AddPolicy_2(0, "Char Constant"); +#endif } static void execute_c2() { std::string s("Std::String"); - AddPolicy_2(s); + AddPolicy_2(1000, s); } - static void execute_a3() { AddPolicy_1(); } + static void execute_a3() { +#ifndef KOKKOS_ENABLE_OPENMPTARGET + AddPolicy_3(1000); +#endif + } static void execute_b3() { +#ifndef KOKKOS_ENABLE_OPENMPTARGET std::string s("Std::String"); - AddPolicy_1(s.c_str()); - AddPolicy_1("Char Constant"); + AddPolicy_3(1000, s.c_str()); + AddPolicy_3(1000, "Char Constant"); + AddPolicy_3(0, "Char Constant"); +#endif } static void execute_c3() { +#ifndef KOKKOS_ENABLE_OPENMPTARGET std::string s("Std::String"); - AddPolicy_1(s); + AddPolicy_3(1000, s); +#endif } }; diff --git a/packages/kokkos/core/unit_test/TestReducers.hpp b/packages/kokkos/core/unit_test/TestReducers.hpp index 04b4bd373..a8ffe3c0c 100644 --- a/packages/kokkos/core/unit_test/TestReducers.hpp +++ b/packages/kokkos/core/unit_test/TestReducers.hpp @@ -308,9 +308,16 @@ struct TestReducers { Scalar init = 0; { - Scalar sum_scalar = init; + Scalar sum_scalar = Scalar(1); Kokkos::Sum<Scalar> reducer_scalar(sum_scalar); + Kokkos::parallel_reduce(Kokkos::RangePolicy<ExecSpace>(0, 0), f, + reducer_scalar); +// Zero length reduction not yet supported +#ifndef KOKKOS_ENABLE_OPENMPTARGET + ASSERT_EQ(sum_scalar, init); +#endif + Kokkos::parallel_reduce(Kokkos::RangePolicy<ExecSpace>(0, N), f, reducer_scalar); ASSERT_EQ(sum_scalar, reference_sum); @@ -326,18 +333,48 @@ struct TestReducers { { Kokkos::View<Scalar, Kokkos::HostSpace> sum_view("View"); - sum_view() = init; + sum_view() = Scalar(1); Kokkos::Sum<Scalar> reducer_view(sum_view); - Kokkos::parallel_reduce(Kokkos::RangePolicy<ExecSpace>(0, N), f, + Kokkos::parallel_reduce(Kokkos::RangePolicy<ExecSpace>(0, 0), f, reducer_view); Kokkos::fence(); - Scalar sum_view_scalar = sum_view(); +// Zero length reduction not yet supported +#ifndef KOKKOS_ENABLE_OPENMPTARGET + ASSERT_EQ(sum_view_scalar, init); +#endif + + Kokkos::parallel_reduce(Kokkos::RangePolicy<ExecSpace>(0, N), f, + reducer_view); + Kokkos::fence(); + sum_view_scalar = sum_view(); ASSERT_EQ(sum_view_scalar, reference_sum); Scalar sum_view_view = reducer_view.reference(); ASSERT_EQ(sum_view_view, reference_sum); } + + // Reduction to device view not yet supported +#ifndef KOKKOS_ENABLE_OPENMPTARGET + { + Kokkos::View<Scalar, typename ExecSpace::memory_space> sum_view("View"); + Kokkos::deep_copy(sum_view, Scalar(1)); + Kokkos::Sum<Scalar, typename ExecSpace::memory_space> reducer_view( + sum_view); + Kokkos::parallel_reduce(Kokkos::RangePolicy<ExecSpace>(0, 0), f, + reducer_view); + Kokkos::fence(); + Scalar sum_view_scalar; + Kokkos::deep_copy(sum_view_scalar, sum_view); + ASSERT_EQ(sum_view_scalar, init); + + Kokkos::parallel_reduce(Kokkos::RangePolicy<ExecSpace>(0, N), f, + reducer_view); + Kokkos::fence(); + Kokkos::deep_copy(sum_view_scalar, sum_view); + ASSERT_EQ(sum_view_scalar, reference_sum); + } +#endif } static void test_prod(int N) { @@ -358,8 +395,14 @@ struct TestReducers { Scalar init = 1; { - Scalar prod_scalar = init; + Scalar prod_scalar = Scalar(0); Kokkos::Prod<Scalar> reducer_scalar(prod_scalar); + Kokkos::parallel_reduce(Kokkos::RangePolicy<ExecSpace>(0, 0), f, + reducer_scalar); +// Zero length reduction not yet supported +#ifndef KOKKOS_ENABLE_OPENMPTARGET + ASSERT_EQ(prod_scalar, init); +#endif Kokkos::parallel_reduce(Kokkos::RangePolicy<ExecSpace>(0, N), f, reducer_scalar); @@ -376,18 +419,48 @@ struct TestReducers { { Kokkos::View<Scalar, Kokkos::HostSpace> prod_view("View"); - prod_view() = init; + prod_view() = Scalar(0); Kokkos::Prod<Scalar> reducer_view(prod_view); - Kokkos::parallel_reduce(Kokkos::RangePolicy<ExecSpace>(0, N), f, + Kokkos::parallel_reduce(Kokkos::RangePolicy<ExecSpace>(0, 0), f, reducer_view); Kokkos::fence(); - Scalar prod_view_scalar = prod_view(); +// Zero length reduction not yet supported +#ifndef KOKKOS_ENABLE_OPENMPTARGET + ASSERT_EQ(prod_view_scalar, init); +#endif + + Kokkos::parallel_reduce(Kokkos::RangePolicy<ExecSpace>(0, N), f, + reducer_view); + Kokkos::fence(); + prod_view_scalar = prod_view(); ASSERT_EQ(prod_view_scalar, reference_prod); Scalar prod_view_view = reducer_view.reference(); ASSERT_EQ(prod_view_view, reference_prod); } + + // Reduction to device view not yet supported +#ifndef KOKKOS_ENABLE_OPENMPTARGET + { + Kokkos::View<Scalar, typename ExecSpace::memory_space> prod_view("View"); + Kokkos::deep_copy(prod_view, Scalar(0)); + Kokkos::Prod<Scalar, typename ExecSpace::memory_space> reducer_view( + prod_view); + Kokkos::parallel_reduce(Kokkos::RangePolicy<ExecSpace>(0, 0), f, + reducer_view); + Kokkos::fence(); + Scalar prod_view_scalar; + Kokkos::deep_copy(prod_view_scalar, prod_view); + ASSERT_EQ(prod_view_scalar, init); + + Kokkos::parallel_reduce(Kokkos::RangePolicy<ExecSpace>(0, N), f, + reducer_view); + Kokkos::fence(); + Kokkos::deep_copy(prod_view_scalar, prod_view); + ASSERT_EQ(prod_view_scalar, reference_prod); + } +#endif } static void test_min(int N) { @@ -493,7 +566,7 @@ struct TestReducers { } static void test_minloc(int N) { - typedef typename Kokkos::MinLoc<Scalar, int>::value_type value_type; + using value_type = typename Kokkos::MinLoc<Scalar, int>::value_type; Kokkos::View<Scalar*, ExecSpace> values("Values", N); auto h_values = Kokkos::create_mirror_view(values); @@ -556,7 +629,7 @@ struct TestReducers { } static void test_maxloc(int N) { - typedef typename Kokkos::MaxLoc<Scalar, int>::value_type value_type; + using value_type = typename Kokkos::MaxLoc<Scalar, int>::value_type; Kokkos::View<Scalar*, ExecSpace> values("Values", N); auto h_values = Kokkos::create_mirror_view(values); @@ -619,7 +692,7 @@ struct TestReducers { } static void test_minmaxloc(int N) { - typedef typename Kokkos::MinMaxLoc<Scalar, int>::value_type value_type; + using value_type = typename Kokkos::MinMaxLoc<Scalar, int>::value_type; Kokkos::View<Scalar*, ExecSpace> values("Values", N); auto h_values = Kokkos::create_mirror_view(values); @@ -945,9 +1018,12 @@ struct TestReducers { test_minmaxloc(10007); } + // NOTE test_prod generates N random numbers between 1 and 4. + // Although unlikely, the test below could still in principle overflow. + // For reference log(numeric_limits<int>)/log(4) is 15.5 static void execute_integer() { test_sum(10001); - test_prod(35); + test_prod(sizeof(Scalar) > 4 ? 35 : 19); // avoid int overflow (see above) test_min(10003); test_minloc(10003); test_max(10007); diff --git a/packages/kokkos/core/unit_test/TestReducers_d.hpp b/packages/kokkos/core/unit_test/TestReducers_d.hpp index 2dc8ae5b5..44545a89d 100644 --- a/packages/kokkos/core/unit_test/TestReducers_d.hpp +++ b/packages/kokkos/core/unit_test/TestReducers_d.hpp @@ -42,11 +42,20 @@ //@HEADER */ +#include <Kokkos_Core.hpp> #include <TestReducers.hpp> +#include <TestNonTrivialScalarTypes.hpp> namespace Test { TEST(TEST_CATEGORY, reducers_complex_double) { TestReducers<Kokkos::complex<double>, TEST_EXECSPACE>::execute_basic(); } +TEST(TEST_CATEGORY, reducers_struct) { + TestReducers<array_reduce<float, 1>, TEST_EXECSPACE>::test_sum(1031); + TestReducers<array_reduce<float, 2>, TEST_EXECSPACE>::test_sum(1031); + TestReducers<array_reduce<float, 3>, TEST_EXECSPACE>::test_sum(1031); + TestReducers<array_reduce<float, 4>, TEST_EXECSPACE>::test_sum(1031); + TestReducers<array_reduce<float, 7>, TEST_EXECSPACE>::test_sum(1031); +} } // namespace Test diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_Reductions.cpp b/packages/kokkos/core/unit_test/TestReductions.hpp similarity index 93% rename from packages/kokkos/core/unit_test/openmp/TestOpenMP_Reductions.cpp rename to packages/kokkos/core/unit_test/TestReductions.hpp index 1eb20ea09..949ca7eaf 100644 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_Reductions.cpp +++ b/packages/kokkos/core/unit_test/TestReductions.hpp @@ -42,6 +42,11 @@ //@HEADER */ -#include <openmp/TestOpenMP_Category.hpp> +#ifndef KOKKOS_TEST_REDUCTIONS_HPP +#define KOKKOS_TEST_REDUCTIONS_HPP +#include <Kokkos_Macros.hpp> +#ifndef KOKKOS_ENABLE_OPENMPTARGET #include <TestReduce.hpp> +#endif #include <TestCXX11Deduction.hpp> +#endif diff --git a/packages/kokkos/core/unit_test/TestReduceDeviceView.hpp b/packages/kokkos/core/unit_test/TestReductions_DeviceView.hpp similarity index 98% rename from packages/kokkos/core/unit_test/TestReduceDeviceView.hpp rename to packages/kokkos/core/unit_test/TestReductions_DeviceView.hpp index d0562a2aa..d82709b30 100644 --- a/packages/kokkos/core/unit_test/TestReduceDeviceView.hpp +++ b/packages/kokkos/core/unit_test/TestReductions_DeviceView.hpp @@ -123,11 +123,13 @@ TEST(TEST_CATEGORY, reduce_device_view_mdrange_policy) { MDRangePolicyFunctor()); } +// FIXME_HIP +#ifndef KOKKOS_ENABLE_HIP TEST(TEST_CATEGORY, reduce_device_view_team_policy) { int N = 1000 * 1024 * 1024; test_reduce_device_view( N, Kokkos::TeamPolicy<TEST_EXECSPACE>(1000 * 1024, Kokkos::AUTO), TeamPolicyFunctor(1024)); } - +#endif } // namespace Test diff --git a/packages/kokkos/core/unit_test/TestResize.hpp b/packages/kokkos/core/unit_test/TestResize.hpp index 32a85f03e..0ab6e10c4 100644 --- a/packages/kokkos/core/unit_test/TestResize.hpp +++ b/packages/kokkos/core/unit_test/TestResize.hpp @@ -68,7 +68,7 @@ void impl_testResize() { // Check #904 fix (no reallocation if dimensions didn't change). { - typedef Kokkos::View<int*, DeviceType> view_type; + using view_type = Kokkos::View<int*, DeviceType>; view_type view_1d("view_1d", sizes[0]); const int* oldPointer = view_1d.data(); EXPECT_TRUE(oldPointer != nullptr); @@ -76,8 +76,10 @@ void impl_testResize() { const int* newPointer = view_1d.data(); EXPECT_TRUE(oldPointer == newPointer); } + // FIXME_SYCL needs MDRangePolicy +#ifndef KOKKOS_ENABLE_SYCL { - typedef Kokkos::View<int**, DeviceType> view_type; + using view_type = Kokkos::View<int**, DeviceType>; view_type view_2d("view_2d", sizes[0], sizes[1]); const int* oldPointer = view_2d.data(); EXPECT_TRUE(oldPointer != nullptr); @@ -86,7 +88,7 @@ void impl_testResize() { EXPECT_TRUE(oldPointer == newPointer); } { - typedef Kokkos::View<int***, DeviceType> view_type; + using view_type = Kokkos::View<int***, DeviceType>; view_type view_3d("view_3d", sizes[0], sizes[1], sizes[2]); const int* oldPointer = view_3d.data(); EXPECT_TRUE(oldPointer != nullptr); @@ -95,7 +97,7 @@ void impl_testResize() { EXPECT_TRUE(oldPointer == newPointer); } { - typedef Kokkos::View<int****, DeviceType> view_type; + using view_type = Kokkos::View<int****, DeviceType>; view_type view_4d("view_4d", sizes[0], sizes[1], sizes[2], sizes[3]); const int* oldPointer = view_4d.data(); EXPECT_TRUE(oldPointer != nullptr); @@ -104,7 +106,7 @@ void impl_testResize() { EXPECT_TRUE(oldPointer == newPointer); } { - typedef Kokkos::View<int*****, DeviceType> view_type; + using view_type = Kokkos::View<int*****, DeviceType>; view_type view_5d("view_5d", sizes[0], sizes[1], sizes[2], sizes[3], sizes[4]); const int* oldPointer = view_5d.data(); @@ -115,7 +117,7 @@ void impl_testResize() { EXPECT_TRUE(oldPointer == newPointer); } { - typedef Kokkos::View<int******, DeviceType> view_type; + using view_type = Kokkos::View<int******, DeviceType>; view_type view_6d("view_6d", sizes[0], sizes[1], sizes[2], sizes[3], sizes[4], sizes[5]); const int* oldPointer = view_6d.data(); @@ -126,7 +128,7 @@ void impl_testResize() { EXPECT_TRUE(oldPointer == newPointer); } { - typedef Kokkos::View<int*******, DeviceType> view_type; + using view_type = Kokkos::View<int*******, DeviceType>; view_type view_7d("view_7d", sizes[0], sizes[1], sizes[2], sizes[3], sizes[4], sizes[5], sizes[6]); const int* oldPointer = view_7d.data(); @@ -137,7 +139,7 @@ void impl_testResize() { EXPECT_TRUE(oldPointer == newPointer); } { - typedef Kokkos::View<int********, DeviceType> view_type; + using view_type = Kokkos::View<int********, DeviceType>; view_type view_8d("view_8d", sizes[0], sizes[1], sizes[2], sizes[3], sizes[4], sizes[5], sizes[6], sizes[7]); const int* oldPointer = view_8d.data(); @@ -147,9 +149,10 @@ void impl_testResize() { const int* newPointer = view_8d.data(); EXPECT_TRUE(oldPointer == newPointer); } +#endif // Resize without initialization: check if data preserved { - typedef Kokkos::View<int*, DeviceType> view_type; + using view_type = Kokkos::View<int*, DeviceType>; view_type view_1d("view_1d", sizes[0]); typename view_type::HostMirror h_view_1d_old = Kokkos::create_mirror(view_1d); @@ -169,8 +172,10 @@ void impl_testResize() { } EXPECT_TRUE(test == true); } + // FIXME_SYCL requires MDRangePolicy +#ifndef KOKKOS_ENABLE_SYCL { - typedef Kokkos::View<int**, DeviceType> view_type; + using view_type = Kokkos::View<int**, DeviceType>; view_type view_2d("view_2d", sizes[0], sizes[1]); typename view_type::HostMirror h_view_2d_old = Kokkos::create_mirror(view_2d); @@ -193,7 +198,7 @@ void impl_testResize() { EXPECT_TRUE(test == true); } { - typedef Kokkos::View<int***, DeviceType> view_type; + using view_type = Kokkos::View<int***, DeviceType>; view_type view_3d("view_3d", sizes[0], sizes[1], sizes[2]); typename view_type::HostMirror h_view_3d_old = Kokkos::create_mirror(view_3d); @@ -218,7 +223,7 @@ void impl_testResize() { EXPECT_TRUE(test == true); } { - typedef Kokkos::View<int****, DeviceType> view_type; + using view_type = Kokkos::View<int****, DeviceType>; view_type view_4d("view_4d", sizes[0], sizes[1], sizes[2], sizes[3]); typename view_type::HostMirror h_view_4d_old = Kokkos::create_mirror(view_4d); @@ -245,7 +250,7 @@ void impl_testResize() { EXPECT_TRUE(test == true); } { - typedef Kokkos::View<int*****, DeviceType> view_type; + using view_type = Kokkos::View<int*****, DeviceType>; view_type view_5d("view_5d", sizes[0], sizes[1], sizes[2], sizes[3], sizes[4]); typename view_type::HostMirror h_view_5d_old = @@ -277,7 +282,7 @@ void impl_testResize() { EXPECT_TRUE(test == true); } { - typedef Kokkos::View<int******, DeviceType> view_type; + using view_type = Kokkos::View<int******, DeviceType>; view_type view_6d("view_6d", sizes[0], sizes[1], sizes[2], sizes[3], sizes[4], sizes[5]); typename view_type::HostMirror h_view_6d_old = @@ -311,7 +316,7 @@ void impl_testResize() { EXPECT_TRUE(test == true); } { - typedef Kokkos::View<int*******, DeviceType> view_type; + using view_type = Kokkos::View<int*******, DeviceType>; view_type view_7d("view_7d", sizes[0], sizes[1], sizes[2], sizes[3], sizes[4], sizes[5], sizes[6]); typename view_type::HostMirror h_view_7d_old = @@ -347,7 +352,7 @@ void impl_testResize() { EXPECT_TRUE(test == true); } { - typedef Kokkos::View<int********, DeviceType> view_type; + using view_type = Kokkos::View<int********, DeviceType>; view_type view_8d("view_8d", sizes[0], sizes[1], sizes[2], sizes[3], sizes[4], sizes[5], sizes[6], sizes[7]); typename view_type::HostMirror h_view_8d_old = @@ -384,6 +389,7 @@ void impl_testResize() { } EXPECT_TRUE(test == true); } +#endif } template <class DeviceType> diff --git a/packages/kokkos/core/unit_test/TestSYCL_Category.hpp b/packages/kokkos/core/unit_test/TestSYCL_Category.hpp new file mode 100644 index 000000000..cd4c0ed22 --- /dev/null +++ b/packages/kokkos/core/unit_test/TestSYCL_Category.hpp @@ -0,0 +1,53 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_TEST_SYCL_HPP +#define KOKKOS_TEST_SYCL_HPP + +#include <gtest/gtest.h> + +#define TEST_CATEGORY sycl +#define TEST_EXECSPACE Kokkos::Experimental::SYCL + +#endif diff --git a/packages/kokkos/core/unit_test/TestScan.hpp b/packages/kokkos/core/unit_test/TestScan.hpp index f7ebbb62a..138570f44 100644 --- a/packages/kokkos/core/unit_test/TestScan.hpp +++ b/packages/kokkos/core/unit_test/TestScan.hpp @@ -47,10 +47,10 @@ namespace Test { -template <class Device, class WorkSpec = size_t> +template <class Device> struct TestScan { - typedef Device execution_space; - typedef int64_t value_type; + using execution_space = Device; + using value_type = int64_t; Kokkos::View<int, Device, Kokkos::MemoryTraits<Kokkos::Atomic> > errors; @@ -75,9 +75,15 @@ struct TestScan { if (answer != update) { int fail = errors()++; + // FIXME_SYCL +#ifndef KOKKOS_ENABLE_SYCL if (fail < 20) { - printf("TestScan(%d,%ld) != %ld\n", iwork, update, answer); + printf("TestScan(%d,%ld) != %ld\n", iwork, static_cast<long>(update), + static_cast<long>(answer)); } +#else + (void)fail; +#endif } } } @@ -91,14 +97,14 @@ struct TestScan { update += input; } - TestScan(const WorkSpec& N) { + TestScan(const size_t N) { Kokkos::View<int, Device> errors_a("Errors"); Kokkos::deep_copy(errors_a, 0); errors = errors_a; Kokkos::parallel_scan(N, *this); - int64_t total = 0; + value_type total = 0; Kokkos::parallel_scan(N, *this, total); // We can't return a value in a constructor so use a lambda as wrapper to @@ -107,8 +113,8 @@ struct TestScan { check_error(); } - TestScan(const WorkSpec& Start, const WorkSpec& N) { - typedef Kokkos::RangePolicy<execution_space> exec_policy; + TestScan(const size_t Start, const size_t N) { + using exec_policy = Kokkos::RangePolicy<execution_space>; Kokkos::View<int, Device> errors_a("Errors"); Kokkos::deep_copy(errors_a, 0); @@ -126,8 +132,8 @@ struct TestScan { ASSERT_EQ(total_errors, 0); } - static void test_range(const WorkSpec& begin, const WorkSpec& end) { - for (WorkSpec i = begin; i < end; ++i) { + static void test_range(const size_t begin, const size_t end) { + for (auto i = begin; i < end; ++i) { (void)TestScan(i); } } @@ -140,20 +146,4 @@ TEST(TEST_CATEGORY, scan) { TestScan<TEST_EXECSPACE>(10000000); TEST_EXECSPACE().fence(); } - -/*TEST( TEST_CATEGORY, scan_small ) -{ - typedef TestScan< TEST_EXECSPACE, Kokkos::Impl::ThreadsExecUseScanSmall > -TestScanFunctor; - - for ( int i = 0; i < 1000; ++i ) { - TestScanFunctor( 10 ); - TestScanFunctor( 10000 ); - } - TestScanFunctor( 1000000 ); - TestScanFunctor( 10000000 ); - - TEST_EXECSPACE().fence(); -}*/ - } // namespace Test diff --git a/packages/kokkos/core/unit_test/TestSerial_Category.hpp b/packages/kokkos/core/unit_test/TestSerial_Category.hpp new file mode 100644 index 000000000..b2e0f96f4 --- /dev/null +++ b/packages/kokkos/core/unit_test/TestSerial_Category.hpp @@ -0,0 +1,56 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_TEST_SERIAL_HPP +#define KOKKOS_TEST_SERIAL_HPP + +#include <gtest/gtest.h> + +#define TEST_CATEGORY serial +#define TEST_CATEGORY_NUMBER 0 +#define TEST_CATEGORY_DEATH serial_DeathTest +#define TEST_EXECSPACE Kokkos::Serial +#define TEST_CATEGORY_FIXTURE(name) serial_##name + +#endif diff --git a/packages/kokkos/core/unit_test/TestSharedAlloc.hpp b/packages/kokkos/core/unit_test/TestSharedAlloc.hpp index 1b67e29d7..bb00a9582 100644 --- a/packages/kokkos/core/unit_test/TestSharedAlloc.hpp +++ b/packages/kokkos/core/unit_test/TestSharedAlloc.hpp @@ -66,12 +66,12 @@ struct SharedAllocDestroy { template <class MemorySpace, class ExecutionSpace> void test_shared_alloc() { #if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) - typedef const Kokkos::Impl::SharedAllocationHeader Header; - typedef Kokkos::Impl::SharedAllocationTracker Tracker; - typedef Kokkos::Impl::SharedAllocationRecord<void, void> RecordBase; - typedef Kokkos::Impl::SharedAllocationRecord<MemorySpace, void> RecordMemS; - typedef Kokkos::Impl::SharedAllocationRecord<MemorySpace, SharedAllocDestroy> - RecordFull; + using Header = const Kokkos::Impl::SharedAllocationHeader; + using Tracker = Kokkos::Impl::SharedAllocationTracker; + using RecordBase = Kokkos::Impl::SharedAllocationRecord<void, void>; + using RecordMemS = Kokkos::Impl::SharedAllocationRecord<MemorySpace, void>; + using RecordFull = + Kokkos::Impl::SharedAllocationRecord<MemorySpace, SharedAllocDestroy>; static_assert(sizeof(Tracker) == sizeof(int*), "SharedAllocationTracker has wrong size!"); @@ -108,7 +108,7 @@ void test_shared_alloc() { Kokkos::fence(); -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG // Sanity check for the whole set of allocation records to which this record // belongs. RecordBase::is_sane(r[0]); @@ -118,7 +118,7 @@ void test_shared_alloc() { Kokkos::parallel_for(range, [=](size_t i) { while (nullptr != (r[i] = static_cast<RecordMemS*>(RecordBase::decrement(r[i])))) { -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG if (r[i]->use_count() == 1) RecordBase::is_sane(r[i]); #endif } @@ -152,14 +152,14 @@ void test_shared_alloc() { Kokkos::fence(); -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG RecordBase::is_sane(r[0]); #endif Kokkos::parallel_for(range, [=](size_t i) { while (nullptr != (r[i] = static_cast<RecordMemS*>(RecordBase::decrement(r[i])))) { -#ifdef KOKKOS_DEBUG +#ifdef KOKKOS_ENABLE_DEBUG if (r[i]->use_count() == 1) RecordBase::is_sane(r[i]); #endif } @@ -227,4 +227,22 @@ void test_shared_alloc() { #endif /* #if defined( KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST ) */ } +TEST(TEST_CATEGORY, impl_shared_alloc) { +#ifdef TEST_CATEGORY_NUMBER +#if (TEST_CATEGORY_NUMBER < 4) // serial threads openmp hpx + test_shared_alloc<Kokkos::HostSpace, TEST_EXECSPACE>(); +#elif (TEST_CATEGORY_NUMBER == 4) // openmptarget + test_shared_alloc<Kokkos::Experimental::OpenMPTargetSpace, + Kokkos::DefaultHostExecutionSpace>(); +#elif (TEST_CATEGORY_NUMBER == 5) // cuda + test_shared_alloc<Kokkos::CudaSpace, Kokkos::DefaultHostExecutionSpace>(); +#elif (TEST_CATEGORY_NUMBER == 6) // hip + test_shared_alloc<Kokkos::Experimental::HIPSpace, + Kokkos::DefaultHostExecutionSpace>(); +#endif +#else + test_shared_alloc<TEST_EXECSPACE, Kokkos::DefaultHostExecutionSpace>(); +#endif +} + } // namespace Test diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_SubView_a.cpp b/packages/kokkos/core/unit_test/TestSubView_a.hpp similarity index 97% rename from packages/kokkos/core/unit_test/hip/TestHIP_SubView_a.cpp rename to packages/kokkos/core/unit_test/TestSubView_a.hpp index df7b474af..ecfc96f82 100644 --- a/packages/kokkos/core/unit_test/hip/TestHIP_SubView_a.cpp +++ b/packages/kokkos/core/unit_test/TestSubView_a.hpp @@ -42,11 +42,13 @@ //@HEADER */ -#include <hip/TestHIP_Category.hpp> +#ifndef KOKKOS_TEST_SUBVIEW_A_HPP +#define KOKKOS_TEST_SUBVIEW_A_HPP #include <TestViewSubview.hpp> namespace Test { +#ifndef KOKKOS_ENABLE_SYCL TEST(TEST_CATEGORY, view_subview_auto_1d_left) { TestViewSubview::test_auto_1d<Kokkos::LayoutLeft, TEST_EXECSPACE>(); } @@ -58,6 +60,7 @@ TEST(TEST_CATEGORY, view_subview_auto_1d_right) { TEST(TEST_CATEGORY, view_subview_auto_1d_stride) { TestViewSubview::test_auto_1d<Kokkos::LayoutStride, TEST_EXECSPACE>(); } +#endif TEST(TEST_CATEGORY, view_subview_assign_strided) { TestViewSubview::test_1d_strided_assignment<TEST_EXECSPACE>(); @@ -100,3 +103,4 @@ TEST(TEST_CATEGORY, view_static_tests) { } } // namespace Test +#endif diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_SubView_b.cpp b/packages/kokkos/core/unit_test/TestSubView_b.hpp similarity index 97% rename from packages/kokkos/core/unit_test/hip/TestHIP_SubView_b.cpp rename to packages/kokkos/core/unit_test/TestSubView_b.hpp index 5fdaefcf2..d83b7c832 100644 --- a/packages/kokkos/core/unit_test/hip/TestHIP_SubView_b.cpp +++ b/packages/kokkos/core/unit_test/TestSubView_b.hpp @@ -42,7 +42,8 @@ //@HEADER */ -#include <hip/TestHIP_Category.hpp> +#ifndef KOKKOS_TEST_SUBVIEW_B_HPP +#define KOKKOS_TEST_SUBVIEW_B_HPP #include <TestViewSubview.hpp> namespace Test { @@ -64,3 +65,4 @@ TEST(TEST_CATEGORY, view_subview_layoutright_to_layoutright) { } } // namespace Test +#endif diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_SubView_c01.cpp b/packages/kokkos/core/unit_test/TestSubView_c01.hpp similarity index 96% rename from packages/kokkos/core/unit_test/hip/TestHIP_SubView_c01.cpp rename to packages/kokkos/core/unit_test/TestSubView_c01.hpp index 79bb42bc5..03e19768d 100644 --- a/packages/kokkos/core/unit_test/hip/TestHIP_SubView_c01.cpp +++ b/packages/kokkos/core/unit_test/TestSubView_c01.hpp @@ -42,7 +42,8 @@ //@HEADER */ -#include <hip/TestHIPHostPinned_Category.hpp> +#ifndef KOKKOS_TEST_SUBVIEW_C01_HPP +#define KOKKOS_TEST_SUBVIEW_C01_HPP #include <TestViewSubview.hpp> namespace Test { @@ -52,3 +53,4 @@ TEST(TEST_CATEGORY, view_subview_1d_assign) { } } // namespace Test +#endif diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_SubView_c02.cpp b/packages/kokkos/core/unit_test/TestSubView_c02.hpp similarity index 96% rename from packages/kokkos/core/unit_test/hip/TestHIP_SubView_c02.cpp rename to packages/kokkos/core/unit_test/TestSubView_c02.hpp index c38dee484..9fba8dbfd 100644 --- a/packages/kokkos/core/unit_test/hip/TestHIP_SubView_c02.cpp +++ b/packages/kokkos/core/unit_test/TestSubView_c02.hpp @@ -42,7 +42,8 @@ //@HEADER */ -#include <hip/TestHIPHostPinned_Category.hpp> +#ifndef KOKKOS_TEST_SUBVIEW_C02_HPP +#define KOKKOS_TEST_SUBVIEW_C02_HPP #include <TestViewSubview.hpp> namespace Test { @@ -53,3 +54,4 @@ TEST(TEST_CATEGORY, view_subview_1d_assign_atomic) { } } // namespace Test +#endif diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c03.cpp b/packages/kokkos/core/unit_test/TestSubView_c03.hpp similarity index 96% rename from packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c03.cpp rename to packages/kokkos/core/unit_test/TestSubView_c03.hpp index 79235f96a..04391b892 100644 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c03.cpp +++ b/packages/kokkos/core/unit_test/TestSubView_c03.hpp @@ -42,7 +42,8 @@ //@HEADER */ -#include <cuda/TestCudaUVM_Category.hpp> +#ifndef KOKKOS_TEST_SUBVIEW_C03_HPP +#define KOKKOS_TEST_SUBVIEW_C03_HPP #include <TestViewSubview.hpp> namespace Test { @@ -53,3 +54,4 @@ TEST(TEST_CATEGORY, view_subview_1d_assign_randomaccess) { } } // namespace Test +#endif diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_SubView_c04.cpp b/packages/kokkos/core/unit_test/TestSubView_c04.hpp similarity index 96% rename from packages/kokkos/core/unit_test/hip/TestHIP_SubView_c04.cpp rename to packages/kokkos/core/unit_test/TestSubView_c04.hpp index 3a0cafdbe..64d5d4b40 100644 --- a/packages/kokkos/core/unit_test/hip/TestHIP_SubView_c04.cpp +++ b/packages/kokkos/core/unit_test/TestSubView_c04.hpp @@ -42,7 +42,8 @@ //@HEADER */ -#include <hip/TestHIPHostPinned_Category.hpp> +#ifndef KOKKOS_TEST_SUBVIEW_C04_HPP +#define KOKKOS_TEST_SUBVIEW_C04_HPP #include <TestViewSubview.hpp> namespace Test { @@ -52,3 +53,4 @@ TEST(TEST_CATEGORY, view_subview_2d_from_3d) { } } // namespace Test +#endif diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c05.cpp b/packages/kokkos/core/unit_test/TestSubView_c05.hpp similarity index 96% rename from packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c05.cpp rename to packages/kokkos/core/unit_test/TestSubView_c05.hpp index 2ae07aa17..ffc07800d 100644 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c05.cpp +++ b/packages/kokkos/core/unit_test/TestSubView_c05.hpp @@ -42,7 +42,8 @@ //@HEADER */ -#include <cuda/TestCudaUVM_Category.hpp> +#ifndef KOKKOS_TEST_SUBVIEW_C05_HPP +#define KOKKOS_TEST_SUBVIEW_C05_HPP #include <TestViewSubview.hpp> namespace Test { @@ -53,3 +54,4 @@ TEST(TEST_CATEGORY, view_subview_2d_from_3d_atomic) { } } // namespace Test +#endif diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_SubView_c06.cpp b/packages/kokkos/core/unit_test/TestSubView_c06.hpp similarity index 96% rename from packages/kokkos/core/unit_test/hip/TestHIP_SubView_c06.cpp rename to packages/kokkos/core/unit_test/TestSubView_c06.hpp index f0ac19f2c..f7f066f10 100644 --- a/packages/kokkos/core/unit_test/hip/TestHIP_SubView_c06.cpp +++ b/packages/kokkos/core/unit_test/TestSubView_c06.hpp @@ -42,7 +42,8 @@ //@HEADER */ -#include <hip/TestHIPHostPinned_Category.hpp> +#ifndef KOKKOS_TEST_SUBVIEW_C06_HPP +#define KOKKOS_TEST_SUBVIEW_C06_HPP #include <TestViewSubview.hpp> namespace Test { @@ -53,3 +54,4 @@ TEST(TEST_CATEGORY, view_subview_2d_from_3d_randomaccess) { } } // namespace Test +#endif diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_SubView_c07.cpp b/packages/kokkos/core/unit_test/TestSubView_c07.hpp similarity index 96% rename from packages/kokkos/core/unit_test/hip/TestHIP_SubView_c07.cpp rename to packages/kokkos/core/unit_test/TestSubView_c07.hpp index b9743ab0a..87b502282 100644 --- a/packages/kokkos/core/unit_test/hip/TestHIP_SubView_c07.cpp +++ b/packages/kokkos/core/unit_test/TestSubView_c07.hpp @@ -42,7 +42,8 @@ //@HEADER */ -#include <hip/TestHIPHostPinned_Category.hpp> +#ifndef KOKKOS_TEST_SUBVIEW_C07_HPP +#define KOKKOS_TEST_SUBVIEW_C07_HPP #include <TestViewSubview.hpp> namespace Test { @@ -52,3 +53,4 @@ TEST(TEST_CATEGORY, view_subview_3d_from_5d_left) { } } // namespace Test +#endif diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c08.cpp b/packages/kokkos/core/unit_test/TestSubView_c08.hpp similarity index 96% rename from packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c08.cpp rename to packages/kokkos/core/unit_test/TestSubView_c08.hpp index 37a5cc0af..d18d4c1b7 100644 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c08.cpp +++ b/packages/kokkos/core/unit_test/TestSubView_c08.hpp @@ -42,7 +42,8 @@ //@HEADER */ -#include <cuda/TestCudaUVM_Category.hpp> +#ifndef KOKKOS_TEST_SUBVIEW_C08_HPP +#define KOKKOS_TEST_SUBVIEW_C08_HPP #include <TestViewSubview.hpp> namespace Test { @@ -53,3 +54,4 @@ TEST(TEST_CATEGORY, view_subview_3d_from_5d_left_atomic) { } } // namespace Test +#endif diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_SubView_c09.cpp b/packages/kokkos/core/unit_test/TestSubView_c09.hpp similarity index 96% rename from packages/kokkos/core/unit_test/hip/TestHIP_SubView_c09.cpp rename to packages/kokkos/core/unit_test/TestSubView_c09.hpp index 2e63849f3..8f7ece4d2 100644 --- a/packages/kokkos/core/unit_test/hip/TestHIP_SubView_c09.cpp +++ b/packages/kokkos/core/unit_test/TestSubView_c09.hpp @@ -42,7 +42,8 @@ //@HEADER */ -#include <hip/TestHIPHostPinned_Category.hpp> +#ifndef KOKKOS_TEST_SUBVIEW_C09_HPP +#define KOKKOS_TEST_SUBVIEW_C09_HPP #include <TestViewSubview.hpp> namespace Test { @@ -53,3 +54,4 @@ TEST(TEST_CATEGORY, view_subview_3d_from_5d_left_randomaccess) { } } // namespace Test +#endif diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c10.cpp b/packages/kokkos/core/unit_test/TestSubView_c10.hpp similarity index 96% rename from packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c10.cpp rename to packages/kokkos/core/unit_test/TestSubView_c10.hpp index 705899567..0a0358b56 100644 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c10.cpp +++ b/packages/kokkos/core/unit_test/TestSubView_c10.hpp @@ -42,7 +42,8 @@ //@HEADER */ -#include <cuda/TestCudaUVM_Category.hpp> +#ifndef KOKKOS_TEST_SUBVIEW_C10_HPP +#define KOKKOS_TEST_SUBVIEW_C10_HPP #include <TestViewSubview.hpp> namespace Test { @@ -52,3 +53,4 @@ TEST(TEST_CATEGORY, view_subview_3d_from_5d_right) { } } // namespace Test +#endif diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c11.cpp b/packages/kokkos/core/unit_test/TestSubView_c11.hpp similarity index 96% rename from packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c11.cpp rename to packages/kokkos/core/unit_test/TestSubView_c11.hpp index 429564d91..bb0b34a64 100644 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c11.cpp +++ b/packages/kokkos/core/unit_test/TestSubView_c11.hpp @@ -42,7 +42,8 @@ //@HEADER */ -#include <hpx/TestHPX_Category.hpp> +#ifndef KOKKOS_TEST_SUBVIEW_C11_HPP +#define KOKKOS_TEST_SUBVIEW_C11_HPP #include <TestViewSubview.hpp> namespace Test { @@ -53,3 +54,4 @@ TEST(TEST_CATEGORY, view_subview_3d_from_5d_right_atomic) { } } // namespace Test +#endif diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_SubView_c12.cpp b/packages/kokkos/core/unit_test/TestSubView_c12.hpp similarity index 96% rename from packages/kokkos/core/unit_test/hip/TestHIP_SubView_c12.cpp rename to packages/kokkos/core/unit_test/TestSubView_c12.hpp index 4e943c68f..b3af60677 100644 --- a/packages/kokkos/core/unit_test/hip/TestHIP_SubView_c12.cpp +++ b/packages/kokkos/core/unit_test/TestSubView_c12.hpp @@ -42,7 +42,8 @@ //@HEADER */ -#include <hip/TestHIPHostPinned_Category.hpp> +#ifndef KOKKOS_TEST_SUBVIEW_C12_HPP +#define KOKKOS_TEST_SUBVIEW_C12_HPP #include <TestViewSubview.hpp> namespace Test { @@ -53,3 +54,4 @@ TEST(TEST_CATEGORY, view_subview_3d_from_5d_right_randomaccess) { } } // namespace Test +#endif diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c13.cpp b/packages/kokkos/core/unit_test/TestSubView_c13.hpp similarity index 96% rename from packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c13.cpp rename to packages/kokkos/core/unit_test/TestSubView_c13.hpp index 3de6595f3..05c476736 100644 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c13.cpp +++ b/packages/kokkos/core/unit_test/TestSubView_c13.hpp @@ -42,7 +42,8 @@ //@HEADER */ -#include <cuda/TestCudaUVM_Category.hpp> +#ifndef KOKKOS_TEST_SUBVIEW_C13_HPP +#define KOKKOS_TEST_SUBVIEW_C13_HPP #include <TestViewSubview.hpp> namespace Test { @@ -52,3 +53,4 @@ TEST(TEST_CATEGORY, view_test_unmanaged_subview_reset) { } } // namespace Test +#endif diff --git a/packages/kokkos/core/unit_test/TestTaskScheduler.hpp b/packages/kokkos/core/unit_test/TestTaskScheduler.hpp index ebfdcf1df..6b9cd2c90 100644 --- a/packages/kokkos/core/unit_test/TestTaskScheduler.hpp +++ b/packages/kokkos/core/unit_test/TestTaskScheduler.hpp @@ -136,7 +136,7 @@ struct TestFib { } static void run(int i, size_t MemoryCapacity = 16000) { - typedef typename sched_type::memory_space memory_space; + using memory_space = typename sched_type::memory_space; enum { MinBlockSize = 64 }; enum { MaxBlockSize = 1024 }; @@ -185,10 +185,10 @@ namespace TestTaskScheduler { template <class Scheduler> struct TestTaskDependence { - typedef Scheduler sched_type; - typedef Kokkos::BasicFuture<void, Scheduler> future_type; - typedef Kokkos::View<long, typename sched_type::execution_space> accum_type; - typedef void value_type; + using sched_type = Scheduler; + using future_type = Kokkos::BasicFuture<void, Scheduler>; + using accum_type = Kokkos::View<long, typename sched_type::execution_space>; + using value_type = void; accum_type m_accum; long m_count; @@ -224,7 +224,7 @@ struct TestTaskDependence { } static void run(int n) { - typedef typename sched_type::memory_space memory_space; + using memory_space = typename sched_type::memory_space; enum { MemoryCapacity = 16000 }; enum { MinBlockSize = 64 }; @@ -264,11 +264,11 @@ struct TestTaskTeam { enum { SPAN = 33 }; // enum { SPAN = 1 }; - typedef void value_type; + using value_type = void; using sched_type = Scheduler; using future_type = Kokkos::BasicFuture<void, sched_type>; using ExecSpace = typename sched_type::execution_space; - typedef Kokkos::View<long*, ExecSpace> view_type; + using view_type = Kokkos::View<long*, ExecSpace>; future_type future; @@ -304,7 +304,7 @@ struct TestTaskTeam { TestTaskTeam(parfor_result, parreduce_check, parscan_result, parscan_check, begin - 1)); -#if !defined(__HCC_ACCELERATOR__) && !defined(__CUDA_ARCH__) +#if !defined(__HIP_DEVICE_COMPILE__) && !defined(__CUDA_ARCH__) assert(!future.is_null()); #endif @@ -480,11 +480,11 @@ template <class Scheduler> struct TestTaskTeamValue { enum { SPAN = 8 }; - typedef long value_type; + using value_type = long; using sched_type = Scheduler; using future_type = Kokkos::BasicFuture<value_type, sched_type>; using ExecSpace = typename sched_type::execution_space; - typedef Kokkos::View<long*, ExecSpace> view_type; + using view_type = Kokkos::View<long*, ExecSpace>; future_type future; @@ -508,7 +508,7 @@ struct TestTaskTeamValue { future = sched.task_spawn(TestTaskTeamValue(result, begin - 1), Kokkos::TaskTeam); -#if !defined(__HCC_ACCELERATOR__) && !defined(__CUDA_ARCH__) +#if !defined(__HIP_DEVICE_COMPILE__) && !defined(__CUDA_ARCH__) assert(!future.is_null()); #endif @@ -576,8 +576,8 @@ template <class Scheduler> struct TestTaskSpawnWithPool { using sched_type = Scheduler; using future_type = Kokkos::BasicFuture<void, sched_type>; - typedef void value_type; - using Space = typename sched_type::execution_space; + using value_type = void; + using Space = typename sched_type::execution_space; int m_count; Kokkos::MemoryPool<Space> m_pool; @@ -596,7 +596,7 @@ struct TestTaskSpawnWithPool { } static void run() { - typedef typename sched_type::memory_space memory_space; + using memory_space = typename sched_type::memory_space; enum { MemoryCapacity = 16000 }; enum { MinBlockSize = 64 }; @@ -793,7 +793,7 @@ struct TestMultipleDependence { } static void run(int depth) { - typedef typename sched_type::memory_space memory_space; + using memory_space = typename sched_type::memory_space; enum { MemoryCapacity = 1 << 30 }; enum { MinBlockSize = 64 }; diff --git a/packages/kokkos/core/unit_test/TestTeam.hpp b/packages/kokkos/core/unit_test/TestTeam.hpp index d1ee00396..628def9be 100644 --- a/packages/kokkos/core/unit_test/TestTeam.hpp +++ b/packages/kokkos/core/unit_test/TestTeam.hpp @@ -55,14 +55,14 @@ namespace { template <class ExecSpace, class ScheduleType> struct TestTeamPolicy { - typedef typename Kokkos::TeamPolicy<ScheduleType, ExecSpace>::member_type - team_member; - typedef Kokkos::View<int **, ExecSpace> view_type; + using team_member = + typename Kokkos::TeamPolicy<ScheduleType, ExecSpace>::member_type; + using view_type = Kokkos::View<int **, ExecSpace>; view_type m_flags; TestTeamPolicy(const size_t league_size) - : m_flags(Kokkos::ViewAllocateWithoutInitializing("flags"), + : m_flags(Kokkos::view_alloc(Kokkos::WithoutInitializing, "flags"), Kokkos::TeamPolicy<ScheduleType, ExecSpace>(1, 1).team_size_max( *this, Kokkos::ParallelReduceTag()), league_size) {} @@ -118,11 +118,23 @@ struct TestTeamPolicy { TestTeamPolicy()); } + static void test_constructors() { + constexpr const int smallest_work = 1; + Kokkos::TeamPolicy<ExecSpace, NoOpTag> none_auto( + smallest_work, smallest_work, smallest_work); + Kokkos::TeamPolicy<ExecSpace, NoOpTag> both_auto( + smallest_work, Kokkos::AUTO(), Kokkos::AUTO()); + Kokkos::TeamPolicy<ExecSpace, NoOpTag> auto_vector( + smallest_work, smallest_work, Kokkos::AUTO()); + Kokkos::TeamPolicy<ExecSpace, NoOpTag> auto_team( + smallest_work, Kokkos::AUTO(), smallest_work); + } + static void test_for(const size_t league_size) { TestTeamPolicy functor(league_size); - typedef Kokkos::TeamPolicy<ScheduleType, ExecSpace> policy_type; - typedef Kokkos::TeamPolicy<ScheduleType, ExecSpace, VerifyInitTag> - policy_type_init; + using policy_type = Kokkos::TeamPolicy<ScheduleType, ExecSpace>; + using policy_type_init = + Kokkos::TeamPolicy<ScheduleType, ExecSpace, VerifyInitTag>; const int team_size = policy_type(league_size, 1) .team_size_max(functor, Kokkos::ParallelForTag()); @@ -135,11 +147,12 @@ struct TestTeamPolicy { functor); test_small_league_size(); + test_constructors(); } struct ReduceTag {}; - typedef int64_t value_type; + using value_type = int64_t; KOKKOS_INLINE_FUNCTION void operator()(const team_member &member, value_type &update) const { @@ -156,9 +169,9 @@ struct TestTeamPolicy { static void test_reduce(const size_t league_size) { TestTeamPolicy functor(league_size); - typedef Kokkos::TeamPolicy<ScheduleType, ExecSpace> policy_type; - typedef Kokkos::TeamPolicy<ScheduleType, ExecSpace, ReduceTag> - policy_type_reduce; + using policy_type = Kokkos::TeamPolicy<ScheduleType, ExecSpace>; + using policy_type_reduce = + Kokkos::TeamPolicy<ScheduleType, ExecSpace, ReduceTag>; const int team_size = policy_type_reduce(league_size, 1) @@ -189,9 +202,9 @@ namespace Test { template <typename ScalarType, class DeviceType, class ScheduleType> class ReduceTeamFunctor { public: - typedef DeviceType execution_space; - typedef Kokkos::TeamPolicy<ScheduleType, execution_space> policy_type; - typedef typename execution_space::size_type size_type; + using execution_space = DeviceType; + using policy_type = Kokkos::TeamPolicy<ScheduleType, execution_space>; + using size_type = typename execution_space::size_type; struct value_type { ScalarType value[3]; @@ -245,18 +258,18 @@ namespace { template <typename ScalarType, class DeviceType, class ScheduleType> class TestReduceTeam { public: - typedef DeviceType execution_space; - typedef Kokkos::TeamPolicy<ScheduleType, execution_space> policy_type; - typedef typename execution_space::size_type size_type; + using execution_space = DeviceType; + using policy_type = Kokkos::TeamPolicy<ScheduleType, execution_space>; + using size_type = typename execution_space::size_type; TestReduceTeam(const size_type &nwork) { run_test(nwork); } void run_test(const size_type &nwork) { - typedef Test::ReduceTeamFunctor<ScalarType, execution_space, ScheduleType> - functor_type; - typedef typename functor_type::value_type value_type; - typedef Kokkos::View<value_type, Kokkos::HostSpace, Kokkos::MemoryUnmanaged> - result_type; + using functor_type = + Test::ReduceTeamFunctor<ScalarType, execution_space, ScheduleType>; + using value_type = typename functor_type::value_type; + using result_type = + Kokkos::View<value_type, Kokkos::HostSpace, Kokkos::MemoryUnmanaged>; enum { Count = 3 }; enum { Repeat = 100 }; @@ -299,9 +312,9 @@ namespace Test { template <class DeviceType, class ScheduleType> class ScanTeamFunctor { public: - typedef DeviceType execution_space; - typedef Kokkos::TeamPolicy<ScheduleType, execution_space> policy_type; - typedef int64_t value_type; + using execution_space = DeviceType; + using policy_type = Kokkos::TeamPolicy<ScheduleType, execution_space>; + using value_type = int64_t; Kokkos::View<value_type, execution_space> accum; Kokkos::View<value_type, execution_space> total; @@ -318,7 +331,7 @@ class ScanTeamFunctor { } struct JoinMax { - typedef int64_t value_type; + using value_type = int64_t; KOKKOS_INLINE_FUNCTION void join(value_type volatile &dst, @@ -341,11 +354,14 @@ class ScanTeamFunctor { if (m != ind.league_rank() + (ind.team_size() - 1)) { printf( - "ScanTeamFunctor[%d.%d of %d.%d] reduce_max_answer(%ld) != " - "reduce_max(%ld)\n", - ind.league_rank(), ind.team_rank(), ind.league_size(), - ind.team_size(), (int64_t)(ind.league_rank() + (ind.team_size() - 1)), - m); + "ScanTeamFunctor[%i.%i of %i.%i] reduce_max_answer(%li) != " + "reduce_max(%li)\n", + static_cast<int>(ind.league_rank()), + static_cast<int>(ind.team_rank()), + static_cast<int>(ind.league_size()), + static_cast<int>(ind.team_size()), + static_cast<long>(ind.league_rank() + (ind.team_size() - 1)), + static_cast<long>(m)); } // Scan: @@ -360,10 +376,13 @@ class ScanTeamFunctor { if (answer != result || answer != result2) { printf( - "ScanTeamFunctor[%d.%d of %d.%d] answer(%ld) != scan_first(%ld) or " - "scan_second(%ld)\n", - ind.league_rank(), ind.team_rank(), ind.league_size(), - ind.team_size(), answer, result, result2); + "ScanTeamFunctor[%i.%i of %i.%i] answer(%li) != scan_first(%li) or " + "scan_second(%li)\n", + static_cast<int>(ind.league_rank()), + static_cast<int>(ind.team_rank()), + static_cast<int>(ind.league_size()), + static_cast<int>(ind.team_size()), static_cast<long>(answer), + static_cast<long>(result), static_cast<long>(result2)); error = 1; } @@ -377,16 +396,16 @@ class ScanTeamFunctor { template <class DeviceType, class ScheduleType> class TestScanTeam { public: - typedef DeviceType execution_space; - typedef int64_t value_type; - typedef Kokkos::TeamPolicy<ScheduleType, execution_space> policy_type; - typedef Test::ScanTeamFunctor<DeviceType, ScheduleType> functor_type; + using execution_space = DeviceType; + using value_type = int64_t; + using policy_type = Kokkos::TeamPolicy<ScheduleType, execution_space>; + using functor_type = Test::ScanTeamFunctor<DeviceType, ScheduleType>; TestScanTeam(const size_t nteam) { run_test(nteam); } void run_test(const size_t nteam) { - typedef Kokkos::View<int64_t, Kokkos::HostSpace, Kokkos::MemoryUnmanaged> - result_type; + using result_type = + Kokkos::View<int64_t, Kokkos::HostSpace, Kokkos::MemoryUnmanaged>; const unsigned REPEAT = 100000; unsigned Repeat; @@ -431,17 +450,17 @@ namespace Test { template <class ExecSpace, class ScheduleType> struct SharedTeamFunctor { - typedef ExecSpace execution_space; - typedef int value_type; - typedef Kokkos::TeamPolicy<ScheduleType, execution_space> policy_type; + using execution_space = ExecSpace; + using value_type = int; + using policy_type = Kokkos::TeamPolicy<ScheduleType, execution_space>; enum { SHARED_COUNT = 1000 }; - typedef typename ExecSpace::scratch_memory_space shmem_space; + using shmem_space = typename ExecSpace::scratch_memory_space; // TBD: MemoryUnmanaged should be the default for shared memory space. - typedef Kokkos::View<int *, shmem_space, Kokkos::MemoryUnmanaged> - shared_int_array_type; + using shared_int_array_type = + Kokkos::View<int *, shmem_space, Kokkos::MemoryUnmanaged>; // Tell how much shared memory will be required by this functor. inline unsigned team_shmem_size(int /*team_size*/) const { @@ -458,10 +477,12 @@ struct SharedTeamFunctor { if ((shared_A.data() == nullptr && SHARED_COUNT > 0) || (shared_B.data() == nullptr && SHARED_COUNT > 0)) { printf( - "member( %d/%d , %d/%d ) Failed to allocate shared memory of size " + "member( %i/%i , %i/%i ) Failed to allocate shared memory of size " "%lu\n", - ind.league_rank(), ind.league_size(), ind.team_rank(), - ind.team_size(), static_cast<uint64_t>(SHARED_COUNT)); + static_cast<int>(ind.league_rank()), + static_cast<int>(ind.league_size()), + static_cast<int>(ind.team_rank()), static_cast<int>(ind.team_size()), + static_cast<unsigned long>(SHARED_COUNT)); ++update; // Failure to allocate is an error. } else { @@ -496,10 +517,10 @@ struct TestSharedTeam { TestSharedTeam() { run(); } void run() { - typedef Test::SharedTeamFunctor<ExecSpace, ScheduleType> Functor; - typedef Kokkos::View<typename Functor::value_type, Kokkos::HostSpace, - Kokkos::MemoryUnmanaged> - result_type; + using Functor = Test::SharedTeamFunctor<ExecSpace, ScheduleType>; + using result_type = + Kokkos::View<typename Functor::value_type, Kokkos::HostSpace, + Kokkos::MemoryUnmanaged>; const size_t team_size = Kokkos::TeamPolicy<ScheduleType, ExecSpace>(8192, 1).team_size_max( @@ -527,18 +548,15 @@ struct TestLambdaSharedTeam { TestLambdaSharedTeam() { run(); } void run() { - typedef Test::SharedTeamFunctor<ExecSpace, ScheduleType> Functor; - // typedef Kokkos::View< typename Functor::value_type, Kokkos::HostSpace, - // Kokkos::MemoryUnmanaged > result_type; - typedef Kokkos::View<typename Functor::value_type, MemorySpace, - Kokkos::MemoryUnmanaged> - result_type; + using Functor = Test::SharedTeamFunctor<ExecSpace, ScheduleType>; + using result_type = Kokkos::View<typename Functor::value_type, MemorySpace, + Kokkos::MemoryUnmanaged>; - typedef typename ExecSpace::scratch_memory_space shmem_space; + using shmem_space = typename ExecSpace::scratch_memory_space; // TBD: MemoryUnmanaged should be the default for shared memory space. - typedef Kokkos::View<int *, shmem_space, Kokkos::MemoryUnmanaged> - shared_int_array_type; + using shared_int_array_type = + Kokkos::View<int *, shmem_space, Kokkos::MemoryUnmanaged>; const int SHARED_COUNT = 1000; int team_size = 1; @@ -566,7 +584,7 @@ struct TestLambdaSharedTeam { if ((shared_A.data() == nullptr && SHARED_COUNT > 0) || (shared_B.data() == nullptr && SHARED_COUNT > 0)) { printf("Failed to allocate shared memory of size %lu\n", - static_cast<uint64_t>(SHARED_COUNT)); + static_cast<unsigned long>(SHARED_COUNT)); ++update; // Failure to allocate is an error. } else { @@ -606,18 +624,18 @@ namespace Test { template <class ExecSpace, class ScheduleType> struct ScratchTeamFunctor { - typedef ExecSpace execution_space; - typedef int value_type; - typedef Kokkos::TeamPolicy<ScheduleType, execution_space> policy_type; + using execution_space = ExecSpace; + using value_type = int; + using policy_type = Kokkos::TeamPolicy<ScheduleType, execution_space>; enum { SHARED_TEAM_COUNT = 100 }; enum { SHARED_THREAD_COUNT = 10 }; - typedef typename ExecSpace::scratch_memory_space shmem_space; + using shmem_space = typename ExecSpace::scratch_memory_space; // TBD: MemoryUnmanaged should be the default for shared memory space. - typedef Kokkos::View<size_t *, shmem_space, Kokkos::MemoryUnmanaged> - shared_int_array_type; + using shared_int_array_type = + Kokkos::View<size_t *, shmem_space, Kokkos::MemoryUnmanaged>; KOKKOS_INLINE_FUNCTION void operator()(const typename policy_type::member_type &ind, @@ -633,7 +651,7 @@ struct ScratchTeamFunctor { (scratch_A.data() == nullptr && SHARED_TEAM_COUNT > 0) || (scratch_B.data() == nullptr && SHARED_THREAD_COUNT > 0)) { printf("Failed to allocate shared memory of size %lu\n", - static_cast<uint64_t>(SHARED_TEAM_COUNT)); + static_cast<unsigned long>(SHARED_TEAM_COUNT)); ++update; // Failure to allocate is an error. } else { @@ -684,11 +702,11 @@ struct TestScratchTeam { TestScratchTeam() { run(); } void run() { - typedef Test::ScratchTeamFunctor<ExecSpace, ScheduleType> Functor; - typedef Kokkos::View<typename Functor::value_type, Kokkos::HostSpace, - Kokkos::MemoryUnmanaged> - result_type; - typedef Kokkos::TeamPolicy<ScheduleType, ExecSpace> p_type; + using Functor = Test::ScratchTeamFunctor<ExecSpace, ScheduleType>; + using result_type = + Kokkos::View<typename Functor::value_type, Kokkos::HostSpace, + Kokkos::MemoryUnmanaged>; + using p_type = Kokkos::TeamPolicy<ScheduleType, ExecSpace>; typename Functor::value_type error_count = 0; @@ -842,8 +860,8 @@ struct TagFor {}; template <class ExecSpace, class ScheduleType> struct ClassNoShmemSizeFunction { - typedef typename Kokkos::TeamPolicy<ExecSpace, ScheduleType>::member_type - member_type; + using member_type = + typename Kokkos::TeamPolicy<ExecSpace, ScheduleType>::member_type; Kokkos::View<int, ExecSpace, Kokkos::MemoryTraits<Kokkos::Atomic> > errors; @@ -924,8 +942,8 @@ struct ClassNoShmemSizeFunction { template <class ExecSpace, class ScheduleType> struct ClassWithShmemSizeFunction { - typedef typename Kokkos::TeamPolicy<ExecSpace, ScheduleType>::member_type - member_type; + using member_type = + typename Kokkos::TeamPolicy<ExecSpace, ScheduleType>::member_type; Kokkos::View<int, ExecSpace, Kokkos::MemoryTraits<Kokkos::Atomic> > errors; @@ -1097,7 +1115,7 @@ struct TestShmemSize { TestShmemSize() { run(); } void run() { - typedef Kokkos::View<int64_t ***, ExecSpace> view_type; + using view_type = Kokkos::View<int64_t ***, ExecSpace>; size_t d1 = 5; size_t d2 = 6; @@ -1196,9 +1214,9 @@ struct TestTeamBroadcast< const value_type off) { TestTeamBroadcast functor(league_size, off); - typedef Kokkos::TeamPolicy<ScheduleType, ExecSpace> policy_type; - typedef Kokkos::TeamPolicy<ScheduleType, ExecSpace, BroadcastTag> - policy_type_f; + using policy_type = Kokkos::TeamPolicy<ScheduleType, ExecSpace>; + using policy_type_f = + Kokkos::TeamPolicy<ScheduleType, ExecSpace, BroadcastTag>; const int team_size = policy_type_f(league_size, 1) @@ -1320,11 +1338,12 @@ struct TestTeamBroadcast< template <class ScalarType> static inline typename std::enable_if<!std::is_integral<ScalarType>::value, void>::type - compare_test(ScalarType A, ScalarType B) { - if (std::is_same<ScalarType, double>::value) { - ASSERT_DOUBLE_EQ((double)A, (double)B); - } else if (std::is_same<ScalarType, float>::value) { - ASSERT_FLOAT_EQ((double)A, (double)B); + compare_test(ScalarType A, ScalarType B, double epsilon_factor) { + if (std::is_same<ScalarType, double>::value || + std::is_same<ScalarType, float>::value) { + ASSERT_NEAR((double)A, (double)B, + epsilon_factor * std::abs(A) * + std::numeric_limits<ScalarType>::epsilon()); } else { ASSERT_EQ(A, B); } @@ -1333,7 +1352,7 @@ struct TestTeamBroadcast< template <class ScalarType> static inline typename std::enable_if<std::is_integral<ScalarType>::value, void>::type - compare_test(ScalarType A, ScalarType B) { + compare_test(ScalarType A, ScalarType B, double) { ASSERT_EQ(A, B); } @@ -1341,9 +1360,9 @@ struct TestTeamBroadcast< const value_type off) { TestTeamBroadcast functor(league_size, off); - typedef Kokkos::TeamPolicy<ScheduleType, ExecSpace> policy_type; - typedef Kokkos::TeamPolicy<ScheduleType, ExecSpace, BroadcastTag> - policy_type_f; + using policy_type = Kokkos::TeamPolicy<ScheduleType, ExecSpace>; + using policy_type_f = + Kokkos::TeamPolicy<ScheduleType, ExecSpace, BroadcastTag>; const int team_size = policy_type_f(league_size, 1) @@ -1364,10 +1383,10 @@ struct TestTeamBroadcast< (value_type((i % team_size) * 3) + off) * (value_type)team_size; expected_result += val; } - compare_test(expected_result, - total); // printf("team_broadcast with value -- - // expected_result=%d, - // total=%d\n",expected_result, total); + // For comparison purposes treat the reduction as a random walk in the + // least significant digit, which gives a typical walk distance + // sqrt(league_size) Add 4x for larger sigma + compare_test(expected_result, total, 4.0 * std::sqrt(league_size)); // team_broadcast with function object total = 0; @@ -1381,10 +1400,10 @@ struct TestTeamBroadcast< (value_type)(2 * team_size); expected_result += val; } - compare_test(expected_result, - total); // printf("team_broadcast with function object -- - // expected_result=%d, - // total=%d\n",expected_result, total); + // For comparison purposes treat the reduction as a random walk in the + // least significant digit, which gives a typical walk distance + // sqrt(league_size) Add 4x for larger sigma + compare_test(expected_result, total, 4.0 * std::sqrt(league_size)); } }; @@ -1397,10 +1416,10 @@ struct TestScratchAlignment { test(true); test(false); } - typedef Kokkos::View<TestScalar *, typename ExecSpace::scratch_memory_space> - ScratchView; - typedef Kokkos::View<int *, typename ExecSpace::scratch_memory_space> - ScratchViewInt; + using ScratchView = + Kokkos::View<TestScalar *, typename ExecSpace::scratch_memory_space>; + using ScratchViewInt = + Kokkos::View<int *, typename ExecSpace::scratch_memory_space>; void test(bool allocate_small) { int shmem_size = ScratchView::shmem_size(11); if (allocate_small) shmem_size += ScratchViewInt::shmem_size(1); diff --git a/packages/kokkos/core/unit_test/TestTeamBasic.hpp b/packages/kokkos/core/unit_test/TestTeamBasic.hpp new file mode 100644 index 000000000..1700a7412 --- /dev/null +++ b/packages/kokkos/core/unit_test/TestTeamBasic.hpp @@ -0,0 +1,225 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_TEST_TEAM_BASIC_HPP +#define KOKKOS_TEST_TEAM_BASIC_HPP +#include <TestTeam.hpp> + +namespace Test { + +TEST(TEST_CATEGORY, team_for) { + TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >::test_for( + 0); + TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >::test_for( + 0); + + TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >::test_for( + 2); + TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >::test_for( + 2); + + TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >::test_for( + 1000); + TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >::test_for( + 1000); +} + +TEST(TEST_CATEGORY, team_reduce) { + TestTeamPolicy<TEST_EXECSPACE, + Kokkos::Schedule<Kokkos::Static> >::test_reduce(0); + TestTeamPolicy<TEST_EXECSPACE, + Kokkos::Schedule<Kokkos::Dynamic> >::test_reduce(0); + TestTeamPolicy<TEST_EXECSPACE, + Kokkos::Schedule<Kokkos::Static> >::test_reduce(2); + TestTeamPolicy<TEST_EXECSPACE, + Kokkos::Schedule<Kokkos::Dynamic> >::test_reduce(2); + TestTeamPolicy<TEST_EXECSPACE, + Kokkos::Schedule<Kokkos::Static> >::test_reduce(1000); + TestTeamPolicy<TEST_EXECSPACE, + Kokkos::Schedule<Kokkos::Dynamic> >::test_reduce(1000); +} + +TEST(TEST_CATEGORY, team_broadcast_long) { + // FIXME_OPENMPTARGET +#ifdef KOKKOS_ENABLE_OPENMPTARGET + if constexpr (!std::is_same<TEST_EXECSPACE, + Kokkos::Experimental::OpenMPTarget>::value) +#endif + { + TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, + long>::test_teambroadcast(0, 1); + TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, + long>::test_teambroadcast(0, 1); + + TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, + long>::test_teambroadcast(2, 1); + TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, + long>::test_teambroadcast(2, 1); + + TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, + long>::test_teambroadcast(16, 1); + TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, + long>::test_teambroadcast(16, 1); + + TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, + long>::test_teambroadcast(1000, 1); + TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, + long>::test_teambroadcast(1000, 1); + } +} + +TEST(TEST_CATEGORY, team_broadcast_char) { + // FIXME_OPENMPTARGET +#ifdef KOKKOS_ENABLE_OPENMPTARGET + if constexpr (!std::is_same<TEST_EXECSPACE, + Kokkos::Experimental::OpenMPTarget>::value) +#endif + { + TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, + unsigned char>::test_teambroadcast(0, 1); + TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, + unsigned char>::test_teambroadcast(0, 1); + + TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, + unsigned char>::test_teambroadcast(2, 1); + TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, + unsigned char>::test_teambroadcast(2, 1); + + TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, + unsigned char>::test_teambroadcast(16, 1); + TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, + unsigned char>::test_teambroadcast(16, 1); + + TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, + long>::test_teambroadcast(1000, 1); + TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, + long>::test_teambroadcast(1000, 1); + } +} + +TEST(TEST_CATEGORY, team_broadcast_float) { + // FIXME_OPENMPTARGET +#ifdef KOKKOS_ENABLE_OPENMPTARGET + if constexpr (!std::is_same<TEST_EXECSPACE, + Kokkos::Experimental::OpenMPTarget>::value) +#endif + { + TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, + float>::test_teambroadcast(0, 1.3); + TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, + float>::test_teambroadcast(0, 1.3); + + TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, + float>::test_teambroadcast(2, 1.3); + TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, + float>::test_teambroadcast(2, 1.3); + + TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, + float>::test_teambroadcast(16, 1.3); + TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, + float>::test_teambroadcast(16, 1.3); + + // FIXME_CUDA +#ifdef KOKKOS_ENABLE_CUDA + if (!std::is_same<TEST_EXECSPACE, Kokkos::Cuda>::value) +#endif + // FIXME_HIP +#ifdef KOKKOS_ENABLE_HIP + if (!std::is_same<TEST_EXECSPACE, Kokkos::Experimental::HIP>::value) +#endif + { + TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, + float>::test_teambroadcast(1000, 1.3); + TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, + float>::test_teambroadcast(1000, 1.3); + } + } +} + +TEST(TEST_CATEGORY, team_broadcast_double) { + // FIXME_OPENMPTARGET +#ifdef KOKKOS_ENABLE_OPENMPTARGET + if constexpr (!std::is_same<TEST_EXECSPACE, + Kokkos::Experimental::OpenMPTarget>::value) +#endif + { + TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, + double>::test_teambroadcast(0, 1.3); + TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, + double>::test_teambroadcast(0, 1.3); + + TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, + double>::test_teambroadcast(2, 1.3); + TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, + double>::test_teambroadcast(2, 1.3); + + TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, + double>::test_teambroadcast(16, 1.3); + TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, + double>::test_teambroadcast(16, 1.3); + + // FIXME_CUDA +#ifdef KOKKOS_ENABLE_CUDA + if (!std::is_same<TEST_EXECSPACE, Kokkos::Cuda>::value) +#endif + // FIXME_HIP +#ifdef KOKKOS_ENABLE_HIP + if (!std::is_same<TEST_EXECSPACE, Kokkos::Experimental::HIP>::value) +#endif + { + TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, + double>::test_teambroadcast(1000, 1.3); + TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, + + double>::test_teambroadcast(1000, 1.3); + } + } +} + +} // namespace Test + +#ifndef KOKKOS_ENABLE_OPENMPTARGET +#include <TestTeamVector.hpp> +#endif +#endif diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_TeamReductionScan.cpp b/packages/kokkos/core/unit_test/TestTeamReductionScan.hpp similarity index 58% rename from packages/kokkos/core/unit_test/cuda/TestCuda_TeamReductionScan.cpp rename to packages/kokkos/core/unit_test/TestTeamReductionScan.hpp index 4495108dc..3db0eafa3 100644 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_TeamReductionScan.cpp +++ b/packages/kokkos/core/unit_test/TestTeamReductionScan.hpp @@ -42,42 +42,66 @@ //@HEADER */ -#include <cuda/TestCuda_Category.hpp> +#ifndef KOKKOS_TEST_TEAM_REDUCTION_SCAN_HPP +#define KOKKOS_TEST_TEAM_REDUCTION_SCAN_HPP #include <TestTeam.hpp> namespace Test { -#if !defined(KOKKOS_IMPL_CUDA_CLANG_WORKAROUND) -TEST(TEST_CATEGORY, team_scan) { +TEST(TEST_CATEGORY, team_reduction_scan) { TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(0); TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(0); TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(10); TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(10); - TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(10000); - TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(10000); -} +// FIXME_HIP +#ifdef KOKKOS_ENABLE_HIP + if (!std::is_same<TEST_EXECSPACE, Kokkos::Experimental::HIP>::value) #endif + { + TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(10000); + TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(10000); + } +} TEST(TEST_CATEGORY, team_long_reduce) { - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(0); - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(0); - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(3); - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(3); - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >( - 100000); - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >( - 100000); +#ifdef KOKKOS_ENABLE_OPENMPTARGET + // WORKAROUND OPENMPTARGET: Not implemented + if constexpr (!std::is_same<TEST_EXECSPACE, + Kokkos::Experimental::OpenMPTarget>::value) +#endif + { + TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(0); + TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(0); + TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(3); + TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(3); + TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >( + 100000); + TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >( + 100000); + } } TEST(TEST_CATEGORY, team_double_reduce) { - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(0); - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(0); - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(3); - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(3); - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >( - 100000); - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >( - 100000); +#ifdef KOKKOS_ENABLE_OPENMPTARGET + // WORKAROUND OPENMPTARGET: Not implemented + if constexpr (!std::is_same<TEST_EXECSPACE, + Kokkos::Experimental::OpenMPTarget>::value) +#endif + { + TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >( + 0); + TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >( + 0); + TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >( + 3); + TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >( + 3); + TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >( + 100000); + TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >( + 100000); + } } } // namespace Test +#endif diff --git a/packages/kokkos/core/unit_test/TestTeamScan.hpp b/packages/kokkos/core/unit_test/TestTeamScan.hpp new file mode 100644 index 000000000..4693bae8c --- /dev/null +++ b/packages/kokkos/core/unit_test/TestTeamScan.hpp @@ -0,0 +1,182 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include <Kokkos_Core.hpp> +#include <impl/Kokkos_Stacktrace.hpp> +#include <cstdio> +#include <cstdint> +#include <sstream> +#include <type_traits> + +#if defined(__clang__) +#define is_clang true +#else +#define is_clang false +#endif + +#if !defined(KOKKOS_ENABLE_OPENMPTARGET) +// for avoid pre-processor block +namespace Kokkos { +namespace Experimental { +class OpenMPTarget; +} +} // namespace Kokkos +#endif + +#if !defined(KOKKOS_ENABLE_CUDA) +// for avoid pre-processor block +namespace Kokkos { +class Cuda; +} // namespace Kokkos +#endif + +namespace Test { + +template <class ExecutionSpace, class DataType> +struct TestTeamScan { + using execution_space = ExecutionSpace; + using value_type = DataType; + using policy_type = Kokkos::TeamPolicy<execution_space>; + using member_type = typename policy_type::member_type; + using view_type = Kokkos::View<value_type**, execution_space>; + + view_type a_d; + view_type a_r; + int32_t M = 0; + int32_t N = 0; + + KOKKOS_FUNCTION + void operator()(const member_type& team) const { + auto leagueRank = team.league_rank(); + + auto beg = 0; + auto end = N; + + Kokkos::parallel_for( + Kokkos::TeamThreadRange(team, beg, end), + [&](const int i) { a_d(leagueRank, i) = leagueRank * N + i; }); + + Kokkos::parallel_scan(Kokkos::TeamThreadRange(team, beg, end), + [&](int i, DataType& val, const bool final) { + val += a_d(leagueRank, i); + if (final) a_r(leagueRank, i) = val; + }); + } + + auto operator()(int32_t _M, int32_t _N) { + std::cout << "Launching " << Kokkos::Impl::demangle(typeid(*this).name()) + << " with " + << "M=" << _M << " and N=" << _N << "..." << std::endl; + M = _M; + N = _N; + a_d = view_type("a_d", M, N); + a_r = view_type("a_r", M, N); + // Set team size explicitly to + // a) check whether this works in CPU backends with team_size > 1 and + // b) make sure we have a power of 2 and for GPU backends due to limitation + // of the scan algorithm implemented in CUDA etc. + int team_size = 1; + if (ExecutionSpace().concurrency() > 2) { + if (ExecutionSpace().concurrency() > 10000) + team_size = 128; + else + team_size = 3; + } + Kokkos::parallel_for(policy_type(M, team_size), *this); + + auto a_i = Kokkos::create_mirror_view(a_d); + auto a_o = Kokkos::create_mirror_view(a_r); + Kokkos::deep_copy(a_i, a_d); + Kokkos::deep_copy(a_o, a_r); + + for (int32_t i = 0; i < M; ++i) { + value_type _scan_real = 0; + value_type _scan_calc = 0; + value_type _epsilon = std::numeric_limits<value_type>::epsilon(); + // each fp addition is subject to small loses in precision and these + // compound as loop so we set the base error to be the machine epsilon and + // then add in another epsilon each iteration. For example, with CUDA + // backend + 32-bit float + large N values (e.g. 1,000) + high + // thread-counts (e.g. 1024), this test will fail w/o epsilon + // accommodation + for (int32_t j = 0; j < N; ++j) { + _scan_real += a_i(i, j); + _scan_calc = a_o(i, j); + auto _get_mesg = [=]() { + std::stringstream ss, idx; + idx << "(" << i << ", " << j << ") = "; + ss << "a_d" << idx.str() << a_i(i, j); + ss << ", a_r" << idx.str() << a_o(i, j); + return ss.str(); + }; + if (std::is_integral<value_type>::value) { + ASSERT_EQ(_scan_real, _scan_calc) << _get_mesg(); + } else { + _epsilon += std::numeric_limits<value_type>::epsilon(); + ASSERT_NEAR(_scan_real, _scan_calc, _epsilon) << _get_mesg(); + } + } + } + } +}; + +TEST(TEST_CATEGORY, team_scan) { + TestTeamScan<TEST_EXECSPACE, int32_t>{}(0, 0); + TestTeamScan<TEST_EXECSPACE, int32_t>{}(0, 1); + TestTeamScan<TEST_EXECSPACE, int32_t>{}(1, 0); + TestTeamScan<TEST_EXECSPACE, uint32_t>{}(99, 32); + TestTeamScan<TEST_EXECSPACE, uint32_t>{}(139, 64); + TestTeamScan<TEST_EXECSPACE, uint32_t>{}(163, 128); + TestTeamScan<TEST_EXECSPACE, int64_t>{}(433, 256); + TestTeamScan<TEST_EXECSPACE, uint64_t>{}(976, 512); + TestTeamScan<TEST_EXECSPACE, uint64_t>{}(1234, 1024); + TestTeamScan<TEST_EXECSPACE, float>{}(2596, 34); + TestTeamScan<TEST_EXECSPACE, double>{}(2596, 59); + TestTeamScan<TEST_EXECSPACE, float>{}(2596, 65); + TestTeamScan<TEST_EXECSPACE, double>{}(2596, 371); + TestTeamScan<TEST_EXECSPACE, int64_t>{}(2596, 987); + TestTeamScan<TEST_EXECSPACE, double>{}(2596, 1311); +} + +} // namespace Test diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_TeamScratch.cpp b/packages/kokkos/core/unit_test/TestTeamScratch.hpp similarity index 74% rename from packages/kokkos/core/unit_test/threads/TestThreads_TeamScratch.cpp rename to packages/kokkos/core/unit_test/TestTeamScratch.hpp index a37369fc0..fd0f052b7 100644 --- a/packages/kokkos/core/unit_test/threads/TestThreads_TeamScratch.cpp +++ b/packages/kokkos/core/unit_test/TestTeamScratch.hpp @@ -42,7 +42,8 @@ //@HEADER */ -#include <threads/TestThreads_Category.hpp> +#ifndef KOKKOS_TEST_TEAM_SCRATCH_HPP +#define KOKKOS_TEST_TEAM_SCRATCH_HPP #include <TestTeam.hpp> namespace Test { @@ -53,8 +54,15 @@ TEST(TEST_CATEGORY, team_shared_request) { } TEST(TEST_CATEGORY, team_scratch_request) { - TestScratchTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(); - TestScratchTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(); + // FIXME_HIP the parallel_reduce in this test requires a team size larger than + // 256. Fixed in ROCm 3.9 +#if defined(KOKKOS_ENABLE_HIP) && (HIP_VERSION < 309) + if (!std::is_same<TEST_EXECSPACE, Kokkos::Experimental::HIP>::value) +#endif + { + TestScratchTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(); + TestScratchTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(); + } } #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) @@ -64,17 +72,24 @@ TEST(TEST_CATEGORY, team_lambda_shared_request) { TestLambdaSharedTeam<Kokkos::HostSpace, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(); } - TEST(TEST_CATEGORY, scratch_align) { TestScratchAlignment<TEST_EXECSPACE>(); } #endif TEST(TEST_CATEGORY, shmem_size) { TestShmemSize<TEST_EXECSPACE>(); } TEST(TEST_CATEGORY, multi_level_scratch) { - TestMultiLevelScratchTeam<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Static> >(); - TestMultiLevelScratchTeam<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Dynamic> >(); + // FIXME_HIP the parallel_for and the parallel_reduce in this test requires a + // team size larger than 256. Fixed In ROCm 3.9 +#if defined(KOKKOS_ENABLE_HIP) && (HIP_VERSION < 309) + if (!std::is_same<TEST_EXECSPACE, Kokkos::Experimental::HIP>::value) +#endif + { + TestMultiLevelScratchTeam<TEST_EXECSPACE, + Kokkos::Schedule<Kokkos::Static> >(); + TestMultiLevelScratchTeam<TEST_EXECSPACE, + Kokkos::Schedule<Kokkos::Dynamic> >(); + } } } // namespace Test +#endif diff --git a/packages/kokkos/core/unit_test/TestTeamTeamSize.hpp b/packages/kokkos/core/unit_test/TestTeamTeamSize.hpp index 0703f90cf..68f99fa3a 100644 --- a/packages/kokkos/core/unit_test/TestTeamTeamSize.hpp +++ b/packages/kokkos/core/unit_test/TestTeamTeamSize.hpp @@ -91,11 +91,11 @@ struct FunctorReduce { }; } // namespace -typedef Kokkos::TeamPolicy<TEST_EXECSPACE> policy_type; -typedef Kokkos::TeamPolicy<TEST_EXECSPACE, Kokkos::LaunchBounds<128, 8> > - policy_type_128_8; -typedef Kokkos::TeamPolicy<TEST_EXECSPACE, Kokkos::LaunchBounds<1024, 2> > - policy_type_1024_2; +using policy_type = Kokkos::TeamPolicy<TEST_EXECSPACE>; +using policy_type_128_8 = + Kokkos::TeamPolicy<TEST_EXECSPACE, Kokkos::LaunchBounds<128, 8> >; +using policy_type_1024_2 = + Kokkos::TeamPolicy<TEST_EXECSPACE, Kokkos::LaunchBounds<1024, 2> >; template <class T, int N, class PolicyType, int S> void test_team_policy_max_recommended_static_size(int scratch_size) { @@ -121,12 +121,21 @@ void test_team_policy_max_recommended_static_size(int scratch_size) { .set_scratch_size(0, Kokkos::PerTeam(scratch_size)), FunctorFor<T, N, PolicyType, S>()); MyArray<T, N> val; + double n_leagues = 10000; + // FIXME_HIP +#ifdef KOKKOS_ENABLE_HIP + if (N == 2) + n_leagues = 1000; + else + n_leagues = 500; +#endif + Kokkos::parallel_reduce( - PolicyType(10000, team_size_max_reduce, 4) + PolicyType(n_leagues, team_size_max_reduce, 4) .set_scratch_size(0, Kokkos::PerTeam(scratch_size)), FunctorReduce<T, N, PolicyType, S>(), val); Kokkos::parallel_reduce( - PolicyType(10000, team_size_rec_reduce, 4) + PolicyType(n_leagues, team_size_rec_reduce, 4) .set_scratch_size(0, Kokkos::PerTeam(scratch_size)), FunctorReduce<T, N, PolicyType, S>(), val); Kokkos::fence(); diff --git a/packages/kokkos/core/unit_test/TestTeamVector.hpp b/packages/kokkos/core/unit_test/TestTeamVector.hpp index c313988ef..c2f47c9ec 100644 --- a/packages/kokkos/core/unit_test/TestTeamVector.hpp +++ b/packages/kokkos/core/unit_test/TestTeamVector.hpp @@ -49,196 +49,30 @@ #include <cstdlib> #include <cstdint> #include <cinttypes> - -namespace TestTeamVector { - -struct my_complex { - double re, im; - int dummy; - - KOKKOS_INLINE_FUNCTION - my_complex() { - re = 0.0; - im = 0.0; - dummy = 0; - } - - KOKKOS_INLINE_FUNCTION - my_complex(const my_complex &src) { - re = src.re; - im = src.im; - dummy = src.dummy; - } - - KOKKOS_INLINE_FUNCTION - my_complex &operator=(const my_complex &src) { - re = src.re; - im = src.im; - dummy = src.dummy; - return *this; - } - - KOKKOS_INLINE_FUNCTION - my_complex &operator=(const volatile my_complex &src) { - re = src.re; - im = src.im; - dummy = src.dummy; - return *this; - } - - KOKKOS_INLINE_FUNCTION - volatile my_complex &operator=(const my_complex &src) volatile { - re = src.re; - im = src.im; - dummy = src.dummy; - return *this; - } - - KOKKOS_INLINE_FUNCTION - volatile my_complex &operator=(const volatile my_complex &src) volatile { - re = src.re; - im = src.im; - dummy = src.dummy; - return *this; - } - - KOKKOS_INLINE_FUNCTION - my_complex(const volatile my_complex &src) { - re = src.re; - im = src.im; - dummy = src.dummy; - } - - KOKKOS_INLINE_FUNCTION - my_complex(const double &val) { - re = val; - im = 0.0; - dummy = 0; - } - - KOKKOS_INLINE_FUNCTION - my_complex &operator+=(const my_complex &src) { - re += src.re; - im += src.im; - dummy += src.dummy; - return *this; - } - - KOKKOS_INLINE_FUNCTION - void operator+=(const volatile my_complex &src) volatile { - re += src.re; - im += src.im; - dummy += src.dummy; - } - - KOKKOS_INLINE_FUNCTION - my_complex operator+(const my_complex &src) { - my_complex tmp = *this; - tmp.re += src.re; - tmp.im += src.im; - tmp.dummy += src.dummy; - return tmp; - } - - KOKKOS_INLINE_FUNCTION - my_complex operator+(const volatile my_complex &src) volatile { - my_complex tmp = *this; - tmp.re += src.re; - tmp.im += src.im; - tmp.dummy += src.dummy; - return tmp; - } - - KOKKOS_INLINE_FUNCTION - my_complex &operator*=(const my_complex &src) { - double re_tmp = re * src.re - im * src.im; - double im_tmp = re * src.im + im * src.re; - re = re_tmp; - im = im_tmp; - dummy *= src.dummy; - return *this; - } - - KOKKOS_INLINE_FUNCTION - void operator*=(const volatile my_complex &src) volatile { - double re_tmp = re * src.re - im * src.im; - double im_tmp = re * src.im + im * src.re; - re = re_tmp; - im = im_tmp; - dummy *= src.dummy; - } - - KOKKOS_INLINE_FUNCTION - bool operator==(const my_complex &src) { - return (re == src.re) && (im == src.im) && (dummy == src.dummy); - } - - KOKKOS_INLINE_FUNCTION - bool operator!=(const my_complex &src) { - return (re != src.re) || (im != src.im) || (dummy != src.dummy); - } - - KOKKOS_INLINE_FUNCTION - bool operator!=(const double &val) { - return (re != val) || (im != 0) || (dummy != 0); - } - - KOKKOS_INLINE_FUNCTION - my_complex &operator=(const int &val) { - re = val; - im = 0.0; - dummy = 0; - return *this; - } - - KOKKOS_INLINE_FUNCTION - my_complex &operator=(const double &val) { - re = val; - im = 0.0; - dummy = 0; - return *this; - } - - KOKKOS_INLINE_FUNCTION - operator double() { return re; } -}; -} // namespace TestTeamVector - -namespace Kokkos { -template <> -struct reduction_identity<TestTeamVector::my_complex> { - typedef reduction_identity<double> t_red_ident; - KOKKOS_FORCEINLINE_FUNCTION static TestTeamVector::my_complex sum() { - return TestTeamVector::my_complex(t_red_ident::sum()); - } - KOKKOS_FORCEINLINE_FUNCTION static TestTeamVector::my_complex prod() { - return TestTeamVector::my_complex(t_red_ident::prod()); - } -}; -} // namespace Kokkos +#include <TestNonTrivialScalarTypes.hpp> namespace TestTeamVector { template <typename Scalar, class ExecutionSpace> struct functor_team_for { - typedef Kokkos::TeamPolicy<ExecutionSpace> policy_type; - typedef ExecutionSpace execution_space; + using policy_type = Kokkos::TeamPolicy<ExecutionSpace>; + using execution_space = ExecutionSpace; Kokkos::View<int, Kokkos::LayoutLeft, ExecutionSpace> flag; functor_team_for(Kokkos::View<int, Kokkos::LayoutLeft, ExecutionSpace> flag_) : flag(flag_) {} - typedef typename ExecutionSpace::scratch_memory_space shmem_space; - typedef Kokkos::View<Scalar *, shmem_space, Kokkos::MemoryUnmanaged> - shared_int; + using shmem_space = typename ExecutionSpace::scratch_memory_space; + using shared_int = + Kokkos::View<Scalar *, shmem_space, Kokkos::MemoryUnmanaged>; unsigned team_shmem_size(int team_size) const { return shared_int::shmem_size(team_size * 13); } KOKKOS_INLINE_FUNCTION void operator()(typename policy_type::member_type team) const { - typedef typename shmem_space::size_type size_type; + using size_type = typename shmem_space::size_type; const size_type shmemSize = team.team_size() * 13; shared_int values = shared_int(team.team_shmem(), shmemSize); @@ -286,8 +120,8 @@ struct functor_team_for { template <typename Scalar, class ExecutionSpace> struct functor_team_reduce { - typedef Kokkos::TeamPolicy<ExecutionSpace> policy_type; - typedef ExecutionSpace execution_space; + using policy_type = Kokkos::TeamPolicy<ExecutionSpace>; + using execution_space = ExecutionSpace; Kokkos::View<int, Kokkos::LayoutLeft, ExecutionSpace> flag; @@ -295,9 +129,9 @@ struct functor_team_reduce { Kokkos::View<int, Kokkos::LayoutLeft, ExecutionSpace> flag_) : flag(flag_) {} - typedef typename ExecutionSpace::scratch_memory_space shmem_space; - typedef Kokkos::View<Scalar *, shmem_space, Kokkos::MemoryUnmanaged> - shared_scalar_t; + using shmem_space = typename ExecutionSpace::scratch_memory_space; + using shared_scalar_t = + Kokkos::View<Scalar *, shmem_space, Kokkos::MemoryUnmanaged>; unsigned team_shmem_size(int team_size) const { return shared_scalar_t::shmem_size(team_size * 13); } @@ -335,7 +169,7 @@ struct functor_team_reduce { printf("FAILED team_parallel_reduce %i %i %lf %lf %lu\n", team.league_rank(), team.team_rank(), static_cast<double>(test), static_cast<double>(value), - sizeof(Scalar)); + static_cast<unsigned long>(sizeof(Scalar))); } flag() = 1; @@ -346,7 +180,8 @@ struct functor_team_reduce { "FAILED team_parallel_reduce with shared result %i %i %lf %lf " "%lu\n", team.league_rank(), team.team_rank(), static_cast<double>(test), - static_cast<double>(shared_value(0)), sizeof(Scalar)); + static_cast<double>(shared_value(0)), + static_cast<unsigned long>(sizeof(Scalar))); } flag() = 1; @@ -357,8 +192,8 @@ struct functor_team_reduce { template <typename Scalar, class ExecutionSpace> struct functor_team_reduce_reducer { - typedef Kokkos::TeamPolicy<ExecutionSpace> policy_type; - typedef ExecutionSpace execution_space; + using policy_type = Kokkos::TeamPolicy<ExecutionSpace>; + using execution_space = ExecutionSpace; Kokkos::View<int, Kokkos::LayoutLeft, ExecutionSpace> flag; @@ -366,9 +201,9 @@ struct functor_team_reduce_reducer { Kokkos::View<int, Kokkos::LayoutLeft, ExecutionSpace> flag_) : flag(flag_) {} - typedef typename ExecutionSpace::scratch_memory_space shmem_space; - typedef Kokkos::View<Scalar *, shmem_space, Kokkos::MemoryUnmanaged> - shared_scalar_t; + using shmem_space = typename ExecutionSpace::scratch_memory_space; + using shared_scalar_t = + Kokkos::View<Scalar *, shmem_space, Kokkos::MemoryUnmanaged>; unsigned team_shmem_size(int team_size) const { return shared_scalar_t::shmem_size(team_size * 13); } @@ -423,8 +258,8 @@ struct functor_team_reduce_reducer { template <typename Scalar, class ExecutionSpace> struct functor_team_vector_for { - typedef Kokkos::TeamPolicy<ExecutionSpace> policy_type; - typedef ExecutionSpace execution_space; + using policy_type = Kokkos::TeamPolicy<ExecutionSpace>; + using execution_space = ExecutionSpace; Kokkos::View<int, Kokkos::LayoutLeft, ExecutionSpace> flag; @@ -432,16 +267,16 @@ struct functor_team_vector_for { Kokkos::View<int, Kokkos::LayoutLeft, ExecutionSpace> flag_) : flag(flag_) {} - typedef typename ExecutionSpace::scratch_memory_space shmem_space; - typedef Kokkos::View<Scalar *, shmem_space, Kokkos::MemoryUnmanaged> - shared_int; + using shmem_space = typename ExecutionSpace::scratch_memory_space; + using shared_int = + Kokkos::View<Scalar *, shmem_space, Kokkos::MemoryUnmanaged>; unsigned team_shmem_size(int team_size) const { return shared_int::shmem_size(team_size * 13); } KOKKOS_INLINE_FUNCTION void operator()(typename policy_type::member_type team) const { - typedef typename shared_int::size_type size_type; + using size_type = typename shared_int::size_type; const size_type shmemSize = team.team_size() * 13; shared_int values = shared_int(team.team_shmem(), shmemSize); @@ -491,17 +326,17 @@ struct functor_team_vector_for { template <typename Scalar, class ExecutionSpace> struct functor_team_vector_reduce { - typedef Kokkos::TeamPolicy<ExecutionSpace> policy_type; - typedef ExecutionSpace execution_space; + using policy_type = Kokkos::TeamPolicy<ExecutionSpace>; + using execution_space = ExecutionSpace; Kokkos::View<int, Kokkos::LayoutLeft, ExecutionSpace> flag; functor_team_vector_reduce( Kokkos::View<int, Kokkos::LayoutLeft, ExecutionSpace> flag_) : flag(flag_) {} - typedef typename ExecutionSpace::scratch_memory_space shmem_space; - typedef Kokkos::View<Scalar *, shmem_space, Kokkos::MemoryUnmanaged> - shared_int; + using shmem_space = typename ExecutionSpace::scratch_memory_space; + using shared_int = + Kokkos::View<Scalar *, shmem_space, Kokkos::MemoryUnmanaged>; unsigned team_shmem_size(int team_size) const { return shared_int::shmem_size(team_size * 13); } @@ -531,7 +366,7 @@ struct functor_team_vector_reduce { printf("FAILED team_vector_parallel_reduce %i %i %f %f %lu\n", team.league_rank(), team.team_rank(), static_cast<double>(test), static_cast<double>(value), - sizeof(Scalar)); + static_cast<unsigned long>(sizeof(Scalar))); } flag() = 1; @@ -542,8 +377,8 @@ struct functor_team_vector_reduce { template <typename Scalar, class ExecutionSpace> struct functor_team_vector_reduce_reducer { - typedef Kokkos::TeamPolicy<ExecutionSpace> policy_type; - typedef ExecutionSpace execution_space; + using policy_type = Kokkos::TeamPolicy<ExecutionSpace>; + using execution_space = ExecutionSpace; Kokkos::View<int, Kokkos::LayoutLeft, ExecutionSpace> flag; @@ -551,9 +386,9 @@ struct functor_team_vector_reduce_reducer { Kokkos::View<int, Kokkos::LayoutLeft, ExecutionSpace> flag_) : flag(flag_) {} - typedef typename ExecutionSpace::scratch_memory_space shmem_space; - typedef Kokkos::View<Scalar *, shmem_space, Kokkos::MemoryUnmanaged> - shared_int; + using shmem_space = typename ExecutionSpace::scratch_memory_space; + using shared_int = + Kokkos::View<Scalar *, shmem_space, Kokkos::MemoryUnmanaged>; unsigned team_shmem_size(int team_size) const { return shared_int::shmem_size(team_size * 13); } @@ -591,8 +426,8 @@ struct functor_team_vector_reduce_reducer { template <typename Scalar, class ExecutionSpace> struct functor_vec_single { - typedef Kokkos::TeamPolicy<ExecutionSpace> policy_type; - typedef ExecutionSpace execution_space; + using policy_type = Kokkos::TeamPolicy<ExecutionSpace>; + using execution_space = ExecutionSpace; Kokkos::View<int, Kokkos::LayoutLeft, ExecutionSpace> flag; int nStart; @@ -624,7 +459,7 @@ struct functor_vec_single { Kokkos::ThreadVectorRange(team, nStart, nEnd), [&](int /*i*/, Scalar &val) { val += value; }, value2); - if (value2 != (value * (nEnd - nStart))) { + if (value2 != (value * Scalar(nEnd - nStart))) { printf("FAILED vector_single broadcast %i %i %f %f\n", team.league_rank(), team.team_rank(), (double)value2, (double)value); @@ -635,17 +470,17 @@ struct functor_vec_single { template <typename Scalar, class ExecutionSpace> struct functor_vec_for { - typedef Kokkos::TeamPolicy<ExecutionSpace> policy_type; - typedef ExecutionSpace execution_space; + using policy_type = Kokkos::TeamPolicy<ExecutionSpace>; + using execution_space = ExecutionSpace; Kokkos::View<int, Kokkos::LayoutLeft, ExecutionSpace> flag; functor_vec_for(Kokkos::View<int, Kokkos::LayoutLeft, ExecutionSpace> flag_) : flag(flag_) {} - typedef typename ExecutionSpace::scratch_memory_space shmem_space; - typedef Kokkos::View<Scalar *, shmem_space, Kokkos::MemoryUnmanaged> - shared_int; + using shmem_space = typename ExecutionSpace::scratch_memory_space; + using shared_int = + Kokkos::View<Scalar *, shmem_space, Kokkos::MemoryUnmanaged>; unsigned team_shmem_size(int team_size) const { return shared_int::shmem_size(team_size * 13); } @@ -690,8 +525,8 @@ struct functor_vec_for { template <typename Scalar, class ExecutionSpace> struct functor_vec_red { - typedef Kokkos::TeamPolicy<ExecutionSpace> policy_type; - typedef ExecutionSpace execution_space; + using policy_type = Kokkos::TeamPolicy<ExecutionSpace>; + using execution_space = ExecutionSpace; Kokkos::View<int, Kokkos::LayoutLeft, ExecutionSpace> flag; @@ -724,8 +559,8 @@ struct functor_vec_red { template <typename Scalar, class ExecutionSpace> struct functor_vec_red_reducer { - typedef Kokkos::TeamPolicy<ExecutionSpace> policy_type; - typedef ExecutionSpace execution_space; + using policy_type = Kokkos::TeamPolicy<ExecutionSpace>; + using execution_space = ExecutionSpace; Kokkos::View<int, Kokkos::LayoutLeft, ExecutionSpace> flag; @@ -763,8 +598,8 @@ struct functor_vec_red_reducer { template <typename Scalar, class ExecutionSpace> struct functor_vec_scan { - typedef Kokkos::TeamPolicy<ExecutionSpace> policy_type; - typedef ExecutionSpace execution_space; + using policy_type = Kokkos::TeamPolicy<ExecutionSpace>; + using execution_space = ExecutionSpace; Kokkos::View<int, Kokkos::LayoutLeft, ExecutionSpace> flag; functor_vec_scan(Kokkos::View<int, Kokkos::LayoutLeft, ExecutionSpace> flag_) @@ -794,9 +629,9 @@ struct functor_vec_scan { template <typename Scalar, class ExecutionSpace> struct functor_reduce { - typedef double value_type; - typedef Kokkos::TeamPolicy<ExecutionSpace> policy_type; - typedef ExecutionSpace execution_space; + using value_type = double; + using policy_type = Kokkos::TeamPolicy<ExecutionSpace>; + using execution_space = ExecutionSpace; Kokkos::View<int, Kokkos::LayoutLeft, ExecutionSpace> flag; functor_reduce(Kokkos::View<int, Kokkos::LayoutLeft, ExecutionSpace> flag_) @@ -882,8 +717,14 @@ bool Test(int test) { test_scalar<long long int, ExecutionSpace>(317, team_size, test); passed = passed && test_scalar<float, ExecutionSpace>(317, team_size, test); passed = passed && test_scalar<double, ExecutionSpace>(317, team_size, test); - passed = - passed && test_scalar<my_complex, ExecutionSpace>(317, team_size, test); + passed = passed && + test_scalar<Test::my_complex, ExecutionSpace>(317, team_size, test); + passed = passed && test_scalar<Test::array_reduce<double, 1>, ExecutionSpace>( + 317, team_size, test); + passed = passed && test_scalar<Test::array_reduce<float, 1>, ExecutionSpace>( + 317, team_size, test); + passed = passed && test_scalar<Test::array_reduce<double, 3>, ExecutionSpace>( + 317, team_size, test); return passed; } @@ -899,8 +740,8 @@ namespace Test { template <typename ScalarType, class DeviceType> class TestTripleNestedReduce { public: - typedef DeviceType execution_space; - typedef typename execution_space::size_type size_type; + using execution_space = DeviceType; + using size_type = typename execution_space::size_type; TestTripleNestedReduce(const size_type &nrows, const size_type &ncols, const size_type &team_size, @@ -920,17 +761,17 @@ class TestTripleNestedReduce { } #endif - // typedef Kokkos::LayoutLeft Layout; - typedef Kokkos::LayoutRight Layout; + // using Layout = Kokkos::LayoutLeft; + using Layout = Kokkos::LayoutRight; - typedef Kokkos::View<ScalarType *, DeviceType> ViewVector; - typedef Kokkos::View<ScalarType **, Layout, DeviceType> ViewMatrix; + using ViewVector = Kokkos::View<ScalarType *, DeviceType>; + using ViewMatrix = Kokkos::View<ScalarType **, Layout, DeviceType>; ViewVector y("y", nrows); ViewVector x("x", ncols); ViewMatrix A("A", nrows, ncols); - typedef Kokkos::RangePolicy<DeviceType> range_policy; + using range_policy = Kokkos::RangePolicy<DeviceType>; // Initialize y vector. Kokkos::parallel_for( @@ -941,8 +782,8 @@ class TestTripleNestedReduce { range_policy(0, ncols), KOKKOS_LAMBDA(const int i) { x(i) = 1; }); Kokkos::fence(); - typedef Kokkos::TeamPolicy<DeviceType> team_policy; - typedef typename Kokkos::TeamPolicy<DeviceType>::member_type member_type; + using team_policy = Kokkos::TeamPolicy<DeviceType>; + using member_type = typename Kokkos::TeamPolicy<DeviceType>::member_type; // Initialize A matrix, note 2D indexing computation. Kokkos::parallel_for( @@ -1000,8 +841,8 @@ class TestTripleNestedReduce { template <typename ScalarType, class DeviceType> class TestTripleNestedReduce { public: - typedef DeviceType execution_space; - typedef typename execution_space::size_type size_type; + using execution_space = DeviceType; + using size_type = typename execution_space::size_type; TestTripleNestedReduce(const size_type &, const size_type, const size_type &, const size_type) {} @@ -1009,7 +850,7 @@ class TestTripleNestedReduce { #endif -#if !defined(KOKKOS_IMPL_CUDA_CLANG_WORKAROUND) +#if !(defined(KOKKOS_IMPL_CUDA_CLANG_WORKAROUND) || defined(KOKKOS_ENABLE_HIP)) TEST(TEST_CATEGORY, team_vector) { ASSERT_TRUE((TestTeamVector::Test<TEST_EXECSPACE>(0))); ASSERT_TRUE((TestTeamVector::Test<TEST_EXECSPACE>(1))); @@ -1028,16 +869,13 @@ TEST(TEST_CATEGORY, team_vector) { #if !defined(KOKKOS_IMPL_CUDA_CLANG_WORKAROUND) TEST(TEST_CATEGORY, triple_nested_parallelism) { -// With KOKKOS_DEBUG enabled, the functor uses too many registers to run +// With KOKKOS_ENABLE_DEBUG enabled, the functor uses too many registers to run // with a team size of 32 on GPUs, 16 is the max possible (at least on a K80 // GPU) See https://github.com/kokkos/kokkos/issues/1513 #if defined(KOKKOS_ENABLE_DEBUG) && defined(KOKKOS_ENABLE_CUDA) if (!std::is_same<TEST_EXECSPACE, Kokkos::Cuda>::value) { #endif -#ifdef KOKKOS_ENABLE_ROCM // ROCm doesn't support TeamSize 32x32 - if (!std::is_same<TEST_EXECSPACE, Kokkos::Experimental::ROCm>::value) -#endif - TestTripleNestedReduce<double, TEST_EXECSPACE>(8192, 2048, 32, 32); + TestTripleNestedReduce<double, TEST_EXECSPACE>(8192, 2048, 32, 32); TestTripleNestedReduce<double, TEST_EXECSPACE>(8192, 2048, 32, 16); #if defined(KOKKOS_ENABLE_DEBUG) && defined(KOKKOS_ENABLE_CUDA) } @@ -1045,10 +883,7 @@ TEST(TEST_CATEGORY, triple_nested_parallelism) { TestTripleNestedReduce<double, TEST_EXECSPACE>(8192, 2048, 16, 16); TestTripleNestedReduce<double, TEST_EXECSPACE>(8192, 2048, 16, 33); TestTripleNestedReduce<double, TEST_EXECSPACE>(8192, 2048, 16, 19); -#ifdef KOKKOS_ENABLE_ROCM // ROCm doesn't support team sizes not powers of two - if (!std::is_same<TEST_EXECSPACE, Kokkos::Experimental::ROCm>::value) -#endif - TestTripleNestedReduce<double, TEST_EXECSPACE>(8192, 2048, 7, 16); + TestTripleNestedReduce<double, TEST_EXECSPACE>(8192, 2048, 7, 16); } #endif diff --git a/packages/kokkos/core/unit_test/TestTeamVectorRange.hpp b/packages/kokkos/core/unit_test/TestTeamVectorRange.hpp index cc8378518..1b64fef05 100644 --- a/packages/kokkos/core/unit_test/TestTeamVectorRange.hpp +++ b/packages/kokkos/core/unit_test/TestTeamVectorRange.hpp @@ -207,7 +207,7 @@ struct my_complex { namespace Kokkos { template <> struct reduction_identity<TestTeamVectorRange::my_complex> { - typedef reduction_identity<double> t_red_ident; + using t_red_ident = reduction_identity<double>; KOKKOS_FORCEINLINE_FUNCTION static TestTeamVectorRange::my_complex sum() { return TestTeamVectorRange::my_complex(t_red_ident::sum()); } @@ -221,8 +221,8 @@ namespace TestTeamVectorRange { template <typename Scalar, class ExecutionSpace> struct functor_teamvector_for { - typedef Kokkos::TeamPolicy<ExecutionSpace> policy_type; - typedef ExecutionSpace execution_space; + using policy_type = Kokkos::TeamPolicy<ExecutionSpace>; + using execution_space = ExecutionSpace; Kokkos::View<int, Kokkos::LayoutLeft, ExecutionSpace> flag; @@ -230,16 +230,16 @@ struct functor_teamvector_for { Kokkos::View<int, Kokkos::LayoutLeft, ExecutionSpace> flag_) : flag(flag_) {} - typedef typename ExecutionSpace::scratch_memory_space shmem_space; - typedef Kokkos::View<Scalar*, shmem_space, Kokkos::MemoryUnmanaged> - shared_int; + using shmem_space = typename ExecutionSpace::scratch_memory_space; + using shared_int = + Kokkos::View<Scalar*, shmem_space, Kokkos::MemoryUnmanaged>; unsigned team_shmem_size(int /*team_size*/) const { return shared_int::shmem_size(131); } KOKKOS_INLINE_FUNCTION void operator()(typename policy_type::member_type team) const { - typedef typename shmem_space::size_type size_type; + using size_type = typename shmem_space::size_type; const size_type shmemSize = 131; shared_int values = shared_int(team.team_shmem(), shmemSize); @@ -290,8 +290,8 @@ struct functor_teamvector_for { template <typename Scalar, class ExecutionSpace> struct functor_teamvector_reduce { - typedef Kokkos::TeamPolicy<ExecutionSpace> policy_type; - typedef ExecutionSpace execution_space; + using policy_type = Kokkos::TeamPolicy<ExecutionSpace>; + using execution_space = ExecutionSpace; Kokkos::View<int, Kokkos::LayoutLeft, ExecutionSpace> flag; @@ -299,9 +299,9 @@ struct functor_teamvector_reduce { Kokkos::View<int, Kokkos::LayoutLeft, ExecutionSpace> flag_) : flag(flag_) {} - typedef typename ExecutionSpace::scratch_memory_space shmem_space; - typedef Kokkos::View<Scalar*, shmem_space, Kokkos::MemoryUnmanaged> - shared_scalar_t; + using shmem_space = typename ExecutionSpace::scratch_memory_space; + using shared_scalar_t = + Kokkos::View<Scalar*, shmem_space, Kokkos::MemoryUnmanaged>; unsigned team_shmem_size(int team_size) const { return shared_scalar_t::shmem_size(team_size * 13); } @@ -345,9 +345,9 @@ struct functor_teamvector_reduce { if (test != value) { if (team.league_rank() == 0) { printf("FAILED teamvector_parallel_reduce %i %i %lf %lf %lu\n", - team.league_rank(), team.team_rank(), + (int)team.league_rank(), (int)team.team_rank(), static_cast<double>(test), static_cast<double>(value), - sizeof(Scalar)); + static_cast<unsigned long>(sizeof(Scalar))); } flag() = 1; @@ -357,8 +357,10 @@ struct functor_teamvector_reduce { printf( "FAILED teamvector_parallel_reduce with shared result %i %i %lf " "%lf %lu\n", - team.league_rank(), team.team_rank(), static_cast<double>(test), - static_cast<double>(shared_value(0)), sizeof(Scalar)); + static_cast<int>(team.league_rank()), + static_cast<int>(team.team_rank()), static_cast<double>(test), + static_cast<double>(shared_value(0)), + static_cast<unsigned long>(sizeof(Scalar))); } flag() = 1; @@ -369,8 +371,8 @@ struct functor_teamvector_reduce { template <typename Scalar, class ExecutionSpace> struct functor_teamvector_reduce_reducer { - typedef Kokkos::TeamPolicy<ExecutionSpace> policy_type; - typedef ExecutionSpace execution_space; + using policy_type = Kokkos::TeamPolicy<ExecutionSpace>; + using execution_space = ExecutionSpace; Kokkos::View<int, Kokkos::LayoutLeft, ExecutionSpace> flag; @@ -378,9 +380,9 @@ struct functor_teamvector_reduce_reducer { Kokkos::View<int, Kokkos::LayoutLeft, ExecutionSpace> flag_) : flag(flag_) {} - typedef typename ExecutionSpace::scratch_memory_space shmem_space; - typedef Kokkos::View<Scalar*, shmem_space, Kokkos::MemoryUnmanaged> - shared_scalar_t; + using shmem_space = typename ExecutionSpace::scratch_memory_space; + using shared_scalar_t = + Kokkos::View<Scalar*, shmem_space, Kokkos::MemoryUnmanaged>; unsigned team_shmem_size(int team_size) const { return shared_scalar_t::shmem_size(team_size * 13); } diff --git a/packages/kokkos/core/unit_test/TestTemplateMetaFunctions.hpp b/packages/kokkos/core/unit_test/TestTemplateMetaFunctions.hpp index b9c16f506..a0bc7c430 100644 --- a/packages/kokkos/core/unit_test/TestTemplateMetaFunctions.hpp +++ b/packages/kokkos/core/unit_test/TestTemplateMetaFunctions.hpp @@ -50,8 +50,8 @@ namespace { template <class Scalar, class ExecutionSpace> struct SumPlain { - typedef ExecutionSpace execution_space; - typedef typename Kokkos::View<Scalar*, execution_space> type; + using execution_space = ExecutionSpace; + using type = typename Kokkos::View<Scalar*, execution_space>; type view; @@ -63,9 +63,9 @@ struct SumPlain { template <class Scalar, class ExecutionSpace> struct SumInitJoinFinalValueType { - typedef ExecutionSpace execution_space; - typedef typename Kokkos::View<Scalar*, execution_space> type; - typedef Scalar value_type; + using execution_space = ExecutionSpace; + using type = typename Kokkos::View<Scalar*, execution_space>; + using value_type = Scalar; type view; @@ -85,9 +85,9 @@ struct SumInitJoinFinalValueType { template <class Scalar, class ExecutionSpace> struct SumInitJoinFinalValueType2 { - typedef ExecutionSpace execution_space; - typedef typename Kokkos::View<Scalar*, execution_space> type; - typedef Scalar value_type; + using execution_space = ExecutionSpace; + using type = typename Kokkos::View<Scalar*, execution_space>; + using value_type = Scalar; type view; @@ -107,9 +107,9 @@ struct SumInitJoinFinalValueType2 { template <class Scalar, class ExecutionSpace> struct SumInitJoinFinalValueTypeArray { - typedef ExecutionSpace execution_space; - typedef typename Kokkos::View<Scalar*, execution_space> type; - typedef Scalar value_type[]; + using execution_space = ExecutionSpace; + using type = typename Kokkos::View<Scalar*, execution_space>; + using value_type = Scalar[]; type view; int n; @@ -140,9 +140,9 @@ struct SumInitJoinFinalValueTypeArray { template <class Scalar, class ExecutionSpace> struct SumWrongInitJoinFinalValueType { - typedef ExecutionSpace execution_space; - typedef typename Kokkos::View<Scalar*, execution_space> type; - typedef Scalar value_type; + using execution_space = ExecutionSpace; + using type = typename Kokkos::View<Scalar*, execution_space>; + using value_type = Scalar; type view; @@ -162,7 +162,7 @@ struct SumWrongInitJoinFinalValueType { template <class Scalar, class ExecutionSpace> void TestTemplateMetaFunctions() { - typedef typename Kokkos::View<Scalar*, ExecutionSpace> type; + using type = typename Kokkos::View<Scalar*, ExecutionSpace>; type a("A", 100); /* int sum_plain_has_init_arg = Kokkos::Impl::FunctorHasInit< SumPlain<Scalar, diff --git a/packages/kokkos/core/unit_test/TestThreads_Category.hpp b/packages/kokkos/core/unit_test/TestThreads_Category.hpp new file mode 100644 index 000000000..b7ca7c826 --- /dev/null +++ b/packages/kokkos/core/unit_test/TestThreads_Category.hpp @@ -0,0 +1,55 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_TEST_THREADS_HPP +#define KOKKOS_TEST_THREADS_HPP + +#include <gtest/gtest.h> + +#define TEST_CATEGORY threads +#define TEST_CATEGORY_NUMBER 1 +#define TEST_CATEGORY_DEATH threads_DeathTest +#define TEST_EXECSPACE Kokkos::Threads + +#endif diff --git a/packages/kokkos/core/unit_test/TestTile.hpp b/packages/kokkos/core/unit_test/TestTile.hpp deleted file mode 100644 index 9e916ef31..000000000 --- a/packages/kokkos/core/unit_test/TestTile.hpp +++ /dev/null @@ -1,181 +0,0 @@ -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER - -#ifndef TEST_TILE_HPP -#define TEST_TILE_HPP - -//======================================================================== -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - -#include <Kokkos_Core.hpp> -#include <impl/Kokkos_ViewTile.hpp> - -namespace TestTile { - -template <typename Device, typename TileLayout> -struct ReduceTileErrors { - typedef Device execution_space; - typedef Kokkos::View<ptrdiff_t**, TileLayout, Device> array_type; - typedef Kokkos::View<ptrdiff_t[TileLayout::N0][TileLayout::N1], - Kokkos::LayoutLeft, Device> - tile_type; - typedef ptrdiff_t value_type; - - array_type m_array; - - ReduceTileErrors(array_type a) : m_array(a) {} - - KOKKOS_INLINE_FUNCTION - static void init(value_type& errors) { errors = 0; } - - KOKKOS_INLINE_FUNCTION - static void join(volatile value_type& errors, - const volatile value_type& src_errors) { - errors += src_errors; - } - - // Initialize. - KOKKOS_INLINE_FUNCTION - void operator()(size_t iwork) const { - const size_t i = iwork % m_array.extent(0); - const size_t j = iwork / m_array.extent(0); - - if (j < m_array.extent(1)) { - m_array(i, j) = &m_array(i, j) - &m_array(0, 0); - - // printf( "m_array(%d, %d) = %d\n", int( i ), int( j ), int( m_array( i, - // j ) ) ); - } - } - - // Verify: - KOKKOS_INLINE_FUNCTION - void operator()(size_t iwork, value_type& errors) const { - const size_t tile_dim0 = - (m_array.extent(0) + TileLayout::N0 - 1) / TileLayout::N0; - const size_t tile_dim1 = - (m_array.extent(1) + TileLayout::N1 - 1) / TileLayout::N1; - - const size_t itile = iwork % tile_dim0; - const size_t jtile = iwork / tile_dim0; - - if (jtile < tile_dim1) { - tile_type tile = Kokkos::tile_subview(m_array, itile, jtile); - - if (tile(0, 0) != ptrdiff_t((itile + jtile * tile_dim0) * TileLayout::N0 * - TileLayout::N1)) { - ++errors; - } else { - for (size_t j = 0; j < size_t(TileLayout::N1); ++j) { - for (size_t i = 0; i < size_t(TileLayout::N0); ++i) { - const size_t iglobal = i + itile * TileLayout::N0; - const size_t jglobal = j + jtile * TileLayout::N1; - - if (iglobal < m_array.extent(0) && jglobal < m_array.extent(1)) { - if (tile(i, j) != ptrdiff_t(tile(0, 0) + i + j * TileLayout::N0)) - ++errors; - - // printf( "tile(%d, %d)(%d, %d) = %d\n", int( itile ), int( jtile - // ), int( i ), int( j ), int( tile( i, j ) ) ); - } - } - } - } - } - } -}; - -template <class Space, unsigned N0, unsigned N1> -void test(const size_t dim0, const size_t dim1) { - typedef Kokkos::LayoutTileLeft<N0, N1> array_layout; - typedef ReduceTileErrors<Space, array_layout> functor_type; - - const size_t tile_dim0 = (dim0 + N0 - 1) / N0; - const size_t tile_dim1 = (dim1 + N1 - 1) / N1; - - typename functor_type::array_type array("", dim0, dim1); - - Kokkos::parallel_for(Kokkos::RangePolicy<Space, size_t>(0, dim0 * dim1), - functor_type(array)); - - ptrdiff_t error = 0; - - Kokkos::parallel_reduce( - Kokkos::RangePolicy<Space, size_t>(0, tile_dim0 * tile_dim1), - functor_type(array), error); - - EXPECT_EQ(error, ptrdiff_t(0)); -} - -} // namespace TestTile - -namespace Test { -TEST(TEST_CATEGORY, tile_layout) { - TestTile::test<TEST_EXECSPACE, 1, 1>(1, 1); - TestTile::test<TEST_EXECSPACE, 1, 1>(2, 3); - TestTile::test<TEST_EXECSPACE, 1, 1>(9, 10); - - TestTile::test<TEST_EXECSPACE, 2, 2>(1, 1); - TestTile::test<TEST_EXECSPACE, 2, 2>(2, 3); - TestTile::test<TEST_EXECSPACE, 2, 2>(4, 4); - TestTile::test<TEST_EXECSPACE, 2, 2>(9, 9); - - TestTile::test<TEST_EXECSPACE, 2, 4>(9, 9); - TestTile::test<TEST_EXECSPACE, 4, 2>(9, 9); - - TestTile::test<TEST_EXECSPACE, 4, 4>(1, 1); - TestTile::test<TEST_EXECSPACE, 4, 4>(4, 4); - TestTile::test<TEST_EXECSPACE, 4, 4>(9, 9); - TestTile::test<TEST_EXECSPACE, 4, 4>(9, 11); - - TestTile::test<TEST_EXECSPACE, 8, 8>(1, 1); - TestTile::test<TEST_EXECSPACE, 8, 8>(4, 4); - TestTile::test<TEST_EXECSPACE, 8, 8>(9, 9); - TestTile::test<TEST_EXECSPACE, 8, 8>(9, 11); -} - -} // namespace Test - -#endif // KOKKOS_ENABLE_DEPRECATED_CODE -//===================================================================== - -#endif // TEST_TILE_HPP diff --git a/packages/kokkos/core/unit_test/TestUniqueToken.hpp b/packages/kokkos/core/unit_test/TestUniqueToken.hpp index c85ba1afc..d78c35c68 100644 --- a/packages/kokkos/core/unit_test/TestUniqueToken.hpp +++ b/packages/kokkos/core/unit_test/TestUniqueToken.hpp @@ -48,23 +48,26 @@ namespace Test { -template <class Space> +template <class Space, Kokkos::Experimental::UniqueTokenScope Scope> class TestUniqueToken { public: - typedef typename Space::execution_space execution_space; - typedef Kokkos::View<int*, execution_space> view_type; + using execution_space = typename Space::execution_space; + using view_type = Kokkos::View<int*, execution_space>; - Kokkos::Experimental::UniqueToken< - execution_space, Kokkos::Experimental::UniqueTokenScope::Global> - tokens; + Kokkos::Experimental::UniqueToken<execution_space, Scope> tokens; view_type verify; view_type counts; view_type errors; + struct count_test_start_tag {}; + struct count_test_check_tag {}; + KOKKOS_INLINE_FUNCTION void operator()(long) const { - const int32_t t = tokens.acquire(); + Kokkos::Experimental::AcquireUniqueToken<execution_space, Scope> token_val( + tokens); + const int32_t t = token_val.value(); bool ok = true; @@ -79,8 +82,19 @@ class TestUniqueToken { if (!ok) { Kokkos::atomic_fetch_add(&errors(0), 1); } + } - tokens.release(t); + KOKKOS_INLINE_FUNCTION + void operator()(count_test_start_tag, long) const { + constexpr int R = 10; + int id = tokens.acquire(); + for (int j = 0; j < R; j++) counts(id)++; + tokens.release(id); + } + + KOKKOS_INLINE_FUNCTION + void operator()(count_test_check_tag, long i, int64_t& lsum) const { + lsum += counts(i); } TestUniqueToken() @@ -118,6 +132,23 @@ class TestUniqueToken { } } + // Count test for pull request #3260 + { + constexpr int N = 1000000; + constexpr int R = 10; + int num = self.tokens.size(); + Kokkos::resize(self.counts, num); + Kokkos::deep_copy(self.counts, 0); + Kokkos::parallel_for( + "Start", Kokkos::RangePolicy<Space, count_test_start_tag>(0, N), + self); + int64_t sum = 0; + Kokkos::parallel_reduce( + "Check", Kokkos::RangePolicy<Space, count_test_check_tag>(0, num), + self, sum); + ASSERT_EQ(sum, int64_t(N) * R); + } + std::cout << "TestUniqueToken max reuse = " << max << std::endl; typename view_type::HostMirror host_errors = @@ -129,6 +160,118 @@ class TestUniqueToken { } }; -TEST(TEST_CATEGORY, unique_token) { TestUniqueToken<TEST_EXECSPACE>::run(); } +TEST(TEST_CATEGORY, unique_token_global) { + TestUniqueToken<TEST_EXECSPACE, + Kokkos::Experimental::UniqueTokenScope::Global>::run(); +} + +TEST(TEST_CATEGORY, unique_token_instance) { + TestUniqueToken<TEST_EXECSPACE, + Kokkos::Experimental::UniqueTokenScope::Instance>::run(); +} + +template <class Space> +class TestAcquireTeamUniqueToken { + public: + using execution_space = typename Space::execution_space; + using view_type = Kokkos::View<int*, execution_space>; + using scratch_view = + Kokkos::View<int, typename execution_space::scratch_memory_space, + Kokkos::MemoryUnmanaged>; + using team_policy_type = Kokkos::TeamPolicy<execution_space>; + using team_member_type = typename team_policy_type::member_type; + using tokens_type = Kokkos::Experimental::UniqueToken<execution_space>; + + tokens_type tokens; + + view_type verify; + view_type counts; + view_type errors; + + KOKKOS_INLINE_FUNCTION + void operator()(team_member_type team) const { + Kokkos::Experimental::AcquireTeamUniqueToken<team_policy_type> token_val( + tokens, team); + scratch_view team_rank_0_token_val(team.team_scratch(0)); + const int32_t t = token_val.value(); + + bool ok = true; + + ok = ok && 0 <= t; + ok = ok && t < tokens.size(); + + Kokkos::single(Kokkos::PerTeam(team), [&]() { + ok = ok && 0 == Kokkos::atomic_fetch_add(&verify(t), 1); + + Kokkos::atomic_fetch_add(&counts(t), 1); + + ok = ok && 1 == Kokkos::atomic_fetch_add(&verify(t), -1); + }); + + if (team.team_rank() == 0) { + team_rank_0_token_val() = t; + } + team.team_barrier(); + ok = ok && team_rank_0_token_val() == t; + + if (!ok) { + Kokkos::atomic_fetch_add(&errors(0), 1); + } + } + + TestAcquireTeamUniqueToken(int team_size) + : tokens(execution_space::concurrency() / team_size, execution_space()), + verify("TestAcquireTeamUniqueTokenVerify", tokens.size()), + counts("TestAcquireTeamUniqueTokenCounts", tokens.size()), + errors("TestAcquireTeamUniqueTokenErrors", 1) {} + + static void run() { + const int max_team_size = team_policy_type(1, 1).team_size_max( + TestAcquireTeamUniqueToken(1), Kokkos::ParallelForTag()); + const int team_size = std::min(2, max_team_size); + TestAcquireTeamUniqueToken self(team_size); + + { + const int duplicate = 100; + const long n = duplicate * self.tokens.size(); + + team_policy_type team_policy(n, team_size); + team_policy.set_scratch_size( + 0, Kokkos::PerTeam(Kokkos::Experimental::AcquireTeamUniqueToken< + team_policy_type>::shmem_size() + + scratch_view::shmem_size())); + + Kokkos::parallel_for(team_policy, self); + Kokkos::fence(); + } + + typename view_type::HostMirror host_counts = + Kokkos::create_mirror_view(self.counts); + + Kokkos::deep_copy(host_counts, self.counts); + + int32_t max = 0; + + { + const long n = host_counts.extent(0); + for (long i = 0; i < n; ++i) { + if (max < host_counts[i]) max = host_counts[i]; + } + } + + std::cout << "TestAcquireTeamUniqueToken max reuse = " << max << std::endl; + + typename view_type::HostMirror host_errors = + Kokkos::create_mirror_view(self.errors); + + Kokkos::deep_copy(host_errors, self.errors); + + ASSERT_EQ(host_errors(0), 0); + } +}; + +TEST(TEST_CATEGORY, acquire_team_unique_token) { + TestAcquireTeamUniqueToken<TEST_EXECSPACE>::run(); +} } // namespace Test diff --git a/packages/kokkos/core/unit_test/TestUtilities.hpp b/packages/kokkos/core/unit_test/TestUtilities.hpp index f5f027a55..c9352c0d7 100644 --- a/packages/kokkos/core/unit_test/TestUtilities.hpp +++ b/packages/kokkos/core/unit_test/TestUtilities.hpp @@ -52,6 +52,24 @@ namespace Test { +void test_is_specialization_of() { + using Kokkos::Impl::is_specialization_of; + static_assert(is_specialization_of<Kokkos::pair<float, int>, Kokkos::pair>{}, + ""); + static_assert(!is_specialization_of<Kokkos::View<int*>, Kokkos::pair>{}, ""); + static_assert(is_specialization_of<Kokkos::View<int*>, Kokkos::View>{}, ""); + // NOTE Not removing cv-qualifiers + static_assert(!is_specialization_of<Kokkos::View<int*> const, Kokkos::View>{}, + ""); + // NOTE Would not compile because Kokkos::Array takes a non-type template + // parameter + // static_assert(is_specialization_of<Kokkos::Array<int, 4>, Kokkos::Array>{}, + // ""); + // But this is fine of course + static_assert(!is_specialization_of<Kokkos::Array<float, 2>, Kokkos::pair>{}, + ""); +} + inline void test_utilities() { using namespace Kokkos::Impl; @@ -353,4 +371,22 @@ inline void test_utilities() { } } +template <std::size_t... Idxs, class... Args> +std::size_t do_comma_emulation_test(std::integer_sequence<std::size_t, Idxs...>, + Args... args) { + // Count the bugs, since ASSERT_EQ is a statement and not an expression + std::size_t bugs = 0; + // Ensure in-order evaluation + std::size_t i = 0; + KOKKOS_IMPL_FOLD_COMMA_OPERATOR(bugs += std::size_t(Idxs != i++) /*, ...*/); + // Ensure expansion of multiple packs works + KOKKOS_IMPL_FOLD_COMMA_OPERATOR(bugs += std::size_t(Idxs != args) /*, ...*/); + return bugs; +} + +TEST(utilities, comma_operator_emulation) { + ASSERT_EQ( + 0, do_comma_emulation_test(std::make_index_sequence<5>{}, 0, 1, 2, 3, 4)); +} + } // namespace Test diff --git a/packages/kokkos/core/unit_test/TestViewAPI.hpp b/packages/kokkos/core/unit_test/TestViewAPI.hpp index b9847773b..e85942a8d 100644 --- a/packages/kokkos/core/unit_test/TestViewAPI.hpp +++ b/packages/kokkos/core/unit_test/TestViewAPI.hpp @@ -65,12 +65,12 @@ size_t allocation_count(const Kokkos::View<T, P...> &view) { template <typename T, class DeviceType> struct TestViewOperator { - typedef typename DeviceType::execution_space execution_space; + using execution_space = typename DeviceType::execution_space; enum { N = 1000 }; enum { D = 3 }; - typedef Kokkos::View<T * [D], execution_space> view_type; + using view_type = Kokkos::View<T * [D], execution_space>; const view_type v1; const view_type v2; @@ -97,11 +97,11 @@ struct TestViewOperator_LeftAndRight; template <class DataType, class DeviceType> struct TestViewOperator_LeftAndRight<DataType, DeviceType, 8> { - typedef typename DeviceType::execution_space execution_space; - typedef typename DeviceType::memory_space memory_space; - typedef typename execution_space::size_type size_type; + using execution_space = typename DeviceType::execution_space; + using memory_space = typename DeviceType::memory_space; + using size_type = typename execution_space::size_type; - typedef int value_type; + using value_type = int; KOKKOS_INLINE_FUNCTION static void join(volatile value_type &update, @@ -112,11 +112,11 @@ struct TestViewOperator_LeftAndRight<DataType, DeviceType, 8> { KOKKOS_INLINE_FUNCTION static void init(value_type &update) { update = 0; } - typedef Kokkos::View<DataType, Kokkos::LayoutLeft, execution_space> left_view; - typedef Kokkos::View<DataType, Kokkos::LayoutRight, execution_space> - right_view; - typedef Kokkos::View<DataType, Kokkos::LayoutStride, execution_space> - stride_view; + using left_view = Kokkos::View<DataType, Kokkos::LayoutLeft, execution_space>; + using right_view = + Kokkos::View<DataType, Kokkos::LayoutRight, execution_space>; + using stride_view = + Kokkos::View<DataType, Kokkos::LayoutStride, execution_space>; left_view left; right_view right; @@ -193,11 +193,11 @@ struct TestViewOperator_LeftAndRight<DataType, DeviceType, 8> { template <class DataType, class DeviceType> struct TestViewOperator_LeftAndRight<DataType, DeviceType, 7> { - typedef typename DeviceType::execution_space execution_space; - typedef typename DeviceType::memory_space memory_space; - typedef typename execution_space::size_type size_type; + using execution_space = typename DeviceType::execution_space; + using memory_space = typename DeviceType::memory_space; + using size_type = typename execution_space::size_type; - typedef int value_type; + using value_type = int; KOKKOS_INLINE_FUNCTION static void join(volatile value_type &update, @@ -208,9 +208,9 @@ struct TestViewOperator_LeftAndRight<DataType, DeviceType, 7> { KOKKOS_INLINE_FUNCTION static void init(value_type &update) { update = 0; } - typedef Kokkos::View<DataType, Kokkos::LayoutLeft, execution_space> left_view; - typedef Kokkos::View<DataType, Kokkos::LayoutRight, execution_space> - right_view; + using left_view = Kokkos::View<DataType, Kokkos::LayoutLeft, execution_space>; + using right_view = + Kokkos::View<DataType, Kokkos::LayoutRight, execution_space>; left_view left; right_view right; @@ -271,11 +271,11 @@ struct TestViewOperator_LeftAndRight<DataType, DeviceType, 7> { template <class DataType, class DeviceType> struct TestViewOperator_LeftAndRight<DataType, DeviceType, 6> { - typedef typename DeviceType::execution_space execution_space; - typedef typename DeviceType::memory_space memory_space; - typedef typename execution_space::size_type size_type; + using execution_space = typename DeviceType::execution_space; + using memory_space = typename DeviceType::memory_space; + using size_type = typename execution_space::size_type; - typedef int value_type; + using value_type = int; KOKKOS_INLINE_FUNCTION static void join(volatile value_type &update, @@ -286,9 +286,9 @@ struct TestViewOperator_LeftAndRight<DataType, DeviceType, 6> { KOKKOS_INLINE_FUNCTION static void init(value_type &update) { update = 0; } - typedef Kokkos::View<DataType, Kokkos::LayoutLeft, execution_space> left_view; - typedef Kokkos::View<DataType, Kokkos::LayoutRight, execution_space> - right_view; + using left_view = Kokkos::View<DataType, Kokkos::LayoutLeft, execution_space>; + using right_view = + Kokkos::View<DataType, Kokkos::LayoutRight, execution_space>; left_view left; right_view right; @@ -347,11 +347,11 @@ struct TestViewOperator_LeftAndRight<DataType, DeviceType, 6> { template <class DataType, class DeviceType> struct TestViewOperator_LeftAndRight<DataType, DeviceType, 5> { - typedef typename DeviceType::execution_space execution_space; - typedef typename DeviceType::memory_space memory_space; - typedef typename execution_space::size_type size_type; + using execution_space = typename DeviceType::execution_space; + using memory_space = typename DeviceType::memory_space; + using size_type = typename execution_space::size_type; - typedef int value_type; + using value_type = int; KOKKOS_INLINE_FUNCTION static void join(volatile value_type &update, @@ -362,11 +362,11 @@ struct TestViewOperator_LeftAndRight<DataType, DeviceType, 5> { KOKKOS_INLINE_FUNCTION static void init(value_type &update) { update = 0; } - typedef Kokkos::View<DataType, Kokkos::LayoutLeft, execution_space> left_view; - typedef Kokkos::View<DataType, Kokkos::LayoutRight, execution_space> - right_view; - typedef Kokkos::View<DataType, Kokkos::LayoutStride, execution_space> - stride_view; + using left_view = Kokkos::View<DataType, Kokkos::LayoutLeft, execution_space>; + using right_view = + Kokkos::View<DataType, Kokkos::LayoutRight, execution_space>; + using stride_view = + Kokkos::View<DataType, Kokkos::LayoutStride, execution_space>; left_view left; right_view right; @@ -435,11 +435,11 @@ struct TestViewOperator_LeftAndRight<DataType, DeviceType, 5> { template <class DataType, class DeviceType> struct TestViewOperator_LeftAndRight<DataType, DeviceType, 4> { - typedef typename DeviceType::execution_space execution_space; - typedef typename DeviceType::memory_space memory_space; - typedef typename execution_space::size_type size_type; + using execution_space = typename DeviceType::execution_space; + using memory_space = typename DeviceType::memory_space; + using size_type = typename execution_space::size_type; - typedef int value_type; + using value_type = int; KOKKOS_INLINE_FUNCTION static void join(volatile value_type &update, @@ -450,9 +450,9 @@ struct TestViewOperator_LeftAndRight<DataType, DeviceType, 4> { KOKKOS_INLINE_FUNCTION static void init(value_type &update) { update = 0; } - typedef Kokkos::View<DataType, Kokkos::LayoutLeft, execution_space> left_view; - typedef Kokkos::View<DataType, Kokkos::LayoutRight, execution_space> - right_view; + using left_view = Kokkos::View<DataType, Kokkos::LayoutLeft, execution_space>; + using right_view = + Kokkos::View<DataType, Kokkos::LayoutRight, execution_space>; left_view left; right_view right; @@ -505,11 +505,11 @@ struct TestViewOperator_LeftAndRight<DataType, DeviceType, 4> { template <class DataType, class DeviceType> struct TestViewOperator_LeftAndRight<DataType, DeviceType, 3> { - typedef typename DeviceType::execution_space execution_space; - typedef typename DeviceType::memory_space memory_space; - typedef typename execution_space::size_type size_type; + using execution_space = typename DeviceType::execution_space; + using memory_space = typename DeviceType::memory_space; + using size_type = typename execution_space::size_type; - typedef int value_type; + using value_type = int; KOKKOS_INLINE_FUNCTION static void join(volatile value_type &update, @@ -520,11 +520,11 @@ struct TestViewOperator_LeftAndRight<DataType, DeviceType, 3> { KOKKOS_INLINE_FUNCTION static void init(value_type &update) { update = 0; } - typedef Kokkos::View<DataType, Kokkos::LayoutLeft, execution_space> left_view; - typedef Kokkos::View<DataType, Kokkos::LayoutRight, execution_space> - right_view; - typedef Kokkos::View<DataType, Kokkos::LayoutStride, execution_space> - stride_view; + using left_view = Kokkos::View<DataType, Kokkos::LayoutLeft, execution_space>; + using right_view = + Kokkos::View<DataType, Kokkos::LayoutRight, execution_space>; + using stride_view = + Kokkos::View<DataType, Kokkos::LayoutStride, execution_space>; left_view left; right_view right; @@ -586,32 +586,23 @@ struct TestViewOperator_LeftAndRight<DataType, DeviceType, 3> { for (unsigned i0 = 0; i0 < unsigned(left.extent(0)); ++i0) for (unsigned i1 = 0; i1 < unsigned(left.extent(1)); ++i1) for (unsigned i2 = 0; i2 < unsigned(left.extent(2)); ++i2) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - if (&left(i0, i1, i2) != &left(i0, i1, i2, 0, 0, 0, 0, 0)) { - update |= 3; - } - if (&right(i0, i1, i2) != &right(i0, i1, i2, 0, 0, 0, 0, 0)) { - update |= 3; - } -#else if (&left(i0, i1, i2) != &left.access(i0, i1, i2, 0, 0, 0, 0, 0)) { update |= 3; } if (&right(i0, i1, i2) != &right.access(i0, i1, i2, 0, 0, 0, 0, 0)) { update |= 3; } -#endif } } }; template <class DataType, class DeviceType> struct TestViewOperator_LeftAndRight<DataType, DeviceType, 2> { - typedef typename DeviceType::execution_space execution_space; - typedef typename DeviceType::memory_space memory_space; - typedef typename execution_space::size_type size_type; + using execution_space = typename DeviceType::execution_space; + using memory_space = typename DeviceType::memory_space; + using size_type = typename execution_space::size_type; - typedef int value_type; + using value_type = int; KOKKOS_INLINE_FUNCTION static void join(volatile value_type &update, @@ -622,9 +613,9 @@ struct TestViewOperator_LeftAndRight<DataType, DeviceType, 2> { KOKKOS_INLINE_FUNCTION static void init(value_type &update) { update = 0; } - typedef Kokkos::View<DataType, Kokkos::LayoutLeft, execution_space> left_view; - typedef Kokkos::View<DataType, Kokkos::LayoutRight, execution_space> - right_view; + using left_view = Kokkos::View<DataType, Kokkos::LayoutLeft, execution_space>; + using right_view = + Kokkos::View<DataType, Kokkos::LayoutRight, execution_space>; left_view left; right_view right; @@ -671,32 +662,23 @@ struct TestViewOperator_LeftAndRight<DataType, DeviceType, 2> { for (unsigned i0 = 0; i0 < unsigned(left.extent(0)); ++i0) for (unsigned i1 = 0; i1 < unsigned(left.extent(1)); ++i1) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - if (&left(i0, i1) != &left(i0, i1, 0, 0, 0, 0, 0, 0)) { - update |= 3; - } - if (&right(i0, i1) != &right(i0, i1, 0, 0, 0, 0, 0, 0)) { - update |= 3; - } -#else if (&left(i0, i1) != &left.access(i0, i1, 0, 0, 0, 0, 0, 0)) { update |= 3; } if (&right(i0, i1) != &right.access(i0, i1, 0, 0, 0, 0, 0, 0)) { update |= 3; } -#endif } } }; template <class DataType, class DeviceType> struct TestViewOperator_LeftAndRight<DataType, DeviceType, 1> { - typedef typename DeviceType::execution_space execution_space; - typedef typename DeviceType::memory_space memory_space; - typedef typename execution_space::size_type size_type; + using execution_space = typename DeviceType::execution_space; + using memory_space = typename DeviceType::memory_space; + using size_type = typename execution_space::size_type; - typedef int value_type; + using value_type = int; KOKKOS_INLINE_FUNCTION static void join(volatile value_type &update, @@ -707,11 +689,11 @@ struct TestViewOperator_LeftAndRight<DataType, DeviceType, 1> { KOKKOS_INLINE_FUNCTION static void init(value_type &update) { update = 0; } - typedef Kokkos::View<DataType, Kokkos::LayoutLeft, execution_space> left_view; - typedef Kokkos::View<DataType, Kokkos::LayoutRight, execution_space> - right_view; - typedef Kokkos::View<DataType, Kokkos::LayoutStride, execution_space> - stride_view; + using left_view = Kokkos::View<DataType, Kokkos::LayoutLeft, execution_space>; + using right_view = + Kokkos::View<DataType, Kokkos::LayoutRight, execution_space>; + using stride_view = + Kokkos::View<DataType, Kokkos::LayoutStride, execution_space>; left_view left; right_view right; @@ -741,21 +723,12 @@ struct TestViewOperator_LeftAndRight<DataType, DeviceType, 1> { KOKKOS_INLINE_FUNCTION void operator()(const size_type, value_type &update) const { for (unsigned i0 = 0; i0 < unsigned(left.extent(0)); ++i0) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - if (&left(i0) != &left(i0, 0, 0, 0, 0, 0, 0, 0)) { - update |= 3; - } - if (&right(i0) != &right(i0, 0, 0, 0, 0, 0, 0, 0)) { - update |= 3; - } -#else if (&left(i0) != &left.access(i0, 0, 0, 0, 0, 0, 0, 0)) { update |= 3; } if (&right(i0) != &right.access(i0, 0, 0, 0, 0, 0, 0, 0)) { update |= 3; } -#endif if (&left(i0) != &left_stride(i0)) { update |= 4; } @@ -846,6 +819,44 @@ struct TestViewMirror { return v; } + static void test_allocated() { + using ExecutionSpace = typename DeviceType::execution_space; + using dynamic_view = Kokkos::View<int *, ExecutionSpace>; + using static_view = Kokkos::View<int[5], ExecutionSpace>; + using unmanaged_view = + Kokkos::View<int *, ExecutionSpace, + Kokkos::MemoryTraits<Kokkos::Unmanaged> >; + int const N = 100; + + dynamic_view d1; + static_view s1; + unmanaged_view u1; + ASSERT_FALSE(d1.is_allocated()); + ASSERT_FALSE(s1.is_allocated()); + ASSERT_FALSE(u1.is_allocated()); + + d1 = dynamic_view("d1", N); + dynamic_view d2(d1); + dynamic_view d3("d3", N); + ASSERT_TRUE(d1.is_allocated()); + ASSERT_TRUE(d2.is_allocated()); + ASSERT_TRUE(d3.is_allocated()); + + s1 = static_view("s1"); + static_view s2(s1); + static_view s3("s3"); + ASSERT_TRUE(s1.is_allocated()); + ASSERT_TRUE(s2.is_allocated()); + ASSERT_TRUE(s3.is_allocated()); + + u1 = unmanaged_view(d1.data(), N); + unmanaged_view u2(u1); + unmanaged_view u3(d1.data(), N); + ASSERT_TRUE(u1.is_allocated()); + ASSERT_TRUE(u2.is_allocated()); + ASSERT_TRUE(u3.is_allocated()); + } + static void test_mirror_copy_const_data_type() { using ExecutionSpace = typename DeviceType::execution_space; int const N = 100; @@ -859,9 +870,8 @@ struct TestViewMirror { template <class MemoryTraits, class Space> struct CopyUnInit { - typedef typename Kokkos::Impl::MirrorViewType< - Space, double *, Layout, Kokkos::HostSpace, MemoryTraits>::view_type - mirror_view_type; + using mirror_view_type = typename Kokkos::Impl::MirrorViewType< + Space, double *, Layout, Kokkos::HostSpace, MemoryTraits>::view_type; mirror_view_type a_d; @@ -913,6 +923,7 @@ struct TestViewMirror { test_mirror_copy<Kokkos::MemoryTraits<0> >(); test_mirror_copy<Kokkos::MemoryTraits<Kokkos::Unmanaged> >(); test_mirror_copy_const_data_type(); + test_allocated(); test_mirror_no_initialize<Kokkos::MemoryTraits<0> >(); test_mirror_no_initialize<Kokkos::MemoryTraits<Kokkos::Unmanaged> >(); } @@ -923,19 +934,19 @@ struct TestViewMirror { template <typename T, class DeviceType> class TestViewAPI { public: - typedef DeviceType device; + using device = DeviceType; enum { N0 = 1000, N1 = 3, N2 = 5, N3 = 7 }; - typedef Kokkos::View<T, device> dView0; - typedef Kokkos::View<T *, device> dView1; - typedef Kokkos::View<T * [N1], device> dView2; - typedef Kokkos::View<T * [N1][N2], device> dView3; - typedef Kokkos::View<T * [N1][N2][N3], device> dView4; - typedef Kokkos::View<const T * [N1][N2][N3], device> const_dView4; - typedef Kokkos::View<T ****, device, Kokkos::MemoryUnmanaged> - dView4_unmanaged; - typedef typename dView0::host_mirror_space host; + using dView0 = Kokkos::View<T, device>; + using dView1 = Kokkos::View<T *, device>; + using dView2 = Kokkos::View<T * [N1], device>; + using dView3 = Kokkos::View<T * [N1][N2], device>; + using dView4 = Kokkos::View<T * [N1][N2][N3], device>; + using const_dView4 = Kokkos::View<const T * [N1][N2][N3], device>; + using dView4_unmanaged = + Kokkos::View<T ****, device, Kokkos::MemoryUnmanaged>; + using host = typename dView0::host_mirror_space; static void run_test_view_operator_a() { { @@ -974,8 +985,8 @@ class TestViewAPI { } static void run_test_mirror() { - typedef Kokkos::View<int, host> view_type; - typedef typename view_type::HostMirror mirror_type; + using view_type = Kokkos::View<int, host>; + using mirror_type = typename view_type::HostMirror; static_assert(std::is_same<typename view_type::memory_space, typename mirror_type::memory_space>::value, @@ -991,7 +1002,7 @@ class TestViewAPI { } static void run_test_scalar() { - typedef typename dView0::HostMirror hView0; + using hView0 = typename dView0::HostMirror; dView0 dx, dy; hView0 hx, hy; @@ -1014,16 +1025,16 @@ class TestViewAPI { static void run_test() { // mfh 14 Feb 2014: This test doesn't actually create instances of - // these types. In order to avoid "declared but unused typedef" + // these types. In order to avoid "unused type alias" // warnings, we declare empty instances of these types, with the // usual "(void)" marker to avoid compiler warnings for unused // variables. - typedef typename dView0::HostMirror hView0; - typedef typename dView1::HostMirror hView1; - typedef typename dView2::HostMirror hView2; - typedef typename dView3::HostMirror hView3; - typedef typename dView4::HostMirror hView4; + using hView0 = typename dView0::HostMirror; + using hView1 = typename dView1::HostMirror; + using hView2 = typename dView2::HostMirror; + using hView3 = typename dView3::HostMirror; + using hView4 = typename dView4::HostMirror; { hView0 thing; @@ -1082,13 +1093,7 @@ class TestViewAPI { { // Destruction of this view should be harmless. - const_dView4 unmanaged_from_ptr_const_dx(dx.data(), dx.extent(0) -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - , - dx.extent(1), dx.extent(2), - dx.extent(3) -#endif - ); + const_dView4 unmanaged_from_ptr_const_dx(dx.data(), dx.extent(0)); } const_dView4 const_dx = dx; @@ -1140,6 +1145,8 @@ class TestViewAPI { // T v2 = hx( 0, 0 ); // Generates compile error as intended. // hx( 0, 0 ) = v2; // Generates compile error as intended. + // FIXME_SYCL requires MDRange policy +#ifndef KOKKOS_ENABLE_SYCL // Testing with asynchronous deep copy with respect to device { size_t count = 0; @@ -1242,6 +1249,7 @@ class TestViewAPI { ASSERT_EQ(hx(ip, i1, i2, i3), T(0)); } } +#endif dz = dx; ASSERT_EQ(dx, dz); @@ -1294,7 +1302,7 @@ class TestViewAPI { } } - typedef T DataType[2]; + using DataType = T[2]; static void check_auto_conversion_to_const( const Kokkos::View<const DataType, device> &arg_const, @@ -1303,10 +1311,10 @@ class TestViewAPI { } static void run_test_const() { - typedef Kokkos::View<DataType, device> typeX; - typedef Kokkos::View<const DataType, device> const_typeX; - typedef Kokkos::View<const DataType, device, Kokkos::MemoryRandomAccess> - const_typeR; + using typeX = Kokkos::View<DataType, device>; + using const_typeX = Kokkos::View<const DataType, device>; + using const_typeR = + Kokkos::View<const DataType, device, Kokkos::MemoryRandomAccess>; typeX x("X"); const_typeX xc = x; @@ -1331,7 +1339,7 @@ class TestViewAPI { } static void run_test_subview() { - typedef Kokkos::View<const T, device> sView; + using sView = Kokkos::View<const T, device>; dView0 d0("d0"); dView1 d1("d1", N0); @@ -1347,13 +1355,13 @@ class TestViewAPI { } static void run_test_subview_strided() { - typedef Kokkos::View<int ****, Kokkos::LayoutLeft, host> view_left_4; - typedef Kokkos::View<int ****, Kokkos::LayoutRight, host> view_right_4; - typedef Kokkos::View<int **, Kokkos::LayoutLeft, host> view_left_2; - typedef Kokkos::View<int **, Kokkos::LayoutRight, host> view_right_2; + using view_left_4 = Kokkos::View<int ****, Kokkos::LayoutLeft, host>; + using view_right_4 = Kokkos::View<int ****, Kokkos::LayoutRight, host>; + using view_left_2 = Kokkos::View<int **, Kokkos::LayoutLeft, host>; + using view_right_2 = Kokkos::View<int **, Kokkos::LayoutRight, host>; - typedef Kokkos::View<int *, Kokkos::LayoutStride, host> view_stride_1; - typedef Kokkos::View<int **, Kokkos::LayoutStride, host> view_stride_2; + using view_stride_1 = Kokkos::View<int *, Kokkos::LayoutStride, host>; + using view_stride_2 = Kokkos::View<int **, Kokkos::LayoutStride, host>; view_left_2 xl2("xl2", 100, 200); view_right_2 xr2("xr2", 100, 200); @@ -1392,18 +1400,18 @@ class TestViewAPI { static void run_test_vector() { static const unsigned Length = 1000, Count = 8; - typedef Kokkos::View<T *, Kokkos::LayoutLeft, host> vector_type; - typedef Kokkos::View<T **, Kokkos::LayoutLeft, host> multivector_type; + using vector_type = Kokkos::View<T *, Kokkos::LayoutLeft, host>; + using multivector_type = Kokkos::View<T **, Kokkos::LayoutLeft, host>; - typedef Kokkos::View<T *, Kokkos::LayoutRight, host> vector_right_type; - typedef Kokkos::View<T **, Kokkos::LayoutRight, host> - multivector_right_type; + using vector_right_type = Kokkos::View<T *, Kokkos::LayoutRight, host>; + using multivector_right_type = + Kokkos::View<T **, Kokkos::LayoutRight, host>; - typedef Kokkos::View<const T *, Kokkos::LayoutRight, host> - const_vector_right_type; - typedef Kokkos::View<const T *, Kokkos::LayoutLeft, host> const_vector_type; - typedef Kokkos::View<const T **, Kokkos::LayoutLeft, host> - const_multivector_type; + using const_vector_right_type = + Kokkos::View<const T *, Kokkos::LayoutRight, host>; + using const_vector_type = Kokkos::View<const T *, Kokkos::LayoutLeft, host>; + using const_multivector_type = + Kokkos::View<const T **, Kokkos::LayoutLeft, host>; multivector_type mv = multivector_type("mv", Length, Count); multivector_right_type mv_right = @@ -1473,6 +1481,12 @@ class TestViewAPI { if (std::is_same<typename dView1::memory_space, Kokkos::Experimental::OpenMPTargetSpace>::value) return; +#endif +// FIXME_SYCL +#ifdef KOKKOS_ENABLE_SYCL + if (std::is_same<typename dView1::memory_space, + Kokkos::Experimental::SYCLDeviceUSMSpace>::value) + return; #endif auto alloc_size = std::numeric_limits<size_t>::max() - 42; try { diff --git a/packages/kokkos/core/unit_test/TestViewAPI_c.hpp b/packages/kokkos/core/unit_test/TestViewAPI_c.hpp index a70792dc6..0cfe1b8c0 100644 --- a/packages/kokkos/core/unit_test/TestViewAPI_c.hpp +++ b/packages/kokkos/core/unit_test/TestViewAPI_c.hpp @@ -47,7 +47,10 @@ namespace Test { TEST(TEST_CATEGORY, view_api_c) { + // FIXME_SYCL requires deep_copy on the default memory space +#ifndef KOKKOS_ENABLE_SYCL TestViewAPI<double, TEST_EXECSPACE>::run_test_deep_copy_empty(); +#endif TestViewAPI<double, TEST_EXECSPACE>::run_test_view_operator_b(); } diff --git a/packages/kokkos/core/unit_test/TestViewAPI_e.hpp b/packages/kokkos/core/unit_test/TestViewAPI_e.hpp index 40ae08363..cb586c76a 100644 --- a/packages/kokkos/core/unit_test/TestViewAPI_e.hpp +++ b/packages/kokkos/core/unit_test/TestViewAPI_e.hpp @@ -59,13 +59,13 @@ TEST(TEST_CATEGORY, view_remap) { std::conditional<std::is_same<TEST_EXECSPACE, Kokkos::Cuda>::value, \ Kokkos::CudaHostPinnedSpace, TEST_EXECSPACE>::type #else -#ifdef KOKKOS_ENABLE_ROCM -#define EXECSPACE \ - std::conditional< \ - std::is_same<TEST_EXECSPACE, Kokkos::Experimental::ROCm>::value, \ - Kokkos::Experimental::ROCmHostPinnedSpace, TEST_EXECSPACE>::type +#ifdef KOKKOS_ENABLE_HIP +#define EXECSPACE \ + std::conditional< \ + std::is_same<TEST_EXECSPACE, Kokkos::Experimental::HIP>::value, \ + Kokkos::Experimental::HIPHostPinnedSpace, TEST_EXECSPACE>::type #else -#if defined(KOKKOS_ENABLE_OPENMPTARGET) +#if defined(KOKKOS_ENABLE_OPENMPTARGET) || defined(KOKKOS_ENABLE_SYCL) #define EXECSPACE Kokkos::HostSpace #else #define EXECSPACE TEST_EXECSPACE @@ -73,14 +73,14 @@ TEST(TEST_CATEGORY, view_remap) { #endif #endif - typedef Kokkos::View<double * [N1][N2][N3], Kokkos::LayoutRight, EXECSPACE> - output_type; + using output_type = + Kokkos::View<double * [N1][N2][N3], Kokkos::LayoutRight, EXECSPACE>; - typedef Kokkos::View<int* * [N2][N3], Kokkos::LayoutLeft, EXECSPACE> - input_type; + using input_type = + Kokkos::View<int* * [N2][N3], Kokkos::LayoutLeft, EXECSPACE>; - typedef Kokkos::View<int * [N0][N2][N3], Kokkos::LayoutLeft, EXECSPACE> - diff_type; + using diff_type = + Kokkos::View<int * [N0][N2][N3], Kokkos::LayoutLeft, EXECSPACE>; output_type output("output", N0); input_type input("input", N0, N1); @@ -98,6 +98,8 @@ TEST(TEST_CATEGORY, view_remap) { Kokkos::fence(); // Kokkos::deep_copy( diff, input ); // Throw with incompatible shape. + // FIXME_SYCL requires MDRange policy +#ifndef KOKKOS_ENABLE_SYCL Kokkos::deep_copy(output, input); Kokkos::fence(); @@ -110,6 +112,7 @@ TEST(TEST_CATEGORY, view_remap) { ++value; ASSERT_EQ(value, ((int)output(i0, i1, i2, i3))); } +#endif } TEST(TEST_CATEGORY, view_mirror_nonconst) { diff --git a/packages/kokkos/core/unit_test/TestViewCopy.hpp b/packages/kokkos/core/unit_test/TestViewCopy_a.hpp similarity index 65% rename from packages/kokkos/core/unit_test/TestViewCopy.hpp rename to packages/kokkos/core/unit_test/TestViewCopy_a.hpp index 6db2d3a4f..f0b5b8ff9 100644 --- a/packages/kokkos/core/unit_test/TestViewCopy.hpp +++ b/packages/kokkos/core/unit_test/TestViewCopy_a.hpp @@ -104,6 +104,8 @@ TEST(TEST_CATEGORY, view_copy_tests) { typename TEST_EXECSPACE::memory_space>::accessible; // Contiguous copies + // FIXME_SYCL requires MDRangePolicy +#ifndef KOKKOS_ENABLE_SYCL { Kokkos::deep_copy(defaulted, defaulted); } { Kokkos::deep_copy(a, 1); @@ -149,6 +151,7 @@ TEST(TEST_CATEGORY, view_copy_tests) { Kokkos::deep_copy(b, h_b); ASSERT_TRUE(run_check(b, 4)); } +#endif // Non contiguous copies { Kokkos::deep_copy(s_a, 5); @@ -177,6 +180,8 @@ TEST(TEST_CATEGORY, view_copy_tests) { } } + // FIXME_SYCL requires MDRangePolicy +#ifndef KOKKOS_ENABLE_SYCL // Contiguous copies { Kokkos::deep_copy(dev, defaulted, defaulted); } { @@ -223,6 +228,9 @@ TEST(TEST_CATEGORY, view_copy_tests) { Kokkos::deep_copy(dev, b, h_b); ASSERT_TRUE(run_check(b, 4)); } +#endif + + // WORKS if commenting out below stuff // Non contiguous copies { Kokkos::deep_copy(dev, s_a, 5); @@ -251,6 +259,8 @@ TEST(TEST_CATEGORY, view_copy_tests) { } } + // FIXME_SYCL requires MDRangePolicy +#ifndef KOKKOS_ENABLE_SYCL // Contiguous copies { Kokkos::deep_copy(host, defaulted, defaulted); } { @@ -297,6 +307,7 @@ TEST(TEST_CATEGORY, view_copy_tests) { Kokkos::deep_copy(host, b, h_b); ASSERT_TRUE(run_check(b, 4)); } +#endif // Non contiguous copies { Kokkos::deep_copy(host, s_a, 5); @@ -325,193 +336,4 @@ TEST(TEST_CATEGORY, view_copy_tests) { } } } - -TEST(TEST_CATEGORY, view_copy_tests_rank_0) { - Kokkos::View<int, TEST_EXECSPACE> defaulted; - Kokkos::View<int, TEST_EXECSPACE> a("A"); - Kokkos::View<int, TEST_EXECSPACE> b("B"); - auto h_a = Kokkos::create_mirror(a); - auto h_b = Kokkos::create_mirror(b); - auto m_a = Kokkos::create_mirror_view(a); - auto dev = typename TEST_EXECSPACE::execution_space(); - auto host = Kokkos::DefaultHostExecutionSpace(); - - // No execution space - { Kokkos::deep_copy(defaulted, defaulted); } - { - Kokkos::deep_copy(a, 1); - ASSERT_TRUE(run_check(a, 1)); - } - { - Kokkos::deep_copy(a, a); - ASSERT_TRUE(run_check(a, 1)); - } - { - Kokkos::deep_copy(m_a, a); - ASSERT_TRUE(run_check(m_a, 1)); - } - { - Kokkos::deep_copy(m_a, 2); - ASSERT_TRUE(run_check(m_a, 2)); - } - { - Kokkos::deep_copy(a, m_a); - ASSERT_TRUE(run_check(a, 2)); - } - { - Kokkos::deep_copy(b, 3); - ASSERT_TRUE(run_check(b, 3)); - } - { - Kokkos::deep_copy(h_a, 4); - ASSERT_TRUE(run_check(h_a, 4)); - } - { - Kokkos::deep_copy(a, b); - ASSERT_TRUE(run_check(a, 3)); - } - { - Kokkos::deep_copy(h_b, h_a); - ASSERT_TRUE(run_check(h_b, 4)); - } - { - Kokkos::deep_copy(h_a, a); - ASSERT_TRUE(run_check(h_a, 3)); - } - { - Kokkos::deep_copy(b, h_b); - ASSERT_TRUE(run_check(b, 4)); - } - - // Device - { Kokkos::deep_copy(dev, defaulted, defaulted); } - { - Kokkos::deep_copy(dev, a, 1); - ASSERT_TRUE(run_check(a, 1)); - } - { - Kokkos::deep_copy(dev, a, a); - ASSERT_TRUE(run_check(a, 1)); - } - { - Kokkos::deep_copy(dev, m_a, a); - ASSERT_TRUE(run_check(m_a, 1)); - } - { - Kokkos::deep_copy(dev, m_a, 2); - ASSERT_TRUE(run_check(m_a, 2)); - } - { - Kokkos::deep_copy(dev, a, m_a); - ASSERT_TRUE(run_check(a, 2)); - } - { - Kokkos::deep_copy(dev, b, 3); - ASSERT_TRUE(run_check(b, 3)); - } - { - Kokkos::deep_copy(dev, h_a, 4); - ASSERT_TRUE(run_check(h_a, 4)); - } - { - Kokkos::deep_copy(dev, a, b); - ASSERT_TRUE(run_check(a, 3)); - } - { - Kokkos::deep_copy(dev, h_b, h_a); - ASSERT_TRUE(run_check(h_b, 4)); - } - { - Kokkos::deep_copy(dev, h_a, a); - ASSERT_TRUE(run_check(h_a, 3)); - } - { - Kokkos::deep_copy(dev, b, h_b); - ASSERT_TRUE(run_check(b, 4)); - } - - // Host - { Kokkos::deep_copy(host, defaulted, defaulted); } - { - Kokkos::deep_copy(host, a, 1); - ASSERT_TRUE(run_check(a, 1)); - } - { - Kokkos::deep_copy(host, a, a); - ASSERT_TRUE(run_check(a, 1)); - } - { - Kokkos::deep_copy(host, m_a, a); - ASSERT_TRUE(run_check(m_a, 1)); - } - { - Kokkos::deep_copy(host, m_a, 2); - ASSERT_TRUE(run_check(m_a, 2)); - } - { - Kokkos::deep_copy(host, a, m_a); - ASSERT_TRUE(run_check(a, 2)); - } - { - Kokkos::deep_copy(host, b, 3); - ASSERT_TRUE(run_check(b, 3)); - } - { - Kokkos::deep_copy(host, h_a, 4); - ASSERT_TRUE(run_check(h_a, 4)); - } - { - Kokkos::deep_copy(host, a, b); - ASSERT_TRUE(run_check(a, 3)); - } - { - Kokkos::deep_copy(host, h_b, h_a); - ASSERT_TRUE(run_check(h_b, 4)); - } - { - Kokkos::deep_copy(host, h_a, a); - ASSERT_TRUE(run_check(h_a, 3)); - } - { - Kokkos::deep_copy(host, b, h_b); - ASSERT_TRUE(run_check(b, 4)); - } -} - -TEST(TEST_CATEGORY, view_copy_degenerated) { - Kokkos::View<int*, TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::Unmanaged>> - v_um_def_1; - Kokkos::View<int*, TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::Unmanaged>> - v_um_1(reinterpret_cast<int*>(-1), 0); - Kokkos::View<int*, TEST_EXECSPACE> v_m_def_1; - Kokkos::View<int*, TEST_EXECSPACE> v_m_1("v_m_1", 0); - - Kokkos::View<int*, TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::Unmanaged>> - v_um_def_2; - Kokkos::View<int*, TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::Unmanaged>> - v_um_2(reinterpret_cast<int*>(-1), 0); - Kokkos::View<int*, TEST_EXECSPACE> v_m_def_2; - Kokkos::View<int*, TEST_EXECSPACE> v_m_2("v_m_2", 0); - - Kokkos::deep_copy(v_um_def_1, v_um_def_2); - Kokkos::deep_copy(v_um_def_1, v_um_2); - Kokkos::deep_copy(v_um_def_1, v_m_def_2); - Kokkos::deep_copy(v_um_def_1, v_m_2); - - Kokkos::deep_copy(v_um_1, v_um_def_2); - Kokkos::deep_copy(v_um_1, v_um_2); - Kokkos::deep_copy(v_um_1, v_m_def_2); - Kokkos::deep_copy(v_um_1, v_m_2); - - Kokkos::deep_copy(v_m_def_1, v_um_def_2); - Kokkos::deep_copy(v_m_def_1, v_um_2); - Kokkos::deep_copy(v_m_def_1, v_m_def_2); - Kokkos::deep_copy(v_m_def_1, v_m_2); - - Kokkos::deep_copy(v_m_1, v_um_def_2); - Kokkos::deep_copy(v_m_1, v_um_2); - Kokkos::deep_copy(v_m_1, v_m_def_2); - Kokkos::deep_copy(v_m_1, v_m_2); -} - } // namespace Test diff --git a/packages/kokkos/core/unit_test/TestViewCopy_b.hpp b/packages/kokkos/core/unit_test/TestViewCopy_b.hpp new file mode 100644 index 000000000..79647caa9 --- /dev/null +++ b/packages/kokkos/core/unit_test/TestViewCopy_b.hpp @@ -0,0 +1,268 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include <cstdio> + +#include <gtest/gtest.h> + +#include <Kokkos_Core.hpp> + +namespace Test { + +namespace { + +template <class ViewType> +struct CheckResult { + using value_type = typename ViewType::non_const_value_type; + ViewType v; + value_type value; + CheckResult(ViewType v_, value_type value_) : v(v_), value(value_){}; + KOKKOS_FUNCTION + void operator()(const int i, int& lsum) const { + for (int j = 0; j < static_cast<int>(v.extent(1)); j++) { + if (v.access(i, j) != value) lsum++; + } + } +}; + +template <class ViewType> +bool run_check(ViewType v, typename ViewType::value_type value) { + using exec_space = typename ViewType::memory_space::execution_space; + int errors = 0; + Kokkos::fence(); + Kokkos::parallel_reduce(Kokkos::RangePolicy<exec_space>(0, v.extent(0)), + CheckResult<ViewType>(v, value), errors); + return errors == 0; +} + +} // namespace + +TEST(TEST_CATEGORY, view_copy_tests_rank_0) { + Kokkos::View<int, TEST_EXECSPACE> defaulted; + Kokkos::View<int, TEST_EXECSPACE> a("A"); + Kokkos::View<int, TEST_EXECSPACE> b("B"); + auto h_a = Kokkos::create_mirror(a); + auto h_b = Kokkos::create_mirror(b); + auto m_a = Kokkos::create_mirror_view(a); + auto dev = typename TEST_EXECSPACE::execution_space(); + auto host = Kokkos::DefaultHostExecutionSpace(); + + // No execution space + { Kokkos::deep_copy(defaulted, defaulted); } + { + Kokkos::deep_copy(a, 1); + ASSERT_TRUE(run_check(a, 1)); + } + { + Kokkos::deep_copy(a, a); + ASSERT_TRUE(run_check(a, 1)); + } + { + Kokkos::deep_copy(m_a, a); + ASSERT_TRUE(run_check(m_a, 1)); + } + { + Kokkos::deep_copy(m_a, 2); + ASSERT_TRUE(run_check(m_a, 2)); + } + { + Kokkos::deep_copy(a, m_a); + ASSERT_TRUE(run_check(a, 2)); + } + { + Kokkos::deep_copy(b, 3); + ASSERT_TRUE(run_check(b, 3)); + } + { + Kokkos::deep_copy(h_a, 4); + ASSERT_TRUE(run_check(h_a, 4)); + } + { + Kokkos::deep_copy(a, b); + ASSERT_TRUE(run_check(a, 3)); + } + { + Kokkos::deep_copy(h_b, h_a); + ASSERT_TRUE(run_check(h_b, 4)); + } + { + Kokkos::deep_copy(h_a, a); + ASSERT_TRUE(run_check(h_a, 3)); + } + { + Kokkos::deep_copy(b, h_b); + ASSERT_TRUE(run_check(b, 4)); + } + + // Device + { Kokkos::deep_copy(dev, defaulted, defaulted); } + { + Kokkos::deep_copy(dev, a, 1); + ASSERT_TRUE(run_check(a, 1)); + } + { + Kokkos::deep_copy(dev, a, a); + ASSERT_TRUE(run_check(a, 1)); + } + { + Kokkos::deep_copy(dev, m_a, a); + ASSERT_TRUE(run_check(m_a, 1)); + } + { + Kokkos::deep_copy(dev, m_a, 2); + ASSERT_TRUE(run_check(m_a, 2)); + } + { + Kokkos::deep_copy(dev, a, m_a); + ASSERT_TRUE(run_check(a, 2)); + } + { + Kokkos::deep_copy(dev, b, 3); + ASSERT_TRUE(run_check(b, 3)); + } + { + Kokkos::deep_copy(dev, h_a, 4); + ASSERT_TRUE(run_check(h_a, 4)); + } + { + Kokkos::deep_copy(dev, a, b); + ASSERT_TRUE(run_check(a, 3)); + } + { + Kokkos::deep_copy(dev, h_b, h_a); + ASSERT_TRUE(run_check(h_b, 4)); + } + { + Kokkos::deep_copy(dev, h_a, a); + ASSERT_TRUE(run_check(h_a, 3)); + } + { + Kokkos::deep_copy(dev, b, h_b); + ASSERT_TRUE(run_check(b, 4)); + } + + // Host + { Kokkos::deep_copy(host, defaulted, defaulted); } + { + Kokkos::deep_copy(host, a, 1); + ASSERT_TRUE(run_check(a, 1)); + } + { + Kokkos::deep_copy(host, a, a); + ASSERT_TRUE(run_check(a, 1)); + } + { + Kokkos::deep_copy(host, m_a, a); + ASSERT_TRUE(run_check(m_a, 1)); + } + { + Kokkos::deep_copy(host, m_a, 2); + ASSERT_TRUE(run_check(m_a, 2)); + } + { + Kokkos::deep_copy(host, a, m_a); + ASSERT_TRUE(run_check(a, 2)); + } + { + Kokkos::deep_copy(host, b, 3); + ASSERT_TRUE(run_check(b, 3)); + } + { + Kokkos::deep_copy(host, h_a, 4); + ASSERT_TRUE(run_check(h_a, 4)); + } + { + Kokkos::deep_copy(host, a, b); + ASSERT_TRUE(run_check(a, 3)); + } + { + Kokkos::deep_copy(host, h_b, h_a); + ASSERT_TRUE(run_check(h_b, 4)); + } + { + Kokkos::deep_copy(host, h_a, a); + ASSERT_TRUE(run_check(h_a, 3)); + } + { + Kokkos::deep_copy(host, b, h_b); + ASSERT_TRUE(run_check(b, 4)); + } +} + +TEST(TEST_CATEGORY, view_copy_degenerated) { + Kokkos::View<int*, TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::Unmanaged>> + v_um_def_1; + Kokkos::View<int*, TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::Unmanaged>> + v_um_1(reinterpret_cast<int*>(-1), 0); + Kokkos::View<int*, TEST_EXECSPACE> v_m_def_1; + Kokkos::View<int*, TEST_EXECSPACE> v_m_1("v_m_1", 0); + + Kokkos::View<int*, TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::Unmanaged>> + v_um_def_2; + Kokkos::View<int*, TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::Unmanaged>> + v_um_2(reinterpret_cast<int*>(-1), 0); + Kokkos::View<int*, TEST_EXECSPACE> v_m_def_2; + Kokkos::View<int*, TEST_EXECSPACE> v_m_2("v_m_2", 0); + + Kokkos::deep_copy(v_um_def_1, v_um_def_2); + Kokkos::deep_copy(v_um_def_1, v_um_2); + Kokkos::deep_copy(v_um_def_1, v_m_def_2); + Kokkos::deep_copy(v_um_def_1, v_m_2); + + Kokkos::deep_copy(v_um_1, v_um_def_2); + Kokkos::deep_copy(v_um_1, v_um_2); + Kokkos::deep_copy(v_um_1, v_m_def_2); + Kokkos::deep_copy(v_um_1, v_m_2); + + Kokkos::deep_copy(v_m_def_1, v_um_def_2); + Kokkos::deep_copy(v_m_def_1, v_um_2); + Kokkos::deep_copy(v_m_def_1, v_m_def_2); + Kokkos::deep_copy(v_m_def_1, v_m_2); + + Kokkos::deep_copy(v_m_1, v_um_def_2); + Kokkos::deep_copy(v_m_1, v_um_2); + Kokkos::deep_copy(v_m_1, v_m_def_2); + Kokkos::deep_copy(v_m_1, v_m_2); +} +} // namespace Test diff --git a/packages/kokkos/core/unit_test/TestViewCtorPropEmbeddedDim.hpp b/packages/kokkos/core/unit_test/TestViewCtorPropEmbeddedDim.hpp index 30701b3a4..d6b3c33eb 100644 --- a/packages/kokkos/core/unit_test/TestViewCtorPropEmbeddedDim.hpp +++ b/packages/kokkos/core/unit_test/TestViewCtorPropEmbeddedDim.hpp @@ -87,10 +87,10 @@ struct TestViewCtorProp_EmbeddedDim { { // Two views auto view_alloc_arg = Kokkos::common_view_alloc_prop(vi1, vd1); - typedef - typename decltype(view_alloc_arg)::value_type CommonViewValueType; - typedef typename Kokkos::View<CommonViewValueType*, ExecSpace> CVT; - typedef typename CVT::HostMirror HostCVT; + using CommonViewValueType = + typename decltype(view_alloc_arg)::value_type; + using CVT = typename Kokkos::View<CommonViewValueType*, ExecSpace>; + using HostCVT = typename CVT::HostMirror; // Construct View using the common type; for case of specialization, an // 'embedded_dim' would be stored by view_alloc_arg @@ -128,10 +128,10 @@ struct TestViewCtorProp_EmbeddedDim { { // Single view auto view_alloc_arg = Kokkos::common_view_alloc_prop(vi1); - typedef - typename decltype(view_alloc_arg)::value_type CommonViewValueType; - typedef typename Kokkos::View<CommonViewValueType*, ExecSpace> CVT; - typedef typename CVT::HostMirror HostCVT; + using CommonViewValueType = + typename decltype(view_alloc_arg)::value_type; + using CVT = typename Kokkos::View<CommonViewValueType*, ExecSpace>; + using HostCVT = typename CVT::HostMirror; // Construct View using the common type; for case of specialization, an // 'embedded_dim' would be stored by view_alloc_arg @@ -157,4 +157,10 @@ TEST(TEST_CATEGORY, viewctorprop_embedded_dim) { TestViewCtorProp_EmbeddedDim<TEST_EXECSPACE>::test_vcpt(2, 3); } +TEST(TEST_CATEGORY, + viewctorpop_view_allocate_without_initializing_backward_compatility) { + using deprecated_view_alloc = Kokkos::ViewAllocateWithoutInitializing; + Kokkos::View<int**, TEST_EXECSPACE> v(deprecated_view_alloc("v"), 5, 7); +} + } // namespace Test diff --git a/packages/kokkos/core/unit_test/TestViewLayoutStrideAssignment.hpp b/packages/kokkos/core/unit_test/TestViewLayoutStrideAssignment.hpp index 583d135f3..31108af38 100644 --- a/packages/kokkos/core/unit_test/TestViewLayoutStrideAssignment.hpp +++ b/packages/kokkos/core/unit_test/TestViewLayoutStrideAssignment.hpp @@ -54,12 +54,12 @@ namespace Test { TEST(TEST_CATEGORY, view_layoutstride_left_to_layoutleft_assignment) { - typedef TEST_EXECSPACE exec_space; + using exec_space = TEST_EXECSPACE; auto t = time(nullptr); srand(t); // Use current time as seed for random generator printf("view_layoutstride_left_to_layoutleft_assignment: srand(%lu)\n", - size_t(t)); + static_cast<unsigned long>(t)); { // Assignment of rank-1 LayoutLeft = LayoutStride int ndims = 1; @@ -95,6 +95,8 @@ TEST(TEST_CATEGORY, view_layoutstride_left_to_layoutleft_assignment) { ASSERT_EQ(dst.span(), src.span()); ASSERT_EQ(test, true); } + // FIXME_SYCL requires MDRangePolicy +#ifndef KOKKOS_ENABLE_SYCL { // Assignment of rank-2 LayoutLeft = LayoutStride int ndims = 2; int dims[] = {10, 9}; @@ -333,15 +335,16 @@ TEST(TEST_CATEGORY, view_layoutstride_left_to_layoutleft_assignment) { ASSERT_EQ(dst.span(), src.span()); ASSERT_EQ(test, true); } +#endif } TEST(TEST_CATEGORY, view_layoutstride_right_to_layoutright_assignment) { - typedef TEST_EXECSPACE exec_space; + using exec_space = TEST_EXECSPACE; auto t = time(nullptr); srand(t); // Use current time as seed for random generator printf("view_layoutstride_right_to_layoutright_assignment: srand(%lu)\n", - size_t(t)); + static_cast<unsigned long>(t)); { // Assignment of rank-1 LayoutRight = LayoutStride int ndims = 1; @@ -377,6 +380,8 @@ TEST(TEST_CATEGORY, view_layoutstride_right_to_layoutright_assignment) { ASSERT_EQ(dst.span(), src.span()); ASSERT_EQ(test, true); } + // FIXME_SYCL requires MDRangePolicy +#ifndef KOKKOS_ENABLE_SYCL { // Assignment of rank-2 LayoutRight = LayoutStride int ndims = 2; int dims[] = {10, 9}; @@ -615,15 +620,16 @@ TEST(TEST_CATEGORY, view_layoutstride_right_to_layoutright_assignment) { ASSERT_EQ(dst.span(), src.span()); ASSERT_EQ(test, true); } +#endif } TEST(TEST_CATEGORY_DEATH, view_layoutstride_right_to_layoutleft_assignment) { - typedef TEST_EXECSPACE exec_space; + using exec_space = TEST_EXECSPACE; auto t = time(nullptr); srand(t); // Use current time as seed for random generator printf("view_layoutstride_right_to_layoutleft_assignment: srand(%lu)\n", - size_t(t)); + static_cast<unsigned long>(t)); { // Assignment of rank-1 LayoutLeft = LayoutStride (LayoutRight compatible) int ndims = 1; @@ -661,6 +667,11 @@ TEST(TEST_CATEGORY_DEATH, view_layoutstride_right_to_layoutleft_assignment) { ASSERT_EQ(dst.span(), src.span()); ASSERT_EQ(test, true); } +// FIXME_SYCL deadlocks +// WORKAROUND OPENMPTARGET : death tests don't seem to work ... +#if defined(KOKKOS_ENABLE_OPENMPTARGET) || defined(KOKKOS_ENABLE_SYCL) + return; +#endif { // Assignment of rank-2 LayoutLeft = LayoutStride (LayoutRight compatible) int ndims = 2; int dims[] = {10, 9}; @@ -769,12 +780,12 @@ TEST(TEST_CATEGORY_DEATH, view_layoutstride_right_to_layoutleft_assignment) { } TEST(TEST_CATEGORY_DEATH, view_layoutstride_left_to_layoutright_assignment) { - typedef TEST_EXECSPACE exec_space; + using exec_space = TEST_EXECSPACE; auto t = time(nullptr); srand(t); // Use current time as seed for random generator printf("view_layoutstride_left_to_layoutright_assignment: srand(%lu)\n", - size_t(t)); + static_cast<unsigned long>(t)); { // Assignment of rank-1 LayoutRight = LayoutStride (LayoutLeft compatible) int ndims = 1; @@ -812,6 +823,11 @@ TEST(TEST_CATEGORY_DEATH, view_layoutstride_left_to_layoutright_assignment) { ASSERT_EQ(dst.span(), src.span()); ASSERT_EQ(test, true); } +// FIXME_SYCL deadlocks +// WORKAROUND OPENMPTARGET : death tests don't seem to work ... +#if defined(KOKKOS_ENABLE_OPENMPTARGET) || defined(KOKKOS_ENABLE_SYCL) + return; +#endif { // Assignment of rank-2 LayoutRight = LayoutStride (LayoutLeft compatible) int ndims = 2; int dims[] = {10, 9}; @@ -920,3 +936,5 @@ TEST(TEST_CATEGORY_DEATH, view_layoutstride_left_to_layoutright_assignment) { } } // namespace Test + +#include <TestIrregularLayout.hpp> diff --git a/packages/kokkos/core/unit_test/TestViewLayoutTiled.hpp b/packages/kokkos/core/unit_test/TestViewLayoutTiled.hpp index 75eef2d69..2510a1244 100644 --- a/packages/kokkos/core/unit_test/TestViewLayoutTiled.hpp +++ b/packages/kokkos/core/unit_test/TestViewLayoutTiled.hpp @@ -54,12 +54,11 @@ namespace Test { -#ifndef KOKKOS_ENABLE_DEPRECATED_CODE namespace { template <typename ExecSpace> struct TestViewLayoutTiled { - typedef double Scalar; + using Scalar = double; static constexpr int T0 = 2; static constexpr int T1 = 4; @@ -71,46 +70,46 @@ struct TestViewLayoutTiled { static constexpr int T7 = 2; // Rank 2 - typedef Kokkos::Experimental::LayoutTiled<Kokkos::Iterate::Left, - Kokkos::Iterate::Left, T0, T1> - LayoutLL_2D_2x4; - typedef Kokkos::Experimental::LayoutTiled<Kokkos::Iterate::Right, - Kokkos::Iterate::Left, T0, T1> - LayoutRL_2D_2x4; - typedef Kokkos::Experimental::LayoutTiled<Kokkos::Iterate::Left, - Kokkos::Iterate::Right, T0, T1> - LayoutLR_2D_2x4; - typedef Kokkos::Experimental::LayoutTiled<Kokkos::Iterate::Right, - Kokkos::Iterate::Right, T0, T1> - LayoutRR_2D_2x4; + using LayoutLL_2D_2x4 = + Kokkos::Experimental::LayoutTiled<Kokkos::Iterate::Left, + Kokkos::Iterate::Left, T0, T1>; + using LayoutRL_2D_2x4 = + Kokkos::Experimental::LayoutTiled<Kokkos::Iterate::Right, + Kokkos::Iterate::Left, T0, T1>; + using LayoutLR_2D_2x4 = + Kokkos::Experimental::LayoutTiled<Kokkos::Iterate::Left, + Kokkos::Iterate::Right, T0, T1>; + using LayoutRR_2D_2x4 = + Kokkos::Experimental::LayoutTiled<Kokkos::Iterate::Right, + Kokkos::Iterate::Right, T0, T1>; // Rank 3 - typedef Kokkos::Experimental::LayoutTiled<Kokkos::Iterate::Left, - Kokkos::Iterate::Left, T0, T1, T2> - LayoutLL_3D_2x4x4; - typedef Kokkos::Experimental::LayoutTiled<Kokkos::Iterate::Right, - Kokkos::Iterate::Left, T0, T1, T2> - LayoutRL_3D_2x4x4; - typedef Kokkos::Experimental::LayoutTiled<Kokkos::Iterate::Left, - Kokkos::Iterate::Right, T0, T1, T2> - LayoutLR_3D_2x4x4; - typedef Kokkos::Experimental::LayoutTiled<Kokkos::Iterate::Right, - Kokkos::Iterate::Right, T0, T1, T2> - LayoutRR_3D_2x4x4; + using LayoutLL_3D_2x4x4 = + Kokkos::Experimental::LayoutTiled<Kokkos::Iterate::Left, + Kokkos::Iterate::Left, T0, T1, T2>; + using LayoutRL_3D_2x4x4 = + Kokkos::Experimental::LayoutTiled<Kokkos::Iterate::Right, + Kokkos::Iterate::Left, T0, T1, T2>; + using LayoutLR_3D_2x4x4 = + Kokkos::Experimental::LayoutTiled<Kokkos::Iterate::Left, + Kokkos::Iterate::Right, T0, T1, T2>; + using LayoutRR_3D_2x4x4 = + Kokkos::Experimental::LayoutTiled<Kokkos::Iterate::Right, + Kokkos::Iterate::Right, T0, T1, T2>; // Rank 4 - typedef Kokkos::Experimental::LayoutTiled< - Kokkos::Iterate::Left, Kokkos::Iterate::Left, T0, T1, T2, T3> - LayoutLL_4D_2x4x4x2; - typedef Kokkos::Experimental::LayoutTiled< - Kokkos::Iterate::Right, Kokkos::Iterate::Left, T0, T1, T2, T3> - LayoutRL_4D_2x4x4x2; - typedef Kokkos::Experimental::LayoutTiled< - Kokkos::Iterate::Left, Kokkos::Iterate::Right, T0, T1, T2, T3> - LayoutLR_4D_2x4x4x2; - typedef Kokkos::Experimental::LayoutTiled< - Kokkos::Iterate::Right, Kokkos::Iterate::Right, T0, T1, T2, T3> - LayoutRR_4D_2x4x4x2; + using LayoutLL_4D_2x4x4x2 = + Kokkos::Experimental::LayoutTiled<Kokkos::Iterate::Left, + Kokkos::Iterate::Left, T0, T1, T2, T3>; + using LayoutRL_4D_2x4x4x2 = + Kokkos::Experimental::LayoutTiled<Kokkos::Iterate::Right, + Kokkos::Iterate::Left, T0, T1, T2, T3>; + using LayoutLR_4D_2x4x4x2 = + Kokkos::Experimental::LayoutTiled<Kokkos::Iterate::Left, + Kokkos::Iterate::Right, T0, T1, T2, T3>; + using LayoutRR_4D_2x4x4x2 = + Kokkos::Experimental::LayoutTiled<Kokkos::Iterate::Right, + Kokkos::Iterate::Right, T0, T1, T2, T3>; #if !defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) static void test_view_layout_tiled_2d(const int, const int) { @@ -123,8 +122,8 @@ struct TestViewLayoutTiled { // Test create_mirror_view, deep_copy // Create LL View { - typedef typename Kokkos::View<Scalar**, LayoutLL_2D_2x4, ExecSpace> - ViewType; + using ViewType = + typename Kokkos::View<Scalar**, LayoutLL_2D_2x4, ExecSpace>; ViewType v("v", N0, N1); typename ViewType::HostMirror hv = Kokkos::create_mirror_view(v); @@ -188,8 +187,8 @@ struct TestViewLayoutTiled { // Create RL View { - typedef typename Kokkos::View<Scalar**, LayoutRL_2D_2x4, ExecSpace> - ViewType; + using ViewType = + typename Kokkos::View<Scalar**, LayoutRL_2D_2x4, ExecSpace>; Kokkos::View<Scalar**, LayoutRL_2D_2x4, ExecSpace> v("v", N0, N1); typename ViewType::HostMirror hv = Kokkos::create_mirror_view(v); @@ -254,8 +253,8 @@ struct TestViewLayoutTiled { // Create LR View { - typedef typename Kokkos::View<Scalar**, LayoutLR_2D_2x4, ExecSpace> - ViewType; + using ViewType = + typename Kokkos::View<Scalar**, LayoutLR_2D_2x4, ExecSpace>; Kokkos::View<Scalar**, LayoutLR_2D_2x4, ExecSpace> v("v", N0, N1); typename ViewType::HostMirror hv = Kokkos::create_mirror_view(v); @@ -320,8 +319,8 @@ struct TestViewLayoutTiled { // Create RR View { - typedef typename Kokkos::View<Scalar**, LayoutRR_2D_2x4, ExecSpace> - ViewType; + using ViewType = + typename Kokkos::View<Scalar**, LayoutRR_2D_2x4, ExecSpace>; Kokkos::View<Scalar**, LayoutRR_2D_2x4, ExecSpace> v("v", N0, N1); typename ViewType::HostMirror hv = Kokkos::create_mirror_view(v); @@ -399,7 +398,7 @@ struct TestViewLayoutTiled { // Create LL View { - typedef Kokkos::View<Scalar***, LayoutLL_3D_2x4x4, ExecSpace> ViewType; + using ViewType = Kokkos::View<Scalar***, LayoutLL_3D_2x4x4, ExecSpace>; Kokkos::View<Scalar***, LayoutLL_3D_2x4x4, ExecSpace> dv("dv", N0, N1, N2); @@ -470,7 +469,7 @@ struct TestViewLayoutTiled { // Create RL View { - typedef Kokkos::View<Scalar***, LayoutRL_3D_2x4x4, ExecSpace> ViewType; + using ViewType = Kokkos::View<Scalar***, LayoutRL_3D_2x4x4, ExecSpace>; Kokkos::View<Scalar***, LayoutRL_3D_2x4x4, ExecSpace> dv("dv", N0, N1, N2); @@ -541,7 +540,7 @@ struct TestViewLayoutTiled { // Create LR View { - typedef Kokkos::View<Scalar***, LayoutLR_3D_2x4x4, ExecSpace> ViewType; + using ViewType = Kokkos::View<Scalar***, LayoutLR_3D_2x4x4, ExecSpace>; Kokkos::View<Scalar***, LayoutLR_3D_2x4x4, ExecSpace> dv("dv", N0, N1, N2); @@ -612,7 +611,7 @@ struct TestViewLayoutTiled { // Create RR View { - typedef Kokkos::View<Scalar***, LayoutRR_3D_2x4x4, ExecSpace> ViewType; + using ViewType = Kokkos::View<Scalar***, LayoutRR_3D_2x4x4, ExecSpace>; Kokkos::View<Scalar***, LayoutRR_3D_2x4x4, ExecSpace> dv("dv", N0, N1, N2); @@ -698,7 +697,7 @@ struct TestViewLayoutTiled { // Create LL View { - typedef Kokkos::View<Scalar****, LayoutLL_4D_2x4x4x2, ExecSpace> ViewType; + using ViewType = Kokkos::View<Scalar****, LayoutLL_4D_2x4x4x2, ExecSpace>; Kokkos::View<Scalar****, LayoutLL_4D_2x4x4x2, ExecSpace> dv("dv", N0, N1, N2, N3); @@ -780,7 +779,7 @@ struct TestViewLayoutTiled { // Create RL View { - typedef Kokkos::View<Scalar****, LayoutRL_4D_2x4x4x2, ExecSpace> ViewType; + using ViewType = Kokkos::View<Scalar****, LayoutRL_4D_2x4x4x2, ExecSpace>; Kokkos::View<Scalar****, LayoutRL_4D_2x4x4x2, ExecSpace> dv("dv", N0, N1, N2, N3); @@ -863,7 +862,7 @@ struct TestViewLayoutTiled { // Create LR View { - typedef Kokkos::View<Scalar****, LayoutLR_4D_2x4x4x2, ExecSpace> ViewType; + using ViewType = Kokkos::View<Scalar****, LayoutLR_4D_2x4x4x2, ExecSpace>; Kokkos::View<Scalar****, LayoutLR_4D_2x4x4x2, ExecSpace> dv("dv", N0, N1, N2, N3); @@ -947,7 +946,7 @@ struct TestViewLayoutTiled { // Create RR View { - typedef Kokkos::View<Scalar****, LayoutRR_4D_2x4x4x2, ExecSpace> ViewType; + using ViewType = Kokkos::View<Scalar****, LayoutRR_4D_2x4x4x2, ExecSpace>; Kokkos::View<Scalar****, LayoutRR_4D_2x4x4x2, ExecSpace> dv("dv", N0, N1, N2, N3); @@ -1776,5 +1775,4 @@ TEST(TEST_CATEGORY, view_layouttiled_subtile) { TestViewLayoutTiled<TEST_EXECSPACE>::test_view_layout_tiled_subtile_4d( 4, 12, 16, 12); } -#endif } // namespace Test diff --git a/packages/kokkos/core/unit_test/TestViewMapping_a.hpp b/packages/kokkos/core/unit_test/TestViewMapping_a.hpp index 7bd6353c2..15d297649 100644 --- a/packages/kokkos/core/unit_test/TestViewMapping_a.hpp +++ b/packages/kokkos/core/unit_test/TestViewMapping_a.hpp @@ -54,28 +54,28 @@ namespace Test { template <class Space> void test_view_mapping() { - typedef typename Space::execution_space ExecSpace; + using ExecSpace = typename Space::execution_space; - typedef Kokkos::Impl::ViewDimension<> dim_0; - typedef Kokkos::Impl::ViewDimension<2> dim_s2; - typedef Kokkos::Impl::ViewDimension<2, 3> dim_s2_s3; - typedef Kokkos::Impl::ViewDimension<2, 3, 4> dim_s2_s3_s4; + using dim_0 = Kokkos::Impl::ViewDimension<>; + using dim_s2 = Kokkos::Impl::ViewDimension<2>; + using dim_s2_s3 = Kokkos::Impl::ViewDimension<2, 3>; + using dim_s2_s3_s4 = Kokkos::Impl::ViewDimension<2, 3, 4>; - typedef Kokkos::Impl::ViewDimension<0> dim_s0; - typedef Kokkos::Impl::ViewDimension<0, 3> dim_s0_s3; - typedef Kokkos::Impl::ViewDimension<0, 3, 4> dim_s0_s3_s4; + using dim_s0 = Kokkos::Impl::ViewDimension<0>; + using dim_s0_s3 = Kokkos::Impl::ViewDimension<0, 3>; + using dim_s0_s3_s4 = Kokkos::Impl::ViewDimension<0, 3, 4>; - typedef Kokkos::Impl::ViewDimension<0, 0> dim_s0_s0; - typedef Kokkos::Impl::ViewDimension<0, 0, 4> dim_s0_s0_s4; + using dim_s0_s0 = Kokkos::Impl::ViewDimension<0, 0>; + using dim_s0_s0_s4 = Kokkos::Impl::ViewDimension<0, 0, 4>; - typedef Kokkos::Impl::ViewDimension<0, 0, 0> dim_s0_s0_s0; - typedef Kokkos::Impl::ViewDimension<0, 0, 0, 0> dim_s0_s0_s0_s0; - typedef Kokkos::Impl::ViewDimension<0, 0, 0, 0, 0> dim_s0_s0_s0_s0_s0; - typedef Kokkos::Impl::ViewDimension<0, 0, 0, 0, 0, 0> dim_s0_s0_s0_s0_s0_s0; - typedef Kokkos::Impl::ViewDimension<0, 0, 0, 0, 0, 0, 0> - dim_s0_s0_s0_s0_s0_s0_s0; - typedef Kokkos::Impl::ViewDimension<0, 0, 0, 0, 0, 0, 0, 0> - dim_s0_s0_s0_s0_s0_s0_s0_s0; + using dim_s0_s0_s0 = Kokkos::Impl::ViewDimension<0, 0, 0>; + using dim_s0_s0_s0_s0 = Kokkos::Impl::ViewDimension<0, 0, 0, 0>; + using dim_s0_s0_s0_s0_s0 = Kokkos::Impl::ViewDimension<0, 0, 0, 0, 0>; + using dim_s0_s0_s0_s0_s0_s0 = Kokkos::Impl::ViewDimension<0, 0, 0, 0, 0, 0>; + using dim_s0_s0_s0_s0_s0_s0_s0 = + Kokkos::Impl::ViewDimension<0, 0, 0, 0, 0, 0, 0>; + using dim_s0_s0_s0_s0_s0_s0_s0_s0 = + Kokkos::Impl::ViewDimension<0, 0, 0, 0, 0, 0, 0, 0>; // Fully static dimensions should not be larger than an int. #ifndef _WIN32 // For some reason on Windows the first test here fails with @@ -190,14 +190,14 @@ void test_view_mapping() { //---------------------------------------- - typedef Kokkos::Impl::ViewOffset<dim_s0_s0_s0, Kokkos::LayoutStride> - stride_s0_s0_s0; + using stride_s0_s0_s0 = + Kokkos::Impl::ViewOffset<dim_s0_s0_s0, Kokkos::LayoutStride>; //---------------------------------------- // Static dimension. { - typedef Kokkos::Impl::ViewOffset<dim_s2_s3_s4, Kokkos::LayoutLeft> - left_s2_s3_s4; + using left_s2_s3_s4 = + Kokkos::Impl::ViewOffset<dim_s2_s3_s4, Kokkos::LayoutLeft>; ASSERT_EQ(sizeof(left_s2_s3_s4), sizeof(dim_s2_s3_s4)); @@ -228,8 +228,8 @@ void test_view_mapping() { //---------------------------------------- // Small dimension is unpadded. { - typedef Kokkos::Impl::ViewOffset<dim_s0_s0_s4, Kokkos::LayoutLeft> - left_s0_s0_s4; + using left_s0_s0_s4 = + Kokkos::Impl::ViewOffset<dim_s0_s0_s4, Kokkos::LayoutLeft>; left_s0_s0_s4 dyn_off3(std::integral_constant<unsigned, sizeof(int)>(), Kokkos::LayoutLeft(2, 3, 0, 0, 0, 0, 0, 0)); @@ -280,8 +280,8 @@ void test_view_mapping() { constexpr int N0 = 2000; constexpr int N1 = 300; - typedef Kokkos::Impl::ViewOffset<dim_s0_s0_s4, Kokkos::LayoutLeft> - left_s0_s0_s4; + using left_s0_s0_s4 = + Kokkos::Impl::ViewOffset<dim_s0_s0_s4, Kokkos::LayoutLeft>; left_s0_s0_s4 dyn_off3(std::integral_constant<unsigned, sizeof(int)>(), Kokkos::LayoutLeft(N0, N1, 0, 0, 0, 0, 0, 0)); @@ -319,8 +319,8 @@ void test_view_mapping() { //---------------------------------------- // Static dimension. { - typedef Kokkos::Impl::ViewOffset<dim_s2_s3_s4, Kokkos::LayoutRight> - right_s2_s3_s4; + using right_s2_s3_s4 = + Kokkos::Impl::ViewOffset<dim_s2_s3_s4, Kokkos::LayoutRight>; ASSERT_EQ(sizeof(right_s2_s3_s4), sizeof(dim_s2_s3_s4)); @@ -355,8 +355,8 @@ void test_view_mapping() { //---------------------------------------- // Small dimension is unpadded. { - typedef Kokkos::Impl::ViewOffset<dim_s0_s0_s4, Kokkos::LayoutRight> - right_s0_s0_s4; + using right_s0_s0_s4 = + Kokkos::Impl::ViewOffset<dim_s0_s0_s4, Kokkos::LayoutRight>; right_s0_s0_s4 dyn_off3(std::integral_constant<unsigned, sizeof(int)>(), Kokkos::LayoutRight(2, 3, 0, 0, 0, 0, 0, 0)); @@ -396,8 +396,8 @@ void test_view_mapping() { constexpr int N0 = 2000; constexpr int N1 = 300; - typedef Kokkos::Impl::ViewOffset<dim_s0_s0_s4, Kokkos::LayoutRight> - right_s0_s0_s4; + using right_s0_s0_s4 = + Kokkos::Impl::ViewOffset<dim_s0_s0_s4, Kokkos::LayoutRight>; right_s0_s0_s4 dyn_off3(std::integral_constant<unsigned, sizeof(int)>(), Kokkos::LayoutRight(N0, N1, 0, 0, 0, 0, 0, 0)); @@ -436,7 +436,7 @@ void test_view_mapping() { // Subview. { // Mapping rank 4 to rank 3 - typedef Kokkos::Impl::SubviewExtents<4, 3> SubviewExtents; + using SubviewExtents = Kokkos::Impl::SubviewExtents<4, 3>; constexpr int N0 = 1000; constexpr int N1 = 2000; @@ -471,8 +471,8 @@ void test_view_mapping() { constexpr int sub_N1 = 200; constexpr int sub_N2 = 4; - typedef Kokkos::Impl::ViewOffset<dim_s0_s0_s4, Kokkos::LayoutLeft> - left_s0_s0_s4; + using left_s0_s0_s4 = + Kokkos::Impl::ViewOffset<dim_s0_s0_s4, Kokkos::LayoutLeft>; left_s0_s0_s4 dyn_off3(std::integral_constant<unsigned, sizeof(int)>(), Kokkos::LayoutLeft(N0, N1, 0, 0, 0, 0, 0, 0)); @@ -508,8 +508,8 @@ void test_view_mapping() { constexpr int sub_N1 = 200; constexpr int sub_N2 = 4; - typedef Kokkos::Impl::ViewOffset<dim_s0_s0_s4, Kokkos::LayoutRight> - right_s0_s0_s4; + using right_s0_s0_s4 = + Kokkos::Impl::ViewOffset<dim_s0_s0_s4, Kokkos::LayoutRight>; right_s0_s0_s4 dyn_off3(std::integral_constant<unsigned, sizeof(int)>(), Kokkos::LayoutRight(N0, N1, 0, 0, 0, 0, 0, 0)); @@ -552,10 +552,10 @@ void test_view_mapping() { { using namespace Kokkos::Impl; - typedef ViewArrayAnalysis<int[]> a_int_r1; - typedef ViewArrayAnalysis<int* * [4][5][6]> a_int_r5; - typedef ViewArrayAnalysis<const int[]> a_const_int_r1; - typedef ViewArrayAnalysis<const int* * [4][5][6]> a_const_int_r5; + using a_int_r1 = ViewArrayAnalysis<int[]>; + using a_int_r5 = ViewArrayAnalysis<int* * [4][5][6]>; + using a_const_int_r1 = ViewArrayAnalysis<const int[]>; + using a_const_int_r5 = ViewArrayAnalysis<const int* * [4][5][6]>; static_assert(a_int_r1::dimension::rank == 1, ""); static_assert(a_int_r1::dimension::rank_dynamic == 1, ""); @@ -610,10 +610,10 @@ void test_view_mapping() { { using namespace Kokkos::Impl; - typedef int t_i4[4]; + using t_i4 = int[4]; // Dimensions of t_i4 are appended to the multdimensional array. - typedef ViewArrayAnalysis<t_i4** * [3]> a_int_r5; + using a_int_r5 = ViewArrayAnalysis<t_i4** * [3]>; static_assert(a_int_r5::dimension::rank == 5, ""); static_assert(a_int_r5::dimension::rank_dynamic == 3, ""); @@ -629,7 +629,7 @@ void test_view_mapping() { { using namespace Kokkos::Impl; - typedef ViewDataAnalysis<const int[], void> a_const_int_r1; + using a_const_int_r1 = ViewDataAnalysis<const int[], void>; static_assert( std::is_same<typename a_const_int_r1::specialize, void>::value, ""); @@ -661,7 +661,7 @@ void test_view_mapping() { std::is_same<typename a_const_int_r1::non_const_value_type, int>::value, ""); - typedef ViewDataAnalysis<const int* * [4], void> a_const_int_r3; + using a_const_int_r3 = ViewDataAnalysis<const int* * [4], void>; static_assert( std::is_same<typename a_const_int_r3::specialize, void>::value, ""); @@ -708,8 +708,8 @@ void test_view_mapping() { { constexpr int N = 10; - typedef Kokkos::View<int*, Space> T; - typedef Kokkos::View<const int*, Space> C; + using T = Kokkos::View<int*, Space>; + using C = Kokkos::View<const int*, Space>; int data[N]; @@ -788,8 +788,8 @@ void test_view_mapping() { { constexpr int N = 10; - typedef Kokkos::View<int*, Space> T; - typedef Kokkos::View<const int*, Space> C; + using T = Kokkos::View<int*, Space>; + using C = Kokkos::View<const int*, Space>; T vr1("vr1", N); C cr1(vr1); @@ -835,8 +835,8 @@ void test_view_mapping() { // Testing proper handling of zero-length allocations. { constexpr int N = 0; - typedef Kokkos::View<int*, Space> T; - typedef Kokkos::View<const int*, Space> C; + using T = Kokkos::View<int*, Space>; + using C = Kokkos::View<const int*, Space>; T vr1("vr1", N); C cr1(vr1); @@ -852,8 +852,8 @@ void test_view_mapping() { typename ExecSpace::memory_space::execution_space>::value) { using namespace Kokkos; - typedef typename ExecSpace::memory_space memory_space; - typedef View<int*, memory_space> V; + using memory_space = typename ExecSpace::memory_space; + using V = View<int*, memory_space>; constexpr int N = 10; @@ -874,10 +874,10 @@ void test_view_mapping() { } { - typedef Kokkos::ViewTraits<int***, Kokkos::LayoutStride, ExecSpace> - traits_t; - typedef Kokkos::Impl::ViewDimension<0, 0, 0> dims_t; - typedef Kokkos::Impl::ViewOffset<dims_t, Kokkos::LayoutStride> offset_t; + using traits_t = + Kokkos::ViewTraits<int***, Kokkos::LayoutStride, ExecSpace>; + using dims_t = Kokkos::Impl::ViewDimension<0, 0, 0>; + using offset_t = Kokkos::Impl::ViewOffset<dims_t, Kokkos::LayoutStride>; Kokkos::LayoutStride stride; @@ -905,10 +905,12 @@ void test_view_mapping() { Kokkos::Impl::ViewCtorProp<int*>(nullptr), stride); } + // FIXME_SYCL requires MDRangePolicy +#ifndef KOKKOS_ENABLE_SYCL { - typedef Kokkos::View<int**, Space> V; - typedef typename V::HostMirror M; - typedef typename Kokkos::View<int**, Space>::array_layout layout_type; + using V = Kokkos::View<int**, Space>; + using M = typename V::HostMirror; + using layout_type = typename Kokkos::View<int**, Space>::array_layout; constexpr int N0 = 10; constexpr int N1 = 11; @@ -980,11 +982,10 @@ void test_view_mapping() { } { - typedef Kokkos::View<int**, Kokkos::LayoutStride, Space> V; - typedef typename V::HostMirror M; - typedef - typename Kokkos::View<int**, Kokkos::LayoutStride, Space>::array_layout - layout_type; + using V = Kokkos::View<int**, Kokkos::LayoutStride, Space>; + using M = typename V::HostMirror; + using layout_type = + typename Kokkos::View<int**, Kokkos::LayoutStride, Space>::array_layout; constexpr int N0 = 10; constexpr int N1 = 11; @@ -1032,10 +1033,11 @@ void test_view_mapping() { ASSERT_EQ(d.extent(0), 7); ASSERT_EQ(d.extent(1), 8); } +#endif { - typedef Kokkos::View<int*, Space> V; - typedef Kokkos::View<int*, Space, Kokkos::MemoryUnmanaged> U; + using V = Kokkos::View<int*, Space>; + using U = Kokkos::View<int*, Space, Kokkos::MemoryUnmanaged>; V a("a", 10); @@ -1071,12 +1073,12 @@ void test_view_mapping() { // TODO: a.use_count() and x.use_count() are 0 with the asynchronous HPX // backend. Why? -#if !defined(KOKKOS_ENABLE_CUDA_LAMBDA) && !defined(KOKKOS_ENABLE_ROCM) && \ +#if !defined(KOKKOS_ENABLE_CUDA_LAMBDA) && \ !(defined(KOKKOS_ENABLE_HPX) && defined(KOKKOS_ENABLE_HPX_ASYNC_DISPATCH)) // Cannot launch host lambda when CUDA lambda is enabled. - typedef typename Kokkos::Impl::HostMirror<Space>::Space::execution_space - host_exec_space; + using host_exec_space = + typename Kokkos::Impl::HostMirror<Space>::Space::execution_space; int errors = 0; Kokkos::parallel_reduce( @@ -1104,20 +1106,12 @@ struct TestViewMapOperator { static_assert(ViewType::reference_type_is_lvalue_reference, "Test only valid for lvalue reference type"); -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - const ViewType v; -#else ViewType v; -#endif KOKKOS_INLINE_FUNCTION void test_left(size_t i0, int64_t& error_count) const { -#ifdef KOKKOS_ENABLE_DEPPRECATED_CODE - typename ViewType::value_type* const base_ptr = &v(0, 0, 0, 0, 0, 0, 0, 0); -#else typename ViewType::value_type* const base_ptr = &v.access(0, 0, 0, 0, 0, 0, 0, 0); -#endif const size_t n1 = v.extent(1); const size_t n2 = v.extent(2); const size_t n3 = v.extent(3); @@ -1135,13 +1129,8 @@ struct TestViewMapOperator { for (size_t i3 = 0; i3 < n3; ++i3) for (size_t i2 = 0; i2 < n2; ++i2) for (size_t i1 = 0; i1 < n1; ++i1) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - const int64_t d = - &v(i0, i1, i2, i3, i4, i5, i6, i7) - base_ptr; -#else const int64_t d = &v.access(i0, i1, i2, i3, i4, i5, i6, i7) - base_ptr; -#endif if (d < offset) ++error_count; offset = d; } @@ -1151,12 +1140,8 @@ struct TestViewMapOperator { KOKKOS_INLINE_FUNCTION void test_right(size_t i0, int64_t& error_count) const { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - typename ViewType::value_type* const base_ptr = &v(0, 0, 0, 0, 0, 0, 0, 0); -#else typename ViewType::value_type* const base_ptr = &v.access(0, 0, 0, 0, 0, 0, 0, 0); -#endif const size_t n1 = v.extent(1); const size_t n2 = v.extent(2); const size_t n3 = v.extent(3); @@ -1174,13 +1159,8 @@ struct TestViewMapOperator { for (size_t i5 = 0; i5 < n5; ++i5) for (size_t i6 = 0; i6 < n6; ++i6) for (size_t i7 = 0; i7 < n7; ++i7) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - const int64_t d = - &v(i0, i1, i2, i3, i4, i5, i6, i7) - base_ptr; -#else const int64_t d = &v.access(i0, i1, i2, i3, i4, i5, i6, i7) - base_ptr; -#endif if (d < offset) ++error_count; offset = d; } @@ -1208,10 +1188,6 @@ struct TestViewMapOperator { enum { N6 = 4 }; enum { N7 = 3 }; -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - TestViewMapOperator() : v("Test", N0, N1, N2, N3, N4, N5, N6, N7) {} - -#else TestViewMapOperator() { const size_t dyn_rank = v.rank_dynamic; const std::string label("Test"); @@ -1229,7 +1205,6 @@ struct TestViewMapOperator { } } -#endif void run() { ASSERT_EQ(v.extent(0), (0 < ViewType::rank ? TestViewMapOperator<ViewType>::N0 : 1)); @@ -1262,7 +1237,7 @@ struct TestViewMapOperator { template <class Space> void test_view_mapping_operator() { - typedef typename Space::execution_space ExecSpace; + using ExecSpace = typename Space::execution_space; { TestViewMapOperator<Kokkos::View<int, Kokkos::LayoutLeft, ExecSpace> > f; diff --git a/packages/kokkos/core/unit_test/TestViewMapping_b.hpp b/packages/kokkos/core/unit_test/TestViewMapping_b.hpp index 63ec63532..23035a303 100644 --- a/packages/kokkos/core/unit_test/TestViewMapping_b.hpp +++ b/packages/kokkos/core/unit_test/TestViewMapping_b.hpp @@ -56,13 +56,13 @@ namespace Test { template <class Space> struct TestViewMappingAtomic { - typedef typename Space::execution_space ExecSpace; - typedef typename Space::memory_space MemSpace; + using ExecSpace = typename Space::execution_space; + using MemSpace = typename Space::memory_space; - typedef Kokkos::MemoryTraits<Kokkos::Atomic> mem_trait; + using mem_trait = Kokkos::MemoryTraits<Kokkos::Atomic>; - typedef Kokkos::View<int *, ExecSpace> T; - typedef Kokkos::View<int *, ExecSpace, mem_trait> T_atom; + using T = Kokkos::View<int *, ExecSpace>; + using T_atom = Kokkos::View<int *, ExecSpace, mem_trait>; T x; T_atom x_atom; @@ -166,7 +166,7 @@ struct MappingClassValueType { template <class Space> void test_view_mapping_class_value() { - typedef typename Space::execution_space ExecSpace; + using ExecSpace = typename Space::execution_space; ExecSpace().fence(); { @@ -187,12 +187,12 @@ TEST(TEST_CATEGORY, view_mapping_class_value) { namespace Test { TEST(TEST_CATEGORY, view_mapping_assignable) { - typedef TEST_EXECSPACE exec_space; + using exec_space = TEST_EXECSPACE; { // Assignment of rank-0 Left = Right - typedef Kokkos::ViewTraits<int, Kokkos::LayoutLeft, exec_space> dst_traits; - typedef Kokkos::ViewTraits<int, Kokkos::LayoutRight, exec_space> src_traits; - typedef Kokkos::Impl::ViewMapping<dst_traits, src_traits, void> mapping; + using dst_traits = Kokkos::ViewTraits<int, Kokkos::LayoutLeft, exec_space>; + using src_traits = Kokkos::ViewTraits<int, Kokkos::LayoutRight, exec_space>; + using mapping = Kokkos::Impl::ViewMapping<dst_traits, src_traits, void>; static_assert(mapping::is_assignable, ""); Kokkos::View<int, Kokkos::LayoutRight, exec_space> src; @@ -201,9 +201,9 @@ TEST(TEST_CATEGORY, view_mapping_assignable) { } { // Assignment of rank-0 Right = Left - typedef Kokkos::ViewTraits<int, Kokkos::LayoutRight, exec_space> dst_traits; - typedef Kokkos::ViewTraits<int, Kokkos::LayoutLeft, exec_space> src_traits; - typedef Kokkos::Impl::ViewMapping<dst_traits, src_traits, void> mapping; + using dst_traits = Kokkos::ViewTraits<int, Kokkos::LayoutRight, exec_space>; + using src_traits = Kokkos::ViewTraits<int, Kokkos::LayoutLeft, exec_space>; + using mapping = Kokkos::Impl::ViewMapping<dst_traits, src_traits, void>; static_assert(mapping::is_assignable, ""); Kokkos::View<int, Kokkos::LayoutLeft, exec_space> src; @@ -212,11 +212,11 @@ TEST(TEST_CATEGORY, view_mapping_assignable) { } { // Assignment of rank-1 Left = Right - typedef Kokkos::ViewTraits<int *, Kokkos::LayoutLeft, exec_space> - dst_traits; - typedef Kokkos::ViewTraits<int *, Kokkos::LayoutRight, exec_space> - src_traits; - typedef Kokkos::Impl::ViewMapping<dst_traits, src_traits, void> mapping; + using dst_traits = + Kokkos::ViewTraits<int *, Kokkos::LayoutLeft, exec_space>; + using src_traits = + Kokkos::ViewTraits<int *, Kokkos::LayoutRight, exec_space>; + using mapping = Kokkos::Impl::ViewMapping<dst_traits, src_traits, void>; static_assert(mapping::is_assignable, ""); Kokkos::View<int *, Kokkos::LayoutRight, exec_space> src; @@ -225,11 +225,11 @@ TEST(TEST_CATEGORY, view_mapping_assignable) { } { // Assignment of rank-1 Right = Left - typedef Kokkos::ViewTraits<int *, Kokkos::LayoutRight, exec_space> - dst_traits; - typedef Kokkos::ViewTraits<int *, Kokkos::LayoutLeft, exec_space> - src_traits; - typedef Kokkos::Impl::ViewMapping<dst_traits, src_traits, void> mapping; + using dst_traits = + Kokkos::ViewTraits<int *, Kokkos::LayoutRight, exec_space>; + using src_traits = + Kokkos::ViewTraits<int *, Kokkos::LayoutLeft, exec_space>; + using mapping = Kokkos::Impl::ViewMapping<dst_traits, src_traits, void>; static_assert(mapping::is_assignable, ""); Kokkos::View<int *, Kokkos::LayoutLeft, exec_space> src; @@ -238,22 +238,32 @@ TEST(TEST_CATEGORY, view_mapping_assignable) { } { // Assignment of rank-2 Left = Right - typedef Kokkos::ViewTraits<int **, Kokkos::LayoutLeft, exec_space> - dst_traits; - typedef Kokkos::ViewTraits<int **, Kokkos::LayoutRight, exec_space> - src_traits; - typedef Kokkos::Impl::ViewMapping<dst_traits, src_traits, void> mapping; + using dst_traits = + Kokkos::ViewTraits<int **, Kokkos::LayoutLeft, exec_space>; + using src_traits = + Kokkos::ViewTraits<int **, Kokkos::LayoutRight, exec_space>; + using mapping = Kokkos::Impl::ViewMapping<dst_traits, src_traits, void>; static_assert(!mapping::is_assignable, ""); } { // Assignment of rank-2 Right = Left - typedef Kokkos::ViewTraits<int **, Kokkos::LayoutRight, exec_space> - dst_traits; - typedef Kokkos::ViewTraits<int **, Kokkos::LayoutLeft, exec_space> - src_traits; - typedef Kokkos::Impl::ViewMapping<dst_traits, src_traits, void> mapping; + using dst_traits = + Kokkos::ViewTraits<int **, Kokkos::LayoutRight, exec_space>; + using src_traits = + Kokkos::ViewTraits<int **, Kokkos::LayoutLeft, exec_space>; + using mapping = Kokkos::Impl::ViewMapping<dst_traits, src_traits, void>; static_assert(!mapping::is_assignable, ""); } } +TEST(TEST_CATEGORY, view_mapping_trivially_copyable) { + using exec_space = TEST_EXECSPACE; + + using dst_traits = Kokkos::ViewTraits<int *, exec_space>; + using src_traits = dst_traits; + using mapping = Kokkos::Impl::ViewMapping<dst_traits, src_traits, void>; + + static_assert(std::is_trivially_copyable<mapping>{}, ""); +} + } // namespace Test diff --git a/packages/kokkos/core/unit_test/TestViewMapping_subview.hpp b/packages/kokkos/core/unit_test/TestViewMapping_subview.hpp index d5e9ce7de..18db67400 100644 --- a/packages/kokkos/core/unit_test/TestViewMapping_subview.hpp +++ b/packages/kokkos/core/unit_test/TestViewMapping_subview.hpp @@ -54,30 +54,32 @@ namespace Test { template <class Space> struct TestViewMappingSubview { - typedef typename Space::execution_space ExecSpace; - typedef typename Space::memory_space MemSpace; + using ExecSpace = typename Space::execution_space; + using MemSpace = typename Space::memory_space; - typedef Kokkos::pair<int, int> range; + using range = Kokkos::pair<int, int>; enum { AN = 10 }; - typedef Kokkos::View<int*, ExecSpace> AT; - typedef Kokkos::View<const int*, ExecSpace> ACT; - typedef Kokkos::Subview<AT, range> AS; + using AT = Kokkos::View<int*, ExecSpace>; + using ACT = Kokkos::View<const int*, ExecSpace>; + using AS = Kokkos::Subview<AT, range>; enum { BN0 = 10, BN1 = 11, BN2 = 12 }; - typedef Kokkos::View<int***, ExecSpace> BT; - typedef Kokkos::Subview<BT, range, range, range> BS; + using BT = Kokkos::View<int***, ExecSpace>; + using BS = Kokkos::Subview<BT, range, range, range>; enum { CN0 = 10, CN1 = 11, CN2 = 12 }; - typedef Kokkos::View<int** * [13][14], ExecSpace> CT; - typedef Kokkos::Subview<CT, range, range, range, int, int> CS; + using CT = Kokkos::View<int** * [13][14], ExecSpace>; + // changing CS to CTS here because when compiling with nvshmem, there is a + // define for CS that makes this fail... + using CTS = Kokkos::Subview<CT, range, range, range, int, int>; enum { DN0 = 10, DN1 = 11, DN2 = 12, DN3 = 13, DN4 = 14 }; - typedef Kokkos::View<int** * [DN3][DN4], ExecSpace> DT; - typedef Kokkos::Subview<DT, int, range, range, range, int> DS; + using DT = Kokkos::View<int** * [DN3][DN4], ExecSpace>; + using DS = Kokkos::Subview<DT, int, range, range, range, int>; - typedef Kokkos::View<int** * [13][14], Kokkos::LayoutLeft, ExecSpace> DLT; - typedef Kokkos::Subview<DLT, range, int, int, int, int> DLS1; + using DLT = Kokkos::View<int** * [13][14], Kokkos::LayoutLeft, ExecSpace>; + using DLS1 = Kokkos::Subview<DLT, range, int, int, int, int>; #if !defined(KOKKOS_IMPL_CUDA_VERSION_9_WORKAROUND) static_assert( @@ -87,8 +89,8 @@ struct TestViewMappingSubview { "LayoutLeft"); #endif - typedef Kokkos::View<int** * [13][14], Kokkos::LayoutRight, ExecSpace> DRT; - typedef Kokkos::Subview<DRT, int, int, int, int, range> DRS1; + using DRT = Kokkos::View<int** * [13][14], Kokkos::LayoutRight, ExecSpace>; + using DRS1 = Kokkos::Subview<DRT, int, int, int, int, range>; #if !defined(KOKKOS_IMPL_CUDA_VERSION_9_WORKAROUND) static_assert( @@ -104,7 +106,7 @@ struct TestViewMappingSubview { BT Ba; BS Bb; CT Ca; - CS Cb; + CTS Cb; DT Da; DS Db; diff --git a/packages/kokkos/core/unit_test/TestViewResize.hpp b/packages/kokkos/core/unit_test/TestViewResize.hpp index 0f1e5188c..9a378e521 100644 --- a/packages/kokkos/core/unit_test/TestViewResize.hpp +++ b/packages/kokkos/core/unit_test/TestViewResize.hpp @@ -50,7 +50,7 @@ namespace Test { TEST(TEST_CATEGORY, view_resize) { - typedef TEST_EXECSPACE ExecSpace; + using ExecSpace = TEST_EXECSPACE; TestViewResize::testResize<ExecSpace>(); } diff --git a/packages/kokkos/core/unit_test/TestViewSubview.hpp b/packages/kokkos/core/unit_test/TestViewSubview.hpp index 48be58c2e..b28f09934 100644 --- a/packages/kokkos/core/unit_test/TestViewSubview.hpp +++ b/packages/kokkos/core/unit_test/TestViewSubview.hpp @@ -133,8 +133,8 @@ struct getView<Kokkos::LayoutStride, Space> { template <class ViewType, class Space> struct fill_1D { - typedef typename Space::execution_space execution_space; - typedef typename ViewType::size_type size_type; + using execution_space = typename Space::execution_space; + using size_type = typename ViewType::size_type; ViewType a; double val; @@ -147,8 +147,8 @@ struct fill_1D { template <class ViewType, class Space> struct fill_2D { - typedef typename Space::execution_space execution_space; - typedef typename ViewType::size_type size_type; + using execution_space = typename Space::execution_space; + using size_type = typename ViewType::size_type; ViewType a; double val; @@ -165,8 +165,8 @@ struct fill_2D { template <class Layout, class Space> void test_auto_1d() { - typedef Kokkos::View<double**, Layout, Space> mv_type; - typedef typename mv_type::size_type size_type; + using mv_type = Kokkos::View<double**, Layout, Space>; + using size_type = typename mv_type::size_type; const double ZERO = 0.0; const double ONE = 1.0; @@ -311,10 +311,20 @@ void test_1d_strided_assignment() { Space>(true, true, true, true, 17, 1); } +template <class NewView, class OrigView, class... Args> +void make_subview(bool use_constructor, NewView& v, OrigView org, + Args... args) { + if (use_constructor) { + v = NewView(org, args...); + } else { + v = Kokkos::subview(org, args...); + } +} + template <class Space> -void test_left_0() { - typedef Kokkos::View<int[2][3][4][5][2][3][4][5], Kokkos::LayoutLeft, Space> - view_static_8_type; +void test_left_0(bool constr) { + using view_static_8_type = + Kokkos::View<int[2][3][4][5][2][3][4][5], Kokkos::LayoutLeft, Space>; if (Kokkos::Impl::SpaceAccessibility< Kokkos::HostSpace, typename Space::memory_space>::accessible) { @@ -322,22 +332,41 @@ void test_left_0() { ASSERT_TRUE(x_static_8.span_is_contiguous()); - Kokkos::View<int, Kokkos::LayoutLeft, Space> x0 = - Kokkos::subview(x_static_8, 0, 0, 0, 0, 0, 0, 0, 0); + Kokkos::View<int, Kokkos::LayoutLeft, Space> x0; + make_subview(constr, x0, x_static_8, 0, 0, 0, 0, 0, 0, 0, 0); ASSERT_TRUE(x0.span_is_contiguous()); + ASSERT_EQ(x0.span(), 1); ASSERT_TRUE(&x0() == &x_static_8(0, 0, 0, 0, 0, 0, 0, 0)); - Kokkos::View<int*, Kokkos::LayoutLeft, Space> x1 = Kokkos::subview( - x_static_8, Kokkos::pair<int, int>(0, 2), 1, 2, 3, 0, 1, 2, 3); + Kokkos::View<int*, Kokkos::LayoutLeft, Space> x1; + make_subview(constr, x1, x_static_8, Kokkos::pair<int, int>(0, 2), 1, 2, 3, + 0, 1, 2, 3); ASSERT_TRUE(x1.span_is_contiguous()); + ASSERT_EQ(x1.span(), 2); ASSERT_TRUE(&x1(0) == &x_static_8(0, 1, 2, 3, 0, 1, 2, 3)); ASSERT_TRUE(&x1(1) == &x_static_8(1, 1, 2, 3, 0, 1, 2, 3)); - Kokkos::View<int**, Kokkos::LayoutLeft, Space> x2 = - Kokkos::subview(x_static_8, Kokkos::pair<int, int>(0, 2), 1, 2, 3, - Kokkos::pair<int, int>(0, 2), 1, 2, 3); + Kokkos::View<int*, Kokkos::LayoutLeft, Space> x_deg1; + make_subview(constr, x_deg1, x_static_8, Kokkos::pair<int, int>(0, 0), 1, 2, + 3, 0, 1, 2, 3); + + ASSERT_TRUE(x_deg1.span_is_contiguous()); + ASSERT_EQ(x_deg1.span(), 0); + ASSERT_EQ(x_deg1.data(), &x_static_8(0, 1, 2, 3, 0, 1, 2, 3)); + + Kokkos::View<int*, Kokkos::LayoutLeft, Space> x_deg2; + make_subview(constr, x_deg2, x_static_8, Kokkos::pair<int, int>(2, 2), 2, 3, + 4, 1, 2, 3, 4); + + ASSERT_TRUE(x_deg2.span_is_contiguous()); + ASSERT_EQ(x_deg2.span(), 0); + ASSERT_EQ(x_deg2.data(), x_static_8.data() + x_static_8.span()); + + Kokkos::View<int**, Kokkos::LayoutLeft, Space> x2; + make_subview(constr, x2, x_static_8, Kokkos::pair<int, int>(0, 2), 1, 2, 3, + Kokkos::pair<int, int>(0, 2), 1, 2, 3); ASSERT_TRUE(!x2.span_is_contiguous()); ASSERT_TRUE(&x2(0, 0) == &x_static_8(0, 1, 2, 3, 0, 1, 2, 3)); @@ -346,9 +375,9 @@ void test_left_0() { ASSERT_TRUE(&x2(1, 1) == &x_static_8(1, 1, 2, 3, 1, 1, 2, 3)); // Kokkos::View< int**, Kokkos::LayoutLeft, Space > error_2 = - Kokkos::View<int**, Kokkos::LayoutStride, Space> sx2 = - Kokkos::subview(x_static_8, 1, Kokkos::pair<int, int>(0, 2), 2, 3, - Kokkos::pair<int, int>(0, 2), 1, 2, 3); + Kokkos::View<int**, Kokkos::LayoutStride, Space> sx2; + make_subview(constr, sx2, x_static_8, 1, Kokkos::pair<int, int>(0, 2), 2, 3, + Kokkos::pair<int, int>(0, 2), 1, 2, 3); ASSERT_TRUE(!sx2.span_is_contiguous()); ASSERT_TRUE(&sx2(0, 0) == &x_static_8(1, 0, 2, 3, 0, 1, 2, 3)); @@ -356,15 +385,16 @@ void test_left_0() { ASSERT_TRUE(&sx2(0, 1) == &x_static_8(1, 0, 2, 3, 1, 1, 2, 3)); ASSERT_TRUE(&sx2(1, 1) == &x_static_8(1, 1, 2, 3, 1, 1, 2, 3)); - Kokkos::View<int****, Kokkos::LayoutStride, Space> sx4 = - Kokkos::subview(x_static_8, 0, Kokkos::pair<int, int>(0, 2) /* of [3] */ - , - 1, Kokkos::pair<int, int>(1, 3) /* of [5] */ - , - 1, Kokkos::pair<int, int>(0, 2) /* of [3] */ - , - 2, Kokkos::pair<int, int>(2, 4) /* of [5] */ - ); + Kokkos::View<int****, Kokkos::LayoutStride, Space> sx4; + make_subview(constr, sx4, x_static_8, 0, + Kokkos::pair<int, int>(0, 2) /* of [3] */ + , + 1, Kokkos::pair<int, int>(1, 3) /* of [5] */ + , + 1, Kokkos::pair<int, int>(0, 2) /* of [3] */ + , + 2, Kokkos::pair<int, int>(2, 4) /* of [5] */ + ); ASSERT_TRUE(!sx4.span_is_contiguous()); @@ -380,9 +410,15 @@ void test_left_0() { } template <class Space> -void test_left_1() { - typedef Kokkos::View<int*** * [2][3][4][5], Kokkos::LayoutLeft, Space> - view_type; +void test_left_0() { + test_left_0<Space>(true); + test_left_0<Space>(false); +} + +template <class Space> +void test_left_1(bool use_constr) { + using view_type = + Kokkos::View<int*** * [2][3][4][5], Kokkos::LayoutLeft, Space>; if (Kokkos::Impl::SpaceAccessibility< Kokkos::HostSpace, typename Space::memory_space>::accessible) { @@ -390,22 +426,39 @@ void test_left_1() { ASSERT_TRUE(x8.span_is_contiguous()); - Kokkos::View<int, Kokkos::LayoutLeft, Space> x0 = - Kokkos::subview(x8, 0, 0, 0, 0, 0, 0, 0, 0); + Kokkos::View<int, Kokkos::LayoutLeft, Space> x0; + make_subview(use_constr, x0, x8, 0, 0, 0, 0, 0, 0, 0, 0); ASSERT_TRUE(x0.span_is_contiguous()); ASSERT_TRUE(&x0() == &x8(0, 0, 0, 0, 0, 0, 0, 0)); - Kokkos::View<int*, Kokkos::LayoutLeft, Space> x1 = - Kokkos::subview(x8, Kokkos::pair<int, int>(0, 2), 1, 2, 3, 0, 1, 2, 3); + Kokkos::View<int*, Kokkos::LayoutLeft, Space> x1; + make_subview(use_constr, x1, x8, Kokkos::pair<int, int>(0, 2), 1, 2, 3, 0, + 1, 2, 3); ASSERT_TRUE(x1.span_is_contiguous()); ASSERT_TRUE(&x1(0) == &x8(0, 1, 2, 3, 0, 1, 2, 3)); ASSERT_TRUE(&x1(1) == &x8(1, 1, 2, 3, 0, 1, 2, 3)); - Kokkos::View<int**, Kokkos::LayoutLeft, Space> x2 = - Kokkos::subview(x8, Kokkos::pair<int, int>(0, 2), 1, 2, 3, - Kokkos::pair<int, int>(0, 2), 1, 2, 3); + Kokkos::View<int*, Kokkos::LayoutLeft, Space> x1_deg1; + make_subview(use_constr, x1_deg1, x8, Kokkos::pair<int, int>(0, 0), 1, 2, 3, + 0, 1, 2, 3); + + ASSERT_TRUE(x1_deg1.span_is_contiguous()); + ASSERT_EQ(0, x1_deg1.span()); + ASSERT_EQ(x1_deg1.data(), &x8(0, 1, 2, 3, 0, 1, 2, 3)); + + Kokkos::View<int*, Kokkos::LayoutLeft, Space> x1_deg2; + make_subview(use_constr, x1_deg2, x8, Kokkos::pair<int, int>(2, 2), 2, 3, 4, + 1, 2, 3, 4); + + ASSERT_EQ(0, x1_deg2.span()); + ASSERT_TRUE(x1_deg2.span_is_contiguous()); + ASSERT_EQ(x1_deg2.data(), x8.data() + x8.span()); + + Kokkos::View<int**, Kokkos::LayoutLeft, Space> x2; + make_subview(use_constr, x2, x8, Kokkos::pair<int, int>(0, 2), 1, 2, 3, + Kokkos::pair<int, int>(0, 2), 1, 2, 3); ASSERT_TRUE(!x2.span_is_contiguous()); ASSERT_TRUE(&x2(0, 0) == &x8(0, 1, 2, 3, 0, 1, 2, 3)); @@ -413,10 +466,15 @@ void test_left_1() { ASSERT_TRUE(&x2(0, 1) == &x8(0, 1, 2, 3, 1, 1, 2, 3)); ASSERT_TRUE(&x2(1, 1) == &x8(1, 1, 2, 3, 1, 1, 2, 3)); + Kokkos::View<int**, Kokkos::LayoutLeft, Space> x2_deg2; + make_subview(use_constr, x2_deg2, x8, Kokkos::pair<int, int>(2, 2), 2, 3, 4, + 1, 2, Kokkos::pair<int, int>(2, 3), 4); + ASSERT_EQ(0, x2_deg2.span()); + // Kokkos::View< int**, Kokkos::LayoutLeft, Space > error_2 = - Kokkos::View<int**, Kokkos::LayoutStride, Space> sx2 = - Kokkos::subview(x8, 1, Kokkos::pair<int, int>(0, 2), 2, 3, - Kokkos::pair<int, int>(0, 2), 1, 2, 3); + Kokkos::View<int**, Kokkos::LayoutStride, Space> sx2; + make_subview(use_constr, sx2, x8, 1, Kokkos::pair<int, int>(0, 2), 2, 3, + Kokkos::pair<int, int>(0, 2), 1, 2, 3); ASSERT_TRUE(!sx2.span_is_contiguous()); ASSERT_TRUE(&sx2(0, 0) == &x8(1, 0, 2, 3, 0, 1, 2, 3)); @@ -424,15 +482,21 @@ void test_left_1() { ASSERT_TRUE(&sx2(0, 1) == &x8(1, 0, 2, 3, 1, 1, 2, 3)); ASSERT_TRUE(&sx2(1, 1) == &x8(1, 1, 2, 3, 1, 1, 2, 3)); - Kokkos::View<int****, Kokkos::LayoutStride, Space> sx4 = - Kokkos::subview(x8, 0, Kokkos::pair<int, int>(0, 2) /* of [3] */ - , - 1, Kokkos::pair<int, int>(1, 3) /* of [5] */ - , - 1, Kokkos::pair<int, int>(0, 2) /* of [3] */ - , - 2, Kokkos::pair<int, int>(2, 4) /* of [5] */ - ); + Kokkos::View<int**, Kokkos::LayoutStride, Space> sx2_deg; + make_subview(use_constr, sx2, x8, 1, Kokkos::pair<int, int>(0, 0), 2, 3, + Kokkos::pair<int, int>(0, 2), 1, 2, 3); + ASSERT_EQ(0, sx2_deg.span()); + + Kokkos::View<int****, Kokkos::LayoutStride, Space> sx4; + make_subview(use_constr, sx4, x8, 0, + Kokkos::pair<int, int>(0, 2) /* of [3] */ + , + 1, Kokkos::pair<int, int>(1, 3) /* of [5] */ + , + 1, Kokkos::pair<int, int>(0, 2) /* of [3] */ + , + 2, Kokkos::pair<int, int>(2, 4) /* of [5] */ + ); ASSERT_TRUE(!sx4.span_is_contiguous()); @@ -446,9 +510,15 @@ void test_left_1() { } } +template <class Space> +void test_left_1() { + test_left_1<Space>(true); + test_left_1<Space>(false); +} + template <class Space> void test_left_2() { - typedef Kokkos::View<int****, Kokkos::LayoutLeft, Space> view_type; + using view_type = Kokkos::View<int****, Kokkos::LayoutLeft, Space>; if (Kokkos::Impl::SpaceAccessibility< Kokkos::HostSpace, typename Space::memory_space>::accessible) { @@ -514,7 +584,7 @@ void test_left_2() { template <class Space> void test_left_3() { - typedef Kokkos::View<int**, Kokkos::LayoutLeft, Space> view_type; + using view_type = Kokkos::View<int**, Kokkos::LayoutLeft, Space>; if (Kokkos::Impl::SpaceAccessibility< Kokkos::HostSpace, typename Space::memory_space>::accessible) { @@ -570,29 +640,31 @@ void test_left_3() { //---------------------------------------------------------------------------- template <class Space> -void test_right_0() { - typedef Kokkos::View<int[2][3][4][5][2][3][4][5], Kokkos::LayoutRight, Space> - view_static_8_type; +void test_right_0(bool use_constr) { + using view_static_8_type = + Kokkos::View<int[2][3][4][5][2][3][4][5], Kokkos::LayoutRight, Space>; if (Kokkos::Impl::SpaceAccessibility< Kokkos::HostSpace, typename Space::memory_space>::accessible) { view_static_8_type x_static_8("x_static_right_8"); - Kokkos::View<int, Kokkos::LayoutRight, Space> x0 = - Kokkos::subview(x_static_8, 0, 0, 0, 0, 0, 0, 0, 0); + Kokkos::View<int, Kokkos::LayoutRight, Space> x0; + make_subview(use_constr, x0, x_static_8, 0, 0, 0, 0, 0, 0, 0, 0); ASSERT_TRUE(&x0() == &x_static_8(0, 0, 0, 0, 0, 0, 0, 0)); - Kokkos::View<int*, Kokkos::LayoutRight, Space> x1 = Kokkos::subview( - x_static_8, 0, 1, 2, 3, 0, 1, 2, Kokkos::pair<int, int>(1, 3)); + Kokkos::View<int*, Kokkos::LayoutRight, Space> x1; + make_subview(use_constr, x1, x_static_8, 0, 1, 2, 3, 0, 1, 2, + Kokkos::pair<int, int>(1, 3)); ASSERT_TRUE(x1.extent(0) == 2); ASSERT_TRUE(&x1(0) == &x_static_8(0, 1, 2, 3, 0, 1, 2, 1)); ASSERT_TRUE(&x1(1) == &x_static_8(0, 1, 2, 3, 0, 1, 2, 2)); - Kokkos::View<int**, Kokkos::LayoutRight, Space> x2 = - Kokkos::subview(x_static_8, 0, 1, 2, Kokkos::pair<int, int>(1, 3), 0, 1, - 2, Kokkos::pair<int, int>(1, 3)); + Kokkos::View<int**, Kokkos::LayoutRight, Space> x2; + make_subview(use_constr, x2, x_static_8, 0, 1, 2, + Kokkos::pair<int, int>(1, 3), 0, 1, 2, + Kokkos::pair<int, int>(1, 3)); ASSERT_TRUE(x2.extent(0) == 2); ASSERT_TRUE(x2.extent(1) == 2); @@ -602,9 +674,9 @@ void test_right_0() { ASSERT_TRUE(&x2(1, 1) == &x_static_8(0, 1, 2, 2, 0, 1, 2, 2)); // Kokkos::View< int**, Kokkos::LayoutRight, Space > error_2 = - Kokkos::View<int**, Kokkos::LayoutStride, Space> sx2 = - Kokkos::subview(x_static_8, 1, Kokkos::pair<int, int>(0, 2), 2, 3, - Kokkos::pair<int, int>(0, 2), 1, 2, 3); + Kokkos::View<int**, Kokkos::LayoutStride, Space> sx2; + make_subview(use_constr, sx2, x_static_8, 1, Kokkos::pair<int, int>(0, 2), + 2, 3, Kokkos::pair<int, int>(0, 2), 1, 2, 3); ASSERT_TRUE(sx2.extent(0) == 2); ASSERT_TRUE(sx2.extent(1) == 2); @@ -613,15 +685,16 @@ void test_right_0() { ASSERT_TRUE(&sx2(0, 1) == &x_static_8(1, 0, 2, 3, 1, 1, 2, 3)); ASSERT_TRUE(&sx2(1, 1) == &x_static_8(1, 1, 2, 3, 1, 1, 2, 3)); - Kokkos::View<int****, Kokkos::LayoutStride, Space> sx4 = - Kokkos::subview(x_static_8, 0, Kokkos::pair<int, int>(0, 2) /* of [3] */ - , - 1, Kokkos::pair<int, int>(1, 3) /* of [5] */ - , - 1, Kokkos::pair<int, int>(0, 2) /* of [3] */ - , - 2, Kokkos::pair<int, int>(2, 4) /* of [5] */ - ); + Kokkos::View<int****, Kokkos::LayoutStride, Space> sx4; + make_subview(use_constr, sx4, x_static_8, 0, + Kokkos::pair<int, int>(0, 2) /* of [3] */ + , + 1, Kokkos::pair<int, int>(1, 3) /* of [5] */ + , + 1, Kokkos::pair<int, int>(0, 2) /* of [3] */ + , + 2, Kokkos::pair<int, int>(2, 4) /* of [5] */ + ); ASSERT_TRUE(sx4.extent(0) == 2); ASSERT_TRUE(sx4.extent(1) == 2); @@ -639,53 +712,76 @@ void test_right_0() { } template <class Space> -void test_right_1() { - typedef Kokkos::View<int*** * [2][3][4][5], Kokkos::LayoutRight, Space> - view_type; +void test_right_0() { + test_right_0<Space>(true); + test_right_0<Space>(false); +} + +template <class Space> +void test_right_1(bool use_constr) { + using view_type = + Kokkos::View<int*** * [2][3][4][5], Kokkos::LayoutRight, Space>; if (Kokkos::Impl::SpaceAccessibility< Kokkos::HostSpace, typename Space::memory_space>::accessible) { view_type x8("x_right_8", 2, 3, 4, 5); - Kokkos::View<int, Kokkos::LayoutRight, Space> x0 = - Kokkos::subview(x8, 0, 0, 0, 0, 0, 0, 0, 0); + Kokkos::View<int, Kokkos::LayoutRight, Space> x0; + make_subview(use_constr, x0, x8, 0, 0, 0, 0, 0, 0, 0, 0); ASSERT_TRUE(&x0() == &x8(0, 0, 0, 0, 0, 0, 0, 0)); - Kokkos::View<int*, Kokkos::LayoutRight, Space> x1 = - Kokkos::subview(x8, 0, 1, 2, 3, 0, 1, 2, Kokkos::pair<int, int>(1, 3)); + Kokkos::View<int*, Kokkos::LayoutRight, Space> x1; + make_subview(use_constr, x1, x8, 0, 1, 2, 3, 0, 1, 2, + Kokkos::pair<int, int>(1, 3)); ASSERT_TRUE(&x1(0) == &x8(0, 1, 2, 3, 0, 1, 2, 1)); ASSERT_TRUE(&x1(1) == &x8(0, 1, 2, 3, 0, 1, 2, 2)); - Kokkos::View<int**, Kokkos::LayoutRight, Space> x2 = - Kokkos::subview(x8, 0, 1, 2, Kokkos::pair<int, int>(1, 3), 0, 1, 2, - Kokkos::pair<int, int>(1, 3)); + Kokkos::View<int*, Kokkos::LayoutRight, Space> x1_deg1; + make_subview(use_constr, x1_deg1, x8, 0, 1, 2, 3, 0, 1, 2, + Kokkos::pair<int, int>(3, 3)); + ASSERT_EQ(0, x1_deg1.span()); + + Kokkos::View<int**, Kokkos::LayoutRight, Space> x2; + make_subview(use_constr, x2, x8, 0, 1, 2, Kokkos::pair<int, int>(1, 3), 0, + 1, 2, Kokkos::pair<int, int>(1, 3)); ASSERT_TRUE(&x2(0, 0) == &x8(0, 1, 2, 1, 0, 1, 2, 1)); ASSERT_TRUE(&x2(1, 0) == &x8(0, 1, 2, 2, 0, 1, 2, 1)); ASSERT_TRUE(&x2(0, 1) == &x8(0, 1, 2, 1, 0, 1, 2, 2)); ASSERT_TRUE(&x2(1, 1) == &x8(0, 1, 2, 2, 0, 1, 2, 2)); + Kokkos::View<int**, Kokkos::LayoutRight, Space> x2_deg2; + make_subview(use_constr, x2_deg2, x8, 0, 1, 2, Kokkos::pair<int, int>(1, 3), + 0, 1, 2, Kokkos::pair<int, int>(3, 3)); + ASSERT_EQ(0, x2_deg2.span()); + // Kokkos::View< int**, Kokkos::LayoutRight, Space > error_2 = - Kokkos::View<int**, Kokkos::LayoutStride, Space> sx2 = - Kokkos::subview(x8, 1, Kokkos::pair<int, int>(0, 2), 2, 3, - Kokkos::pair<int, int>(0, 2), 1, 2, 3); + Kokkos::View<int**, Kokkos::LayoutStride, Space> sx2; + make_subview(use_constr, sx2, x8, 1, Kokkos::pair<int, int>(0, 2), 2, 3, + Kokkos::pair<int, int>(0, 2), 1, 2, 3); ASSERT_TRUE(&sx2(0, 0) == &x8(1, 0, 2, 3, 0, 1, 2, 3)); ASSERT_TRUE(&sx2(1, 0) == &x8(1, 1, 2, 3, 0, 1, 2, 3)); ASSERT_TRUE(&sx2(0, 1) == &x8(1, 0, 2, 3, 1, 1, 2, 3)); ASSERT_TRUE(&sx2(1, 1) == &x8(1, 1, 2, 3, 1, 1, 2, 3)); - Kokkos::View<int****, Kokkos::LayoutStride, Space> sx4 = - Kokkos::subview(x8, 0, Kokkos::pair<int, int>(0, 2) /* of [3] */ - , - 1, Kokkos::pair<int, int>(1, 3) /* of [5] */ - , - 1, Kokkos::pair<int, int>(0, 2) /* of [3] */ - , - 2, Kokkos::pair<int, int>(2, 4) /* of [5] */ - ); + Kokkos::View<int**, Kokkos::LayoutStride, Space> sx2_deg; + make_subview(use_constr, sx2_deg, x8, 1, Kokkos::pair<int, int>(0, 2), 2, 3, + 1, 1, 2, Kokkos::pair<int, int>(3, 3)); + ASSERT_EQ(0, sx2_deg.span()); + + Kokkos::View<int****, Kokkos::LayoutStride, Space> sx4; + make_subview(use_constr, sx4, x8, 0, + Kokkos::pair<int, int>(0, 2) /* of [3] */ + , + 1, Kokkos::pair<int, int>(1, 3) /* of [5] */ + , + 1, Kokkos::pair<int, int>(0, 2) /* of [3] */ + , + 2, Kokkos::pair<int, int>(2, 4) /* of [5] */ + ); for (int i0 = 0; i0 < (int)sx4.extent(0); ++i0) for (int i1 = 0; i1 < (int)sx4.extent(1); ++i1) @@ -697,9 +793,15 @@ void test_right_1() { } } +template <class Space> +void test_right_1() { + test_right_1<Space>(true); + test_right_1<Space>(false); +} + template <class Space> void test_right_3() { - typedef Kokkos::View<int**, Kokkos::LayoutRight, Space> view_type; + using view_type = Kokkos::View<int**, Kokkos::LayoutRight, Space>; if (Kokkos::Impl::SpaceAccessibility< Kokkos::HostSpace, typename Space::memory_space>::accessible) { @@ -761,76 +863,360 @@ constexpr int N2 = 17; constexpr int N3 = 5; constexpr int N4 = 7; -template <class SubView, class View> -void test_Check1D(SubView a, View b, std::pair<int, int> range) { - int errors = 0; +template <class Layout, class Space> +struct FillView_1D { + using view_t = Kokkos::View<int*, Layout, Space>; + view_t a; + using policy_t = Kokkos::RangePolicy<typename Space::execution_space>; + + FillView_1D(view_t a_) : a(a_) {} - for (int i = 0; i < range.second - range.first; i++) { - if (a(i) != b(i + range.first)) errors++; + void run() { + Kokkos::parallel_for("FillView_1D", policy_t(0, a.extent(0)), *this); } + KOKKOS_INLINE_FUNCTION + void operator()(int i) const { a(i) = i; } +}; + +template <class Layout, class Space> +struct FillView_3D { + using exec_t = typename Space::execution_space; + using view_t = Kokkos::View<int***, Layout, Space>; + using rank_t = Kokkos::Rank< + view_t::Rank, + std::is_same<Layout, Kokkos::LayoutLeft>::value ? Kokkos::Iterate::Left + : Kokkos::Iterate::Right, + std::is_same<Layout, Kokkos::LayoutLeft>::value ? Kokkos::Iterate::Left + : Kokkos::Iterate::Right>; + using policy_t = Kokkos::MDRangePolicy<exec_t, rank_t>; - if (errors > 0) { - std::cout << "Error Suviews test_Check1D: " << errors << std::endl; + view_t a; + + FillView_3D(view_t a_) : a(a_) {} + + void run() { + Kokkos::parallel_for( + "FillView_3D", + policy_t({0, 0, 0}, {a.extent(0), a.extent(1), a.extent(2)}), *this); } - ASSERT_TRUE(errors == 0); -} + KOKKOS_INLINE_FUNCTION + void operator()(int i0, int i1, int i2) const { + a(i0, i1, i2) = 1000000 * i0 + 1000 * i1 + i2; + } +}; -template <class SubView, class View> -void test_Check1D2D(SubView a, View b, int i0, std::pair<int, int> range) { - int errors = 0; +template <class Layout, class Space> +struct FillView_4D { + using exec_t = typename Space::execution_space; + using view_t = Kokkos::View<int****, Layout, Space>; + using rank_t = Kokkos::Rank< + view_t::Rank, + std::is_same<Layout, Kokkos::LayoutLeft>::value ? Kokkos::Iterate::Left + : Kokkos::Iterate::Right, + std::is_same<Layout, Kokkos::LayoutLeft>::value ? Kokkos::Iterate::Left + : Kokkos::Iterate::Right>; + using policy_t = Kokkos::MDRangePolicy<exec_t, rank_t>; + + view_t a; + + FillView_4D(view_t a_) : a(a_) {} + + void run() { + Kokkos::parallel_for("FillView_4D", + policy_t({0, 0, 0, 0}, {a.extent(0), a.extent(1), + a.extent(2), a.extent(3)}), + *this); + } - for (int i1 = 0; i1 < range.second - range.first; i1++) { - if (a(i1) != b(i0, i1 + range.first)) errors++; + KOKKOS_INLINE_FUNCTION + void operator()(int i0, int i1, int i2, int i3) const { + a(i0, i1, i2, i3) = 1000000 * i0 + 10000 * i1 + 100 * i2 + i3; } +}; - if (errors > 0) { - std::cout << "Error Suviews test_Check1D2D: " << errors << std::endl; +template <class Layout, class Space> +struct FillView_5D { + using exec_t = typename Space::execution_space; + using view_t = Kokkos::View<int*****, Layout, Space>; + using rank_t = Kokkos::Rank< + view_t::Rank, + std::is_same<Layout, Kokkos::LayoutLeft>::value ? Kokkos::Iterate::Left + : Kokkos::Iterate::Right, + std::is_same<Layout, Kokkos::LayoutLeft>::value ? Kokkos::Iterate::Left + : Kokkos::Iterate::Right>; + using policy_t = Kokkos::MDRangePolicy<exec_t, rank_t>; + + view_t a; + + FillView_5D(view_t a_) : a(a_) {} + + void run() { + Kokkos::parallel_for( + "FillView_5D", + policy_t({0, 0, 0, 0, 0}, {a.extent(0), a.extent(1), a.extent(2), + a.extent(3), a.extent(4)}), + *this); } - ASSERT_TRUE(errors == 0); -} + KOKKOS_INLINE_FUNCTION + void operator()(int i0, int i1, int i2, int i3, int i4) const { + a(i0, i1, i2, i3, i4) = 1000000 * i0 + 10000 * i1 + 100 * i2 + 10 * i3 + i4; + } +}; -template <class SubView, class View> -void test_Check2D3D(SubView a, View b, int i0, std::pair<int, int> range1, - std::pair<int, int> range2) { - int errors = 0; +template <class View, class SubView> +struct CheckSubviewCorrectness_1D_1D { + using policy_t = Kokkos::RangePolicy<typename View::execution_space>; + View a; + SubView b; + int offset; + + CheckSubviewCorrectness_1D_1D(View a_, SubView b_, int o) + : a(a_), b(b_), offset(o) {} + + void run() { + int errors = 0; + Kokkos::parallel_reduce("CheckSubView_1D_1D", policy_t(0, b.size()), *this, + errors); + ASSERT_TRUE(errors == 0); + } - for (int i1 = 0; i1 < range1.second - range1.first; i1++) { - for (int i2 = 0; i2 < range2.second - range2.first; i2++) { - if (a(i1, i2) != b(i0, i1 + range1.first, i2 + range2.first)) errors++; + KOKKOS_INLINE_FUNCTION + void operator()(const int& i, int& e) const { + if (a(i + offset) != b(i)) { + e++; } } +}; - if (errors > 0) { - std::cout << "Error Suviews test_Check2D3D: " << errors << std::endl; +template <class View, class SubView> +struct CheckSubviewCorrectness_1D_2D { + using policy_t = Kokkos::RangePolicy<typename View::execution_space>; + View a; + SubView b; + int i0; + int offset; + + CheckSubviewCorrectness_1D_2D(View a_, SubView b_, int i0_, int o) + : a(a_), b(b_), i0(i0_), offset(o) {} + + void run() { + int errors = 0; + Kokkos::parallel_reduce("CheckSubView_1D_2D", policy_t(0, b.size()), *this, + errors); + ASSERT_TRUE(errors == 0); } - ASSERT_TRUE(errors == 0); -} + KOKKOS_INLINE_FUNCTION + void operator()(const int& i1, int& e) const { + if (a(i0, i1 + offset) != b(i1)) { + e++; + } + } +}; -template <class SubView, class View> -void test_Check3D5D(SubView a, View b, int i0, int i1, - std::pair<int, int> range2, std::pair<int, int> range3, - std::pair<int, int> range4) { - int errors = 0; - - for (int i2 = 0; i2 < range2.second - range2.first; i2++) { - for (int i3 = 0; i3 < range3.second - range3.first; i3++) { - for (int i4 = 0; i4 < range4.second - range4.first; i4++) { - if (a(i2, i3, i4) != b(i0, i1, i2 + range2.first, i3 + range3.first, - i4 + range4.first)) { - errors++; - } - } +template <class View, class SubView> +struct CheckSubviewCorrectness_2D_3D { + using policy_t = Kokkos::RangePolicy<typename View::execution_space>; + using layout = typename View::array_layout; + View a; + SubView b; + int i0; + int offset_1; + int offset_2; + + CheckSubviewCorrectness_2D_3D(View a_, SubView b_, int i0_, int o1, int o2) + : a(a_), b(b_), i0(i0_), offset_1(o1), offset_2(o2) {} + + void run() { + int errors = 0; + Kokkos::parallel_reduce("CheckSubView_2D_3D", policy_t(0, b.size()), *this, + errors); + ASSERT_TRUE(errors == 0); + } + + KOKKOS_INLINE_FUNCTION + void operator()(const int& ii, int& e) const { + const int i1 = std::is_same<layout, Kokkos::LayoutLeft>::value + ? ii % b.extent(0) + : ii / b.extent(1); + + const int i2 = std::is_same<layout, Kokkos::LayoutLeft>::value + ? ii / b.extent(0) + : ii % b.extent(1); + + if (a(i0, i1 + offset_1, i2 + offset_2) != b(i1, i2)) { + e++; } } +}; - if (errors > 0) { - std::cout << "Error Suviews test_Check3D5D: " << errors << std::endl; +template <class View, class SubView> +struct CheckSubviewCorrectness_3D_3D { + using policy_t = Kokkos::RangePolicy<typename View::execution_space>; + using layout = typename View::array_layout; + View a; + SubView b; + int offset_0; + int offset_2; + + CheckSubviewCorrectness_3D_3D(View a_, SubView b_, int o0, int o2) + : a(a_), b(b_), offset_0(o0), offset_2(o2) {} + + void run() { + int errors = 0; + Kokkos::parallel_reduce("CheckSubView_3D_3D", policy_t(0, b.size()), *this, + errors); + ASSERT_TRUE(errors == 0); } - ASSERT_TRUE(errors == 0); + KOKKOS_INLINE_FUNCTION + void operator()(const int& ii, int& e) const { + const int i0 = std::is_same<layout, Kokkos::LayoutLeft>::value + ? ii % b.extent(0) + : ii / (b.extent(1) * b.extent(2)); + + const int i1 = std::is_same<layout, Kokkos::LayoutLeft>::value + ? (ii / b.extent(0)) % b.extent(1) + : (ii / b.extent(2)) % b.extent(1); + + const int i2 = std::is_same<layout, Kokkos::LayoutLeft>::value + ? ii / (b.extent(0) * b.extent(1)) + : ii % b.extent(2); + + if (a(i0 + offset_0, i1, i2 + offset_2) != b(i0, i1, i2)) { + e++; + } + } +}; + +template <class View, class SubView> +struct CheckSubviewCorrectness_3D_4D { + using policy_t = Kokkos::RangePolicy<typename View::execution_space>; + using layout = typename View::array_layout; + View a; + SubView b; + int index; + int offset_0, offset_2; + + CheckSubviewCorrectness_3D_4D(View a_, SubView b_, int index_, int o0, int o2) + : a(a_), b(b_), index(index_), offset_0(o0), offset_2(o2) {} + + void run() { + int errors = 0; + Kokkos::parallel_reduce("CheckSubView_3D_4D", policy_t(0, b.size()), *this, + errors); + ASSERT_TRUE(errors == 0); + } + + KOKKOS_INLINE_FUNCTION + void operator()(const int& ii, int& e) const { + const int i = std::is_same<layout, Kokkos::LayoutLeft>::value + ? ii % b.extent(0) + : ii / (b.extent(1) * b.extent(2)); + + const int j = std::is_same<layout, Kokkos::LayoutLeft>::value + ? (ii / b.extent(0)) % b.extent(1) + : (ii / b.extent(2)) % b.extent(1); + + const int k = std::is_same<layout, Kokkos::LayoutLeft>::value + ? ii / (b.extent(0) * b.extent(1)) + : ii % b.extent(2); + + int i0, i1, i2, i3; + + if (std::is_same<layout, Kokkos::LayoutLeft>::value) { + i0 = i + offset_0; + i1 = j; + i2 = k + offset_2; + i3 = index; + } else { + i0 = index; + i1 = i + offset_0; + i2 = j; + i3 = k + offset_2; + } + + if (a(i0, i1, i2, i3) != b(i, j, k)) e++; + } +}; + +template <class View, class SubView> +struct CheckSubviewCorrectness_3D_5D { + using policy_t = Kokkos::RangePolicy<typename View::execution_space>; + using layout = typename View::array_layout; + View a; + SubView b; + int i0, i1; + int offset_2, offset_3, offset_4; + + CheckSubviewCorrectness_3D_5D(View a_, SubView b_, int i0_, int i1_, int o2, + int o3, int o4) + : a(a_), + b(b_), + i0(i0_), + i1(i1_), + offset_2(o2), + offset_3(o3), + offset_4(o4) {} + + void run() { + int errors = 0; + Kokkos::parallel_reduce("CheckSubView_3D_5D", policy_t(0, b.size()), *this, + errors); + ASSERT_TRUE(errors == 0); + } + + KOKKOS_INLINE_FUNCTION + void operator()(const int& ii, int& e) const { + const int i2 = std::is_same<layout, Kokkos::LayoutLeft>::value + ? ii % b.extent(0) + : ii / (b.extent(1) * b.extent(2)); + + const int i3 = std::is_same<layout, Kokkos::LayoutLeft>::value + ? (ii / b.extent(0)) % b.extent(1) + : (ii / b.extent(2)) % b.extent(1); + + const int i4 = std::is_same<layout, Kokkos::LayoutLeft>::value + ? ii / (b.extent(0) * b.extent(1)) + : ii % b.extent(2); + + if (a(i0, i1, i2 + offset_2, i3 + offset_3, i4 + offset_4) != + b(i2, i3, i4)) { + e++; + } + } +}; + +template <class SubView, class View> +void test_Check1D(SubView a, View b, Kokkos::pair<int, int> range) { + CheckSubviewCorrectness_1D_1D<View, SubView> check(b, a, range.first); + check.run(); +} + +template <class SubView, class View> +void test_Check1D2D(SubView a, View b, int i0, std::pair<int, int> range) { + CheckSubviewCorrectness_1D_2D<View, SubView> check(b, a, i0, range.first); + check.run(); +} + +template <class SubView, class View> +void test_Check2D3D(SubView a, View b, int i0, std::pair<int, int> range1, + std::pair<int, int> range2) { + CheckSubviewCorrectness_2D_3D<View, SubView> check(b, a, i0, range1.first, + range2.first); + check.run(); +} + +template <class SubView, class View> +void test_Check3D5D(SubView a, View b, int i0, int i1, + Kokkos::pair<int, int> range2, + Kokkos::pair<int, int> range3, + Kokkos::pair<int, int> range4) { + CheckSubviewCorrectness_3D_5D<View, SubView> check( + b, a, i0, i1, range2.first, range3.first, range4.first); + check.run(); } template <class Space, class LayoutSub, class Layout, class LayoutOrg, @@ -840,7 +1226,9 @@ void test_1d_assign_impl() { Kokkos::View<int*, LayoutOrg, Space> a_org("A", N0); Kokkos::View<int*, LayoutOrg, Space, MemTraits> a(a_org); Kokkos::fence(); - for (int i = 0; i < N0; i++) a_org(i) = i; + + Impl::FillView_1D<LayoutOrg, Space> fill(a_org); + fill.run(); Kokkos::View<int[N0], Layout, Space, MemTraits> a1(a); Kokkos::fence(); @@ -876,11 +1264,8 @@ void test_2d_subview_3d_impl_type() { Kokkos::View<int***, LayoutOrg, Space> a_org("A", N0, N1, N2); Kokkos::View<Type, Layout, Space, MemTraits> a(a_org); - for (int i0 = 0; i0 < N0; i0++) - for (int i1 = 0; i1 < N1; i1++) - for (int i2 = 0; i2 < N2; i2++) { - a_org(i0, i1, i2) = i0 * 1000000 + i1 * 1000 + i2; - } + Impl::FillView_3D<LayoutOrg, Space> fill(a_org); + fill.run(); Kokkos::View<TypeSub, LayoutSub, Space, MemTraits> a1; a1 = Kokkos::subview(a, 3, Kokkos::ALL, Kokkos::ALL); @@ -961,14 +1346,8 @@ void test_3d_subview_5d_impl_type() { Kokkos::View<int*****, LayoutOrg, Space> a_org("A", N0, N1, N2, N3, N4); Kokkos::View<Type, Layout, Space, MemTraits> a(a_org); - for (int i0 = 0; i0 < N0; i0++) - for (int i1 = 0; i1 < N1; i1++) - for (int i2 = 0; i2 < N2; i2++) - for (int i3 = 0; i3 < N3; i3++) - for (int i4 = 0; i4 < N4; i4++) { - a_org(i0, i1, i2, i3, i4) = - i0 * 1000000 + i1 * 10000 + i2 * 100 + i3 * 10 + i4; - } + Impl::FillView_5D<LayoutOrg, Space> fill(a_org); + fill.run(); Kokkos::View<TypeSub, LayoutSub, Space, MemTraits> a1; a1 = Kokkos::subview(a, 3, 5, Kokkos::ALL, Kokkos::ALL, Kokkos::ALL); @@ -1245,7 +1624,7 @@ inline void test_subview_legal_args_right() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 5, 0, int, Kokkos::Impl::ALL_t, Kokkos::Impl::ALL_t, int, - Kokkos::pair<int, int> >::value)); + Kokkos::pair<int, int>>::value)); ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 5, 0, int, Kokkos::Impl::ALL_t, Kokkos::Impl::ALL_t, int, @@ -1253,7 +1632,7 @@ inline void test_subview_legal_args_right() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 5, 0, int, Kokkos::Impl::ALL_t, Kokkos::pair<int, int>, int, - Kokkos::pair<int, int> >::value)); + Kokkos::pair<int, int>>::value)); ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 5, 0, int, Kokkos::Impl::ALL_t, Kokkos::pair<int, int>, int, @@ -1261,7 +1640,7 @@ inline void test_subview_legal_args_right() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 5, 0, int, Kokkos::pair<int, int>, Kokkos::Impl::ALL_t, int, - Kokkos::pair<int, int> >::value)); + Kokkos::pair<int, int>>::value)); ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 5, 0, int, Kokkos::pair<int, int>, Kokkos::Impl::ALL_t, int, @@ -1269,7 +1648,7 @@ inline void test_subview_legal_args_right() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 5, 0, int, Kokkos::pair<int, int>, Kokkos::pair<int, int>, int, - Kokkos::pair<int, int> >::value)); + Kokkos::pair<int, int>>::value)); ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 5, 0, int, Kokkos::pair<int, int>, Kokkos::pair<int, int>, int, @@ -1278,7 +1657,7 @@ inline void test_subview_legal_args_right() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 5, 0, int, int, Kokkos::Impl::ALL_t, Kokkos::Impl::ALL_t, - Kokkos::pair<int, int> >::value)); + Kokkos::pair<int, int>>::value)); ASSERT_EQ(1, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 5, 0, int, int, Kokkos::Impl::ALL_t, Kokkos::Impl::ALL_t, @@ -1286,7 +1665,7 @@ inline void test_subview_legal_args_right() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 5, 0, int, int, Kokkos::Impl::ALL_t, Kokkos::pair<int, int>, - Kokkos::pair<int, int> >::value)); + Kokkos::pair<int, int>>::value)); ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 5, 0, int, int, Kokkos::Impl::ALL_t, Kokkos::pair<int, int>, @@ -1294,7 +1673,7 @@ inline void test_subview_legal_args_right() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 5, 0, int, int, Kokkos::pair<int, int>, Kokkos::Impl::ALL_t, - Kokkos::pair<int, int> >::value)); + Kokkos::pair<int, int>>::value)); ASSERT_EQ(1, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 5, 0, int, int, Kokkos::pair<int, int>, Kokkos::Impl::ALL_t, @@ -1302,7 +1681,7 @@ inline void test_subview_legal_args_right() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 5, 0, int, int, Kokkos::pair<int, int>, Kokkos::pair<int, int>, - Kokkos::pair<int, int> >::value)); + Kokkos::pair<int, int>>::value)); ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 5, 0, int, int, Kokkos::pair<int, int>, Kokkos::pair<int, int>, @@ -1315,7 +1694,7 @@ inline void test_subview_legal_args_right() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 3, 0, Kokkos::Impl::ALL_t, Kokkos::Impl::ALL_t, - Kokkos::pair<int, int> >::value)); + Kokkos::pair<int, int>>::value)); ASSERT_EQ(1, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 3, 0, Kokkos::pair<int, int>, Kokkos::Impl::ALL_t, @@ -1323,7 +1702,7 @@ inline void test_subview_legal_args_right() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 3, 0, Kokkos::pair<int, int>, Kokkos::Impl::ALL_t, - Kokkos::pair<int, int> >::value)); + Kokkos::pair<int, int>>::value)); ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 3, 0, Kokkos::Impl::ALL_t, Kokkos::pair<int, int>, @@ -1331,7 +1710,7 @@ inline void test_subview_legal_args_right() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 3, 0, Kokkos::Impl::ALL_t, Kokkos::pair<int, int>, - Kokkos::pair<int, int> >::value)); + Kokkos::pair<int, int>>::value)); ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 3, 0, Kokkos::pair<int, int>, Kokkos::pair<int, int>, @@ -1339,7 +1718,7 @@ inline void test_subview_legal_args_right() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutRight, Kokkos::LayoutRight, 3, 3, 0, Kokkos::pair<int, int>, Kokkos::pair<int, int>, - Kokkos::pair<int, int> >::value)); + Kokkos::pair<int, int>>::value)); } inline void test_subview_legal_args_left() { @@ -1490,7 +1869,7 @@ inline void test_subview_legal_args_left() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 5, 0, int, Kokkos::Impl::ALL_t, Kokkos::Impl::ALL_t, int, - Kokkos::pair<int, int> >::value)); + Kokkos::pair<int, int>>::value)); ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 5, 0, int, Kokkos::Impl::ALL_t, Kokkos::Impl::ALL_t, int, @@ -1498,7 +1877,7 @@ inline void test_subview_legal_args_left() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 5, 0, int, Kokkos::Impl::ALL_t, Kokkos::pair<int, int>, int, - Kokkos::pair<int, int> >::value)); + Kokkos::pair<int, int>>::value)); ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 5, 0, int, Kokkos::Impl::ALL_t, Kokkos::pair<int, int>, int, @@ -1506,7 +1885,7 @@ inline void test_subview_legal_args_left() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 5, 0, int, Kokkos::pair<int, int>, Kokkos::Impl::ALL_t, int, - Kokkos::pair<int, int> >::value)); + Kokkos::pair<int, int>>::value)); ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 5, 0, int, Kokkos::pair<int, int>, Kokkos::Impl::ALL_t, int, @@ -1514,7 +1893,7 @@ inline void test_subview_legal_args_left() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 5, 0, int, Kokkos::pair<int, int>, Kokkos::pair<int, int>, int, - Kokkos::pair<int, int> >::value)); + Kokkos::pair<int, int>>::value)); ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 5, 0, int, Kokkos::pair<int, int>, Kokkos::pair<int, int>, int, @@ -1523,7 +1902,7 @@ inline void test_subview_legal_args_left() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 5, 0, int, int, Kokkos::Impl::ALL_t, Kokkos::Impl::ALL_t, - Kokkos::pair<int, int> >::value)); + Kokkos::pair<int, int>>::value)); ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 5, 0, int, int, Kokkos::Impl::ALL_t, Kokkos::Impl::ALL_t, @@ -1531,7 +1910,7 @@ inline void test_subview_legal_args_left() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 5, 0, int, int, Kokkos::Impl::ALL_t, Kokkos::pair<int, int>, - Kokkos::pair<int, int> >::value)); + Kokkos::pair<int, int>>::value)); ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 5, 0, int, int, Kokkos::Impl::ALL_t, Kokkos::pair<int, int>, @@ -1539,7 +1918,7 @@ inline void test_subview_legal_args_left() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 5, 0, int, int, Kokkos::pair<int, int>, Kokkos::Impl::ALL_t, - Kokkos::pair<int, int> >::value)); + Kokkos::pair<int, int>>::value)); ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 5, 0, int, int, Kokkos::pair<int, int>, Kokkos::Impl::ALL_t, @@ -1547,7 +1926,7 @@ inline void test_subview_legal_args_left() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 5, 0, int, int, Kokkos::pair<int, int>, Kokkos::pair<int, int>, - Kokkos::pair<int, int> >::value)); + Kokkos::pair<int, int>>::value)); ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 5, 0, int, int, Kokkos::pair<int, int>, Kokkos::pair<int, int>, @@ -1557,7 +1936,7 @@ inline void test_subview_legal_args_left() { 1, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 3, 0, Kokkos::Impl::ALL_t, - Kokkos::Impl::ALL_t, Kokkos::pair<int, int> >::value)); + Kokkos::Impl::ALL_t, Kokkos::pair<int, int>>::value)); ASSERT_EQ( 1, (Kokkos::Impl::SubviewLegalArgsCompileTime< @@ -1566,7 +1945,7 @@ inline void test_subview_legal_args_left() { ASSERT_EQ(1, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 3, 0, Kokkos::pair<int, int>, Kokkos::Impl::ALL_t, - Kokkos::pair<int, int> >::value)); + Kokkos::pair<int, int>>::value)); ASSERT_EQ(1, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 3, 0, Kokkos::pair<int, int>, Kokkos::Impl::ALL_t, @@ -1580,7 +1959,7 @@ inline void test_subview_legal_args_left() { 0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 3, 0, Kokkos::Impl::ALL_t, - Kokkos::pair<int, int>, Kokkos::pair<int, int> >::value)); + Kokkos::pair<int, int>, Kokkos::pair<int, int>>::value)); ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 3, 0, Kokkos::pair<int, int>, Kokkos::pair<int, int>, @@ -1588,7 +1967,7 @@ inline void test_subview_legal_args_left() { ASSERT_EQ(0, (Kokkos::Impl::SubviewLegalArgsCompileTime< Kokkos::LayoutLeft, Kokkos::LayoutLeft, 3, 3, 0, Kokkos::pair<int, int>, Kokkos::pair<int, int>, - Kokkos::pair<int, int> >::value)); + Kokkos::pair<int, int>>::value)); } } // namespace Impl @@ -1653,259 +2032,83 @@ void test_3d_subview_5d_left() { MemTraits>(); } -namespace Impl { - -template <class Layout, class Space> -struct FillView_3D { - Kokkos::View<int***, Layout, Space> a; - - KOKKOS_INLINE_FUNCTION - void operator()(const int& ii) const { - const int i = std::is_same<Layout, Kokkos::LayoutLeft>::value - ? ii % a.extent(0) - : ii / (a.extent(1) * a.extent(2)); - - const int j = std::is_same<Layout, Kokkos::LayoutLeft>::value - ? (ii / a.extent(0)) % a.extent(1) - : (ii / a.extent(2)) % a.extent(1); - - const int k = std::is_same<Layout, Kokkos::LayoutLeft>::value - ? ii / (a.extent(0) * a.extent(1)) - : ii % a.extent(2); - - a(i, j, k) = 1000000 * i + 1000 * j + k; - } -}; - -template <class Layout, class Space> -struct FillView_4D { - Kokkos::View<int****, Layout, Space> a; - - KOKKOS_INLINE_FUNCTION - void operator()(const int& ii) const { - const int i = std::is_same<Layout, Kokkos::LayoutLeft>::value - ? ii % a.extent(0) - : ii / (a.extent(1) * a.extent(2) * a.extent(3)); - - const int j = std::is_same<Layout, Kokkos::LayoutLeft>::value - ? (ii / a.extent(0)) % a.extent(1) - : (ii / (a.extent(2) * a.extent(3)) % a.extent(1)); - - const int k = std::is_same<Layout, Kokkos::LayoutLeft>::value - ? (ii / (a.extent(0) * a.extent(1))) % a.extent(2) - : (ii / a.extent(3)) % a.extent(2); - - const int l = std::is_same<Layout, Kokkos::LayoutLeft>::value - ? ii / (a.extent(0) * a.extent(1) * a.extent(2)) - : ii % a.extent(3); - - a(i, j, k, l) = 1000000 * i + 10000 * j + 100 * k + l; - } -}; - -template <class Layout, class Space, class MemTraits> -struct CheckSubviewCorrectness_3D_3D { - Kokkos::View<const int***, Layout, Space, MemTraits> a; - Kokkos::View<const int***, Layout, Space, MemTraits> b; - int offset_0, offset_2; - - KOKKOS_INLINE_FUNCTION - void operator()(const int& ii) const { - const int i = std::is_same<Layout, Kokkos::LayoutLeft>::value - ? ii % b.extent(0) - : ii / (b.extent(1) * b.extent(2)); - - const int j = std::is_same<Layout, Kokkos::LayoutLeft>::value - ? (ii / b.extent(0)) % b.extent(1) - : (ii / b.extent(2)) % b.extent(1); - - const int k = std::is_same<Layout, Kokkos::LayoutLeft>::value - ? ii / (b.extent(0) * b.extent(1)) - : ii % b.extent(2); - - if (a(i + offset_0, j, k + offset_2) != b(i, j, k)) { - Kokkos::abort( - "Error: check_subview_correctness 3D-3D (LayoutLeft -> LayoutLeft or " - "LayoutRight -> LayoutRight)"); - } - } -}; - -template <class Layout, class Space, class MemTraits> -struct CheckSubviewCorrectness_3D_4D { - Kokkos::View<const int****, Layout, Space, MemTraits> a; - Kokkos::View<const int***, Layout, Space, MemTraits> b; - int offset_0, offset_2, index; - - KOKKOS_INLINE_FUNCTION - void operator()(const int& ii) const { - const int i = std::is_same<Layout, Kokkos::LayoutLeft>::value - ? ii % b.extent(0) - : ii / (b.extent(1) * b.extent(2)); - - const int j = std::is_same<Layout, Kokkos::LayoutLeft>::value - ? (ii / b.extent(0)) % b.extent(1) - : (ii / b.extent(2)) % b.extent(1); - - const int k = std::is_same<Layout, Kokkos::LayoutLeft>::value - ? ii / (b.extent(0) * b.extent(1)) - : ii % b.extent(2); - - int i0, i1, i2, i3; - - if (std::is_same<Layout, Kokkos::LayoutLeft>::value) { - i0 = i + offset_0; - i1 = j; - i2 = k + offset_2; - i3 = index; - } else { - i0 = index; - i1 = i + offset_0; - i2 = j; - i3 = k + offset_2; - } - - if (a(i0, i1, i2, i3) != b(i, j, k)) { - Kokkos::abort( - "Error: check_subview_correctness 3D-4D (LayoutLeft -> LayoutLeft or " - "LayoutRight -> LayoutRight)"); - } - } -}; - -} // namespace Impl - template <class Space, class MemTraits = void> void test_layoutleft_to_layoutleft() { Impl::test_subview_legal_args_left(); + // FIXME_SYCL requires MDRange policy +#ifndef KOKKOS_ENABLE_SYCL + using view3D_t = Kokkos::View<int***, Kokkos::LayoutLeft, Space>; + using view4D_t = Kokkos::View<int****, Kokkos::LayoutLeft, Space>; { - Kokkos::View<int***, Kokkos::LayoutLeft, Space> a("A", 100, 4, 3); - Kokkos::View<int***, Kokkos::LayoutLeft, Space> b( - a, Kokkos::pair<int, int>(16, 32), Kokkos::ALL, Kokkos::ALL); - - Impl::FillView_3D<Kokkos::LayoutLeft, Space> fill; - fill.a = a; - Kokkos::parallel_for(Kokkos::RangePolicy<typename Space::execution_space>( - 0, a.extent(0) * a.extent(1) * a.extent(2)), - fill); - - Impl::CheckSubviewCorrectness_3D_3D<Kokkos::LayoutLeft, Space, MemTraits> - check; - check.a = a; - check.b = b; - check.offset_0 = 16; - check.offset_2 = 0; - Kokkos::parallel_for(Kokkos::RangePolicy<typename Space::execution_space>( - 0, b.extent(0) * b.extent(1) * b.extent(2)), - check); - Kokkos::fence(); + view3D_t a("A", 100, 4, 3); + view3D_t b(a, Kokkos::pair<int, int>(16, 32), Kokkos::ALL, Kokkos::ALL); + + Impl::FillView_3D<Kokkos::LayoutLeft, Space> fill(a); + fill.run(); + + Impl::CheckSubviewCorrectness_3D_3D<view3D_t, view3D_t> check(a, b, 16, 0); + check.run(); } { - Kokkos::View<int***, Kokkos::LayoutLeft, Space> a("A", 100, 4, 5); - Kokkos::View<int***, Kokkos::LayoutLeft, Space> b( - a, Kokkos::pair<int, int>(16, 32), Kokkos::ALL, - Kokkos::pair<int, int>(1, 3)); - - Impl::FillView_3D<Kokkos::LayoutLeft, Space> fill; - fill.a = a; - Kokkos::parallel_for(Kokkos::RangePolicy<typename Space::execution_space>( - 0, a.extent(0) * a.extent(1) * a.extent(2)), - fill); - - Impl::CheckSubviewCorrectness_3D_3D<Kokkos::LayoutLeft, Space, MemTraits> - check; - check.a = a; - check.b = b; - check.offset_0 = 16; - check.offset_2 = 1; - Kokkos::parallel_for(Kokkos::RangePolicy<typename Space::execution_space>( - 0, b.extent(0) * b.extent(1) * b.extent(2)), - check); - Kokkos::fence(); + view3D_t a("A", 100, 4, 5); + view3D_t b(a, Kokkos::pair<int, int>(16, 32), Kokkos::ALL, + Kokkos::pair<int, int>(1, 3)); + + Impl::FillView_3D<Kokkos::LayoutLeft, Space> fill(a); + fill.run(); + + Impl::CheckSubviewCorrectness_3D_3D<view3D_t, view3D_t> check(a, b, 16, 1); + check.run(); } { - Kokkos::View<int****, Kokkos::LayoutLeft, Space> a("A", 100, 4, 5, 3); - Kokkos::View<int***, Kokkos::LayoutLeft, Space> b( - a, Kokkos::pair<int, int>(16, 32), Kokkos::ALL, - Kokkos::pair<int, int>(1, 3), 1); + view4D_t a("A", 100, 4, 5, 3); + view3D_t b(a, Kokkos::pair<int, int>(16, 32), Kokkos::ALL, + Kokkos::pair<int, int>(1, 3), 1); - Impl::FillView_4D<Kokkos::LayoutLeft, Space> fill; - fill.a = a; - Kokkos::parallel_for( - Kokkos::RangePolicy<typename Space::execution_space>( - 0, a.extent(0) * a.extent(1) * a.extent(2) * a.extent(3)), - fill); - - Impl::CheckSubviewCorrectness_3D_4D<Kokkos::LayoutLeft, Space, MemTraits> - check; - check.a = a; - check.b = b; - check.offset_0 = 16; - check.offset_2 = 1; - check.index = 1; - Kokkos::parallel_for(Kokkos::RangePolicy<typename Space::execution_space>( - 0, b.extent(0) * b.extent(1) * b.extent(2)), - check); - Kokkos::fence(); + Impl::FillView_4D<Kokkos::LayoutLeft, Space> fill(a); + fill.run(); + + Impl::CheckSubviewCorrectness_3D_4D<view4D_t, view3D_t> check(a, b, 1, 16, + 1); + check.run(); } +#endif } template <class Space, class MemTraits = void> void test_layoutright_to_layoutright() { Impl::test_subview_legal_args_right(); + // FIXME_SYCL requires MDRange policy +#ifndef KOKKOS_ENABLE_SYCL + using view3D_t = Kokkos::View<int***, Kokkos::LayoutRight, Space>; + using view4D_t = Kokkos::View<int****, Kokkos::LayoutRight, Space>; { - Kokkos::View<int***, Kokkos::LayoutRight, Space> a("A", 100, 4, 3); - Kokkos::View<int***, Kokkos::LayoutRight, Space> b( - a, Kokkos::pair<int, int>(16, 32), Kokkos::ALL, Kokkos::ALL); - - Impl::FillView_3D<Kokkos::LayoutRight, Space> fill; - fill.a = a; - Kokkos::parallel_for(Kokkos::RangePolicy<typename Space::execution_space>( - 0, a.extent(0) * a.extent(1) * a.extent(2)), - fill); - - Impl::CheckSubviewCorrectness_3D_3D<Kokkos::LayoutRight, Space, MemTraits> - check; - check.a = a; - check.b = b; - check.offset_0 = 16; - check.offset_2 = 0; - Kokkos::parallel_for(Kokkos::RangePolicy<typename Space::execution_space>( - 0, b.extent(0) * b.extent(1) * b.extent(2)), - check); - Kokkos::fence(); - } + view3D_t a("A", 100, 4, 3); + view3D_t b(a, Kokkos::pair<int, int>(16, 32), Kokkos::ALL, Kokkos::ALL); + + Impl::FillView_3D<Kokkos::LayoutRight, Space> fill(a); + fill.run(); + Impl::CheckSubviewCorrectness_3D_3D<view3D_t, view3D_t> check(a, b, 16, 0); + check.run(); + } { - Kokkos::View<int****, Kokkos::LayoutRight, Space> a("A", 3, 4, 5, 100); - Kokkos::View<int***, Kokkos::LayoutRight, Space> b( - a, 1, Kokkos::pair<int, int>(1, 3), Kokkos::ALL, Kokkos::ALL); + view4D_t a("A", 3, 4, 5, 100); + view3D_t b(a, 1, Kokkos::pair<int, int>(1, 3), Kokkos::ALL, Kokkos::ALL); - Impl::FillView_4D<Kokkos::LayoutRight, Space> fill; - fill.a = a; - Kokkos::parallel_for( - Kokkos::RangePolicy<typename Space::execution_space>( - 0, a.extent(0) * a.extent(1) * a.extent(2) * a.extent(3)), - fill); - - Impl::CheckSubviewCorrectness_3D_4D<Kokkos::LayoutRight, Space, MemTraits> - check; - check.a = a; - check.b = b; - check.offset_0 = 1; - check.offset_2 = 0; - check.index = 1; - Kokkos::parallel_for(Kokkos::RangePolicy<typename Space::execution_space>( - 0, b.extent(0) * b.extent(1) * b.extent(2)), - check); - Kokkos::fence(); + Impl::FillView_4D<Kokkos::LayoutRight, Space> fill(a); + fill.run(); + + Impl::CheckSubviewCorrectness_3D_4D<view4D_t, view3D_t> check(a, b, 1, 1, + 0); + check.run(); } +#endif } - //---------------------------------------------------------------------------- template <class Space> @@ -1940,7 +2143,7 @@ template <class T> struct get_view_type; template <class T, class... Args> -struct get_view_type<Kokkos::View<T, Args...> > { +struct get_view_type<Kokkos::View<T, Args...>> { using type = T; }; @@ -2036,7 +2239,7 @@ struct TestSubviewStaticSizes { test_8 + test_9 + test_10 + test_11; } - TestSubviewStaticSizes() : a(Kokkos::view_alloc(), 20), b() {} + TestSubviewStaticSizes() : a(Kokkos::view_alloc("a"), 20), b("b") {} }; template <class Space> diff --git a/packages/kokkos/core/unit_test/TestWorkGraph.hpp b/packages/kokkos/core/unit_test/TestWorkGraph.hpp index 548305164..472af3a04 100644 --- a/packages/kokkos/core/unit_test/TestWorkGraph.hpp +++ b/packages/kokkos/core/unit_test/TestWorkGraph.hpp @@ -159,7 +159,12 @@ struct TestWorkGraph { } // anonymous namespace TEST(TEST_CATEGORY, workgraph_fib) { + // FIXME_HIP The test is very slow with HIP and it causes the CI to timeout +#ifdef KOKKOS_ENABLE_HIP + int limit = 7; +#else int limit = 27; +#endif for (int i = 0; i < limit; ++i) { TestWorkGraph<TEST_EXECSPACE> f(i); f.test_for(); diff --git a/packages/kokkos/core/unit_test/Test_InterOp_Streams.hpp b/packages/kokkos/core/unit_test/Test_InterOp_Streams.hpp new file mode 100644 index 000000000..4c16147a3 --- /dev/null +++ b/packages/kokkos/core/unit_test/Test_InterOp_Streams.hpp @@ -0,0 +1,144 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include <Kokkos_Core.hpp> + +namespace Test { + +__global__ void offset_streams(int* p) { + int idx = blockIdx.x * blockDim.x + threadIdx.x; + if (idx < 100) { + p[idx] += idx; + } +} + +template <typename MemorySpace> +struct FunctorRange { + Kokkos::View<int*, MemorySpace, Kokkos::MemoryTraits<Kokkos::Unmanaged>> a; + FunctorRange( + Kokkos::View<int*, MemorySpace, Kokkos::MemoryTraits<Kokkos::Unmanaged>> + a_) + : a(a_) {} + + KOKKOS_INLINE_FUNCTION + void operator()(const int i) const { a(i) += 1; } +}; + +template <typename MemorySpace> +struct FunctorRangeReduce { + Kokkos::View<int*, MemorySpace, Kokkos::MemoryTraits<Kokkos::Unmanaged>> a; + FunctorRangeReduce( + Kokkos::View<int*, MemorySpace, Kokkos::MemoryTraits<Kokkos::Unmanaged>> + a_) + : a(a_) {} + + KOKKOS_INLINE_FUNCTION + void operator()(const int i, int& lsum) const { lsum += a(i); } +}; + +template <typename MemorySpace> +struct FunctorMDRange { + Kokkos::View<int*, MemorySpace, Kokkos::MemoryTraits<Kokkos::Unmanaged>> a; + FunctorMDRange( + Kokkos::View<int*, MemorySpace, Kokkos::MemoryTraits<Kokkos::Unmanaged>> + a_) + : a(a_) {} + + KOKKOS_INLINE_FUNCTION + void operator()(const int i, const int j) const { a(i * 10 + j) += 1; } +}; + +template <typename MemorySpace> +struct FunctorMDRangeReduce { + Kokkos::View<int*, MemorySpace, Kokkos::MemoryTraits<Kokkos::Unmanaged>> a; + FunctorMDRangeReduce( + Kokkos::View<int*, MemorySpace, Kokkos::MemoryTraits<Kokkos::Unmanaged>> + a_) + : a(a_) {} + + KOKKOS_INLINE_FUNCTION + void operator()(const int i, const int j, int& lsum) const { + lsum += a(i * 10 + j); + } +}; + +template <typename MemorySpace, typename ExecutionSpace> +struct FunctorTeam { + Kokkos::View<int*, MemorySpace, Kokkos::MemoryTraits<Kokkos::Unmanaged>> a; + FunctorTeam( + Kokkos::View<int*, MemorySpace, Kokkos::MemoryTraits<Kokkos::Unmanaged>> + a_) + : a(a_) {} + + KOKKOS_INLINE_FUNCTION + void operator()( + typename Kokkos::TeamPolicy<ExecutionSpace>::member_type const& team) + const { + int i = team.league_rank(); + Kokkos::parallel_for(Kokkos::TeamThreadRange(team, 10), + [&](const int j) { a(i * 10 + j) += 1; }); + } +}; + +template <typename MemorySpace, typename ExecutionSpace> +struct FunctorTeamReduce { + Kokkos::View<int*, MemorySpace, Kokkos::MemoryTraits<Kokkos::Unmanaged>> a; + FunctorTeamReduce( + Kokkos::View<int*, MemorySpace, Kokkos::MemoryTraits<Kokkos::Unmanaged>> + a_) + : a(a_) {} + + KOKKOS_INLINE_FUNCTION + void operator()( + typename Kokkos::TeamPolicy<ExecutionSpace>::member_type const& team, + int& lsum) const { + int i = team.league_rank(); + int team_sum; + Kokkos::parallel_reduce( + Kokkos::TeamThreadRange(team, 10), + [&](const int j, int& tsum) { tsum += a(i * 10 + j); }, team_sum); + Kokkos::single(Kokkos::PerTeam(team), [&]() { lsum += team_sum; }); + } +}; +} // namespace Test diff --git a/packages/kokkos/core/unit_test/UnitTestConfig.make b/packages/kokkos/core/unit_test/UnitTestConfig.make deleted file mode 100644 index 5c93bf69f..000000000 --- a/packages/kokkos/core/unit_test/UnitTestConfig.make +++ /dev/null @@ -1,52 +0,0 @@ -KOKKOS_PATH = ../.. - -# See $(KOKKOS_PATH)/Makefile.kokkos and $(KOKKOS_PATH)/generate_makefile.bash -KOKKOS_ARCH_OPTIONS="None AMDAVX ARMv80 ARMv81 ARMv8-ThunderX \ - BGQ Power7 Power8 Power9 \ - WSM SNB HSW BDW SKX KNC KNL \ - Kepler Kepler30 Kepler32 Kepler35 Kepler37 \ - Maxwell Maxwell50 Maxwell52 Maxwell53 Pascal60 Pascal61" -#KOKKOS_ARCH_OPTIONS="AMDAVX" - -KOKKOS_DEVICE_OPTIONS="Cuda ROCm OpenMP Pthread Serial" -#KOKKOS_DEVICE_OPTIONS="Cuda" - -# Configure paths to enable environment query in Makefile.kokkos to work -ROCM_HCC_PATH="config" -CXX="./config/cxx" -ipath=env CXX=$(CXX) env PATH=./config:$$PATH env ROCM_HCC_PATH=$(ROCM_HCC_PATH) - -# Defined in core/src/Makefile -- this should be consistent -KOKKOS_MAKEFILE=Makefile.kokkos -KOKKOS_CMAKEFILE=kokkos_generated_settings.cmake - -# Defined in Makefile.kokkos -- this should be consistent -KOKKOS_INTERNAL_CONFIG_TMP=KokkosCore_config.tmp -KOKKOS_CONFIG_HEADER=KokkosCore_config.h - -d='\#' - -# diff => 0 is no difference. if => 0 is false -testmake=if test "`testmake.sh $1 $2 $3`" = 'Passed'; then echo OK $d $1; else echo not OK $d $1; fi -testconf=if test "`diffconfig.sh $1`" = 'Passed'; then echo OK $d $1; else echo not OK $d $1; fi - -# testing tmp and cmakefile files is unnecessary here -test: - @for karch in "$(KOKKOS_ARCH_OPTIONS)"; do \ - for device in "$(KOKKOS_DEVICE_OPTIONS)"; do \ - $(ipath) KOKKOS_DEVICES=$$device KOKKOS_ARCH=$$karch make -e -f ../src/Makefile build-makefile-cmake-kokkos; \ - rm -f $(KOKKOS_INTERNAL_CONFIG_TMP) $(KOKKOS_CMAKEFILE); \ - prfx="$$karch"_"$$device"_; \ - newmake="$$prfx"$(KOKKOS_MAKEFILE); \ - newconf="$$prfx"$(KOKKOS_CONFIG_HEADER); \ - mv $(KOKKOS_MAKEFILE) config/tmpstore/$$newmake; \ - mv $(KOKKOS_CONFIG_HEADER) config/tmpstore/$$newconf; \ - $(call testmake,$$newmake,$$karch,$$device); \ - $(call testconf,$$newconf); \ - done; \ - done - -test-cmake: - @cd config/cmaketest; \ - cmake . ; \ - make test diff --git a/packages/kokkos/core/unit_test/UnitTest_CMakePassCmdLineArgs.cpp b/packages/kokkos/core/unit_test/UnitTest_CMakePassCmdLineArgs.cpp new file mode 100644 index 000000000..7525f8d2b --- /dev/null +++ b/packages/kokkos/core/unit_test/UnitTest_CMakePassCmdLineArgs.cpp @@ -0,0 +1,11 @@ +#include <string> + +struct Up {}; + +int main(int argc, char* argv[]) { + if (argc != 4 || std::string(argv[1]) != "one" || + std::string(argv[2]) != "2" || std::string(argv[3]) != "THREE") { + throw Up{}; + } + return 0; +} diff --git a/packages/kokkos/core/unit_test/config/bin/hcc-config b/packages/kokkos/core/unit_test/config/bin/hcc-config deleted file mode 100755 index fc09138bc..000000000 --- a/packages/kokkos/core/unit_test/config/bin/hcc-config +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -echo "--foo --bar" diff --git a/packages/kokkos/core/unit_test/config/clang b/packages/kokkos/core/unit_test/config/clang deleted file mode 100755 index 34c691941..000000000 --- a/packages/kokkos/core/unit_test/config/clang +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh -echo="Apple LLVM version 8.1.0 (clang-802.0.42)" -echo="Target: x86_64-apple-darwin16.7.0" -echo="Thread model: posix" -echo="InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin" diff --git a/packages/kokkos/core/unit_test/config/cmaketest/CMakeLists.txt b/packages/kokkos/core/unit_test/config/cmaketest/CMakeLists.txt deleted file mode 100644 index 5d5901739..000000000 --- a/packages/kokkos/core/unit_test/config/cmaketest/CMakeLists.txt +++ /dev/null @@ -1,79 +0,0 @@ -cmake_minimum_required(VERSION 3.1 FATAL_ERROR) -project(Kokkos CXX) - -enable_testing() - -# Initialization -get_filename_component(KOKKOS_TESTDIR ${CMAKE_SOURCE_DIR}/../.. REALPATH) -get_filename_component(KOKKOS_SRCDIR ${CMAKE_SOURCE_DIR}/../../../.. REALPATH) -set(KOKKOS_SRC_PATH ${KOKKOS_SRCDIR}) -set(KOKKOS_PATH ${KOKKOS_SRC_PATH}) - -set(CXX ${KOKKOS_TESTDIR}/config/cxx) - -# Defined in core/src/Makefile -- this should be consistent -set(KOKKOS_MAKEFILE Makefile.kokkos) -set(KOKKOS_CMAKEFILE kokkos_generated_settings.cmake) - -# Defined in Makefile.kokkos -- this should be consistent -set(KOKKOS_INTERNAL_CONFIG_TMP KokkosCore_config.tmp) -set(KOKKOS_CONFIG_HEADER KokkosCore_config.h) - -include(${KOKKOS_SRCDIR}/cmake/kokkos_options.cmake) -foreach(KOKKOS_DEV ${KOKKOS_DEVICES_LIST}) -# Do some initialization: Want to turn everything off for testing - string(TOUPPER ${KOKKOS_DEV} KOKKOS_DEVUC) - set(KOKKOS_ENABLE_${KOKKOS_DEVUC} OFF) -endforeach() - - -#TEST set(KOKKOS_HOST_ARCH_LIST ARMv80) -#TEST set(KOKKOS_DEVICES_LIST Cuda) -#set(KOKKOS_HOST_ARCH_LIST AMDAVX) -#set(KOKKOS_DEVICES_LIST Cuda) - -foreach(KOKKOS_HOST_ARCH ${KOKKOS_HOST_ARCH_LIST}) - foreach(KOKKOS_DEV ${KOKKOS_DEVICES_LIST}) - string(TOUPPER ${KOKKOS_DEV} KOKKOS_DEVUC) - set(KOKKOS_ENABLE_${KOKKOS_DEVUC} On) - - set(KOKKOS_CMAKE_VERBOSE True) - include(${KOKKOS_SRCDIR}/cmake/kokkos_options.cmake) - set(KOKKOS_SETTINGS ${KOKKOS_SETTINGS} ROCM_HCC_PATH=${KOKKOS_TESTDIR}/config) - - #message(STATUS "${KOKKOS_SETTINGS} make -f ${KOKKOS_SRCDIR}/core/src/Makefile build-makefile-cmake-kokkos") - execute_process( - COMMAND ${KOKKOS_SETTINGS} make -f ${KOKKOS_SRCDIR}/core/src/Makefile build-makefile-cmake-kokkos - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" - OUTPUT_FILE ${CMAKE_BINARY_DIR}/core_src_make.out - RESULT_VARIABLE res - ) - #message(STATUS "RESULT ${res}") - - file(REMOVE ${KOKKOS_INTERNAL_CONFIG_TMP} ${KOKKOS_MAKEFILE}) - set(PREFIX "${KOKKOS_HOST_ARCH}_${KOKKOS_DEV}_") - set(NEWCMAKE ${PREFIX}${KOKKOS_CMAKEFILE}) - set(NEWCONFH ${PREFIX}${KOKKOS_CONFIG_HEADER}) - file(RENAME ${KOKKOS_CMAKEFILE} ${NEWCMAKE}) - file(RENAME ${KOKKOS_CONFIG_HEADER} ${NEWCONFH}) - - add_test(NAME ${NEWCMAKE}-test - COMMAND ${KOKKOS_TESTDIR}/testmake.sh ${NEWCMAKE} ${KOKKOS_HOST_ARCH} ${KOKKOS_DEV} - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - ) - set_tests_properties(${NEWCMAKE}-test - PROPERTIES PASS_REGULAR_EXPRESSION Passed - TIMEOUT 15 - ) - add_test(NAME ${NEWCONFH}-test - COMMAND ${KOKKOS_TESTDIR}/diffconfig.sh ${NEWCONFH} - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - ) - set_tests_properties(${NEWCONFH}-test - PROPERTIES PASS_REGULAR_EXPRESSION Passed - TIMEOUT 15 - ) - set(KOKKOS_ENABLE_${KOKKOS_DEVUC} Off) - - endforeach() -endforeach() diff --git a/packages/kokkos/core/unit_test/config/cxx b/packages/kokkos/core/unit_test/config/cxx deleted file mode 100755 index f25d7714a..000000000 --- a/packages/kokkos/core/unit_test/config/cxx +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh -echo "g++ (GCC) 6.3.1 20161221 (Red Hat 6.3.1-1)" -echo "Copyright (C) 2016 Free Software Foundation, Inc." -echo "This is free software; see the source for copying conditions. There is NO" -echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." diff --git a/packages/kokkos/core/unit_test/config/mpic++ b/packages/kokkos/core/unit_test/config/mpic++ deleted file mode 100755 index f25d7714a..000000000 --- a/packages/kokkos/core/unit_test/config/mpic++ +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh -echo "g++ (GCC) 6.3.1 20161221 (Red Hat 6.3.1-1)" -echo "Copyright (C) 2016 Free Software Foundation, Inc." -echo "This is free software; see the source for copying conditions. There is NO" -echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." diff --git a/packages/kokkos/core/unit_test/config/nvcc b/packages/kokkos/core/unit_test/config/nvcc deleted file mode 100755 index b5bcbf234..000000000 --- a/packages/kokkos/core/unit_test/config/nvcc +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh -echo "nvcc: NVIDIA (R) Cuda compiler driver" -echo "Copyright (c) 2005-2016 NVIDIA Corporation" -echo "Built on Tue_Jan_10_13:22:03_CST_2017" -echo "Cuda compilation tools, release 8.0, V8.0.61" diff --git a/packages/kokkos/core/unit_test/config/results/AMDAVX_Cuda_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/AMDAVX_Cuda_KokkosCore_config.h deleted file mode 100644 index 1a737a3b2..000000000 --- a/packages/kokkos/core/unit_test/config/results/AMDAVX_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,18 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:09 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX 1 diff --git a/packages/kokkos/core/unit_test/config/results/AMDAVX_OpenMP_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/AMDAVX_OpenMP_KokkosCore_config.h deleted file mode 100644 index 7a704e418..000000000 --- a/packages/kokkos/core/unit_test/config/results/AMDAVX_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:10 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX 1 diff --git a/packages/kokkos/core/unit_test/config/results/AMDAVX_Pthread_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/AMDAVX_Pthread_KokkosCore_config.h deleted file mode 100644 index c478a5c25..000000000 --- a/packages/kokkos/core/unit_test/config/results/AMDAVX_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:10 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX 1 diff --git a/packages/kokkos/core/unit_test/config/results/AMDAVX_ROCm_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/AMDAVX_ROCm_KokkosCore_config.h deleted file mode 100644 index 7b7e2b815..000000000 --- a/packages/kokkos/core/unit_test/config/results/AMDAVX_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,18 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:09 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX 1 diff --git a/packages/kokkos/core/unit_test/config/results/AMDAVX_Serial_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/AMDAVX_Serial_KokkosCore_config.h deleted file mode 100644 index 9930bacc4..000000000 --- a/packages/kokkos/core/unit_test/config/results/AMDAVX_Serial_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:11 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX 1 diff --git a/packages/kokkos/core/unit_test/config/results/ARMv8-ThunderX_Cuda_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/ARMv8-ThunderX_Cuda_KokkosCore_config.h deleted file mode 100644 index 7f172c00e..000000000 --- a/packages/kokkos/core/unit_test/config/results/ARMv8-ThunderX_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:17 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_ARMV80 1 -#define KOKKOS_ARCH_ARMV8_THUNDERX 1 diff --git a/packages/kokkos/core/unit_test/config/results/ARMv8-ThunderX_OpenMP_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/ARMv8-ThunderX_OpenMP_KokkosCore_config.h deleted file mode 100644 index d25b832ca..000000000 --- a/packages/kokkos/core/unit_test/config/results/ARMv8-ThunderX_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,18 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:18 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_ARMV80 1 -#define KOKKOS_ARCH_ARMV8_THUNDERX 1 diff --git a/packages/kokkos/core/unit_test/config/results/ARMv8-ThunderX_Pthread_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/ARMv8-ThunderX_Pthread_KokkosCore_config.h deleted file mode 100644 index cd3a60309..000000000 --- a/packages/kokkos/core/unit_test/config/results/ARMv8-ThunderX_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,18 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:19 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_ARMV80 1 -#define KOKKOS_ARCH_ARMV8_THUNDERX 1 diff --git a/packages/kokkos/core/unit_test/config/results/ARMv8-ThunderX_ROCm_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/ARMv8-ThunderX_ROCm_KokkosCore_config.h deleted file mode 100644 index 86b9f8458..000000000 --- a/packages/kokkos/core/unit_test/config/results/ARMv8-ThunderX_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:18 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_ARMV80 1 -#define KOKKOS_ARCH_ARMV8_THUNDERX 1 diff --git a/packages/kokkos/core/unit_test/config/results/ARMv8-ThunderX_Serial_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/ARMv8-ThunderX_Serial_KokkosCore_config.h deleted file mode 100644 index 75ada8c01..000000000 --- a/packages/kokkos/core/unit_test/config/results/ARMv8-ThunderX_Serial_KokkosCore_config.h +++ /dev/null @@ -1,18 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:19 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_ARMV80 1 -#define KOKKOS_ARCH_ARMV8_THUNDERX 1 diff --git a/packages/kokkos/core/unit_test/config/results/ARMv80_Cuda_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/ARMv80_Cuda_KokkosCore_config.h deleted file mode 100644 index 796c0aab6..000000000 --- a/packages/kokkos/core/unit_test/config/results/ARMv80_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,18 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:12 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_ARMV80 1 diff --git a/packages/kokkos/core/unit_test/config/results/ARMv80_OpenMP_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/ARMv80_OpenMP_KokkosCore_config.h deleted file mode 100644 index dcf7ff7ea..000000000 --- a/packages/kokkos/core/unit_test/config/results/ARMv80_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:13 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_ARMV80 1 diff --git a/packages/kokkos/core/unit_test/config/results/ARMv80_Pthread_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/ARMv80_Pthread_KokkosCore_config.h deleted file mode 100644 index 298966b6d..000000000 --- a/packages/kokkos/core/unit_test/config/results/ARMv80_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:14 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_ARMV80 1 diff --git a/packages/kokkos/core/unit_test/config/results/ARMv80_ROCm_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/ARMv80_ROCm_KokkosCore_config.h deleted file mode 100644 index c2b4f146c..000000000 --- a/packages/kokkos/core/unit_test/config/results/ARMv80_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,18 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:12 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_ARMV80 1 diff --git a/packages/kokkos/core/unit_test/config/results/ARMv80_Serial_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/ARMv80_Serial_KokkosCore_config.h deleted file mode 100644 index fe5fe6644..000000000 --- a/packages/kokkos/core/unit_test/config/results/ARMv80_Serial_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:14 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_ARMV80 1 diff --git a/packages/kokkos/core/unit_test/config/results/ARMv81_Cuda_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/ARMv81_Cuda_KokkosCore_config.h deleted file mode 100644 index 3d0214243..000000000 --- a/packages/kokkos/core/unit_test/config/results/ARMv81_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,18 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:15 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_ARMV81 1 diff --git a/packages/kokkos/core/unit_test/config/results/ARMv81_OpenMP_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/ARMv81_OpenMP_KokkosCore_config.h deleted file mode 100644 index aa194c77b..000000000 --- a/packages/kokkos/core/unit_test/config/results/ARMv81_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:16 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_ARMV81 1 diff --git a/packages/kokkos/core/unit_test/config/results/ARMv81_Pthread_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/ARMv81_Pthread_KokkosCore_config.h deleted file mode 100644 index 6d2dbeeef..000000000 --- a/packages/kokkos/core/unit_test/config/results/ARMv81_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:16 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_ARMV81 1 diff --git a/packages/kokkos/core/unit_test/config/results/ARMv81_ROCm_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/ARMv81_ROCm_KokkosCore_config.h deleted file mode 100644 index 28a56596b..000000000 --- a/packages/kokkos/core/unit_test/config/results/ARMv81_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,18 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:15 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_ARMV81 1 diff --git a/packages/kokkos/core/unit_test/config/results/ARMv81_Serial_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/ARMv81_Serial_KokkosCore_config.h deleted file mode 100644 index 1d29fd139..000000000 --- a/packages/kokkos/core/unit_test/config/results/ARMv81_Serial_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:16 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_ARMV81 1 diff --git a/packages/kokkos/core/unit_test/config/results/BDW_Cuda_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/BDW_Cuda_KokkosCore_config.h deleted file mode 100644 index ce2582b23..000000000 --- a/packages/kokkos/core/unit_test/config/results/BDW_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,24 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:37 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_ENABLE_TM -#endif -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX2 1 diff --git a/packages/kokkos/core/unit_test/config/results/BDW_OpenMP_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/BDW_OpenMP_KokkosCore_config.h deleted file mode 100644 index 118d1b225..000000000 --- a/packages/kokkos/core/unit_test/config/results/BDW_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:38 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_ENABLE_TM -#endif -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX2 1 diff --git a/packages/kokkos/core/unit_test/config/results/BDW_Pthread_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/BDW_Pthread_KokkosCore_config.h deleted file mode 100644 index 6d0215baf..000000000 --- a/packages/kokkos/core/unit_test/config/results/BDW_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:38 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_ENABLE_TM -#endif -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX2 1 diff --git a/packages/kokkos/core/unit_test/config/results/BDW_ROCm_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/BDW_ROCm_KokkosCore_config.h deleted file mode 100644 index 3f86d055a..000000000 --- a/packages/kokkos/core/unit_test/config/results/BDW_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,24 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:37 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_ENABLE_TM -#endif -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX2 1 diff --git a/packages/kokkos/core/unit_test/config/results/BDW_Serial_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/BDW_Serial_KokkosCore_config.h deleted file mode 100644 index fba671ab1..000000000 --- a/packages/kokkos/core/unit_test/config/results/BDW_Serial_KokkosCore_config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:39 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_ENABLE_TM -#endif -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX2 1 diff --git a/packages/kokkos/core/unit_test/config/results/BGQ_Cuda_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/BGQ_Cuda_KokkosCore_config.h deleted file mode 100644 index 93c74d41e..000000000 --- a/packages/kokkos/core/unit_test/config/results/BGQ_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:19:43 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/BGQ_OpenMP_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/BGQ_OpenMP_KokkosCore_config.h deleted file mode 100644 index 533da1602..000000000 --- a/packages/kokkos/core/unit_test/config/results/BGQ_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:19:43 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/BGQ_Pthread_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/BGQ_Pthread_KokkosCore_config.h deleted file mode 100644 index 9524c94f2..000000000 --- a/packages/kokkos/core/unit_test/config/results/BGQ_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:19:44 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/BGQ_ROCm_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/BGQ_ROCm_KokkosCore_config.h deleted file mode 100644 index f5bc1f54a..000000000 --- a/packages/kokkos/core/unit_test/config/results/BGQ_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:19:44 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/BGQ_Serial_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/BGQ_Serial_KokkosCore_config.h deleted file mode 100644 index 8372c0069..000000000 --- a/packages/kokkos/core/unit_test/config/results/BGQ_Serial_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:19:44 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/HSW_Cuda_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/HSW_Cuda_KokkosCore_config.h deleted file mode 100644 index 7bbe9fa84..000000000 --- a/packages/kokkos/core/unit_test/config/results/HSW_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:34 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX2 1 diff --git a/packages/kokkos/core/unit_test/config/results/HSW_OpenMP_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/HSW_OpenMP_KokkosCore_config.h deleted file mode 100644 index 17f75872f..000000000 --- a/packages/kokkos/core/unit_test/config/results/HSW_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:35 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX2 1 diff --git a/packages/kokkos/core/unit_test/config/results/HSW_Pthread_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/HSW_Pthread_KokkosCore_config.h deleted file mode 100644 index 5df1be17a..000000000 --- a/packages/kokkos/core/unit_test/config/results/HSW_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:35 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX2 1 diff --git a/packages/kokkos/core/unit_test/config/results/HSW_ROCm_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/HSW_ROCm_KokkosCore_config.h deleted file mode 100644 index 8e04801b8..000000000 --- a/packages/kokkos/core/unit_test/config/results/HSW_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:35 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX2 1 diff --git a/packages/kokkos/core/unit_test/config/results/HSW_Serial_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/HSW_Serial_KokkosCore_config.h deleted file mode 100644 index 99f76aff0..000000000 --- a/packages/kokkos/core/unit_test/config/results/HSW_Serial_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:36 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX2 1 diff --git a/packages/kokkos/core/unit_test/config/results/KNC_Cuda_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/KNC_Cuda_KokkosCore_config.h deleted file mode 100644 index bdc270fd0..000000000 --- a/packages/kokkos/core/unit_test/config/results/KNC_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:42 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_KNC -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_KNC 1 diff --git a/packages/kokkos/core/unit_test/config/results/KNC_OpenMP_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/KNC_OpenMP_KokkosCore_config.h deleted file mode 100644 index f9b79f552..000000000 --- a/packages/kokkos/core/unit_test/config/results/KNC_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:43 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_KNC -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_KNC 1 diff --git a/packages/kokkos/core/unit_test/config/results/KNC_Pthread_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/KNC_Pthread_KokkosCore_config.h deleted file mode 100644 index 15d9d01a0..000000000 --- a/packages/kokkos/core/unit_test/config/results/KNC_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:44 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_KNC -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_KNC 1 diff --git a/packages/kokkos/core/unit_test/config/results/KNC_ROCm_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/KNC_ROCm_KokkosCore_config.h deleted file mode 100644 index 5991d3065..000000000 --- a/packages/kokkos/core/unit_test/config/results/KNC_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:43 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_KNC -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_KNC 1 diff --git a/packages/kokkos/core/unit_test/config/results/KNC_Serial_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/KNC_Serial_KokkosCore_config.h deleted file mode 100644 index 3a8ddecf1..000000000 --- a/packages/kokkos/core/unit_test/config/results/KNC_Serial_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:44 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_KNC -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_KNC 1 diff --git a/packages/kokkos/core/unit_test/config/results/KNL_Cuda_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/KNL_Cuda_KokkosCore_config.h deleted file mode 100644 index bd7e2ca33..000000000 --- a/packages/kokkos/core/unit_test/config/results/KNL_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:45 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX512MIC 1 diff --git a/packages/kokkos/core/unit_test/config/results/KNL_OpenMP_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/KNL_OpenMP_KokkosCore_config.h deleted file mode 100644 index 0f567f241..000000000 --- a/packages/kokkos/core/unit_test/config/results/KNL_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:46 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX512MIC 1 diff --git a/packages/kokkos/core/unit_test/config/results/KNL_Pthread_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/KNL_Pthread_KokkosCore_config.h deleted file mode 100644 index 1cf3f0997..000000000 --- a/packages/kokkos/core/unit_test/config/results/KNL_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:47 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX512MIC 1 diff --git a/packages/kokkos/core/unit_test/config/results/KNL_ROCm_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/KNL_ROCm_KokkosCore_config.h deleted file mode 100644 index ae2938e34..000000000 --- a/packages/kokkos/core/unit_test/config/results/KNL_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:46 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX512MIC 1 diff --git a/packages/kokkos/core/unit_test/config/results/KNL_Serial_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/KNL_Serial_KokkosCore_config.h deleted file mode 100644 index 21f6e7e43..000000000 --- a/packages/kokkos/core/unit_test/config/results/KNL_Serial_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:47 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX512MIC 1 diff --git a/packages/kokkos/core/unit_test/config/results/Kepler30_Cuda_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Kepler30_Cuda_KokkosCore_config.h deleted file mode 100644 index 78e9335e2..000000000 --- a/packages/kokkos/core/unit_test/config/results/Kepler30_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:48 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_KEPLER 1 -#define KOKKOS_ARCH_KEPLER30 1 diff --git a/packages/kokkos/core/unit_test/config/results/Kepler30_OpenMP_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Kepler30_OpenMP_KokkosCore_config.h deleted file mode 100644 index 769d9c878..000000000 --- a/packages/kokkos/core/unit_test/config/results/Kepler30_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:49 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Kepler30_Pthread_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Kepler30_Pthread_KokkosCore_config.h deleted file mode 100644 index 2cc728a5e..000000000 --- a/packages/kokkos/core/unit_test/config/results/Kepler30_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:49 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Kepler30_ROCm_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Kepler30_ROCm_KokkosCore_config.h deleted file mode 100644 index 34867aa91..000000000 --- a/packages/kokkos/core/unit_test/config/results/Kepler30_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:48 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Kepler30_Serial_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Kepler30_Serial_KokkosCore_config.h deleted file mode 100644 index 54943b244..000000000 --- a/packages/kokkos/core/unit_test/config/results/Kepler30_Serial_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:50 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Kepler32_Cuda_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Kepler32_Cuda_KokkosCore_config.h deleted file mode 100644 index c7e23d503..000000000 --- a/packages/kokkos/core/unit_test/config/results/Kepler32_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:50 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_KEPLER 1 -#define KOKKOS_ARCH_KEPLER32 1 diff --git a/packages/kokkos/core/unit_test/config/results/Kepler32_OpenMP_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Kepler32_OpenMP_KokkosCore_config.h deleted file mode 100644 index fcfbf97ef..000000000 --- a/packages/kokkos/core/unit_test/config/results/Kepler32_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:51 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Kepler32_Pthread_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Kepler32_Pthread_KokkosCore_config.h deleted file mode 100644 index 5cea100aa..000000000 --- a/packages/kokkos/core/unit_test/config/results/Kepler32_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:52 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Kepler32_ROCm_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Kepler32_ROCm_KokkosCore_config.h deleted file mode 100644 index 0ae47b697..000000000 --- a/packages/kokkos/core/unit_test/config/results/Kepler32_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:51 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Kepler32_Serial_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Kepler32_Serial_KokkosCore_config.h deleted file mode 100644 index 0d20b1dc8..000000000 --- a/packages/kokkos/core/unit_test/config/results/Kepler32_Serial_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:52 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Kepler35_Cuda_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Kepler35_Cuda_KokkosCore_config.h deleted file mode 100644 index f7935927c..000000000 --- a/packages/kokkos/core/unit_test/config/results/Kepler35_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:53 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_KEPLER 1 -#define KOKKOS_ARCH_KEPLER35 1 diff --git a/packages/kokkos/core/unit_test/config/results/Kepler35_OpenMP_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Kepler35_OpenMP_KokkosCore_config.h deleted file mode 100644 index 02777df40..000000000 --- a/packages/kokkos/core/unit_test/config/results/Kepler35_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:54 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Kepler35_Pthread_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Kepler35_Pthread_KokkosCore_config.h deleted file mode 100644 index f51f00ce9..000000000 --- a/packages/kokkos/core/unit_test/config/results/Kepler35_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:55 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Kepler35_ROCm_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Kepler35_ROCm_KokkosCore_config.h deleted file mode 100644 index 111bb0934..000000000 --- a/packages/kokkos/core/unit_test/config/results/Kepler35_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:54 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Kepler35_Serial_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Kepler35_Serial_KokkosCore_config.h deleted file mode 100644 index da61dabb5..000000000 --- a/packages/kokkos/core/unit_test/config/results/Kepler35_Serial_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:55 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Kepler37_Cuda_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Kepler37_Cuda_KokkosCore_config.h deleted file mode 100644 index c70ce2e04..000000000 --- a/packages/kokkos/core/unit_test/config/results/Kepler37_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:56 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_KEPLER 1 -#define KOKKOS_ARCH_KEPLER37 1 diff --git a/packages/kokkos/core/unit_test/config/results/Kepler37_OpenMP_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Kepler37_OpenMP_KokkosCore_config.h deleted file mode 100644 index d8c6c7483..000000000 --- a/packages/kokkos/core/unit_test/config/results/Kepler37_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:57 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Kepler37_Pthread_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Kepler37_Pthread_KokkosCore_config.h deleted file mode 100644 index b832ef36e..000000000 --- a/packages/kokkos/core/unit_test/config/results/Kepler37_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:58 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Kepler37_ROCm_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Kepler37_ROCm_KokkosCore_config.h deleted file mode 100644 index 6a661f884..000000000 --- a/packages/kokkos/core/unit_test/config/results/Kepler37_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:57 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Kepler37_Serial_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Kepler37_Serial_KokkosCore_config.h deleted file mode 100644 index 469f3d96a..000000000 --- a/packages/kokkos/core/unit_test/config/results/Kepler37_Serial_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:58 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Kepler_Cuda_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Kepler_Cuda_KokkosCore_config.h deleted file mode 100644 index 1ccf1bef5..000000000 --- a/packages/kokkos/core/unit_test/config/results/Kepler_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:19:50 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_KEPLER 1 -#define KOKKOS_ARCH_KEPLER35 1 diff --git a/packages/kokkos/core/unit_test/config/results/Kepler_OpenMP_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Kepler_OpenMP_KokkosCore_config.h deleted file mode 100644 index 9d87c958a..000000000 --- a/packages/kokkos/core/unit_test/config/results/Kepler_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:19:51 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Kepler_Pthread_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Kepler_Pthread_KokkosCore_config.h deleted file mode 100644 index 263870be9..000000000 --- a/packages/kokkos/core/unit_test/config/results/Kepler_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:19:51 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Kepler_ROCm_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Kepler_ROCm_KokkosCore_config.h deleted file mode 100644 index 2826fdfb8..000000000 --- a/packages/kokkos/core/unit_test/config/results/Kepler_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:19:52 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Kepler_Serial_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Kepler_Serial_KokkosCore_config.h deleted file mode 100644 index 69097e034..000000000 --- a/packages/kokkos/core/unit_test/config/results/Kepler_Serial_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:19:52 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Maxwell50_Cuda_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Maxwell50_Cuda_KokkosCore_config.h deleted file mode 100644 index fac64e9e9..000000000 --- a/packages/kokkos/core/unit_test/config/results/Maxwell50_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:59 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_MAXWELL 1 -#define KOKKOS_ARCH_MAXWELL50 1 diff --git a/packages/kokkos/core/unit_test/config/results/Maxwell50_OpenMP_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Maxwell50_OpenMP_KokkosCore_config.h deleted file mode 100644 index 3f5b3eea1..000000000 --- a/packages/kokkos/core/unit_test/config/results/Maxwell50_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:00 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Maxwell50_Pthread_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Maxwell50_Pthread_KokkosCore_config.h deleted file mode 100644 index b249c88be..000000000 --- a/packages/kokkos/core/unit_test/config/results/Maxwell50_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:01 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Maxwell50_ROCm_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Maxwell50_ROCm_KokkosCore_config.h deleted file mode 100644 index ce9f67d5b..000000000 --- a/packages/kokkos/core/unit_test/config/results/Maxwell50_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:00 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Maxwell50_Serial_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Maxwell50_Serial_KokkosCore_config.h deleted file mode 100644 index f8c6be139..000000000 --- a/packages/kokkos/core/unit_test/config/results/Maxwell50_Serial_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:02 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Maxwell52_Cuda_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Maxwell52_Cuda_KokkosCore_config.h deleted file mode 100644 index ce28f3e4b..000000000 --- a/packages/kokkos/core/unit_test/config/results/Maxwell52_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:03 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_MAXWELL 1 -#define KOKKOS_ARCH_MAXWELL52 1 diff --git a/packages/kokkos/core/unit_test/config/results/Maxwell52_OpenMP_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Maxwell52_OpenMP_KokkosCore_config.h deleted file mode 100644 index 35635063a..000000000 --- a/packages/kokkos/core/unit_test/config/results/Maxwell52_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:04 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Maxwell52_Pthread_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Maxwell52_Pthread_KokkosCore_config.h deleted file mode 100644 index 140740f81..000000000 --- a/packages/kokkos/core/unit_test/config/results/Maxwell52_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:04 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Maxwell52_ROCm_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Maxwell52_ROCm_KokkosCore_config.h deleted file mode 100644 index 06ff6935c..000000000 --- a/packages/kokkos/core/unit_test/config/results/Maxwell52_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:03 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Maxwell52_Serial_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Maxwell52_Serial_KokkosCore_config.h deleted file mode 100644 index eac120d06..000000000 --- a/packages/kokkos/core/unit_test/config/results/Maxwell52_Serial_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:05 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Maxwell53_Cuda_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Maxwell53_Cuda_KokkosCore_config.h deleted file mode 100644 index ad8344a09..000000000 --- a/packages/kokkos/core/unit_test/config/results/Maxwell53_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:06 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_MAXWELL 1 -#define KOKKOS_ARCH_MAXWELL53 1 diff --git a/packages/kokkos/core/unit_test/config/results/Maxwell53_OpenMP_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Maxwell53_OpenMP_KokkosCore_config.h deleted file mode 100644 index ab1e80126..000000000 --- a/packages/kokkos/core/unit_test/config/results/Maxwell53_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:06 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Maxwell53_Pthread_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Maxwell53_Pthread_KokkosCore_config.h deleted file mode 100644 index 0b1e3bf31..000000000 --- a/packages/kokkos/core/unit_test/config/results/Maxwell53_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:07 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Maxwell53_ROCm_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Maxwell53_ROCm_KokkosCore_config.h deleted file mode 100644 index 82414cf35..000000000 --- a/packages/kokkos/core/unit_test/config/results/Maxwell53_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:06 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Maxwell53_Serial_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Maxwell53_Serial_KokkosCore_config.h deleted file mode 100644 index b10b80b3b..000000000 --- a/packages/kokkos/core/unit_test/config/results/Maxwell53_Serial_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:07 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Maxwell_Cuda_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Maxwell_Cuda_KokkosCore_config.h deleted file mode 100644 index d81a71500..000000000 --- a/packages/kokkos/core/unit_test/config/results/Maxwell_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:20:00 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_MAXWELL 1 -#define KOKKOS_ARCH_MAXWELL50 1 diff --git a/packages/kokkos/core/unit_test/config/results/Maxwell_OpenMP_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Maxwell_OpenMP_KokkosCore_config.h deleted file mode 100644 index 98e93c7b2..000000000 --- a/packages/kokkos/core/unit_test/config/results/Maxwell_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:20:00 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Maxwell_Pthread_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Maxwell_Pthread_KokkosCore_config.h deleted file mode 100644 index 47a7ccb7a..000000000 --- a/packages/kokkos/core/unit_test/config/results/Maxwell_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:20:00 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Maxwell_ROCm_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Maxwell_ROCm_KokkosCore_config.h deleted file mode 100644 index c438f4f7d..000000000 --- a/packages/kokkos/core/unit_test/config/results/Maxwell_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:20:01 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Maxwell_Serial_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Maxwell_Serial_KokkosCore_config.h deleted file mode 100644 index d66c56908..000000000 --- a/packages/kokkos/core/unit_test/config/results/Maxwell_Serial_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:20:01 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/None_Cuda_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/None_Cuda_KokkosCore_config.h deleted file mode 100644 index 6bf2755fd..000000000 --- a/packages/kokkos/core/unit_test/config/results/None_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:19:22 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/None_OpenMP_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/None_OpenMP_KokkosCore_config.h deleted file mode 100644 index 4dd2eed18..000000000 --- a/packages/kokkos/core/unit_test/config/results/None_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:19:23 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/None_Pthread_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/None_Pthread_KokkosCore_config.h deleted file mode 100644 index 1bdd29b6a..000000000 --- a/packages/kokkos/core/unit_test/config/results/None_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:19:23 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/None_ROCm_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/None_ROCm_KokkosCore_config.h deleted file mode 100644 index 74b0d7335..000000000 --- a/packages/kokkos/core/unit_test/config/results/None_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:19:24 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/None_Serial_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/None_Serial_KokkosCore_config.h deleted file mode 100644 index a9d0b264b..000000000 --- a/packages/kokkos/core/unit_test/config/results/None_Serial_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:19:23 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Pascal60_Cuda_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Pascal60_Cuda_KokkosCore_config.h deleted file mode 100644 index 8fe1aa698..000000000 --- a/packages/kokkos/core/unit_test/config/results/Pascal60_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:08 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_PASCAL 1 -#define KOKKOS_ARCH_PASCAL60 1 diff --git a/packages/kokkos/core/unit_test/config/results/Pascal60_OpenMP_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Pascal60_OpenMP_KokkosCore_config.h deleted file mode 100644 index 93173f4e1..000000000 --- a/packages/kokkos/core/unit_test/config/results/Pascal60_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:09 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Pascal60_Pthread_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Pascal60_Pthread_KokkosCore_config.h deleted file mode 100644 index a05d5729e..000000000 --- a/packages/kokkos/core/unit_test/config/results/Pascal60_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:09 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Pascal60_ROCm_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Pascal60_ROCm_KokkosCore_config.h deleted file mode 100644 index 9c04befef..000000000 --- a/packages/kokkos/core/unit_test/config/results/Pascal60_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:09 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Pascal60_Serial_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Pascal60_Serial_KokkosCore_config.h deleted file mode 100644 index c6038c296..000000000 --- a/packages/kokkos/core/unit_test/config/results/Pascal60_Serial_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:10 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Pascal61_Cuda_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Pascal61_Cuda_KokkosCore_config.h deleted file mode 100644 index 0de37df96..000000000 --- a/packages/kokkos/core/unit_test/config/results/Pascal61_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:11 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_PASCAL 1 -#define KOKKOS_ARCH_PASCAL61 1 diff --git a/packages/kokkos/core/unit_test/config/results/Pascal61_OpenMP_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Pascal61_OpenMP_KokkosCore_config.h deleted file mode 100644 index 2c392cc0d..000000000 --- a/packages/kokkos/core/unit_test/config/results/Pascal61_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:12 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Pascal61_Pthread_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Pascal61_Pthread_KokkosCore_config.h deleted file mode 100644 index f704aa9c8..000000000 --- a/packages/kokkos/core/unit_test/config/results/Pascal61_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:12 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Pascal61_ROCm_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Pascal61_ROCm_KokkosCore_config.h deleted file mode 100644 index 4a4d8cc68..000000000 --- a/packages/kokkos/core/unit_test/config/results/Pascal61_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:11 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Pascal61_Serial_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Pascal61_Serial_KokkosCore_config.h deleted file mode 100644 index 6fb2cf9e9..000000000 --- a/packages/kokkos/core/unit_test/config/results/Pascal61_Serial_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:12 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/packages/kokkos/core/unit_test/config/results/Power7_Cuda_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Power7_Cuda_KokkosCore_config.h deleted file mode 100644 index a78e1ffc8..000000000 --- a/packages/kokkos/core/unit_test/config/results/Power7_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:20 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_POWERPCBE -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_POWER7 1 diff --git a/packages/kokkos/core/unit_test/config/results/Power7_OpenMP_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Power7_OpenMP_KokkosCore_config.h deleted file mode 100644 index bd856b80a..000000000 --- a/packages/kokkos/core/unit_test/config/results/Power7_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:21 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_POWERPCBE -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_POWER7 1 diff --git a/packages/kokkos/core/unit_test/config/results/Power7_Pthread_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Power7_Pthread_KokkosCore_config.h deleted file mode 100644 index 8b3ac2aff..000000000 --- a/packages/kokkos/core/unit_test/config/results/Power7_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:21 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_POWERPCBE -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_POWER7 1 diff --git a/packages/kokkos/core/unit_test/config/results/Power7_ROCm_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Power7_ROCm_KokkosCore_config.h deleted file mode 100644 index e16cfb37b..000000000 --- a/packages/kokkos/core/unit_test/config/results/Power7_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:20 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_POWERPCBE -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_POWER7 1 diff --git a/packages/kokkos/core/unit_test/config/results/Power7_Serial_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Power7_Serial_KokkosCore_config.h deleted file mode 100644 index 6831f3ce2..000000000 --- a/packages/kokkos/core/unit_test/config/results/Power7_Serial_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:22 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_POWERPCBE -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_POWER7 1 diff --git a/packages/kokkos/core/unit_test/config/results/Power8_Cuda_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Power8_Cuda_KokkosCore_config.h deleted file mode 100644 index 1ab0b04c6..000000000 --- a/packages/kokkos/core/unit_test/config/results/Power8_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:23 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_POWERPCLE -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_POWER8 1 diff --git a/packages/kokkos/core/unit_test/config/results/Power8_OpenMP_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Power8_OpenMP_KokkosCore_config.h deleted file mode 100644 index 54750405c..000000000 --- a/packages/kokkos/core/unit_test/config/results/Power8_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:24 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_POWERPCLE -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_POWER8 1 diff --git a/packages/kokkos/core/unit_test/config/results/Power8_Pthread_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Power8_Pthread_KokkosCore_config.h deleted file mode 100644 index 5d71338d2..000000000 --- a/packages/kokkos/core/unit_test/config/results/Power8_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:24 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_POWERPCLE -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_POWER8 1 diff --git a/packages/kokkos/core/unit_test/config/results/Power8_ROCm_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Power8_ROCm_KokkosCore_config.h deleted file mode 100644 index f3fd70b0c..000000000 --- a/packages/kokkos/core/unit_test/config/results/Power8_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:24 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_POWERPCLE -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_POWER8 1 diff --git a/packages/kokkos/core/unit_test/config/results/Power8_Serial_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Power8_Serial_KokkosCore_config.h deleted file mode 100644 index 7c0ecc22d..000000000 --- a/packages/kokkos/core/unit_test/config/results/Power8_Serial_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:25 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_POWERPCLE -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_POWER8 1 diff --git a/packages/kokkos/core/unit_test/config/results/Power9_Cuda_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Power9_Cuda_KokkosCore_config.h deleted file mode 100644 index 47d518f40..000000000 --- a/packages/kokkos/core/unit_test/config/results/Power9_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:26 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_POWERPCLE -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_POWER9 1 diff --git a/packages/kokkos/core/unit_test/config/results/Power9_OpenMP_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Power9_OpenMP_KokkosCore_config.h deleted file mode 100644 index 106bf33e4..000000000 --- a/packages/kokkos/core/unit_test/config/results/Power9_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:27 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_POWERPCLE -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_POWER9 1 diff --git a/packages/kokkos/core/unit_test/config/results/Power9_Pthread_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Power9_Pthread_KokkosCore_config.h deleted file mode 100644 index 108e5eba4..000000000 --- a/packages/kokkos/core/unit_test/config/results/Power9_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:27 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_POWERPCLE -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_POWER9 1 diff --git a/packages/kokkos/core/unit_test/config/results/Power9_ROCm_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Power9_ROCm_KokkosCore_config.h deleted file mode 100644 index 8b6a391d9..000000000 --- a/packages/kokkos/core/unit_test/config/results/Power9_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:26 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_POWERPCLE -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_POWER9 1 diff --git a/packages/kokkos/core/unit_test/config/results/Power9_Serial_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/Power9_Serial_KokkosCore_config.h deleted file mode 100644 index 6f7aefe62..000000000 --- a/packages/kokkos/core/unit_test/config/results/Power9_Serial_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:27 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_POWERPCLE -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_POWER9 1 diff --git a/packages/kokkos/core/unit_test/config/results/SKX_Cuda_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/SKX_Cuda_KokkosCore_config.h deleted file mode 100644 index 8f4380d99..000000000 --- a/packages/kokkos/core/unit_test/config/results/SKX_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,24 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:40 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_ENABLE_TM -#endif -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX512XEON 1 diff --git a/packages/kokkos/core/unit_test/config/results/SKX_OpenMP_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/SKX_OpenMP_KokkosCore_config.h deleted file mode 100644 index 0a907a2ae..000000000 --- a/packages/kokkos/core/unit_test/config/results/SKX_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:40 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_ENABLE_TM -#endif -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX512XEON 1 diff --git a/packages/kokkos/core/unit_test/config/results/SKX_Pthread_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/SKX_Pthread_KokkosCore_config.h deleted file mode 100644 index 50a95223c..000000000 --- a/packages/kokkos/core/unit_test/config/results/SKX_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:41 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_ENABLE_TM -#endif -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX512XEON 1 diff --git a/packages/kokkos/core/unit_test/config/results/SKX_ROCm_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/SKX_ROCm_KokkosCore_config.h deleted file mode 100644 index 12293350a..000000000 --- a/packages/kokkos/core/unit_test/config/results/SKX_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,24 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:40 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_ENABLE_TM -#endif -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX512XEON 1 diff --git a/packages/kokkos/core/unit_test/config/results/SKX_Serial_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/SKX_Serial_KokkosCore_config.h deleted file mode 100644 index 4ea457aac..000000000 --- a/packages/kokkos/core/unit_test/config/results/SKX_Serial_KokkosCore_config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:41 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_ENABLE_TM -#endif -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX512XEON 1 diff --git a/packages/kokkos/core/unit_test/config/results/SNB_Cuda_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/SNB_Cuda_KokkosCore_config.h deleted file mode 100644 index 34c953783..000000000 --- a/packages/kokkos/core/unit_test/config/results/SNB_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:31 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX 1 diff --git a/packages/kokkos/core/unit_test/config/results/SNB_OpenMP_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/SNB_OpenMP_KokkosCore_config.h deleted file mode 100644 index f7ed4d720..000000000 --- a/packages/kokkos/core/unit_test/config/results/SNB_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:32 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX 1 diff --git a/packages/kokkos/core/unit_test/config/results/SNB_Pthread_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/SNB_Pthread_KokkosCore_config.h deleted file mode 100644 index 126c29ba7..000000000 --- a/packages/kokkos/core/unit_test/config/results/SNB_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:33 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX 1 diff --git a/packages/kokkos/core/unit_test/config/results/SNB_ROCm_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/SNB_ROCm_KokkosCore_config.h deleted file mode 100644 index 5c68008be..000000000 --- a/packages/kokkos/core/unit_test/config/results/SNB_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:32 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX 1 diff --git a/packages/kokkos/core/unit_test/config/results/SNB_Serial_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/SNB_Serial_KokkosCore_config.h deleted file mode 100644 index 0278d0d07..000000000 --- a/packages/kokkos/core/unit_test/config/results/SNB_Serial_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:33 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX 1 diff --git a/packages/kokkos/core/unit_test/config/results/WSM_Cuda_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/WSM_Cuda_KokkosCore_config.h deleted file mode 100644 index 97389bb1b..000000000 --- a/packages/kokkos/core/unit_test/config/results/WSM_Cuda_KokkosCore_config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:28 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_CUDA 1 -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_SSE42 1 diff --git a/packages/kokkos/core/unit_test/config/results/WSM_OpenMP_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/WSM_OpenMP_KokkosCore_config.h deleted file mode 100644 index dd5648f0c..000000000 --- a/packages/kokkos/core/unit_test/config/results/WSM_OpenMP_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:29 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_OPENMP 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_SSE42 1 diff --git a/packages/kokkos/core/unit_test/config/results/WSM_Pthread_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/WSM_Pthread_KokkosCore_config.h deleted file mode 100644 index c8a7adbd8..000000000 --- a/packages/kokkos/core/unit_test/config/results/WSM_Pthread_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:30 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_PTHREAD 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_SSE42 1 diff --git a/packages/kokkos/core/unit_test/config/results/WSM_ROCm_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/WSM_ROCm_KokkosCore_config.h deleted file mode 100644 index 712b5686f..000000000 --- a/packages/kokkos/core/unit_test/config/results/WSM_ROCm_KokkosCore_config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:29 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_ENABLE_ROCM 1 -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_SSE42 1 diff --git a/packages/kokkos/core/unit_test/config/results/WSM_Serial_KokkosCore_config.h b/packages/kokkos/core/unit_test/config/results/WSM_Serial_KokkosCore_config.h deleted file mode 100644 index 5bac7c266..000000000 --- a/packages/kokkos/core/unit_test/config/results/WSM_Serial_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:30 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_SERIAL 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_SSE42 1 diff --git a/packages/kokkos/core/unit_test/configuration/test-code/CMakeLists.txt b/packages/kokkos/core/unit_test/configuration/test-code/CMakeLists.txt index 49f36c086..759d59a07 100644 --- a/packages/kokkos/core/unit_test/configuration/test-code/CMakeLists.txt +++ b/packages/kokkos/core/unit_test/configuration/test-code/CMakeLists.txt @@ -19,8 +19,8 @@ # The CMake variables CMAKE_CXX_STANDARD and CMAKE_CXX_EXTENSIONS are # respected. We recommend that you set CMAKE_CXX_EXTENSIONS to OFF. # Otherwise, CMake defaults to using extensions for the C++ standard, and the -# GNU extensions (-std=gnu++11) will be used for compilers that support it -# instead of standard C++11 (-std=c++11). +# GNU extensions (-std=gnu++14) will be used for compilers that support it +# instead of standard C++14 (-std=c++14). # # A bunch of build options are added as variables (all starting with KOKKOS_) # to the build. Check them out using ccmake or the CMake GUI. diff --git a/packages/kokkos/core/unit_test/configuration/test-code/test_config_arch_list.bash b/packages/kokkos/core/unit_test/configuration/test-code/test_config_arch_list.bash index 696d345ff..5ff781b96 100755 --- a/packages/kokkos/core/unit_test/configuration/test-code/test_config_arch_list.bash +++ b/packages/kokkos/core/unit_test/configuration/test-code/test_config_arch_list.bash @@ -4,7 +4,7 @@ HostArch=(SNB HSW SKX KNL) DeviceArch=(Kepler35 Kepler37 Pascal60 Pascal61 Volta70) if [ ! -z "$KOKKOS_HOST_ARCH_TEST" ]; then export KOKKOS_ARCH_TEST=1 - HostArch=(WSM SNB HSW SKX WSM AMDAVX ARMv80 ARMv81 BDW KNC KNL BGQ Power7 Power8 Power9 Ryzen EPYC ARMv8_ThunderX ARMv8_ThunderX2) + HostArch=(WSM SNB HSW SKX WSM AMDAVX ARMv80 ARMv81 BDW KNC KNL BGQ Power7 Power8 Power9 Zen Zen2 ARMv8_ThunderX ARMv8_ThunderX2) DeviceArch=() fi diff --git a/packages/kokkos/core/unit_test/configuration/test-code/test_config_options_list.bash b/packages/kokkos/core/unit_test/configuration/test-code/test_config_options_list.bash index 1d72f28d2..59072b1a1 100755 --- a/packages/kokkos/core/unit_test/configuration/test-code/test_config_options_list.bash +++ b/packages/kokkos/core/unit_test/configuration/test-code/test_config_options_list.bash @@ -1,7 +1,7 @@ SRC_DIR=${KOKKOS_PATH}/core/unit_test/configuration/test-code # List of parallel device types -Options=(deprecated_code aggressive_vectorization disable_profiling large_mem_tests) +Options=(aggressive_vectorization disable_profiling large_mem_tests) CudaOptions=(lambda relocatable_device_code uvm constexpr) if [ ! -z "$KOKKOS_ARCH_TEST" ]; then @@ -25,7 +25,6 @@ do fi #Renaming options as GNU Make expects them - option=${option/deprecated_code/enable_deprecated_code} option=${option/large_mem_tests/enable_large_mem_tests} if [ ! -z $CudaOptions ]; then diff --git a/packages/kokkos/core/unit_test/cuda/TestCudaHostPinned_SharedAlloc.cpp b/packages/kokkos/core/unit_test/cuda/TestCudaHostPinned_SharedAlloc.cpp index 18780c09a..cbc889420 100644 --- a/packages/kokkos/core/unit_test/cuda/TestCudaHostPinned_SharedAlloc.cpp +++ b/packages/kokkos/core/unit_test/cuda/TestCudaHostPinned_SharedAlloc.cpp @@ -44,11 +44,3 @@ #include <cuda/TestCudaHostPinned_Category.hpp> #include <TestSharedAlloc.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, impl_shared_alloc) { - test_shared_alloc<TEST_EXECSPACE, Kokkos::DefaultHostExecutionSpace>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/cuda/TestCudaHostPinned_ViewCopy.cpp b/packages/kokkos/core/unit_test/cuda/TestCudaHostPinned_ViewCopy_a.cpp similarity index 98% rename from packages/kokkos/core/unit_test/cuda/TestCudaHostPinned_ViewCopy.cpp rename to packages/kokkos/core/unit_test/cuda/TestCudaHostPinned_ViewCopy_a.cpp index 04b43cf9a..8f5fd4e3e 100644 --- a/packages/kokkos/core/unit_test/cuda/TestCudaHostPinned_ViewCopy.cpp +++ b/packages/kokkos/core/unit_test/cuda/TestCudaHostPinned_ViewCopy_a.cpp @@ -43,4 +43,4 @@ */ #include <cuda/TestCudaHostPinned_Category.hpp> -#include <TestViewCopy.hpp> +#include <TestViewCopy_a.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_AtomicOperations_int.cpp b/packages/kokkos/core/unit_test/cuda/TestCudaHostPinned_ViewCopy_b.cpp similarity index 96% rename from packages/kokkos/core/unit_test/cuda/TestCuda_AtomicOperations_int.cpp rename to packages/kokkos/core/unit_test/cuda/TestCudaHostPinned_ViewCopy_b.cpp index 8746add7b..8d288cf71 100644 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_AtomicOperations_int.cpp +++ b/packages/kokkos/core/unit_test/cuda/TestCudaHostPinned_ViewCopy_b.cpp @@ -42,5 +42,5 @@ //@HEADER */ -#include <cuda/TestCuda_Category.hpp> -#include <TestAtomicOperations_int.hpp> +#include <cuda/TestCudaHostPinned_Category.hpp> +#include <TestViewCopy_b.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCudaUVM_SharedAlloc.cpp b/packages/kokkos/core/unit_test/cuda/TestCudaUVM_SharedAlloc.cpp index 81e43da34..5024b30f9 100644 --- a/packages/kokkos/core/unit_test/cuda/TestCudaUVM_SharedAlloc.cpp +++ b/packages/kokkos/core/unit_test/cuda/TestCudaUVM_SharedAlloc.cpp @@ -44,11 +44,3 @@ #include <cuda/TestCudaUVM_Category.hpp> #include <TestSharedAlloc.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, impl_shared_alloc) { - test_shared_alloc<TEST_EXECSPACE, Kokkos::DefaultHostExecutionSpace>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/cuda/TestCudaUVM_ViewCopy.cpp b/packages/kokkos/core/unit_test/cuda/TestCudaUVM_ViewCopy_a.cpp similarity index 98% rename from packages/kokkos/core/unit_test/cuda/TestCudaUVM_ViewCopy.cpp rename to packages/kokkos/core/unit_test/cuda/TestCudaUVM_ViewCopy_a.cpp index 774bf010d..3344c7113 100644 --- a/packages/kokkos/core/unit_test/cuda/TestCudaUVM_ViewCopy.cpp +++ b/packages/kokkos/core/unit_test/cuda/TestCudaUVM_ViewCopy_a.cpp @@ -43,4 +43,4 @@ */ #include <cuda/TestCudaUVM_Category.hpp> -#include <TestViewCopy.hpp> +#include <TestViewCopy_a.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_AtomicViews.cpp b/packages/kokkos/core/unit_test/cuda/TestCudaUVM_ViewCopy_b.cpp similarity index 96% rename from packages/kokkos/core/unit_test/cuda/TestCuda_AtomicViews.cpp rename to packages/kokkos/core/unit_test/cuda/TestCudaUVM_ViewCopy_b.cpp index 56c5fe6f3..1234a4b64 100644 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_AtomicViews.cpp +++ b/packages/kokkos/core/unit_test/cuda/TestCudaUVM_ViewCopy_b.cpp @@ -1,4 +1,3 @@ - /* //@HEADER // ************************************************************************ @@ -43,5 +42,5 @@ //@HEADER */ -#include <cuda/TestCuda_Category.hpp> -#include <TestAtomicViews.hpp> +#include <cuda/TestCudaUVM_Category.hpp> +#include <TestViewCopy_b.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_AtomicOperations_complexdouble.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_AtomicOperations_complexdouble.cpp deleted file mode 100644 index 813eb919c..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_AtomicOperations_complexdouble.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestAtomicOperations_complexdouble.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_AtomicOperations_complexfloat.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_AtomicOperations_complexfloat.cpp deleted file mode 100644 index ea8447cb2..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_AtomicOperations_complexfloat.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestAtomicOperations_complexfloat.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_AtomicOperations_double.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_AtomicOperations_double.cpp deleted file mode 100644 index 008dcdcad..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_AtomicOperations_double.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestAtomicOperations_double.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_AtomicOperations_float.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_AtomicOperations_float.cpp deleted file mode 100644 index 3fde849b3..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_AtomicOperations_float.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestAtomicOperations_float.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_AtomicOperations_longint.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_AtomicOperations_longint.cpp deleted file mode 100644 index 9cd133b3b..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_AtomicOperations_longint.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestAtomicOperations_longint.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_AtomicOperations_longlongint.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_AtomicOperations_longlongint.cpp deleted file mode 100644 index 658374ac6..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_AtomicOperations_longlongint.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestAtomicOperations_longlongint.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_AtomicOperations_unsignedint.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_AtomicOperations_unsignedint.cpp deleted file mode 100644 index 7d79f589e..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_AtomicOperations_unsignedint.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestAtomicOperations_unsignedint.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_AtomicOperations_unsignedlongint.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_AtomicOperations_unsignedlongint.cpp deleted file mode 100644 index 29335d0f5..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_AtomicOperations_unsignedlongint.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestAtomicOperations_unsignedlongint.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_Category.hpp b/packages/kokkos/core/unit_test/cuda/TestCuda_Category.hpp index 7e7b7c77e..6831200df 100644 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_Category.hpp +++ b/packages/kokkos/core/unit_test/cuda/TestCuda_Category.hpp @@ -50,5 +50,6 @@ #define TEST_CATEGORY cuda #define TEST_CATEGORY_DEATH cuda_DeathTest #define TEST_EXECSPACE Kokkos::Cuda +#define TEST_CATEGORY_FIXTURE(name) cuda_##name #endif diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_Concepts.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_Concepts.cpp deleted file mode 100644 index 31b36cbd8..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_Concepts.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestConcepts.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_Crs.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_Crs.cpp deleted file mode 100644 index 2ae1ee138..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_Crs.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestCrs.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_DeepCopyAlignment.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_DeepCopyAlignment.cpp deleted file mode 100644 index e8ce7381b..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_DeepCopyAlignment.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestDeepCopy.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_Scan.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_Graph.cpp similarity index 98% rename from packages/kokkos/core/unit_test/cuda/TestCuda_Scan.cpp rename to packages/kokkos/core/unit_test/cuda/TestCuda_Graph.cpp index e8364464e..38f4336a8 100644 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_Scan.cpp +++ b/packages/kokkos/core/unit_test/cuda/TestCuda_Graph.cpp @@ -44,4 +44,4 @@ */ #include <cuda/TestCuda_Category.hpp> -#include <TestScan.hpp> +#include <TestGraph.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_InterOp_Streams.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_InterOp_Streams.cpp index 3753ad9ae..57c0e454d 100644 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_InterOp_Streams.cpp +++ b/packages/kokkos/core/unit_test/cuda/TestCuda_InterOp_Streams.cpp @@ -42,103 +42,10 @@ //@HEADER */ -#include <Kokkos_Core.hpp> #include <cuda/TestCuda_Category.hpp> +#include <Test_InterOp_Streams.hpp> namespace Test { - -__global__ void offset_streams(int* p) { - int idx = blockIdx.x * blockDim.x + threadIdx.x; - if (idx < 100) { - p[idx] += idx; - } -} - -namespace { -struct FunctorRange { - Kokkos::View<int*, Kokkos::CudaSpace, Kokkos::MemoryTraits<Kokkos::Unmanaged>> - a; - FunctorRange(Kokkos::View<int*, Kokkos::CudaSpace, - Kokkos::MemoryTraits<Kokkos::Unmanaged>> - a_) - : a(a_) {} - - KOKKOS_INLINE_FUNCTION - void operator()(const int i) const { a(i) += 1; } -}; -struct FunctorRangeReduce { - Kokkos::View<int*, Kokkos::CudaSpace, Kokkos::MemoryTraits<Kokkos::Unmanaged>> - a; - FunctorRangeReduce(Kokkos::View<int*, Kokkos::CudaSpace, - Kokkos::MemoryTraits<Kokkos::Unmanaged>> - a_) - : a(a_) {} - - KOKKOS_INLINE_FUNCTION - void operator()(const int i, int& lsum) const { lsum += a(i); } -}; -struct FunctorMDRange { - Kokkos::View<int*, Kokkos::CudaSpace, Kokkos::MemoryTraits<Kokkos::Unmanaged>> - a; - FunctorMDRange(Kokkos::View<int*, Kokkos::CudaSpace, - Kokkos::MemoryTraits<Kokkos::Unmanaged>> - a_) - : a(a_) {} - - KOKKOS_INLINE_FUNCTION - void operator()(const int i, const int j) const { a(i * 10 + j) += 1; } -}; -struct FunctorMDRangeReduce { - Kokkos::View<int*, Kokkos::CudaSpace, Kokkos::MemoryTraits<Kokkos::Unmanaged>> - a; - FunctorMDRangeReduce(Kokkos::View<int*, Kokkos::CudaSpace, - Kokkos::MemoryTraits<Kokkos::Unmanaged>> - a_) - : a(a_) {} - - KOKKOS_INLINE_FUNCTION - void operator()(const int i, const int j, int& lsum) const { - lsum += a(i * 10 + j); - } -}; -struct FunctorTeam { - Kokkos::View<int*, Kokkos::CudaSpace, Kokkos::MemoryTraits<Kokkos::Unmanaged>> - a; - FunctorTeam(Kokkos::View<int*, Kokkos::CudaSpace, - Kokkos::MemoryTraits<Kokkos::Unmanaged>> - a_) - : a(a_) {} - - KOKKOS_INLINE_FUNCTION - void operator()( - const Kokkos::TeamPolicy<Kokkos::Cuda>::member_type& team) const { - int i = team.league_rank(); - Kokkos::parallel_for(Kokkos::TeamThreadRange(team, 10), - [&](const int j) { a(i * 10 + j) += 1; }); - } -}; - -struct FunctorTeamReduce { - Kokkos::View<int*, Kokkos::CudaSpace, Kokkos::MemoryTraits<Kokkos::Unmanaged>> - a; - FunctorTeamReduce(Kokkos::View<int*, Kokkos::CudaSpace, - Kokkos::MemoryTraits<Kokkos::Unmanaged>> - a_) - : a(a_) {} - - KOKKOS_INLINE_FUNCTION - void operator()(const Kokkos::TeamPolicy<Kokkos::Cuda>::member_type& team, - int& lsum) const { - int i = team.league_rank(); - int team_sum; - Kokkos::parallel_reduce( - Kokkos::TeamThreadRange(team, 10), - [&](const int j, int& tsum) { tsum += a(i * 10 + j); }, team_sum); - Kokkos::single(Kokkos::PerTeam(team), [&]() { lsum += team_sum; }); - } -}; -} // namespace - // Test Interoperability with Cuda Streams TEST(cuda, raw_cuda_streams) { cudaStream_t stream; @@ -147,45 +54,47 @@ TEST(cuda, raw_cuda_streams) { Kokkos::initialize(arguments); int* p; cudaMalloc(&p, sizeof(int) * 100); + using MemorySpace = typename TEST_EXECSPACE::memory_space; { - Kokkos::Cuda cuda0(stream); - Kokkos::View<int*, Kokkos::CudaSpace> v(p, 100); - Kokkos::deep_copy(cuda0, v, 5); + TEST_EXECSPACE space0(stream); + Kokkos::View<int*, TEST_EXECSPACE> v(p, 100); + Kokkos::deep_copy(space0, v, 5); int sum; Kokkos::parallel_for("Test::cuda::raw_cuda_stream::Range", - Kokkos::RangePolicy<Kokkos::Cuda>(cuda0, 0, 100), - FunctorRange(v)); + Kokkos::RangePolicy<TEST_EXECSPACE>(space0, 0, 100), + FunctorRange<MemorySpace>(v)); Kokkos::parallel_reduce( "Test::cuda::raw_cuda_stream::RangeReduce", - Kokkos::RangePolicy<Kokkos::Cuda, Kokkos::LaunchBounds<128, 2>>(cuda0, - 0, 100), - FunctorRangeReduce(v), sum); - cuda0.fence(); + Kokkos::RangePolicy<TEST_EXECSPACE, Kokkos::LaunchBounds<128, 2>>( + space0, 0, 100), + FunctorRangeReduce<MemorySpace>(v), sum); + space0.fence(); ASSERT_EQ(600, sum); Kokkos::parallel_for("Test::cuda::raw_cuda_stream::MDRange", - Kokkos::MDRangePolicy<Kokkos::Cuda, Kokkos::Rank<2>>( - cuda0, {0, 0}, {10, 10}), - FunctorMDRange(v)); - Kokkos::parallel_reduce("Test::cuda::raw_cuda_stream::MDRangeReduce", - Kokkos::MDRangePolicy<Kokkos::Cuda, Kokkos::Rank<2>, - Kokkos::LaunchBounds<128, 2>>( - cuda0, {0, 0}, {10, 10}), - FunctorMDRangeReduce(v), sum); - cuda0.fence(); + Kokkos::MDRangePolicy<TEST_EXECSPACE, Kokkos::Rank<2>>( + space0, {0, 0}, {10, 10}), + FunctorMDRange<MemorySpace>(v)); + Kokkos::parallel_reduce( + "Test::cuda::raw_cuda_stream::MDRangeReduce", + Kokkos::MDRangePolicy<TEST_EXECSPACE, Kokkos::Rank<2>, + Kokkos::LaunchBounds<128, 2>>(space0, {0, 0}, + {10, 10}), + FunctorMDRangeReduce<MemorySpace>(v), sum); + space0.fence(); ASSERT_EQ(700, sum); Kokkos::parallel_for("Test::cuda::raw_cuda_stream::Team", - Kokkos::TeamPolicy<Kokkos::Cuda>(cuda0, 10, 10), - FunctorTeam(v)); + Kokkos::TeamPolicy<TEST_EXECSPACE>(space0, 10, 10), + FunctorTeam<MemorySpace, TEST_EXECSPACE>(v)); Kokkos::parallel_reduce( "Test::cuda::raw_cuda_stream::Team", - Kokkos::TeamPolicy<Kokkos::Cuda, Kokkos::LaunchBounds<128, 2>>(cuda0, - 10, 10), - FunctorTeamReduce(v), sum); - cuda0.fence(); + Kokkos::TeamPolicy<TEST_EXECSPACE, Kokkos::LaunchBounds<128, 2>>( + space0, 10, 10), + FunctorTeamReduce<MemorySpace, TEST_EXECSPACE>(v), sum); + space0.fence(); ASSERT_EQ(800, sum); } Kokkos::finalize(); @@ -193,7 +102,7 @@ TEST(cuda, raw_cuda_streams) { CUDA_SAFE_CALL(cudaDeviceSynchronize()); cudaStreamDestroy(stream); - int* h_p = new int[100]; + int h_p[100]; cudaMemcpy(h_p, p, sizeof(int) * 100, cudaMemcpyDefault); CUDA_SAFE_CALL(cudaDeviceSynchronize()); int64_t sum = 0; diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_LocalDeepCopy.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_LocalDeepCopy.cpp deleted file mode 100644 index 20e32ff38..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_LocalDeepCopy.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestLocalDeepCopy.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_MDRange_a.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_MDRange_a.cpp deleted file mode 100644 index 5e339b9a0..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_MDRange_a.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestMDRange_a.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_MDRange_b.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_MDRange_b.cpp deleted file mode 100644 index 16974ed26..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_MDRange_b.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestMDRange_b.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_MDRange_c.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_MDRange_c.cpp deleted file mode 100644 index ebc4dfee6..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_MDRange_c.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestMDRange_c.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_MDRange_d.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_MDRange_d.cpp deleted file mode 100644 index 2e7392613..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_MDRange_d.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestMDRange_d.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_MDRange_e.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_MDRange_e.cpp deleted file mode 100644 index 92ec05a47..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_MDRange_e.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestMDRange_e.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_RangePolicyRequire.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_RangePolicyRequire.cpp deleted file mode 100644 index 131770539..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_RangePolicyRequire.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestRangeRequire.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_Reducers_a.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_Reducers_a.cpp deleted file mode 100644 index ab4446f96..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_Reducers_a.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestReducers_a.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_Reducers_b.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_Reducers_b.cpp deleted file mode 100644 index 4c7f11182..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_Reducers_b.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestReducers_b.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_Reducers_c.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_Reducers_c.cpp deleted file mode 100644 index 0e10c7093..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_Reducers_c.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestReducers_c.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_Reducers_d.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_Reducers_d.cpp deleted file mode 100644 index ba2ae6233..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_Reducers_d.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestReducers_d.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_Reductions.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_Reductions.cpp deleted file mode 100644 index afa361c48..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_Reductions.cpp +++ /dev/null @@ -1,47 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestReduce.hpp> -#include <TestCXX11Deduction.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_Reductions_DeviceView.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_Reductions_DeviceView.cpp deleted file mode 100644 index e2abf881a..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_Reductions_DeviceView.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestReduceDeviceView.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_SharedAlloc.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_SharedAlloc.cpp deleted file mode 100644 index a09ea3f1b..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_SharedAlloc.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestSharedAlloc.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, impl_shared_alloc) { - test_shared_alloc<Kokkos::CudaSpace, Kokkos::DefaultHostExecutionSpace>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_a.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_a.cpp deleted file mode 100644 index 6ac2fa8f0..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_a.cpp +++ /dev/null @@ -1,102 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCudaUVM_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_auto_1d_left) { - TestViewSubview::test_auto_1d<Kokkos::LayoutLeft, TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_auto_1d_right) { - TestViewSubview::test_auto_1d<Kokkos::LayoutRight, TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_auto_1d_stride) { - TestViewSubview::test_auto_1d<Kokkos::LayoutStride, TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_assign_strided) { - TestViewSubview::test_1d_strided_assignment<TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_left_0) { - TestViewSubview::test_left_0<TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_left_1) { - TestViewSubview::test_left_1<TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_left_2) { - TestViewSubview::test_left_2<TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_left_3) { - TestViewSubview::test_left_3<TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_right_0) { - TestViewSubview::test_right_0<TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_right_1) { - TestViewSubview::test_right_1<TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_right_3) { - TestViewSubview::test_right_3<TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_static_tests) { - TestViewSubview::TestSubviewStaticSizes<TEST_EXECSPACE, - Kokkos::LayoutLeft>()(); - TestViewSubview::TestSubviewStaticSizes<TEST_EXECSPACE, - Kokkos::LayoutRight>()(); - TestViewSubview::TestExtentsStaticTests<TEST_EXECSPACE>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_b.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_b.cpp deleted file mode 100644 index c53904559..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_b.cpp +++ /dev/null @@ -1,66 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCudaUVM_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_layoutleft_to_layoutleft) { - TestViewSubview::test_layoutleft_to_layoutleft<TEST_EXECSPACE>(); - TestViewSubview::test_layoutleft_to_layoutleft< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::Atomic> >(); - TestViewSubview::test_layoutleft_to_layoutleft< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -TEST(TEST_CATEGORY, view_subview_layoutright_to_layoutright) { - TestViewSubview::test_layoutright_to_layoutright<TEST_EXECSPACE>(); - TestViewSubview::test_layoutright_to_layoutright< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::Atomic> >(); - TestViewSubview::test_layoutright_to_layoutright< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c02.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c02.cpp deleted file mode 100644 index d34a3ab59..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c02.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCudaUVM_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_1d_assign_atomic) { - TestViewSubview::test_1d_assign<TEST_EXECSPACE, - Kokkos::MemoryTraits<Kokkos::Atomic> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c06.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c06.cpp deleted file mode 100644 index 973ecb57e..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c06.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCudaUVM_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_2d_from_3d_randomaccess) { - TestViewSubview::test_2d_subview_3d< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c07.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c07.cpp deleted file mode 100644 index 268ffd975..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c07.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCudaUVM_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_3d_from_5d_left) { - TestViewSubview::test_3d_subview_5d_left<TEST_EXECSPACE>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c09.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c09.cpp deleted file mode 100644 index 7a60168b9..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c09.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCudaUVM_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_3d_from_5d_left_randomaccess) { - TestViewSubview::test_3d_subview_5d_left< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c11.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c11.cpp deleted file mode 100644 index 2a2c4ceb0..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c11.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCudaUVM_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_3d_from_5d_right_atomic) { - TestViewSubview::test_3d_subview_5d_right< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::Atomic> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c12.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c12.cpp deleted file mode 100644 index 747df8836..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c12.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCudaUVM_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_3d_from_5d_right_randomaccess) { - TestViewSubview::test_3d_subview_5d_right< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c_all.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c_all.cpp deleted file mode 100644 index 1210307c7..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_SubView_c_all.cpp +++ /dev/null @@ -1,13 +0,0 @@ -#include <cuda/TestCuda_SubView_c01.cpp> -#include <cuda/TestCuda_SubView_c02.cpp> -#include <cuda/TestCuda_SubView_c03.cpp> -#include <cuda/TestCuda_SubView_c04.cpp> -#include <cuda/TestCuda_SubView_c05.cpp> -#include <cuda/TestCuda_SubView_c06.cpp> -#include <cuda/TestCuda_SubView_c07.cpp> -#include <cuda/TestCuda_SubView_c08.cpp> -#include <cuda/TestCuda_SubView_c09.cpp> -#include <cuda/TestCuda_SubView_c10.cpp> -#include <cuda/TestCuda_SubView_c11.cpp> -#include <cuda/TestCuda_SubView_c12.cpp> -#include <cuda/TestCuda_SubView_c13.cpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_Team.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_Team.cpp deleted file mode 100644 index fe5743798..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_Team.cpp +++ /dev/null @@ -1,180 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestTeam.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, team_for) { - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >::test_for( - 0); - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >::test_for( - 0); - - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >::test_for( - 2); - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >::test_for( - 2); - - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >::test_for( - 1000); - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >::test_for( - 1000); -} - -TEST(TEST_CATEGORY, team_reduce) { - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Static> >::test_reduce(0); - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Dynamic> >::test_reduce(0); - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Static> >::test_reduce(2); - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Dynamic> >::test_reduce(2); - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Static> >::test_reduce(1000); - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Dynamic> >::test_reduce(1000); -} - -TEST(TEST_CATEGORY, team_broadcast_long) { - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, - long>::test_teambroadcast(0, 1); - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, - long>::test_teambroadcast(0, 1); - - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, - long>::test_teambroadcast(2, 1); - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, - long>::test_teambroadcast(2, 1); - - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, - long>::test_teambroadcast(16, 1); - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, - long>::test_teambroadcast(16, 1); - - // TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, long - // >:: - // test_teambroadcast(1000, 1); - // TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, long - // >:: - // test_teambroadcast(1000, 1); -} - -TEST(TEST_CATEGORY, team_broadcast_char) { - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, - unsigned char>::test_teambroadcast(0, 1); - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, - unsigned char>::test_teambroadcast(0, 1); - - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, - unsigned char>::test_teambroadcast(2, 1); - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, - unsigned char>::test_teambroadcast(2, 1); - - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, - unsigned char>::test_teambroadcast(16, 1); - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, - unsigned char>::test_teambroadcast(16, 1); - - // TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, long - // >:: - // test_teambroadcast(1000, 1); - // TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, long - // >:: - // test_teambroadcast(1000, 1); -} - -TEST(TEST_CATEGORY, team_broadcast_float) { - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, - float>::test_teambroadcast(0, 1.3); - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, - float>::test_teambroadcast(0, 1.3); - - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, - float>::test_teambroadcast(2, 1.3); - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, - float>::test_teambroadcast(2, 1.3); - - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, - float>::test_teambroadcast(16, 1.3); - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, - float>::test_teambroadcast(16, 1.3); - - // TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, float - // >:: - // test_teambroadcast(1000, 1.3); - // TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, float - // >:: - // test_teambroadcast(1000, 1.3); -} - -TEST(TEST_CATEGORY, team_broadcast_double) { - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, - double>::test_teambroadcast(0, 1.3); - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, - double>::test_teambroadcast(0, 1.3); - - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, - double>::test_teambroadcast(2, 1.3); - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, - double>::test_teambroadcast(2, 1.3); - - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, - double>::test_teambroadcast(16, 1.3); - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, - double>::test_teambroadcast(16, 1.3); - - // TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, double - // >:: - // test_teambroadcast(1000, 1.3); - // TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, - // double >:: - // test_teambroadcast(1000, 1.3); -} - -} // namespace Test - -#include <TestTeamVector.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_TeamScratch.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_TeamScratch.cpp deleted file mode 100644 index 63291dbbb..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_TeamScratch.cpp +++ /dev/null @@ -1,80 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestTeam.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, team_shared_request) { - TestSharedTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(); - TestSharedTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(); -} - -TEST(TEST_CATEGORY, team_scratch_request) { - TestScratchTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(); - TestScratchTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(); -} - -#if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) -TEST(TEST_CATEGORY, team_lambda_shared_request) { - TestLambdaSharedTeam<Kokkos::HostSpace, TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Static> >(); - TestLambdaSharedTeam<Kokkos::HostSpace, TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Dynamic> >(); -} - -TEST(TEST_CATEGORY, scratch_align) { TestScratchAlignment<TEST_EXECSPACE>(); } -#endif - -TEST(TEST_CATEGORY, shmem_size) { TestShmemSize<TEST_EXECSPACE>(); } - -TEST(TEST_CATEGORY, multi_level_scratch) { - TestMultiLevelScratchTeam<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Static> >(); - TestMultiLevelScratchTeam<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Dynamic> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_TeamScratchStreams.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_TeamScratchStreams.cpp new file mode 100644 index 000000000..93225377d --- /dev/null +++ b/packages/kokkos/core/unit_test/cuda/TestCuda_TeamScratchStreams.cpp @@ -0,0 +1,147 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include <cuda/TestCuda_Category.hpp> +#include <Kokkos_Core.hpp> + +namespace Test { + +namespace Impl { + +struct CudaStreamScratchTestFunctor { + using team_t = Kokkos::TeamPolicy<Kokkos::Cuda>::member_type; + using scratch_t = Kokkos::View<int64_t*, Kokkos::Cuda::scratch_memory_space>; + + Kokkos::View<int64_t, Kokkos::CudaSpace, Kokkos::MemoryTraits<Kokkos::Atomic>> + counter; + int N, M; + CudaStreamScratchTestFunctor( + Kokkos::View<int64_t, Kokkos::CudaSpace> counter_, int N_, int M_) + : counter(counter_), N(N_), M(M_) {} + + KOKKOS_FUNCTION + void operator()(const team_t& team) const { + scratch_t scr(team.team_scratch(1), M); + Kokkos::parallel_for(Kokkos::TeamThreadRange(team, 0, M), + [&](int i) { scr[i] = 0; }); + team.team_barrier(); + for (int i = 0; i < N; i++) { + Kokkos::parallel_for(Kokkos::TeamThreadRange(team, 0, M), + [&](int j) { scr[j] += 1; }); + } + team.team_barrier(); + Kokkos::parallel_for(Kokkos::TeamThreadRange(team, 0, M), [&](int i) { + if (scr[i] != N) counter()++; + }); + } +}; + +void cuda_stream_scratch_test_one( + int N, int T, int M_base, Kokkos::View<int64_t, Kokkos::CudaSpace> counter, + Kokkos::Cuda cuda, int tid) { + int M = M_base + tid * 5; + Kokkos::TeamPolicy<Kokkos::Cuda> p(cuda, T, 64); + using scratch_t = Kokkos::View<int64_t*, Kokkos::Cuda::scratch_memory_space>; + + int bytes = scratch_t::shmem_size(M); + + for (int r = 0; r < 15; r++) { + Kokkos::parallel_for("Run", p.set_scratch_size(1, Kokkos::PerTeam(bytes)), + CudaStreamScratchTestFunctor(counter, N, M)); + } +} + +void cuda_stream_scratch_test( + int N, int T, int M_base, + Kokkos::View<int64_t, Kokkos::CudaSpace> counter) { + int K = 4; + cudaStream_t stream[4]; + Kokkos::Cuda cuda[4]; + for (int i = 0; i < K; i++) { + cudaStreamCreate(&stream[i]); + cuda[i] = Kokkos::Cuda(stream[i]); + } + // Test that growing scratch size in subsequent calls doesn't crash things +#if defined(KOKKOS_ENABLE_OPENMP) +#pragma omp parallel + { + int tid = omp_get_thread_num(); + // Limit how many threads submit + if (tid < 4) { + cuda_stream_scratch_test_one(N, T, M_base, counter, cuda[tid], tid); + } + } +#else + for (int tid = 0; tid < K; tid++) { + cuda_stream_scratch_test_one(N, T, M_base, counter, cuda[tid], tid); + } +#endif + // Test that if everything is large enough, multiple launches with different + // scratch sizes don't step on each other + for (int tid = K - 1; tid >= 0; tid--) { + cuda_stream_scratch_test_one(N, T, M_base, counter, cuda[tid], tid); + } + + Kokkos::fence(); + for (int i = 0; i < K; i++) { + cuda[i] = Kokkos::Cuda(); + cudaStreamDestroy(stream[i]); + } +} +} // namespace Impl + +TEST(cuda, team_scratch_1_streams) { + int N = 1000000; + int T = 10; + int M_base = 150; + + Kokkos::View<int64_t, Kokkos::CudaSpace> counter("C"); + + Impl::cuda_stream_scratch_test(N, T, M_base, counter); + + int64_t result; + Kokkos::deep_copy(result, counter); + ASSERT_EQ(0, result); +} +} // namespace Test diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_TeamTeamSize.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_TeamTeamSize.cpp deleted file mode 100644 index 1d60d2727..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_TeamTeamSize.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestTeamTeamSize.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_TeamVectorRange.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_TeamVectorRange.cpp deleted file mode 100644 index f0b7496ed..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_TeamVectorRange.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestTeamVectorRange.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_UniqueToken.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_UniqueToken.cpp deleted file mode 100644 index 186e9e155..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_UniqueToken.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestUniqueToken.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_ViewAPI_a.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_ViewAPI_a.cpp deleted file mode 100644 index ed9089f4c..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_ViewAPI_a.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestViewAPI_a.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_ViewAPI_b.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_ViewAPI_b.cpp deleted file mode 100644 index 1a9056462..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_ViewAPI_b.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestViewAPI_b.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_ViewAPI_c.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_ViewAPI_c.cpp deleted file mode 100644 index 0feca1b1c..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_ViewAPI_c.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestViewAPI_c.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_ViewAPI_d.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_ViewAPI_d.cpp deleted file mode 100644 index fd5ff1198..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_ViewAPI_d.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestViewAPI_d.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_ViewAPI_e.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_ViewAPI_e.cpp deleted file mode 100644 index 754b90aca..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_ViewAPI_e.cpp +++ /dev/null @@ -1,47 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestViewAPI_e.hpp> -#include <TestViewCopy.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_ViewLayoutStrideAssignment.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_ViewLayoutStrideAssignment.cpp deleted file mode 100644 index 9b14ed7e8..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_ViewLayoutStrideAssignment.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestViewLayoutStrideAssignment.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_ViewMapping_a.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_ViewMapping_a.cpp deleted file mode 100644 index 5eaa95a59..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_ViewMapping_a.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestViewMapping_a.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_ViewMapping_b.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_ViewMapping_b.cpp deleted file mode 100644 index 5cd8f6c39..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_ViewMapping_b.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestViewMapping_b.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_ViewMapping_subview.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_ViewMapping_subview.cpp deleted file mode 100644 index 2f8888a05..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_ViewMapping_subview.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestViewMapping_subview.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_ViewOfClass.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_ViewOfClass.cpp deleted file mode 100644 index 86315de37..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_ViewOfClass.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestViewOfClass.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_ViewResize.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_ViewResize.cpp deleted file mode 100644 index 49b8b17de..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_ViewResize.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestViewResize.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_View_64bit.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_View_64bit.cpp deleted file mode 100644 index ead4c29be..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_View_64bit.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestView_64bit.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_WorkGraph.cpp b/packages/kokkos/core/unit_test/cuda/TestCuda_WorkGraph.cpp deleted file mode 100644 index 0ae3a6619..000000000 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_WorkGraph.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <cuda/TestCuda_Category.hpp> -#include <TestWorkGraph.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_SharedAlloc.cpp b/packages/kokkos/core/unit_test/default/TestDefaultDeviceDevelop.cpp similarity index 92% rename from packages/kokkos/core/unit_test/hpx/TestHPX_SharedAlloc.cpp rename to packages/kokkos/core/unit_test/default/TestDefaultDeviceDevelop.cpp index 48a40aaae..a80aded12 100644 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_SharedAlloc.cpp +++ b/packages/kokkos/core/unit_test/default/TestDefaultDeviceDevelop.cpp @@ -1,3 +1,4 @@ + /* //@HEADER // ************************************************************************ @@ -42,13 +43,14 @@ //@HEADER */ -#include <hpx/TestHPX_Category.hpp> -#include <TestSharedAlloc.hpp> +#include <gtest/gtest.h> + +#include <Kokkos_Core.hpp> + +#include <default/TestDefaultDeviceType_Category.hpp> namespace Test { -TEST(TEST_CATEGORY, impl_shared_alloc) { - test_shared_alloc<Kokkos::HostSpace, TEST_EXECSPACE>(); -} +TEST(defaultdevicetype, development_test) {} } // namespace Test diff --git a/packages/kokkos/core/unit_test/default/TestDefaultDeviceType.cpp b/packages/kokkos/core/unit_test/default/TestDefaultDeviceType.cpp index 02f3f7272..c4320a137 100644 --- a/packages/kokkos/core/unit_test/default/TestDefaultDeviceType.cpp +++ b/packages/kokkos/core/unit_test/default/TestDefaultDeviceType.cpp @@ -46,16 +46,18 @@ #include <Kokkos_Core.hpp> #include <default/TestDefaultDeviceType_Category.hpp> +#include <TestHalfConversion.hpp> +#include <TestHalfOperators.hpp> #if !defined(KOKKOS_ENABLE_CUDA) || defined(__CUDACC__) namespace Test { TEST(TEST_CATEGORY, host_space_access) { - typedef Kokkos::HostSpace::execution_space host_exec_space; - typedef Kokkos::Device<host_exec_space, Kokkos::HostSpace> device_space; - typedef Kokkos::Impl::HostMirror<Kokkos::DefaultExecutionSpace>::Space - mirror_space; + using host_exec_space = Kokkos::HostSpace::execution_space; + using device_space = Kokkos::Device<host_exec_space, Kokkos::HostSpace>; + using mirror_space = + Kokkos::Impl::HostMirror<Kokkos::DefaultExecutionSpace>::Space; static_assert(Kokkos::Impl::SpaceAccessibility<host_exec_space, Kokkos::HostSpace>::accessible, diff --git a/packages/kokkos/core/unit_test/default/TestDefaultDeviceTypeInit_17.cpp b/packages/kokkos/core/unit_test/default/TestDefaultDeviceTypeInit_17.cpp new file mode 100644 index 000000000..e2c6eed83 --- /dev/null +++ b/packages/kokkos/core/unit_test/default/TestDefaultDeviceTypeInit_17.cpp @@ -0,0 +1,2 @@ +#define KOKKOS_DEFAULTDEVICETYPE_INIT_TEST_17 +#include <TestDefaultDeviceTypeInit.hpp> diff --git a/packages/kokkos/core/unit_test/default/TestDefaultDeviceTypeInit_18.cpp b/packages/kokkos/core/unit_test/default/TestDefaultDeviceTypeInit_18.cpp new file mode 100644 index 000000000..282634bc1 --- /dev/null +++ b/packages/kokkos/core/unit_test/default/TestDefaultDeviceTypeInit_18.cpp @@ -0,0 +1,2 @@ +#define KOKKOS_DEFAULTDEVICETYPE_INIT_TEST_18 +#include <TestDefaultDeviceTypeInit.hpp> diff --git a/packages/kokkos/core/unit_test/default/TestDefaultDeviceTypeResize.cpp b/packages/kokkos/core/unit_test/default/TestDefaultDeviceTypeResize.cpp index df2bc44aa..bc048596a 100644 --- a/packages/kokkos/core/unit_test/default/TestDefaultDeviceTypeResize.cpp +++ b/packages/kokkos/core/unit_test/default/TestDefaultDeviceTypeResize.cpp @@ -45,13 +45,16 @@ #include <gtest/gtest.h> #include "TestResize.hpp" +// FIXME_SYCL requires parallel_for +#ifndef KOKKOS_ENABLE_SYCL namespace Test { TEST(kokkosresize, host_space_access) { // Test with the default device type. using TestViewResize::testResize; - typedef Kokkos::View<int*>::device_type device_type; + using device_type = Kokkos::View<int *>::device_type; testResize<device_type>(); } } // namespace Test +#endif diff --git a/packages/kokkos/core/unit_test/default/TestDefaultDeviceType_a1.cpp b/packages/kokkos/core/unit_test/default/TestDefaultDeviceType_a1.cpp index a49ff677d..248b074fd 100644 --- a/packages/kokkos/core/unit_test/default/TestDefaultDeviceType_a1.cpp +++ b/packages/kokkos/core/unit_test/default/TestDefaultDeviceType_a1.cpp @@ -51,6 +51,13 @@ #include <default/TestDefaultDeviceType_Category.hpp> #include <TestReduceCombinatorical.hpp> +// FIXME_SYCL +// C++ exception with description "Global_work_size not evenly divisible by +// local_work_size. Non-uniform work-groups are not allowed by default. +// Underlying OpenCL 2.x implementation supports this feature and to enable it, +// build device program with -cl-std=CL2.0 -54 (CL_INVALID_WORK_GROUP_SIZE)" +// thrown in the test body. +#ifndef KOKKOS_ENABLE_SYCL namespace Test { TEST(defaultdevicetype, reduce_instantiation_a1) { @@ -58,5 +65,5 @@ TEST(defaultdevicetype, reduce_instantiation_a1) { } } // namespace Test - +#endif #endif diff --git a/packages/kokkos/core/unit_test/default/TestDefaultDeviceType_a2.cpp b/packages/kokkos/core/unit_test/default/TestDefaultDeviceType_a2.cpp index 816ec60ec..663371a76 100644 --- a/packages/kokkos/core/unit_test/default/TestDefaultDeviceType_a2.cpp +++ b/packages/kokkos/core/unit_test/default/TestDefaultDeviceType_a2.cpp @@ -51,6 +51,13 @@ #include <default/TestDefaultDeviceType_Category.hpp> #include <TestReduceCombinatorical.hpp> +// FIXME_SYCL +// C++ exception with description "Global_work_size not evenly divisible by +// local_work_size. Non-uniform work-groups are not allowed by default. +// Underlying OpenCL 2.x implementation supports this feature and to enable it, +// build device program with -cl-std=CL2.0 -54 (CL_INVALID_WORK_GROUP_SIZE)" +// thrown in the test body. +#ifndef KOKKOS_ENABLE_SYCL namespace Test { TEST(defaultdevicetype, reduce_instantiation_a2) { @@ -60,3 +67,4 @@ TEST(defaultdevicetype, reduce_instantiation_a2) { } // namespace Test #endif +#endif diff --git a/packages/kokkos/core/unit_test/default/TestDefaultDeviceType_a3.cpp b/packages/kokkos/core/unit_test/default/TestDefaultDeviceType_a3.cpp index 49c98268f..948d2586b 100644 --- a/packages/kokkos/core/unit_test/default/TestDefaultDeviceType_a3.cpp +++ b/packages/kokkos/core/unit_test/default/TestDefaultDeviceType_a3.cpp @@ -46,6 +46,8 @@ #include <Kokkos_Core.hpp> +// FIXME_SYCL requires TeamPolicy +#ifndef KOKKOS_ENABLE_SYCL #if !defined(KOKKOS_ENABLE_CUDA) || defined(__CUDACC__) #include <default/TestDefaultDeviceType_Category.hpp> @@ -60,3 +62,4 @@ TEST(defaultdevicetype, reduce_instantiation_a3) { } // namespace Test #endif +#endif diff --git a/packages/kokkos/core/unit_test/default/TestDefaultDeviceType_b1.cpp b/packages/kokkos/core/unit_test/default/TestDefaultDeviceType_b1.cpp index fae6a72e7..449c8cd56 100644 --- a/packages/kokkos/core/unit_test/default/TestDefaultDeviceType_b1.cpp +++ b/packages/kokkos/core/unit_test/default/TestDefaultDeviceType_b1.cpp @@ -51,6 +51,13 @@ #include <default/TestDefaultDeviceType_Category.hpp> #include <TestReduceCombinatorical.hpp> +// FIXME_SYCL +// C++ exception with description "Global_work_size not evenly divisible by +// local_work_size. Non-uniform work-groups are not allowed by default. +// Underlying OpenCL 2.x implementation supports this feature and to enable it, +// build device program with -cl-std=CL2.0 -54 (CL_INVALID_WORK_GROUP_SIZE)" +// thrown in the test body. +#ifndef KOKKOS_ENABLE_SYCL namespace Test { TEST(defaultdevicetype, reduce_instantiation_b1) { @@ -58,5 +65,5 @@ TEST(defaultdevicetype, reduce_instantiation_b1) { } } // namespace Test - +#endif #endif diff --git a/packages/kokkos/core/unit_test/default/TestDefaultDeviceType_b2.cpp b/packages/kokkos/core/unit_test/default/TestDefaultDeviceType_b2.cpp index 8a1d4eff2..551bd6c20 100644 --- a/packages/kokkos/core/unit_test/default/TestDefaultDeviceType_b2.cpp +++ b/packages/kokkos/core/unit_test/default/TestDefaultDeviceType_b2.cpp @@ -51,6 +51,13 @@ #include <default/TestDefaultDeviceType_Category.hpp> #include <TestReduceCombinatorical.hpp> +// FIXME_SYCL +// C++ exception with description "Global_work_size not evenly divisible by +// local_work_size. Non-uniform work-groups are not allowed by default. +// Underlying OpenCL 2.x implementation supports this feature and to enable it, +// build device program with -cl-std=CL2.0 -54 (CL_INVALID_WORK_GROUP_SIZE)" +// thrown in the test body. +#ifndef KOKKOS_ENABLE_SYCL namespace Test { TEST(defaultdevicetype, reduce_instantiation_b2) { @@ -60,3 +67,4 @@ TEST(defaultdevicetype, reduce_instantiation_b2) { } // namespace Test #endif +#endif diff --git a/packages/kokkos/core/unit_test/default/TestDefaultDeviceType_b3.cpp b/packages/kokkos/core/unit_test/default/TestDefaultDeviceType_b3.cpp index 6a980c492..e1c5b16fe 100644 --- a/packages/kokkos/core/unit_test/default/TestDefaultDeviceType_b3.cpp +++ b/packages/kokkos/core/unit_test/default/TestDefaultDeviceType_b3.cpp @@ -46,6 +46,8 @@ #include <Kokkos_Core.hpp> +// FIXME_SYCL requires TeamPolicy +#ifndef KOKKOS_ENABLE_SYCL #if !defined(KOKKOS_ENABLE_CUDA) || defined(__CUDACC__) #include <default/TestDefaultDeviceType_Category.hpp> @@ -60,3 +62,4 @@ TEST(defaultdevicetype, reduce_instantiation_b3) { } // namespace Test #endif +#endif diff --git a/packages/kokkos/core/unit_test/default/TestDefaultDeviceType_c1.cpp b/packages/kokkos/core/unit_test/default/TestDefaultDeviceType_c1.cpp index 2c807582b..6e7587781 100644 --- a/packages/kokkos/core/unit_test/default/TestDefaultDeviceType_c1.cpp +++ b/packages/kokkos/core/unit_test/default/TestDefaultDeviceType_c1.cpp @@ -47,11 +47,17 @@ #include <Kokkos_Core.hpp> #if !defined(KOKKOS_ENABLE_CUDA) || defined(__CUDACC__) -#if !defined(KOKKOS_ENABLE_ROCM) #include <default/TestDefaultDeviceType_Category.hpp> #include <TestReduceCombinatorical.hpp> +// FIXME_SYCL +// C++ exception with description "Global_work_size not evenly divisible by +// local_work_size. Non-uniform work-groups are not allowed by default. +// Underlying OpenCL 2.x implementation supports this feature and to enable it, +// build device program with -cl-std=CL2.0 -54 (CL_INVALID_WORK_GROUP_SIZE)" +// thrown in the test body. +#ifndef KOKKOS_ENABLE_SYCL namespace Test { TEST(defaultdevicetype, reduce_instantiation_c1) { @@ -59,6 +65,5 @@ TEST(defaultdevicetype, reduce_instantiation_c1) { } } // namespace Test - #endif #endif diff --git a/packages/kokkos/core/unit_test/default/TestDefaultDeviceType_c2.cpp b/packages/kokkos/core/unit_test/default/TestDefaultDeviceType_c2.cpp index f940810a5..ae4f1082a 100644 --- a/packages/kokkos/core/unit_test/default/TestDefaultDeviceType_c2.cpp +++ b/packages/kokkos/core/unit_test/default/TestDefaultDeviceType_c2.cpp @@ -47,11 +47,17 @@ #include <Kokkos_Core.hpp> #if !defined(KOKKOS_ENABLE_CUDA) || defined(__CUDACC__) -#if !defined(KOKKOS_ENABLE_ROCM) #include <default/TestDefaultDeviceType_Category.hpp> #include <TestReduceCombinatorical.hpp> +// FIXME_SYCL +// C++ exception with description "Global_work_size not evenly divisible by +// local_work_size. Non-uniform work-groups are not allowed by default. +// Underlying OpenCL 2.x implementation supports this feature and to enable it, +// build device program with -cl-std=CL2.0 -54 (CL_INVALID_WORK_GROUP_SIZE)" +// thrown in the test body. +#ifndef KOKKOS_ENABLE_SYCL namespace Test { TEST(defaultdevicetype, reduce_instantiation_c2) { diff --git a/packages/kokkos/core/unit_test/default/TestDefaultDeviceType_c3.cpp b/packages/kokkos/core/unit_test/default/TestDefaultDeviceType_c3.cpp index c03d84302..92a956bee 100644 --- a/packages/kokkos/core/unit_test/default/TestDefaultDeviceType_c3.cpp +++ b/packages/kokkos/core/unit_test/default/TestDefaultDeviceType_c3.cpp @@ -46,8 +46,9 @@ #include <Kokkos_Core.hpp> +// FIXME_SYCL requires TeamPolicy +#ifndef KOKKOS_ENABLE_SYCL #if !defined(KOKKOS_ENABLE_CUDA) || defined(__CUDACC__) -#if !defined(KOKKOS_ENABLE_ROCM) #include <default/TestDefaultDeviceType_Category.hpp> #include <TestReduceCombinatorical.hpp> diff --git a/packages/kokkos/core/unit_test/headers_self_contained/CMakeLists.txt b/packages/kokkos/core/unit_test/headers_self_contained/CMakeLists.txt new file mode 100644 index 000000000..485dd4d11 --- /dev/null +++ b/packages/kokkos/core/unit_test/headers_self_contained/CMakeLists.txt @@ -0,0 +1,25 @@ +# Create tests that contain each header separately. We do not run these tests +# but we just try to compile them. +if(NOT KOKKOS_HAS_TRILINOS) + # Globbing all the header filenames to test for self-containment and presence of header guards + KOKKOS_OPTION(DEFAULT_DEVICE_MEMORY_SPACE "" STRING "Override default device memory space") + KOKKOS_OPTION(DEFAULT_HOST_MEMORY_SPACE "" STRING "Override default host memory space") + KOKKOS_OPTION(DEFAULT_DEVICE_EXECUTION_SPACE "" STRING "Override default device execution space") + KOKKOS_OPTION(DEFAULT_HOST_PARALLEL_EXECUTION_SPACE "" STRING "Override default host parallel execution space") + # Globbing all the header filenames to test for self-containment and presence of header guards + SET(BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../../") + file(GLOB KOKKOS_CORE_HEADERS RELATIVE ${BASE_DIR}/core/src + ${BASE_DIR}/core/src/*.hpp ${BASE_DIR}/core/src/*.h) + file(GLOB KOKKOS_CONTAINERS_HEADERS RELATIVE ${BASE_DIR}/containers/src + ${BASE_DIR}/containers/src/*.hpp) + file(GLOB KOKKOS_ALGORITHMS_HEADERS RELATIVE ${BASE_DIR}/algorithms/src + ${BASE_DIR}/algorithms/src/*.hpp) + + foreach (_header ${KOKKOS_CORE_HEADERS} ${KOKKOS_CONTAINERS_HEADERS} ${KOKKOS_ALGORITHMS_HEADERS}) + string(REGEX REPLACE "[\./]" "_" header_test_name ${_header}) + set(header_test_name Kokkos_HeaderSelfContained_${header_test_name}) + add_executable(${header_test_name} tstHeader.cpp) + target_link_libraries(${header_test_name} PRIVATE Kokkos::kokkos) + target_compile_definitions(${header_test_name} PRIVATE KOKKOS_HEADER_TEST_NAME=${_header}) + endforeach() +endif() diff --git a/packages/kokkos/core/unit_test/headers_self_contained/tstHeader.cpp b/packages/kokkos/core/unit_test/headers_self_contained/tstHeader.cpp new file mode 100644 index 000000000..d488f0fa3 --- /dev/null +++ b/packages/kokkos/core/unit_test/headers_self_contained/tstHeader.cpp @@ -0,0 +1,15 @@ +#define KOKKOS_HEADER_TEST_STRINGIZE_IMPL(x) #x +#define KOKKOS_HEADER_TEST_STRINGIZE(x) KOKKOS_HEADER_TEST_STRINGIZE_IMPL(x) + +#define KOKKOS_HEADER_TO_TEST \ + KOKKOS_HEADER_TEST_STRINGIZE(KOKKOS_HEADER_TEST_NAME) + +// include header twice to see if the include guards are set correctly +#include KOKKOS_HEADER_TO_TEST +#include KOKKOS_HEADER_TO_TEST + +#if !defined(KOKKOS_MACROS_HPP) +#error "This header does not include Kokkos_Macros.hpp" +#endif + +int main() { return 0; } diff --git a/packages/kokkos/core/unit_test/hip/TestHIPHostPinned_SharedAlloc.cpp b/packages/kokkos/core/unit_test/hip/TestHIPHostPinned_SharedAlloc.cpp deleted file mode 100644 index 7b2db4f8b..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIPHostPinned_SharedAlloc.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIPHostPinned_Category.hpp> -#include <TestSharedAlloc.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, impl_shared_alloc) { - test_shared_alloc<TEST_EXECSPACE, Kokkos::DefaultHostExecutionSpace>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/hip/TestHIPHostPinned_ViewCopy.cpp b/packages/kokkos/core/unit_test/hip/TestHIPHostPinned_ViewCopy_a.cpp similarity index 98% rename from packages/kokkos/core/unit_test/hip/TestHIPHostPinned_ViewCopy.cpp rename to packages/kokkos/core/unit_test/hip/TestHIPHostPinned_ViewCopy_a.cpp index 59674ad22..b630ad701 100644 --- a/packages/kokkos/core/unit_test/hip/TestHIPHostPinned_ViewCopy.cpp +++ b/packages/kokkos/core/unit_test/hip/TestHIPHostPinned_ViewCopy_a.cpp @@ -43,4 +43,4 @@ */ #include <hip/TestHIPHostPinned_Category.hpp> -#include <TestViewCopy.hpp> +#include <TestViewCopy_a.hpp> diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_Atomics.cpp b/packages/kokkos/core/unit_test/hip/TestHIPHostPinned_ViewCopy_b.cpp similarity index 96% rename from packages/kokkos/core/unit_test/cuda/TestCuda_Atomics.cpp rename to packages/kokkos/core/unit_test/hip/TestHIPHostPinned_ViewCopy_b.cpp index e68222ca3..1a88e7ebc 100644 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_Atomics.cpp +++ b/packages/kokkos/core/unit_test/hip/TestHIPHostPinned_ViewCopy_b.cpp @@ -42,5 +42,5 @@ //@HEADER */ -#include <cuda/TestCuda_Category.hpp> -#include <TestAtomic.hpp> +#include <hip/TestHIPHostPinned_Category.hpp> +#include <TestViewCopy_b.hpp> diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_complexdouble.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_complexdouble.cpp deleted file mode 100644 index 644a825bf..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_complexdouble.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIP_Category.hpp> -#include <TestAtomicOperations_complexdouble.hpp> diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_complexfloat.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_complexfloat.cpp deleted file mode 100644 index f8aaed88c..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_complexfloat.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIP_Category.hpp> -#include <TestAtomicOperations_complexfloat.hpp> diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_double.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_double.cpp deleted file mode 100644 index 9adeaa76b..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_double.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIP_Category.hpp> -#include <TestAtomicOperations_double.hpp> diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_float.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_float.cpp deleted file mode 100644 index ba7c6d9bc..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_float.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIP_Category.hpp> -#include <TestAtomicOperations_float.hpp> diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_int.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_int.cpp deleted file mode 100644 index 840f2dbd0..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_int.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIP_Category.hpp> -#include <TestAtomicOperations_int.hpp> diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_longint.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_longint.cpp deleted file mode 100644 index be3050766..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_longint.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIP_Category.hpp> -#include <TestAtomicOperations_longint.hpp> diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_longlongint.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_longlongint.cpp deleted file mode 100644 index 85f54dee1..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_longlongint.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIP_Category.hpp> -#include <TestAtomicOperations_longlongint.hpp> diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_unsignedint.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_unsignedint.cpp deleted file mode 100644 index d738b608c..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_unsignedint.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIP_Category.hpp> -#include <TestAtomicOperations_unsignedint.hpp> diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_unsignedlongint.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_unsignedlongint.cpp deleted file mode 100644 index ab25f5d14..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_unsignedlongint.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIP_Category.hpp> -#include <TestAtomicOperations_unsignedlongint.hpp> diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_AtomicViews.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_AtomicViews.cpp deleted file mode 100644 index 0dae0cb9e..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_AtomicViews.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIP_Category.hpp> -#include <TestAtomicViews.hpp> diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_Atomics.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_Atomics.cpp deleted file mode 100644 index dda138823..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_Atomics.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIP_Category.hpp> -#include <TestAtomic.hpp> diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_Complex.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_Complex.cpp deleted file mode 100644 index f628fb834..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_Complex.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIP_Category.hpp> -#include <TestComplex.hpp> diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_Concepts.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_Concepts.cpp deleted file mode 100644 index bfdfda15d..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_Concepts.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIP_Category.hpp> -#include <TestConcepts.hpp> diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_Crs.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_Crs.cpp deleted file mode 100644 index b01b78774..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_Crs.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIP_Category.hpp> -#include <TestCrs.hpp> diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_DeepCopyAlignment.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_DeepCopyAlignment.cpp deleted file mode 100644 index 43f9d4b5c..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_DeepCopyAlignment.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIP_Category.hpp> -#include <TestDeepCopy.hpp> diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_FunctorAnalysis.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_FunctorAnalysis.cpp deleted file mode 100644 index f3ae5f47c..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_FunctorAnalysis.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIP_Category.hpp> -#include <TestFunctorAnalysis.hpp> diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_Init.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_Init.cpp deleted file mode 100644 index 16a73293b..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_Init.cpp +++ /dev/null @@ -1,49 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIP_Category.hpp> -#include <TestInit.hpp> -#include <TestCompilerMacros.hpp> -#include <TestPolicyConstruction.hpp> diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_InterOp_Init.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_InterOp_Init.cpp index 0dc279fc7..9a58c99d2 100644 --- a/packages/kokkos/core/unit_test/hip/TestHIP_InterOp_Init.cpp +++ b/packages/kokkos/core/unit_test/hip/TestHIP_InterOp_Init.cpp @@ -48,7 +48,7 @@ namespace Test { __global__ void offset(int* p) { - int idx = hipBlockIdx_x * hipBlockDim_x + hipThreadIdx_x; + int idx = blockIdx.x * blockDim.x + threadIdx.x; if (idx < 100) { p[idx] += idx; } @@ -58,7 +58,7 @@ __global__ void offset(int* p) { // HIP. TEST(hip, raw_hip_interop) { int* p; - hipMalloc(&p, sizeof(int) * 100); + HIP_SAFE_CALL(hipMalloc(&p, sizeof(int) * 100)); Kokkos::InitArguments arguments{-1, -1, -1, false}; Kokkos::initialize(arguments); @@ -67,11 +67,11 @@ TEST(hip, raw_hip_interop) { Kokkos::finalize(); - hipLaunchKernelGGL(offset, dim3(100), dim3(100), 0, 0, p); + offset<<<dim3(100), dim3(100), 0, nullptr>>>(p); HIP_SAFE_CALL(hipDeviceSynchronize()); int* h_p = new int[100]; - hipMemcpy(h_p, p, sizeof(int) * 100, hipMemcpyDefault); + HIP_SAFE_CALL(hipMemcpy(h_p, p, sizeof(int) * 100, hipMemcpyDefault)); HIP_SAFE_CALL(hipDeviceSynchronize()); int64_t sum = 0; int64_t sum_expect = 0; diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_InterOp_Streams.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_InterOp_Streams.cpp new file mode 100644 index 000000000..8363765e3 --- /dev/null +++ b/packages/kokkos/core/unit_test/hip/TestHIP_InterOp_Streams.cpp @@ -0,0 +1,115 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include <hip/TestHIP_Category.hpp> +#include <Test_InterOp_Streams.hpp> + +namespace Test { +// Test Interoperability with HIP Streams +// The difference with the CUDA tests are: raw HIP vs raw CUDA and no launch +// bound in HIP due to an error when computing the block size. +TEST(hip, raw_hip_streams) { + hipStream_t stream; + HIP_SAFE_CALL(hipStreamCreate(&stream)); + Kokkos::InitArguments arguments{-1, -1, -1, false}; + Kokkos::initialize(arguments); + int* p; + HIP_SAFE_CALL(hipMalloc(&p, sizeof(int) * 100)); + using MemorySpace = typename TEST_EXECSPACE::memory_space; + + { + TEST_EXECSPACE space0(stream); + Kokkos::View<int*, TEST_EXECSPACE> v(p, 100); + Kokkos::deep_copy(space0, v, 5); + int sum; + + Kokkos::parallel_for("Test::hip::raw_hip_stream::Range", + Kokkos::RangePolicy<TEST_EXECSPACE>(space0, 0, 100), + FunctorRange<MemorySpace>(v)); + Kokkos::parallel_reduce("Test::hip::raw_hip_stream::RangeReduce", + Kokkos::RangePolicy<TEST_EXECSPACE>(space0, 0, 100), + FunctorRangeReduce<MemorySpace>(v), sum); + space0.fence(); + ASSERT_EQ(600, sum); + + Kokkos::parallel_for("Test::hip::raw_hip_stream::MDRange", + Kokkos::MDRangePolicy<TEST_EXECSPACE, Kokkos::Rank<2>>( + space0, {0, 0}, {10, 10}), + FunctorMDRange<MemorySpace>(v)); + Kokkos::parallel_reduce( + "Test::hip::raw_hip_stream::MDRangeReduce", + Kokkos::MDRangePolicy<TEST_EXECSPACE, Kokkos::Rank<2>>(space0, {0, 0}, + {10, 10}), + FunctorMDRangeReduce<MemorySpace>(v), sum); + space0.fence(); + ASSERT_EQ(700, sum); + + Kokkos::parallel_for("Test::hip::raw_hip_stream::Team", + Kokkos::TeamPolicy<TEST_EXECSPACE>(space0, 10, 10), + FunctorTeam<MemorySpace, TEST_EXECSPACE>(v)); + Kokkos::parallel_reduce("Test::hip::raw_hip_stream::Team", + Kokkos::TeamPolicy<TEST_EXECSPACE>(space0, 10, 10), + FunctorTeamReduce<MemorySpace, TEST_EXECSPACE>(v), + sum); + space0.fence(); + ASSERT_EQ(800, sum); + } + Kokkos::finalize(); + offset_streams<<<100, 64, 0, stream>>>(p); + HIP_SAFE_CALL(hipDeviceSynchronize()); + HIP_SAFE_CALL(hipStreamDestroy(stream)); + + int h_p[100]; + HIP_SAFE_CALL(hipMemcpy(h_p, p, sizeof(int) * 100, hipMemcpyDefault)); + HIP_SAFE_CALL(hipDeviceSynchronize()); + int64_t sum = 0; + int64_t sum_expect = 0; + for (int i = 0; i < 100; i++) { + sum += h_p[i]; + sum_expect += 8 + i; + } + + ASSERT_EQ(sum, sum_expect); +} +} // namespace Test diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_LocalDeepCopy.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_LocalDeepCopy.cpp deleted file mode 100644 index 4fc7ca680..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_LocalDeepCopy.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIP_Category.hpp> -#include <TestLocalDeepCopy.hpp> diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_MDRange_a.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_MDRange_a.cpp deleted file mode 100644 index 6bf23f1b2..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_MDRange_a.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIP_Category.hpp> -#include <TestMDRange_a.hpp> diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_MDRange_b.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_MDRange_b.cpp deleted file mode 100644 index d820fa02c..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_MDRange_b.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIP_Category.hpp> -#include <TestMDRange_b.hpp> diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_MDRange_c.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_MDRange_c.cpp deleted file mode 100644 index 5c70cf6c6..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_MDRange_c.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIP_Category.hpp> -#include <TestMDRange_c.hpp> diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_MDRange_d.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_MDRange_d.cpp deleted file mode 100644 index a18fc24d1..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_MDRange_d.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIP_Category.hpp> -#include <TestMDRange_d.hpp> diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_MDRange_e.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_MDRange_e.cpp deleted file mode 100644 index fe011213d..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_MDRange_e.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIP_Category.hpp> -#include <TestMDRange_e.hpp> diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_RangePolicy.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_RangePolicy.cpp deleted file mode 100644 index 5c8741820..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_RangePolicy.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIP_Category.hpp> -#include <TestRange.hpp> diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_RangePolicyRequire.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_RangePolicyRequire.cpp deleted file mode 100644 index 6cf9a36f9..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_RangePolicyRequire.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIP_Category.hpp> -#include <TestRangeRequire.hpp> diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_Reducers_a.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_Reducers_a.cpp deleted file mode 100644 index ec9331d50..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_Reducers_a.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIP_Category.hpp> -#include <TestReducers_a.hpp> diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_Reducers_b.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_Reducers_b.cpp deleted file mode 100644 index c51c76ae2..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_Reducers_b.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIP_Category.hpp> -#include <TestReducers_b.hpp> diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_Reducers_c.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_Reducers_c.cpp deleted file mode 100644 index 42c21390a..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_Reducers_c.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIP_Category.hpp> -#include <TestReducers_c.hpp> diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_Reducers_d.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_Reducers_d.cpp deleted file mode 100644 index 6014405c3..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_Reducers_d.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIP_Category.hpp> -#include <TestReducers_d.hpp> diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_Reductions.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_Reductions.cpp deleted file mode 100644 index 8bf8cc63a..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_Reductions.cpp +++ /dev/null @@ -1,47 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIP_Category.hpp> -#include <TestReduce.hpp> -#include <TestCXX11Deduction.hpp> diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_Scan.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_Scan.cpp deleted file mode 100644 index 8dc06c706..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_Scan.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIP_Category.hpp> -#include <TestScan.hpp> diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_ScanUnit.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_ScanUnit.cpp index ea3859688..73e9dec10 100644 --- a/packages/kokkos/core/unit_test/hip/TestHIP_ScanUnit.cpp +++ b/packages/kokkos/core/unit_test/hip/TestHIP_ScanUnit.cpp @@ -52,9 +52,10 @@ struct DummyFunctor { }; template <int N> -__global__ void start_intra_block_scan() { +__global__ void start_intra_block_scan() + __attribute__((amdgpu_flat_work_group_size(1, 1024))) { __shared__ DummyFunctor::value_type values[N]; - const int i = hipThreadIdx_y; + const int i = threadIdx.y; values[i] = i + 1; __syncthreads(); @@ -74,7 +75,7 @@ template <int N> void test_intra_block_scan() { dim3 grid(1, 1, 1); dim3 block(1, N, 1); - hipLaunchKernelGGL(start_intra_block_scan<N>, grid, block, 0, 0); + start_intra_block_scan<N><<<grid, block, 0, nullptr>>>(); } TEST(TEST_CATEGORY, scan_unit) { @@ -90,8 +91,7 @@ TEST(TEST_CATEGORY, scan_unit) { test_intra_block_scan<64>(); test_intra_block_scan<128>(); test_intra_block_scan<256>(); - // FIXME_HIP block sizes larger than 256 give wrong results. - // test_intra_block_scan<512>(); - // test_intra_block_scan<1024>(); + test_intra_block_scan<512>(); + test_intra_block_scan<1024>(); } } diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_SharedAlloc.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_SharedAlloc.cpp deleted file mode 100644 index c66e01fe0..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_SharedAlloc.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIP_Category.hpp> -#include <TestSharedAlloc.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, impl_shared_alloc) { - test_shared_alloc<Kokkos::Experimental::HIPSpace, - Kokkos::DefaultHostExecutionSpace>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_SubView_c03.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_SubView_c03.cpp deleted file mode 100644 index c35f786d3..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_SubView_c03.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIPHostPinned_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_1d_assign_randomaccess) { - TestViewSubview::test_1d_assign< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_SubView_c05.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_SubView_c05.cpp deleted file mode 100644 index 7b3710f42..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_SubView_c05.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIPHostPinned_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_2d_from_3d_atomic) { - TestViewSubview::test_2d_subview_3d<TEST_EXECSPACE, - Kokkos::MemoryTraits<Kokkos::Atomic> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_SubView_c08.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_SubView_c08.cpp deleted file mode 100644 index 30bef76d7..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_SubView_c08.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIPHostPinned_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_3d_from_5d_left_atomic) { - TestViewSubview::test_3d_subview_5d_left< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::Atomic> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_SubView_c10.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_SubView_c10.cpp deleted file mode 100644 index dae65a4d3..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_SubView_c10.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIPHostPinned_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_3d_from_5d_right) { - TestViewSubview::test_3d_subview_5d_right<TEST_EXECSPACE>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_SubView_c11.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_SubView_c11.cpp deleted file mode 100644 index 570658bf5..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_SubView_c11.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIPHostPinned_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_3d_from_5d_right_atomic) { - TestViewSubview::test_3d_subview_5d_right< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::Atomic> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_SubView_c13.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_SubView_c13.cpp deleted file mode 100644 index 52a065f2b..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_SubView_c13.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIPHostPinned_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_test_unmanaged_subview_reset) { - TestViewSubview::test_unmanaged_subview_reset<TEST_EXECSPACE>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_TeamScratchStreams.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_TeamScratchStreams.cpp new file mode 100644 index 000000000..ac729dbc0 --- /dev/null +++ b/packages/kokkos/core/unit_test/hip/TestHIP_TeamScratchStreams.cpp @@ -0,0 +1,152 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include <hip/TestHIP_Category.hpp> +#include <Kokkos_Core.hpp> + +namespace Test { + +namespace Impl { + +struct HIPStreamScratchTestFunctor { + using team_t = Kokkos::TeamPolicy<Kokkos::Experimental::HIP>::member_type; + using scratch_t = + Kokkos::View<int64_t*, Kokkos::Experimental::HIP::scratch_memory_space>; + + Kokkos::View<int64_t, Kokkos::Experimental::HIPSpace, + Kokkos::MemoryTraits<Kokkos::Atomic>> + counter; + int N, M; + HIPStreamScratchTestFunctor( + Kokkos::View<int64_t, Kokkos::Experimental::HIPSpace> counter_, int N_, + int M_) + : counter(counter_), N(N_), M(M_) {} + + KOKKOS_FUNCTION + void operator()(const team_t& team) const { + scratch_t scr(team.team_scratch(1), M); + Kokkos::parallel_for(Kokkos::TeamThreadRange(team, 0, M), + [&](int i) { scr[i] = 0; }); + team.team_barrier(); + for (int i = 0; i < N; i++) { + Kokkos::parallel_for(Kokkos::TeamThreadRange(team, 0, M), + [&](int j) { scr[j] += 1; }); + } + team.team_barrier(); + Kokkos::parallel_for(Kokkos::TeamThreadRange(team, 0, M), [&](int i) { + if (scr[i] != N) counter()++; + }); + } +}; + +void hip_stream_scratch_test_one( + int N, int T, int M_base, + Kokkos::View<int64_t, Kokkos::Experimental::HIPSpace> counter, + Kokkos::Experimental::HIP hip, int tid) { + int M = M_base + tid * 5; + Kokkos::TeamPolicy<Kokkos::Experimental::HIP> p(hip, T, 64); + using scratch_t = + Kokkos::View<int64_t*, Kokkos::Experimental::HIP::scratch_memory_space>; + + int bytes = scratch_t::shmem_size(M); + + for (int r = 0; r < 15; r++) { + Kokkos::parallel_for("Run", p.set_scratch_size(1, Kokkos::PerTeam(bytes)), + HIPStreamScratchTestFunctor(counter, N, M)); + } +} + +void hip_stream_scratch_test( + int N, int T, int M_base, + Kokkos::View<int64_t, Kokkos::Experimental::HIPSpace> counter) { + int K = 4; + hipStream_t stream[4]; + Kokkos::Experimental::HIP hip[4]; + for (int i = 0; i < K; i++) { + HIP_SAFE_CALL(hipStreamCreate(&stream[i])); + hip[i] = Kokkos::Experimental::HIP(stream[i]); + } +// Test that growing scratch size in subsequent calls doesn't crash things +#if defined(KOKKOS_ENABLE_OPENMP) +#pragma omp parallel + { + int tid = omp_get_thread_num(); + // Limit how many threads submit + if (tid < 4) { + hip_stream_scratch_test_one(N, T, M_base, counter, hip[tid], tid); + } + } +#else + for (int tid = 0; tid < K; tid++) { + hip_stream_scratch_test_one(N, T, M_base, counter, hip[tid], tid); + } +#endif + // Test that if everything is large enough, multiple launches with different + // scratch sizes don't step on each other + for (int tid = K - 1; tid >= 0; tid--) { + hip_stream_scratch_test_one(N, T, M_base, counter, hip[tid], tid); + } + + Kokkos::fence(); + for (int i = 0; i < K; i++) { + hip[i] = Kokkos::Experimental::HIP(); + HIP_SAFE_CALL(hipStreamDestroy(stream[i])); + } +} +} // namespace Impl + +TEST(hip, team_scratch_1_streams) { + int N = 1000000; + int T = 10; + int M_base = 150; + + Kokkos::View<int64_t, Kokkos::Experimental::HIPSpace> counter("C"); + + Impl::hip_stream_scratch_test(N, T, M_base, counter); + + int64_t result; + Kokkos::deep_copy(result, counter); + ASSERT_EQ(0, result); +} +} // namespace Test diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_ViewAPI_c.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_ViewAPI_c.cpp deleted file mode 100644 index 4dc72a078..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_ViewAPI_c.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIP_Category.hpp> -#include <TestViewAPI_c.hpp> diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_ViewAPI_d.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_ViewAPI_d.cpp deleted file mode 100644 index c96d39fee..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_ViewAPI_d.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIP_Category.hpp> -#include <TestViewAPI_d.hpp> diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_ViewMapping_a.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_ViewMapping_a.cpp deleted file mode 100644 index 146f06fc6..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_ViewMapping_a.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIP_Category.hpp> -#include <TestViewMapping_a.hpp> diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_ViewMapping_b.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_ViewMapping_b.cpp deleted file mode 100644 index 00f931ce9..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_ViewMapping_b.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIP_Category.hpp> -#include <TestViewMapping_b.hpp> diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_ViewMapping_subview.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_ViewMapping_subview.cpp deleted file mode 100644 index f0e76e040..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_ViewMapping_subview.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIP_Category.hpp> -#include <TestViewMapping_subview.hpp> diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_ViewOfClass.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_ViewOfClass.cpp deleted file mode 100644 index c673ffb35..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_ViewOfClass.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIP_Category.hpp> -#include <TestViewOfClass.hpp> diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_ViewResize.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_ViewResize.cpp deleted file mode 100644 index 35e312591..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_ViewResize.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIP_Category.hpp> -#include <TestViewResize.hpp> diff --git a/packages/kokkos/core/unit_test/hip/TestHIP_View_64bit.cpp b/packages/kokkos/core/unit_test/hip/TestHIP_View_64bit.cpp deleted file mode 100644 index fed256043..000000000 --- a/packages/kokkos/core/unit_test/hip/TestHIP_View_64bit.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hip/TestHIP_Category.hpp> -#include <TestView_64bit.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_AtomicOperations_complexdouble.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_AtomicOperations_complexdouble.cpp deleted file mode 100644 index 51007d7b6..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_AtomicOperations_complexdouble.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestAtomicOperations_complexdouble.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_AtomicOperations_complexfloat.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_AtomicOperations_complexfloat.cpp deleted file mode 100644 index 3bc357312..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_AtomicOperations_complexfloat.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestAtomicOperations_complexfloat.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_AtomicOperations_double.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_AtomicOperations_double.cpp deleted file mode 100644 index f0eb44759..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_AtomicOperations_double.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestAtomicOperations_double.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_AtomicOperations_float.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_AtomicOperations_float.cpp deleted file mode 100644 index 38551eabb..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_AtomicOperations_float.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestAtomicOperations_float.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_AtomicOperations_int.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_AtomicOperations_int.cpp deleted file mode 100644 index 3005c3691..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_AtomicOperations_int.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestAtomicOperations_int.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_AtomicOperations_longint.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_AtomicOperations_longint.cpp deleted file mode 100644 index 4bbc1e071..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_AtomicOperations_longint.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestAtomicOperations_longint.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_AtomicOperations_longlongint.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_AtomicOperations_longlongint.cpp deleted file mode 100644 index 9abc860c7..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_AtomicOperations_longlongint.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestAtomicOperations_longlongint.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_AtomicOperations_unsignedint.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_AtomicOperations_unsignedint.cpp deleted file mode 100644 index 6195d493e..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_AtomicOperations_unsignedint.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestAtomicOperations_unsignedint.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_AtomicOperations_unsignedlongint.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_AtomicOperations_unsignedlongint.cpp deleted file mode 100644 index a488983ec..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_AtomicOperations_unsignedlongint.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestAtomicOperations_unsignedlongint.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_AtomicViews.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_AtomicViews.cpp deleted file mode 100644 index 723f513d8..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_AtomicViews.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestAtomicViews.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_Atomics.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_Atomics.cpp deleted file mode 100644 index 71729e961..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_Atomics.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestAtomic.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_Complex.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_Complex.cpp deleted file mode 100644 index 91de03dcc..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_Complex.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestComplex.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_Concepts.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_Concepts.cpp deleted file mode 100644 index 197a99a1e..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_Concepts.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestConcepts.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_Crs.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_Crs.cpp deleted file mode 100644 index d82f449c8..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_Crs.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestCrs.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_DeepCopyAlignment.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_DeepCopyAlignment.cpp deleted file mode 100644 index 29e04eda1..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_DeepCopyAlignment.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestDeepCopy.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_FunctorAnalysis.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_FunctorAnalysis.cpp deleted file mode 100644 index fa66cb49f..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_FunctorAnalysis.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestFunctorAnalysis.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_IndependentInstances.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_IndependentInstances.cpp new file mode 100644 index 000000000..a235e86ba --- /dev/null +++ b/packages/kokkos/core/unit_test/hpx/TestHPX_IndependentInstances.cpp @@ -0,0 +1,188 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include <Kokkos_Core.hpp> +#include <hpx/TestHPX_Category.hpp> + +#include <hpx/config.hpp> +#include <hpx/include/lcos.hpp> + +#ifdef KOKKOS_ENABLE_HPX_ASYNC_DISPATCH +#ifndef HPX_COMPUTE_DEVICE_CODE + +namespace Test { + +namespace { +struct FunctorInitConstant { + Kokkos::View<int *, Kokkos::Experimental::HPX> a; + int c; + FunctorInitConstant(Kokkos::View<int *, Kokkos::Experimental::HPX> a_, int c_) + : a(a_), c(c_) {} + + KOKKOS_INLINE_FUNCTION + void operator()(const int i) const { a(i) = c; } +}; + +struct FunctorAdd { + Kokkos::View<int *, Kokkos::Experimental::HPX> a; + Kokkos::View<int *, Kokkos::Experimental::HPX> b; + int c; + FunctorAdd(Kokkos::View<int *, Kokkos::Experimental::HPX> a_, + Kokkos::View<int *, Kokkos::Experimental::HPX> b_, int c_) + : a(a_), b(b_), c(c_) {} + + KOKKOS_INLINE_FUNCTION + void operator()(const int i) const { b(i) += a(i) + c; } +}; + +struct FunctorAddIndex { + Kokkos::View<int *, Kokkos::Experimental::HPX> a; + Kokkos::View<int *, Kokkos::Experimental::HPX> b; + FunctorAddIndex(Kokkos::View<int *, Kokkos::Experimental::HPX> a_, + Kokkos::View<int *, Kokkos::Experimental::HPX> b_) + : a(a_), b(b_) {} + + KOKKOS_INLINE_FUNCTION + void operator()(const int i) const { b(i) += a(i) + i; } +}; + +struct FunctorPointwiseSum { + Kokkos::View<int *, Kokkos::Experimental::HPX> a; + Kokkos::View<int *, Kokkos::Experimental::HPX> b; + Kokkos::View<int *, Kokkos::Experimental::HPX> c; + FunctorPointwiseSum(Kokkos::View<int *, Kokkos::Experimental::HPX> a_, + Kokkos::View<int *, Kokkos::Experimental::HPX> b_, + Kokkos::View<int *, Kokkos::Experimental::HPX> c_) + : a(a_), b(b_), c(c_) {} + + KOKKOS_INLINE_FUNCTION + void operator()(const int i) const { c(i) = a(i) + b(i); } +}; + +struct FunctorReduce { + Kokkos::View<int *, Kokkos::Experimental::HPX> a; + FunctorReduce(Kokkos::View<int *, Kokkos::Experimental::HPX> a_) : a(a_) {} + + KOKKOS_INLINE_FUNCTION + void operator()(const int i, int &lsum) const { lsum += a(i); } +}; +} // namespace + +TEST(hpx, independent_instances) { + Kokkos::InitArguments arguments{-1, -1, -1, false}; + Kokkos::initialize(arguments); + + const int n = 100; + const int c = 1; + const int d = 3; + + { + Kokkos::View<int *, Kokkos::Experimental::HPX> v1("v1", n); + Kokkos::View<int *, Kokkos::Experimental::HPX> v2("v2", n); + Kokkos::View<int *, Kokkos::Experimental::HPX> v3("v3", n); + Kokkos::View<int *, Kokkos::Experimental::HPX> v4("v4", n); + Kokkos::View<int, Kokkos::Experimental::HPX> sum_v("sum_v"); + + Kokkos::Experimental::HPX hpx1( + Kokkos::Experimental::HPX::instance_mode::independent); + Kokkos::parallel_for( + "Test::hpx::independent_instances::init", + Kokkos::Experimental::require( + Kokkos::RangePolicy<Kokkos::Experimental::HPX>(hpx1, 0, n), + Kokkos::Experimental::WorkItemProperty::HintLightWeight), + FunctorInitConstant(v1, c)); + + Kokkos::Experimental::HPX hpx2(hpx1.impl_get_future()); + Kokkos::parallel_for( + "Test::hpx::independent_instances::add", + Kokkos::Experimental::require( + Kokkos::RangePolicy<Kokkos::Experimental::HPX>(hpx2, 0, n), + Kokkos::Experimental::WorkItemProperty::HintLightWeight), + FunctorAdd(v1, v2, d)); + + Kokkos::Experimental::HPX hpx3(hpx1.impl_get_future()); + Kokkos::parallel_for( + "Test::hpx::independent_instances::add_index", + Kokkos::Experimental::require( + Kokkos::RangePolicy<Kokkos::Experimental::HPX>(hpx3, 0, n), + Kokkos::Experimental::WorkItemProperty::HintLightWeight), + FunctorAddIndex(v1, v3)); + + // NOTE: This monstrosity is used to collapse a future<tuple<future<void>, + // future<void>>> (return type of when_all) into a future<void> which is + // ready whenever the un-collapsed future would've been ready. HPX does not + // currently have the functionality to collapse this automatically. + Kokkos::Experimental::HPX hpx4(hpx::util::get<0>(hpx::split_future( + hpx::when_all(hpx2.impl_get_future(), hpx3.impl_get_future())))); + Kokkos::parallel_for( + "Test::hpx::independent_instances::pointwise_sum", + Kokkos::Experimental::require( + Kokkos::RangePolicy<Kokkos::Experimental::HPX>(hpx4, 0, n), + Kokkos::Experimental::WorkItemProperty::HintLightWeight), + FunctorPointwiseSum(v2, v3, v4)); + + Kokkos::parallel_reduce( + "Test::hpx::independent_instances::reduce", + Kokkos::Experimental::require( + Kokkos::RangePolicy<Kokkos::Experimental::HPX>(hpx4, 0, n), + Kokkos::Experimental::WorkItemProperty::HintLightWeight), + FunctorReduce(v4), Kokkos::Sum<int>(sum_v)); + + hpx4.fence(); + + ASSERT_EQ(true, hpx1.impl_get_future().is_ready()); + ASSERT_EQ(true, hpx2.impl_get_future().is_ready()); + ASSERT_EQ(true, hpx3.impl_get_future().is_ready()); + ASSERT_EQ(true, hpx4.impl_get_future().is_ready()); + + const int expected_sum = n * (2 * c + d) + (n * (n - 1) / 2); + ASSERT_EQ(expected_sum, sum_v()); + } + + Kokkos::finalize(); +} +} // namespace Test + +#endif +#endif diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c09.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_IndependentInstancesDelayedExecution.cpp similarity index 68% rename from packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c09.cpp rename to packages/kokkos/core/unit_test/hpx/TestHPX_IndependentInstancesDelayedExecution.cpp index a9c88d0e7..4f5569fc6 100644 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c09.cpp +++ b/packages/kokkos/core/unit_test/hpx/TestHPX_IndependentInstancesDelayedExecution.cpp @@ -42,14 +42,43 @@ //@HEADER */ +#include <Kokkos_Core.hpp> #include <hpx/TestHPX_Category.hpp> -#include <TestViewSubview.hpp> + +#include <hpx/include/lcos.hpp> + +#ifdef KOKKOS_ENABLE_HPX_ASYNC_DISPATCH namespace Test { -TEST(TEST_CATEGORY, view_subview_3d_from_5d_left_randomaccess) { - TestViewSubview::test_3d_subview_5d_left< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} +TEST(hpx, delayed_execution) { + Kokkos::InitArguments arguments{-1, -1, -1, false}; + Kokkos::initialize(arguments); + + { + Kokkos::View<bool, Kokkos::Experimental::HPX> ran("ran"); + hpx::lcos::local::promise<void> p; + hpx::shared_future<void> f = p.get_future(); + + Kokkos::Experimental::HPX hpx(f); + Kokkos::parallel_for( + "Test::hpx::independent_instances::delay_execution", + Kokkos::Experimental::require( + Kokkos::RangePolicy<Kokkos::Experimental::HPX>(hpx, 0, 1), + Kokkos::Experimental::WorkItemProperty::HintLightWeight), + KOKKOS_LAMBDA(int) { ran() = true; }); + ASSERT_EQ(false, ran()); + ASSERT_EQ(false, hpx.impl_get_future().is_ready()); + + p.set_value(); + + hpx.fence(); + ASSERT_EQ(true, hpx.impl_get_future().is_ready()); + } + + Kokkos::finalize(); +} } // namespace Test + +#endif diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_a.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_IndependentInstancesInstanceIds.cpp similarity index 51% rename from packages/kokkos/core/unit_test/hpx/TestHPX_SubView_a.cpp rename to packages/kokkos/core/unit_test/hpx/TestHPX_IndependentInstancesInstanceIds.cpp index 9f697c16e..26f419db8 100644 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_a.cpp +++ b/packages/kokkos/core/unit_test/hpx/TestHPX_IndependentInstancesInstanceIds.cpp @@ -42,53 +42,58 @@ //@HEADER */ +#include <Kokkos_Core.hpp> #include <hpx/TestHPX_Category.hpp> -#include <TestViewSubview.hpp> -namespace Test { - -TEST(TEST_CATEGORY, view_subview_auto_1d_left) { - TestViewSubview::test_auto_1d<Kokkos::LayoutLeft, TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_auto_1d_right) { - TestViewSubview::test_auto_1d<Kokkos::LayoutRight, TEST_EXECSPACE>(); -} +#ifdef KOKKOS_ENABLE_HPX_ASYNC_DISPATCH -TEST(TEST_CATEGORY, view_subview_auto_1d_stride) { - TestViewSubview::test_auto_1d<Kokkos::LayoutStride, TEST_EXECSPACE>(); -} +namespace Test { -TEST(TEST_CATEGORY, view_subview_assign_strided) { - TestViewSubview::test_1d_strided_assignment<TEST_EXECSPACE>(); -} +TEST(hpx, instance_ids) { + Kokkos::InitArguments arguments{-1, -1, -1, false}; + Kokkos::initialize(arguments); -TEST(TEST_CATEGORY, view_subview_left_0) { - TestViewSubview::test_left_0<TEST_EXECSPACE>(); -} + { + Kokkos::Experimental::HPX hpx_global1; + Kokkos::Experimental::HPX hpx_global2 = hpx_global1; + Kokkos::Experimental::HPX hpx_global3{hpx_global1}; + Kokkos::Experimental::HPX hpx_global4( + Kokkos::Experimental::HPX::instance_mode::global); -TEST(TEST_CATEGORY, view_subview_left_1) { - TestViewSubview::test_left_1<TEST_EXECSPACE>(); -} + ASSERT_EQ(0, hpx_global1.impl_instance_id()); + ASSERT_EQ(0, hpx_global2.impl_instance_id()); + ASSERT_EQ(0, hpx_global3.impl_instance_id()); + ASSERT_EQ(0, hpx_global4.impl_instance_id()); -TEST(TEST_CATEGORY, view_subview_left_2) { - TestViewSubview::test_left_2<TEST_EXECSPACE>(); -} + Kokkos::Experimental::HPX hpx_independent1( + Kokkos::Experimental::HPX::instance_mode::independent); + Kokkos::Experimental::HPX hpx_independent2 = hpx_independent1; + Kokkos::Experimental::HPX hpx_independent3{hpx_independent1}; -TEST(TEST_CATEGORY, view_subview_left_3) { - TestViewSubview::test_left_3<TEST_EXECSPACE>(); -} + ASSERT_NE(hpx_global1.impl_instance_id(), + hpx_independent1.impl_instance_id()); + ASSERT_EQ(hpx_independent1.impl_instance_id(), + hpx_independent2.impl_instance_id()); + ASSERT_EQ(hpx_independent1.impl_instance_id(), + hpx_independent3.impl_instance_id()); -TEST(TEST_CATEGORY, view_subview_right_0) { - TestViewSubview::test_right_0<TEST_EXECSPACE>(); -} + hpx::shared_future<void> f = hpx::make_ready_future<void>(); + Kokkos::Experimental::HPX hpx_independent_future1(f); + Kokkos::Experimental::HPX hpx_independent_future2 = hpx_independent_future1; + Kokkos::Experimental::HPX hpx_independent_future3{hpx_independent_future1}; -TEST(TEST_CATEGORY, view_subview_right_1) { - TestViewSubview::test_right_1<TEST_EXECSPACE>(); -} + ASSERT_NE(hpx_global1.impl_instance_id(), + hpx_independent1.impl_instance_id()); + ASSERT_NE(hpx_independent1.impl_instance_id(), + hpx_independent_future1.impl_instance_id()); + ASSERT_EQ(hpx_independent_future1.impl_instance_id(), + hpx_independent_future2.impl_instance_id()); + ASSERT_EQ(hpx_independent_future1.impl_instance_id(), + hpx_independent_future3.impl_instance_id()); + } -TEST(TEST_CATEGORY, view_subview_right_3) { - TestViewSubview::test_right_3<TEST_EXECSPACE>(); + Kokkos::finalize(); } - } // namespace Test + +#endif diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_TeamScratch.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_IndependentInstancesRefCounting.cpp similarity index 62% rename from packages/kokkos/core/unit_test/hpx/TestHPX_TeamScratch.cpp rename to packages/kokkos/core/unit_test/hpx/TestHPX_IndependentInstancesRefCounting.cpp index 232bed509..89b03dc36 100644 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_TeamScratch.cpp +++ b/packages/kokkos/core/unit_test/hpx/TestHPX_IndependentInstancesRefCounting.cpp @@ -42,37 +42,54 @@ //@HEADER */ +#include <Kokkos_Core.hpp> #include <hpx/TestHPX_Category.hpp> -#include <TestTeam.hpp> + +#ifdef KOKKOS_ENABLE_HPX_ASYNC_DISPATCH namespace Test { +namespace { +std::atomic<int> dummy_count; -TEST(TEST_CATEGORY, team_shared_request) { - TestSharedTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(); - TestSharedTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(); -} +struct dummy { + dummy() { ++dummy_count; } + dummy(dummy const &) { ++dummy_count; } + ~dummy() { --dummy_count; } + void f() const {} +}; +} // namespace +// This test makes sure the independent HPX instances don't hold on to captured +// data after destruction. +TEST(hpx, reference_counting) { + Kokkos::InitArguments arguments{-1, -1, -1, false}; + Kokkos::initialize(arguments); -TEST(TEST_CATEGORY, team_scratch_request) { - TestScratchTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(); - TestScratchTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(); -} + { + dummy d; + Kokkos::Experimental::HPX hpx( + Kokkos::Experimental::HPX::instance_mode::independent); + Kokkos::parallel_for( + "Test::hpx::reference_counting::dummy", + Kokkos::RangePolicy<Kokkos::Experimental::HPX>(hpx, 0, 1), + KOKKOS_LAMBDA(int) { + // Make sure dummy struct is captured. + d.f(); + }); -#if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) -TEST(TEST_CATEGORY, team_lambda_shared_request) { - TestLambdaSharedTeam<Kokkos::HostSpace, TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Static> >(); - TestLambdaSharedTeam<Kokkos::HostSpace, TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Dynamic> >(); -} -#endif + // This attaches a continuation and releases the d captured above from the + // shared state of the internal future. + Kokkos::parallel_for( + "Test::hpx::reference_counting::dummy_clear", + Kokkos::RangePolicy<Kokkos::Experimental::HPX>(hpx, 0, 1), + KOKKOS_LAMBDA(int){}); -TEST(TEST_CATEGORY, shmem_size) { TestShmemSize<TEST_EXECSPACE>(); } + hpx.fence(); -TEST(TEST_CATEGORY, multi_level_scratch) { - TestMultiLevelScratchTeam<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Static> >(); - TestMultiLevelScratchTeam<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Dynamic> >(); -} + ASSERT_EQ(1, dummy_count); + } + Kokkos::finalize(); +} } // namespace Test + +#endif diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_Init.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_Init.cpp deleted file mode 100644 index 9a320c637..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_Init.cpp +++ /dev/null @@ -1,49 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestInit.hpp> -#include <TestCompilerMacros.hpp> -#include <TestPolicyConstruction.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_LocalDeepCopy.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_LocalDeepCopy.cpp deleted file mode 100644 index da48849b9..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_LocalDeepCopy.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestLocalDeepCopy.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_MDRange_a.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_MDRange_a.cpp deleted file mode 100644 index 59f97ef34..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_MDRange_a.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestMDRange_a.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_MDRange_b.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_MDRange_b.cpp deleted file mode 100644 index eb2c9a04e..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_MDRange_b.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestMDRange_b.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_MDRange_c.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_MDRange_c.cpp deleted file mode 100644 index 8cbe4d56e..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_MDRange_c.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestMDRange_c.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_MDRange_d.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_MDRange_d.cpp deleted file mode 100644 index 0ee7e7f64..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_MDRange_d.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestMDRange_d.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_MDRange_e.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_MDRange_e.cpp deleted file mode 100644 index a731f97f2..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_MDRange_e.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestMDRange_e.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_Other.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_Other.cpp deleted file mode 100644 index 34153174b..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_Other.cpp +++ /dev/null @@ -1,44 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_RangePolicy.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_RangePolicy.cpp deleted file mode 100644 index 009f4cbbc..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_RangePolicy.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestRange.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_RangePolicyRequire.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_RangePolicyRequire.cpp deleted file mode 100644 index c76750e8f..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_RangePolicyRequire.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestRangeRequire.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_Reducers_a.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_Reducers_a.cpp deleted file mode 100644 index 9c10dc0aa..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_Reducers_a.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestReducers_a.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_Reducers_b.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_Reducers_b.cpp deleted file mode 100644 index 1b3bdb53b..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_Reducers_b.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestReducers_b.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_Reducers_c.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_Reducers_c.cpp deleted file mode 100644 index 385b2ccf9..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_Reducers_c.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestReducers_c.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_Reducers_d.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_Reducers_d.cpp deleted file mode 100644 index e5460792e..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_Reducers_d.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestReducers_d.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_Reductions.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_Reductions.cpp deleted file mode 100644 index e10b1761a..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_Reductions.cpp +++ /dev/null @@ -1,47 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestReduce.hpp> -#include <TestCXX11Deduction.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_Reductions_DeviceView.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_Reductions_DeviceView.cpp deleted file mode 100644 index 7363c21b1..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_Reductions_DeviceView.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestReduceDeviceView.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_Scan.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_Scan.cpp deleted file mode 100644 index 66bd71db5..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_Scan.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestScan.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_b.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_b.cpp deleted file mode 100644 index eb625fd83..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_b.cpp +++ /dev/null @@ -1,66 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_layoutleft_to_layoutleft) { - TestViewSubview::test_layoutleft_to_layoutleft<TEST_EXECSPACE>(); - TestViewSubview::test_layoutleft_to_layoutleft< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::Atomic> >(); - TestViewSubview::test_layoutleft_to_layoutleft< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -TEST(TEST_CATEGORY, view_subview_layoutright_to_layoutright) { - TestViewSubview::test_layoutright_to_layoutright<TEST_EXECSPACE>(); - TestViewSubview::test_layoutright_to_layoutright< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::Atomic> >(); - TestViewSubview::test_layoutright_to_layoutright< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c02.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c02.cpp deleted file mode 100644 index b490503b3..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c02.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_1d_assign_atomic) { - TestViewSubview::test_1d_assign<TEST_EXECSPACE, - Kokkos::MemoryTraits<Kokkos::Atomic> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c03.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c03.cpp deleted file mode 100644 index f36a25e8e..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c03.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_1d_assign_randomaccess) { - TestViewSubview::test_1d_assign< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c04.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c04.cpp deleted file mode 100644 index 3bc96cd57..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c04.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_2d_from_3d) { - TestViewSubview::test_2d_subview_3d<TEST_EXECSPACE>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c05.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c05.cpp deleted file mode 100644 index a102141b7..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c05.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(hpx, view_subview_2d_from_3d_atomic) { - TestViewSubview::test_2d_subview_3d<TEST_EXECSPACE, - Kokkos::MemoryTraits<Kokkos::Atomic> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c06.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c06.cpp deleted file mode 100644 index 18ba86111..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c06.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_2d_from_3d_randomaccess) { - TestViewSubview::test_2d_subview_3d< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c07.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c07.cpp deleted file mode 100644 index d1e136fdf..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c07.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_3d_from_5d_left) { - TestViewSubview::test_3d_subview_5d_left<TEST_EXECSPACE>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c08.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c08.cpp deleted file mode 100644 index 6bee531a7..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c08.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_3d_from_5d_left_atomic) { - TestViewSubview::test_3d_subview_5d_left< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::Atomic> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c10.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c10.cpp deleted file mode 100644 index c2b9d4ffd..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c10.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_3d_from_5d_right) { - TestViewSubview::test_3d_subview_5d_right<TEST_EXECSPACE>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c12.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c12.cpp deleted file mode 100644 index bb7f69b1f..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c12.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_3d_from_5d_right_randomaccess) { - TestViewSubview::test_3d_subview_5d_right< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c13.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c13.cpp deleted file mode 100644 index 6f1e2cd0a..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c13.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_test_unmanaged_subview_reset) { - TestViewSubview::test_unmanaged_subview_reset<TEST_EXECSPACE>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c_all.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c_all.cpp deleted file mode 100644 index 1103870fe..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_SubView_c_all.cpp +++ /dev/null @@ -1,13 +0,0 @@ -#include <hpx/TestHPX_SubView_c01.cpp> -#include <hpx/TestHPX_SubView_c02.cpp> -#include <hpx/TestHPX_SubView_c03.cpp> -#include <hpx/TestHPX_SubView_c04.cpp> -#include <hpx/TestHPX_SubView_c05.cpp> -#include <hpx/TestHPX_SubView_c06.cpp> -#include <hpx/TestHPX_SubView_c07.cpp> -#include <hpx/TestHPX_SubView_c08.cpp> -#include <hpx/TestHPX_SubView_c09.cpp> -#include <hpx/TestHPX_SubView_c10.cpp> -#include <hpx/TestHPX_SubView_c11.cpp> -#include <hpx/TestHPX_SubView_c12.cpp> -#include <hpx/TestHPX_SubView_c13.cpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_Team.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_Team.cpp deleted file mode 100644 index f5278971b..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_Team.cpp +++ /dev/null @@ -1,83 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestTeam.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, team_for) { - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >::test_for( - 0); - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >::test_for( - 0); - - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >::test_for( - 2); - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >::test_for( - 2); - - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >::test_for( - 1000); - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >::test_for( - 1000); -} - -TEST(TEST_CATEGORY, team_reduce) { - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Static> >::test_reduce(0); - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Dynamic> >::test_reduce(0); - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Static> >::test_reduce(2); - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Dynamic> >::test_reduce(2); - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Static> >::test_reduce(1000); - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Dynamic> >::test_reduce(1000); -} -} // namespace Test - -#include <TestTeamVector.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_TeamReductionScan.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_TeamReductionScan.cpp deleted file mode 100644 index 971e12f3f..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_TeamReductionScan.cpp +++ /dev/null @@ -1,81 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestTeam.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, team_scan) { - TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(0); - TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(0); - TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(10); - TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(10); - TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(10000); - TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(10000); -} - -TEST(TEST_CATEGORY, team_long_reduce) { - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(0); - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(0); - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(3); - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(3); - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >( - 100000); - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >( - 100000); -} - -TEST(TEST_CATEGORY, team_double_reduce) { - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(0); - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(0); - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(3); - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(3); - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >( - 100000); - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >( - 100000); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_TeamTeamSize.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_TeamTeamSize.cpp deleted file mode 100644 index 68577d065..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_TeamTeamSize.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestTeamTeamSize.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_TeamVectorRange.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_TeamVectorRange.cpp deleted file mode 100644 index 2bf586ec2..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_TeamVectorRange.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestTeamVectorRange.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_UniqueToken.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_UniqueToken.cpp deleted file mode 100644 index 9e88419e7..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_UniqueToken.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestUniqueToken.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_ViewAPI_a.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_ViewAPI_a.cpp deleted file mode 100644 index 7342cfac8..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_ViewAPI_a.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestViewAPI_a.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_ViewAPI_b.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_ViewAPI_b.cpp deleted file mode 100644 index 82fd177ad..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_ViewAPI_b.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestViewAPI_b.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_ViewAPI_c.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_ViewAPI_c.cpp deleted file mode 100644 index e5d920de4..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_ViewAPI_c.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestViewAPI_c.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_ViewAPI_d.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_ViewAPI_d.cpp deleted file mode 100644 index 56bfb6ffc..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_ViewAPI_d.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestViewAPI_d.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_ViewAPI_e.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_ViewAPI_e.cpp deleted file mode 100644 index 3dc492355..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_ViewAPI_e.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestViewAPI_e.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_ViewLayoutStrideAssignment.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_ViewLayoutStrideAssignment.cpp deleted file mode 100644 index eb91b558e..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_ViewLayoutStrideAssignment.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestViewLayoutStrideAssignment.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_ViewMapping_a.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_ViewMapping_a.cpp deleted file mode 100644 index 5ad3d9719..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_ViewMapping_a.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestViewMapping_a.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_ViewMapping_b.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_ViewMapping_b.cpp deleted file mode 100644 index 10f49a93d..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_ViewMapping_b.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestViewMapping_b.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_ViewMapping_subview.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_ViewMapping_subview.cpp deleted file mode 100644 index e79965acf..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_ViewMapping_subview.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestViewMapping_subview.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_ViewOfClass.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_ViewOfClass.cpp deleted file mode 100644 index cfc9ea23a..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_ViewOfClass.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestViewOfClass.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_ViewResize.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_ViewResize.cpp deleted file mode 100644 index cc14030dc..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_ViewResize.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestViewResize.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_View_64bit.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_View_64bit.cpp deleted file mode 100644 index 8672c23d7..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_View_64bit.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestView_64bit.hpp> diff --git a/packages/kokkos/core/unit_test/hpx/TestHPX_WorkGraph.cpp b/packages/kokkos/core/unit_test/hpx/TestHPX_WorkGraph.cpp deleted file mode 100644 index 1e497b344..000000000 --- a/packages/kokkos/core/unit_test/hpx/TestHPX_WorkGraph.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <hpx/TestHPX_Category.hpp> -#include <TestWorkGraph.hpp> diff --git a/packages/kokkos/core/unit_test/incremental/Test01_execspace.hpp b/packages/kokkos/core/unit_test/incremental/Test01_execspace.hpp index 9f118bfb4..419486d7a 100644 --- a/packages/kokkos/core/unit_test/incremental/Test01_execspace.hpp +++ b/packages/kokkos/core/unit_test/incremental/Test01_execspace.hpp @@ -73,9 +73,9 @@ struct TestIncrExecSpaceTypedef { template <class ExecSpace> struct TestIncrExecSpace { void testit() { - typedef typename ExecSpace::device_type device_type; - typedef typename device_type::memory_space memory_space; - typedef typename device_type::execution_space execution_space; + using device_type = typename ExecSpace::device_type; + using memory_space = typename device_type::memory_space; + using execution_space = typename device_type::execution_space; const bool passed = std::is_same<device_type, diff --git a/packages/kokkos/core/unit_test/incremental/Test02_atomic_host.hpp b/packages/kokkos/core/unit_test/incremental/Test02_atomic_host.hpp index 4617ede99..ff4fb6a89 100644 --- a/packages/kokkos/core/unit_test/incremental/Test02_atomic_host.hpp +++ b/packages/kokkos/core/unit_test/incremental/Test02_atomic_host.hpp @@ -52,11 +52,10 @@ #include <Kokkos_Core.hpp> #include <gtest/gtest.h> -using value_type = double; - namespace Test { struct TestIncrAtomic { + using value_type = double; value_type value1 = 1.5, value2 = 0.5; void testExchange() { diff --git a/packages/kokkos/core/unit_test/incremental/Test04_ParallelFor_RangePolicy.hpp b/packages/kokkos/core/unit_test/incremental/Test04_ParallelFor_RangePolicy.hpp index 5e50b51dd..85eef21df 100644 --- a/packages/kokkos/core/unit_test/incremental/Test04_ParallelFor_RangePolicy.hpp +++ b/packages/kokkos/core/unit_test/incremental/Test04_ParallelFor_RangePolicy.hpp @@ -52,17 +52,18 @@ namespace Test { -using value_type = double; -int num_elements = 10; -const value_type value = 0.5; +using value_type = double; +int num_elements = 10; struct ParallelForFunctor { value_type *_data; + const value_type _value; - ParallelForFunctor(value_type *data) : _data(data) {} + ParallelForFunctor(value_type *data, const value_type value) + : _data(data), _value(value) {} KOKKOS_INLINE_FUNCTION - void operator()(const int i) const { _data[i] = (i + 1) * value; } + void operator()(const int i) const { _data[i] = (i + 1) * _value; } }; template <class ExecSpace> @@ -72,6 +73,7 @@ struct TestParallel_For { using h_memspace_type = Kokkos::HostSpace; value_type *deviceData, *hostData; + const value_type value = 0.5; // Check if the array values are updated correctly. void correctness_check(value_type *data) { @@ -124,8 +126,9 @@ struct TestParallel_For { init(); // parallel-for functor called for num_elements number of iterations. - Kokkos::parallel_for("parallel_for", num_elements, - ParallelForFunctor(deviceData)); + Kokkos::parallel_for("parallel_for", + Kokkos::RangePolicy<ExecSpace>(0, num_elements), + ParallelForFunctor(deviceData, value)); Kokkos::fence(); // Checks if parallel_for gave the correct results. @@ -140,13 +143,13 @@ struct TestParallel_For { init(); // Creates a range policy that uses dynamic scheduling. - typedef Kokkos::RangePolicy<ExecSpace, Kokkos::Schedule<Kokkos::Dynamic> > - range_policy_t; + using range_policy_t = + Kokkos::RangePolicy<ExecSpace, Kokkos::Schedule<Kokkos::Dynamic> >; // parallel-for functor with range-policy from 0 to num_elements iterations. Kokkos::parallel_for("RangePolicy_ParallelFor", range_policy_t(0, num_elements), - ParallelForFunctor(deviceData)); + ParallelForFunctor(deviceData, value)); // Checks if parallel_for gave the correct results. // Free the allocated memory in init(). diff --git a/packages/kokkos/core/unit_test/incremental/Test05_ParallelReduce_RangePolicy.hpp b/packages/kokkos/core/unit_test/incremental/Test05_ParallelReduce_RangePolicy.hpp index 7c147e47c..0cc9d6c5d 100644 --- a/packages/kokkos/core/unit_test/incremental/Test05_ParallelReduce_RangePolicy.hpp +++ b/packages/kokkos/core/unit_test/incremental/Test05_ParallelReduce_RangePolicy.hpp @@ -53,34 +53,39 @@ namespace Test { using value_type = double; -const double value = 0.5; -const int num_elements = 10; +constexpr double value = 0.5; struct ReduceFunctor { - value_type *_data; - - ReduceFunctor(value_type *data) : _data(data) {} + KOKKOS_INLINE_FUNCTION + void operator()(const int i, double &UpdateSum) const { + UpdateSum += (i + 1) * value; + } +}; +struct NonTrivialReduceFunctor { KOKKOS_INLINE_FUNCTION void operator()(const int i, double &UpdateSum) const { - _data[i] = (i + 1) * value; - UpdateSum += _data[i]; + UpdateSum += (i + 1) * value; } + + NonTrivialReduceFunctor() = default; + NonTrivialReduceFunctor(NonTrivialReduceFunctor const &) = default; + NonTrivialReduceFunctor(NonTrivialReduceFunctor &&) = default; + NonTrivialReduceFunctor &operator=(NonTrivialReduceFunctor &&) = default; + NonTrivialReduceFunctor &operator=(NonTrivialReduceFunctor const &) = default; + ~NonTrivialReduceFunctor() {} }; template <class ExecSpace> struct TestReduction { - // Memory space type for Device and Host data - using d_memspace_type = typename ExecSpace::memory_space; - using h_memspace_type = Kokkos::HostSpace; - - value_type *deviceData, *hostData; value_type sum = 0.0; + const int m_num_elements; + + TestReduction(int num_elements) : m_num_elements(num_elements) {} // compare and equal void check_correctness() { - int sum_local = 0; - for (int i = 0; i < num_elements; ++i) sum_local += (i + 1); + const int sum_local = (m_num_elements * (m_num_elements + 1)) / 2; ASSERT_EQ(sum, sum_local * value) << "The reduced value does not match the expected answer"; @@ -99,56 +104,43 @@ struct TestReduction { Kokkos::kokkos_free<MemSpace>(data); } - // Free the allocated memory - void free_mem() { - Kokkos::kokkos_free<d_memspace_type>(deviceData); - Kokkos::kokkos_free<h_memspace_type>(hostData); - } - - // Allocate Memory for both device and host memory spaces - void init() { - // Allocate memory on Device space. - deviceData = allocate_mem<d_memspace_type>(num_elements); - ASSERT_NE(deviceData, nullptr); + void sum_reduction() { + sum = 0.0; - // Allocate memory on Host space. - hostData = allocate_mem<h_memspace_type>(num_elements); - ASSERT_NE(hostData, nullptr); + // Creates a range policy that uses dynamic schedule. + using range_policy = + Kokkos::RangePolicy<ExecSpace, Kokkos::Schedule<Kokkos::Dynamic> >; - // Initialize the sum value to zero. - sum = 0.0; - } + // parallel_reduce call with range policy over num_elements number of + // iterations + Kokkos::parallel_reduce("Reduction", range_policy(0, m_num_elements), + ReduceFunctor{}, sum); - void check_correctness_and_cleanup() { - // Check if reduction has produced correct results check_correctness(); - - // free the allocated memory - free_mem<d_memspace_type>(deviceData); - free_mem<h_memspace_type>(hostData); } - void sum_reduction() { - // Allocates memory for num_elements number of value_type elements in the - // host and device memory spaces. - init(); + void non_trivial_sum_reduction() { + sum = 0.0; // Creates a range policy that uses dynamic schedule. - typedef Kokkos::RangePolicy<ExecSpace, Kokkos::Schedule<Kokkos::Dynamic> > - range_policy; + using range_policy = + Kokkos::RangePolicy<ExecSpace, Kokkos::Schedule<Kokkos::Dynamic> >; // parallel_reduce call with range policy over num_elements number of // iterations - Kokkos::parallel_reduce("Reduction", range_policy(0, num_elements), - ReduceFunctor(deviceData), sum); + Kokkos::parallel_reduce("Reduction", range_policy(0, m_num_elements), + NonTrivialReduceFunctor{}, sum); - check_correctness_and_cleanup(); + check_correctness(); } }; TEST(TEST_CATEGORY, IncrTest_05_reduction) { - TestReduction<TEST_EXECSPACE> test; - test.sum_reduction(); + for (unsigned int i = 0; i < 100; ++i) { + TestReduction<TEST_EXECSPACE> test(i); + test.sum_reduction(); + test.non_trivial_sum_reduction(); + } } } // namespace Test diff --git a/packages/kokkos/core/unit_test/incremental/Test06_ParallelFor_MDRangePolicy.hpp b/packages/kokkos/core/unit_test/incremental/Test06_ParallelFor_MDRangePolicy.hpp index d9e5a37b5..4adf9e058 100644 --- a/packages/kokkos/core/unit_test/incremental/Test06_ParallelFor_MDRangePolicy.hpp +++ b/packages/kokkos/core/unit_test/incremental/Test06_ParallelFor_MDRangePolicy.hpp @@ -52,34 +52,35 @@ // elements as a product of iterator indexes and a constant. At the end, we // check for correctness. -namespace Test04 { +namespace Test06 { -using value_type = double; -const int N = 10; -const int M = 10; -const value_type delta = 0.5; +using value_type = double; struct MDFunctor { value_type *_data; + const value_type _delta; + const int N = 10; + const int M = 10; - MDFunctor(value_type *data) : _data(data) {} + MDFunctor(value_type *data, const value_type delta) + : _data(data), _delta(delta) {} // 2D KOKKOS_INLINE_FUNCTION void operator()(const int i, const int j) const { - _data[i * M + j] = i * j * delta; + _data[i * M + j] = i * j * _delta; } // 3D KOKKOS_INLINE_FUNCTION void operator()(const int i, const int j, const int k) const { - _data[i * M * N + j * M + k] = i * j * k * delta; + _data[i * M * N + j * M + k] = i * j * k * _delta; } // 4D KOKKOS_INLINE_FUNCTION void operator()(const int i, const int j, const int k, const int l) const { - _data[i * M * N * M + j * M * N + k * M + l] = i * j * k * l * delta; + _data[i * M * N * M + j * M * N + k * M + l] = i * j * k * l * _delta; } }; @@ -106,6 +107,9 @@ struct TestMDRangePolicy { // Device and Host Data structure pointer value_type *deviceData, *hostData; + const value_type delta = 0.5; + const int N = 10; + const int M = 10; // Routine to allocate memory in a specific memory space. template <class MemSpace> @@ -160,7 +164,7 @@ struct TestMDRangePolicy { ASSERT_NE(hostData, nullptr); // parallel_for call - MDFunctor Functor_2D(deviceData); + MDFunctor Functor_2D(deviceData, delta); Kokkos::parallel_for("MDRange2D", mdPolicy_2D, Functor_2D); // Copy the data back to Host memory space @@ -191,7 +195,7 @@ struct TestMDRangePolicy { ASSERT_NE(hostData, nullptr); // parallel_for call - MDFunctor Functor_3D(deviceData); + MDFunctor Functor_3D(deviceData, delta); Kokkos::parallel_for("MDRange3D", mdPolicy_3D, Functor_3D); // Copy the data back to Host memory space @@ -222,7 +226,7 @@ struct TestMDRangePolicy { ASSERT_NE(hostData, nullptr); // parallel_for call - MDFunctor Functor_4D(deviceData); + MDFunctor Functor_4D(deviceData, delta); Kokkos::parallel_for("MDRange4D", mdPolicy_4D, Functor_4D); // Copy the data back to Host memory space @@ -238,25 +242,25 @@ struct TestMDRangePolicy { } }; -} // namespace Test04 +} // namespace Test06 namespace Test { // 2D MDRangePolicy TEST(TEST_CATEGORY, IncrTest_06_mdrange2D) { - Test04::TestMDRangePolicy<TEST_EXECSPACE> test; + Test06::TestMDRangePolicy<TEST_EXECSPACE> test; test.mdRange2D(); } // 3D MDRangePolicy TEST(TEST_CATEGORY, IncrTest_06_mdrange3D) { - Test04::TestMDRangePolicy<TEST_EXECSPACE> test; + Test06::TestMDRangePolicy<TEST_EXECSPACE> test; test.mdRange3D(); } // 4D MDRangePolicy TEST(TEST_CATEGORY, IncrTest_06_mdrange4D) { - Test04::TestMDRangePolicy<TEST_EXECSPACE> test; + Test06::TestMDRangePolicy<TEST_EXECSPACE> test; test.mdRange4D(); } diff --git a/packages/kokkos/core/unit_test/incremental/Test10_HierarchicalBasics.hpp b/packages/kokkos/core/unit_test/incremental/Test10_HierarchicalBasics.hpp index a5e478c30..720197c35 100644 --- a/packages/kokkos/core/unit_test/incremental/Test10_HierarchicalBasics.hpp +++ b/packages/kokkos/core/unit_test/incremental/Test10_HierarchicalBasics.hpp @@ -64,6 +64,7 @@ struct HierarchicalBasics { ASSERT_EQ(pol.league_size(), nP); ASSERT_LE(pol.team_size(), nT); + nT = pol.team_size(); Kokkos::View<int **, ExecSpace> v("Array_A", nP, nT); @@ -93,9 +94,17 @@ struct HierarchicalBasics { TEST(TEST_CATEGORY, IncrTest_10_Hierarchical_Basics) { HierarchicalBasics<TEST_EXECSPACE> test; + + // OpenMPTarget backend only accepts >= 32 threads per team +#if defined(KOKKOS_ENABLE_OPENMPTARGET) + test.run(1, 32); + test.run(8, 64); + test.run(11, 128); +#else test.run(1, 4); test.run(8, 16); test.run(11, 13); +#endif } } // namespace Test diff --git a/packages/kokkos/core/unit_test/incremental/Test11a_ParallelFor_TeamThreadRange.hpp b/packages/kokkos/core/unit_test/incremental/Test11a_ParallelFor_TeamThreadRange.hpp index e36b8f9d3..fef4d9c69 100644 --- a/packages/kokkos/core/unit_test/incremental/Test11a_ParallelFor_TeamThreadRange.hpp +++ b/packages/kokkos/core/unit_test/incremental/Test11a_ParallelFor_TeamThreadRange.hpp @@ -55,10 +55,10 @@ namespace Test { template <class ExecSpace> struct Hierarchical_ForLoop_A { void run(const int pN, const int sX, const int sY) { - typedef Kokkos::TeamPolicy<ExecSpace> team_policy; - typedef typename Kokkos::TeamPolicy<ExecSpace>::member_type member_type; + using team_policy = Kokkos::TeamPolicy<ExecSpace>; + using member_type = typename Kokkos::TeamPolicy<ExecSpace>::member_type; - typedef Kokkos::View<int **, ExecSpace> viewDataType; + using viewDataType = Kokkos::View<int **, ExecSpace>; viewDataType v("Matrix", sX, sY); Kokkos::parallel_for( @@ -71,7 +71,7 @@ struct Hierarchical_ForLoop_A { const int modDim1 = n == ls - 1 ? sX % ls : 0; Kokkos::parallel_for( - Kokkos::TeamThreadRange(team, v.extent(1)), [&](const int m) { + Kokkos::TeamThreadRange(team, v.extent(1)), [=](const int m) { for (int i = startDim1; i < (startDim1 + (int)(sX / ls) + modDim1); ++i) v(i, m) = i * v.extent(1) + m; @@ -81,8 +81,8 @@ struct Hierarchical_ForLoop_A { Kokkos::fence(); auto v_H = Kokkos::create_mirror_view_and_copy(Kokkos::HostSpace(), v); - int check = 0; - const int s = sY * sX; + long long int check = 0; + const long long int s = sY * sX; for (int i = 0; i < sX; ++i) for (int j = 0; j < sY; ++j) check += v_H(i, j); ASSERT_EQ(check, s * (s - 1) / 2); diff --git a/packages/kokkos/core/unit_test/incremental/Test11b_ParallelFor_TeamVectorRange.hpp b/packages/kokkos/core/unit_test/incremental/Test11b_ParallelFor_TeamVectorRange.hpp index 7e4bb2aa3..a81b474a6 100644 --- a/packages/kokkos/core/unit_test/incremental/Test11b_ParallelFor_TeamVectorRange.hpp +++ b/packages/kokkos/core/unit_test/incremental/Test11b_ParallelFor_TeamVectorRange.hpp @@ -55,10 +55,10 @@ namespace Test { template <class ExecSpace> struct Hierarchical_ForLoop_B { void run(const int pN, const int sX, const int sY) { - typedef Kokkos::TeamPolicy<ExecSpace> team_policy; - typedef typename Kokkos::TeamPolicy<ExecSpace>::member_type member_type; + using team_policy = Kokkos::TeamPolicy<ExecSpace>; + using member_type = typename Kokkos::TeamPolicy<ExecSpace>::member_type; - typedef Kokkos::View<int **, ExecSpace> viewDataType; + using viewDataType = Kokkos::View<int **, ExecSpace>; viewDataType v("Matrix", sX, sY); Kokkos::parallel_for( @@ -71,7 +71,7 @@ struct Hierarchical_ForLoop_B { const int modDim1 = n == ls - 1 ? sX % ls : 0; Kokkos::parallel_for( - Kokkos::TeamVectorRange(team, v.extent(1)), [&](const int m) { + Kokkos::TeamVectorRange(team, v.extent(1)), [=](const int m) { for (int i = startDim1; i < (startDim1 + (int)(sX / ls) + modDim1); ++i) v(i, m) = i * v.extent(1) + m; @@ -81,8 +81,8 @@ struct Hierarchical_ForLoop_B { Kokkos::fence(); auto v_H = Kokkos::create_mirror_view_and_copy(Kokkos::HostSpace(), v); - int check = 0; - const int s = sY * sX; + long long int check = 0; + const long long int s = sY * sX; for (int i = 0; i < sX; ++i) for (int j = 0; j < sY; ++j) check += v_H(i, j); ASSERT_EQ(check, s * (s - 1) / 2); diff --git a/packages/kokkos/core/unit_test/incremental/Test11c_ParallelFor_ThreadVectorRange.hpp b/packages/kokkos/core/unit_test/incremental/Test11c_ParallelFor_ThreadVectorRange.hpp index c6998a578..814ab5fda 100644 --- a/packages/kokkos/core/unit_test/incremental/Test11c_ParallelFor_ThreadVectorRange.hpp +++ b/packages/kokkos/core/unit_test/incremental/Test11c_ParallelFor_ThreadVectorRange.hpp @@ -55,10 +55,10 @@ namespace Test { template <class ExecSpace> struct Hierarchical_ForLoop_C { void run(const int pN, const int sX, const int sY, const int sZ) { - typedef Kokkos::TeamPolicy<ExecSpace> team_policy; - typedef typename Kokkos::TeamPolicy<ExecSpace>::member_type member_type; + using team_policy = Kokkos::TeamPolicy<ExecSpace>; + using member_type = typename Kokkos::TeamPolicy<ExecSpace>::member_type; - typedef Kokkos::View<size_t ***, ExecSpace> viewDataType; + using viewDataType = Kokkos::View<size_t ***, ExecSpace>; viewDataType v("Matrix", sX, sY, sZ); Kokkos::parallel_for( diff --git a/packages/kokkos/core/unit_test/incremental/Test12a_ThreadScratch.hpp b/packages/kokkos/core/unit_test/incremental/Test12a_ThreadScratch.hpp index 8eb1c243c..449b450a7 100644 --- a/packages/kokkos/core/unit_test/incremental/Test12a_ThreadScratch.hpp +++ b/packages/kokkos/core/unit_test/incremental/Test12a_ThreadScratch.hpp @@ -42,7 +42,7 @@ //@HEADER */ -// @Kokkos_Feature_Level_Required:12 +// @Kokkos_Feature_Level_Required:13 // Unit test for hierarchical parallelism // Create concurrent work hierarchically and verify if // contributions of paticipating processing units corresponds to expected value diff --git a/packages/kokkos/core/unit_test/incremental/Test12b_TeamScratch.hpp b/packages/kokkos/core/unit_test/incremental/Test12b_TeamScratch.hpp index 169491af3..913dce999 100644 --- a/packages/kokkos/core/unit_test/incremental/Test12b_TeamScratch.hpp +++ b/packages/kokkos/core/unit_test/incremental/Test12b_TeamScratch.hpp @@ -42,7 +42,7 @@ //@HEADER */ -// @Kokkos_Feature_Level_Required:12 +// @Kokkos_Feature_Level_Required:13 // Unit test for hierarchical parallelism // Create concurrent work hierarchically and verify if // contributions of paticipating processing units corresponds to expected value diff --git a/packages/kokkos/core/unit_test/incremental/Test13a_ParallelRed_TeamThreadRange.hpp b/packages/kokkos/core/unit_test/incremental/Test13a_ParallelRed_TeamThreadRange.hpp index b5467da92..20f0b7884 100644 --- a/packages/kokkos/core/unit_test/incremental/Test13a_ParallelRed_TeamThreadRange.hpp +++ b/packages/kokkos/core/unit_test/incremental/Test13a_ParallelRed_TeamThreadRange.hpp @@ -42,7 +42,7 @@ //@HEADER */ -// @Kokkos_Feature_Level_Required:13 +// @Kokkos_Feature_Level_Required:12 // Unit test for hierarchical parallelism // Create concurrent work hierarchically and verify if // sum of created processing units corresponds to expected value @@ -59,10 +59,10 @@ namespace Test { template <class ExecSpace> struct Hierarchical_Red_A { void run(const int pN, const int sX) { - typedef Kokkos::TeamPolicy<ExecSpace> team_policy; - typedef typename Kokkos::TeamPolicy<ExecSpace>::member_type member_type; + using team_policy = Kokkos::TeamPolicy<ExecSpace>; + using member_type = typename Kokkos::TeamPolicy<ExecSpace>::member_type; - typedef Kokkos::View<SCALAR_TYPE *, ExecSpace> viewDataType; + using viewDataType = Kokkos::View<SCALAR_TYPE *, ExecSpace>; viewDataType v("Vector", pN); Kokkos::parallel_for( diff --git a/packages/kokkos/core/unit_test/incremental/Test13b_ParallelRed_TeamVectorRange.hpp b/packages/kokkos/core/unit_test/incremental/Test13b_ParallelRed_TeamVectorRange.hpp index ada295591..6b6406323 100644 --- a/packages/kokkos/core/unit_test/incremental/Test13b_ParallelRed_TeamVectorRange.hpp +++ b/packages/kokkos/core/unit_test/incremental/Test13b_ParallelRed_TeamVectorRange.hpp @@ -42,7 +42,7 @@ //@HEADER */ -// @Kokkos_Feature_Level_Required:13 +// @Kokkos_Feature_Level_Required:12 // Unit test for hierarchical parallelism // Create concurrent work hierarchically and verify if // sum of created processing units corresponds to expected value @@ -57,10 +57,10 @@ namespace Test { template <class ExecSpace> struct Hierarchical_Red_B { void run(const int pN, const int sX) { - typedef Kokkos::TeamPolicy<ExecSpace> team_policy; - typedef typename Kokkos::TeamPolicy<ExecSpace>::member_type member_type; + using team_policy = Kokkos::TeamPolicy<ExecSpace>; + using member_type = typename Kokkos::TeamPolicy<ExecSpace>::member_type; - typedef Kokkos::View<SCALAR_TYPE *, ExecSpace> viewDataType; + using viewDataType = Kokkos::View<SCALAR_TYPE *, ExecSpace>; viewDataType v("Vector", pN); Kokkos::parallel_for( diff --git a/packages/kokkos/core/unit_test/incremental/Test13c_ParallelRed_ThreadVectorRange.hpp b/packages/kokkos/core/unit_test/incremental/Test13c_ParallelRed_ThreadVectorRange.hpp index 7df940c58..aa82dd1f3 100644 --- a/packages/kokkos/core/unit_test/incremental/Test13c_ParallelRed_ThreadVectorRange.hpp +++ b/packages/kokkos/core/unit_test/incremental/Test13c_ParallelRed_ThreadVectorRange.hpp @@ -42,7 +42,7 @@ //@HEADER */ -// @Kokkos_Feature_Level_Required:13 +// @Kokkos_Feature_Level_Required:12 // Unit test for hierarchical parallelism // Create concurrent work hierarchically and verify if // sum of created processing units corresponds to expected value @@ -57,10 +57,10 @@ namespace Test { template <class ExecSpace> struct Hierarchical_Red_C { void run(const int pN, const int sX, const int sY) { - typedef Kokkos::TeamPolicy<ExecSpace> team_policy; - typedef typename Kokkos::TeamPolicy<ExecSpace>::member_type member_type; + using team_policy = Kokkos::TeamPolicy<ExecSpace>; + using member_type = typename Kokkos::TeamPolicy<ExecSpace>::member_type; - typedef Kokkos::View<SCALAR_TYPE *, ExecSpace> viewDataType; + using viewDataType = Kokkos::View<SCALAR_TYPE *, ExecSpace>; viewDataType v("Vector", pN); Kokkos::parallel_for( diff --git a/packages/kokkos/core/unit_test/incremental/Test14_MDRangeReduce.hpp b/packages/kokkos/core/unit_test/incremental/Test14_MDRangeReduce.hpp new file mode 100644 index 000000000..d227e834d --- /dev/null +++ b/packages/kokkos/core/unit_test/incremental/Test14_MDRangeReduce.hpp @@ -0,0 +1,182 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +/// @Kokkos_Feature_Level_Required:14 +// Incremental test for MDRange reduction . +// Reduction is tested with scalar, view and a customized reduction. + +#include <Kokkos_Core.hpp> +#include <gtest/gtest.h> + +namespace Test { +using value_type = double; +const int N = 10; +const int M = 10; + +// A structure for complex number. +struct MyComplex { + value_type _re, _im; + + MyComplex() = default; + + KOKKOS_INLINE_FUNCTION + MyComplex(value_type re, value_type im) : _re(re), _im(im) {} + + KOKKOS_INLINE_FUNCTION + MyComplex(const MyComplex& src) : _re(src._re), _im(src._im) {} + + KOKKOS_INLINE_FUNCTION + void operator+=(const MyComplex& src) { + _re += src._re; + _im += src._im; + } + + KOKKOS_INLINE_FUNCTION + void operator+=(const volatile MyComplex& src) volatile { + _re += src._re; + _im += src._im; + } +}; + +template <class ExecSpace> +struct TestMDRangeReduce { + // 1D View of double + using View_1D = typename Kokkos::View<value_type*, ExecSpace>; + + // 2D View of double + using View_2D = typename Kokkos::View<value_type**, ExecSpace>; + + // Index Type for the iterator + using int_index = Kokkos::IndexType<int>; + + // An MDRangePolicy for 2 nested loops + using MDPolicyType_2D = typename Kokkos::Experimental::MDRangePolicy< + ExecSpace, Kokkos::Experimental::Rank<2>, int_index>; + + // 1D - complex View + using Complex_View_1D = typename Kokkos::View<MyComplex*, ExecSpace>; + + // Reduction when ExecPolicy = MDRangePolicy and ReducerArgument = + // scalar/1-element view + void reduce_MDRange() { + View_2D d_data("d_data", N, M); + + MDPolicyType_2D mdPolicy_2D({0, 0}, {N, M}); + + // Store the reduced value. + value_type d_result = 0.0, h_result = 0.0; + Kokkos::View<value_type, ExecSpace> d_resultView("result View"); + + // Compute reference solution on the host. + for (int i = 0; i < N; ++i) + for (int j = 0; j < M; ++j) h_result += i * j; + h_result *= 0.5; + + // Fill data. + Kokkos::parallel_for( + mdPolicy_2D, KOKKOS_LAMBDA(const int i, const int j) { + d_data(i, j) = i * j * 0.5; + }); + + // Parallel reduce on a scalar. + Kokkos::parallel_reduce( + mdPolicy_2D, + KOKKOS_LAMBDA(const int i, const int j, value_type& update_value) { + update_value += d_data(i, j); + }, + d_result); + + // Parallel reduce on a view. + Kokkos::parallel_reduce( + mdPolicy_2D, + KOKKOS_LAMBDA(const int i, const int j, value_type& update_value) { + update_value += d_data(i, j); + }, + d_resultView); + + // Check correctness. + ASSERT_EQ(h_result, d_result); + + // Copy view back to host. + value_type view_result = 0.0; + Kokkos::deep_copy(view_result, d_resultView); + ASSERT_EQ(h_result, view_result); + } + + // Custom Reduction + void reduce_custom() { + Complex_View_1D d_data("complex array", N); + MyComplex result(0.0, 0.0); + int sum = 0; + + // Fill data + Kokkos::parallel_for( + Kokkos::RangePolicy<ExecSpace>(0, N), KOKKOS_LAMBDA(const int i) { + d_data(i) = MyComplex(i * 0.5, -i * 0.5); + }); + + // Reduction for complex number. + Kokkos::parallel_reduce( + Kokkos::RangePolicy<ExecSpace>(0, N), + KOKKOS_LAMBDA(const int i, MyComplex& update_value) { + update_value += d_data(i); + }, + result); + + // Correctness Check + for (int i = 0; i < N; ++i) sum += i; + + ASSERT_EQ(result._re, sum * 0.5); + ASSERT_EQ(result._im, -sum * 0.5); + } +}; + +// Reductions tests for MDRange policy and customized reduction. +TEST(TEST_CATEGORY, incr_14_MDrangeReduce) { + TestMDRangeReduce<TEST_EXECSPACE> test; + test.reduce_MDRange(); + test.reduce_custom(); +} + +} // namespace Test diff --git a/packages/kokkos/algorithms/unit_tests/TestROCm.cpp b/packages/kokkos/core/unit_test/incremental/Test16_ParallelScan.hpp similarity index 61% rename from packages/kokkos/algorithms/unit_tests/TestROCm.cpp rename to packages/kokkos/core/unit_test/incremental/Test16_ParallelScan.hpp index 29814cca3..e1f5e3767 100644 --- a/packages/kokkos/algorithms/unit_tests/TestROCm.cpp +++ b/packages/kokkos/core/unit_test/incremental/Test16_ParallelScan.hpp @@ -42,51 +42,58 @@ //@HEADER */ -#include <Kokkos_Macros.hpp> -#ifdef KOKKOS_ENABLE_ROCM +#include <Kokkos_Core.hpp> +#include <gtest/gtest.h> -#include <cstdint> -#include <iostream> -#include <iomanip> +/// @Kokkos_Feature_Level_Required:16 +// Incremental test for parallel_scan. +// perform scan on a 1D view of double's and check for correctness. -#include <gtest/gtest.h> +namespace Test { -#include <Kokkos_Core.hpp> +using value_type = double; +const int N = 10; -#include <TestRandom.hpp> -#include <TestSort.hpp> +template <class ExecSpace> +struct TestScan { + // 1D View of double + using View_1D = typename Kokkos::View<value_type *, ExecSpace>; -namespace Test { + void parallel_scan() { + View_1D d_data("data", N); -void rocm_test_random_xorshift64(int num_draws) { - Impl::test_random< - Kokkos::Random_XorShift64_Pool<Kokkos::Experimental::ROCm> >(num_draws); -} + // Initialize data. + Kokkos::parallel_for( + Kokkos::RangePolicy<ExecSpace>(0, N), + KOKKOS_LAMBDA(const int i) { d_data(i) = i * 0.5; }); -void rocm_test_random_xorshift1024(int num_draws) { - Impl::test_random< - Kokkos::Random_XorShift1024_Pool<Kokkos::Experimental::ROCm> >(num_draws); -} + // Exclusive parallel_scan call. + Kokkos::parallel_scan( + Kokkos::RangePolicy<ExecSpace>(0, N), + KOKKOS_LAMBDA(const int i, value_type &update_value, const bool final) { + const value_type val_i = d_data(i); + if (final) d_data(i) = update_value; -#define ROCM_RANDOM_XORSHIFT64(num_draws) \ - TEST(rocm, Random_XorShift64) { rocm_test_random_xorshift64(num_draws); } + update_value += val_i; + }); -#define ROCM_RANDOM_XORSHIFT1024(num_draws) \ - TEST(rocm, Random_XorShift1024) { rocm_test_random_xorshift1024(num_draws); } + // Copy back the data. + auto h_data = + Kokkos::create_mirror_view_and_copy(Kokkos::HostSpace(), d_data); -#define ROCM_SORT_UNSIGNED(size) \ - TEST(rocm, SortUnsigned) { \ - Impl::test_sort<Kokkos::Experimental::ROCm, unsigned>(size); \ + // Check Correctness + ASSERT_EQ(h_data(0), 0.0); + value_type upd = h_data(0); + for (int i = 1; i < N; ++i) { + upd += (i - 1) * 0.5; + ASSERT_EQ(h_data(i), upd); + } } +}; -ROCM_RANDOM_XORSHIFT64(132141141) -ROCM_RANDOM_XORSHIFT1024(52428813) -ROCM_SORT_UNSIGNED(171) +TEST(TEST_CATEGORY, IncrTest_16_parallelscan) { + TestScan<TEST_EXECSPACE> test; + test.parallel_scan(); +} -#undef ROCM_RANDOM_XORSHIFT64 -#undef ROCM_RANDOM_XORSHIFT1024 -#undef ROCM_SORT_UNSIGNED } // namespace Test -#else -void KOKKOS_ALGORITHMS_UNITTESTS_TESTROCM_PREVENT_LINK_ERROR() {} -#endif /* #ifdef KOKKOS_ENABLE_ROCM */ diff --git a/packages/kokkos/core/unit_test/incremental/Test17_CompleteAtomic.hpp b/packages/kokkos/core/unit_test/incremental/Test17_CompleteAtomic.hpp new file mode 100644 index 000000000..6ba5adc61 --- /dev/null +++ b/packages/kokkos/core/unit_test/incremental/Test17_CompleteAtomic.hpp @@ -0,0 +1,126 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include <Kokkos_Core.hpp> +#include <array> +#include <random> +#include <gtest/gtest.h> + +/// @Kokkos_Feature_Level_Required:17 +// Incremental test for atomic views. +// In this test we sort N integers into num_buckets number of buckets based on +// their rermainder, i.e., a histogram based on remainder. Since the number of +// integers is greater than the number of buckets, we use atomic views for the +// sorted histogram. + +namespace Test { + +using value_type = int; +const int N = 1000; +const int num_buckets = 10; + +template <class ExecSpace> +struct TestAtomicView { + // 1D View of int + using View = typename Kokkos::View<value_type *, ExecSpace>; + + // 1D atomic view + using atomic_view = + typename Kokkos::View<value_type *, ExecSpace, + Kokkos::MemoryTraits<Kokkos::Atomic> >; + + void atomicView() { + // Use default_random_engine object to introduce randomness. + std::default_random_engine generator; + // Initialize uniform_int_distribution class. + std::uniform_int_distribution<int> distribution(0, N); + + // Device and Host views of N number of integers + View d_data("deviceData_1D", N); + auto h_data = create_mirror_view(d_data); + + // Atomic Device and Host views of histogram + atomic_view d_hist("histogram", num_buckets); + auto h_hist = create_mirror_view(d_hist); + + // An array to store correct results for verification + std::array<int, num_buckets> correct_results; + + // Initialize host side histogram arrays + for (int i = 0; i < num_buckets; ++i) { + h_hist(i) = 0; + correct_results[i] = 0; + } + + // Fill host data with integers from the distribution object. + for (int i = 0; i < N; ++i) h_data(i) = distribution(generator); + + // Copy data from host to device + Kokkos::deep_copy(d_data, h_data); + Kokkos::deep_copy(d_hist, h_hist); + + // Update histogram + Kokkos::parallel_for( + Kokkos::RangePolicy<ExecSpace>(0, N), + KOKKOS_LAMBDA(const int i) { d_hist(d_data(i) % num_buckets)++; }); + + // Perform the same computation on host for correctness test. + for (int i = 0; i < N; ++i) correct_results[h_data(i) % num_buckets]++; + + // Copy the histogram back to host + Kokkos::deep_copy(h_hist, d_hist); + + // Validate results + for (int i = 0; i < num_buckets; ++i) + ASSERT_EQ(correct_results[i], h_hist(i)); + } +}; + +// atomic view tests +TEST(TEST_CATEGORY, incr_17_atomicView) { + TestAtomicView<TEST_EXECSPACE> test; + test.atomicView(); +} + +} // namespace Test diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP.hpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP.hpp index 082657c28..ce8ee40d4 100644 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP.hpp +++ b/packages/kokkos/core/unit_test/openmp/TestOpenMP.hpp @@ -56,8 +56,6 @@ #include <Kokkos_Core.hpp> -#include <TestTile.hpp> -#include <TestSharedAlloc.hpp> #include <TestViewMapping.hpp> #include <TestViewAPI.hpp> #include <TestViewOfClass.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_AtomicOperations_complexdouble.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_AtomicOperations_complexdouble.cpp deleted file mode 100644 index 50514e350..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_AtomicOperations_complexdouble.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestAtomicOperations_complexdouble.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_AtomicOperations_complexfloat.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_AtomicOperations_complexfloat.cpp deleted file mode 100644 index a9decbad9..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_AtomicOperations_complexfloat.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestAtomicOperations_complexfloat.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_AtomicOperations_double.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_AtomicOperations_double.cpp deleted file mode 100644 index 9de85e155..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_AtomicOperations_double.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestAtomicOperations_double.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_AtomicOperations_float.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_AtomicOperations_float.cpp deleted file mode 100644 index 8248ee68c..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_AtomicOperations_float.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestAtomicOperations_float.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_AtomicOperations_int.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_AtomicOperations_int.cpp deleted file mode 100644 index 524305f3a..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_AtomicOperations_int.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestAtomicOperations_int.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_AtomicOperations_longint.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_AtomicOperations_longint.cpp deleted file mode 100644 index 06375942e..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_AtomicOperations_longint.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestAtomicOperations_longint.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_AtomicOperations_longlongint.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_AtomicOperations_longlongint.cpp deleted file mode 100644 index 4e72e6433..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_AtomicOperations_longlongint.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestAtomicOperations_longlongint.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_AtomicOperations_unsignedint.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_AtomicOperations_unsignedint.cpp deleted file mode 100644 index 485770898..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_AtomicOperations_unsignedint.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestAtomicOperations_unsignedint.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_AtomicOperations_unsignedlongint.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_AtomicOperations_unsignedlongint.cpp deleted file mode 100644 index c0922e784..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_AtomicOperations_unsignedlongint.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestAtomicOperations_unsignedlongint.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_AtomicViews.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_AtomicViews.cpp deleted file mode 100644 index 8b495b962..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_AtomicViews.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestAtomicViews.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_Atomics.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_Atomics.cpp deleted file mode 100644 index 123f6f156..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_Atomics.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestAtomic.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_Category.hpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_Category.hpp index 2cdb378e0..65efbc9b9 100644 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_Category.hpp +++ b/packages/kokkos/core/unit_test/openmp/TestOpenMP_Category.hpp @@ -50,5 +50,6 @@ #define TEST_CATEGORY openmp #define TEST_CATEGORY_DEATH openmp_DeathTest #define TEST_EXECSPACE Kokkos::OpenMP +#define TEST_CATEGORY_FIXTURE(name) openmp_##name #endif diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_Complex.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_Complex.cpp deleted file mode 100644 index e702a2508..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_Complex.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestComplex.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_Concepts.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_Concepts.cpp deleted file mode 100644 index 5480af5aa..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_Concepts.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestConcepts.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_Crs.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_Crs.cpp deleted file mode 100644 index 49615f955..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_Crs.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestCrs.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_DeepCopyAlignment.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_DeepCopyAlignment.cpp deleted file mode 100644 index a15f5dcf1..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_DeepCopyAlignment.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestDeepCopy.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_FunctorAnalysis.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_FunctorAnalysis.cpp deleted file mode 100644 index ae4b1d0b2..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_FunctorAnalysis.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestFunctorAnalysis.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_RangePolicy.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_Graph.cpp similarity index 98% rename from packages/kokkos/core/unit_test/openmp/TestOpenMP_RangePolicy.cpp rename to packages/kokkos/core/unit_test/openmp/TestOpenMP_Graph.cpp index a19697393..9ed647c28 100644 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_RangePolicy.cpp +++ b/packages/kokkos/core/unit_test/openmp/TestOpenMP_Graph.cpp @@ -44,4 +44,4 @@ */ #include <openmp/TestOpenMP_Category.hpp> -#include <TestRange.hpp> +#include <TestGraph.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_Init.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_Init.cpp deleted file mode 100644 index 8c49b6692..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_Init.cpp +++ /dev/null @@ -1,49 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestInit.hpp> -#include <TestCompilerMacros.hpp> -#include <TestPolicyConstruction.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_LocalDeepCopy.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_LocalDeepCopy.cpp deleted file mode 100644 index 6670faf0c..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_LocalDeepCopy.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestLocalDeepCopy.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_MDRange_a.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_MDRange_a.cpp deleted file mode 100644 index 6f421e1ac..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_MDRange_a.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestMDRange_a.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_MDRange_b.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_MDRange_b.cpp deleted file mode 100644 index 4119ed8a5..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_MDRange_b.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestMDRange_b.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_MDRange_c.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_MDRange_c.cpp deleted file mode 100644 index b1d5dd43d..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_MDRange_c.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestMDRange_c.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_MDRange_d.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_MDRange_d.cpp deleted file mode 100644 index 52c807255..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_MDRange_d.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestMDRange_d.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_MDRange_e.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_MDRange_e.cpp deleted file mode 100644 index 011579b55..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_MDRange_e.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestMDRange_e.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_Other.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_PartitionMaster.cpp similarity index 86% rename from packages/kokkos/core/unit_test/openmp/TestOpenMP_Other.cpp rename to packages/kokkos/core/unit_test/openmp/TestOpenMP_PartitionMaster.cpp index 704343251..ea1472b75 100644 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_Other.cpp +++ b/packages/kokkos/core/unit_test/openmp/TestOpenMP_PartitionMaster.cpp @@ -44,14 +44,7 @@ */ #include <openmp/TestOpenMP_Category.hpp> -#include <TestTemplateMetaFunctions.hpp> -#include <TestAggregate.hpp> -#include <TestMemoryPool.hpp> -#include <TestCXX11.hpp> -#include <TestTile.hpp> - -#include <TestViewCtorPropEmbeddedDim.hpp> -#include <TestViewLayoutTiled.hpp> +#include <Kokkos_Core.hpp> #include <mutex> @@ -64,24 +57,14 @@ TEST(openmp, partition_master) { int errors = 0; auto master = [&errors, &mtx](int /*partition_id*/, int /*num_partitions*/) { - -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - const int pool_size = Kokkos::OpenMP::thread_pool_size(); -#else const int pool_size = Kokkos::OpenMP::impl_thread_pool_size(); -#endif { std::unique_lock<Mutex> lock(mtx); if (Kokkos::OpenMP::in_parallel()) { ++errors; } -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - if (Kokkos::OpenMP::thread_pool_rank() != 0) -#else - if (Kokkos::OpenMP::impl_thread_pool_rank() != 0) -#endif - { + if (Kokkos::OpenMP::impl_thread_pool_rank() != 0) { ++errors; } } @@ -91,12 +74,7 @@ TEST(openmp, partition_master) { Kokkos::parallel_reduce( Kokkos::RangePolicy<Kokkos::OpenMP>(0, 1000), [pool_size](const int, int& errs) { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - if (Kokkos::OpenMP::thread_pool_size() != pool_size) -#else - if (Kokkos::OpenMP::impl_thread_pool_size() != pool_size) -#endif - { + if (Kokkos::OpenMP::impl_thread_pool_size() != pool_size) { ++errs; } }, diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_RangePolicyRequire.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_RangePolicyRequire.cpp deleted file mode 100644 index 284a65a21..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_RangePolicyRequire.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestRangeRequire.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_Reducers_a.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_Reducers_a.cpp deleted file mode 100644 index 539720c7a..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_Reducers_a.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestReducers_a.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_Reducers_b.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_Reducers_b.cpp deleted file mode 100644 index e4a7b029c..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_Reducers_b.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestReducers_b.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_Reducers_c.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_Reducers_c.cpp deleted file mode 100644 index 62f3a1c96..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_Reducers_c.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestReducers_c.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_Reducers_d.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_Reducers_d.cpp deleted file mode 100644 index c8a34e543..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_Reducers_d.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestReducers_d.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_Reductions_DeviceView.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_Reductions_DeviceView.cpp deleted file mode 100644 index bd3a05957..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_Reductions_DeviceView.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestReduceDeviceView.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_Scan.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_Scan.cpp deleted file mode 100644 index f8c58ecfd..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_Scan.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestScan.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_SharedAlloc.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_SharedAlloc.cpp deleted file mode 100644 index 8e386391a..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_SharedAlloc.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestSharedAlloc.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, impl_shared_alloc) { - test_shared_alloc<Kokkos::HostSpace, TEST_EXECSPACE>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_a.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_a.cpp deleted file mode 100644 index a12095720..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_a.cpp +++ /dev/null @@ -1,102 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_auto_1d_left) { - TestViewSubview::test_auto_1d<Kokkos::LayoutLeft, TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_auto_1d_right) { - TestViewSubview::test_auto_1d<Kokkos::LayoutRight, TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_auto_1d_stride) { - TestViewSubview::test_auto_1d<Kokkos::LayoutStride, TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_assign_strided) { - TestViewSubview::test_1d_strided_assignment<TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_left_0) { - TestViewSubview::test_left_0<TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_left_1) { - TestViewSubview::test_left_1<TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_left_2) { - TestViewSubview::test_left_2<TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_left_3) { - TestViewSubview::test_left_3<TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_right_0) { - TestViewSubview::test_right_0<TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_right_1) { - TestViewSubview::test_right_1<TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_right_3) { - TestViewSubview::test_right_3<TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_static_tests) { - TestViewSubview::TestSubviewStaticSizes<TEST_EXECSPACE, - Kokkos::LayoutLeft>()(); - TestViewSubview::TestSubviewStaticSizes<TEST_EXECSPACE, - Kokkos::LayoutRight>()(); - TestViewSubview::TestExtentsStaticTests<TEST_EXECSPACE>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_b.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_b.cpp deleted file mode 100644 index fc34c149f..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_b.cpp +++ /dev/null @@ -1,66 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_layoutleft_to_layoutleft) { - TestViewSubview::test_layoutleft_to_layoutleft<TEST_EXECSPACE>(); - TestViewSubview::test_layoutleft_to_layoutleft< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::Atomic> >(); - TestViewSubview::test_layoutleft_to_layoutleft< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -TEST(TEST_CATEGORY, view_subview_layoutright_to_layoutright) { - TestViewSubview::test_layoutright_to_layoutright<TEST_EXECSPACE>(); - TestViewSubview::test_layoutright_to_layoutright< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::Atomic> >(); - TestViewSubview::test_layoutright_to_layoutright< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c01.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c01.cpp deleted file mode 100644 index 402072b68..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c01.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_1d_assign) { - TestViewSubview::test_1d_assign<TEST_EXECSPACE>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c02.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c02.cpp deleted file mode 100644 index 9aba989f5..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c02.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_1d_assign_atomic) { - TestViewSubview::test_1d_assign<TEST_EXECSPACE, - Kokkos::MemoryTraits<Kokkos::Atomic> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c03.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c03.cpp deleted file mode 100644 index 49db066f4..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c03.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_1d_assign_randomaccess) { - TestViewSubview::test_1d_assign< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c04.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c04.cpp deleted file mode 100644 index a4112f442..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c04.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_2d_from_3d) { - TestViewSubview::test_2d_subview_3d<TEST_EXECSPACE>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c05.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c05.cpp deleted file mode 100644 index 691ddbb96..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c05.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(openmp, view_subview_2d_from_3d_atomic) { - TestViewSubview::test_2d_subview_3d<TEST_EXECSPACE, - Kokkos::MemoryTraits<Kokkos::Atomic> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c06.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c06.cpp deleted file mode 100644 index b65b1e228..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c06.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_2d_from_3d_randomaccess) { - TestViewSubview::test_2d_subview_3d< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c07.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c07.cpp deleted file mode 100644 index 1b81dc945..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c07.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_3d_from_5d_left) { - TestViewSubview::test_3d_subview_5d_left<TEST_EXECSPACE>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c08.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c08.cpp deleted file mode 100644 index 5dd92f1c0..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c08.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_3d_from_5d_left_atomic) { - TestViewSubview::test_3d_subview_5d_left< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::Atomic> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c09.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c09.cpp deleted file mode 100644 index 9216956ed..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c09.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_3d_from_5d_left_randomaccess) { - TestViewSubview::test_3d_subview_5d_left< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c10.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c10.cpp deleted file mode 100644 index b8252d3cb..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c10.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_3d_from_5d_right) { - TestViewSubview::test_3d_subview_5d_right<TEST_EXECSPACE>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c11.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c11.cpp deleted file mode 100644 index 4b9485357..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c11.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_3d_from_5d_right_atomic) { - TestViewSubview::test_3d_subview_5d_right< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::Atomic> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c12.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c12.cpp deleted file mode 100644 index c1a7250eb..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c12.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_3d_from_5d_right_randomaccess) { - TestViewSubview::test_3d_subview_5d_right< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c13.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c13.cpp deleted file mode 100644 index ab9f668e6..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c13.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_test_unmanaged_subview_reset) { - TestViewSubview::test_unmanaged_subview_reset<TEST_EXECSPACE>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c_all.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c_all.cpp deleted file mode 100644 index 5bf3626de..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_SubView_c_all.cpp +++ /dev/null @@ -1,13 +0,0 @@ -#include <openmp/TestOpenMP_SubView_c01.cpp> -#include <openmp/TestOpenMP_SubView_c02.cpp> -#include <openmp/TestOpenMP_SubView_c03.cpp> -#include <openmp/TestOpenMP_SubView_c04.cpp> -#include <openmp/TestOpenMP_SubView_c05.cpp> -#include <openmp/TestOpenMP_SubView_c06.cpp> -#include <openmp/TestOpenMP_SubView_c07.cpp> -#include <openmp/TestOpenMP_SubView_c08.cpp> -#include <openmp/TestOpenMP_SubView_c09.cpp> -#include <openmp/TestOpenMP_SubView_c10.cpp> -#include <openmp/TestOpenMP_SubView_c11.cpp> -#include <openmp/TestOpenMP_SubView_c12.cpp> -#include <openmp/TestOpenMP_SubView_c13.cpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_Team.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_Team.cpp deleted file mode 100644 index 240930738..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_Team.cpp +++ /dev/null @@ -1,105 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestTeam.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, team_for) { - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >::test_for( - 0); - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >::test_for( - 0); - - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >::test_for( - 2); - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >::test_for( - 2); - - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >::test_for( - 1000); - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >::test_for( - 1000); -} - -TEST(TEST_CATEGORY, team_reduce) { - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Static> >::test_reduce(0); - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Dynamic> >::test_reduce(0); - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Static> >::test_reduce(2); - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Dynamic> >::test_reduce(2); - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Static> >::test_reduce(1000); - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Dynamic> >::test_reduce(1000); -} - -TEST(TEST_CATEGORY, team_broadcast) { - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, - long>::test_teambroadcast(0, 1); - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, - long>::test_teambroadcast(0, 1); - - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, - long>::test_teambroadcast(2, 1); - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, - long>::test_teambroadcast(2, 1); - - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, - long>::test_teambroadcast(16, 1); - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, - long>::test_teambroadcast(16, 1); - - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, - long>::test_teambroadcast(1000, 1); - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, - long>::test_teambroadcast(1000, 1); -} -} // namespace Test - -#include <TestTeamVector.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_TeamReductionScan.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_TeamReductionScan.cpp deleted file mode 100644 index f6f386032..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_TeamReductionScan.cpp +++ /dev/null @@ -1,81 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestTeam.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, team_scan) { - TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(0); - TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(0); - TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(10); - TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(10); - TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(10000); - TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(10000); -} - -TEST(TEST_CATEGORY, team_long_reduce) { - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(0); - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(0); - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(3); - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(3); - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >( - 100000); - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >( - 100000); -} - -TEST(TEST_CATEGORY, team_double_reduce) { - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(0); - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(0); - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(3); - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(3); - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >( - 100000); - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >( - 100000); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_TeamScratch.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_TeamScratch.cpp deleted file mode 100644 index b42bdf754..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_TeamScratch.cpp +++ /dev/null @@ -1,79 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestTeam.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, team_shared_request) { - TestSharedTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(); - TestSharedTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(); -} - -TEST(TEST_CATEGORY, team_scratch_request) { - TestScratchTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(); - TestScratchTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(); -} - -#if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) -TEST(TEST_CATEGORY, team_lambda_shared_request) { - TestLambdaSharedTeam<Kokkos::HostSpace, TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Static> >(); - TestLambdaSharedTeam<Kokkos::HostSpace, TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Dynamic> >(); -} -TEST(TEST_CATEGORY, scratch_align) { TestScratchAlignment<TEST_EXECSPACE>(); } -#endif - -TEST(TEST_CATEGORY, shmem_size) { TestShmemSize<TEST_EXECSPACE>(); } - -TEST(TEST_CATEGORY, multi_level_scratch) { - TestMultiLevelScratchTeam<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Static> >(); - TestMultiLevelScratchTeam<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Dynamic> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_TeamTeamSize.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_TeamTeamSize.cpp deleted file mode 100644 index df935a0ad..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_TeamTeamSize.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestTeamTeamSize.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_TeamVectorRange.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_TeamVectorRange.cpp deleted file mode 100644 index 9fe7a0c0c..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_TeamVectorRange.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestTeamVectorRange.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_UniqueToken.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_UniqueToken.cpp deleted file mode 100644 index eed863e5f..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_UniqueToken.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestUniqueToken.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewAPI_a.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewAPI_a.cpp deleted file mode 100644 index f0066d82d..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewAPI_a.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestViewAPI_a.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewAPI_b.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewAPI_b.cpp deleted file mode 100644 index d9eb1b905..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewAPI_b.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestViewAPI_b.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewAPI_c.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewAPI_c.cpp deleted file mode 100644 index ecdb7318f..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewAPI_c.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestViewAPI_c.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewAPI_d.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewAPI_d.cpp deleted file mode 100644 index 4a9a6513c..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewAPI_d.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestViewAPI_d.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewAPI_e.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewAPI_e.cpp deleted file mode 100644 index e5ddee77d..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewAPI_e.cpp +++ /dev/null @@ -1,47 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestViewAPI_e.hpp> -#include <TestViewCopy.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewLayoutStrideAssignment.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewLayoutStrideAssignment.cpp deleted file mode 100644 index 90e90139c..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewLayoutStrideAssignment.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestViewLayoutStrideAssignment.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewMapping_a.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewMapping_a.cpp deleted file mode 100644 index 0f2dd07e5..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewMapping_a.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestViewMapping_a.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewMapping_b.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewMapping_b.cpp deleted file mode 100644 index 13be94042..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewMapping_b.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestViewMapping_b.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewMapping_subview.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewMapping_subview.cpp deleted file mode 100644 index 47250070b..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewMapping_subview.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestViewMapping_subview.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewOfClass.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewOfClass.cpp deleted file mode 100644 index 78315c45a..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewOfClass.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestViewOfClass.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewResize.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewResize.cpp deleted file mode 100644 index cacd2b3e8..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_ViewResize.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestViewResize.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_View_64bit.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_View_64bit.cpp deleted file mode 100644 index 80f52abaf..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_View_64bit.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestView_64bit.hpp> diff --git a/packages/kokkos/core/unit_test/openmp/TestOpenMP_WorkGraph.cpp b/packages/kokkos/core/unit_test/openmp/TestOpenMP_WorkGraph.cpp deleted file mode 100644 index f76f612f2..000000000 --- a/packages/kokkos/core/unit_test/openmp/TestOpenMP_WorkGraph.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmp/TestOpenMP_Category.hpp> -#include <TestWorkGraph.hpp> diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget.hpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget.hpp index 0e9ad3e24..edc1c24dd 100644 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget.hpp +++ b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget.hpp @@ -56,8 +56,6 @@ #include <Kokkos_Core.hpp> -#include <TestTile.hpp> -//#include <TestSharedAlloc.hpp> //#include <TestViewAPI.hpp> //#include <TestViewOfClass.hpp> //#include <TestViewSubview.hpp> diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_AtomicOperations_complexdouble.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_AtomicOperations_complexdouble.cpp deleted file mode 100644 index e323124a6..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_AtomicOperations_complexdouble.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestAtomicOperations_complexdouble.hpp> diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_AtomicOperations_complexfloat.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_AtomicOperations_complexfloat.cpp deleted file mode 100644 index c45d6fd5d..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_AtomicOperations_complexfloat.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestAtomicOperations_complexfloat.hpp> diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_AtomicOperations_double.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_AtomicOperations_double.cpp deleted file mode 100644 index 54d4670e0..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_AtomicOperations_double.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestAtomicOperations_double.hpp> diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_AtomicOperations_float.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_AtomicOperations_float.cpp deleted file mode 100644 index 399bf0fca..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_AtomicOperations_float.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestAtomicOperations_float.hpp> diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_AtomicOperations_int.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_AtomicOperations_int.cpp deleted file mode 100644 index 6091ff0f7..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_AtomicOperations_int.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestAtomicOperations_int.hpp> diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_AtomicOperations_longint.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_AtomicOperations_longint.cpp deleted file mode 100644 index b877ff011..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_AtomicOperations_longint.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestAtomicOperations_longint.hpp> diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_AtomicOperations_longlongint.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_AtomicOperations_longlongint.cpp deleted file mode 100644 index 8234e356f..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_AtomicOperations_longlongint.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestAtomicOperations_longlongint.hpp> diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_AtomicOperations_unsignedint.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_AtomicOperations_unsignedint.cpp deleted file mode 100644 index 86cfac901..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_AtomicOperations_unsignedint.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestAtomicOperations_unsignedint.hpp> diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_AtomicOperations_unsignedlongint.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_AtomicOperations_unsignedlongint.cpp deleted file mode 100644 index fe5c3f085..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_AtomicOperations_unsignedlongint.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestAtomicOperations_unsignedlongint.hpp> diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_AtomicViews.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_AtomicViews.cpp deleted file mode 100644 index b38c7cafb..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_AtomicViews.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestAtomicViews.hpp> diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Atomics.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Atomics.cpp deleted file mode 100644 index 1bcbd3a62..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Atomics.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestAtomic.hpp> diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Complex.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Complex.cpp deleted file mode 100644 index 5e62bc85b..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Complex.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestComplex.hpp> diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Concepts.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Concepts.cpp deleted file mode 100644 index 8896339f9..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Concepts.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestConcepts.hpp> diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Crs.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Crs.cpp deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_DeepCopyAlignment.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_DeepCopyAlignment.cpp deleted file mode 100644 index 01885d0d8..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_DeepCopyAlignment.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestDeepCopy.hpp> diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_FunctorAnalysis.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_FunctorAnalysis.cpp deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Init.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Init.cpp deleted file mode 100644 index ebcbbb3ae..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Init.cpp +++ /dev/null @@ -1,49 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestInit.hpp> -#include <TestCompilerMacros.hpp> -#include <TestPolicyConstruction.hpp> diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_LocalDeepCopy.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_LocalDeepCopy.cpp deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_MDRange_a.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_MDRange_a.cpp deleted file mode 100644 index 4f4f8b06c..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_MDRange_a.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestMDRange_a.hpp> diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_MDRange_b.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_MDRange_b.cpp deleted file mode 100644 index 1032d8221..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_MDRange_b.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestMDRange_b.hpp> diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_MDRange_c.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_MDRange_c.cpp deleted file mode 100644 index 59d165ab4..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_MDRange_c.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestMDRange_c.hpp> diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_MDRange_d.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_MDRange_d.cpp deleted file mode 100644 index 49603de6f..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_MDRange_d.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestMDRange_d.hpp> diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_MDRange_e.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_MDRange_e.cpp deleted file mode 100644 index dd6d96630..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_MDRange_e.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestMDRange_e.hpp> diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Other.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Other.cpp deleted file mode 100644 index aba91aee2..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Other.cpp +++ /dev/null @@ -1,51 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestTemplateMetaFunctions.hpp> -#include <TestAggregate.hpp> -#include <TestMemoryPool.hpp> -#include <TestCXX11.hpp> -#include <TestTile.hpp> diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_RangePolicy.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_RangePolicy.cpp deleted file mode 100644 index d9a5bac68..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_RangePolicy.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestRange.hpp> diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_RangePolicyRequire.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_RangePolicyRequire.cpp deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Reducers_a.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Reducers_a.cpp deleted file mode 100644 index 311c7a93b..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Reducers_a.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestReducers_a.hpp> diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Reducers_b.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Reducers_b.cpp deleted file mode 100644 index d5f6b8bc4..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Reducers_b.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestReducers_b.hpp> diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Reducers_c.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Reducers_c.cpp deleted file mode 100644 index e421033e0..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Reducers_c.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestReducers_c.hpp> diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Reducers_d.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Reducers_d.cpp deleted file mode 100644 index ec30e97d3..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Reducers_d.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestReducers_d.hpp> diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Reductions.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Reductions.cpp deleted file mode 100644 index af1d06f0c..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Reductions.cpp +++ /dev/null @@ -1,47 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestReduce.hpp> -#include <TestCXX11Deduction.hpp> diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Reductions_DeviceView.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Reductions_DeviceView.cpp deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Scan.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Scan.cpp deleted file mode 100644 index 50cc88914..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Scan.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestScan.hpp> diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SharedAlloc.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SharedAlloc.cpp deleted file mode 100644 index 6d5645547..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SharedAlloc.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestSharedAlloc.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, impl_shared_alloc) { - test_shared_alloc<Kokkos::Experimental::OpenMPTargetSpace, - Kokkos::DefaultHostExecutionSpace>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_a.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_a.cpp deleted file mode 100644 index 4be6218e2..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_a.cpp +++ /dev/null @@ -1,102 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_auto_1d_left) { - TestViewSubview::test_auto_1d<Kokkos::LayoutLeft, TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_auto_1d_right) { - TestViewSubview::test_auto_1d<Kokkos::LayoutRight, TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_auto_1d_stride) { - TestViewSubview::test_auto_1d<Kokkos::LayoutStride, TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_assign_strided) { - TestViewSubview::test_1d_strided_assignment<TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_left_0) { - TestViewSubview::test_left_0<TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_left_1) { - TestViewSubview::test_left_1<TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_left_2) { - TestViewSubview::test_left_2<TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_left_3) { - TestViewSubview::test_left_3<TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_right_0) { - TestViewSubview::test_right_0<TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_right_1) { - TestViewSubview::test_right_1<TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_right_3) { - TestViewSubview::test_right_3<TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_static_tests) { - TestViewSubview::TestSubviewStaticSizes<TEST_EXECSPACE, - Kokkos::LayoutLeft>()(); - TestViewSubview::TestSubviewStaticSizes<TEST_EXECSPACE, - Kokkos::LayoutRight>()(); - TestViewSubview::TestExtentsStaticTests<TEST_EXECSPACE>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_b.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_b.cpp deleted file mode 100644 index b6488bced..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_b.cpp +++ /dev/null @@ -1,66 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_layoutleft_to_layoutleft) { - TestViewSubview::test_layoutleft_to_layoutleft<TEST_EXECSPACE>(); - TestViewSubview::test_layoutleft_to_layoutleft< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::Atomic> >(); - TestViewSubview::test_layoutleft_to_layoutleft< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -TEST(TEST_CATEGORY, view_subview_layoutright_to_layoutright) { - TestViewSubview::test_layoutright_to_layoutright<TEST_EXECSPACE>(); - TestViewSubview::test_layoutright_to_layoutright< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::Atomic> >(); - TestViewSubview::test_layoutright_to_layoutright< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c01.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c01.cpp deleted file mode 100644 index 3361efcc1..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c01.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_1d_assign) { - TestViewSubview::test_1d_assign<TEST_EXECSPACE>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c02.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c02.cpp deleted file mode 100644 index c4887cf3d..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c02.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_1d_assign_atomic) { - TestViewSubview::test_1d_assign<TEST_EXECSPACE, - Kokkos::MemoryTraits<Kokkos::Atomic> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c03.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c03.cpp deleted file mode 100644 index b172b0c61..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c03.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_1d_assign_randomaccess) { - TestViewSubview::test_1d_assign< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c04.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c04.cpp deleted file mode 100644 index faf0ef7a4..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c04.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_2d_from_3d) { - TestViewSubview::test_2d_subview_3d<TEST_EXECSPACE>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c05.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c05.cpp deleted file mode 100644 index a3fb95fbe..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c05.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(openmptarget, view_subview_2d_from_3d_atomic) { - TestViewSubview::test_2d_subview_3d<TEST_EXECSPACE, - Kokkos::MemoryTraits<Kokkos::Atomic> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c06.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c06.cpp deleted file mode 100644 index 056b392cd..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c06.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_2d_from_3d_randomaccess) { - TestViewSubview::test_2d_subview_3d< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c07.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c07.cpp deleted file mode 100644 index 033bce863..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c07.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_3d_from_5d_left) { - TestViewSubview::test_3d_subview_5d_left<TEST_EXECSPACE>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c08.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c08.cpp deleted file mode 100644 index 58ef42360..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c08.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_3d_from_5d_left_atomic) { - TestViewSubview::test_3d_subview_5d_left< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::Atomic> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c09.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c09.cpp deleted file mode 100644 index 6e6c2af8e..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c09.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_3d_from_5d_left_randomaccess) { - TestViewSubview::test_3d_subview_5d_left< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c10.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c10.cpp deleted file mode 100644 index 2ad95d38c..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c10.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_3d_from_5d_right) { - TestViewSubview::test_3d_subview_5d_right<TEST_EXECSPACE>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c11.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c11.cpp deleted file mode 100644 index da8684d21..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c11.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_3d_from_5d_right_atomic) { - TestViewSubview::test_3d_subview_5d_right< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::Atomic> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c12.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c12.cpp deleted file mode 100644 index dde7d5176..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c12.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_3d_from_5d_right_randomaccess) { - TestViewSubview::test_3d_subview_5d_right< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c13.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c13.cpp deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Team.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Team.cpp deleted file mode 100644 index 74b74d784..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Team.cpp +++ /dev/null @@ -1,83 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestTeam.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, team_for) { - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >::test_for( - 0); - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >::test_for( - 0); - - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >::test_for( - 2); - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >::test_for( - 2); - - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >::test_for( - 1000); - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >::test_for( - 1000); -} - -TEST(TEST_CATEGORY, team_reduce) { - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Static> >::test_reduce(0); - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Dynamic> >::test_reduce(0); - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Static> >::test_reduce(2); - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Dynamic> >::test_reduce(2); - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Static> >::test_reduce(1000); - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Dynamic> >::test_reduce(1000); -} -} // namespace Test - -#include <TestTeamVector.hpp> diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_TeamReductionScan.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_TeamReductionScan.cpp deleted file mode 100644 index e882cd1b2..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_TeamReductionScan.cpp +++ /dev/null @@ -1,81 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestTeam.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, team_scan) { - TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(0); - TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(0); - TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(10); - TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(10); - TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(10000); - TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(10000); -} - -TEST(TEST_CATEGORY, team_long_reduce) { - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(0); - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(0); - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(3); - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(3); - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >( - 100000); - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >( - 100000); -} - -TEST(TEST_CATEGORY, team_double_reduce) { - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(0); - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(0); - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(3); - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(3); - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >( - 100000); - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >( - 100000); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_TeamScratch.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_TeamScratch.cpp deleted file mode 100644 index 729e35918..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_TeamScratch.cpp +++ /dev/null @@ -1,78 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestTeam.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, team_shared_request) { - TestSharedTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(); - TestSharedTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(); -} - -TEST(TEST_CATEGORY, team_scratch_request) { - TestScratchTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(); - TestScratchTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(); -} - -#if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) -TEST_F(TEST_CATEGORY, team_lambda_shared_request) { - TestLambdaSharedTeam<Kokkos::HostSpace, TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Static> >(); - TestLambdaSharedTeam<Kokkos::HostSpace, TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Dynamic> >(); -} -#endif - -TEST(TEST_CATEGORY, shmem_size) { TestShmemSize<TEST_EXECSPACE>(); } - -TEST(TEST_CATEGORY, multi_level_scratch) { - TestMultiLevelScratchTeam<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Static> >(); - TestMultiLevelScratchTeam<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Dynamic> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_TeamTeamSize.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_TeamTeamSize.cpp deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_TeamVectorRange.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_TeamVectorRange.cpp deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_UniqueToken.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_UniqueToken.cpp deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewAPI_a.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewAPI_a.cpp deleted file mode 100644 index 697c374b8..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewAPI_a.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestViewAPI_a.hpp> diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewAPI_b.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewAPI_b.cpp deleted file mode 100644 index 5290d9e7b..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewAPI_b.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestViewAPI_b.hpp> diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewAPI_c.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewAPI_c.cpp deleted file mode 100644 index b882c5e42..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewAPI_c.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestViewAPI_c.hpp> diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewAPI_d.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewAPI_d.cpp deleted file mode 100644 index 7f85ddbc5..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewAPI_d.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestViewAPI_d.hpp> diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewAPI_e.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewAPI_e.cpp deleted file mode 100644 index ff9d7fe2b..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewAPI_e.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestViewAPI_e.hpp> diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewLayoutStrideAssignment.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewLayoutStrideAssignment.cpp deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewMapping_a.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewMapping_a.cpp deleted file mode 100644 index bbacbeda7..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewMapping_a.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestViewMapping_a.hpp> diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewMapping_b.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewMapping_b.cpp deleted file mode 100644 index 87ce96359..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewMapping_b.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestViewMapping_b.hpp> diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewMapping_subview.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewMapping_subview.cpp deleted file mode 100644 index b187afe40..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewMapping_subview.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestViewMapping_subview.hpp> diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewOfClass.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewOfClass.cpp deleted file mode 100644 index c2b40a302..000000000 --- a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewOfClass.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <openmptarget/TestOpenMPTarget_Category.hpp> -#include <TestViewOfClass.hpp> diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewResize.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_ViewResize.cpp deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_View_64bit.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_View_64bit.cpp deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_WorkGraph.cpp b/packages/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_WorkGraph.cpp deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_SharedAlloc.cpp b/packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_SharedAlloc.cpp deleted file mode 100644 index 091cd7499..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_SharedAlloc.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCmHostPinned_Category.hpp> -#include <TestSharedAlloc.hpp> - -namespace Test { - -TEST_F(TEST_CATEGORY, impl_shared_alloc) { - test_shared_alloc<TEST_EXECSPACE, Kokkos::DefaultHostExecutionSpace>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_ViewAPI_a.cpp b/packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_ViewAPI_a.cpp deleted file mode 100644 index b3cce0daf..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_ViewAPI_a.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCmHostPinned_Category.hpp> -#include <TestViewAPI_a.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_ViewAPI_b.cpp b/packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_ViewAPI_b.cpp deleted file mode 100644 index edebed696..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_ViewAPI_b.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCmHostPinned_Category.hpp> -#include <TestViewAPI_b.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_ViewAPI_c.cpp b/packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_ViewAPI_c.cpp deleted file mode 100644 index e2ffbd16a..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_ViewAPI_c.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCmHostPinned_Category.hpp> -#include <TestViewAPI_c.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_ViewAPI_d.cpp b/packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_ViewAPI_d.cpp deleted file mode 100644 index c88b1ecd3..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_ViewAPI_d.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCmHostPinned_Category.hpp> -#include <TestViewAPI_d.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_ViewAPI_e.cpp b/packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_ViewAPI_e.cpp deleted file mode 100644 index 216f72bd6..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_ViewAPI_e.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCmHostPinned_Category.hpp> -#include <TestViewAPI_e.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_ViewCopy.cpp b/packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_ViewCopy.cpp deleted file mode 100644 index 197c4c679..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_ViewCopy.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCmHostPinned_Category.hpp> -#include <TestViewCopy.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_ViewMapping_a.cpp b/packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_ViewMapping_a.cpp deleted file mode 100644 index d1cb384b1..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_ViewMapping_a.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCmHostPinned_Category.hpp> -#include <TestViewMapping_a.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_ViewMapping_b.cpp b/packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_ViewMapping_b.cpp deleted file mode 100644 index cde6d7450..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_ViewMapping_b.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCmHostPinned_Category.hpp> -#include <TestViewMapping_b.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_ViewMapping_subview.cpp b/packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_ViewMapping_subview.cpp deleted file mode 100644 index 77deaedde..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_ViewMapping_subview.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCmHostPinned_Category.hpp> -#include <TestViewMapping_subview.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_View_64bit.cpp b/packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_View_64bit.cpp deleted file mode 100644 index e21aeafe7..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCmHostPinned_View_64bit.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCmHostPinned_Category.hpp> -#include <TestView_64bit.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_All.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_All.cpp deleted file mode 100644 index a9c7e51b6..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_All.cpp +++ /dev/null @@ -1,33 +0,0 @@ -#include "rocm/TestROCm_Init.cpp" - -//#include "rocm/TestROCm_Complex.cpp" -#include "rocm/TestROCm_Reductions.cpp" -//#include "rocm/TestROCm_RangePolicy.cpp" -//#include "rocm/TestROCm_AtomicOperations.cpp" -//#include "rocm/TestROCm_Atomics.cpp" -//#include "rocm/TestROCm_AtomicViews.cpp" -//#include "rocm/TestROCm_Other.cpp" -//#include "rocm/TestROCm_Scan.cpp" -//#include "rocm/TestROCm_SharedAlloc.cpp" -//#include "rocm/TestROCm_SubView_a.cpp" -//#include "rocm/TestROCm_SubView_b.cpp" -//#include "rocm/TestROCm_SubView_c01.cpp" -//#include "rocm/TestROCm_SubView_c02.cpp" -//#include "rocm/TestROCm_SubView_c03.cpp" -//#include "rocm/TestROCm_SubView_c04.cpp" -//#include "rocm/TestROCm_SubView_c05.cpp" -//#include "rocm/TestROCm_SubView_c06.cpp" -//#include "rocm/TestROCm_SubView_c07.cpp" -//#include "rocm/TestROCm_SubView_c08.cpp" -//#include "rocm/TestROCm_SubView_c09.cpp" -//#include "rocm/TestROCm_SubView_c10.cpp" -//#include "rocm/TestROCm_SubView_c11.cpp" -//#include "rocm/TestROCm_SubView_c12.cpp" -//#include "rocm/TestROCm_Team.cpp" -//#include "rocm/TestROCm_TeamReductionScan.cpp" -//#include "rocm/TestROCm_TeamScratch.cpp" -//#include "rocm/TestROCm_ViewAPI_b.cpp" -//#include "rocm/TestROCm_ViewMapping_a.cpp" -//#include "rocm/TestROCm_ViewMapping_b.cpp" -//#include "rocm/TestROCm_ViewMapping_subview.cpp" -//#include "rocm/TestROCm_ViewOfClass.cpp" diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_AtomicOperations_double.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_AtomicOperations_double.cpp deleted file mode 100644 index 98bda0627..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_AtomicOperations_double.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestAtomicOperations_double.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_AtomicOperations_float.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_AtomicOperations_float.cpp deleted file mode 100644 index c8f85dccf..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_AtomicOperations_float.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestAtomicOperations_float.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_AtomicOperations_int.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_AtomicOperations_int.cpp deleted file mode 100644 index 83d36857e..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_AtomicOperations_int.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestAtomicOperations_int.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_AtomicOperations_longint.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_AtomicOperations_longint.cpp deleted file mode 100644 index a0e02160f..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_AtomicOperations_longint.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestAtomicOperations_longint.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_AtomicOperations_longlongint.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_AtomicOperations_longlongint.cpp deleted file mode 100644 index d7dac704e..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_AtomicOperations_longlongint.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestAtomicOperations_longlongint.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_AtomicOperations_unsignedint.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_AtomicOperations_unsignedint.cpp deleted file mode 100644 index b3c4cf271..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_AtomicOperations_unsignedint.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestAtomicOperations_unsignedint.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_AtomicOperations_unsignedlongint.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_AtomicOperations_unsignedlongint.cpp deleted file mode 100644 index 0e6873ed4..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_AtomicOperations_unsignedlongint.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestAtomicOperations_unsignedlongint.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_AtomicViews.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_AtomicViews.cpp deleted file mode 100644 index 393562b88..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_AtomicViews.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestAtomicViews.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_Atomics.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_Atomics.cpp deleted file mode 100644 index 2de70cd9f..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_Atomics.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestAtomic.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_Complex.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_Complex.cpp deleted file mode 100644 index 0e9e92add..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_Complex.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestComplex.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_Crs.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_Crs.cpp deleted file mode 100644 index 7dc9f71b7..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_Crs.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestCrs.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_DeepCopyAlignment.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_DeepCopyAlignment.cpp deleted file mode 100644 index e31c21980..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_DeepCopyAlignment.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestDeepCopy.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_Init.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_Init.cpp deleted file mode 100644 index d3a4addc1..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_Init.cpp +++ /dev/null @@ -1,49 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestInit.hpp> -#include <TestCompilerMacros.hpp> -#include <TestPolicyConstruction.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_MDRangeReduce_a.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_MDRangeReduce_a.cpp deleted file mode 100644 index 13b1b7385..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_MDRangeReduce_a.cpp +++ /dev/null @@ -1,54 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestMDRange.hpp> -namespace Test { - -TEST_F(TEST_CATEGORY, mdrange_5d_reduce) { - TestMDRange_5D<TEST_EXECSPACE>::test_reduce5(100, 10, 10, 10, 5); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_MDRangeReduce_b.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_MDRangeReduce_b.cpp deleted file mode 100644 index 9181caaaf..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_MDRangeReduce_b.cpp +++ /dev/null @@ -1,54 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestMDRange.hpp> -namespace Test { - -TEST_F(TEST_CATEGORY, mdrange_6d_reduce) { - TestMDRange_6D<TEST_EXECSPACE>::test_reduce6(10, 10, 10, 10, 10, 5); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_MDRangeReduce_d.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_MDRangeReduce_d.cpp deleted file mode 100644 index ecff8c39b..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_MDRangeReduce_d.cpp +++ /dev/null @@ -1,54 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestMDRange.hpp> -namespace Test { - -TEST_F(TEST_CATEGORY, mdrange_3d_reduce) { - TestMDRange_3D<TEST_EXECSPACE>::test_reduce3(100, 100, 5); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_MDRangeReduce_e.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_MDRangeReduce_e.cpp deleted file mode 100644 index a773ca17b..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_MDRangeReduce_e.cpp +++ /dev/null @@ -1,54 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestMDRange.hpp> -namespace Test { - -TEST_F(TEST_CATEGORY, mdrange_4d_reduce) { - TestMDRange_4D<TEST_EXECSPACE>::test_reduce4(100, 100, 10, 5); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_MDRange_a.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_MDRange_a.cpp deleted file mode 100644 index 8f3c6544b..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_MDRange_a.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestMDRange_a.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_MDRange_b.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_MDRange_b.cpp deleted file mode 100644 index 40efabf2a..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_MDRange_b.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestMDRange_b.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_MDRange_c.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_MDRange_c.cpp deleted file mode 100644 index 63c02857d..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_MDRange_c.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestMDRange_c.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_MDRange_d.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_MDRange_d.cpp deleted file mode 100644 index ff559b66f..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_MDRange_d.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestMDRange_d.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_MDRange_e.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_MDRange_e.cpp deleted file mode 100644 index 57c383d11..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_MDRange_e.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestMDRange_e.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_Other.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_Other.cpp deleted file mode 100644 index b6240a1b5..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_Other.cpp +++ /dev/null @@ -1,53 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestTemplateMetaFunctions.hpp> -#include <TestAggregate.hpp> -// include<TestMemoryPool.hpp> -#include <TestCXX11.hpp> -#include <TestTile.hpp> - -#include <TestViewCtorPropEmbeddedDim.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_RangePolicy.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_RangePolicy.cpp deleted file mode 100644 index bd85458b6..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_RangePolicy.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestRange.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_Reducers_a.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_Reducers_a.cpp deleted file mode 100644 index 28cffad68..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_Reducers_a.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestReducers_a.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_Reducers_b.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_Reducers_b.cpp deleted file mode 100644 index 0efece4d0..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_Reducers_b.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestReducers_b.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_Reducers_c.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_Reducers_c.cpp deleted file mode 100644 index 929bf35a1..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_Reducers_c.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestReducers_c.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_Reducers_d.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_Reducers_d.cpp deleted file mode 100644 index 4a63aa024..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_Reducers_d.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestReducers_d.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_Reductions.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_Reductions.cpp deleted file mode 100644 index 6b79b9592..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_Reductions.cpp +++ /dev/null @@ -1,47 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestReduce.hpp> -#include <TestCXX11Deduction.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_Scan.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_Scan.cpp deleted file mode 100644 index 798744725..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_Scan.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestScan.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_SharedAlloc.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_SharedAlloc.cpp deleted file mode 100644 index 041d0a82b..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_SharedAlloc.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestSharedAlloc.hpp> - -namespace Test { - -TEST_F(TEST_CATEGORY, impl_shared_alloc) { - test_shared_alloc<Kokkos::Experimental::ROCmSpace, - Kokkos::DefaultHostExecutionSpace>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_Spaces.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_Spaces.cpp deleted file mode 100644 index fe84da591..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_Spaces.cpp +++ /dev/null @@ -1,237 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <Kokkos_Core.hpp> -#include <rocm/TestROCm_Category.hpp> - -namespace Test { - -KOKKOS_INLINE_FUNCTION -void test_abort() { Kokkos::abort("test_abort"); } - -KOKKOS_INLINE_FUNCTION -void test_rocm_spaces_int_value(int *ptr) { - if (*ptr == 42) { - *ptr = 2 * 42; - } -} - -TEST_F(rocm, space_access) { - static_assert(Kokkos::Impl::MemorySpaceAccess<Kokkos::HostSpace, - Kokkos::HostSpace>::assignable, - ""); - - static_assert(Kokkos::Impl::MemorySpaceAccess< - Kokkos::HostSpace, - Kokkos::Experimental::ROCmHostPinnedSpace>::assignable, - ""); - - static_assert( - !Kokkos::Impl::MemorySpaceAccess< - Kokkos::HostSpace, Kokkos::Experimental::ROCmSpace>::assignable, - ""); - - static_assert( - !Kokkos::Impl::MemorySpaceAccess< - Kokkos::HostSpace, Kokkos::Experimental::ROCmSpace>::accessible, - ""); - - //-------------------------------------- - - static_assert(Kokkos::Impl::MemorySpaceAccess< - Kokkos::Experimental::ROCmSpace, - Kokkos::Experimental::ROCmSpace>::assignable, - ""); - - static_assert(!Kokkos::Impl::MemorySpaceAccess< - Kokkos::Experimental::ROCmSpace, - Kokkos::Experimental::ROCmHostPinnedSpace>::assignable, - ""); - - static_assert(Kokkos::Impl::MemorySpaceAccess< - Kokkos::Experimental::ROCmSpace, - Kokkos::Experimental::ROCmHostPinnedSpace>::accessible, - ""); - - static_assert( - !Kokkos::Impl::MemorySpaceAccess<Kokkos::Experimental::ROCmSpace, - Kokkos::HostSpace>::assignable, - ""); - - static_assert( - !Kokkos::Impl::MemorySpaceAccess<Kokkos::Experimental::ROCmSpace, - Kokkos::HostSpace>::accessible, - ""); - - //-------------------------------------- - - static_assert(Kokkos::Impl::MemorySpaceAccess< - Kokkos::Experimental::ROCmHostPinnedSpace, - Kokkos::Experimental::ROCmHostPinnedSpace>::assignable, - ""); - - static_assert(!Kokkos::Impl::MemorySpaceAccess< - Kokkos::Experimental::ROCmHostPinnedSpace, - Kokkos::HostSpace>::assignable, - ""); - - static_assert( - Kokkos::Impl::MemorySpaceAccess<Kokkos::Experimental::ROCmHostPinnedSpace, - Kokkos::HostSpace>::accessible, - ""); - - static_assert(!Kokkos::Impl::MemorySpaceAccess< - Kokkos::Experimental::ROCmHostPinnedSpace, - Kokkos::Experimental::ROCmSpace>::assignable, - ""); - - static_assert(!Kokkos::Impl::MemorySpaceAccess< - Kokkos::Experimental::ROCmHostPinnedSpace, - Kokkos::Experimental::ROCmSpace>::accessible, - ""); - - //-------------------------------------- - - static_assert( - !Kokkos::Impl::SpaceAccessibility<Kokkos::Experimental::ROCm, - Kokkos::HostSpace>::accessible, - ""); - - static_assert(Kokkos::Impl::SpaceAccessibility< - Kokkos::Experimental::ROCm, - Kokkos::Experimental::ROCmSpace>::accessible, - ""); - - static_assert(Kokkos::Impl::SpaceAccessibility< - Kokkos::Experimental::ROCm, - Kokkos::Experimental::ROCmHostPinnedSpace>::accessible, - ""); - - static_assert( - !Kokkos::Impl::SpaceAccessibility< - Kokkos::HostSpace, Kokkos::Experimental::ROCmSpace>::accessible, - ""); - - static_assert(Kokkos::Impl::SpaceAccessibility< - Kokkos::HostSpace, - Kokkos::Experimental::ROCmHostPinnedSpace>::accessible, - ""); - - static_assert( - std::is_same< - Kokkos::Impl::HostMirror<Kokkos::Experimental::ROCmSpace>::Space, - Kokkos::HostSpace>::value, - ""); - - static_assert( - std::is_same<Kokkos::Impl::HostMirror< - Kokkos::Experimental::ROCmHostPinnedSpace>::Space, - Kokkos::Experimental::ROCmHostPinnedSpace>::value, - ""); - - static_assert(Kokkos::Impl::SpaceAccessibility< - Kokkos::Impl::HostMirror<Kokkos::Experimental::ROCm>::Space, - Kokkos::HostSpace>::accessible, - ""); - - static_assert( - Kokkos::Impl::SpaceAccessibility< - Kokkos::Impl::HostMirror<Kokkos::Experimental::ROCmSpace>::Space, - Kokkos::HostSpace>::accessible, - ""); - - static_assert(Kokkos::Impl::SpaceAccessibility< - Kokkos::Impl::HostMirror< - Kokkos::Experimental::ROCmHostPinnedSpace>::Space, - Kokkos::HostSpace>::accessible, - ""); -} - -template <class MemSpace, class ExecSpace> -struct TestViewROCmAccessible { - enum { N = 1000 }; - - using V = Kokkos::View<double *, MemSpace>; - - V m_base; - - struct TagInit {}; - struct TagTest {}; - - KOKKOS_INLINE_FUNCTION - void operator()(const TagInit &, const int i) const { m_base[i] = i + 1; } - - KOKKOS_INLINE_FUNCTION - void operator()(const TagTest &, const int i, long &error_count) const { - if (m_base[i] != i + 1) ++error_count; - } - - TestViewROCmAccessible() : m_base("base", N) {} - - static void run() { - TestViewROCmAccessible self; - Kokkos::parallel_for( - Kokkos::RangePolicy<typename MemSpace::execution_space, TagInit>(0, N), - self); - typename MemSpace::execution_space().fence(); - - // Next access is a different execution space, must complete prior kernel. - long error_count = -1; - Kokkos::parallel_reduce(Kokkos::RangePolicy<ExecSpace, TagTest>(0, N), self, - error_count); - EXPECT_EQ(error_count, 0); - } -}; - -TEST_F(rocm, impl_view_accessible) { - TestViewROCmAccessible<Kokkos::Experimental::ROCmSpace, - Kokkos::Experimental::ROCm>::run(); - - TestViewROCmAccessible<Kokkos::Experimental::ROCmHostPinnedSpace, - Kokkos::Experimental::ROCm>::run(); - TestViewROCmAccessible<Kokkos::Experimental::ROCmHostPinnedSpace, - Kokkos::HostSpace::execution_space>::run(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_a.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_a.cpp deleted file mode 100644 index f766921ff..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_a.cpp +++ /dev/null @@ -1,102 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST_F(TEST_CATEGORY, view_subview_auto_1d_left) { - TestViewSubview::test_auto_1d<Kokkos::LayoutLeft, TEST_EXECSPACE>(); -} - -TEST_F(TEST_CATEGORY, view_subview_auto_1d_right) { - TestViewSubview::test_auto_1d<Kokkos::LayoutRight, TEST_EXECSPACE>(); -} - -TEST_F(TEST_CATEGORY, view_subview_auto_1d_stride) { - TestViewSubview::test_auto_1d<Kokkos::LayoutStride, TEST_EXECSPACE>(); -} - -TEST_F(TEST_CATEGORY, view_subview_assign_strided) { - TestViewSubview::test_1d_strided_assignment<TEST_EXECSPACE>(); -} - -TEST_F(TEST_CATEGORY, view_subview_left_0) { - TestViewSubview::test_left_0<TEST_EXECSPACE>(); -} - -TEST_F(TEST_CATEGORY, view_subview_left_1) { - TestViewSubview::test_left_1<TEST_EXECSPACE>(); -} - -TEST_F(TEST_CATEGORY, view_subview_left_2) { - TestViewSubview::test_left_2<TEST_EXECSPACE>(); -} - -TEST_F(TEST_CATEGORY, view_subview_left_3) { - TestViewSubview::test_left_3<TEST_EXECSPACE>(); -} - -TEST_F(TEST_CATEGORY, view_subview_right_0) { - TestViewSubview::test_right_0<TEST_EXECSPACE>(); -} - -TEST_F(TEST_CATEGORY, view_subview_right_1) { - TestViewSubview::test_right_1<TEST_EXECSPACE>(); -} - -TEST_F(TEST_CATEGORY, view_subview_right_3) { - TestViewSubview::test_right_3<TEST_EXECSPACE>(); -} - -TEST_F(TEST_CATEGORY, view_static_tests) { - TestViewSubview::TestSubviewStaticSizes<TEST_EXECSPACE, - Kokkos::LayoutLeft>()(); - TestViewSubview::TestSubviewStaticSizes<TEST_EXECSPACE, - Kokkos::LayoutRight>()(); - TestViewSubview::TestExtentsStaticTests<TEST_EXECSPACE>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_b.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_b.cpp deleted file mode 100644 index 798ff06b7..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_b.cpp +++ /dev/null @@ -1,66 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST_F(TEST_CATEGORY, view_subview_layoutleft_to_layoutleft) { - TestViewSubview::test_layoutleft_to_layoutleft<TEST_EXECSPACE>(); - TestViewSubview::test_layoutleft_to_layoutleft< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::Atomic> >(); - TestViewSubview::test_layoutleft_to_layoutleft< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -TEST_F(TEST_CATEGORY, view_subview_layoutright_to_layoutright) { - TestViewSubview::test_layoutright_to_layoutright<TEST_EXECSPACE>(); - TestViewSubview::test_layoutright_to_layoutright< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::Atomic> >(); - TestViewSubview::test_layoutright_to_layoutright< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c01.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c01.cpp deleted file mode 100644 index b70923027..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c01.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCmHostPinned_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST_F(TEST_CATEGORY, view_subview_1d_assign) { - TestViewSubview::test_1d_assign<TEST_EXECSPACE>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c02.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c02.cpp deleted file mode 100644 index e28dfed7f..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c02.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCmHostPinned_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST_F(TEST_CATEGORY, view_subview_1d_assign_atomic) { - TestViewSubview::test_1d_assign<TEST_EXECSPACE, - Kokkos::MemoryTraits<Kokkos::Atomic> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c03.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c03.cpp deleted file mode 100644 index bd8afc472..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c03.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCmHostPinned_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST_F(TEST_CATEGORY, view_subview_1d_assign_randomaccess) { - TestViewSubview::test_1d_assign< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c04.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c04.cpp deleted file mode 100644 index f2c5c3674..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c04.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCmHostPinned_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST_F(TEST_CATEGORY, view_subview_2d_from_3d) { - TestViewSubview::test_2d_subview_3d<TEST_EXECSPACE>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c05.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c05.cpp deleted file mode 100644 index 43ef57350..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c05.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCmHostPinned_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST_F(TEST_CATEGORY, view_subview_2d_from_3d_atomic) { - TestViewSubview::test_2d_subview_3d<TEST_EXECSPACE, - Kokkos::MemoryTraits<Kokkos::Atomic> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c06.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c06.cpp deleted file mode 100644 index 985c22843..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c06.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCmHostPinned_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST_F(TEST_CATEGORY, view_subview_2d_from_3d_randomaccess) { - TestViewSubview::test_2d_subview_3d< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c07.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c07.cpp deleted file mode 100644 index 1ddcec570..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c07.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCmHostPinned_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST_F(TEST_CATEGORY, view_subview_3d_from_5d_left) { - TestViewSubview::test_3d_subview_5d_left<TEST_EXECSPACE>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c08.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c08.cpp deleted file mode 100644 index a641bdbdf..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c08.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCmHostPinned_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST_F(TEST_CATEGORY, view_subview_3d_from_5d_left_atomic) { - TestViewSubview::test_3d_subview_5d_left< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::Atomic> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c09.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c09.cpp deleted file mode 100644 index bc2a2d599..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c09.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCmHostPinned_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST_F(TEST_CATEGORY, view_subview_3d_from_5d_left_randomaccess) { - TestViewSubview::test_3d_subview_5d_left< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c10.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c10.cpp deleted file mode 100644 index 59f3bb22d..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c10.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCmHostPinned_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST_F(TEST_CATEGORY, view_subview_3d_from_5d_right) { - TestViewSubview::test_3d_subview_5d_right<TEST_EXECSPACE>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c11.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c11.cpp deleted file mode 100644 index 29c6f181f..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c11.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCmHostPinned_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST_F(TEST_CATEGORY, view_subview_3d_from_5d_right_atomic) { - TestViewSubview::test_3d_subview_5d_right< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::Atomic> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c12.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c12.cpp deleted file mode 100644 index 4fcdcc397..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c12.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCmHostPinned_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST_F(TEST_CATEGORY, view_subview_3d_from_5d_right_randomaccess) { - TestViewSubview::test_3d_subview_5d_right< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c13.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c13.cpp deleted file mode 100644 index f8d52f243..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_SubView_c13.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCmHostPinned_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST_F(TEST_CATEGORY, view_test_unmanaged_subview_reset) { - TestViewSubview::test_unmanaged_subview_reset<TEST_EXECSPACE>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_Team.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_Team.cpp deleted file mode 100644 index 85aeb6637..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_Team.cpp +++ /dev/null @@ -1,83 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestTeam.hpp> - -namespace Test { - -TEST_F(TEST_CATEGORY, team_for) { - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >::test_for( - 0); - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >::test_for( - 0); - - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >::test_for( - 2); - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >::test_for( - 2); - - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >::test_for( - 1000); - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >::test_for( - 1000); -} - -TEST_F(TEST_CATEGORY, team_reduce) { - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Static> >::test_reduce(0); - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Dynamic> >::test_reduce(0); - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Static> >::test_reduce(2); - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Dynamic> >::test_reduce(2); - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Static> >::test_reduce(1000); - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Dynamic> >::test_reduce(1000); -} -} // namespace Test - -#include <TestTeamVector.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_TeamReductionScan.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_TeamReductionScan.cpp deleted file mode 100644 index b82fbf911..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_TeamReductionScan.cpp +++ /dev/null @@ -1,81 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestTeam.hpp> - -namespace Test { - -TEST_F(TEST_CATEGORY, team_scan) { - TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(0); - TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(0); - TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(10); - TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(10); - TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(10000); - TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(10000); -} - -TEST_F(TEST_CATEGORY, team_long_reduce) { - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(0); - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(0); - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(3); - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(3); - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >( - 100000); - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >( - 100000); -} - -TEST_F(TEST_CATEGORY, team_double_reduce) { - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(0); - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(0); - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(3); - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(3); - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >( - 100000); - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >( - 100000); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_TeamTeamSize.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_TeamTeamSize.cpp deleted file mode 100644 index 3ddbe901b..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_TeamTeamSize.cpp +++ /dev/null @@ -1,50 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -// Doesn't work right now due to bug with static sized array member - -//#include <rocm/TestROCm_Category.hpp> -//#ifndef KOKKOS_IMPL_ROCM_CLANG_WORKAROUND -//#include <TestTeamTeamSize.hpp> -//#endif diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_ViewAPI_a.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_ViewAPI_a.cpp deleted file mode 100644 index 5740dedf3..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_ViewAPI_a.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestViewAPI_a.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_ViewAPI_b.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_ViewAPI_b.cpp deleted file mode 100644 index 775908043..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_ViewAPI_b.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestViewAPI_b.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_ViewAPI_c.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_ViewAPI_c.cpp deleted file mode 100644 index bf28aff30..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_ViewAPI_c.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestViewAPI_c.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_ViewAPI_d.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_ViewAPI_d.cpp deleted file mode 100644 index 3dabcdfab..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_ViewAPI_d.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestViewAPI_d.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_ViewAPI_e.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_ViewAPI_e.cpp deleted file mode 100644 index 45633ebab..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_ViewAPI_e.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestViewAPI_e.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_ViewMapping_a.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_ViewMapping_a.cpp deleted file mode 100644 index 0ecaacaea..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_ViewMapping_a.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestViewMapping_a.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_ViewMapping_b.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_ViewMapping_b.cpp deleted file mode 100644 index 7af6e2ff4..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_ViewMapping_b.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestViewMapping_b.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_ViewMapping_subview.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_ViewMapping_subview.cpp deleted file mode 100644 index f8f2e4097..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_ViewMapping_subview.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestViewMapping_subview.hpp> diff --git a/packages/kokkos/core/unit_test/rocm/TestROCm_ViewOfClass.cpp b/packages/kokkos/core/unit_test/rocm/TestROCm_ViewOfClass.cpp deleted file mode 100644 index 2f917ac61..000000000 --- a/packages/kokkos/core/unit_test/rocm/TestROCm_ViewOfClass.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <rocm/TestROCm_Category.hpp> -#include <TestViewOfClass.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_AtomicOperations_complexdouble.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_AtomicOperations_complexdouble.cpp deleted file mode 100644 index fc26bb578..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_AtomicOperations_complexdouble.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestAtomicOperations_complexdouble.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_AtomicOperations_complexfloat.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_AtomicOperations_complexfloat.cpp deleted file mode 100644 index db5a4a000..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_AtomicOperations_complexfloat.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestAtomicOperations_complexfloat.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_AtomicOperations_double.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_AtomicOperations_double.cpp deleted file mode 100644 index 2ce675afd..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_AtomicOperations_double.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestAtomicOperations_double.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_AtomicOperations_float.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_AtomicOperations_float.cpp deleted file mode 100644 index 328bc37f7..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_AtomicOperations_float.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestAtomicOperations_float.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_AtomicOperations_int.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_AtomicOperations_int.cpp deleted file mode 100644 index 5da7f7c3f..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_AtomicOperations_int.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestAtomicOperations_int.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_AtomicOperations_longint.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_AtomicOperations_longint.cpp deleted file mode 100644 index 12cfb1d34..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_AtomicOperations_longint.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestAtomicOperations_longint.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_AtomicOperations_longlongint.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_AtomicOperations_longlongint.cpp deleted file mode 100644 index 884a75e17..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_AtomicOperations_longlongint.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestAtomicOperations_longlongint.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_AtomicOperations_unsignedint.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_AtomicOperations_unsignedint.cpp deleted file mode 100644 index 771730d70..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_AtomicOperations_unsignedint.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestAtomicOperations_unsignedint.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_AtomicOperations_unsignedlongint.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_AtomicOperations_unsignedlongint.cpp deleted file mode 100644 index 7eeea84f7..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_AtomicOperations_unsignedlongint.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestAtomicOperations_unsignedlongint.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_AtomicViews.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_AtomicViews.cpp deleted file mode 100644 index be0b58d33..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_AtomicViews.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestAtomicViews.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_Atomics.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_Atomics.cpp deleted file mode 100644 index 88e3d0b92..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_Atomics.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestAtomic.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_Category.hpp b/packages/kokkos/core/unit_test/serial/TestSerial_Category.hpp index 0989af7f5..d7ae8a9f4 100644 --- a/packages/kokkos/core/unit_test/serial/TestSerial_Category.hpp +++ b/packages/kokkos/core/unit_test/serial/TestSerial_Category.hpp @@ -50,5 +50,6 @@ #define TEST_CATEGORY serial #define TEST_CATEGORY_DEATH serial_DeathTest #define TEST_EXECSPACE Kokkos::Serial +#define TEST_CATEGORY_FIXTURE(name) serial_##name #endif diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_Complex.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_Complex.cpp deleted file mode 100644 index f0cce7a72..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_Complex.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestComplex.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_Concepts.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_Concepts.cpp deleted file mode 100644 index aa2c1577c..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_Concepts.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestConcepts.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_Crs.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_Crs.cpp deleted file mode 100644 index cac55fe01..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_Crs.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestCrs.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_DeepCopyAlignment.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_DeepCopyAlignment.cpp deleted file mode 100644 index 812a4fd99..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_DeepCopyAlignment.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestDeepCopy.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_FunctorAnalysis.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_FunctorAnalysis.cpp deleted file mode 100644 index 403bdb922..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_FunctorAnalysis.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestFunctorAnalysis.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_RangePolicy.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_Graph.cpp similarity index 98% rename from packages/kokkos/core/unit_test/serial/TestSerial_RangePolicy.cpp rename to packages/kokkos/core/unit_test/serial/TestSerial_Graph.cpp index f92daad51..5933b1b86 100644 --- a/packages/kokkos/core/unit_test/serial/TestSerial_RangePolicy.cpp +++ b/packages/kokkos/core/unit_test/serial/TestSerial_Graph.cpp @@ -44,4 +44,4 @@ */ #include <serial/TestSerial_Category.hpp> -#include <TestRange.hpp> +#include <TestGraph.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_Init.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_Init.cpp deleted file mode 100644 index 2cda827a5..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_Init.cpp +++ /dev/null @@ -1,49 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestInit.hpp> -#include <TestCompilerMacros.hpp> -#include <TestPolicyConstruction.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_LocalDeepCopy.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_LocalDeepCopy.cpp deleted file mode 100644 index 809473487..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_LocalDeepCopy.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestLocalDeepCopy.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_MDRange_a.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_MDRange_a.cpp deleted file mode 100644 index 863c91006..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_MDRange_a.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestMDRange_a.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_MDRange_b.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_MDRange_b.cpp deleted file mode 100644 index defe86f10..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_MDRange_b.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestMDRange_b.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_MDRange_c.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_MDRange_c.cpp deleted file mode 100644 index 30f7af2bc..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_MDRange_c.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestMDRange_c.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_MDRange_d.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_MDRange_d.cpp deleted file mode 100644 index c9341ccb5..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_MDRange_d.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestMDRange_d.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_MDRange_e.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_MDRange_e.cpp deleted file mode 100644 index ad12bb26c..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_MDRange_e.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestMDRange_e.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_Other.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_Other.cpp deleted file mode 100644 index ea4ac4e4c..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_Other.cpp +++ /dev/null @@ -1,54 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestTemplateMetaFunctions.hpp> -#include <TestAggregate.hpp> -#include <TestMemoryPool.hpp> -#include <TestCXX11.hpp> -#include <TestTile.hpp> - -#include <TestViewCtorPropEmbeddedDim.hpp> -#include <TestViewLayoutTiled.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_RangePolicyRequire.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_RangePolicyRequire.cpp deleted file mode 100644 index dcc77054d..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_RangePolicyRequire.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestRangeRequire.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_Reducers_a.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_Reducers_a.cpp deleted file mode 100644 index 2dc48e98e..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_Reducers_a.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestReducers_a.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_Reducers_b.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_Reducers_b.cpp deleted file mode 100644 index 2cd85bee1..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_Reducers_b.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestReducers_b.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_Reducers_c.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_Reducers_c.cpp deleted file mode 100644 index 979ea8b41..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_Reducers_c.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestReducers_c.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_Reducers_d.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_Reducers_d.cpp deleted file mode 100644 index a6bdb8129..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_Reducers_d.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestReducers_d.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_Reductions.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_Reductions.cpp deleted file mode 100644 index a5961fbdf..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_Reductions.cpp +++ /dev/null @@ -1,47 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestReduce.hpp> -#include <TestCXX11Deduction.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_Reductions_DeviceView.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_Reductions_DeviceView.cpp deleted file mode 100644 index 6e6c47024..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_Reductions_DeviceView.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestReduceDeviceView.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_Scan.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_Scan.cpp deleted file mode 100644 index 287c05e17..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_Scan.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestScan.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_SharedAlloc.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_SharedAlloc.cpp deleted file mode 100644 index 1b5f2f2dd..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_SharedAlloc.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestSharedAlloc.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, impl_shared_alloc) { - test_shared_alloc<Kokkos::HostSpace, TEST_EXECSPACE>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_SubView_a.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_SubView_a.cpp deleted file mode 100644 index b2a33a7bd..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_SubView_a.cpp +++ /dev/null @@ -1,102 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_auto_1d_left) { - TestViewSubview::test_auto_1d<Kokkos::LayoutLeft, TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_auto_1d_right) { - TestViewSubview::test_auto_1d<Kokkos::LayoutRight, TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_auto_1d_stride) { - TestViewSubview::test_auto_1d<Kokkos::LayoutStride, TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_assign_strided) { - TestViewSubview::test_1d_strided_assignment<TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_left_0) { - TestViewSubview::test_left_0<TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_left_1) { - TestViewSubview::test_left_1<TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_left_2) { - TestViewSubview::test_left_2<TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_left_3) { - TestViewSubview::test_left_3<TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_right_0) { - TestViewSubview::test_right_0<TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_right_1) { - TestViewSubview::test_right_1<TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_right_3) { - TestViewSubview::test_right_3<TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_static_tests) { - TestViewSubview::TestSubviewStaticSizes<TEST_EXECSPACE, - Kokkos::LayoutLeft>()(); - TestViewSubview::TestSubviewStaticSizes<TEST_EXECSPACE, - Kokkos::LayoutRight>()(); - TestViewSubview::TestExtentsStaticTests<TEST_EXECSPACE>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_SubView_b.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_SubView_b.cpp deleted file mode 100644 index 5ea7c7e91..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_SubView_b.cpp +++ /dev/null @@ -1,66 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_layoutleft_to_layoutleft) { - TestViewSubview::test_layoutleft_to_layoutleft<TEST_EXECSPACE>(); - TestViewSubview::test_layoutleft_to_layoutleft< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::Atomic> >(); - TestViewSubview::test_layoutleft_to_layoutleft< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -TEST(TEST_CATEGORY, view_subview_layoutright_to_layoutright) { - TestViewSubview::test_layoutright_to_layoutright<TEST_EXECSPACE>(); - TestViewSubview::test_layoutright_to_layoutright< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::Atomic> >(); - TestViewSubview::test_layoutright_to_layoutright< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c01.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c01.cpp deleted file mode 100644 index bced0bf2e..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c01.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_1d_assign) { - TestViewSubview::test_1d_assign<TEST_EXECSPACE>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c02.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c02.cpp deleted file mode 100644 index d2a3d035b..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c02.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_1d_assign_atomic) { - TestViewSubview::test_1d_assign<TEST_EXECSPACE, - Kokkos::MemoryTraits<Kokkos::Atomic> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c03.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c03.cpp deleted file mode 100644 index 7b531b9f7..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c03.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_1d_assign_randomaccess) { - TestViewSubview::test_1d_assign< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c04.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c04.cpp deleted file mode 100644 index 215fa645b..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c04.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_2d_from_3d) { - TestViewSubview::test_2d_subview_3d<TEST_EXECSPACE>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c05.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c05.cpp deleted file mode 100644 index 4e066f945..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c05.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(serial, view_subview_2d_from_3d_atomic) { - TestViewSubview::test_2d_subview_3d<TEST_EXECSPACE, - Kokkos::MemoryTraits<Kokkos::Atomic> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c06.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c06.cpp deleted file mode 100644 index 803fa75aa..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c06.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_2d_from_3d_randomaccess) { - TestViewSubview::test_2d_subview_3d< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c07.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c07.cpp deleted file mode 100644 index 6bf64ba06..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c07.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_3d_from_5d_left) { - TestViewSubview::test_3d_subview_5d_left<TEST_EXECSPACE>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c08.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c08.cpp deleted file mode 100644 index 691fe1a96..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c08.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_3d_from_5d_left_atomic) { - TestViewSubview::test_3d_subview_5d_left< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::Atomic> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c09.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c09.cpp deleted file mode 100644 index cfbe075c8..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c09.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_3d_from_5d_left_randomaccess) { - TestViewSubview::test_3d_subview_5d_left< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c10.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c10.cpp deleted file mode 100644 index 188653212..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c10.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_3d_from_5d_right) { - TestViewSubview::test_3d_subview_5d_right<TEST_EXECSPACE>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c11.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c11.cpp deleted file mode 100644 index 264d919e2..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c11.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_3d_from_5d_right_atomic) { - TestViewSubview::test_3d_subview_5d_right< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::Atomic> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c12.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c12.cpp deleted file mode 100644 index 53dd79c1e..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c12.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_3d_from_5d_right_randomaccess) { - TestViewSubview::test_3d_subview_5d_right< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c13.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c13.cpp deleted file mode 100644 index a0b1f36a0..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c13.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_test_unmanaged_subview_reset) { - TestViewSubview::test_unmanaged_subview_reset<TEST_EXECSPACE>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c_all.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c_all.cpp deleted file mode 100644 index 53e8573ea..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_SubView_c_all.cpp +++ /dev/null @@ -1,13 +0,0 @@ -#include <serial/TestSerial_SubView_c01.cpp> -#include <serial/TestSerial_SubView_c02.cpp> -#include <serial/TestSerial_SubView_c03.cpp> -#include <serial/TestSerial_SubView_c04.cpp> -#include <serial/TestSerial_SubView_c05.cpp> -#include <serial/TestSerial_SubView_c06.cpp> -#include <serial/TestSerial_SubView_c07.cpp> -#include <serial/TestSerial_SubView_c08.cpp> -#include <serial/TestSerial_SubView_c09.cpp> -#include <serial/TestSerial_SubView_c10.cpp> -#include <serial/TestSerial_SubView_c11.cpp> -#include <serial/TestSerial_SubView_c12.cpp> -#include <serial/TestSerial_SubView_c13.cpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_Team.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_Team.cpp deleted file mode 100644 index 1ee694681..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_Team.cpp +++ /dev/null @@ -1,166 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestTeam.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, team_for) { - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >::test_for( - 0); - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >::test_for( - 0); - - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >::test_for( - 2); - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >::test_for( - 2); - - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >::test_for( - 1000); - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >::test_for( - 1000); -} - -TEST(TEST_CATEGORY, team_reduce) { - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Static> >::test_reduce(0); - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Dynamic> >::test_reduce(0); - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Static> >::test_reduce(2); - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Dynamic> >::test_reduce(2); - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Static> >::test_reduce(1000); - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Dynamic> >::test_reduce(1000); -} - -TEST(TEST_CATEGORY, team_broadcast_long) { - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, - long>::test_teambroadcast(0, 1); - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, - long>::test_teambroadcast(0, 1); - - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, - long>::test_teambroadcast(2, 1); - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, - long>::test_teambroadcast(2, 1); - - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, - long>::test_teambroadcast(16, 1); - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, - long>::test_teambroadcast(16, 1); - - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, - long>::test_teambroadcast(1000, 1); - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, - long>::test_teambroadcast(1000, 1); -} - -TEST(TEST_CATEGORY, team_broadcast_char) { - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, - unsigned char>::test_teambroadcast(0, 1); - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, - unsigned char>::test_teambroadcast(0, 1); - - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, - unsigned char>::test_teambroadcast(2, 1); - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, - unsigned char>::test_teambroadcast(2, 1); - - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, - unsigned char>::test_teambroadcast(16, 1); - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, - unsigned char>::test_teambroadcast(16, 1); -} - -TEST(TEST_CATEGORY, team_broadcast_float) { - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, - float>::test_teambroadcast(0, 1.3); - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, - float>::test_teambroadcast(0, 1.3); - - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, - float>::test_teambroadcast(2, 1.3); - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, - float>::test_teambroadcast(2, 1.3); - - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, - float>::test_teambroadcast(16, 1.3); - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, - float>::test_teambroadcast(16, 1.3); - - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, - float>::test_teambroadcast(1000, 1.3); - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, - float>::test_teambroadcast(1000, 1.3); -} - -TEST(TEST_CATEGORY, team_broadcast_double) { - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, - double>::test_teambroadcast(0, 1.3); - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, - double>::test_teambroadcast(0, 1.3); - - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, - double>::test_teambroadcast(2, 1.3); - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, - double>::test_teambroadcast(2, 1.3); - - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, - double>::test_teambroadcast(16, 1.3); - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, - double>::test_teambroadcast(16, 1.3); - - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, - double>::test_teambroadcast(1000, 1.3); - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, - double>::test_teambroadcast(1000, 1.3); -} -} // namespace Test - -#include <TestTeamVector.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_TeamReductionScan.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_TeamReductionScan.cpp deleted file mode 100644 index 29f77d35a..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_TeamReductionScan.cpp +++ /dev/null @@ -1,81 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestTeam.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, team_scan) { - TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(0); - TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(0); - TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(10); - TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(10); - TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(10000); - TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(10000); -} - -TEST(TEST_CATEGORY, team_long_reduce) { - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(0); - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(0); - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(3); - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(3); - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >( - 100000); - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >( - 100000); -} - -TEST(TEST_CATEGORY, team_double_reduce) { - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(0); - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(0); - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(3); - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(3); - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >( - 100000); - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >( - 100000); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_TeamScratch.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_TeamScratch.cpp deleted file mode 100644 index 5d10c0c5e..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_TeamScratch.cpp +++ /dev/null @@ -1,80 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestTeam.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, team_shared_request) { - TestSharedTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(); - TestSharedTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(); -} - -TEST(TEST_CATEGORY, team_scratch_request) { - TestScratchTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(); - TestScratchTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(); -} - -#if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) -TEST(TEST_CATEGORY, team_lambda_shared_request) { - TestLambdaSharedTeam<Kokkos::HostSpace, TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Static> >(); - TestLambdaSharedTeam<Kokkos::HostSpace, TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Dynamic> >(); -} - -TEST(TEST_CATEGORY, scratch_align) { TestScratchAlignment<TEST_EXECSPACE>(); } -#endif - -TEST(TEST_CATEGORY, shmem_size) { TestShmemSize<TEST_EXECSPACE>(); } - -TEST(TEST_CATEGORY, multi_level_scratch) { - TestMultiLevelScratchTeam<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Static> >(); - TestMultiLevelScratchTeam<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Dynamic> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_TeamTeamSize.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_TeamTeamSize.cpp deleted file mode 100644 index 82f90b13b..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_TeamTeamSize.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestTeamTeamSize.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_TeamVectorRange.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_TeamVectorRange.cpp deleted file mode 100644 index a41f71c95..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_TeamVectorRange.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestTeamVectorRange.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_UniqueToken.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_UniqueToken.cpp deleted file mode 100644 index 859918a7a..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_UniqueToken.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestUniqueToken.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_ViewAPI_a.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_ViewAPI_a.cpp deleted file mode 100644 index 872944f88..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_ViewAPI_a.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestViewAPI_a.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_ViewAPI_b.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_ViewAPI_b.cpp deleted file mode 100644 index 2a63f94fa..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_ViewAPI_b.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestViewAPI_b.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_ViewAPI_c.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_ViewAPI_c.cpp deleted file mode 100644 index f4420ae77..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_ViewAPI_c.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestViewAPI_c.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_ViewAPI_d.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_ViewAPI_d.cpp deleted file mode 100644 index ede25aa6e..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_ViewAPI_d.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestViewAPI_d.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_ViewAPI_e.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_ViewAPI_e.cpp deleted file mode 100644 index eca9c3f9f..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_ViewAPI_e.cpp +++ /dev/null @@ -1,47 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestViewAPI_e.hpp> -#include <TestViewCopy.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_ViewLayoutStrideAssignment.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_ViewLayoutStrideAssignment.cpp deleted file mode 100644 index 37c3126c5..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_ViewLayoutStrideAssignment.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestViewLayoutStrideAssignment.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_ViewMapping_a.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_ViewMapping_a.cpp deleted file mode 100644 index 431485a31..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_ViewMapping_a.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestViewMapping_a.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_ViewMapping_b.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_ViewMapping_b.cpp deleted file mode 100644 index 1e5ce9432..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_ViewMapping_b.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestViewMapping_b.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_ViewMapping_subview.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_ViewMapping_subview.cpp deleted file mode 100644 index 9178b054c..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_ViewMapping_subview.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestViewMapping_subview.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_ViewOfClass.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_ViewOfClass.cpp deleted file mode 100644 index a3813eaff..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_ViewOfClass.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestViewOfClass.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_ViewResize.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_ViewResize.cpp deleted file mode 100644 index 46f1deb1e..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_ViewResize.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestViewResize.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_View_64bit.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_View_64bit.cpp deleted file mode 100644 index 98e836db0..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_View_64bit.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestView_64bit.hpp> diff --git a/packages/kokkos/core/unit_test/serial/TestSerial_WorkGraph.cpp b/packages/kokkos/core/unit_test/serial/TestSerial_WorkGraph.cpp deleted file mode 100644 index 1192e1fa9..000000000 --- a/packages/kokkos/core/unit_test/serial/TestSerial_WorkGraph.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <serial/TestSerial_Category.hpp> -#include <TestWorkGraph.hpp> diff --git a/packages/kokkos/core/unit_test/standalone/UnitTestMainInit.cpp b/packages/kokkos/core/unit_test/standalone/UnitTestMainInit.cpp index c5d4a3667..74e28a17d 100644 --- a/packages/kokkos/core/unit_test/standalone/UnitTestMainInit.cpp +++ b/packages/kokkos/core/unit_test/standalone/UnitTestMainInit.cpp @@ -47,9 +47,6 @@ #include <Kokkos_Core.hpp> -#ifdef KOKKOS_ENABLE_ROCM -#include <rocm/TestROCm_Category.hpp> -#endif #ifdef KOKKOS_ENABLE_CUDA #include <cuda/TestCuda_Category.hpp> #endif diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_AtomicOperations_complexdouble.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_AtomicOperations_complexdouble.cpp deleted file mode 100644 index 7fe140573..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_AtomicOperations_complexdouble.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestAtomicOperations_complexdouble.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_AtomicOperations_complexfloat.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_AtomicOperations_complexfloat.cpp deleted file mode 100644 index 7cac4fa6b..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_AtomicOperations_complexfloat.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestAtomicOperations_complexfloat.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_AtomicOperations_double.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_AtomicOperations_double.cpp deleted file mode 100644 index c6136e9d2..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_AtomicOperations_double.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestAtomicOperations_double.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_AtomicOperations_float.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_AtomicOperations_float.cpp deleted file mode 100644 index e3bca7e3c..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_AtomicOperations_float.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestAtomicOperations_float.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_AtomicOperations_int.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_AtomicOperations_int.cpp deleted file mode 100644 index 0acc4c543..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_AtomicOperations_int.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestAtomicOperations_int.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_AtomicOperations_longint.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_AtomicOperations_longint.cpp deleted file mode 100644 index ffd2e17d0..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_AtomicOperations_longint.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestAtomicOperations_longint.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_AtomicOperations_longlongint.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_AtomicOperations_longlongint.cpp deleted file mode 100644 index 8c73b8fc2..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_AtomicOperations_longlongint.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestAtomicOperations_longlongint.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_AtomicOperations_unsignedint.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_AtomicOperations_unsignedint.cpp deleted file mode 100644 index 5b304f138..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_AtomicOperations_unsignedint.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestAtomicOperations_unsignedint.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_AtomicOperations_unsignedlongint.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_AtomicOperations_unsignedlongint.cpp deleted file mode 100644 index 06f99f54e..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_AtomicOperations_unsignedlongint.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestAtomicOperations_unsignedlongint.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_AtomicViews.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_AtomicViews.cpp deleted file mode 100644 index 162543448..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_AtomicViews.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestAtomicViews.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_Atomics.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_Atomics.cpp deleted file mode 100644 index 84b3a1782..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_Atomics.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestAtomic.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_Complex.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_Complex.cpp deleted file mode 100644 index 1322a4170..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_Complex.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestComplex.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_Concepts.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_Concepts.cpp deleted file mode 100644 index ed2d61ed3..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_Concepts.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestConcepts.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_Crs.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_Crs.cpp deleted file mode 100644 index 61468d874..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_Crs.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestCrs.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_DeepCopyAlignment.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_DeepCopyAlignment.cpp deleted file mode 100644 index 8013087d6..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_DeepCopyAlignment.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestDeepCopy.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_FunctorAnalysis.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_FunctorAnalysis.cpp deleted file mode 100644 index 5dd1cdde1..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_FunctorAnalysis.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestFunctorAnalysis.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_Init.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_Init.cpp deleted file mode 100644 index 8a3300929..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_Init.cpp +++ /dev/null @@ -1,49 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestInit.hpp> -#include <TestCompilerMacros.hpp> -#include <TestPolicyConstruction.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_LocalDeepCopy.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_LocalDeepCopy.cpp deleted file mode 100644 index 32735603a..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_LocalDeepCopy.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestLocalDeepCopy.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_MDRange_a.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_MDRange_a.cpp deleted file mode 100644 index 3d0ee3430..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_MDRange_a.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestMDRange_a.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_MDRange_b.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_MDRange_b.cpp deleted file mode 100644 index 0fa4fcf62..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_MDRange_b.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestMDRange_b.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_MDRange_c.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_MDRange_c.cpp deleted file mode 100644 index 0b21cda75..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_MDRange_c.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestMDRange_c.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_MDRange_d.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_MDRange_d.cpp deleted file mode 100644 index 04bc98b04..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_MDRange_d.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestMDRange_d.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_MDRange_e.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_MDRange_e.cpp deleted file mode 100644 index 5267ae847..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_MDRange_e.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestMDRange_e.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_Other.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_Other.cpp deleted file mode 100644 index 01a07896b..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_Other.cpp +++ /dev/null @@ -1,54 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestTemplateMetaFunctions.hpp> -#include <TestAggregate.hpp> -#include <TestMemoryPool.hpp> -#include <TestCXX11.hpp> -#include <TestTile.hpp> - -#include <TestViewCtorPropEmbeddedDim.hpp> -#include <TestViewLayoutTiled.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_RangePolicy.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_RangePolicy.cpp deleted file mode 100644 index 785469346..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_RangePolicy.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestRange.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_RangePolicyRequire.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_RangePolicyRequire.cpp deleted file mode 100644 index 7a10b8265..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_RangePolicyRequire.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestRangeRequire.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_Reducers_a.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_Reducers_a.cpp deleted file mode 100644 index 8b79d74e8..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_Reducers_a.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestReducers_a.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_Reducers_b.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_Reducers_b.cpp deleted file mode 100644 index b556c4394..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_Reducers_b.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestReducers_b.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_Reducers_c.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_Reducers_c.cpp deleted file mode 100644 index e2c23030a..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_Reducers_c.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestReducers_c.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_Reducers_d.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_Reducers_d.cpp deleted file mode 100644 index aa37b6eb5..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_Reducers_d.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestReducers_d.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_Reductions.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_Reductions.cpp deleted file mode 100644 index 9384590dc..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_Reductions.cpp +++ /dev/null @@ -1,47 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestReduce.hpp> -#include <TestCXX11Deduction.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_Reductions_DeviceView.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_Reductions_DeviceView.cpp deleted file mode 100644 index e5ebb6e8a..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_Reductions_DeviceView.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestReduceDeviceView.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_Scan.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_Scan.cpp deleted file mode 100644 index 12648bf30..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_Scan.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestScan.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_SharedAlloc.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_SharedAlloc.cpp deleted file mode 100644 index 837334c99..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_SharedAlloc.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestSharedAlloc.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, impl_shared_alloc) { - test_shared_alloc<Kokkos::HostSpace, TEST_EXECSPACE>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_SubView_a.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_SubView_a.cpp deleted file mode 100644 index 7298d4cde..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_SubView_a.cpp +++ /dev/null @@ -1,102 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_auto_1d_left) { - TestViewSubview::test_auto_1d<Kokkos::LayoutLeft, TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_auto_1d_right) { - TestViewSubview::test_auto_1d<Kokkos::LayoutRight, TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_auto_1d_stride) { - TestViewSubview::test_auto_1d<Kokkos::LayoutStride, TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_assign_strided) { - TestViewSubview::test_1d_strided_assignment<TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_left_0) { - TestViewSubview::test_left_0<TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_left_1) { - TestViewSubview::test_left_1<TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_left_2) { - TestViewSubview::test_left_2<TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_left_3) { - TestViewSubview::test_left_3<TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_right_0) { - TestViewSubview::test_right_0<TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_right_1) { - TestViewSubview::test_right_1<TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_subview_right_3) { - TestViewSubview::test_right_3<TEST_EXECSPACE>(); -} - -TEST(TEST_CATEGORY, view_static_tests) { - TestViewSubview::TestSubviewStaticSizes<TEST_EXECSPACE, - Kokkos::LayoutLeft>()(); - TestViewSubview::TestSubviewStaticSizes<TEST_EXECSPACE, - Kokkos::LayoutRight>()(); - TestViewSubview::TestExtentsStaticTests<TEST_EXECSPACE>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_SubView_b.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_SubView_b.cpp deleted file mode 100644 index a6f22a082..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_SubView_b.cpp +++ /dev/null @@ -1,66 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_layoutleft_to_layoutleft) { - TestViewSubview::test_layoutleft_to_layoutleft<TEST_EXECSPACE>(); - TestViewSubview::test_layoutleft_to_layoutleft< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::Atomic> >(); - TestViewSubview::test_layoutleft_to_layoutleft< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -TEST(TEST_CATEGORY, view_subview_layoutright_to_layoutright) { - TestViewSubview::test_layoutright_to_layoutright<TEST_EXECSPACE>(); - TestViewSubview::test_layoutright_to_layoutright< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::Atomic> >(); - TestViewSubview::test_layoutright_to_layoutright< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_SubView_c01.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_SubView_c01.cpp deleted file mode 100644 index a568569b4..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_SubView_c01.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_1d_assign) { - TestViewSubview::test_1d_assign<TEST_EXECSPACE>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_SubView_c02.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_SubView_c02.cpp deleted file mode 100644 index 3ea141576..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_SubView_c02.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_1d_assign_atomic) { - TestViewSubview::test_1d_assign<TEST_EXECSPACE, - Kokkos::MemoryTraits<Kokkos::Atomic> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_SubView_c03.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_SubView_c03.cpp deleted file mode 100644 index eaaf11f1b..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_SubView_c03.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_1d_assign_randomaccess) { - TestViewSubview::test_1d_assign< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_SubView_c04.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_SubView_c04.cpp deleted file mode 100644 index 5a5a7962c..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_SubView_c04.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_2d_from_3d) { - TestViewSubview::test_2d_subview_3d<TEST_EXECSPACE>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_SubView_c05.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_SubView_c05.cpp deleted file mode 100644 index 3ab975ebc..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_SubView_c05.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(threads, view_subview_2d_from_3d_atomic) { - TestViewSubview::test_2d_subview_3d<TEST_EXECSPACE, - Kokkos::MemoryTraits<Kokkos::Atomic> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_SubView_c06.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_SubView_c06.cpp deleted file mode 100644 index bcc9c11ad..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_SubView_c06.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_2d_from_3d_randomaccess) { - TestViewSubview::test_2d_subview_3d< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_SubView_c07.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_SubView_c07.cpp deleted file mode 100644 index 2b07bd5d6..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_SubView_c07.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_3d_from_5d_left) { - TestViewSubview::test_3d_subview_5d_left<TEST_EXECSPACE>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_SubView_c08.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_SubView_c08.cpp deleted file mode 100644 index 02f68015a..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_SubView_c08.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_3d_from_5d_left_atomic) { - TestViewSubview::test_3d_subview_5d_left< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::Atomic> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_SubView_c09.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_SubView_c09.cpp deleted file mode 100644 index cd8fbe8bb..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_SubView_c09.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_3d_from_5d_left_randomaccess) { - TestViewSubview::test_3d_subview_5d_left< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_SubView_c10.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_SubView_c10.cpp deleted file mode 100644 index 6f0995bc5..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_SubView_c10.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_3d_from_5d_right) { - TestViewSubview::test_3d_subview_5d_right<TEST_EXECSPACE>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_SubView_c11.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_SubView_c11.cpp deleted file mode 100644 index 7ba93d051..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_SubView_c11.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_3d_from_5d_right_atomic) { - TestViewSubview::test_3d_subview_5d_right< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::Atomic> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_SubView_c12.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_SubView_c12.cpp deleted file mode 100644 index 91b7d67aa..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_SubView_c12.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_subview_3d_from_5d_right_randomaccess) { - TestViewSubview::test_3d_subview_5d_right< - TEST_EXECSPACE, Kokkos::MemoryTraits<Kokkos::RandomAccess> >(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_SubView_c13.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_SubView_c13.cpp deleted file mode 100644 index 4814f206d..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_SubView_c13.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestViewSubview.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, view_test_unmanaged_subview_reset) { - TestViewSubview::test_unmanaged_subview_reset<TEST_EXECSPACE>(); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_Team.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_Team.cpp deleted file mode 100644 index 5d2e36073..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_Team.cpp +++ /dev/null @@ -1,105 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestTeam.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, team_for) { - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >::test_for( - 0); - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >::test_for( - 0); - - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >::test_for( - 2); - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >::test_for( - 2); - - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >::test_for( - 1000); - TestTeamPolicy<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >::test_for( - 1000); -} - -TEST(TEST_CATEGORY, team_reduce) { - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Static> >::test_reduce(0); - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Dynamic> >::test_reduce(0); - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Static> >::test_reduce(2); - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Dynamic> >::test_reduce(2); - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Static> >::test_reduce(1000); - TestTeamPolicy<TEST_EXECSPACE, - Kokkos::Schedule<Kokkos::Dynamic> >::test_reduce(1000); -} - -TEST(TEST_CATEGORY, team_broadcast) { - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, - long>::test_teambroadcast(0, 1); - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, - long>::test_teambroadcast(0, 1); - - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, - long>::test_teambroadcast(2, 1); - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, - long>::test_teambroadcast(2, 1); - - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, - long>::test_teambroadcast(16, 1); - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, - long>::test_teambroadcast(16, 1); - - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static>, - long>::test_teambroadcast(1000, 1); - TestTeamBroadcast<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic>, - long>::test_teambroadcast(1000, 1); -} -} // namespace Test - -#include <TestTeamVector.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_TeamReductionScan.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_TeamReductionScan.cpp deleted file mode 100644 index 2c382c80a..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_TeamReductionScan.cpp +++ /dev/null @@ -1,81 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestTeam.hpp> - -namespace Test { - -TEST(TEST_CATEGORY, team_scan) { - TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(0); - TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(0); - TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(10); - TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(10); - TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(10000); - TestScanTeam<TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(10000); -} - -TEST(TEST_CATEGORY, team_long_reduce) { - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(0); - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(0); - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(3); - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(3); - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >( - 100000); - TestReduceTeam<long, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >( - 100000); -} - -TEST(TEST_CATEGORY, team_double_reduce) { - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(0); - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(0); - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >(3); - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >(3); - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Static> >( - 100000); - TestReduceTeam<double, TEST_EXECSPACE, Kokkos::Schedule<Kokkos::Dynamic> >( - 100000); -} - -} // namespace Test diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_TeamTeamSize.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_TeamTeamSize.cpp deleted file mode 100644 index d5e16dcbd..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_TeamTeamSize.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestTeamTeamSize.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_TeamVectorRange.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_TeamVectorRange.cpp deleted file mode 100644 index 4e216d75d..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_TeamVectorRange.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestTeamVectorRange.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_UniqueToken.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_UniqueToken.cpp deleted file mode 100644 index f8391af88..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_UniqueToken.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestUniqueToken.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_ViewAPI_a.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_ViewAPI_a.cpp deleted file mode 100644 index 91bbd2d16..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_ViewAPI_a.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestViewAPI_a.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_ViewAPI_b.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_ViewAPI_b.cpp deleted file mode 100644 index aaee8e579..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_ViewAPI_b.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestViewAPI_b.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_ViewAPI_c.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_ViewAPI_c.cpp deleted file mode 100644 index 074344d12..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_ViewAPI_c.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestViewAPI_c.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_ViewAPI_d.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_ViewAPI_d.cpp deleted file mode 100644 index 995bb5666..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_ViewAPI_d.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestViewAPI_d.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_ViewAPI_e.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_ViewAPI_e.cpp deleted file mode 100644 index 879f075db..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_ViewAPI_e.cpp +++ /dev/null @@ -1,47 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestViewAPI_e.hpp> -#include <TestViewCopy.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_ViewLayoutStrideAssignment.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_ViewLayoutStrideAssignment.cpp deleted file mode 100644 index 0b54784d9..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_ViewLayoutStrideAssignment.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestViewLayoutStrideAssignment.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_ViewMapping_a.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_ViewMapping_a.cpp deleted file mode 100644 index 22f849a0c..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_ViewMapping_a.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestViewMapping_a.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_ViewMapping_b.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_ViewMapping_b.cpp deleted file mode 100644 index d18b9b899..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_ViewMapping_b.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestViewMapping_b.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_ViewMapping_subview.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_ViewMapping_subview.cpp deleted file mode 100644 index 3e9ce2102..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_ViewMapping_subview.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestViewMapping_subview.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_ViewOfClass.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_ViewOfClass.cpp deleted file mode 100644 index 3018023cb..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_ViewOfClass.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestViewOfClass.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_ViewResize.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_ViewResize.cpp deleted file mode 100644 index a143e3f4d..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_ViewResize.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestViewResize.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_View_64bit.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_View_64bit.cpp deleted file mode 100644 index b347b441e..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_View_64bit.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestView_64bit.hpp> diff --git a/packages/kokkos/core/unit_test/threads/TestThreads_WorkGraph.cpp b/packages/kokkos/core/unit_test/threads/TestThreads_WorkGraph.cpp deleted file mode 100644 index 1ebc7d896..000000000 --- a/packages/kokkos/core/unit_test/threads/TestThreads_WorkGraph.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) 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. -// -// 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 Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE -// 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. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include <threads/TestThreads_Category.hpp> -#include <TestWorkGraph.hpp> diff --git a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp b/packages/kokkos/core/unit_test/tools/TestAllCalls.cpp similarity index 50% rename from packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp rename to packages/kokkos/core/unit_test/tools/TestAllCalls.cpp index a9b1b6d40..7e37816c5 100644 --- a/packages/kokkos/core/src/eti/Serial/Kokkos_Serial_ViewCopyETIInst_int64_t_int_LayoutStride_Rank4.cpp +++ b/packages/kokkos/core/unit_test/tools/TestAllCalls.cpp @@ -1,3 +1,4 @@ +/* //@HEADER // ************************************************************************ // @@ -8,8 +9,6 @@ // Under the terms of Contract DE-NA0003525 with NTESS, // the U.S. Government retains certain rights in this software. // -// Kokkos is licensed under 3-clause BSD terms of use: -// // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: @@ -41,18 +40,50 @@ // // ************************************************************************ //@HEADER +*/ + +// This file calls most of the basic Kokkos primitives. When combined with a +// testing library this tests that our shared-library loading based profiling +// mechanisms work -#define KOKKOS_IMPL_COMPILING_LIBRARY true +#include <iostream> #include <Kokkos_Core.hpp> -namespace Kokkos { -namespace Impl { -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutRight, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutLeft, Serial, - int64_t) -KOKKOS_IMPL_VIEWCOPY_ETI_INST(int****, LayoutStride, LayoutStride, Serial, - int64_t) -KOKKOS_IMPL_VIEWFILL_ETI_INST(int****, LayoutStride, Serial, int64_t) -} // namespace Impl -} // namespace Kokkos +int main() { + Kokkos::initialize(); + { + // This test only uses host kernel launch mechanisms. This is to allow for + // the test to run on platforms where CUDA lambda launch isn't supported. + // This is safe because this test only seeks to test that the dlsym-based + // tool loading mechanisms work, all of which happens completely + // independently of the enabled backends + using execution_space = Kokkos::DefaultHostExecutionSpace; + using memory_space = typename execution_space::memory_space; + Kokkos::View<int*, memory_space> src_view("source", 10); + Kokkos::View<int*, memory_space> dst_view("destination", 10); + Kokkos::deep_copy(dst_view, src_view); + Kokkos::parallel_for("parallel_for", + Kokkos::RangePolicy<execution_space>(0, 1), + [=](int i) { (void)i; }); + int result; + Kokkos::parallel_reduce( + "parallel_reduce", Kokkos::RangePolicy<execution_space>(0, 1), + [=](int i, int& hold_result) { hold_result += i; }, result); + Kokkos::parallel_scan("parallel_scan", + Kokkos::RangePolicy<execution_space>(0, 1), + [=](const int i, int& hold_result, const bool final) { + if (final) { + hold_result += i; + } + }); + Kokkos::Profiling::pushRegion("push_region"); + Kokkos::Profiling::popRegion(); + uint32_t sectionId; + Kokkos::Profiling::createProfileSection("created_section", §ionId); + Kokkos::Profiling::startSection(sectionId); + Kokkos::Profiling::stopSection(sectionId); + Kokkos::Profiling::destroyProfileSection(sectionId); + Kokkos::Profiling::markEvent("profiling_event"); + } + Kokkos::finalize(); +} diff --git a/packages/kokkos/core/unit_test/tools/TestCInterface.c b/packages/kokkos/core/unit_test/tools/TestCInterface.c new file mode 100644 index 000000000..66e68154e --- /dev/null +++ b/packages/kokkos/core/unit_test/tools/TestCInterface.c @@ -0,0 +1,2 @@ +#include <impl/Kokkos_Profiling_C_Interface.h> +int main(){} diff --git a/packages/kokkos/core/unit_test/cuda/TestCuda_FunctorAnalysis.cpp b/packages/kokkos/core/unit_test/tools/TestLogicalSpaces.cpp similarity index 94% rename from packages/kokkos/core/unit_test/cuda/TestCuda_FunctorAnalysis.cpp rename to packages/kokkos/core/unit_test/tools/TestLogicalSpaces.cpp index 036806d8d..4008fd3d5 100644 --- a/packages/kokkos/core/unit_test/cuda/TestCuda_FunctorAnalysis.cpp +++ b/packages/kokkos/core/unit_test/tools/TestLogicalSpaces.cpp @@ -1,4 +1,3 @@ - /* //@HEADER // ************************************************************************ @@ -43,5 +42,8 @@ //@HEADER */ -#include <cuda/TestCuda_Category.hpp> -#include <TestFunctorAnalysis.hpp> +#include <iostream> +#include "Kokkos_Core.hpp" + +#include <tools/TestLogicalSpaces.hpp> +#include "../UnitTestMainInit.cpp" diff --git a/packages/kokkos/core/unit_test/tools/TestLogicalSpaces.hpp b/packages/kokkos/core/unit_test/tools/TestLogicalSpaces.hpp new file mode 100644 index 000000000..29f6dd7a6 --- /dev/null +++ b/packages/kokkos/core/unit_test/tools/TestLogicalSpaces.hpp @@ -0,0 +1,198 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ +#include <iostream> +#include <gtest/gtest.h> +#include "Kokkos_Core.hpp" + +#include <impl/Kokkos_Stacktrace.hpp> + +namespace Test { + +void debug_print(const Kokkos_Profiling_SpaceHandle hand, const char* name, + const void* ptr, const size_t size) { + std::cout << "Alloc: " << hand.name << ", [" << name << "," << ptr << "] " + << size << std::endl; +} +void debug_dealloc(const Kokkos_Profiling_SpaceHandle hand, const char* name, + const void* ptr, const size_t size) { + std::cout << "Dealloc: " << hand.name << ", [" << name << "," << ptr << "] " + << size << std::endl; +} + +void fail_on_event(const Kokkos::Profiling::SpaceHandle, const char*, + const void*, const uint64_t) { + ASSERT_TRUE(false) << "Unexpected memory event"; +} + +void expect_no_events() { + Kokkos::Tools::Experimental::set_allocate_data_callback(&fail_on_event); + Kokkos::Tools::Experimental::set_deallocate_data_callback(&fail_on_event); +} + +std::string expected_view_name; +std::string expected_space_name; +std::string error_message; +void expect_allocation_event(const std::string evn, const std::string esn, + const std::string em) { + expected_view_name = evn; + expected_space_name = esn; + error_message = em; + Kokkos::Tools::Experimental::set_allocate_data_callback( + [](const Kokkos_Profiling_SpaceHandle hand, const char* name, const void*, + const uint64_t) { + ASSERT_EQ(std::string(hand.name), expected_space_name) + << error_message << " (bad handle)"; + ASSERT_EQ(std::string(name), expected_view_name) + << error_message << " (bad view name)"; + expect_no_events(); + }); +} +void expect_deallocation_event(const std::string& evn, const std::string& esn, + const std::string em) { + expected_view_name = evn; + expected_space_name = esn; + error_message = em; + Kokkos::Tools::Experimental::set_deallocate_data_callback( + [](const Kokkos_Profiling_SpaceHandle hand, const char* name, const void*, + const uint64_t) { + ASSERT_EQ(std::string(hand.name), expected_space_name) + << error_message << " (bad handle)"; + ASSERT_EQ(std::string(name), expected_view_name) + << error_message << " (bad view name)"; + expect_no_events(); + }); +} + +struct TestSpaceNamer { + static constexpr const char* get_name() { return "TestSpace"; } +}; +struct TestSpaceNamerTwo { + static constexpr const char* get_name() { return "YoDawg"; } +}; +struct TestSpaceNamerThree { + static constexpr const char* get_name() { return "CustomAccessSpace"; } +}; +using fake_memory_space = Kokkos::Experimental::LogicalMemorySpace< + Kokkos::HostSpace, Kokkos::DefaultHostExecutionSpace, TestSpaceNamer, + Kokkos::Experimental::LogicalSpaceSharesAccess::shared_access>; + +void test_view_construct() { + { + expect_allocation_event("puppy_view", "TestSpace", "View allocation"); + Kokkos::View<double*, fake_memory_space> pup_view("puppy_view", 1000); + expect_deallocation_event("puppy_view", "TestSpace", "View free"); + } + Kokkos::Tools::Experimental::pause_tools(); +} +void test_malloc_free() { + expect_allocation_event("does_malloc_work", "TestSpace", + "Error in malloc event"); + auto* temp = + Kokkos::kokkos_malloc<fake_memory_space>("does_malloc_work", 1000); + expect_deallocation_event("does_malloc_work", "TestSpace", "Error in free"); + Kokkos::kokkos_free(temp); + Kokkos::Tools::Experimental::pause_tools(); +} +void test_chained_spaces() { + using doubly_fake_memory_space = Kokkos::Experimental::LogicalMemorySpace< + fake_memory_space, Kokkos::DefaultHostExecutionSpace, TestSpaceNamerTwo, + Kokkos::Experimental::LogicalSpaceSharesAccess::shared_access>; + { + expect_allocation_event("xzibit_dot_jpeg", "YoDawg", + "Chained space view allocation"); + Kokkos::View<double*, doubly_fake_memory_space> pup_view("xzibit_dot_jpeg", + 1000); + expect_deallocation_event("xzibit_dot_jpeg", "YoDawg", + "Chained space free"); + } + Kokkos::Tools::Experimental::pause_tools(); +} +void test_space_allocations() { + fake_memory_space debug_space; + expect_allocation_event("allocation_from_space", "TestSpace", + "Space allocation"); + auto* temp = debug_space.allocate("allocation_from_space", 1000); + expect_deallocation_event("allocation_from_space", "TestSpace", + "Space deallocation"); + debug_space.deallocate("allocation_from_space", temp, 1000); + Kokkos::Tools::Experimental::pause_tools(); +} +template <typename Space> +struct AccessCheckKernel { + Kokkos::View<double*, Space> data; + KOKKOS_FUNCTION void operator()(const int i) const { data[i] = i; } +}; + +template <typename Space> +void test_allowed_access() { + constexpr const int data_size = 1000; + Kokkos::View<double*, Space> test_view("test_view", data_size); + AccessCheckKernel<Space> functor{test_view}; + Kokkos::parallel_for( + "access_allowed", + Kokkos::RangePolicy<typename Space::execution_space>(0, data_size), + functor); +} + +using semantically_independent_logical_space = + Kokkos::Experimental::LogicalMemorySpace< + Kokkos::HostSpace, Kokkos::DefaultHostExecutionSpace, + TestSpaceNamerThree, + Kokkos::Experimental::LogicalSpaceSharesAccess::no_shared_access>; + +TEST(defaultdevicetype, logical_space_views) { test_view_construct(); } +TEST(defaultdevicetype, logical_space_malloc) { test_malloc_free(); } +TEST(defaultdevicetype, logical_space_alloc) { test_space_allocations(); } +TEST(defaultdevicetype, chained_logical_spaces) { test_chained_spaces(); } +TEST(defaultdevicetype, access_allowed) { + test_allowed_access<fake_memory_space>(); +} +TEST(defaultdevicetype_DeathTest, access_forbidden) { + ::testing::FLAGS_gtest_death_test_style = "threadsafe"; + ASSERT_DEATH( + { test_allowed_access<semantically_independent_logical_space>(); }, + "Kokkos::View ERROR: attempt to access inaccessible memory space"); +} + +} // namespace Test diff --git a/packages/kokkos/core/unit_test/tools/TestTuning.cpp b/packages/kokkos/core/unit_test/tools/TestTuning.cpp new file mode 100644 index 000000000..6bc787023 --- /dev/null +++ b/packages/kokkos/core/unit_test/tools/TestTuning.cpp @@ -0,0 +1,194 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) 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. +// +// 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 Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "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 NTESS OR THE +// 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. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +// This file tests the primitives of the Tuning system + +#include <iostream> +#include <Kokkos_Core.hpp> +#include <stdexcept> +#include <string> +#include <unordered_map> +#include <vector> + +static size_t expectedNumberOfContextVariables; +static int64_t expectedContextVariableValue; + +int main() { + Kokkos::initialize(); + { + auto context = Kokkos::Tools::Experimental::get_new_context_id(); + + Kokkos::Tools::Experimental::VariableInfo contextVariableInfo; + + contextVariableInfo.category = Kokkos::Tools::Experimental:: + StatisticalCategory::kokkos_value_categorical; + contextVariableInfo.type = + Kokkos::Tools::Experimental::ValueType::kokkos_value_int64; + contextVariableInfo.valueQuantity = + Kokkos::Tools::Experimental::CandidateValueType::kokkos_value_unbounded; + + Kokkos::Tools::Experimental::VariableInfo tuningVariableInfo; + + tuningVariableInfo.category = Kokkos::Tools::Experimental:: + StatisticalCategory::kokkos_value_categorical; + tuningVariableInfo.type = + Kokkos::Tools::Experimental::ValueType::kokkos_value_int64; + tuningVariableInfo.valueQuantity = + Kokkos::Tools::Experimental::CandidateValueType::kokkos_value_set; + + std::vector<int64_t> candidate_value_vector = {0, 1, 2, 3, 4, + 5, 6, 7, 8, 9}; + + Kokkos::Tools::Experimental::SetOrRange allowed_values = + Kokkos::Tools::Experimental::make_candidate_set( + candidate_value_vector.size(), candidate_value_vector.data()); + // test that ID's are transmitted to the tool + Kokkos::Tools::Experimental::set_declare_output_type_callback( + [](const char*, const size_t, + Kokkos::Tools::Experimental::VariableInfo* info) { + if (info->type != + Kokkos::Tools::Experimental::ValueType::kokkos_value_int64) { + throw(std::runtime_error("Tuning Variable has wrong type")); + } + }); + Kokkos::Tools::Experimental::set_declare_input_type_callback( + [](const char*, const size_t, + Kokkos::Tools::Experimental::VariableInfo* info) { + if (info->type != + Kokkos::Tools::Experimental::ValueType::kokkos_value_int64) { + throw(std::runtime_error("Context Variable has wrong type")); + } + }); + tuningVariableInfo.candidates = allowed_values; + auto contextVariableId = Kokkos::Tools::Experimental::declare_input_type( + "kokkos.testing.context_variable", contextVariableInfo); + auto tuningVariableId = Kokkos::Tools::Experimental::declare_output_type( + "kokkos.testing.tuning_variable", tuningVariableInfo); + + // test that we correctly pass context values, and receive tuning variables + // back in return + Kokkos::Tools::Experimental::VariableValue contextValues[] = { + Kokkos::Tools::Experimental::make_variable_value(contextVariableId, + int64_t(0))}; + Kokkos::Tools::Experimental::set_input_values(context, 1, contextValues); + + Kokkos::Tools::Experimental::set_request_output_values_callback( + [](const size_t, const size_t, + const Kokkos::Tools::Experimental::VariableValue* context_values, + const size_t, + Kokkos::Tools::Experimental::VariableValue* tuning_values) { + auto candidate_values = tuning_values[0].metadata->candidates; + if (context_values[0].value.int_value != + expectedContextVariableValue) { + throw std::runtime_error( + "Context variables not correctly passed to tuning callbacks"); + } + int tuningVariableSetSize = candidate_values.set.size; + std::cout << "Set of size " << tuningVariableSetSize << std::endl; + // tuning methodology via https://xkcd.com/221/ + tuning_values[0].value.int_value = + candidate_values.set.values.int_value[4 % tuningVariableSetSize]; + }); + + Kokkos::Tools::Experimental::VariableValue tuningValues[] = { + Kokkos::Tools::Experimental::make_variable_value(tuningVariableId, + int64_t(0))}; + + Kokkos::Tools::Experimental::request_output_values(context, 1, + tuningValues); + std::cout << tuningValues[0].value.int_value << "," + << candidate_value_vector[4] << std::endl; + if (tuningValues[0].value.int_value != candidate_value_vector[4]) { + throw std::runtime_error("Tuning value return is incorrect"); + } + + Kokkos::Tools::Experimental::end_context(context); + + // test nested contexts + auto outerContext = Kokkos::Tools::Experimental::get_new_context_id(); + auto innerContext = Kokkos::Tools::Experimental::get_new_context_id(); + + Kokkos::Tools::Experimental::VariableInfo secondContextVariableInfo; + + secondContextVariableInfo.category = Kokkos::Tools::Experimental:: + StatisticalCategory::kokkos_value_categorical; + secondContextVariableInfo.type = + Kokkos::Tools::Experimental::ValueType::kokkos_value_int64; + secondContextVariableInfo.valueQuantity = + Kokkos::Tools::Experimental::CandidateValueType::kokkos_value_unbounded; + auto secondContextVariableId = + Kokkos::Tools::Experimental::declare_output_type( + "kokkos.testing.second_context_variable", + secondContextVariableInfo); + + Kokkos::Tools::Experimental::VariableValue contextValueTwo[] = { + Kokkos::Tools::Experimental::make_variable_value( + secondContextVariableId, int64_t(1))}; + + Kokkos::Tools::Experimental::set_request_output_values_callback( + [](const size_t, const size_t num_context_variables, + const Kokkos::Tools::Experimental::VariableValue*, const size_t, + Kokkos::Tools::Experimental::VariableValue*) { + std::cout << "Expect " << expectedNumberOfContextVariables + << ", have " << num_context_variables << std::endl; + if (num_context_variables != expectedNumberOfContextVariables) { + throw( + std::runtime_error("Incorrect number of context variables in " + "nested tuning contexts")); + } + }); + Kokkos::Tools::Experimental::set_input_values(outerContext, 1, + contextValues); + expectedNumberOfContextVariables = 1; + Kokkos::Tools::Experimental::request_output_values(outerContext, 1, + tuningValues); + Kokkos::Tools::Experimental::set_input_values(innerContext, 1, + contextValueTwo); + expectedNumberOfContextVariables = 2; + Kokkos::Tools::Experimental::request_output_values(innerContext, 1, + tuningValues); + } // end Kokkos block + + Kokkos::finalize(); +} diff --git a/packages/kokkos/core/unit_test/tools/printing-tool.cpp b/packages/kokkos/core/unit_test/tools/printing-tool.cpp new file mode 100644 index 000000000..c2abada0a --- /dev/null +++ b/packages/kokkos/core/unit_test/tools/printing-tool.cpp @@ -0,0 +1,118 @@ + +#include <inttypes.h> +#include <iostream> + +struct Kokkos_Profiling_KokkosPDeviceInfo; + +struct SpaceHandle { + char name[64]; +}; + +const int parallel_for_id = 0; +const int parallel_reduce_id = 1; +const int parallel_scan_id = 2; + +extern "C" void kokkosp_init_library( + const int /*loadSeq*/, const uint64_t /*interfaceVer*/, + const uint32_t /*devInfoCount*/, + Kokkos_Profiling_KokkosPDeviceInfo* /* deviceInfo */) { + std::cout << "kokkosp_init_library::"; +} + +extern "C" void kokkosp_finalize_library() { + std::cout << "kokkosp_finalize_library::"; +} + +extern "C" void kokkosp_begin_parallel_for(const char* name, + const uint32_t devID, + uint64_t* kID) { + *kID = parallel_for_id; + std::cout << "kokkosp_begin_parallel_for:" << name << ":" << devID << ":" + << *kID << "::"; +} + +extern "C" void kokkosp_end_parallel_for(const uint64_t kID) { + std::cout << "kokkosp_end_parallel_for:" << kID << "::"; +} + +extern "C" void kokkosp_begin_parallel_scan(const char* name, + const uint32_t devID, + uint64_t* kID) { + *kID = parallel_scan_id; + std::cout << "kokkosp_begin_parallel_scan:" << name << ":" << devID << ":" + << *kID << "::"; +} + +extern "C" void kokkosp_end_parallel_scan(const uint64_t kID) { + std::cout << "kokkosp_end_parallel_scan:" << kID << "::"; +} + +extern "C" void kokkosp_begin_parallel_reduce(const char* name, + const uint32_t devID, + uint64_t* kID) { + *kID = parallel_reduce_id; + std::cout << "kokkosp_begin_parallel_reduce:" << name << ":" << devID << ":" + << *kID << "::"; +} + +extern "C" void kokkosp_end_parallel_reduce(const uint64_t kID) { + std::cout << "kokkosp_end_parallel_reduce:" << kID << "::"; +} + +extern "C" void kokkosp_push_profile_region(char* regionName) { + std::cout << "kokkosp_push_profile_region:" << regionName << "::"; +} + +extern "C" void kokkosp_pop_profile_region() { + std::cout << "kokkosp_pop_profile_region::"; +} + +extern "C" void kokkosp_allocate_data(SpaceHandle handle, const char* name, + void* ptr, uint64_t size) { + std::cout << "kokkosp_allocate_data:" << handle.name << ":" << name << ":" + << ptr << ":" << size << "::"; +} + +extern "C" void kokkosp_deallocate_data(SpaceHandle handle, const char* name, + void* ptr, uint64_t size) { + std::cout << "kokkosp_deallocate_data:" << handle.name << ":" << name << ":" + << ptr << ":" << size << "::"; +} + +extern "C" void kokkosp_begin_deep_copy(SpaceHandle dst_handle, + const char* dst_name, + const void* dst_ptr, + SpaceHandle src_handle, + const char* src_name, + const void* src_ptr, uint64_t size) { + std::cout << "kokkosp_begin_deep_copy:" << dst_handle.name << ":" << dst_name + << ":" << dst_ptr << ":" << src_handle.name << ":" << src_name + << ":" << src_ptr << ":" << size << "::"; +} + +extern "C" void kokkosp_end_deep_copy() { + std::cout << "kokkosp_end_deep_copy::"; +} + +uint32_t section_id = 3; +extern "C" void kokkosp_create_profile_section(const char* name, + uint32_t* sec_id) { + *sec_id = section_id; + std::cout << "kokkosp_create_profile_section:" << name << ":" << *sec_id + << "::"; +} + +extern "C" void kokkosp_start_profile_section(uint32_t sec_id) { + std::cout << "kokkosp_start_profile_section:" << sec_id << "::"; +} + +extern "C" void kokkosp_stop_profile_section(uint32_t sec_id) { + std::cout << "kokkosp_stop_profile_section:" << sec_id << "::"; +} +extern "C" void kokkosp_destroy_profile_section(uint32_t sec_id) { + std::cout << "kokkosp_destroy_profile_section:" << sec_id << "::"; +} + +extern "C" void kokkosp_profile_event(const char* name) { + std::cout << "kokkosp_profile_event:" << name << "::"; +} diff --git a/packages/kokkos/doc/TuningDesign.md b/packages/kokkos/doc/TuningDesign.md new file mode 100644 index 000000000..a058c15bc --- /dev/null +++ b/packages/kokkos/doc/TuningDesign.md @@ -0,0 +1,221 @@ +#Kokkos Tuning + +This is a design document describing the motivation, ideas, design, and prototype implementation of the Kokkos Tuning System + +## Motivation + +Currently, Kokkos makes a lot of decisions about tuning parameters (CUDA block sizes, different kernel implementations) +by picking an option that results in the best performance for the widest array of applications and architectures at the +time the choice is made. This approach leaves performance on the table, and appears increasingly untenable as the number +of architectures and applications grows, and as software versions change. + +The Kokkos team would like to instead open up the ability to set the parameters as part of the tooling system so that +these parameters can be tuned for individual applications across all the architectures they might run on. In order to match the +feel of past Kokkos tooling efforts, we'd like to achieve this with a callback system. + +## Ideas + +A Kokkos Tuning system should be as small as is wise while achieving the following goals + +1. Expose to tools enough data about the _context_ of the running application to tune intelligently. In autotuning terms, decribe the _features_ +2. Expose to tools enough data about tuning parameters that they might know how to optimize what they're asked to +3. Expose to applications an interface that they might inform a tool about their current application context +4. Expose to tools the results of their choices +5. No perturbation of Kokkos Core when this system is disabled + +Shared among the first three of these goals is a need for some way to describe the semantics of variables (tuning parameters, context variables) +internal to Kokkos or an application to an outside tool. + +### Semantics of Variables + +I think it's best to talk about the semantics of variables with concrete examples. + +Suppose Kokkos wants a tool to choose a block size for it. Suppose all the application context is perfectly understood, that the tool knows +that the application has 10,000,000 particles active and that it's running a kernel called "make_particles_go," which is a parallel_for in +the "cuda" execution space. Even with this knowledge, the tool needs to know several things about what a block size _is_ for this to be generic and practical + +1. Is it an integer value? A float? A string? (Type) +2. Relatedly, what are the mathematical semantics which are valid for it? Is it something +for which a list can be sorted? Do the distances between items in a sorted list make sense? +If I divide two values, does the ratio have some meaning? (semantics) +3. What are the valid choices for this value? Is a block size of -128 okay? How about 7? (candidates) + +Semantics (as always) are likely the source of the most confusion here, so a bit of detail is good. Here I'm leaning heavily on the field +of statistics to enable tools to do intelligent searching. If ordering doesn't make sense, if a value is "categorical", the only thing +a tool can do is try all possible values for a tuning value. If they're ordered (ordinal), the search can take advantage of this by +using the concept of a directional search. If the distances between elements matter (interval data) you can cheat with things like +bisection. Finally if ratios matter you can play games where you increase by a factor of 10 in your searches. Note that one good point in favor of this design is that it matches up nicely with scikit-opt (a happy accident). + +In describing the candidate values in (3), users have two options: sets or ranges. A set has a number of entries of the given type, a range has lower and upper bounds and a step size. + +Claim: the combination of context, candidates, semantics, and types gives a tool enough to intelligently explore the search space of +tuning parameters + +### Context + +Suppose a tool perfectly understands what a block size is. To effectively tune one, it needs to know something about the application. + +In a trivial case, the tool knows absolutely nothing other than candidate values for the block size, and tries to make a choice that optimizes across all +invocations of kernels. This isn't _that_ far from what Kokkos does now, so it's not unreasonable for this to produce decent results. +That said, we could quickly add some context from Kokkos, stuff like the name and type of the kernel, the execution space, all with the semantic information described above. That way a tuning tool could differentiate based on all the information available to Kokkos. Going a little further, we could expose this ability to provide context to our applications. What if the tools wasn't just tuning to the fact that the kernel name was "GEMM", but that "matrix_size" was a million? Or that "live_particles" had a +certain value? The more (relevant) context we provide to a tool, the better it will be able to tune. + + +### Intended Tool Workflow + +Okay, so a tool knows what it's tuning, and it knows the context of the application well enough to do clever ML things, all of this with happy semantic information so that everything make . What should a workflow look like? A tool should + +1) Listen to declarations about the semantics of context and tuning variables +2) Make tuning decisions +3) Measure their feedback +4) Get better at (2) + +The easier we make this loop, the better + +## Design + +The design of this system is intended to reflect the above ideas with the minimal necessary additions to make the mechanics work. This section is almost entirely describing the small holes in the above descriptions. Variable declaration works exactly as described above, except that we associate types and associated values using a type_id with each type at declaration time. + +Any time a value of a variable is declared (context) or requested (tuning), it is also associated with a context ID that says how long that declaration is valid for. So if a user sees + +```c++ +startContext(contextId(0)) +declare_value("is_safe_to_push_button",true,contextId(0)); +foo(); +endContext(contextId(0)); +bar(); +``` + +They should know in `bar` that it is no longer safe to push the button. Similarly, if tools have provided tuning values to contextId(0), when contextId(0) ends, that is when the tool takes measurements related to those tuning values and learns things. *For most tools, when they see a call to startContext associated with a contextId, they'll do a starting measurement, and at endContext they'll stop that measurement*. + +One ugly bit of semantic complexity is in variables with complicated sets of candidates. Taking the exmaple of GPU block size, for different kernels an application might have different sets of valid block sizes. This means that while "block size" might make sense as a type, there could be different types, "block_sizes_up_to_1024," "block_sizes_up_to_2048," that cover the concept of block size. In our experience every solution to this problem is ugly, our alternate answers were much uglier. + +## Implementation + +This section describes the implementation. + +If you're writing a tool, you care about tool implementation. + +If you want tools to know about information from your application, you care about application implementation + +If you're a Kokkos developer, you care about the application implementation and Kokkos implementation + +### Tool implementation + +In the past, tools have responded to the [profiling hooks in Kokkos](https://github.com/kokkos/kokkos-tools/wiki/Profiling-Hooks). This effort adds to that, there are now a few more functions (note that I'm using the C names for types. In general you can replace Kokkos_Tools_ with Kokkos::Tools:: in C++ tools) + + +```c++ +void kokkosp_declare_output_type(const char* name, const size_t id, Kokkos_Tools_VariableInfo& info); +``` + +Declares a tuning variable named `name` with uniqueId `id` and all the semantic information stored in `info`. Note that the VariableInfo struct has a `void*` field called `toolProvidedInfo`. If you fill this in, every time you get a value of that type you'll also get back that same pointer. + +```c++ +void kokkosp_declare_input_type(const char*, const size_t, Kokkos_Tools_VariableInfo& info); +``` + +This is almost exactly like declaring a tuning variable. The only difference is that in cases where the candidate values aren't known, `info.valueQuantity` will be set to `kokkos_value_unbounded`. This is fairly common, Kokkos can tell you that `kernel_name` is a string, but we can't tell you what strings a user might provide. + +```c++ +void kokkosp_request_values( + const size_t contextId, + const size_t numContextVariables, const Kokkos_Tools_VariableValue* contextVariableValues, + const size_t numTuningVariables, Kokkos_Tools_VariableValue* tuningVariableValues); +``` + +Here Kokkos is requesting the values of tuning variables, and most of the meat is here. The contextId tells us the scope across which these variables were used. + +The next two arguments describe the context you're tuning in. You have the number of context variables, and an array of that size containing their values. Note that the Kokkos_Tuning_VariableValue has a field called `metadata` containing all the info (type, semantics, and critically, candidates) about that variable. + +The two arguments following those describe the Tuning Variables. First the number of them, then an array of that size which you can overwrite. *Overwriting those values is how you give values back to the application* + +Critically, as tuningVariableValues comes preloaded with default values, if your function body is `return;` you will not crash Kokkos, only make us use our defaults. If you don't know, you are allowed to punt and let Kokkos do what it would. + +```c++ +void kokkosp_begin_context(size_t contextId); +``` + +This starts the context pointed at by contextId. If tools use measurements to drive tuning, this is where they'll do their starting measurement. + +```c++ +void kokkosp_end_context(const size_t contextId); +``` + +This simply says that the contextId in the argument is now over. If you provided tuning values associated with that context, those values can now be associated with a result. + +### App Implementation + +For 99% of applications, all you need to do to interact with Kokkos Tuning Tools in your code is nothing. The only exceptions are if you want the tuning to be aware of what's happening in your application (number of particles active, whether different physics are active) if +you think that might change what the Tuning decides. If you're feeling especially brave, you can also use the Tuning interface to tune parameters within your own application. For making people aware of your application context, you need to know about a few functions + + +```c++ +size_t Kokkos::Tools::Experimental::declare_input_type(const std::string& variableName + VariableInfo info, + ); +``` + +This function tells a tool that you have some variable they should know about when tuning. The info describes the semantics of your variable. This is discussed in great detail under "Semantics of Variables", but you need to say whether the values will be text, int, or float, whether they're categorical, ordinal,interval, or ratio data, and whether the candidate values are "unbounded" (if you don't know the full set of values), a set, or a range. This returns a `size_t` that you should store, it's how you'll later identify what values you're providing or requesting from the tool. Note that this call doesn't actually tell the tools about values, it simply tells the tool about the nature of values you'll provide later. + + +```c++ +size_t Kokkos::Tools::Experimental::get_new_context_id(); +size_t Kokkos::Tools::Experimental::get_current_context_id(); +``` + + In this interface, + you will associate values with + "contexts" in order to decide when a given declaration of a value has gone + out of scope.The first gets you a new context + ID if you 're starting some new set of values. If you need to recover the last context ID so you can append to that context, rather than overwriting it with a new one, you can use `get_current_context_id()`. You' ll + use that context id to start a context in the function + +```c++ void Kokkos::Tools::Experimental::begin_context(size_t context_id); +``` + +This tells the tool that you're beginning a region in which you'll be setting and requesting values. If the tool optimizes for time, you're telling them to start their timer. + + +```c++ +void Kokkos::Tools::Experimental::set_input_values(size_t contextId, size_t count, + VariableValue* values); +``` + +Here you tell tools the values for your context variables. The contextId is used to later tell when this has gone out of scope, the count is how many variables you're declaring, and the values should come from calling `Kokkos::Tools::Experimental::make_variable_value` with the appropriate variable ID and value. + +```c++ +void Kokkos::Tools::Experimental::end_context(size_t contextId); +``` + + This tells the tool that values from this context are no longer valid, + and that the tool should stop their timers. + + For those who want to declare and request tuning variables, + you only need two more functions. + +```c++ void Kokkos::Tools::Experimental::declare_output_type( + const std::string&variableName VariableInfo info); +``` + + This is exactly like declareContextVariable.The only difference is that + the + ID's this returns should be passed to request_output_values, and that the `candidates` field in the info _must_ list valid values for the tool to provide. + +```c++ void Kokkos::Tools::Experimental::request_output_values( + size_t contextId, size_t count, VariableValue* values, ); +``` + +Here is where you request that the tool give you a set of values. You need a contextId so that the tool can know when you're done using the value and measure results. The count tells the tool how many variables it's providing values for. Values is an array of your default values for that parameter, it must not crash your program if unchanged. + +### Kokkos implementation + +In the past, Kokkos and Kokkos-tools didn't share source code. Except for a "SpaceHandle" struct which users manually copied to their tools, nothing from Kokkos hit the tools repo, the interface consisted entirely of basic C types. If you read the ideas section, it translates to a lot of structs and enums. Despite my best efforts to minimize them, I think we now need to share some header files with kokkos-tools. Andrew Gaspar did really excellent work making this practical, we have + +1) Kokkos_Profiling_C_Interface.h , which is (shockingly) a C interface that everything in Kokkos tools boils down to +2) Kokkos_Profiling_Interface.hpp, nice C++ wrappers around the C so that the C idioms don't hit Kokkos +3) Kokkos_Profiling.[cpp/hpp], which contain things Kokkos needs to implement tooling, but the tools don't need to know about + +All of our function pointer initialization and all that mess now go into Kokkos_Profiling.[cpp/hpp], all the types are in the Interface files. The interface files will be shared with kokkos/kokkos-tools. + +In terms of build changes, we now install the above .h file, and have a KOKKOS_ENABLE_TUNING option diff --git a/packages/kokkos/doc/develop_builds.md b/packages/kokkos/doc/develop_builds.md index 080e43e11..3fe4e6f67 100644 --- a/packages/kokkos/doc/develop_builds.md +++ b/packages/kokkos/doc/develop_builds.md @@ -10,8 +10,6 @@ added: * Interface for cmake system + Makefile.kokkos * Main logic for build (make and cmake) and defines (KokkosCore_config.h) - + core/unit_test/UnitTestConfig.make - * Unit test for Makefile.kokkos In general, an architecture is going to be from on of these platforms: + AMD @@ -56,21 +54,3 @@ the sources (generated makefile and cmake snippets by `core/src/Makefile`), for setting the defines in KokkosCore_config.h, and defining various internal variables. To understand how to add to this file, you should work closely with the Kokkos development team. - - -### core/unit_test/UnitTestConfig.make - -This file is used to check the build system in a platform-independent way. It -works by looping over available architectures and devices; thus, you should add -your new architecure to KOKKOS_ARCH_OPTIONS and your new device to -KOKKOS_DEVICE_OPTIONS to be tested. The build system tests work by grepping the -generated build files (automatically). The header file tests work by diffing -the generated file with results that are stored in -`core/unit_tests/config/results` (namespaced by ARCH_DEVICE_). Thus, you will -need to add accepted results to this directory for diffing. - -The CMake build system is also tested in `core/unit_tests/config/cmaketest`. -Because it uses cmake/kokkos_options.cmake, it already has the tests to loop -over. It is diffed with the same files that the build system is tested with. -Thus, if you are consistent in all of the files listed, the unit tests should -pass automatically. diff --git a/packages/kokkos/example/CMakeLists.txt b/packages/kokkos/example/CMakeLists.txt index 34157329d..3db566f83 100644 --- a/packages/kokkos/example/CMakeLists.txt +++ b/packages/kokkos/example/CMakeLists.txt @@ -5,8 +5,7 @@ KOKKOS_SUBPACKAGE(Example) KOKKOS_ADD_EXAMPLE_DIRECTORIES(query_device) -if(NOT Kokkos_ENABLE_CUDA) - KOKKOS_ADD_EXAMPLE_DIRECTORIES(tutorial) -endif() +KOKKOS_ADD_EXAMPLE_DIRECTORIES(tutorial) + KOKKOS_SUBPACKAGE_POSTPROCESS() diff --git a/packages/kokkos/example/build_cmake_in_tree/CMakeLists.txt b/packages/kokkos/example/build_cmake_in_tree/CMakeLists.txt index 8e1aa0472..721780707 100644 --- a/packages/kokkos/example/build_cmake_in_tree/CMakeLists.txt +++ b/packages/kokkos/example/build_cmake_in_tree/CMakeLists.txt @@ -1,44 +1,19 @@ -# Kokkos requires CMake version 3.1 or higher and that you have the following -# line with a version of 3.1 or higher as the first line of your project: -# cmake_minimum_required(VERSION 3.1) -# -# The other CMake commands required to build Kokkos as part of your application -# are: -# add_subdirectory(path/to/kokkos) -# target_link_libraries(executable or library) -# -# If Kokkos is not a subdirectory of your project, you will also need to pass a -# binary directory to add_subdirectory(). We had to pass the binary directory -# for this example for that reason. Note that target_link_libraries() can be -# called on a target added by add_executable(), add_library(), or another -# similar command. -# -# All the flags, etc. required to build using the Kokkos library are -# transitively added to targets which depend on the library. -# -# The CMake variables CMAKE_CXX_STANDARD and CMAKE_CXX_EXTENSIONS are -# respected. We recommend that you set CMAKE_CXX_EXTENSIONS to OFF. -# Otherwise, CMake defaults to using extensions for the C++ standard, and the -# GNU extensions (-std=gnu++11) will be used for compilers that support it -# instead of standard C++11 (-std=c++11). -# -# A bunch of build options are added as variables (all starting with KOKKOS_) -# to the build. Check them out using ccmake or the CMake GUI. -# -# Building this example: -# 1. Create a build directory. -# 2. cd /path/to/build/directory -# 3. cmake /path/to/example -# 4. make +# Kokkos minimally requires 3.10 right now, +# but your project can set it higher +cmake_minimum_required(VERSION 3.10) -cmake_minimum_required(VERSION 3.1) -project(Example CXX C Fortran) - -list(APPEND CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -O3) +# Project can mix languages - must have C++ support +# Kokkos flags are only applied to C++ files +project(Example CXX) +# We build kokkos as a subdirectory of our project add_subdirectory(${Example_SOURCE_DIR}/../.. ${Example_BINARY_DIR}/kokkos) -include_directories(${Kokkos_INCLUDE_DIRS_RET}) +add_executable(example cmake_example.cpp) + +# This is the only line required to set up all compiler/linker flags +target_link_libraries(example Kokkos::kokkos) -add_executable(example cmake_example.cpp foo.f) -target_link_libraries(example kokkos) +# Adds a test for the executable +enable_testing() +add_test(NAME KokkosInTree_Verify COMMAND example 10) diff --git a/packages/kokkos/example/build_cmake_in_tree/cmake_example.cpp b/packages/kokkos/example/build_cmake_in_tree/cmake_example.cpp index 63875d013..b0fd9822a 100644 --- a/packages/kokkos/example/build_cmake_in_tree/cmake_example.cpp +++ b/packages/kokkos/example/build_cmake_in_tree/cmake_example.cpp @@ -45,8 +45,6 @@ #include <Kokkos_Core.hpp> #include <cstdio> -extern "C" void print_fortran_(); - int main(int argc, char* argv[]) { Kokkos::initialize(argc, argv); Kokkos::DefaultExecutionSpace::print_configuration(std::cout); @@ -84,8 +82,6 @@ int main(int argc, char* argv[]) { count_time = timer.seconds(); printf("Sequential: %ld %10.6f\n", seq_count, count_time); - print_fortran_(); - Kokkos::finalize(); return (count == seq_count) ? 0 : -1; diff --git a/packages/kokkos/example/build_cmake_in_tree/foo.f b/packages/kokkos/example/build_cmake_in_tree/foo.f deleted file mode 100644 index e61845528..000000000 --- a/packages/kokkos/example/build_cmake_in_tree/foo.f +++ /dev/null @@ -1,4 +0,0 @@ - FUNCTION print_fortran() - PRINT *, 'Hello World from Fortran' - RETURN - END diff --git a/packages/kokkos/example/build_cmake_installed/CMakeLists.txt b/packages/kokkos/example/build_cmake_installed/CMakeLists.txt index 7fdb94d45..7998d2914 100644 --- a/packages/kokkos/example/build_cmake_installed/CMakeLists.txt +++ b/packages/kokkos/example/build_cmake_installed/CMakeLists.txt @@ -1,42 +1,24 @@ -# Kokkos requires CMake version 3.1 or higher and that you have the following -# line with a version of 3.1 or higher as the first line of your project: -# cmake_minimum_required(VERSION 3.1) -# -# The other CMake commands required to build Kokkos as part of your application -# are: -# add_subdirectory(path/to/kokkos) -# target_link_libraries(executable or library) -# -# If Kokkos is not a subdirectory of your project, you will also need to pass a -# binary directory to add_subdirectory(). We had to pass the binary directory -# for this example for that reason. Note that target_link_libraries() can be -# called on a target added by add_executable(), add_library(), or another -# similar command. -# -# All the flags, etc. required to build using the Kokkos library are -# transitively added to targets which depend on the library. -# -# The CMake variables CMAKE_CXX_STANDARD and CMAKE_CXX_EXTENSIONS are -# respected. We recommend that you set CMAKE_CXX_EXTENSIONS to OFF. -# Otherwise, CMake defaults to using extensions for the C++ standard, and the -# GNU extensions (-std=gnu++11) will be used for compilers that support it -# instead of standard C++11 (-std=c++11). -# -# A bunch of build options are added as variables (all starting with KOKKOS_) -# to the build. Check them out using ccmake or the CMake GUI. -# -# Building this example: -# 1. Create a build directory. -# 2. cd /path/to/build/directory -# 3. cmake /path/to/example -# 4. make +# Kokkos minimally requires 3.10 right now, +# but your project can set it higher +cmake_minimum_required(VERSION 3.10) -cmake_minimum_required(VERSION 3.12) -project(Example CXX C Fortran) +# Projects can safely mix languages - must have C++ support +# Kokkos flags will only apply to C++ files +project(Example CXX Fortran) -list(APPEND CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -O3) +# You need this for using Kokkos_ROOT variable +if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.12.0") + message(STATUS "Setting policy CMP0074 to use <Package>_ROOT variables") + cmake_policy(SET CMP0074 NEW) +endif() -find_package(Kokkos) +# Look for an installed Kokkos +find_package(Kokkos REQUIRED) add_executable(example cmake_example.cpp foo.f) + +# This is the only thing required to set up compiler/linker flags target_link_libraries(example Kokkos::kokkos) + +enable_testing() +add_test(NAME KokkosInTree_Verify COMMAND example 10) diff --git a/packages/kokkos/example/build_cmake_installed/cmake_example.cpp b/packages/kokkos/example/build_cmake_installed/cmake_example.cpp index 63875d013..fd05172cb 100644 --- a/packages/kokkos/example/build_cmake_installed/cmake_example.cpp +++ b/packages/kokkos/example/build_cmake_installed/cmake_example.cpp @@ -47,6 +47,12 @@ extern "C" void print_fortran_(); +struct CountFunctor { + KOKKOS_FUNCTION void operator()(const long i, long& lcount) const { + lcount += (i % 2) == 0; + } +}; + int main(int argc, char* argv[]) { Kokkos::initialize(argc, argv); Kokkos::DefaultExecutionSpace::print_configuration(std::cout); @@ -66,9 +72,8 @@ int main(int argc, char* argv[]) { // Compute the number of even integers from 0 to n-1, in parallel. long count = 0; - Kokkos::parallel_reduce( - n, KOKKOS_LAMBDA(const long i, long& lcount) { lcount += (i % 2) == 0; }, - count); + CountFunctor functor; + Kokkos::parallel_reduce(n, functor, count); double count_time = timer.seconds(); printf(" Parallel: %ld %10.6f\n", count, count_time); diff --git a/packages/kokkos/example/make_buildlink/main.cpp b/packages/kokkos/example/make_buildlink/main.cpp index d96300203..2dbfb2687 100644 --- a/packages/kokkos/example/make_buildlink/main.cpp +++ b/packages/kokkos/example/make_buildlink/main.cpp @@ -3,9 +3,9 @@ int main(int argc, char* argv[]) { Kokkos::initialize(argc, argv); { - int N = (argc > 1) ? atoi(argv[1]) : 10000; - int M = (argc > 2) ? atoi(argv[2]) : 10000; - int R = (argc > 3) ? atoi(argv[3]) : 10; + int N = (argc > 1) ? std::stoi(argv[1]) : 10000; + int M = (argc > 2) ? std::stoi(argv[2]) : 10000; + int R = (argc > 3) ? std::stoi(argv[3]) : 10; printf("Called with: %i %i %i\n", N, M, R); } diff --git a/packages/kokkos/example/tutorial/01_hello_world/hello_world.cpp b/packages/kokkos/example/tutorial/01_hello_world/hello_world.cpp index 00adbc78b..bdb630a1a 100644 --- a/packages/kokkos/example/tutorial/01_hello_world/hello_world.cpp +++ b/packages/kokkos/example/tutorial/01_hello_world/hello_world.cpp @@ -67,10 +67,10 @@ // instance method. struct hello_world { // If a functor has an "execution_space" (or "execution_space", for - // backwards compatibility) public typedef, parallel_* will only run + // backwards compatibility) public alias, parallel_* will only run // the functor in that execution space. That's a good way to mark a // functor as specific to an execution space. If the functor lacks - // this typedef, parallel_for will run it in the default execution + // this alias, parallel_for will run it in the default execution // space, unless you tell it otherwise (that's an advanced topic; // see "execution policies"). @@ -107,7 +107,7 @@ int main(int argc, char* argv[]) { // Run the above functor on the default Kokkos execution space in // parallel, with a parallel for loop count of 15. // - // The Kokkos::DefaultExecutionSpace typedef gives the default + // The Kokkos::DefaultExecutionSpace alias gives the default // execution space. Depending on how Kokkos was configured, this // could be OpenMP, Threads, Cuda, Serial, or even some other // execution space. diff --git a/packages/kokkos/example/tutorial/02_simple_reduce/Makefile b/packages/kokkos/example/tutorial/02_simple_reduce/Makefile index bda28fbac..72b94bb26 100644 --- a/packages/kokkos/example/tutorial/02_simple_reduce/Makefile +++ b/packages/kokkos/example/tutorial/02_simple_reduce/Makefile @@ -23,15 +23,6 @@ EXE = 02_simple_reduce.host KOKKOS_DEVICES = "OpenMP" KOKKOS_ARCH = "SNB" endif -ifneq (,$(findstring ROCm,$(KOKKOS_DEVICES))) -CXX = /opt/rocm/hcc/bin/clang++ -CXXFLAGS = -O3 -LINK = ${CXX} -LDFLAGS = -EXE = 02_simple_reduce.rocm -KOKKOS_DEVICES = "ROCm" -KOKKOS_ARCH = "Fiji" -endif DEPFLAGS = -M @@ -49,7 +40,7 @@ $(EXE): $(OBJ) $(KOKKOS_LINK_DEPENDS) $(LINK) $(KOKKOS_LDFLAGS) $(LDFLAGS) $(EXTRA_PATH) $(OBJ) $(KOKKOS_LIBS) $(LIB) -o $(EXE) clean: kokkos-clean - rm -f *.o *.cuda *.host *.rocm + rm -f *.o *.cuda *.host # Compilation rules diff --git a/packages/kokkos/example/tutorial/02_simple_reduce/simple_reduce.cpp b/packages/kokkos/example/tutorial/02_simple_reduce/simple_reduce.cpp index 01abd3d3b..2b7668e51 100644 --- a/packages/kokkos/example/tutorial/02_simple_reduce/simple_reduce.cpp +++ b/packages/kokkos/example/tutorial/02_simple_reduce/simple_reduce.cpp @@ -63,8 +63,8 @@ // it defaults to binary operator+ (adding numbers together). struct squaresum { // Specify the type of the reduction value with a "value_type" - // typedef. In this case, the reduction value has type int. - typedef int value_type; + // alias. In this case, the reduction value has type int. + using value_type = int; // The reduction functor's operator() looks a little different than // the parallel_for functor's operator(). For the reduction, we diff --git a/packages/kokkos/example/tutorial/02_simple_reduce_lambda/Makefile b/packages/kokkos/example/tutorial/02_simple_reduce_lambda/Makefile index a9542c6a4..ed59338a6 100644 --- a/packages/kokkos/example/tutorial/02_simple_reduce_lambda/Makefile +++ b/packages/kokkos/example/tutorial/02_simple_reduce_lambda/Makefile @@ -24,15 +24,6 @@ EXE = 02_simple_reduce_lambda.host KOKKOS_DEVICES = "OpenMP" KOKKOS_ARCH = "SNB" endif -ifneq (,$(findstring ROCm,$(KOKKOS_DEVICES))) -CXX = /opt/rocm/hcc/bin/clang++ -CXXFLAGS = -O3 -LINK = ${CXX} -LDFLAGS = -EXE = 02_simple_reduce_lambda.rocm -KOKKOS_DEVICES = "ROCm" -KOKKOS_ARCH = "Fiji" -endif DEPFLAGS = -M @@ -51,7 +42,7 @@ $(EXE): $(OBJ) $(KOKKOS_LINK_DEPENDS) $(LINK) $(KOKKOS_LDFLAGS) $(LDFLAGS) $(EXTRA_PATH) $(OBJ) $(KOKKOS_LIBS) $(LIB) -o $(EXE) clean: kokkos-clean - rm -f *.o *.cuda *.host *.rocm + rm -f *.o *.cuda *.host # Compilation rules diff --git a/packages/kokkos/example/tutorial/03_simple_view/Makefile b/packages/kokkos/example/tutorial/03_simple_view/Makefile index c9dc3a0fd..527a1c732 100644 --- a/packages/kokkos/example/tutorial/03_simple_view/Makefile +++ b/packages/kokkos/example/tutorial/03_simple_view/Makefile @@ -23,15 +23,6 @@ EXE = 03_simple_view.host KOKKOS_DEVICES = "OpenMP" KOKKOS_ARCH = "SNB" endif -ifneq (,$(findstring ROCm,$(KOKKOS_DEVICES))) -CXX = /opt/rocm/hcc/bin/clang++ -CXXFLAGS = -O3 -LINK = ${CXX} -LDFLAGS = -EXE = 03_simple_view.rocm -KOKKOS_DEVICES = "ROCm" -KOKKOS_ARCH = "Fiji" -endif DEPFLAGS = -M @@ -51,7 +42,7 @@ $(EXE): $(OBJ) $(KOKKOS_LINK_DEPENDS) $(LINK) $(KOKKOS_LDFLAGS) $(LDFLAGS) $(EXTRA_PATH) $(OBJ) $(KOKKOS_LIBS) $(LIB) -o $(EXE) clean: kokkos-clean - rm -f *.o *.cuda *.host *.rocm + rm -f *.o *.cuda *.host # Compilation rules diff --git a/packages/kokkos/example/tutorial/03_simple_view/simple_view.cpp b/packages/kokkos/example/tutorial/03_simple_view/simple_view.cpp index f4924c71f..46cac62b9 100644 --- a/packages/kokkos/example/tutorial/03_simple_view/simple_view.cpp +++ b/packages/kokkos/example/tutorial/03_simple_view/simple_view.cpp @@ -67,7 +67,7 @@ // // The first dimension of the View is the dimension over which it is // efficient for Kokkos to parallelize. -typedef Kokkos::View<double * [3]> view_type; +using view_type = Kokkos::View<double * [3]>; // parallel_for functor that fills the View given to its constructor. // The View must already have been allocated. @@ -102,8 +102,8 @@ struct ReduceFunctor { ReduceFunctor(view_type a_) : a(a_) {} // If you write a functor to do a reduction, you must specify the - // type of the reduction result via a public 'value_type' typedef. - typedef double value_type; + // type of the reduction result via a public 'value_type' alias. + using value_type = double; KOKKOS_INLINE_FUNCTION void operator()(int i, double& lsum) const { diff --git a/packages/kokkos/example/tutorial/03_simple_view_lambda/CMakeLists.txt b/packages/kokkos/example/tutorial/03_simple_view_lambda/CMakeLists.txt index c0f33a61b..2f3d9c52d 100644 --- a/packages/kokkos/example/tutorial/03_simple_view_lambda/CMakeLists.txt +++ b/packages/kokkos/example/tutorial/03_simple_view_lambda/CMakeLists.txt @@ -2,11 +2,8 @@ KOKKOS_INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) KOKKOS_INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) -IF (Kokkos_ENABLE_CXX11) - # This is a tutorial, not a test, so we don't ask CTest to run it. - KOKKOS_ADD_EXECUTABLE( - tutorial_03_simple_view_lambda - SOURCES simple_view_lambda.cpp - COMM serial mpi - ) -ENDIF () +# This is a tutorial, not a test, so we don't ask CTest to run it. +KOKKOS_ADD_EXECUTABLE( + tutorial_03_simple_view_lambda + SOURCES simple_view_lambda.cpp + ) diff --git a/packages/kokkos/example/tutorial/03_simple_view_lambda/Makefile b/packages/kokkos/example/tutorial/03_simple_view_lambda/Makefile index 81910a457..57760b84f 100644 --- a/packages/kokkos/example/tutorial/03_simple_view_lambda/Makefile +++ b/packages/kokkos/example/tutorial/03_simple_view_lambda/Makefile @@ -24,15 +24,6 @@ EXE = 03_simple_view_lambda.host KOKKOS_DEVICES = "OpenMP" KOKKOS_ARCH = "SNB" endif -ifneq (,$(findstring ROCm,$(KOKKOS_DEVICES))) -CXX = /opt/rocm/hcc/bin/clang++ -CXXFLAGS = -O3 -LINK = ${CXX} -LDFLAGS = -EXE = 03_simple_view_lambda.rocm -KOKKOS_DEVICES = "ROCm" -KOKKOS_ARCH = "Fiji" -endif DEPFLAGS = -M @@ -51,7 +42,7 @@ $(EXE): $(OBJ) $(KOKKOS_LINK_DEPENDS) $(LINK) $(KOKKOS_LDFLAGS) $(LDFLAGS) $(EXTRA_PATH) $(OBJ) $(KOKKOS_LIBS) $(LIB) -o $(EXE) clean: kokkos-clean - rm -f *.o *.cuda *.host *.rocm + rm -f *.o *.cuda *.host # Compilation rules diff --git a/packages/kokkos/example/tutorial/03_simple_view_lambda/simple_view_lambda.cpp b/packages/kokkos/example/tutorial/03_simple_view_lambda/simple_view_lambda.cpp index d5590e5cc..33b3a1a7d 100644 --- a/packages/kokkos/example/tutorial/03_simple_view_lambda/simple_view_lambda.cpp +++ b/packages/kokkos/example/tutorial/03_simple_view_lambda/simple_view_lambda.cpp @@ -66,7 +66,7 @@ // // The first dimension of the View is the dimension over which it is // efficient for Kokkos to parallelize. -typedef Kokkos::View<double * [3]> view_type; +using view_type = Kokkos::View<double * [3]>; int main(int argc, char* argv[]) { Kokkos::initialize(argc, argv); diff --git a/packages/kokkos/example/tutorial/04_simple_memoryspaces/Makefile b/packages/kokkos/example/tutorial/04_simple_memoryspaces/Makefile index 0e84ac9c6..66f6f65a2 100644 --- a/packages/kokkos/example/tutorial/04_simple_memoryspaces/Makefile +++ b/packages/kokkos/example/tutorial/04_simple_memoryspaces/Makefile @@ -23,15 +23,6 @@ EXE = 04_simple_memoryspaces.host KOKKOS_DEVICES = "OpenMP" KOKKOS_ARCH = "SNB" endif -ifneq (,$(findstring ROCm,$(KOKKOS_DEVICES))) -CXX = /opt/rocm/hcc/bin/clang++ -CXXFLAGS = -O3 -LINK = ${CXX} -LDFLAGS = -EXE = 04_simple_memoryspaces.rocm -KOKKOS_DEVICES = "ROCm" -KOKKOS_ARCH = "Fiji" -endif DEPFLAGS = -M @@ -50,7 +41,7 @@ $(EXE): $(OBJ) $(KOKKOS_LINK_DEPENDS) $(LINK) $(KOKKOS_LDFLAGS) $(LDFLAGS) $(EXTRA_PATH) $(OBJ) $(KOKKOS_LIBS) $(LIB) -o $(EXE) clean: kokkos-clean - rm -f *.o *.cuda *.host *.rocm + rm -f *.o *.cuda *.host # Compilation rules diff --git a/packages/kokkos/example/tutorial/04_simple_memoryspaces/simple_memoryspaces.cpp b/packages/kokkos/example/tutorial/04_simple_memoryspaces/simple_memoryspaces.cpp index 603d139df..40ad6123e 100644 --- a/packages/kokkos/example/tutorial/04_simple_memoryspaces/simple_memoryspaces.cpp +++ b/packages/kokkos/example/tutorial/04_simple_memoryspaces/simple_memoryspaces.cpp @@ -47,7 +47,7 @@ // The type of a two-dimensional N x 3 array of double. // It lives in Kokkos' default memory space. -typedef Kokkos::View<double * [3]> view_type; +using view_type = Kokkos::View<double * [3]>; // The "HostMirror" type corresponding to view_type above is also a // two-dimensional N x 3 array of double. However, it lives in the @@ -61,12 +61,12 @@ typedef Kokkos::View<double * [3]> view_type; // performance penalties then it is its own host_mirror_space. This is // the case for HostSpace, CudaUVMSpace and CudaHostPinnedSpace. -typedef view_type::HostMirror host_view_type; +using host_view_type = view_type::HostMirror; struct ReduceFunctor { view_type a; ReduceFunctor(view_type a_) : a(a_) {} - typedef int value_type; // Specify type for reduction value, lsum + using value_type = int; // Specify type for reduction value, lsum KOKKOS_INLINE_FUNCTION void operator()(int i, int &lsum) const { diff --git a/packages/kokkos/example/tutorial/05_simple_atomics/Makefile b/packages/kokkos/example/tutorial/05_simple_atomics/Makefile index 67fbd90c5..29f6d9b8f 100644 --- a/packages/kokkos/example/tutorial/05_simple_atomics/Makefile +++ b/packages/kokkos/example/tutorial/05_simple_atomics/Makefile @@ -23,15 +23,6 @@ EXE = 05_simple_atomics.host KOKKOS_DEVICES = "OpenMP" KOKKOS_ARCH = "SNB" endif -ifneq (,$(findstring ROCm,$(KOKKOS_DEVICES))) -CXX = /opt/rocm/hcc/bin/clang++ -CXXFLAGS = -O3 -LINK = ${CXX} -LDFLAGS = -EXE = 05_simple_atomics.rocm -KOKKOS_DEVICES = "ROCm" -KOKKOS_ARCH = "Fiji" -endif DEPFLAGS = -M @@ -50,7 +41,7 @@ $(EXE): $(OBJ) $(KOKKOS_LINK_DEPENDS) $(LINK) $(KOKKOS_LDFLAGS) $(LDFLAGS) $(EXTRA_PATH) $(OBJ) $(KOKKOS_LIBS) $(LIB) -o $(EXE) clean: kokkos-clean - rm -f *.o *.cuda *.host *.rocm + rm -f *.o *.cuda *.host # Compilation rules diff --git a/packages/kokkos/example/tutorial/05_simple_atomics/simple_atomics.cpp b/packages/kokkos/example/tutorial/05_simple_atomics/simple_atomics.cpp index 396b39687..caacc828e 100644 --- a/packages/kokkos/example/tutorial/05_simple_atomics/simple_atomics.cpp +++ b/packages/kokkos/example/tutorial/05_simple_atomics/simple_atomics.cpp @@ -48,8 +48,8 @@ #include <cmath> // Type of a one-dimensional length-N array of int. -typedef Kokkos::View<int*> view_type; -typedef view_type::HostMirror host_view_type; +using view_type = Kokkos::View<int*>; +using host_view_type = view_type::HostMirror; // This is a "zero-dimensional" View, that is, a View of a single // value (an int, in this case). Access the value using operator() // with no arguments: e.g., 'count()'. @@ -57,8 +57,8 @@ typedef view_type::HostMirror host_view_type; // Zero-dimensional Views are useful for reduction results that stay // resident in device memory, as well as for irregularly updated // shared state. We use it for the latter in this example. -typedef Kokkos::View<int> count_type; -typedef count_type::HostMirror host_count_type; +using count_type = Kokkos::View<int>; +using host_count_type = count_type::HostMirror; // Functor for finding a list of primes in a given set of numbers. If // run in parallel, the order of results is nondeterministic, because @@ -118,7 +118,7 @@ int main() { host_view_type h_result = Kokkos::create_mirror_view(result); host_count_type h_count = Kokkos::create_mirror_view(count); - typedef view_type::size_type size_type; + using size_type = view_type::size_type; // Fill the 'data' array on the host with random numbers. We assume // that they come from some process which is only implemented on the // host, via some library. (That's true in this case.) diff --git a/packages/kokkos/example/tutorial/06_simple_mdrangepolicy/simple_mdrangepolicy.cpp b/packages/kokkos/example/tutorial/06_simple_mdrangepolicy/simple_mdrangepolicy.cpp index 62c087c32..07b99087d 100644 --- a/packages/kokkos/example/tutorial/06_simple_mdrangepolicy/simple_mdrangepolicy.cpp +++ b/packages/kokkos/example/tutorial/06_simple_mdrangepolicy/simple_mdrangepolicy.cpp @@ -62,7 +62,7 @@ // Simple functor for computing/storing the product of indices in a View v template <class ViewType> struct MDFunctor { - typedef long value_type; + using value_type = long; ViewType v; size_t size; @@ -105,16 +105,16 @@ int main(int argc, char* argv[]) { // Bound(s) for MDRangePolicy const int n = 100; - // ViewType typedefs for Rank<2>, Rank<3> for example usage - typedef double ScalarType; - typedef typename Kokkos::View<ScalarType**> ViewType_2D; - typedef typename Kokkos::View<ScalarType***> ViewType_3D; + // ViewType aliases for Rank<2>, Rank<3> for example usage + using ScalarType = double; + using ViewType_2D = typename Kokkos::View<ScalarType**>; + using ViewType_3D = typename Kokkos::View<ScalarType***>; ///////////////////////////////////////////////////////////////////////////// // Explanation of MDRangePolicy usage, template parameters, constructor // arguments // - // MDRangePolicy typedefs for Rank<2>, Rank<3> cases + // MDRangePolicy aliases for Rank<2>, Rank<3> cases // Required template parameters: // Kokkos::Rank<N>: where N=rank // @@ -126,7 +126,7 @@ int main(int argc, char* argv[]) { // tiles; // defaults based on the execution space similar to Kokkos::Layout // - // e.g. typedef Rank<2, Iterate::Left, Iterate::Left> rank2ll; + // e.g. using rank2ll = Rank<2, Iterate::Left, Iterate::Left>; // // // Optional template parameters to MDRangePolicy: @@ -160,9 +160,8 @@ int main(int argc, char* argv[]) { long incorrect_count_2d = 0; { // Rank<2> Case: Rank is provided, all other parameters are default - typedef typename Kokkos::Experimental::MDRangePolicy< - Kokkos::Experimental::Rank<2> > - MDPolicyType_2D; + using MDPolicyType_2D = typename Kokkos::Experimental::MDRangePolicy< + Kokkos::Experimental::Rank<2> >; // Construct 2D MDRangePolicy: lower and upper bounds provided, tile dims // defaulted @@ -186,10 +185,9 @@ int main(int argc, char* argv[]) { long incorrect_count_3d = 0; { // Rank<3> Case: Rank, inner iterate pattern, outer iterate pattern provided - typedef typename Kokkos::Experimental::MDRangePolicy< + using MDPolicyType_3D = typename Kokkos::Experimental::MDRangePolicy< Kokkos::Experimental::Rank<3, Kokkos::Experimental::Iterate::Left, - Kokkos::Experimental::Iterate::Left> > - MDPolicyType_3D; + Kokkos::Experimental::Iterate::Left> >; // Construct 3D MDRangePolicy: lower, upper bounds, tile dims provided MDPolicyType_3D mdpolicy_3d({{0, 0, 0}}, {{n, n, n}}, {{4, 4, 4}}); diff --git a/packages/kokkos/example/tutorial/Advanced_Views/01_data_layouts/Makefile b/packages/kokkos/example/tutorial/Advanced_Views/01_data_layouts/Makefile index 94ace811f..8d7441d6e 100644 --- a/packages/kokkos/example/tutorial/Advanced_Views/01_data_layouts/Makefile +++ b/packages/kokkos/example/tutorial/Advanced_Views/01_data_layouts/Makefile @@ -23,15 +23,6 @@ EXE = 01_data_layouts.host KOKKOS_DEVICES = "OpenMP" KOKKOS_ARCH = "SNB" endif -ifneq (,$(findstring ROCm,$(KOKKOS_DEVICES))) -CXX = /opt/rocm/hcc/bin/clang++ -CXXFLAGS = -O3 -LINK = ${CXX} -LDFLAGS = -EXE = 01_data_layouts.rocm -KOKKOS_DEVICES = "ROCm" -KOKKOS_ARCH = "Fiji" -endif DEPFLAGS = -M @@ -50,7 +41,7 @@ $(EXE): $(OBJ) $(KOKKOS_LINK_DEPENDS) $(LINK) $(KOKKOS_LDFLAGS) $(LDFLAGS) $(EXTRA_PATH) $(OBJ) $(KOKKOS_LIBS) $(LIB) -o $(EXE) clean: kokkos-clean - rm -f *.o *.cuda *.host *.rocm + rm -f *.o *.cuda *.host # Compilation rules diff --git a/packages/kokkos/example/tutorial/Advanced_Views/01_data_layouts/data_layouts.cpp b/packages/kokkos/example/tutorial/Advanced_Views/01_data_layouts/data_layouts.cpp index 9bfa49456..643ac87a8 100644 --- a/packages/kokkos/example/tutorial/Advanced_Views/01_data_layouts/data_layouts.cpp +++ b/packages/kokkos/example/tutorial/Advanced_Views/01_data_layouts/data_layouts.cpp @@ -51,14 +51,14 @@ // which means "column major," the same as in Fortran, the BLAS, or // LAPACK. right_type has "layout right," which means "row major," // the same as in C, C++, or Java. -typedef Kokkos::View<double**, Kokkos::LayoutLeft> left_type; -typedef Kokkos::View<double**, Kokkos::LayoutRight> right_type; +using left_type = Kokkos::View<double**, Kokkos::LayoutLeft>; +using right_type = Kokkos::View<double**, Kokkos::LayoutRight>; // This is a one-dimensional View, so the layout matters less. // However, it still has a layout! Since its layout is not specified // explicitly in the type, its layout is a function of the memory // space. For example, the default Cuda layout is LayoutLeft, and the // default Host layout is LayoutRight. -typedef Kokkos::View<double*> view_type; +using view_type = Kokkos::View<double*>; // parallel_for functor that fills the given View with some data. It // expects to access the View by rows in parallel: each call i of @@ -114,7 +114,7 @@ struct contraction { struct dot { view_type a; dot(view_type a_) : a(a_) {} - typedef double value_type; // Specify type for reduction target, lsum + using value_type = double; // Specify type for reduction target, lsum KOKKOS_INLINE_FUNCTION void operator()(const view_type::size_type i, double& lsum) const { lsum += a(i) * a(i); diff --git a/packages/kokkos/example/tutorial/Advanced_Views/02_memory_traits/Makefile b/packages/kokkos/example/tutorial/Advanced_Views/02_memory_traits/Makefile index f64ee3540..bac40cb26 100644 --- a/packages/kokkos/example/tutorial/Advanced_Views/02_memory_traits/Makefile +++ b/packages/kokkos/example/tutorial/Advanced_Views/02_memory_traits/Makefile @@ -23,15 +23,6 @@ EXE = 02_memory_traits.host KOKKOS_DEVICES = "OpenMP" KOKKOS_ARCH = "SNB" endif -ifneq (,$(findstring ROCm,$(KOKKOS_DEVICES))) -CXX = /opt/rocm/hcc/bin/clang++ -CXXFLAGS = -O3 -LINK = ${CXX} -LDFLAGS = -EXE = 02_memory_traits.rocm -KOKKOS_DEVICES = "ROCm" -KOKKOS_ARCH = "Fiji" -endif DEPFLAGS = -M @@ -50,7 +41,7 @@ $(EXE): $(OBJ) $(KOKKOS_LINK_DEPENDS) $(LINK) $(KOKKOS_LDFLAGS) $(LDFLAGS) $(EXTRA_PATH) $(OBJ) $(KOKKOS_LIBS) $(LIB) -o $(EXE) clean: kokkos-clean - rm -f *.o *.cuda *.host *.rocm + rm -f *.o *.cuda *.host # Compilation rules diff --git a/packages/kokkos/example/tutorial/Advanced_Views/02_memory_traits/memory_traits.cpp b/packages/kokkos/example/tutorial/Advanced_Views/02_memory_traits/memory_traits.cpp index da6478a02..cff215d0e 100644 --- a/packages/kokkos/example/tutorial/Advanced_Views/02_memory_traits/memory_traits.cpp +++ b/packages/kokkos/example/tutorial/Advanced_Views/02_memory_traits/memory_traits.cpp @@ -47,7 +47,7 @@ #include <cstdio> #include <cstdlib> -typedef Kokkos::View<double*> view_type; +using view_type = Kokkos::View<double*>; // Kokkos::Views have an MemoryTraits template parameter which // allows users to specify usage scenarios of a View. // Some of those act simply as hints, which can be used to insert @@ -71,10 +71,10 @@ typedef Kokkos::View<double*> view_type; // data (i.e. const double* and double*). While these pointers can point to the // same data you should not use them together if that brakes the const guarantee // of the first pointer. -typedef Kokkos::View<const double*, Kokkos::MemoryTraits<Kokkos::RandomAccess> > - view_type_rnd; -typedef Kokkos::View<int**> idx_type; -typedef idx_type::HostMirror idx_type_host; +using view_type_rnd = + Kokkos::View<const double*, Kokkos::MemoryTraits<Kokkos::RandomAccess> >; +using idx_type = Kokkos::View<int**>; +using idx_type_host = idx_type::HostMirror; // We template this functor on the ViewTypes to show the effect of the // RandomAccess trait. diff --git a/packages/kokkos/example/tutorial/Advanced_Views/03_subviews/Makefile b/packages/kokkos/example/tutorial/Advanced_Views/03_subviews/Makefile index ad70ee02d..9eb948932 100644 --- a/packages/kokkos/example/tutorial/Advanced_Views/03_subviews/Makefile +++ b/packages/kokkos/example/tutorial/Advanced_Views/03_subviews/Makefile @@ -23,15 +23,6 @@ EXE = 03_subviews.host KOKKOS_DEVICES = "OpenMP" KOKKOS_ARCH = "SNB" endif -ifneq (,$(findstring ROCm,$(KOKKOS_DEVICES))) -CXX = /opt/rocm/hcc/bin/clang++ -CXXFLAGS = -O3 -LINK = ${CXX} -LDFLAGS = -EXE = 03_subviews.rocm -KOKKOS_DEVICES = "ROCm" -KOKKOS_ARCH = "Fiji" -endif DEPFLAGS = -M @@ -50,7 +41,7 @@ $(EXE): $(OBJ) $(KOKKOS_LINK_DEPENDS) $(LINK) $(KOKKOS_LDFLAGS) $(LDFLAGS) $(EXTRA_PATH) $(OBJ) $(KOKKOS_LIBS) $(LIB) -o $(EXE) clean: kokkos-clean - rm -f *.o *.cuda *.host *.rocm + rm -f *.o *.cuda *.host # Compilation rules diff --git a/packages/kokkos/example/tutorial/Advanced_Views/03_subviews/subviews.cpp b/packages/kokkos/example/tutorial/Advanced_Views/03_subviews/subviews.cpp index df6a09f82..ca2eeac41 100644 --- a/packages/kokkos/example/tutorial/Advanced_Views/03_subviews/subviews.cpp +++ b/packages/kokkos/example/tutorial/Advanced_Views/03_subviews/subviews.cpp @@ -52,7 +52,7 @@ #include <impl/Kokkos_Timer.hpp> #include <cstdio> -typedef Kokkos::View<double***, Kokkos::LayoutRight> mesh_type; +using mesh_type = Kokkos::View<double***, Kokkos::LayoutRight>; // These View types represent subviews of the mesh. Some of the Views // have layout LayoutStride, meaning that they have run-time "strides" @@ -63,10 +63,10 @@ typedef Kokkos::View<double***, Kokkos::LayoutRight> mesh_type; // may safely always use a LayoutStride layout when taking a subview // of a LayoutRight or LayoutLeft subview, but strided accesses may // cost a bit more, especially for 1-D Views. -typedef Kokkos::View<double**, Kokkos::LayoutStride> xz_plane_type; -typedef Kokkos::View<double**, Kokkos::LayoutRight> yz_plane_type; -typedef Kokkos::View<double**, Kokkos::LayoutStride> xy_plane_type; -typedef Kokkos::View<double***, Kokkos::LayoutStride> inner_mesh_type; +using xz_plane_type = Kokkos::View<double**, Kokkos::LayoutStride>; +using yz_plane_type = Kokkos::View<double**, Kokkos::LayoutRight>; +using xy_plane_type = Kokkos::View<double**, Kokkos::LayoutStride>; +using inner_mesh_type = Kokkos::View<double***, Kokkos::LayoutStride>; // Functor to set all entries of a boundary of the mesh to a constant // value. The functor is templated on ViewType because different @@ -98,7 +98,7 @@ struct set_inner { KOKKOS_INLINE_FUNCTION void operator()(const typename ViewType::size_type i) const { - typedef typename ViewType::size_type size_type; + using size_type = typename ViewType::size_type; for (size_type j = 0; j < a.extent(1); ++j) { for (size_type k = 0; k < a.extent(2); ++k) { a(i, j, k) = value; @@ -118,7 +118,7 @@ struct update { KOKKOS_INLINE_FUNCTION void operator()(typename ViewType::size_type i) const { - typedef typename ViewType::size_type size_type; + using size_type = typename ViewType::size_type; i++; for (size_type j = 1; j < a.extent(1) - 1; j++) { for (size_type k = 1; k < a.extent(2) - 1; k++) { @@ -134,7 +134,7 @@ int main(int narg, char* arg[]) { using Kokkos::pair; using Kokkos::parallel_for; using Kokkos::subview; - typedef mesh_type::size_type size_type; + using size_type = mesh_type::size_type; Kokkos::initialize(narg, arg); diff --git a/packages/kokkos/example/tutorial/Advanced_Views/04_dualviews/Makefile b/packages/kokkos/example/tutorial/Advanced_Views/04_dualviews/Makefile index e08be5c1d..f9db021de 100644 --- a/packages/kokkos/example/tutorial/Advanced_Views/04_dualviews/Makefile +++ b/packages/kokkos/example/tutorial/Advanced_Views/04_dualviews/Makefile @@ -23,15 +23,6 @@ EXE = 04_dualviews.host KOKKOS_DEVICES = "OpenMP" KOKKOS_ARCH = "SNB" endif -ifneq (,$(findstring ROCm,$(KOKKOS_DEVICES))) -CXX = /opt/rocm/hcc/bin/clang++ -CXXFLAGS = -O3 -LINK = ${CXX} -LDFLAGS = -EXE = 04_dualviews.rocm -KOKKOS_DEVICES = "ROCm" -KOKKOS_ARCH = "Fiji" -endif DEPFLAGS = -M @@ -50,7 +41,7 @@ $(EXE): $(OBJ) $(KOKKOS_LINK_DEPENDS) $(LINK) $(KOKKOS_LDFLAGS) $(LDFLAGS) $(EXTRA_PATH) $(OBJ) $(KOKKOS_LIBS) $(LIB) -o $(EXE) clean: kokkos-clean - rm -f *.o *.cuda *.host *.rocm + rm -f *.o *.cuda *.host # Compilation rules diff --git a/packages/kokkos/example/tutorial/Advanced_Views/04_dualviews/dual_view.cpp b/packages/kokkos/example/tutorial/Advanced_Views/04_dualviews/dual_view.cpp index 86fe01620..174d13d10 100644 --- a/packages/kokkos/example/tutorial/Advanced_Views/04_dualviews/dual_view.cpp +++ b/packages/kokkos/example/tutorial/Advanced_Views/04_dualviews/dual_view.cpp @@ -66,30 +66,30 @@ // operations to help you manage memory take almost no time in that // case. This makes your code even more performance portable. -typedef Kokkos::DualView<double*> view_type; -typedef Kokkos::DualView<int**> idx_type; +using view_type = Kokkos::DualView<double*>; +using idx_type = Kokkos::DualView<int**>; template <class ExecutionSpace> struct localsum { - // If the functor has a public 'execution_space' typedef, that defines + // If the functor has a public 'execution_space' alias, that defines // the functor's execution space (where it runs in parallel). This // overrides Kokkos' default execution space. - typedef ExecutionSpace execution_space; + using execution_space = ExecutionSpace; - typedef typename Kokkos::Impl::if_c< + using memory_space = typename Kokkos::Impl::if_c< std::is_same<ExecutionSpace, Kokkos::DefaultExecutionSpace>::value, - idx_type::memory_space, idx_type::host_mirror_space>::type memory_space; + idx_type::memory_space, idx_type::host_mirror_space>::type; // Get the view types on the particular device for which the functor // is instantiated. // - // "const_data_type" is a typedef in View (and DualView) which is + // "const_data_type" is an alias in View (and DualView) which is // the const version of the first template parameter of the View. // For example, the const_data_type version of double** is const // double**. Kokkos::View<idx_type::const_data_type, idx_type::array_layout, memory_space> idx; - // "scalar_array_type" is a typedef in ViewTraits (and DualView) which is the + // "scalar_array_type" is an alias in ViewTraits (and DualView) which is the // array version of the value(s) stored in the View. Kokkos::View<view_type::scalar_array_type, view_type::array_layout, memory_space> @@ -150,7 +150,7 @@ class ParticleType { protected: }; -typedef Kokkos::DualView<ParticleType[10]> ParticleTypes; +using ParticleTypes = Kokkos::DualView<ParticleType[10]>; int main(int narg, char* arg[]) { Kokkos::initialize(narg, arg); diff --git a/packages/kokkos/example/tutorial/Advanced_Views/05_NVIDIA_UVM/uvm_example.cpp b/packages/kokkos/example/tutorial/Advanced_Views/05_NVIDIA_UVM/uvm_example.cpp index 51b84cf18..a906ba144 100644 --- a/packages/kokkos/example/tutorial/Advanced_Views/05_NVIDIA_UVM/uvm_example.cpp +++ b/packages/kokkos/example/tutorial/Advanced_Views/05_NVIDIA_UVM/uvm_example.cpp @@ -49,18 +49,18 @@ #include <cstdlib> #ifdef KOKKOS_ENABLE_CUDA -typedef Kokkos::View<double*, Kokkos::CudaUVMSpace> view_type; -typedef Kokkos::View<int**, Kokkos::CudaUVMSpace> idx_type; +using view_type = Kokkos::View<double*, Kokkos::CudaUVMSpace>; +using idx_type = Kokkos::View<int**, Kokkos::CudaUVMSpace>; #else -typedef Kokkos::View<double*, Kokkos::HostSpace> view_type; -typedef Kokkos::View<int**, Kokkos::HostSpace> idx_type; +using view_type = Kokkos::View<double*, Kokkos::HostSpace>; +using idx_type = Kokkos::View<int**, Kokkos::HostSpace>; #endif template <class Device> struct localsum { // Define the execution space for the functor (overrides the // DefaultExecutionSpace) - typedef Device execution_space; + using execution_space = Device; // Get the view types on the particular device the functor is instantiated for idx_type::const_type idx; diff --git a/packages/kokkos/example/tutorial/Advanced_Views/06_AtomicViews/Makefile b/packages/kokkos/example/tutorial/Advanced_Views/06_AtomicViews/Makefile index 725d0de0e..37b2fe257 100644 --- a/packages/kokkos/example/tutorial/Advanced_Views/06_AtomicViews/Makefile +++ b/packages/kokkos/example/tutorial/Advanced_Views/06_AtomicViews/Makefile @@ -23,15 +23,6 @@ EXE = 06_AtomicViews.host KOKKOS_DEVICES = "OpenMP" KOKKOS_ARCH = "SNB" endif -ifneq (,$(findstring ROCm,$(KOKKOS_DEVICES))) -CXX = /opt/rocm/hcc/bin/clang++ -CXXFLAGS = -O3 -LINK = ${CXX} -LDFLAGS = -EXE = 06_AtomicViews.rocm -KOKKOS_DEVICES = "ROCm" -KOKKOS_ARCH = "Fiji" -endif DEPFLAGS = -M @@ -50,7 +41,7 @@ $(EXE): $(OBJ) $(KOKKOS_LINK_DEPENDS) $(LINK) $(KOKKOS_LDFLAGS) $(LDFLAGS) $(EXTRA_PATH) $(OBJ) $(KOKKOS_LIBS) $(LIB) -o $(EXE) clean: kokkos-clean - rm -f *.o *.cuda *.host *.rocm + rm -f *.o *.cuda *.host # Compilation rules diff --git a/packages/kokkos/example/tutorial/Advanced_Views/07_Overlapping_DeepCopy/overlapping_deepcopy.cpp b/packages/kokkos/example/tutorial/Advanced_Views/07_Overlapping_DeepCopy/overlapping_deepcopy.cpp index 4dac1c26e..c582fa170 100644 --- a/packages/kokkos/example/tutorial/Advanced_Views/07_Overlapping_DeepCopy/overlapping_deepcopy.cpp +++ b/packages/kokkos/example/tutorial/Advanced_Views/07_Overlapping_DeepCopy/overlapping_deepcopy.cpp @@ -106,7 +106,7 @@ struct MergeDevice { int main(int argc, char* argv[]) { int size = 100000000; Kokkos::initialize(); - int synch = atoi(argv[1]); + int synch = std::stoi(argv[1]); Kokkos::View<double*, Kokkos::LayoutLeft, Kokkos::CudaSpace> d_a("Device A", size); Kokkos::View<double*, Kokkos::LayoutLeft, Kokkos::CudaSpace> d_b("Device B", diff --git a/packages/kokkos/example/tutorial/Algorithms/01_random_numbers/Makefile b/packages/kokkos/example/tutorial/Algorithms/01_random_numbers/Makefile index 386a87474..f6b1e42a8 100644 --- a/packages/kokkos/example/tutorial/Algorithms/01_random_numbers/Makefile +++ b/packages/kokkos/example/tutorial/Algorithms/01_random_numbers/Makefile @@ -23,15 +23,6 @@ EXE = 01_random_numbers.host KOKKOS_DEVICES = "OpenMP" KOKKOS_ARCH = "SNB" endif -ifneq (,$(findstring ROCm,$(KOKKOS_DEVICES))) -CXX = /opt/rocm/hcc/bin/clang++ -CXXFLAGS = -O3 -LINK = ${CXX} -LDFLAGS = -EXE = 01_random_numbers.rocm -KOKKOS_DEVICES = "ROCm" -KOKKOS_ARCH = "Fiji" -endif DEPFLAGS = -M @@ -50,7 +41,7 @@ $(EXE): $(OBJ) $(KOKKOS_LINK_DEPENDS) $(LINK) $(KOKKOS_LDFLAGS) $(LDFLAGS) $(EXTRA_PATH) $(OBJ) $(KOKKOS_LIBS) $(LIB) -o $(EXE) clean: kokkos-clean - rm -f *.o *.cuda *.host *.rocm + rm -f *.o *.cuda *.host # Compilation rules diff --git a/packages/kokkos/example/tutorial/Algorithms/01_random_numbers/random_numbers.cpp b/packages/kokkos/example/tutorial/Algorithms/01_random_numbers/random_numbers.cpp index a0771c4fc..9c5f2d62f 100644 --- a/packages/kokkos/example/tutorial/Algorithms/01_random_numbers/random_numbers.cpp +++ b/packages/kokkos/example/tutorial/Algorithms/01_random_numbers/random_numbers.cpp @@ -48,7 +48,7 @@ #include <impl/Kokkos_Timer.hpp> #include <cstdlib> -typedef Kokkos::HostSpace::execution_space DefaultHostType; +using DefaultHostType = Kokkos::HostSpace::execution_space; // Kokkos provides two different random number generators with a 64 bit and a // 1024 bit state. These generators are based on Vigna, Sebastiano (2014). "An @@ -108,8 +108,8 @@ int main(int argc, char* args[]) { } else { // Initialize Kokkos Kokkos::initialize(argc, args); - int size = atoi(args[1]); - int samples = atoi(args[2]); + int size = std::stoi(args[1]); + int samples = std::stoi(args[2]); // Create two random number generator pools one for 64bit states and one for // 1024 bit states Both take an 64 bit unsigned integer seed to initialize a diff --git a/packages/kokkos/example/tutorial/Hierarchical_Parallelism/01_thread_teams/Makefile b/packages/kokkos/example/tutorial/Hierarchical_Parallelism/01_thread_teams/Makefile index 7282abc30..c0e7ca022 100644 --- a/packages/kokkos/example/tutorial/Hierarchical_Parallelism/01_thread_teams/Makefile +++ b/packages/kokkos/example/tutorial/Hierarchical_Parallelism/01_thread_teams/Makefile @@ -23,15 +23,6 @@ EXE = 01_thread_teams.host KOKKOS_DEVICES = "OpenMP" KOKKOS_ARCH = "SNB" endif -ifneq (,$(findstring ROCm,$(KOKKOS_DEVICES))) -CXX = /opt/rocm/hcc/bin/clang++ -CXXFLAGS = -O3 -LINK = ${CXX} -LDFLAGS = -EXE = 01_thread_teams.rocm -KOKKOS_DEVICES = "ROCm" -KOKKOS_ARCH = "Fiji" -endif DEPFLAGS = -M @@ -50,7 +41,7 @@ $(EXE): $(OBJ) $(KOKKOS_LINK_DEPENDS) $(LINK) $(KOKKOS_LDFLAGS) $(LDFLAGS) $(EXTRA_PATH) $(OBJ) $(KOKKOS_LIBS) $(LIB) -o $(EXE) clean: kokkos-clean - rm -f *.o *.cuda *.host *.rocm + rm -f *.o *.cuda *.host # Compilation rules diff --git a/packages/kokkos/example/tutorial/Hierarchical_Parallelism/01_thread_teams/thread_teams.cpp b/packages/kokkos/example/tutorial/Hierarchical_Parallelism/01_thread_teams/thread_teams.cpp index 77a5b4ce9..9afc14475 100644 --- a/packages/kokkos/example/tutorial/Hierarchical_Parallelism/01_thread_teams/thread_teams.cpp +++ b/packages/kokkos/example/tutorial/Hierarchical_Parallelism/01_thread_teams/thread_teams.cpp @@ -57,12 +57,12 @@ // league_size) is not limited by physical constraints. Its a pure logical // number. -typedef Kokkos::TeamPolicy<> team_policy; -typedef team_policy::member_type team_member; +using team_policy = Kokkos::TeamPolicy<>; +using team_member = team_policy::member_type; // Define a functor which can be launched using the TeamPolicy struct hello_world { - typedef int value_type; // Specify value type for reduction target, sum + using value_type = int; // Specify value type for reduction target, sum // This is a reduction operator which now takes as first argument the // TeamPolicy member_type. Every member of the team contributes to the diff --git a/packages/kokkos/example/tutorial/Hierarchical_Parallelism/01_thread_teams_lambda/Makefile b/packages/kokkos/example/tutorial/Hierarchical_Parallelism/01_thread_teams_lambda/Makefile index 4049dbde3..f285692e9 100644 --- a/packages/kokkos/example/tutorial/Hierarchical_Parallelism/01_thread_teams_lambda/Makefile +++ b/packages/kokkos/example/tutorial/Hierarchical_Parallelism/01_thread_teams_lambda/Makefile @@ -24,15 +24,6 @@ EXE = 01_thread_teams_lambda.host KOKKOS_DEVICES = "OpenMP" KOKKOS_ARCH = "SNB" endif -ifneq (,$(findstring ROCm,$(KOKKOS_DEVICES))) -CXX = /opt/rocm/hcc/bin/clang++ -CXXFLAGS = -O3 -LINK = ${CXX} -LDFLAGS = -EXE = 01_thread_teams_lambda.rocm -KOKKOS_DEVICES = "ROCm" -KOKKOS_ARCH = "Fiji" -endif DEPFLAGS = -M @@ -51,7 +42,7 @@ $(EXE): $(OBJ) $(KOKKOS_LINK_DEPENDS) $(LINK) $(KOKKOS_LDFLAGS) $(LDFLAGS) $(EXTRA_PATH) $(OBJ) $(KOKKOS_LIBS) $(LIB) -o $(EXE) clean: kokkos-clean - rm -f *.o *.cuda *.host *.rocm + rm -f *.o *.cuda *.host # Compilation rules diff --git a/packages/kokkos/example/tutorial/Hierarchical_Parallelism/01_thread_teams_lambda/thread_teams_lambda.cpp b/packages/kokkos/example/tutorial/Hierarchical_Parallelism/01_thread_teams_lambda/thread_teams_lambda.cpp index 6e29d5c3d..a182b08b8 100644 --- a/packages/kokkos/example/tutorial/Hierarchical_Parallelism/01_thread_teams_lambda/thread_teams_lambda.cpp +++ b/packages/kokkos/example/tutorial/Hierarchical_Parallelism/01_thread_teams_lambda/thread_teams_lambda.cpp @@ -56,8 +56,8 @@ int main(int narg, char* args[]) { using Kokkos::parallel_reduce; - typedef Kokkos::TeamPolicy<> team_policy; - typedef typename team_policy::member_type team_member; + using team_policy = Kokkos::TeamPolicy<>; + using team_member = typename team_policy::member_type; Kokkos::initialize(narg, args); diff --git a/packages/kokkos/example/tutorial/Hierarchical_Parallelism/02_nested_parallel_for/Makefile b/packages/kokkos/example/tutorial/Hierarchical_Parallelism/02_nested_parallel_for/Makefile index fe882f36b..4c0139554 100644 --- a/packages/kokkos/example/tutorial/Hierarchical_Parallelism/02_nested_parallel_for/Makefile +++ b/packages/kokkos/example/tutorial/Hierarchical_Parallelism/02_nested_parallel_for/Makefile @@ -23,15 +23,6 @@ EXE = 02_nested_parallel_for.host KOKKOS_DEVICES = "OpenMP" KOKKOS_ARCH = "SNB" endif -ifneq (,$(findstring ROCm,$(KOKKOS_DEVICES))) -CXX = /opt/rocm/hcc/bin/clang++ -CXXFLAGS = -O3 -LINK = ${CXX} -LDFLAGS = -EXE = 02_nested_parallel_for.rocm -KOKKOS_DEVICES = "ROCm" -KOKKOS_ARCH = "Fiji" -endif DEPFLAGS = -M @@ -50,7 +41,7 @@ $(EXE): $(OBJ) $(KOKKOS_LINK_DEPENDS) $(LINK) $(KOKKOS_LDFLAGS) $(LDFLAGS) $(EXTRA_PATH) $(OBJ) $(KOKKOS_LIBS) $(LIB) -o $(EXE) clean: kokkos-clean - rm -f *.o *.cuda *.host *.rocm + rm -f *.o *.cuda *.host # Compilation rules diff --git a/packages/kokkos/example/tutorial/Hierarchical_Parallelism/02_nested_parallel_for/nested_parallel_for.cpp b/packages/kokkos/example/tutorial/Hierarchical_Parallelism/02_nested_parallel_for/nested_parallel_for.cpp index 1c0b531c5..29e23e904 100644 --- a/packages/kokkos/example/tutorial/Hierarchical_Parallelism/02_nested_parallel_for/nested_parallel_for.cpp +++ b/packages/kokkos/example/tutorial/Hierarchical_Parallelism/02_nested_parallel_for/nested_parallel_for.cpp @@ -46,11 +46,11 @@ #include <cstdio> // See 01_thread_teams for an explanation of a basic TeamPolicy -typedef Kokkos::TeamPolicy<> team_policy; -typedef typename team_policy::member_type team_member; +using team_policy = Kokkos::TeamPolicy<>; +using team_member = typename team_policy::member_type; struct hello_world { - typedef int value_type; // Specify value type for reduction target, sum + using value_type = int; // Specify value type for reduction target, sum KOKKOS_INLINE_FUNCTION void operator()(const team_member& thread, int& sum) const { sum += 1; diff --git a/packages/kokkos/example/tutorial/Hierarchical_Parallelism/03_vectorization/Makefile b/packages/kokkos/example/tutorial/Hierarchical_Parallelism/03_vectorization/Makefile index 4481889cd..3093c272a 100644 --- a/packages/kokkos/example/tutorial/Hierarchical_Parallelism/03_vectorization/Makefile +++ b/packages/kokkos/example/tutorial/Hierarchical_Parallelism/03_vectorization/Makefile @@ -23,15 +23,6 @@ EXE = 03_vectorization.host KOKKOS_DEVICES = "OpenMP" KOKKOS_ARCH = "SNB" endif -ifneq (,$(findstring ROCm,$(KOKKOS_DEVICES))) -CXX = /opt/rocm/hcc/bin/clang++ -CXXFLAGS = -O3 -LINK = ${CXX} -LDFLAGS = -EXE = 03_vectorization.rocm -KOKKOS_DEVICES = "ROCm" -KOKKOS_ARCH = "Fiji" -endif DEPFLAGS = -M @@ -50,7 +41,7 @@ $(EXE): $(OBJ) $(KOKKOS_LINK_DEPENDS) $(LINK) $(KOKKOS_LDFLAGS) $(LDFLAGS) $(EXTRA_PATH) $(OBJ) $(KOKKOS_LIBS) $(LIB) -o $(EXE) clean: kokkos-clean - rm -f *.o *.cuda *.host *.rocm + rm -f *.o *.cuda *.host # Compilation rules diff --git a/packages/kokkos/example/tutorial/Hierarchical_Parallelism/03_vectorization/vectorization.cpp b/packages/kokkos/example/tutorial/Hierarchical_Parallelism/03_vectorization/vectorization.cpp index cb679f7f5..8f76110f0 100644 --- a/packages/kokkos/example/tutorial/Hierarchical_Parallelism/03_vectorization/vectorization.cpp +++ b/packages/kokkos/example/tutorial/Hierarchical_Parallelism/03_vectorization/vectorization.cpp @@ -60,13 +60,13 @@ // a thread execute every line of the operator as long as there are no // restricitons on them. Code lines can be restricted using Kokkos::single to // either execute once PerThread or execute once PerTeam. -typedef typename Kokkos::TeamPolicy<>::member_type team_member; +using team_member = typename Kokkos::TeamPolicy<>::member_type; struct SomeCorrelation { - typedef int value_type; // Specify value type for reduction target, sum - typedef Kokkos::DefaultExecutionSpace::scratch_memory_space shared_space; - typedef Kokkos::View<int*, shared_space, Kokkos::MemoryUnmanaged> - shared_1d_int; + using value_type = int; // Specify value type for reduction target, sum + using shared_space = Kokkos::DefaultExecutionSpace::scratch_memory_space; + using shared_1d_int = + Kokkos::View<int*, shared_space, Kokkos::MemoryUnmanaged>; Kokkos::View<const int***, Kokkos::LayoutRight> data; Kokkos::View<int> gsum; @@ -136,7 +136,7 @@ struct SomeCorrelation { // The functor needs to define how much shared memory it requests given a // team_size. - size_t team_shmem_size(int team_size) const { + size_t team_shmem_size(int /*team_size*/) const { return shared_1d_int::shmem_size(data.extent(1)); } }; diff --git a/packages/kokkos/example/tutorial/Hierarchical_Parallelism/04_team_scan/Makefile b/packages/kokkos/example/tutorial/Hierarchical_Parallelism/04_team_scan/Makefile index 0f0bcf70d..f30670db7 100644 --- a/packages/kokkos/example/tutorial/Hierarchical_Parallelism/04_team_scan/Makefile +++ b/packages/kokkos/example/tutorial/Hierarchical_Parallelism/04_team_scan/Makefile @@ -23,15 +23,6 @@ EXE = 04_team_scan.host KOKKOS_DEVICES = "OpenMP" KOKKOS_ARCH = "SNB" endif -ifneq (,$(findstring ROCm,$(KOKKOS_DEVICES))) -CXX = /opt/rocm/hcc/bin/clang++ -CXXFLAGS = -O3 -LINK = ${CXX} -LDFLAGS = -EXE = 04_team_scan.rocm -KOKKOS_DEVICES = "ROCm" -KOKKOS_ARCH = "Fiji" -endif DEPFLAGS = -M @@ -50,7 +41,7 @@ $(EXE): $(OBJ) $(KOKKOS_LINK_DEPENDS) $(LINK) $(KOKKOS_LDFLAGS) $(LDFLAGS) $(EXTRA_PATH) $(OBJ) $(KOKKOS_LIBS) $(LIB) -o $(EXE) clean: kokkos-clean - rm -f *.o *.cuda *.host *.rocm + rm -f *.o *.cuda *.host # Compilation rules diff --git a/packages/kokkos/example/tutorial/Hierarchical_Parallelism/04_team_scan/team_scan.cpp b/packages/kokkos/example/tutorial/Hierarchical_Parallelism/04_team_scan/team_scan.cpp index 10c8971e5..d36010892 100644 --- a/packages/kokkos/example/tutorial/Hierarchical_Parallelism/04_team_scan/team_scan.cpp +++ b/packages/kokkos/example/tutorial/Hierarchical_Parallelism/04_team_scan/team_scan.cpp @@ -48,11 +48,11 @@ #include <cstdio> #include <cstdlib> -typedef Kokkos::DefaultExecutionSpace Device; -typedef Kokkos::HostSpace::execution_space Host; +using Device = Kokkos::DefaultExecutionSpace; +using Host = Kokkos::HostSpace::execution_space; -typedef Kokkos::TeamPolicy<Device> team_policy; -typedef team_policy::member_type team_member; +using team_policy = Kokkos::TeamPolicy<Device>; +using team_member = team_policy::member_type; static const int TEAM_SIZE = 16; diff --git a/packages/kokkos/example/tutorial/launch_bounds/Makefile b/packages/kokkos/example/tutorial/launch_bounds/Makefile index 4a1bf1734..7df48f23c 100644 --- a/packages/kokkos/example/tutorial/launch_bounds/Makefile +++ b/packages/kokkos/example/tutorial/launch_bounds/Makefile @@ -23,15 +23,6 @@ EXE = launch_bounds.host KOKKOS_DEVICES = "OpenMP" KOKKOS_ARCH = "SNB" endif -ifneq (,$(findstring ROCm,$(KOKKOS_DEVICES))) -CXX = /opt/rocm/hcc/bin/clang++ -CXXFLAGS = -O3 -LINK = ${CXX} -LDFLAGS = -EXE = launch_bounds.rocm -KOKKOS_DEVICES = "ROCm" -KOKKOS_ARCH = "Fiji" -endif # WAR for "undefined memcpy" w/ Ubuntu + CUDA 7.5 @@ -58,7 +49,7 @@ $(EXE): $(OBJ) $(KOKKOS_LINK_DEPENDS) $(LINK) $(KOKKOS_LDFLAGS) $(LDFLAGS) $(EXTRA_PATH) $(OBJ) $(KOKKOS_LIBS) $(LIB) -o $(EXE) clean: kokkos-clean - rm -f *.o *.cuda *.rocm + rm -f *.o *.cuda # Compilation rules diff --git a/packages/kokkos/example/tutorial/launch_bounds/launch_bounds_reduce.cpp b/packages/kokkos/example/tutorial/launch_bounds/launch_bounds_reduce.cpp index 800904dbc..92f82111f 100644 --- a/packages/kokkos/example/tutorial/launch_bounds/launch_bounds_reduce.cpp +++ b/packages/kokkos/example/tutorial/launch_bounds/launch_bounds_reduce.cpp @@ -60,7 +60,7 @@ struct collision { // one i. // This function was chosen as one that very simply can increase the // register count. - typedef int value_type; + using value_type = int; KOKKOS_INLINE_FUNCTION int hash(int q) const { diff --git a/packages/kokkos/generate_makefile.bash b/packages/kokkos/generate_makefile.bash index 555f0b30a..144ed9260 100755 --- a/packages/kokkos/generate_makefile.bash +++ b/packages/kokkos/generate_makefile.bash @@ -20,17 +20,38 @@ get_kokkos_device_list() { PARSE_DEVICES_LST=$(echo $KOKKOS_DEVICES | tr "," "\n") PARSE_DEVICES_LST=$(echo $PARSE_DEVICES_LST | tr "_" "\n") for DEVICE_ in $PARSE_DEVICES_LST - do + do UC_DEVICE=$(echo $DEVICE_ | tr "[:lower:]" "[:upper:]") + if [ "${UC_DEVICE}" == "CUDA" ]; then + WITH_CUDA_BACKEND=ON + fi + if [ "${UC_DEVICE}" == "HIP" ]; then + WITH_HIP_BACKEND=ON + fi + if [ "${UC_DEVICE}" == "OPENMPTARGET" ]; then + WITH_OMPT_BACKEND=ON + fi KOKKOS_DEVICE_CMD="-DKokkos_ENABLE_${UC_DEVICE}=ON ${KOKKOS_DEVICE_CMD}" done + if [ "${WITH_CUDA_BACKEND}" == "ON" ] && [ "${WITH_HIP_BACKEND}" == "ON" ]; then + echo "Invalid configuration - Cuda and Hip cannot be simultaneously enabled" + exit + fi + if [ "${WITH_CUDA_BACKEND}" == "ON" ] && [ "${WITH_OMPT_BACKEND}" == "ON" ]; then + echo "Invalid configuration - Cuda and OpenMPTarget cannot be simultaneously enabled" + exit + fi + if [ "${WITH_OMPT_BACKEND}" == "ON" ] && [ "${WITH_HIP_BACKEND}" == "ON" ]; then + echo "Invalid configuration - OpenMPTarget and Hip cannot be simultaneously enabled" + exit + fi } get_kokkos_arch_list() { KOKKOS_ARCH_CMD= PARSE_ARCH_LST=$(echo $KOKKOS_ARCH | tr "," "\n") for ARCH_ in $PARSE_ARCH_LST - do + do UC_ARCH=$(echo $ARCH_ | tr "[:lower:]" "[:upper:]") KOKKOS_ARCH_CMD="-DKokkos_ARCH_${UC_ARCH}=ON ${KOKKOS_ARCH_CMD}" done @@ -41,11 +62,11 @@ get_kokkos_cuda_option_list() { KOKKOS_CUDA_OPTION_CMD= PARSE_CUDA_LST=$(echo $KOKKOS_CUDA_OPTIONS | tr "," "\n") for CUDA_ in $PARSE_CUDA_LST - do + do CUDA_OPT_NAME= if [ "${CUDA_}" == "enable_lambda" ]; then CUDA_OPT_NAME=CUDA_LAMBDA - elif [ "${CUDA_}" == "rdc" ]; then + elif [ "${CUDA_}" == "rdc" ]; then CUDA_OPT_NAME=CUDA_RELOCATABLE_DEVICE_CODE elif [ "${CUDA_}" == "force_uvm" ]; then CUDA_OPT_NAME=CUDA_UVM @@ -60,12 +81,49 @@ get_kokkos_cuda_option_list() { done } +get_kokkos_hip_option_list() { + echo parsing KOKKOS_HIP_OPTIONS=$KOKKOS_HIP_OPTIONS + KOKKOS_HIP_OPTION_CMD= + PARSE_HIP_LST=$(echo $KOKKOS_HIP_OPTIONS | tr "," "\n") + for HIP_ in $PARSE_HIP_LST + do + HIP_OPT_NAME= + if [ "${HIP_}" == "rdc" ]; then + HIP_OPT_NAME=HIP_RELOCATABLE_DEVICE_CODE + else + echo "${HIP_} is not a valid hip option..." + fi + if [ "${HIP_OPT_NAME}" != "" ]; then + KOKKOS_HIP_OPTION_CMD="-DKokkos_ENABLE_${HIP_OPT_NAME}=ON ${KOKKOS_HIP_OPTION_CMD}" + fi + done +} + +get_kokkos_ompt_option_list() { + echo parsing KOKKOS_OMPT_OPTIONS=$KOKKOS_OMPT_OPTIONS + KOKKOS_OMPT_OPTION_CMD= + PARSE_OMPT_LST=$(echo $KOKKOS_OMPT_OPTIONS | tr "," "\n") +# Stub for eventual OpenMPTarget options +# for OMPT_ in $PARSE_OMPT_LST +# do +# OMPT_OPT_NAME= +# if [ "${OMPT_}" == "?" ]; then +# OMPT_OPT_NAME=OMPT_? +# else +# echo "${OMPT_} is not a valid openmptarget option..." +# fi +# if [ "${OMPT_OPT_NAME}" != "" ]; then +# KOKKOS_OMPT_OPTION_CMD="-DKokkos_ENABLE_${OMPT_OPT_NAME}=ON ${KOKKOS_OMPT_OPTION_CMD}" +# fi +# done +} + get_kokkos_option_list() { echo parsing KOKKOS_OPTIONS=$KOKKOS_OPTIONS KOKKOS_OPTION_CMD= PARSE_OPTIONS_LST=$(echo $KOKKOS_OPTIONS | tr "," "\n") for OPT_ in $PARSE_OPTIONS_LST - do + do UC_OPT_=$(echo $OPT_ | tr "[:lower:]" "[:upper:]") if [[ "$UC_OPT_" == *DISABLE* ]]; then FLIP_OPT_=${UC_OPT_/DISABLE/ENABLE} @@ -86,20 +144,27 @@ display_help_text() { echo "--prefix=/Install/Path: Path to install the Kokkos library." echo "" echo "--with-cuda[=/Path/To/Cuda]: Enable Cuda and set path to Cuda Toolkit." + echo "--with-hip[=/Path/To/Hip]: Enable Hip and set path to ROCM Toolkit." + echo "--with-openmptarget: Enable OpenMPTarget backend." echo "--with-openmp: Enable OpenMP backend." echo "--with-pthread: Enable Pthreads backend." echo "--with-serial: Enable Serial backend." echo "--with-devices: Explicitly add a set of backends." echo "" echo "--arch=[OPT]: Set target architectures. Options are:" - echo " [AMD]" + echo " [AMD: CPU]" echo " AMDAVX = AMD CPU" - echo " EPYC = AMD EPYC Zen-Core CPU" + echo " ZEN = AMD Zen-Core CPU" + echo " ZEN2 = AMD Zen2-Core CPU" + echo " [AMD: GPU]" + echo " VEGA900 = AMD GPU MI25 GFX900" + echo " VEGA906 = AMD GPU MI50/MI60 GFX906" + echo " VEGA908 = AMD GPU" echo " [ARM]" - echo " ARMv80 = ARMv8.0 Compatible CPU" - echo " ARMv81 = ARMv8.1 Compatible CPU" - echo " ARMv8-ThunderX = ARMv8 Cavium ThunderX CPU" - echo " ARMv8-TX2 = ARMv8 Cavium ThunderX2 CPU" + echo " ARMV80 = ARMv8.0 Compatible CPU" + echo " ARMV81 = ARMv8.1 Compatible CPU" + echo " ARMV8_THUNDERX = ARMv8 Cavium ThunderX CPU" + echo " ARMV8_THUNDERX2 = ARMv8 Cavium ThunderX2 CPU" echo " [IBM]" echo " BGQ = IBM Blue Gene Q" echo " Power7 = IBM POWER7 and POWER7+ CPUs" @@ -129,13 +194,14 @@ display_help_text() { echo "" echo "--compiler=/Path/To/Compiler Set the compiler." echo "--debug,-dbg: Enable Debugging." + echo "--boundscheck: Enable Kokkos_ENABLE_DEBUG_BOUNDS_CHECK to check View accesses within bounds." echo "--disable-tests Disable compilation of unit tests (enabled by default)" echo "--cxxflags=[FLAGS] Overwrite CXXFLAGS for library build and test" echo " build. This will still set certain required" echo " flags via KOKKOS_CXXFLAGS (such as -fopenmp," - echo " --std=c++11, etc.)." - echo "--cxxstandard=[FLAGS] Overwrite KOKKOS_CXX_STANDARD for library build and test" - echo " c++11 (default), c++14, c++17, c++1y, c++1z, c++2a" + echo " --std=c++14, etc.)." + echo "--cxxstandard=[FLAGS] Set CMAKE_CXX_STANDARD for library build and test" + echo " c++14 (default), c++17, c++1y, c++1z, c++2a" echo "--ldflags=[FLAGS] Overwrite LDFLAGS for library build and test" echo " build. This will still set certain required" echo " flags via KOKKOS_LDFLAGS (such as -fopenmp," @@ -151,9 +217,12 @@ display_help_text() { echo " " echo "--with-cuda-options=[OPT]: Additional options to CUDA:" echo " force_uvm, use_ldg, enable_lambda, rdc" + echo "--with-hip-options=[OPT]: Additional options to HIP:" + echo " rdc" echo "--with-hpx-options=[OPT]: Additional options to HPX:" echo " enable_async_dispatch" echo "--gcc-toolchain=/Path/To/GccRoot: Set the gcc toolchain to use with clang (e.g. /usr)" + echo "--cmake-flags=[CMAKE Command options]: Set cmake options not handled by script" echo "--make-j=[NUM]: DEPRECATED: call make with appropriate" echo " -j flag" @@ -162,6 +231,11 @@ display_help_text() { KOKKOS_DO_TESTS=ON KOKKOS_DO_EXAMPLES=OFF +# For tracking if Cuda and Hip devices are enabled simultaneously +WITH_CUDA_BACKEND=OFF +WITH_HIP_BACKEND=OFF +WITH_OMPT_BACKEND=OFF + while [[ $# > 0 ]] do key="$1" @@ -189,6 +263,25 @@ do update_kokkos_devices Cuda CUDA_PATH="${key#*=}" ;; + --with-hip) + update_kokkos_devices Hip + HIP_PATH_HIPCC=$(command -v hipcc) + HIP_PATH=${HIP_PATH_HIPCC%/bin/hipcc} + ;; + # Catch this before '--with-hip*' + --with-hip-options*) + KOKKOS_HIP_OPTIONS="${key#*=}" + ;; + --with-hip*) + update_kokkos_devices Hip + HIP_PATH="${key#*=}" + ;; + --with-openmptarget) + update_kokkos_devices OpenMPTarget + ;; + --with-openmptarget-options*) + KOKKOS_OMPT_OPTIONS="${key#*=}" + ;; --with-openmp) update_kokkos_devices OpenMP ;; @@ -211,7 +304,7 @@ do DEVICES="${key#*=}" PARSE_DEVICES=$(echo $DEVICES | tr "," "\n") for DEVICE_ in $PARSE_DEVICES - do + do update_kokkos_devices $DEVICE_ done ;; @@ -242,6 +335,12 @@ do --debug|-dbg) KOKKOS_DEBUG=ON ;; + --boundscheck) + KOKKOS_BOUNDS_CHECK=ON + ;; + --cmake-flags*) + PASSTHRU_CMAKE_FLAGS="${key#*=}" + ;; --make-j*) echo "Warning: ${key} is deprecated" echo "Call make with appropriate -j flag" @@ -271,7 +370,7 @@ do echo "Invalid compiler by --compiler command: '${COMPILER}'" exit fi - # ... valid compiler, ensure absolute path set + # ... valid compiler, ensure absolute path set WCOMPATH=$(command -v $COMPILER) COMPDIR=$(dirname $WCOMPATH) COMPNAME=$(basename $WCOMPATH) @@ -295,7 +394,6 @@ do shift done - if [ "$COMPILER" == "" ]; then COMPILER_CMD= else @@ -303,11 +401,15 @@ else fi if [ "$KOKKOS_DEBUG" == "ON" ]; then - KOKKOS_DEBUG_CMD=-DCMAKE_BUILD_TYPE=DEBUG + KOKKOS_DEBUG_CMD="-DCMAKE_BUILD_TYPE=DEBUG -DKokkos_ENABLE_DEBUG=ON" else KOKKOS_DEBUG_CMD=-DCMAKE_BUILD_TYPE=RELEASE fi +if [ "$KOKKOS_BOUNDS_CHECK" == "ON" ]; then + KOKKOS_BC_CMD=-DKokkos_ENABLE_DEBUG_BOUNDS_CHECK=ON +fi + if [ "$KOKKOS_HWLOC" == "ON" ]; then KOKKOS_HWLOC_CMD=-DKokkos_ENABLE_HWLOC=ON if [ "$HWLOC_PATH" != "" ]; then @@ -335,7 +437,7 @@ if [ ! -e ${KOKKOS_PATH}/CMakeLists.txt ]; then exit 0 fi else - echo "KOKKOS_PATH does not appear to be set properly. please specify in location of CMakeLists.txt" + echo "KOKKOS_PATH does not appear to be set properly. please specify in location of CMakeLists.txt" display_help_text exit 0 fi @@ -345,6 +447,8 @@ get_kokkos_device_list get_kokkos_option_list get_kokkos_arch_list get_kokkos_cuda_option_list +get_kokkos_hip_option_list +get_kokkos_ompt_option_list ## if HPX is enabled, we need to enforce cxx standard = 14 if [[ ${KOKKOS_DEVICE_CMD} == *Kokkos_ENABLE_HPX* ]]; then @@ -357,7 +461,7 @@ fi if [ "$KOKKOS_CXX_STANDARD" == "" ]; then STANDARD_CMD= else - STANDARD_CMD=-DKokkos_CXX_STANDARD=${KOKKOS_CXX_STANDARD} + STANDARD_CMD=-DCMAKE_CXX_STANDARD=${KOKKOS_CXX_STANDARD} fi if [[ ${COMPILER} == *clang* ]]; then @@ -366,8 +470,8 @@ if [[ ${COMPILER} == *clang* ]]; then if [ ! "${CUDA_PATH}" == "" ]; then KOKKOS_CXXFLAGS="${KOKKOS_CXXFLAGS} --cuda-path=${CUDA_PATH}" - fi + fi fi - -echo cmake $COMPILER_CMD -DCMAKE_CXX_FLAGS="${KOKKOS_CXXFLAGS}" -DCMAKE_EXE_LINKER_FLAGS="${KOKKOS_LDFLAGS}" -DCMAKE_INSTALL_PREFIX=${PREFIX} ${KOKKOS_DEVICE_CMD} ${KOKKOS_ARCH_CMD} -DKokkos_ENABLE_TESTS=${KOKKOS_DO_TESTS} -DKokkos_ENABLE_EXAMPLES=${KOKKOS_DO_EXAMPLES} ${KOKKOS_OPTION_CMD} ${KOKKOS_CUDA_OPTION_CMD} -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_CXX_EXTENSIONS=OFF ${STANDARD_CMD} ${KOKKOS_DEBUG_CMD} ${KOKKOS_HWLOC_CMD} ${KOKKOS_HWLOC_PATH_CMD} ${KOKKOS_MEMKIND_CMD} ${KOKKOS_MEMKIND_PATH_CMD} ${KOKKOS_PATH} -cmake $COMPILER_CMD -DCMAKE_CXX_FLAGS="${KOKKOS_CXXFLAGS//\"}" -DCMAKE_EXE_LINKER_FLAGS="${KOKKOS_LDFLAGS//\"}" -DCMAKE_INSTALL_PREFIX=${PREFIX} ${KOKKOS_DEVICE_CMD} ${KOKKOS_ARCH_CMD} -DKokkos_ENABLE_TESTS=${KOKKOS_DO_TESTS} -DKokkos_ENABLE_EXAMPLES=${KOKKOS_DO_EXAMPLES} ${KOKKOS_OPTION_CMD} ${KOKKOS_CUDA_OPTION_CMD} -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_CXX_EXTENSIONS=OFF ${STANDARD_CMD} ${KOKKOS_DEBUG_CMD} ${KOKKOS_HWLOC_CMD} ${KOKKOS_HWLOC_PATH_CMD} ${KOKKOS_MEMKIND_CMD} ${KOKKOS_MEMKIND_PATH_CMD} ${KOKKOS_PATH} + +echo cmake $COMPILER_CMD -DCMAKE_CXX_FLAGS="${KOKKOS_CXXFLAGS}" -DCMAKE_EXE_LINKER_FLAGS="${KOKKOS_LDFLAGS}" -DCMAKE_INSTALL_PREFIX=${PREFIX} ${KOKKOS_DEVICE_CMD} ${KOKKOS_ARCH_CMD} -DKokkos_ENABLE_TESTS=${KOKKOS_DO_TESTS} -DKokkos_ENABLE_EXAMPLES=${KOKKOS_DO_EXAMPLES} ${KOKKOS_OPTION_CMD} ${KOKKOS_CUDA_OPTION_CMD} ${KOKKOS_HIP_OPTION_CMD} -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_CXX_EXTENSIONS=OFF ${STANDARD_CMD} ${KOKKOS_DEBUG_CMD} ${KOKKOS_BC_CMD} ${KOKKOS_HWLOC_CMD} ${KOKKOS_HWLOC_PATH_CMD} ${KOKKOS_MEMKIND_CMD} ${KOKKOS_MEMKIND_PATH_CMD} ${KOKKOS_PATH} +cmake $COMPILER_CMD -DCMAKE_CXX_FLAGS="${KOKKOS_CXXFLAGS//\"}" -DCMAKE_EXE_LINKER_FLAGS="${KOKKOS_LDFLAGS//\"}" -DCMAKE_INSTALL_PREFIX=${PREFIX} ${KOKKOS_DEVICE_CMD} ${KOKKOS_ARCH_CMD} -DKokkos_ENABLE_TESTS=${KOKKOS_DO_TESTS} -DKokkos_ENABLE_EXAMPLES=${KOKKOS_DO_EXAMPLES} ${KOKKOS_OPTION_CMD} ${KOKKOS_CUDA_OPTION_CMD} ${KOKKOS_HIP_OPTION_CMD} -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_CXX_EXTENSIONS=OFF ${STANDARD_CMD} ${KOKKOS_DEBUG_CMD} ${KOKKOS_BC_CMD} ${KOKKOS_HWLOC_CMD} ${KOKKOS_HWLOC_PATH_CMD} ${KOKKOS_MEMKIND_CMD} ${KOKKOS_MEMKIND_PATH_CMD} ${PASSTHRU_CMAKE_FLAGS} ${KOKKOS_PATH} diff --git a/packages/kokkos/gnu_generate_makefile.bash b/packages/kokkos/gnu_generate_makefile.bash index 42b26bf4a..20ad18bd2 100755 --- a/packages/kokkos/gnu_generate_makefile.bash +++ b/packages/kokkos/gnu_generate_makefile.bash @@ -2,8 +2,6 @@ KOKKOS_DEVICES="" -KOKKOS_DO_EXAMPLES="1" - while [[ $# > 0 ]] do key="$1" @@ -31,6 +29,19 @@ do KOKKOS_DEVICES="${KOKKOS_DEVICES},Cuda" CUDA_PATH="${key#*=}" ;; + --with-hip) + KOKKOS_DEVICES="${KOKKOS_DEVICES},Hip" + HIP_PATH_HIPCC=$(command -v hipcc) + HIP_PATH=${HIP_PATH_HIPCC%/bin/hipcc} + ;; + # Catch this before '--with-hip*' + --with-hip-options*) + KOKKOS_HIP_OPT="${key#*=}" + ;; + --with-hip*) + KOKKOS_DEVICES="${KOKKOS_DEVICES},Hip" + HIP_PATH="${key#*=}" + ;; --with-openmp) KOKKOS_DEVICES="${KOKKOS_DEVICES},OpenMP" ;; @@ -81,9 +92,6 @@ do echo "Warning: ${key} is deprecated" echo "Call make with appropriate -j flag" ;; - --no-examples) - KOKKOS_DO_EXAMPLES="0" - ;; --compiler*) COMPILER="${key#*=}" CNUM=$(command -v ${COMPILER} 2>&1 >/dev/null | grep "no ${COMPILER}" | wc -l) @@ -127,7 +135,8 @@ do echo "--arch=[OPT]: Set target architectures. Options are:" echo " [AMD]" echo " AMDAVX = AMD CPU" - echo " EPYC = AMD EPYC Zen-Core CPU" + echo " ZEN = AMD Zen-Core CPU" + echo " ZEN2 = AMD Zen2-Core CPU" echo " [ARM]" echo " ARMv80 = ARMv8.0 Compatible CPU" echo " ARMv81 = ARMv8.1 Compatible CPU" @@ -165,9 +174,9 @@ do echo "--cxxflags=[FLAGS] Overwrite CXXFLAGS for library build and test" echo " build. This will still set certain required" echo " flags via KOKKOS_CXXFLAGS (such as -fopenmp," - echo " --std=c++11, etc.)." + echo " --std=c++14, etc.)." echo "--cxxstandard=[FLAGS] Overwrite KOKKOS_CXX_STANDARD for library build and test" - echo " c++11 (default), c++14, c++17, c++1y, c++1z, c++2a" + echo " c++14 (default), c++17, c++1y, c++1z, c++2a" echo "--ldflags=[FLAGS] Overwrite LDFLAGS for library build and test" echo " build. This will still set certain required" echo " flags via KOKKOS_LDFLAGS (such as -fopenmp," @@ -225,6 +234,10 @@ elif [ ${#COMPILER} -eq 0 ] && [[ ${KOKKOS_DEVICES} =~ .*Cuda.* ]]; then COMPILER="${KOKKOS_PATH}/bin/nvcc_wrapper" KOKKOS_SETTINGS="${KOKKOS_SETTINGS} CXX=${COMPILER}" +elif + [ ${#COMPILER} -eq 0 ] && [[ ${KOKKOS_DEVICES} =~ .*Hip.* ]]; then + COMPILER=hipcc + KOKKOS_SETTINGS="${KOKKOS_SETTINGS} CXX=${COMPILER}" fi if [ ${#KOKKOS_DEVICES} -gt 0 ]; then @@ -243,6 +256,10 @@ if [ ${#CUDA_PATH} -gt 0 ]; then KOKKOS_SETTINGS="${KOKKOS_SETTINGS} CUDA_PATH=${CUDA_PATH}" fi +if [ ${#HIP_PATH} -gt 0 ]; then + KOKKOS_SETTINGS="${KOKKOS_SETTINGS} HIP_PATH=${HIP_PATH}" +fi + if [ ${#CXXFLAGS} -gt 0 ]; then KOKKOS_SETTINGS="${KOKKOS_SETTINGS} CXXFLAGS=\"${CXXFLAGS}\"" fi @@ -309,12 +326,6 @@ mkdir -p containers/performance_tests mkdir -p algorithms mkdir -p algorithms/unit_tests mkdir -p algorithms/performance_tests -mkdir -p example -mkdir -p example/fixture -mkdir -p example/feint -mkdir -p example/fenl -mkdir -p example/make_buildlink -mkdir -p example/tutorial KOKKOS_SETTINGS="${KOKKOS_SETTINGS_NO_KOKKOS_PATH} KOKKOS_PATH=${KOKKOS_PATH}" @@ -374,61 +385,6 @@ echo "" >> algorithms/unit_tests/Makefile echo "clean:" >> algorithms/unit_tests/Makefile echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/algorithms/unit_tests/Makefile ${KOKKOS_SETTINGS} clean" >> algorithms/unit_tests/Makefile -echo "KOKKOS_SETTINGS=${KOKKOS_SETTINGS}" > example/fixture/Makefile -echo "" >> example/fixture/Makefile -echo "all:" >> example/fixture/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/fixture/Makefile ${KOKKOS_SETTINGS}" >> example/fixture/Makefile -echo "" >> example/fixture/Makefile -echo "test: all" >> example/fixture/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/fixture/Makefile ${KOKKOS_SETTINGS} test" >> example/fixture/Makefile -echo "" >> example/fixture/Makefile -echo "clean:" >> example/fixture/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/fixture/Makefile ${KOKKOS_SETTINGS} clean" >> example/fixture/Makefile - -echo "KOKKOS_SETTINGS=${KOKKOS_SETTINGS}" > example/feint/Makefile -echo "" >> example/feint/Makefile -echo "all:" >> example/feint/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/feint/Makefile ${KOKKOS_SETTINGS}" >> example/feint/Makefile -echo "" >> example/feint/Makefile -echo "test: all" >> example/feint/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/feint/Makefile ${KOKKOS_SETTINGS} test" >> example/feint/Makefile -echo "" >> example/feint/Makefile -echo "clean:" >> example/feint/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/feint/Makefile ${KOKKOS_SETTINGS} clean" >> example/feint/Makefile - -echo "KOKKOS_SETTINGS=${KOKKOS_SETTINGS}" > example/fenl/Makefile -echo "" >> example/fenl/Makefile -echo "all:" >> example/fenl/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/fenl/Makefile ${KOKKOS_SETTINGS}" >> example/fenl/Makefile -echo "" >> example/fenl/Makefile -echo "test: all" >> example/fenl/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/fenl/Makefile ${KOKKOS_SETTINGS} test" >> example/fenl/Makefile -echo "" >> example/fenl/Makefile -echo "clean:" >> example/fenl/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/fenl/Makefile ${KOKKOS_SETTINGS} clean" >> example/fenl/Makefile - -echo "KOKKOS_SETTINGS=${KOKKOS_SETTINGS}" > example/make_buildlink/Makefile -echo "" >> example/make_buildlink/Makefile -echo "build:" >> example/make_buildlink/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/make_buildlink/Makefile ${KOKKOS_SETTINGS} build" >> example/make_buildlink/Makefile -echo "" >> example/make_buildlink/Makefile -echo "test: build" >> example/make_buildlink/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/make_buildlink/Makefile ${KOKKOS_SETTINGS} test" >> example/make_buildlink/Makefile -echo "" >> example/make_buildlink/Makefile -echo "clean:" >> example/make_buildlink/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/make_buildlink/Makefile ${KOKKOS_SETTINGS} clean" >> example/make_buildlink/Makefile - -echo "KOKKOS_SETTINGS=${KOKKOS_SETTINGS}" > example/tutorial/Makefile -echo "" >> example/tutorial/Makefile -echo "build:" >> example/tutorial/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/tutorial/Makefile KOKKOS_SETTINGS='${KOKKOS_SETTINGS}' KOKKOS_PATH=${KOKKOS_PATH} build">> example/tutorial/Makefile -echo "" >> example/tutorial/Makefile -echo "test: build" >> example/tutorial/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/tutorial/Makefile KOKKOS_SETTINGS='${KOKKOS_SETTINGS}' KOKKOS_PATH=${KOKKOS_PATH} test" >> example/tutorial/Makefile -echo "" >> example/tutorial/Makefile -echo "clean:" >> example/tutorial/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/tutorial/Makefile KOKKOS_SETTINGS='${KOKKOS_SETTINGS}' KOKKOS_PATH=${KOKKOS_PATH} clean" >> example/tutorial/Makefile - # Generate top level directory makefile. echo "Generating Makefiles with options " ${KOKKOS_SETTINGS} echo "KOKKOS_SETTINGS=${KOKKOS_SETTINGS}" > Makefile @@ -439,14 +395,6 @@ echo -e "\t\$(MAKE) -C core/perf_test" >> Makefile echo -e "\t\$(MAKE) -C containers/unit_tests" >> Makefile echo -e "\t\$(MAKE) -C containers/performance_tests" >> Makefile echo -e "\t\$(MAKE) -C algorithms/unit_tests" >> Makefile -if [ ${KOKKOS_DO_EXAMPLES} -gt 0 ]; then -$() -echo -e "\t\$(MAKE) -C example/fixture" >> Makefile -echo -e "\t\$(MAKE) -C example/feint" >> Makefile -echo -e "\t\$(MAKE) -C example/fenl" >> Makefile -echo -e "\t\$(MAKE) -C example/make_buildlink build" >> Makefile -echo -e "\t\$(MAKE) -C example/tutorial build" >> Makefile -fi echo "" >> Makefile echo "test: build-test" >> Makefile echo -e "\t\$(MAKE) -C core/unit_test test" >> Makefile @@ -454,13 +402,6 @@ echo -e "\t\$(MAKE) -C core/perf_test test" >> Makefile echo -e "\t\$(MAKE) -C containers/unit_tests test" >> Makefile echo -e "\t\$(MAKE) -C containers/performance_tests test" >> Makefile echo -e "\t\$(MAKE) -C algorithms/unit_tests test" >> Makefile -if [ ${KOKKOS_DO_EXAMPLES} -gt 0 ]; then -echo -e "\t\$(MAKE) -C example/fixture test" >> Makefile -echo -e "\t\$(MAKE) -C example/feint test" >> Makefile -echo -e "\t\$(MAKE) -C example/fenl test" >> Makefile -echo -e "\t\$(MAKE) -C example/make_buildlink test" >> Makefile -echo -e "\t\$(MAKE) -C example/tutorial test" >> Makefile -fi echo "" >> Makefile echo "unit-tests-only:" >> Makefile echo -e "\t\$(MAKE) -C core/unit_test test" >> Makefile @@ -474,11 +415,4 @@ echo -e "\t\$(MAKE) -C core/perf_test clean" >> Makefile echo -e "\t\$(MAKE) -C containers/unit_tests clean" >> Makefile echo -e "\t\$(MAKE) -C containers/performance_tests clean" >> Makefile echo -e "\t\$(MAKE) -C algorithms/unit_tests clean" >> Makefile -if [ ${KOKKOS_DO_EXAMPLES} -gt 0 ]; then -echo -e "\t\$(MAKE) -C example/fixture clean" >> Makefile -echo -e "\t\$(MAKE) -C example/feint clean" >> Makefile -echo -e "\t\$(MAKE) -C example/fenl clean" >> Makefile -echo -e "\t\$(MAKE) -C example/make_buildlink clean" >> Makefile -echo -e "\t\$(MAKE) -C example/tutorial clean" >> Makefile -fi diff --git a/packages/kokkos/master_history.txt b/packages/kokkos/master_history.txt index 11e803e76..e746bd7d0 100644 --- a/packages/kokkos/master_history.txt +++ b/packages/kokkos/master_history.txt @@ -19,4 +19,7 @@ tag: 2.8.00 date: 02:05:2019 master: 34931a36 develop: d1659d1d tag: 2.9.00 date: 06:24:2019 master: 5d6e7fb3 develop: 4c6cb80a tag: 3.0.00 date: 01:31:2020 master: 2983b80d release-candidate-3.0: fdc904a6 tag: 3.1.00 date: 04:14:2020 master: cd1b1d0a develop: fd90af43 -tag: 3.1.1 date: 05:04:2020 master: 785d19f2 release: 2be028bc +tag: 3.1.01 date: 05:04:2020 master: 785d19f2 release: 2be028bc +tag: 3.2.00 date: 08:19:2020 master: 3b2fdc7e release: 5dc6d303 +tag: 3.3.00 date: 12:16:2020 master: 734f577a release: 1535ba5c +tag: 3.3.01 date: 01:06:2021 master: 6d65b5a3 release: 4d23839c diff --git a/packages/kokkos/scripts/apply-clang-format b/packages/kokkos/scripts/apply-clang-format index c70cd3118..d988ca7ae 100755 --- a/packages/kokkos/scripts/apply-clang-format +++ b/packages/kokkos/scripts/apply-clang-format @@ -19,11 +19,24 @@ if [ "${CLANG_FORMAT_MAJOR_VERSION}" -ne 8 ] || [ "${CLANG_FORMAT_MINOR_VERSION} exit 1 fi -find . -name '*.cpp' -o -name '*.hpp' | xargs ${CLANG_FORMAT_EXECUTABLE} -i +BASE_DIR="$(git rev-parse --show-toplevel)" +cd $BASE_DIR +if [ ! -f "scripts/apply-clang-format" ]; then + echo "*** The indenting script must be executed from within the Kokkos clone!" + exit 1 +fi + +TRACKED_FILES="$(git ls-files)" + +find ${TRACKED_FILES} \ + -type f -name '*.cpp' -o -name '*.hpp' -o -name '*.cc' -o -name '*.h' | + xargs -n 1 -P 10 ${CLANG_FORMAT_EXECUTABLE} -i # Now also check for trailing whitspace. Mac OSX creates backup files # that we need to delete manually. -find . -type f \( -name "*.md" -o -name "*.cc" -o -name "*.h" -o -name "*.txt" -o -name "*.cmake" \) | +TRACKED_FILES="$(git ls-tree HEAD --name-only)" +find ${TRACKED_FILES} \ + -type f \( -name "*.md" -o -name "*.cc" -o -name "*.h" -o -name "*.txt" -o -name "*.cmake" \) | xargs -n 1 -P 10 -I {} bash -c "sed -i -e 's/\s\+$//g' {} && rm -f '{}-e'" # Check that we do not introduce any file with the old copyright diff --git a/packages/kokkos/scripts/docker/Dockerfile.clang b/packages/kokkos/scripts/docker/Dockerfile.clang index 680502f86..8d1a95b8b 100644 --- a/packages/kokkos/scripts/docker/Dockerfile.clang +++ b/packages/kokkos/scripts/docker/Dockerfile.clang @@ -18,12 +18,12 @@ RUN CMAKE_KEY=2D2CEF1034921684 && \ wget --quiet ${CMAKE_URL}/${CMAKE_SHA256} && \ wget --quiet ${CMAKE_URL}/${CMAKE_SHA256}.asc && \ wget --quiet ${CMAKE_URL}/${CMAKE_SCRIPT} && \ - gpg --keyserver hkps.pool.sks-keyservers.net --recv-keys ${CMAKE_KEY} && \ + gpg --keyserver pool.sks-keyservers.net --recv-keys ${CMAKE_KEY} && \ gpg --verify ${CMAKE_SHA256}.asc ${CMAKE_SHA256} && \ grep ${CMAKE_SCRIPT} ${CMAKE_SHA256} | sha256sum --check && \ mkdir -p ${CMAKE_DIR} && \ sh ${CMAKE_SCRIPT} --skip-license --prefix=${CMAKE_DIR} && \ - rm ${CMAKE_SCRIPT} + rm cmake* ENV PATH=${CMAKE_DIR}/bin:$PATH ENV LLVM_DIR=/opt/llvm diff --git a/packages/kokkos/scripts/docker/Dockerfile.gcc b/packages/kokkos/scripts/docker/Dockerfile.gcc index 2c6f946b1..fd37305f9 100644 --- a/packages/kokkos/scripts/docker/Dockerfile.gcc +++ b/packages/kokkos/scripts/docker/Dockerfile.gcc @@ -1,4 +1,4 @@ -FROM gcc:4.8.4 +FROM gcc:5.3.0 ARG CMAKE_VERSION=3.10.3 ENV CMAKE_DIR=/opt/cmake @@ -9,10 +9,10 @@ RUN CMAKE_KEY=2D2CEF1034921684 && \ wget --quiet ${CMAKE_URL}/${CMAKE_SHA256} && \ wget --quiet ${CMAKE_URL}/${CMAKE_SHA256}.asc && \ wget --quiet ${CMAKE_URL}/${CMAKE_SCRIPT} && \ - gpg --keyserver hkps.pool.sks-keyservers.net --recv-keys ${CMAKE_KEY} && \ + gpg --keyserver pool.sks-keyservers.net --recv-keys ${CMAKE_KEY} && \ gpg --verify ${CMAKE_SHA256}.asc ${CMAKE_SHA256} && \ grep ${CMAKE_SCRIPT} ${CMAKE_SHA256} | sha256sum --check && \ mkdir -p ${CMAKE_DIR} && \ sh ${CMAKE_SCRIPT} --skip-license --prefix=${CMAKE_DIR} && \ - rm ${CMAKE_SCRIPT} + rm cmake* ENV PATH=${CMAKE_DIR}/bin:$PATH diff --git a/packages/kokkos/scripts/docker/Dockerfile.hipcc b/packages/kokkos/scripts/docker/Dockerfile.hipcc index 597db7794..dddd09ae4 100644 --- a/packages/kokkos/scripts/docker/Dockerfile.hipcc +++ b/packages/kokkos/scripts/docker/Dockerfile.hipcc @@ -1,10 +1,11 @@ -ARG BASE=rocm/dev-ubuntu-18.04:3.0 +ARG BASE=rocm/dev-ubuntu-20.04:3.8 FROM $BASE RUN apt-get update && apt-get install -y \ kmod \ wget \ ccache \ + file \ && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* @@ -20,10 +21,10 @@ RUN CMAKE_KEY=2D2CEF1034921684 && \ wget --quiet ${CMAKE_URL}/${CMAKE_SHA256} && \ wget --quiet ${CMAKE_URL}/${CMAKE_SHA256}.asc && \ wget --quiet ${CMAKE_URL}/${CMAKE_SCRIPT} && \ - gpg --keyserver hkps.pool.sks-keyservers.net --recv-keys ${CMAKE_KEY} && \ + gpg --keyserver pool.sks-keyservers.net --recv-keys ${CMAKE_KEY} && \ gpg --verify ${CMAKE_SHA256}.asc ${CMAKE_SHA256} && \ grep ${CMAKE_SCRIPT} ${CMAKE_SHA256} | sha256sum --check && \ mkdir -p ${CMAKE_DIR} && \ sh ${CMAKE_SCRIPT} --skip-license --prefix=${CMAKE_DIR} && \ - rm ${CMAKE_SCRIPT} + rm cmake* ENV PATH=${CMAKE_DIR}/bin:$PATH diff --git a/packages/kokkos/scripts/docker/Dockerfile.kokkosllvmproject b/packages/kokkos/scripts/docker/Dockerfile.kokkosllvmproject new file mode 100644 index 000000000..ce4ffaa04 --- /dev/null +++ b/packages/kokkos/scripts/docker/Dockerfile.kokkosllvmproject @@ -0,0 +1,53 @@ +FROM nvidia/cuda:10.1-devel + +RUN apt-get update && apt-get install -y \ + bc \ + git \ + wget \ + ccache \ + python3 \ + python3-distutils \ + && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* + +ARG CMAKE_VERSION=3.10.3 +ENV CMAKE_DIR=/opt/cmake +RUN CMAKE_KEY=2D2CEF1034921684 && \ + CMAKE_URL=https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION} && \ + CMAKE_SCRIPT=cmake-${CMAKE_VERSION}-Linux-x86_64.sh && \ + CMAKE_SHA256=cmake-${CMAKE_VERSION}-SHA-256.txt && \ + wget --quiet ${CMAKE_URL}/${CMAKE_SHA256} && \ + wget --quiet ${CMAKE_URL}/${CMAKE_SHA256}.asc && \ + wget --quiet ${CMAKE_URL}/${CMAKE_SCRIPT} && \ + gpg --keyserver pool.sks-keyservers.net --recv-keys ${CMAKE_KEY} && \ + gpg --verify ${CMAKE_SHA256}.asc ${CMAKE_SHA256} && \ + grep ${CMAKE_SCRIPT} ${CMAKE_SHA256} | sha256sum --check && \ + mkdir -p ${CMAKE_DIR} && \ + sh ${CMAKE_SCRIPT} --skip-license --prefix=${CMAKE_DIR} && \ + rm cmake* +ENV PATH=${CMAKE_DIR}/bin:$PATH + +ARG NPROC=8 + +# Clone Kokkos fork of the LLVM Project and build Clang +ENV LLVM_DIR=/opt/llvm +RUN LLVM_VERSION=55b3bcf643685c63fcc529d434bed112fdf03939 && \ + LLVM_URL=https://github.com/kokkos/llvm-project/archive/${LLVM_VERSION}.tar.gz &&\ + LLVM_ARCHIVE=llvm.tar.xz && \ + SCRATCH_DIR=/scratch && mkdir -p ${SCRATCH_DIR} && cd ${SCRATCH_DIR} && \ + wget --quiet ${LLVM_URL} --output-document=${LLVM_ARCHIVE} && \ + mkdir llvm-project && \ + tar -xf ${LLVM_ARCHIVE} -C llvm-project --strip-components=1 && \ + cd llvm-project && \ + mkdir build && cd build && \ + cmake \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=$LLVM_DIR \ + -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;compiler-rt" \ + ../llvm && \ + make -j${NPROC} && \ + make install && \ + echo "${LLVM_DIR}/lib" > /etc/ld.so.conf.d/llvm.conf && ldconfig && \ + rm -rf ${SCRATCH_DIR} +ENV PATH=${LLVM_DIR}/bin:$PATH diff --git a/packages/kokkos/scripts/docker/Dockerfile.nvcc b/packages/kokkos/scripts/docker/Dockerfile.nvcc index 8d3fe2724..868f9be1c 100644 --- a/packages/kokkos/scripts/docker/Dockerfile.nvcc +++ b/packages/kokkos/scripts/docker/Dockerfile.nvcc @@ -1,10 +1,13 @@ ARG BASE=nvidia/cuda:9.2-devel FROM $BASE +ARG ADDITIONAL_PACKAGES + RUN apt-get update && apt-get install -y \ bc \ wget \ ccache \ + $ADDITIONAL_PACKAGES \ && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* @@ -18,10 +21,10 @@ RUN CMAKE_KEY=2D2CEF1034921684 && \ wget --quiet ${CMAKE_URL}/${CMAKE_SHA256} && \ wget --quiet ${CMAKE_URL}/${CMAKE_SHA256}.asc && \ wget --quiet ${CMAKE_URL}/${CMAKE_SCRIPT} && \ - gpg --keyserver hkps.pool.sks-keyservers.net --recv-keys ${CMAKE_KEY} && \ + gpg --keyserver pool.sks-keyservers.net --recv-keys ${CMAKE_KEY} && \ gpg --verify ${CMAKE_SHA256}.asc ${CMAKE_SHA256} && \ grep ${CMAKE_SCRIPT} ${CMAKE_SHA256} | sha256sum --check && \ mkdir -p ${CMAKE_DIR} && \ sh ${CMAKE_SCRIPT} --skip-license --prefix=${CMAKE_DIR} && \ - rm ${CMAKE_SCRIPT} + rm cmake* ENV PATH=${CMAKE_DIR}/bin:$PATH diff --git a/packages/kokkos/scripts/docker/Dockerfile.openmptarget b/packages/kokkos/scripts/docker/Dockerfile.openmptarget new file mode 100644 index 000000000..b6efcb82c --- /dev/null +++ b/packages/kokkos/scripts/docker/Dockerfile.openmptarget @@ -0,0 +1,67 @@ +ARG BASE=nvidia/cuda:11.1-devel-ubuntu20.04 +FROM $BASE + +RUN apt-get update && apt-get install -y \ + bc \ + git \ + wget \ + ccache \ + python3 \ + libelf-dev \ + && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* + +ARG NPROC=8 + +ARG CMAKE_VERSION=3.18.5 +ENV CMAKE_DIR=/opt/cmake +RUN CMAKE_KEY=2D2CEF1034921684 && \ + CMAKE_URL=https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION} && \ + CMAKE_SCRIPT=cmake-${CMAKE_VERSION}-Linux-x86_64.sh && \ + CMAKE_SHA256=cmake-${CMAKE_VERSION}-SHA-256.txt && \ + wget --quiet ${CMAKE_URL}/${CMAKE_SHA256} && \ + wget --quiet ${CMAKE_URL}/${CMAKE_SHA256}.asc && \ + wget --quiet ${CMAKE_URL}/${CMAKE_SCRIPT} && \ + gpg --keyserver hkps.pool.sks-keyservers.net --recv-keys ${CMAKE_KEY} && \ + gpg --verify ${CMAKE_SHA256}.asc ${CMAKE_SHA256} && \ + grep ${CMAKE_SCRIPT} ${CMAKE_SHA256} | sha256sum --check && \ + mkdir -p ${CMAKE_DIR} && \ + sh ${CMAKE_SCRIPT} --skip-license --prefix=${CMAKE_DIR} && \ + rm ${CMAKE_SCRIPT} +ENV PATH=${CMAKE_DIR}/bin:$PATH + +ENV LLVM_DIR=/opt/llvm +RUN LLVM_VERSION=887c7660bdf3f300bd1997dcfd7ace91787c0584 && \ + LLVM_URL=https://github.com/llvm/llvm-project/archive &&\ + LLVM_ARCHIVE=${LLVM_VERSION}.tar.gz &&\ + SCRATCH_DIR=/scratch && mkdir -p ${SCRATCH_DIR} && cd ${SCRATCH_DIR} && \ + wget --quiet ${LLVM_URL}/${LLVM_ARCHIVE} && \ + mkdir llvm-project && \ + tar -xf ${LLVM_ARCHIVE} -C llvm-project --strip-components=1 && \ + cd llvm-project && \ + mkdir build && cd build && \ + cmake \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=$LLVM_DIR \ + -DCMAKE_C_COMPILER=gcc \ + -DCMAKE_CXX_COMPILER=g++ \ + -DLLVM_ENABLE_PROJECTS="clang;libcxx;libcxxabi;openmp" \ + -DCLANG_OPENMP_NVPTX_DEFAULT_ARCH=sm_70 \ + -DLIBOMPTARGET_NVPTX_COMPUTE_CAPABILITIES=70 \ + ../llvm && \ + make -j${NPROC} && \ + make install && \ + rm -rf ../build/* && \ + cmake \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=$LLVM_DIR \ + -DCMAKE_C_COMPILER=$LLVM_DIR/bin/clang \ + -DCMAKE_CXX_COMPILER=$LLVM_DIR/bin/clang++ \ + -DLIBOMPTARGET_NVPTX_COMPUTE_CAPABILITIES=70 \ + ../openmp && \ + make -j${NPROC} && \ + make install && \ + echo "${LLVM_DIR}/lib" > /etc/ld.so.conf.d/llvm.conf && ldconfig && \ + rm -rf ${SCRATCH_DIR} +ENV PATH=${LLVM_DIR}/bin:$PATH diff --git a/packages/kokkos/scripts/docker/Dockerfile.sycl b/packages/kokkos/scripts/docker/Dockerfile.sycl new file mode 100644 index 000000000..331270491 --- /dev/null +++ b/packages/kokkos/scripts/docker/Dockerfile.sycl @@ -0,0 +1,28 @@ +ARG BASE=intel/oneapi-basekit:devel-ubuntu18.04 +FROM $BASE + +RUN apt-get update && apt-get install -y \ + wget \ + ccache \ + && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* + +ENV PATH=/opt/intel/oneapi/compiler/latest/linux/bin/:$PATH + +ARG CMAKE_VERSION=3.10.3 +ENV CMAKE_DIR=/opt/cmake +RUN CMAKE_KEY=2D2CEF1034921684 && \ + CMAKE_URL=https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION} && \ + CMAKE_SCRIPT=cmake-${CMAKE_VERSION}-Linux-x86_64.sh && \ + CMAKE_SHA256=cmake-${CMAKE_VERSION}-SHA-256.txt && \ + wget --quiet ${CMAKE_URL}/${CMAKE_SHA256} && \ + wget --quiet ${CMAKE_URL}/${CMAKE_SHA256}.asc && \ + wget --quiet ${CMAKE_URL}/${CMAKE_SCRIPT} && \ + gpg --keyserver pool.sks-keyservers.net --recv-keys ${CMAKE_KEY} && \ + gpg --verify ${CMAKE_SHA256}.asc ${CMAKE_SHA256} && \ + grep ${CMAKE_SCRIPT} ${CMAKE_SHA256} | sha256sum --check && \ + mkdir -p ${CMAKE_DIR} && \ + sh ${CMAKE_SCRIPT} --skip-license --prefix=${CMAKE_DIR} && \ + rm cmake* +ENV PATH=${CMAKE_DIR}/bin:$PATH diff --git a/packages/kokkos/scripts/eti/generate_view_copy_cpp_files b/packages/kokkos/scripts/eti/generate_view_copy_cpp_files deleted file mode 100755 index 1a5d2cbfe..000000000 --- a/packages/kokkos/scripts/eti/generate_view_copy_cpp_files +++ /dev/null @@ -1,13 +0,0 @@ -SCRIPT_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -mkdir -p eti -cd eti -mkdir -p common -rm common/* - -${SCRIPT_PATH}/generate_view_copy_cpp_files_iterate Serial Serial -${SCRIPT_PATH}/generate_view_copy_cpp_files_iterate OpenMP OpenMP -${SCRIPT_PATH}/generate_view_copy_cpp_files_iterate Threads Threads -${SCRIPT_PATH}/generate_view_copy_cpp_files_iterate Cuda Cuda -${SCRIPT_PATH}/generate_view_copy_cpp_files_iterate "Experimental::ROCm" ROCm -${SCRIPT_PATH}/generate_view_copy_cpp_files_iterate "Experimental::HPX" HPX - diff --git a/packages/kokkos/scripts/eti/generate_view_copy_cpp_files_iterate b/packages/kokkos/scripts/eti/generate_view_copy_cpp_files_iterate deleted file mode 100755 index 036f8f2cd..000000000 --- a/packages/kokkos/scripts/eti/generate_view_copy_cpp_files_iterate +++ /dev/null @@ -1,21 +0,0 @@ -SCRIPT_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -EXECUTION_SPACE=$1 -EXECUTION_SPACE_DIR=$2 - -rm common/* -mkdir -p ${EXECUTION_SPACE_DIR} -rm ${EXECUTION_SPACE_DIR}/* - -SCALAR_TYPES="int int64_t float double" -INDEX_TYPES="int int64_t" -LAYOUT_TYPES="LayoutLeft LayoutRight LayoutStride" - -for scalar in ${SCALAR_TYPES}; do -for index in ${INDEX_TYPES}; do -for layout in ${LAYOUT_TYPES}; do - echo "Generate: " ${scalar} ${index} ${layout} - ${SCRIPT_PATH}/generate_view_copy_cpp_files_rank ${EXECUTION_SPACE} ${EXECUTION_SPACE_DIR} ${scalar} ${index} ${layout} -done -done -done - diff --git a/packages/kokkos/scripts/eti/generate_view_copy_cpp_files_rank b/packages/kokkos/scripts/eti/generate_view_copy_cpp_files_rank deleted file mode 100755 index 5ac20232a..000000000 --- a/packages/kokkos/scripts/eti/generate_view_copy_cpp_files_rank +++ /dev/null @@ -1,17 +0,0 @@ -SCRIPT_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -EXECUTION_SPACE=$1 -EXECUTION_SPACE_DIR=$2 -SCALAR_TYPE=$3 -INDEX_TYPE=$4 -LAYOUT_TYPE=$5 - -#Geberate Rank 1 - 8 specialisations -${SCRIPT_PATH}/generate_view_copy_cpp_files_write ${EXECUTION_SPACE} ${EXECUTION_SPACE_DIR} ${SCALAR_TYPE} ${INDEX_TYPE} ${LAYOUT_TYPE} 1 "*" -${SCRIPT_PATH}/generate_view_copy_cpp_files_write ${EXECUTION_SPACE} ${EXECUTION_SPACE_DIR} ${SCALAR_TYPE} ${INDEX_TYPE} ${LAYOUT_TYPE} 2 "**" -${SCRIPT_PATH}/generate_view_copy_cpp_files_write ${EXECUTION_SPACE} ${EXECUTION_SPACE_DIR} ${SCALAR_TYPE} ${INDEX_TYPE} ${LAYOUT_TYPE} 3 "***" -${SCRIPT_PATH}/generate_view_copy_cpp_files_write ${EXECUTION_SPACE} ${EXECUTION_SPACE_DIR} ${SCALAR_TYPE} ${INDEX_TYPE} ${LAYOUT_TYPE} 4 "****" -${SCRIPT_PATH}/generate_view_copy_cpp_files_write ${EXECUTION_SPACE} ${EXECUTION_SPACE_DIR} ${SCALAR_TYPE} ${INDEX_TYPE} ${LAYOUT_TYPE} 5 "*****" -#${SCRIPT_PATH}/generate_view_copy_cpp_files_write ${EXECUTION_SPACE} ${EXECUTION_SPACE_DIR} ${SCALAR_TYPE} ${INDEX_TYPE} ${LAYOUT_TYPE} 6 "******" -#${SCRIPT_PATH}/generate_view_copy_cpp_files_write ${EXECUTION_SPACE} ${EXECUTION_SPACE_DIR} ${SCALAR_TYPE} ${INDEX_TYPE} ${LAYOUT_TYPE} 7 "*******" -${SCRIPT_PATH}/generate_view_copy_cpp_files_write ${EXECUTION_SPACE} ${EXECUTION_SPACE_DIR} ${SCALAR_TYPE} ${INDEX_TYPE} ${LAYOUT_TYPE} 8 "********" - diff --git a/packages/kokkos/scripts/eti/generate_view_copy_cpp_files_write b/packages/kokkos/scripts/eti/generate_view_copy_cpp_files_write deleted file mode 100755 index 45208e76b..000000000 --- a/packages/kokkos/scripts/eti/generate_view_copy_cpp_files_write +++ /dev/null @@ -1,41 +0,0 @@ -SCRIPT_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" - -EXECUTION_SPACE=$1 -EXECUTION_SPACE_DIR=$2 -SCALAR_TYPE=$3 -INDEX_TYPE=$4 -LAYOUT_TYPE=$5 -RANK=$6 -RANK_STARS=$7 - - -echo "KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(${SCALAR_TYPE}${RANK_STARS},${LAYOUT_TYPE},LayoutRight, KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE,${INDEX_TYPE})" >> common/Kokkos_ViewFillCopyETIAvail_Macros.hpp -echo "KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(${SCALAR_TYPE}${RANK_STARS},${LAYOUT_TYPE},LayoutLeft, KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE,${INDEX_TYPE})" >> common/Kokkos_ViewFillCopyETIAvail_Macros.hpp -echo "KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL(${SCALAR_TYPE}${RANK_STARS},${LAYOUT_TYPE},LayoutStride,KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE,${INDEX_TYPE})" >> common/Kokkos_ViewFillCopyETIAvail_Macros.hpp -echo "KOKKOS_IMPL_VIEWFILL_ETI_AVAIL(${SCALAR_TYPE}${RANK_STARS},${LAYOUT_TYPE}, KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE,${INDEX_TYPE})" >> common/Kokkos_ViewFillCopyETIAvail_Macros.hpp -echo "KOKKOS_IMPL_VIEWCOPY_ETI_DECL(${SCALAR_TYPE}${RANK_STARS},${LAYOUT_TYPE},LayoutRight, KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE,${INDEX_TYPE})" >> common/Kokkos_ViewFillCopyETIDecl_Macros.hpp -echo "KOKKOS_IMPL_VIEWCOPY_ETI_DECL(${SCALAR_TYPE}${RANK_STARS},${LAYOUT_TYPE},LayoutLeft, KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE,${INDEX_TYPE})" >> common/Kokkos_ViewFillCopyETIDecl_Macros.hpp -echo "KOKKOS_IMPL_VIEWCOPY_ETI_DECL(${SCALAR_TYPE}${RANK_STARS},${LAYOUT_TYPE},LayoutStride,KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE,${INDEX_TYPE})" >> common/Kokkos_ViewFillCopyETIDecl_Macros.hpp -echo "KOKKOS_IMPL_VIEWFILL_ETI_DECL(${SCALAR_TYPE}${RANK_STARS},${LAYOUT_TYPE},KOKKOS_IMPL_VIEWCOPY_ETI_AVAIL_EXECSPACE,${INDEX_TYPE})" >> common/Kokkos_ViewFillCopyETIDecl_Macros.hpp - - -FileName=${EXECUTION_SPACE_DIR}/Kokkos_${EXECUTION_SPACE_DIR}_ViewCopyETIInst_${INDEX_TYPE}_${SCALAR_TYPE}_${LAYOUT_TYPE}_Rank${RANK}.cpp -ObjectName=Kokkos_${EXECUTION_SPACE_DIR}_ViewCopyETIInst_${INDEX_TYPE}_${SCALAR_TYPE}_${LAYOUT_TYPE}_Rank${RANK}.o - -cp ${SCRIPT_PATH}/../../LICENSE ${FileName} - -echo "" >> ${FileName} -echo "#define KOKKOS_IMPL_COMPILING_LIBRARY true" >> ${FileName} -echo "#include<Kokkos_Core.hpp>" >> ${FileName} -echo "namespace Kokkos {" >> ${FileName} -echo "namespace Impl {" >> ${FileName} -echo "KOKKOS_IMPL_VIEWCOPY_ETI_INST(${SCALAR_TYPE}${RANK_STARS},${LAYOUT_TYPE},LayoutRight, ${EXECUTION_SPACE},${INDEX_TYPE})" >> ${FileName} -echo "KOKKOS_IMPL_VIEWCOPY_ETI_INST(${SCALAR_TYPE}${RANK_STARS},${LAYOUT_TYPE},LayoutLeft, ${EXECUTION_SPACE},${INDEX_TYPE})" >> ${FileName} -echo "KOKKOS_IMPL_VIEWCOPY_ETI_INST(${SCALAR_TYPE}${RANK_STARS},${LAYOUT_TYPE},LayoutStride,${EXECUTION_SPACE},${INDEX_TYPE})" >> ${FileName} -echo "KOKKOS_IMPL_VIEWFILL_ETI_INST(${SCALAR_TYPE}${RANK_STARS},${LAYOUT_TYPE},${EXECUTION_SPACE},${INDEX_TYPE})" >> ${FileName} -echo "" >> ${FileName} -echo "}" >> ${FileName} -echo "}" >> ${FileName} - -echo "${ObjectName}: \$(KOKKOS_CPP_DEPENDS) \$(KOKKOS_ETI_PATH)/${FileName}" >> ${EXECUTION_SPACE_DIR}/Makefile.eti_${EXECUTION_SPACE_DIR} -echo -e "\t\$(CXX) \$(KOKKOS_CPPFLAGS) \$(KOKKOS_CXXFLAGS) \$(CXXFLAGS) -c \$(KOKKOS_ETI_PATH)/${FileName}" >> ${EXECUTION_SPACE_DIR}/Makefile.eti_${EXECUTION_SPACE_DIR} diff --git a/packages/kokkos/scripts/testing_scripts/generate_makefile.bash b/packages/kokkos/scripts/testing_scripts/generate_makefile.bash index e3614c574..cd7679751 100755 --- a/packages/kokkos/scripts/testing_scripts/generate_makefile.bash +++ b/packages/kokkos/scripts/testing_scripts/generate_makefile.bash @@ -127,7 +127,8 @@ do echo "--arch=[OPT]: Set target architectures. Options are:" echo " [AMD]" echo " AMDAVX = AMD CPU" - echo " EPYC = AMD EPYC Zen-Core CPU" + echo " ZEN = AMD Zen-Core CPU" + echo " ZEN2 = AMD Zen2-Core CPU" echo " [ARM]" echo " ARMv80 = ARMv8.0 Compatible CPU" echo " ARMv81 = ARMv8.1 Compatible CPU" @@ -165,9 +166,9 @@ do echo "--cxxflags=[FLAGS] Overwrite CXXFLAGS for library build and test" echo " build. This will still set certain required" echo " flags via KOKKOS_CXXFLAGS (such as -fopenmp," - echo " --std=c++11, etc.)." + echo " --std=c++14, etc.)." echo "--cxxstandard=[FLAGS] Overwrite KOKKOS_CXX_STANDARD for library build and test" - echo " c++11 (default), c++14, c++17, c++1y, c++1z, c++2a" + echo " c++14 (default), c++17, c++1y, c++1z, c++2a" echo "--ldflags=[FLAGS] Overwrite LDFLAGS for library build and test" echo " build. This will still set certain required" echo " flags via KOKKOS_LDFLAGS (such as -fopenmp," diff --git a/packages/kokkos/scripts/testing_scripts/gnu_test_all_sandia b/packages/kokkos/scripts/testing_scripts/gnu_test_all_sandia index eea23f53e..b2a0677e1 100755 --- a/packages/kokkos/scripts/testing_scripts/gnu_test_all_sandia +++ b/packages/kokkos/scripts/testing_scripts/gnu_test_all_sandia @@ -95,7 +95,7 @@ CXX_FLAGS_EXTRA="" LD_FLAGS_EXTRA="" KOKKOS_OPTIONS="" -CXX_STANDARD="c++11" +CXX_STANDARD="c++14" # # Handle arguments. @@ -518,7 +518,7 @@ if [ "$PRINT_HELP" = "True" ]; then echo "--build-only: Just do builds, don't run anything" echo "--opt-flag=FLAG: Optimization flag (default: -O3)" echo "--cxxflags-extra=FLAGS: Extra flags to be added to CXX_FLAGS" - echo "--cxxstandard=OPT: c++11 (default), c++14, c++17, c++1y, c++1z, c++2a" + echo "--cxxstandard=OPT: c++14 (default), c++17, c++1y, c++1z, c++2a" echo "--ldflags-extra=FLAGS: Extra flags to be added to LD_FLAGS" echo "--arch=ARCHITECTURE: overwrite architecture flags" echo "--with-cuda-options=OPT: set KOKKOS_CUDA_OPTIONS" diff --git a/packages/kokkos/scripts/testing_scripts/test_all_sandia b/packages/kokkos/scripts/testing_scripts/test_all_sandia index c41a83641..578d2992a 100755 --- a/packages/kokkos/scripts/testing_scripts/test_all_sandia +++ b/packages/kokkos/scripts/testing_scripts/test_all_sandia @@ -13,15 +13,17 @@ print_help() { echo "--kokkos-path=/Path/To/Kokkos: Path to the Kokkos root directory" echo " Defaults to root repo containing this script" echo "--debug: Run tests in debug. Defaults to False" + echo "--boundscheck: Enable Kokkos_ENABLE_DEBUG_BOUNDS_CHECK to check View accesses within bounds." echo "--test-script: Test this script, not Kokkos" echo "--skip-hwloc: Do not do hwloc tests" echo "--num=N: Number of jobs to run in parallel" echo "--spot-check: Minimal test set to issue pull request" + echo "--timeout: Max time before ctest timeout (in seconds)" echo "--dry-run: Just print what would be executed" echo "--build-only: Just do builds, don't run anything" echo "--opt-flag=FLAG: Optimization flag (default: -O3)" echo "--cxxflags-extra=FLAGS: Extra flags to be added to CXX_FLAGS" - echo "--cxxstandard=OPT: c++11 (default), c++14, c++17, c++1y, c++1z, c++2a" + echo "--cxxstandard=OPT: c++14 (default), c++17, c++1y, c++1z, c++2a" echo "--ldflags-extra=FLAGS: Extra flags to be added to LD_FLAGS" echo "--arch=ARCHITECTURE: overwrite architecture flags" echo "--with-cuda-options=OPT: set KOKKOS_CUDA_OPTIONS" @@ -74,13 +76,13 @@ if [[ "$HOSTNAME" =~ (white|ride).* ]]; then module load git fi -if [[ "$HOSTNAME" =~ waterman.* ]]; then - MACHINE=waterman +if [[ "$HOSTNAME" =~ weaver.* ]]; then + MACHINE=weaver module load git fi -if [[ "$HOSTNAME" =~ .*bowman.* ]]; then - MACHINE=bowman +if [[ "$HOSTNAME" =~ .*voltrino.* ]]; then + MACHINE=voltrino module load git fi @@ -158,7 +160,9 @@ CXX_FLAGS_EXTRA="" LD_FLAGS_EXTRA="" KOKKOS_OPTIONS="" -CXX_STANDARD="11" +CXX_STANDARD="14" + +CTESTTIMEOUT=2000 # # Handle arguments. @@ -178,6 +182,9 @@ do --debug*) DEBUG=True ;; + --boundscheck*) + KOKKOS_BOUNDS_CHECK="--boundscheck" + ;; --build-only*) BUILD_ONLY=True ;; @@ -196,6 +203,9 @@ do --spot-check*) SPOT_CHECK=True ;; + --timeout*) + CTESTTIMEOUT="${key#*=}" + ;; --arch*) ARCH_FLAG="--arch=${key#*=}" ;; @@ -274,23 +284,23 @@ if [ "$MACHINE" = "sems" ]; then COMPILERS=("gcc/5.3.0 $BASE_MODULE_LIST "OpenMP" g++ $GCC_WARNING_FLAGS" "gcc/7.2.0 $BASE_MODULE_LIST "Serial" g++ $GCC_WARNING_FLAGS" "intel/17.0.1 $BASE_MODULE_LIST "OpenMP" icpc $INTEL_WARNING_FLAGS" - "clang/3.9.0 $BASE_MODULE_LIST "Pthread_Serial" clang++ $CLANG_WARNING_FLAGS" "cuda/9.2 $CUDA9_MODULE_LIST $CUDA_BUILD_LIST $KOKKOS_PATH/bin/nvcc_wrapper $CUDA_WARNING_FLAGS" ) else # Format: (compiler module-list build-list exe-name warning-flag) - COMPILERS=("gcc/4.8.4 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" - "gcc/4.9.3 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" - "gcc/5.3.0 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" + COMPILERS=("gcc/5.3.0 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" "gcc/6.1.0 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" + "gcc/6.4.0 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" "gcc/7.2.0 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" - "intel/15.0.2 $BASE_MODULE_LIST $INTEL_BUILD_LIST icpc $INTEL15_WARNING_FLAGS" - "intel/16.0.1 $BASE_MODULE_LIST $INTEL_BUILD_LIST icpc $INTEL_WARNING_FLAGS" + "gcc/7.3.0 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" + "gcc/8.3.0 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" + "gcc/9.2.0 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" + "clang/5.0.1 $BASE_MODULE_LIST $CLANG_BUILD_LIST clang++ $CLANG_WARNING_FLAGS" + "clang/7.0.1 $BASE_MODULE_LIST $CLANG_BUILD_LIST clang++ $CLANG_WARNING_FLAGS" + "clang/9.0.0 $BASE_MODULE_LIST $CLANG_BUILD_LIST clang++ $CLANG_WARNING_FLAGS" "intel/17.0.1 $BASE_MODULE_LIST $INTEL_BUILD_LIST icpc $INTEL_WARNING_FLAGS" - "clang/3.6.1 $BASE_MODULE_LIST $CLANG_BUILD_LIST clang++ $CLANG_WARNING_FLAGS" - "clang/3.7.1 $BASE_MODULE_LIST $CLANG_BUILD_LIST clang++ $CLANG_WARNING_FLAGS" - "clang/3.8.1 $BASE_MODULE_LIST $CLANG_BUILD_LIST clang++ $CLANG_WARNING_FLAGS" - "clang/3.9.0 $BASE_MODULE_LIST $CLANG_BUILD_LIST clang++ $CLANG_WARNING_FLAGS" + "intel/18.0.5 $BASE_MODULE_LIST $INTEL_BUILD_LIST icpc $INTEL_WARNING_FLAGS" + "intel/19.0.5 $BASE_MODULE_LIST $INTEL_BUILD_LIST icpc $INTEL_WARNING_FLAGS" "cuda/9.2 $CUDA9_MODULE_LIST $CUDA_BUILD_LIST $KOKKOS_PATH/bin/nvcc_wrapper $CUDA_WARNING_FLAGS" ) fi @@ -298,9 +308,12 @@ elif [ "$MACHINE" = "kokkos-dev" ]; then source /projects/sems/modulefiles/utils/sems-modules-init.sh module load sems-cmake/3.12.2 - BASE_MODULE_LIST="sems-env,sems-cmake/3.12.2,kokkos-env,kokkos-hwloc/1.10.1/base,sems-<COMPILER_NAME>/<COMPILER_VERSION>" - CUDA9_MODULE_LIST="sems-env,sems-cmake/3.12.2,kokkos-env,sems-<COMPILER_NAME>/<COMPILER_VERSION>,sems-gcc/6.1.0,kokkos-hwloc/1.10.1/base" - CLANG7_MODULE_LIST="sems-env,sems-cmake/3.12.2,kokkos-env,kokkos-hwloc/1.10.1/base,sems-<COMPILER_NAME>/<COMPILER_VERSION>,sems-cuda/9.2" + BASE_MODULE_LIST="sems-env,sems-cmake/3.12.2,sems-<COMPILER_NAME>/<COMPILER_VERSION>" + CUDA9_MODULE_LIST="sems-env,sems-cmake/3.12.2,sems-<COMPILER_NAME>/<COMPILER_VERSION>,sems-gcc/6.1.0" + CUDA10_MODULE_LIST="sems-env,sems-cmake/3.12.2,sems-<COMPILER_NAME>/<COMPILER_VERSION>,sems-gcc/7.2.0" + CUDA11_MODULE_LIST="sems-env,sems-cmake/3.12.2,sems-<COMPILER_NAME>/<COMPILER_VERSION>,sems-gcc/9.2.0" + CLANG7_MODULE_LIST="sems-env,sems-cmake/3.12.2,sems-<COMPILER_NAME>/<COMPILER_VERSION>,sems-cuda/9.2" + SKIP_HWLOC=True if [ -z "$ARCH_FLAG" ]; then ARCH_FLAG="--arch=Kepler35" @@ -311,26 +324,28 @@ elif [ "$MACHINE" = "kokkos-dev" ]; then COMPILERS=("gcc/5.3.0 $BASE_MODULE_LIST "OpenMP" g++ $GCC_WARNING_FLAGS" "gcc/7.3.0 $BASE_MODULE_LIST "Serial" g++ $GCC_WARNING_FLAGS" "intel/17.0.1 $BASE_MODULE_LIST "OpenMP" icpc $INTEL_WARNING_FLAGS" - "clang/4.0.1 $BASE_MODULE_LIST "Pthread_Serial" clang++ $CLANG_WARNING_FLAGS" + "intel/18.0.5 $BASE_MODULE_LIST "Serial" icpc $INTEL_WARNING_FLAGS" + "intel/19.0.5 $BASE_MODULE_LIST "Pthread_Serial" icpc $INTEL_WARNING_FLAGS" + "clang/5.0.1 $BASE_MODULE_LIST "Pthread_Serial" clang++ $CLANG_WARNING_FLAGS" "clang/7.0.1 $CLANG7_MODULE_LIST "Cuda_OpenMP" clang++ $CLANG_WARNING_FLAGS" "cuda/9.2 $CUDA9_MODULE_LIST "Cuda_OpenMP" $KOKKOS_PATH/bin/nvcc_wrapper $CUDA_WARNING_FLAGS" ) else # Format: (compiler module-list build-list exe-name warning-flag) - COMPILERS=("gcc/4.8.4 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" - "gcc/4.9.3 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" - "gcc/5.3.0 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" + COMPILERS=("gcc/5.3.0 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" "gcc/6.1.0 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" "gcc/7.3.0 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" - "intel/15.0.2 $BASE_MODULE_LIST $INTEL_BUILD_LIST icpc $INTEL15_WARNING_FLAGS" - "intel/16.0.3 $BASE_MODULE_LIST $INTEL_BUILD_LIST icpc $INTEL_WARNING_FLAGS" + "gcc/8.3.0 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" + "gcc/9.2.0 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" "intel/17.0.1 $BASE_MODULE_LIST $INTEL_BUILD_LIST icpc $INTEL_WARNING_FLAGS" - "clang/3.6.1 $BASE_MODULE_LIST $CLANG_BUILD_LIST clang++ $CLANG_WARNING_FLAGS" - "clang/3.7.1 $BASE_MODULE_LIST $CLANG_BUILD_LIST clang++ $CLANG_WARNING_FLAGS" - "clang/3.8.1 $BASE_MODULE_LIST $CLANG_BUILD_LIST clang++ $CLANG_WARNING_FLAGS" - "clang/3.9.0 $BASE_MODULE_LIST $CLANG_BUILD_LIST clang++ $CLANG_WARNING_FLAGS" - "clang/4.0.1 $BASE_MODULE_LIST $CLANG_BUILD_LIST clang++ $CLANG_WARNING_FLAGS" + "intel/18.0.5 $BASE_MODULE_LIST $INTEL_BUILD_LIST icpc $INTEL_WARNING_FLAGS" + "intel/19.0.5 $BASE_MODULE_LIST $INTEL_BUILD_LIST icpc $INTEL_WARNING_FLAGS" + "clang/5.0.1 $BASE_MODULE_LIST $CLANG_BUILD_LIST clang++ $CLANG_WARNING_FLAGS" "clang/7.0.1 $CLANG7_MODULE_LIST $CLANG_BUILD_LIST clang++ $CLANG_WARNING_FLAGS" + "clang/9.0.0 $BASE_MODULE_LIST $CLANG_BUILD_LIST clang++ $CLANG_WARNING_FLAGS" + "clang/10.0.0 $BASE_MODULE_LIST $CLANG_BUILD_LIST clang++ $CLANG_WARNING_FLAGS" + "cuda/10.1 $CUDA10_MODULE_LIST $CUDA_BUILD_LIST $KOKKOS_PATH/bin/nvcc_wrapper $CUDA_WARNING_FLAGS" + "cuda/11.1 $CUDA11_MODULE_LIST $CUDA_BUILD_LIST $KOKKOS_PATH/bin/nvcc_wrapper $CUDA_WARNING_FLAGS" "cuda/9.2 $CUDA9_MODULE_LIST $CUDA_BUILD_LIST $KOKKOS_PATH/bin/nvcc_wrapper $CUDA_WARNING_FLAGS" ) fi @@ -344,22 +359,23 @@ elif [ "$MACHINE" = "white" ]; then CUDA_MODULE_LIST="cmake/3.12.3,<COMPILER_NAME>/<COMPILER_VERSION>,gcc/7.2.0,ibm/xl/16.1.1" CUDA10_MODULE_LIST="cmake/3.12.3,<COMPILER_NAME>/<COMPILER_VERSION>,gcc/7.4.0,ibm/xl/16.1.1" - # Don't do pthread on white. + # Don't do pthread with Power GCC_BUILD_LIST="OpenMP,Serial,OpenMP_Serial" if [ "$SPOT_CHECK" = "True" ]; then # Format: (compiler module-list build-list exe-name warning-flag) COMPILERS=("gcc/6.4.0 $BASE_MODULE_LIST "OpenMP_Serial" g++ $GCC_WARNING_FLAGS" - "gcc/7.2.0 $BASE_MODULE_LIST $IBM_BUILD_LIST g++ $GCC_WARNING_FLAGS" - "ibm/16.1.1 $IBM_MODULE_LIST $IBM_BUILD_LIST xlC $IBM_WARNING_FLAGS" + "gcc/7.2.0 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" + "ibm/16.1.1 $IBM_MODULE_LIST "Serial" xlC $IBM_WARNING_FLAGS" "cuda/9.2.88 $CUDA_MODULE_LIST $CUDA_IBM_BUILD_LIST ${KOKKOS_PATH}/bin/nvcc_wrapper $CUDA_WARNING_FLAGS" "cuda/10.1.105 $CUDA10_MODULE_LIST $CUDA_IBM_BUILD_LIST ${KOKKOS_PATH}/bin/nvcc_wrapper $CUDA_WARNING_FLAGS" ) else # Format: (compiler module-list build-list exe-name warning-flag) - COMPILERS=("gcc/6.4.0 $BASE_MODULE_LIST $IBM_BUILD_LIST g++ $GCC_WARNING_FLAGS" - "gcc/7.2.0 $BASE_MODULE_LIST $IBM_BUILD_LIST g++ $GCC_WARNING_FLAGS" - "gcc/7.4.0 $BASE_MODULE_LIST $IBM_BUILD_LIST g++ $GCC_WARNING_FLAGS" + COMPILERS=("gcc/6.4.0 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" + "gcc/7.2.0 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" + "gcc/7.4.0 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" + "gcc/9.3.0 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" "ibm/16.1.1 $IBM_MODULE_LIST $IBM_BUILD_LIST xlC $IBM_WARNING_FLAGS" "cuda/9.2.88 $CUDA_MODULE_LIST $CUDA_IBM_BUILD_LIST ${KOKKOS_PATH}/bin/nvcc_wrapper $CUDA_WARNING_FLAGS" "cuda/10.0.130 $CUDA10_MODULE_LIST $CUDA_IBM_BUILD_LIST ${KOKKOS_PATH}/bin/nvcc_wrapper $CUDA_WARNING_FLAGS" @@ -368,10 +384,10 @@ elif [ "$MACHINE" = "white" ]; then fi if [ -z "$ARCH_FLAG" ]; then - ARCH_FLAG="--arch=Power8,Kepler37" + ARCH_FLAG="--arch=Power8,Pascal60" fi -elif [ "$MACHINE" = "waterman" ]; then +elif [ "$MACHINE" = "weaver" ]; then source /etc/profile.d/modules.sh SKIP_HWLOC=True @@ -380,27 +396,29 @@ elif [ "$MACHINE" = "waterman" ]; then CUDA_MODULE_LIST="cmake/3.12.3,<COMPILER_NAME>/<COMPILER_VERSION>,gcc/7.2.0,ibm/xl/16.1.1" CUDA10_MODULE_LIST="cmake/3.12.3,<COMPILER_NAME>/<COMPILER_VERSION>,gcc/7.4.0,ibm/xl/16.1.1" - # Don't do pthread on white. + # Don't do pthread with Power GCC_BUILD_LIST="OpenMP,Serial,OpenMP_Serial" if [ "$SPOT_CHECK" = "True" ]; then # Format: (compiler module-list build-list exe-name warning-flag) COMPILERS=("gcc/6.4.0 $BASE_MODULE_LIST "OpenMP_Serial" g++ $GCC_WARNING_FLAGS" - "gcc/7.2.0 $BASE_MODULE_LIST $IBM_BUILD_LIST g++ $GCC_WARNING_FLAGS" + "gcc/7.2.0 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" "ibm/16.1.1 $IBM_MODULE_LIST "Serial" xlC $IBM_WARNING_FLAGS" "cuda/9.2.88 $CUDA_MODULE_LIST $CUDA_IBM_BUILD_LIST ${KOKKOS_PATH}/bin/nvcc_wrapper $CUDA_WARNING_FLAGS" "cuda/10.1.243 $CUDA10_MODULE_LIST $CUDA_IBM_BUILD_LIST ${KOKKOS_PATH}/bin/nvcc_wrapper $CUDA_WARNING_FLAGS" ) else # Format: (compiler module-list build-list exe-name warning-flag) - COMPILERS=("gcc/6.4.0 $BASE_MODULE_LIST $IBM_BUILD_LIST g++ $GCC_WARNING_FLAGS" - "gcc/7.2.0 $BASE_MODULE_LIST $IBM_BUILD_LIST g++ $GCC_WARNING_FLAGS" - "gcc/7.4.0 $BASE_MODULE_LIST $IBM_BUILD_LIST g++ $GCC_WARNING_FLAGS" + COMPILERS=("gcc/6.4.0 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" + "gcc/7.2.0 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" + "gcc/7.4.0 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" + "gcc/9.3.0 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" "ibm/16.1.1 $IBM_MODULE_LIST $IBM_BUILD_LIST xlC $IBM_WARNING_FLAGS" "cuda/9.2.88 $CUDA_MODULE_LIST $CUDA_IBM_BUILD_LIST ${KOKKOS_PATH}/bin/nvcc_wrapper $CUDA_WARNING_FLAGS" "cuda/10.0.130 $CUDA10_MODULE_LIST $CUDA_IBM_BUILD_LIST ${KOKKOS_PATH}/bin/nvcc_wrapper $CUDA_WARNING_FLAGS" "cuda/10.1.105 $CUDA10_MODULE_LIST $CUDA_IBM_BUILD_LIST ${KOKKOS_PATH}/bin/nvcc_wrapper $CUDA_WARNING_FLAGS" "cuda/10.1.243 $CUDA10_MODULE_LIST $CUDA_IBM_BUILD_LIST ${KOKKOS_PATH}/bin/nvcc_wrapper $CUDA_WARNING_FLAGS" + "cuda/10.2.089 $CUDA10_MODULE_LIST $CUDA_IBM_BUILD_LIST ${KOKKOS_PATH}/bin/nvcc_wrapper $CUDA_WARNING_FLAGS" ) fi @@ -408,19 +426,16 @@ elif [ "$MACHINE" = "waterman" ]; then ARCH_FLAG="--arch=Power9,Volta70" fi -elif [ "$MACHINE" = "bowman" ]; then - source /etc/profile.d/modules.sh +elif [ "$MACHINE" = "voltrino" ]; then SKIP_HWLOC=True export SLURM_TASKS_PER_NODE=32 - BASE_MODULE_LIST="cmake/3.12.3,<COMPILER_NAME>/compilers/<COMPILER_VERSION>" - - OLD_INTEL_BUILD_LIST="Pthread,Serial,Pthread_Serial" + BASE_MODULE_LIST="PrgEnv-intel,craype-mic-knl,cmake/3.16.2,slurm/19.05.5a,<COMPILER_NAME>/<COMPILER_VERSION>,gcc/9.3.0" # Format: (compiler module-list build-list exe-name warning-flag) - COMPILERS=("intel/16.4.258 $BASE_MODULE_LIST $OLD_INTEL_BUILD_LIST icpc $INTEL_WARNING_FLAGS" - "intel/17.2.174 $BASE_MODULE_LIST $INTEL_BUILD_LIST icpc $INTEL_WARNING_FLAGS" - "intel/18.2.199 $BASE_MODULE_LIST $INTEL_BUILD_LIST icpc $INTEL_WARNING_FLAGS" + COMPILERS=("intel/17.0.4 $BASE_MODULE_LIST $INTEL_BUILD_LIST icpc $INTEL_WARNING_FLAGS" + "intel/18.0.5 $BASE_MODULE_LIST $INTEL_BUILD_LIST icpc $INTEL_WARNING_FLAGS" + "intel/19.0.4 $BASE_MODULE_LIST $INTEL_BUILD_LIST icpc $INTEL_WARNING_FLAGS" ) if [ -z "$ARCH_FLAG" ]; then @@ -432,14 +447,13 @@ elif [ "$MACHINE" = "mayer" ]; then export SLURM_TASKS_PER_NODE=96 BASE_MODULE_LIST="cmake/3.14.5,<COMPILER_NAME>/<COMPILER_VERSION>" -# ARM_MODULE_LIST="cmake/3.12.2,<COMPILER_NAME>/<COMPILER_VERSION>" # Format: (compiler module-list build-list exe-name warning-flag) COMPILERS=("gnu7/7.2.0 $BASE_MODULE_LIST $ARM_GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" "arm/20.0 $BASE_MODULE_LIST $ARM_GCC_BUILD_LIST armclang++ $CLANG_WARNING_FLAGS") if [ -z "$ARCH_FLAG" ]; then - ARCH_FLAG="--arch=ARMv8-TX2" + ARCH_FLAG="--arch=ARMV8_THUNDERX2" fi elif [ "$MACHINE" = "blake" ]; then @@ -449,24 +463,28 @@ elif [ "$MACHINE" = "blake" ]; then module load cmake/3.12.3 - BASE_MODULE_LIST="<COMPILER_NAME>/<COMPILER_VERSION>" - BASE_MODULE_LIST_INTEL="<COMPILER_NAME>/compilers/<COMPILER_VERSION>" + BASE_MODULE_LIST="cmake/3.12.3,<COMPILER_NAME>/<COMPILER_VERSION>" + BASE_MODULE_LIST_INTEL="cmake/3.12.3,<COMPILER_NAME>/compilers/<COMPILER_VERSION>" if [ "$SPOT_CHECK" = "True" ]; then # Format: (compiler module-list build-list exe-name warning-flag) COMPILERS=("intel/18.1.163 $BASE_MODULE_LIST_INTEL $INTEL_BUILD_LIST icpc $INTEL_WARNING_FLAGS" "gcc/7.2.0 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" - "pgi/18.7.0 $BASE_MODULE_LIST $GCC_BUILD_LIST pgc++ $PGI_WARNING_FLAGS" ) else - COMPILERS=("intel/18.1.163 $BASE_MODULE_LIST_INTEL $INTEL_BUILD_LIST icpc $INTEL_WARNING_FLAGS" - "gcc/4.9.3 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" + COMPILERS=("intel/17.4.196 $BASE_MODULE_LIST_INTEL $INTEL_BUILD_LIST icpc $INTEL_WARNING_FLAGS" + "intel/18.0.128 $BASE_MODULE_LIST_INTEL $INTEL_BUILD_LIST icpc $INTEL_WARNING_FLAGS" + "intel/18.1.163 $BASE_MODULE_LIST_INTEL $INTEL_BUILD_LIST icpc $INTEL_WARNING_FLAGS" + "intel/19.1.144 $BASE_MODULE_LIST_INTEL $INTEL_BUILD_LIST icpc $INTEL_WARNING_FLAGS" + "intel/19.3.199 $BASE_MODULE_LIST_INTEL $INTEL_BUILD_LIST icpc $INTEL_WARNING_FLAGS" + "intel/19.5.281 $BASE_MODULE_LIST_INTEL $INTEL_BUILD_LIST icpc $INTEL_WARNING_FLAGS" "gcc/5.5.0 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" "gcc/6.4.0 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" "gcc/7.2.0 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" "gcc/8.1.0 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" - "pgi/18.7.0 $BASE_MODULE_LIST $GCC_BUILD_LIST pgc++ $PGI_WARNING_FLAGS" + "gcc/8.2.0 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" + "gcc/9.2.0 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" ) fi @@ -477,7 +495,6 @@ elif [ "$MACHINE" = "blake" ]; then elif [ "$MACHINE" = "apollo" ]; then source /projects/sems/modulefiles/utils/sems-modules-init.sh module use /home/projects/modulefiles/local/x86-64 - module load kokkos-env module load sems-git module load sems-tex @@ -487,16 +504,12 @@ elif [ "$MACHINE" = "apollo" ]; then SKIP_HWLOC=True - BASE_MODULE_LIST="sems-env,sems-cmake/3.12.2,kokkos-env,kokkos-hwloc/1.10.1/base,sems-<COMPILER_NAME>/<COMPILER_VERSION>" - CUDA_MODULE_LIST="sems-env,sems-cmake/3.12.2,kokkos-env,kokkos-<COMPILER_NAME>/<COMPILER_VERSION>,sems-gcc/4.8.4,kokkos-hwloc/1.10.1/base" - CUDA9_MODULE_LIST="sems-env,sems-cmake/3.12.2,kokkos-env,kokkos-<COMPILER_NAME>/<COMPILER_VERSION>,sems-gcc/5.3.0,kokkos-hwloc/1.10.1/base" - CUDA10_MODULE_LIST="sems-env,sems-cmake/3.12.2,kokkos-env,<COMPILER_NAME>/<COMPILER_VERSION>,sems-gcc/5.3.0,kokkos-hwloc/1.10.1/base" + BASE_MODULE_LIST="sems-env,sems-cmake/3.12.2,sems-<COMPILER_NAME>/<COMPILER_VERSION>" + CLANG_MODULE_LIST="sems-env,sems-cmake/3.12.2,<COMPILER_NAME>/<COMPILER_VERSION>" + CUDA10_MODULE_LIST="sems-env,sems-cmake/3.12.2,<COMPILER_NAME>/<COMPILER_VERSION>,sems-gcc/5.3.0" + CUDA10X_MODULE_LIST="sems-env,sems-cmake/3.12.2,<COMPILER_NAME>/<COMPILER_VERSION>,sems-gcc/7.3.0" - CLANG_MODULE_LIST="sems-env,sems-cmake/3.12.2,kokkos-env,<COMPILER_NAME>/<COMPILER_VERSION>,cuda/9.0.69" - CLANG7_MODULE_LIST="sems-env,sems-cmake/3.12.2,kokkos-env,sems-gcc/6.1.0,<COMPILER_NAME>/<COMPILER_VERSION>,cuda/9.1" - NVCC_MODULE_LIST="sems-env,sems-cmake/3.12.2,kokkos-env,<COMPILER_NAME>/<COMPILER_VERSION>,sems-gcc/5.3.0" - HPX_MODULE_LIST="sems-env,sems-cmake/3.12.2,kokkos-env,hpx/1.2.1,sems-gcc/6.1.0,binutils" - HPX3_MODULE_LIST="sems-env,sems-cmake/3.12.2,kokkos-env,compilers/hpx/1.3.0,sems-gcc/6.1.0,binutils" + HPX3_MODULE_LIST="sems-env,sems-cmake/3.12.2,compilers/hpx/1.3.0,sems-gcc/6.1.0,binutils" BUILD_LIST_CUDA_NVCC="Cuda_Serial,Cuda_OpenMP" BUILD_LIST_CUDA_CLANG="Cuda_Serial,Cuda_Pthread" @@ -504,31 +517,21 @@ elif [ "$MACHINE" = "apollo" ]; then if [ "$SPOT_CHECK" = "True" ]; then # Format: (compiler module-list build-list exe-name warning-flag) - COMPILERS=("gcc/4.8.4 $BASE_MODULE_LIST "OpenMP,Pthread" g++ $GCC_WARNING_FLAGS" - "gcc/5.3.0 $BASE_MODULE_LIST "Serial" g++ $GCC_WARNING_FLAGS" - "intel/16.0.1 $BASE_MODULE_LIST "OpenMP" icpc $INTEL_WARNING_FLAGS" - "clang/3.9.0 $BASE_MODULE_LIST "Pthread_Serial" clang++ $CLANG_WARNING_FLAGS" - "clang/6.0 $CLANG_MODULE_LIST "Cuda_Pthread,OpenMP" clang++ $CUDA_WARNING_FLAGS" - "cuda/9.1 $CUDA_MODULE_LIST "Cuda_OpenMP" $KOKKOS_PATH/bin/nvcc_wrapper $CUDA_WARNING_FLAGS" + COMPILERS=("gcc/5.3.0 $BASE_MODULE_LIST "OpenMP,Pthread,Serial" g++ $GCC_WARNING_FLAGS" "hpx/1.3.0 $HPX3_MODULE_LIST "HPX" g++ $PGI_WARNING_FLAGS" ) else # Format: (compiler module-list build-list exe-name warning-flag) - COMPILERS=("cuda/9.1 $CUDA9_MODULE_LIST $BUILD_LIST_CUDA_NVCC $KOKKOS_PATH/bin/nvcc_wrapper $CUDA_WARNING_FLAGS" - "cuda/10.0 $CUDA10_MODULE_LIST $BUILD_LIST_CUDA_NVCC $KOKKOS_PATH/bin/nvcc_wrapper $CUDA_WARNING_FLAGS" - "clang/6.0 $CLANG_MODULE_LIST $BUILD_LIST_CUDA_CLANG clang++ $CUDA_WARNING_FLAGS" - "clang/7.0 $CLANG7_MODULE_LIST $BUILD_LIST_CUDA_CLANG clang++ $CUDA_WARNING_FLAGS" - "clang/3.9.0 $CLANG_MODULE_LIST $BUILD_LIST_CLANG clang++ $CLANG_WARNING_FLAGS" - "gcc/4.8.4 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" - "gcc/4.9.3 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" + COMPILERS=("cuda/10.0 $CUDA10_MODULE_LIST $BUILD_LIST_CUDA_NVCC $KOKKOS_PATH/bin/nvcc_wrapper $CUDA_WARNING_FLAGS" + "cuda/10.1 $CUDA10X_MODULE_LIST $BUILD_LIST_CUDA_NVCC $KOKKOS_PATH/bin/nvcc_wrapper $CUDA_WARNING_FLAGS" + "cuda/10.2 $CUDA10X_MODULE_LIST $BUILD_LIST_CUDA_NVCC $KOKKOS_PATH/bin/nvcc_wrapper $CUDA_WARNING_FLAGS" "gcc/5.3.0 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" "gcc/6.1.0 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" - "intel/15.0.2 $BASE_MODULE_LIST $INTEL_BUILD_LIST icpc $INTEL15_WARNING_FLAGS" - "intel/16.0.1 $BASE_MODULE_LIST $INTEL_BUILD_LIST icpc $INTEL_WARNING_FLAGS" + "gcc/7.3.0 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" "intel/17.0.1 $BASE_MODULE_LIST $INTEL_BUILD_LIST icpc $INTEL_WARNING_FLAGS" - "clang/3.5.2 $BASE_MODULE_LIST $CLANG_BUILD_LIST clang++ $CLANG_WARNING_FLAGS" - "clang/3.6.1 $BASE_MODULE_LIST $CLANG_BUILD_LIST clang++ $CLANG_WARNING_FLAGS" - "hpx/1.2.1 $HPX_MODULE_LIST "HPX" g++ $PGI_WARNING_FLAGS" + "clang/6.0 $CLANG_MODULE_LIST $BUILD_LIST_CLANG clang++ $CLANG_WARNING_FLAGS" + "clang/7.0 $CLANG_MODULE_LIST $BUILD_LIST_CLANG clang++ $CLANG_WARNING_FLAGS" + "clang/8.0 $CLANG_MODULE_LIST $BUILD_LIST_CLANG clang++ $CLANG_WARNING_FLAGS" "hpx/1.3.0 $HPX3_MODULE_LIST "HPX" g++ $PGI_WARNING_FLAGS" ) fi @@ -542,7 +545,6 @@ elif [ "$MACHINE" = "kokkos-dev-2" ]; then module use /home/projects/x86-64/modulefiles/local module purge module load sems-env - module load kokkos-env module load sems-git module load sems-tex @@ -551,13 +553,14 @@ elif [ "$MACHINE" = "kokkos-dev-2" ]; then SKIP_HWLOC=True - BASE_MODULE_LIST="sems-env,kokkos-env,sems-cmake/3.12.2,kokkos-hwloc/1.10.1/base,sems-<COMPILER_NAME>/<COMPILER_VERSION>" - GCC91_MODULE_LIST="sems-env,kokkos-env,sems-cmake/3.12.2,kokkos-hwloc/1.10.1/base,<COMPILER_NAME>/<COMPILER_VERSION>" - NVCC_MODULE_LIST="sems-env,kokkos-env,sems-cmake/3.12.2,kokkos-hwloc/1.10.1/base,<COMPILER_NAME>/<COMPILER_VERSION>,sems-gcc/7.3.0" + BASE_MODULE_LIST="sems-env,sems-cmake/3.12.2,sems-<COMPILER_NAME>/<COMPILER_VERSION>" + GCC91_MODULE_LIST="sems-env,sems-cmake/3.12.2,<COMPILER_NAME>/<COMPILER_VERSION>" + NVCC9_MODULE_LIST="sems-env,sems-cmake/3.12.2,<COMPILER_NAME>/<COMPILER_VERSION>,sems-gcc/5.3.0" + NVCC_MODULE_LIST="sems-env,sems-cmake/3.12.2,<COMPILER_NAME>/<COMPILER_VERSION>,sems-gcc/7.3.0" + NVCC11_MODULE_LIST="sems-env,sems-cmake/3.12.2,<COMPILER_NAME>/<COMPILER_VERSION>,sems-gcc/9.2.0" - CLANG_MODULE_LIST="sems-env,kokkos-env,sems-cmake/3.12.2,sems-<COMPILER_NAME>/<COMPILER_VERSION>,sems-gcc/6.1.0" - CLANG8_MODULE_LIST="sems-env,kokkos-env,sems-cmake/3.12.2,<COMPILER_NAME>/<COMPILER_VERSION>,cuda/10.0" - PGI_MODULE_LIST="sems-env,kokkos-env,sems-cmake/3.12.2,sems-gcc/7.3.0,<COMPILER_NAME>/<COMPILER_VERSION>" + CLANG8_MODULE_LIST="sems-env,sems-cmake/3.12.2,<COMPILER_NAME>/<COMPILER_VERSION>,cuda/10.0" + PGI_MODULE_LIST="sems-env,sems-cmake/3.12.2,sems-gcc/7.3.0,<COMPILER_NAME>/<COMPILER_VERSION>" BUILD_LIST_CUDA_NVCC="Cuda_Serial,Cuda_Pthread" BUILD_LIST_CUDA_CLANG="Cuda_Serial,Cuda_OpenMP" @@ -576,28 +579,23 @@ elif [ "$MACHINE" = "kokkos-dev-2" ]; then # Format: (compiler module-list build-list exe-name warning-flag) COMPILERS=("cuda/10.0 $NVCC_MODULE_LIST $BUILD_LIST_CUDA_NVCC $KOKKOS_PATH/bin/nvcc_wrapper $CUDA_WARNING_FLAGS" "cuda/10.1 $NVCC_MODULE_LIST $BUILD_LIST_CUDA_NVCC $KOKKOS_PATH/bin/nvcc_wrapper $CUDA_WARNING_FLAGS" + "cuda/11.0 $NVCC11_MODULE_LIST $BUILD_LIST_CUDA_NVCC $KOKKOS_PATH/bin/nvcc_wrapper $CUDA_WARNING_FLAGS" + "cuda/9.2 $NVCC9_MODULE_LIST $BUILD_LIST_CUDA_NVCC $KOKKOS_PATH/bin/nvcc_wrapper $CUDA_WARNING_FLAGS" "clang/8.0 $CLANG8_MODULE_LIST $BUILD_LIST_CUDA_CLANG clang++ $CUDA_WARNING_FLAGS" "clang/8.0 $CLANG8_MODULE_LIST $BUILD_LIST_CLANG clang++ $CLANG_WARNING_FLAGS" - "gcc/4.8.4 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" - "gcc/4.9.3 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" "gcc/5.3.0 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" "gcc/6.1.0 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" "gcc/7.3.0 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" "gcc/8.3.0 $BASE_MODULE_LIST $GCC_BUILD_LIST g++ $GCC_WARNING_FLAGS" "gcc/9.1 $GCC91_MODULE_LIST "$GCC_BUILD_LIST" g++ $GCC_WARNING_FLAGS" "gcc/9.2.0 $BASE_MODULE_LIST "$GCC_BUILD_LIST" g++ $GCC_WARNING_FLAGS" - "intel/15.0.2 $BASE_MODULE_LIST $INTEL_BUILD_LIST icpc $INTEL15_WARNING_FLAGS" - "intel/16.0.1 $BASE_MODULE_LIST $INTEL_BUILD_LIST icpc $INTEL_WARNING_FLAGS" "intel/17.0.1 $BASE_MODULE_LIST $INTEL_BUILD_LIST icpc $INTEL_WARNING_FLAGS" "intel/18.0.5 $BASE_MODULE_LIST $INTEL_BUILD_LIST icpc $INTEL_WARNING_FLAGS" "intel/19.0.5 $BASE_MODULE_LIST $INTEL_BUILD_LIST icpc $INTEL_WARNING_FLAGS" - "clang/3.6.1 $BASE_MODULE_LIST $CLANG_BUILD_LIST clang++ $CLANG_WARNING_FLAGS" - "clang/3.7.1 $BASE_MODULE_LIST $CLANG_BUILD_LIST clang++ $CLANG_WARNING_FLAGS" - "clang/3.8.1 $BASE_MODULE_LIST $CLANG_BUILD_LIST clang++ $CLANG_WARNING_FLAGS" - "clang/3.9.0 $BASE_MODULE_LIST $CLANG_BUILD_LIST clang++ $CLANG_WARNING_FLAGS" "clang/5.0.1 $BASE_MODULE_LIST $CLANG_BUILD_LIST clang++ $CLANG_WARNING_FLAGS" "clang/7.0.1 $BASE_MODULE_LIST $CLANG_BUILD_LIST clang++ $CLANG_WARNING_FLAGS" "clang/9.0.0 $BASE_MODULE_LIST $CLANG_BUILD_LIST clang++ $CLANG_WARNING_FLAGS" + "clang/10.0.0 $BASE_MODULE_LIST $BUILD_LIST_CLANG clang++ $CLANG_WARNING_FLAGS" "pgi/19.4 $PGI_MODULE_LIST $GCC_BUILD_LIST pgc++ $PGI_WARNING_FLAGS" ) fi @@ -770,7 +768,7 @@ setup_env() { done if [ -e ${CM_ALL_SCRIPT_PATH}/update_lib.sh ]; then - echo calling ${CM_ALL_SCRIPT_PATH}/update_lib.sh $MACHINE + echo "calling ${CM_ALL_SCRIPT_PATH}/update_lib.sh $MACHINE" source ${CM_ALL_SCRIPT_PATH}/update_lib.sh $MACHINE fi return 0 @@ -845,17 +843,21 @@ single_build_and_test() { echo "kokkos devices: ${LOCAL_KOKKOS_DEVICES}" echo "kokkos cxx: ${cxxflags}" + # KOKKOS_OPTIONS and KOKKOS_CUDA_OPTIONS are exported and detected by kokkos' generate_makefile.sh during install of kokkos; we pass them to the reproducer script instructions echo " # Use generate_makefile line below to call cmake which generates makefile for this build:" &> call_generate_makefile.sh - echo " ${KOKKOS_PATH}/generate_makefile.bash --with-devices=$LOCAL_KOKKOS_DEVICES $ARCH_FLAG --compiler=$(which $compiler_exe) --cxxflags=\"$cxxflags\" --cxxstandard=\"$cxx_standard\" --ldflags=\"$ldflags\" $CUDA_ENABLE_CMD --kokkos-path=${KOKKOS_PATH} --no-examples $extra_args" &>> call_generate_makefile.sh + echo " ${KOKKOS_PATH}/generate_makefile.bash --with-devices=$LOCAL_KOKKOS_DEVICES $ARCH_FLAG --compiler=$(which $compiler_exe) --cxxflags=\"$cxxflags\" --cxxstandard=\"$cxx_standard\" --ldflags=\"$ldflags\" $CUDA_ENABLE_CMD --kokkos-path=${KOKKOS_PATH} --with-options=${KOKKOS_OPTIONS} --with-cuda-options=${KOKKOS_CUDA_OPTIONS} --no-examples ${KOKKOS_BOUNDS_CHECK} $extra_args" &>> call_generate_makefile.sh + + # store script command with generic path for faster copy/paste of reproducer into issues + echo " \$KOKKOS_PATH/generate_makefile.bash --with-devices=$LOCAL_KOKKOS_DEVICES $ARCH_FLAG --compiler=$(which $compiler_exe) --cxxflags=\"$cxxflags\" --cxxstandard=\"$cxx_standard\" --ldflags=\"$ldflags\" $CUDA_ENABLE_CMD --kokkos-path=\$KOKKOS_PATH --with-options=${KOKKOS_OPTIONS} --with-cuda-options=${KOKKOS_CUDA_OPTIONS} ${KOKKOS_BOUNDS_CHECK} --no-examples $extra_args" &> call_generate_makefile_genericpath.sh - run_cmd ${KOKKOS_PATH}/generate_makefile.bash --with-devices=$LOCAL_KOKKOS_DEVICES $ARCH_FLAG --compiler=$(which $compiler_exe) --cxxflags=\"$cxxflags\" --cxxstandard=\"$cxx_standard\" --ldflags=\"$ldflags\" $CUDA_ENABLE_CMD --kokkos-path=${KOKKOS_PATH} --no-examples $extra_args &>> ${desc}.configure.log || { report_and_log_test_result 1 ${desc} configure && return 0; } + run_cmd ${KOKKOS_PATH}/generate_makefile.bash --with-devices=$LOCAL_KOKKOS_DEVICES $ARCH_FLAG --compiler=$(which $compiler_exe) --cxxflags=\"$cxxflags\" --cxxstandard=\"$cxx_standard\" --ldflags=\"$ldflags\" $CUDA_ENABLE_CMD --kokkos-path=${KOKKOS_PATH} ${KOKKOS_BOUNDS_CHECK} --no-examples $extra_args &>> ${desc}.configure.log || { report_and_log_test_result 1 ${desc} configure && return 0; } local -i build_start_time=$(date +%s) run_cmd make -j 48 all >& ${desc}.build.log || { report_and_log_test_result 1 ${desc} build && return 0; } local -i build_end_time=$(date +%s) comment="build_time=$(($build_end_time-$build_start_time))" if [[ "$BUILD_ONLY" == False ]]; then - run_cmd ctest -V --output-on-failure >& ${desc}.test.log || { report_and_log_test_result 1 ${desc} test && return 0; } + run_cmd ctest --timeout ${CTESTTIMEOUT} -V --output-on-failure >& ${desc}.test.log || { report_and_log_test_result 1 ${desc} test && return 0; } local -i run_end_time=$(date +%s) comment="$comment run_time=$(($run_end_time-$build_end_time))" fi @@ -972,7 +974,7 @@ wait_summarize_and_exit() { echo "#######################################################" echo " # Reproducer instructions:" cat $faildir/reload_modules.sh - cat $faildir/call_generate_makefile.sh + cat $faildir/call_generate_makefile_genericpath.sh echo "" echo " # To reload modules, reconfigure, rebuild, and retest directly from this failing build do the following:" echo " # Move to the build directory" @@ -997,8 +999,7 @@ wait_summarize_and_exit() { # CM_ALL_SCRIPT=$0 -CM_ALL_SCRIPT_PATH=`pwd` -CM_ALL_SCRIPT_PATH=${CM_ALL_SCRIPT_PATH}/`dirname $CM_ALL_SCRIPT` +CM_ALL_SCRIPT_PATH=$(cd `dirname $CM_ALL_SCRIPT` && pwd) ROOT_DIR=$(get_test_root_dir) mkdir -p $ROOT_DIR diff --git a/packages/kokkos/scripts/testing_scripts/update_lib.sh b/packages/kokkos/scripts/testing_scripts/update_lib.sh index ce3693409..47f974575 100755 --- a/packages/kokkos/scripts/testing_scripts/update_lib.sh +++ b/packages/kokkos/scripts/testing_scripts/update_lib.sh @@ -1,6 +1,30 @@ #!/bin/bash -if [ "$1" = bowman ]; then - export LIBRARY_PATH=/home/projects/x86-64-knl/gcc/6.2.0/lib/gcc/x86_64-pc-linux-gnu/6.2.0:/home/projects/x86-64-knl/cloog/0.18.4/lib:/home/projects/x86-64-knl/isl/0.16.1/lib:/home/projects/x86-64-knl/gmp/6.1.0/lib:/home/projects/x86-64-knl/mpfr/3.1.3/lib:/home/projects/x86-64-knl/mpc/1.0.3/lib:/home/projects/x86-64-knl/binutils/2.26.0/lib:/usr/lib/gcc/x86_64-redhat-linux/4.8.3:$LIBRARY_PATH - export LD_LIBRARY_PATH=/home/projects/x86-64-knl/gcc/6.2.0/lib64:/home/projects/x86-64-knl/gcc/6.2.0/lib:/home/projects/x86-64-knl/cloog/0.18.4/lib:/home/projects/x86-64-knl/isl/0.16.1/lib:/home/projects/x86-64-knl/gmp/6.1.0/lib:/home/projects/x86-64-knl/mpfr/3.1.3/lib:/home/projects/x86-64-knl/mpc/1.0.3/lib:/home/projects/x86-64-knl/binutils/2.26.0/lib:/usr/lib/gcc/x86_64-redhat-linux/4.8.3:$LD_LIBRARY_PATH +if [ "$1" = blake ]; then + ICPCVER="$(icpc --version | grep icpc | cut -d ' ' -f 3)" + if [[ "${ICPCVER}" = 17.* || "${ICPCVER}" = 18.0.128 ]]; then + module swap gcc/4.9.3 gcc/6.4.0 + module list + fi +fi +if [ "$1" = kokkos-dev ]; then + ICPCVER="$(icpc --version | grep icpc | cut -d ' ' -f 3)" + if [[ "${ICPCVER}" = 17.* ]]; then + module swap sems-gcc/4.9.3 sems-gcc/6.4.0 + module list + fi +fi +if [ "$1" = kokkos-dev-2 ]; then + ICPCVER="$(icpc --version | grep icpc | cut -d ' ' -f 3)" + if [[ "${ICPCVER}" = 17.* ]]; then + module swap sems-gcc/4.9.3 sems-gcc/6.4.0 + module list + fi +fi +if [ "$1" = sems ]; then + ICPCVER="$(icpc --version | grep icpc | cut -d ' ' -f 3)" + if [[ "${ICPCVER}" = 17.* ]]; then + module swap sems-gcc/4.9.3 sems-gcc/6.4.0 + module list + fi fi diff --git a/packages/kokkos/scripts/trilinos-integration/ATDM_configurations/configure-atdm-cuda-depoff-dbg.sh b/packages/kokkos/scripts/trilinos-integration/ATDM_configurations/configure-atdm-cuda-depoff-dbg.sh index 375b7f871..04f7fb56e 100755 --- a/packages/kokkos/scripts/trilinos-integration/ATDM_configurations/configure-atdm-cuda-depoff-dbg.sh +++ b/packages/kokkos/scripts/trilinos-integration/ATDM_configurations/configure-atdm-cuda-depoff-dbg.sh @@ -33,7 +33,6 @@ cmake \ -DTrilinos_ENABLE_${PACKAGE8}=ON \ -DTrilinos_ENABLE_${PACKAGE9}=ON \ -DTrilinos_ENABLE_${PACKAGE10}=ON \ - -DKOKKOS_ENABLE_DEPRECATED_CODE=OFF \ -DKokkos_SOURCE_DIR_OVERRIDE:STRING=kokkos \ -DKokkosKernels_SOURCE_DIR_OVERRIDE:STRING=kokkos-kernels \ -DTpetra_ENABLE_DEBUG=ON \ diff --git a/packages/kokkos/scripts/trilinos-integration/ATDM_configurations/configure-atdm-cuda-depoff.sh b/packages/kokkos/scripts/trilinos-integration/ATDM_configurations/configure-atdm-cuda-depoff.sh index 9f35eeed3..2c01b861b 100755 --- a/packages/kokkos/scripts/trilinos-integration/ATDM_configurations/configure-atdm-cuda-depoff.sh +++ b/packages/kokkos/scripts/trilinos-integration/ATDM_configurations/configure-atdm-cuda-depoff.sh @@ -38,7 +38,6 @@ cmake \ -DTrilinos_ENABLE_${PACKAGE8}=ON \ -DTrilinos_ENABLE_${PACKAGE9}=ON \ -DTrilinos_ENABLE_${PACKAGE10}=ON \ - -DKOKKOS_ENABLE_DEPRECATED_CODE=OFF \ -DKokkos_SOURCE_DIR_OVERRIDE:STRING=kokkos \ -DKokkosKernels_SOURCE_DIR_OVERRIDE:STRING=kokkos-kernels \ $TRILINOS_DIR diff --git a/packages/kokkos/scripts/trilinos-integration/ATDM_configurations/configure-atdm-cuda-depon-dbg.sh b/packages/kokkos/scripts/trilinos-integration/ATDM_configurations/configure-atdm-cuda-depon-dbg.sh index 41160c938..c6af96203 100755 --- a/packages/kokkos/scripts/trilinos-integration/ATDM_configurations/configure-atdm-cuda-depon-dbg.sh +++ b/packages/kokkos/scripts/trilinos-integration/ATDM_configurations/configure-atdm-cuda-depon-dbg.sh @@ -33,7 +33,6 @@ cmake \ -DTrilinos_ENABLE_${PACKAGE8}=ON \ -DTrilinos_ENABLE_${PACKAGE9}=ON \ -DTrilinos_ENABLE_${PACKAGE10}=ON \ - -DKOKKOS_ENABLE_DEPRECATED_CODE=ON \ -DKokkos_SOURCE_DIR_OVERRIDE:STRING=kokkos \ -DKokkosKernels_SOURCE_DIR_OVERRIDE:STRING=kokkos-kernels \ -DTpetra_ENABLE_DEBUG=ON \ diff --git a/packages/kokkos/scripts/trilinos-integration/ATDM_configurations/configure-atdm-cuda-depon.sh b/packages/kokkos/scripts/trilinos-integration/ATDM_configurations/configure-atdm-cuda-depon.sh index 955821005..940374158 100755 --- a/packages/kokkos/scripts/trilinos-integration/ATDM_configurations/configure-atdm-cuda-depon.sh +++ b/packages/kokkos/scripts/trilinos-integration/ATDM_configurations/configure-atdm-cuda-depon.sh @@ -38,7 +38,6 @@ cmake \ -DTrilinos_ENABLE_${PACKAGE8}=ON \ -DTrilinos_ENABLE_${PACKAGE9}=ON \ -DTrilinos_ENABLE_${PACKAGE10}=ON \ - -DKOKKOS_ENABLE_DEPRECATED_CODE=ON \ -DKokkos_SOURCE_DIR_OVERRIDE:STRING=kokkos \ -DKokkosKernels_SOURCE_DIR_OVERRIDE:STRING=kokkos-kernels \ $TRILINOS_DIR diff --git a/packages/kokkos/scripts/trilinos-integration/ATDM_configurations/configure-atdm-cuda-ride-rdc-depoff.sh b/packages/kokkos/scripts/trilinos-integration/ATDM_configurations/configure-atdm-cuda-ride-rdc-depoff.sh index da9017e38..d508d4c77 100755 --- a/packages/kokkos/scripts/trilinos-integration/ATDM_configurations/configure-atdm-cuda-ride-rdc-depoff.sh +++ b/packages/kokkos/scripts/trilinos-integration/ATDM_configurations/configure-atdm-cuda-ride-rdc-depoff.sh @@ -16,7 +16,6 @@ cmake \ -DTrilinos_CONFIGURE_OPTIONS_FILE:STRING=cmake/std/atdm/ATDMDevEnv.cmake \ -DTrilinos_ENABLE_TESTS=ON \ -DTrilinos_ENABLE_ALL_PACKAGES=ON \ - -DKOKKOS_ENABLE_DEPRECATED_CODE=OFF \ -DKokkos_SOURCE_DIR_OVERRIDE:STRING=kokkos \ -DKokkosKernels_SOURCE_DIR_OVERRIDE:STRING=kokkos-kernels \ $TRILINOS_DIR diff --git a/packages/kokkos/scripts/trilinos-integration/ATDM_configurations/configure-atdm-cuda-ride-rdc-depon.sh b/packages/kokkos/scripts/trilinos-integration/ATDM_configurations/configure-atdm-cuda-ride-rdc-depon.sh index 01e2def01..d508d4c77 100755 --- a/packages/kokkos/scripts/trilinos-integration/ATDM_configurations/configure-atdm-cuda-ride-rdc-depon.sh +++ b/packages/kokkos/scripts/trilinos-integration/ATDM_configurations/configure-atdm-cuda-ride-rdc-depon.sh @@ -16,7 +16,6 @@ cmake \ -DTrilinos_CONFIGURE_OPTIONS_FILE:STRING=cmake/std/atdm/ATDMDevEnv.cmake \ -DTrilinos_ENABLE_TESTS=ON \ -DTrilinos_ENABLE_ALL_PACKAGES=ON \ - -DKOKKOS_ENABLE_DEPRECATED_CODE=ON \ -DKokkos_SOURCE_DIR_OVERRIDE:STRING=kokkos \ -DKokkosKernels_SOURCE_DIR_OVERRIDE:STRING=kokkos-kernels \ $TRILINOS_DIR diff --git a/packages/kokkos/scripts/trilinos-integration/ATDM_configurations/configure-atdm-env.sh b/packages/kokkos/scripts/trilinos-integration/ATDM_configurations/configure-atdm-env.sh index 76e039191..7be71edc1 100755 --- a/packages/kokkos/scripts/trilinos-integration/ATDM_configurations/configure-atdm-env.sh +++ b/packages/kokkos/scripts/trilinos-integration/ATDM_configurations/configure-atdm-env.sh @@ -38,7 +38,6 @@ cmake \ -DTrilinos_ENABLE_${PACKAGE8}=ON \ -DTrilinos_ENABLE_${PACKAGE9}=ON \ -DTrilinos_ENABLE_${PACKAGE10}=ON \ - -DKOKKOS_ENABLE_DEPRECATED_CODE=ON \ -DKokkos_SOURCE_DIR_OVERRIDE:STRING=kokkos \ -DKokkosKernels_SOURCE_DIR_OVERRIDE:STRING=kokkos-kernels \ $TRILINOS_DIR diff --git a/packages/kokkos/tpls/.clang-format b/packages/kokkos/tpls/.clang-format new file mode 100644 index 000000000..743216e52 --- /dev/null +++ b/packages/kokkos/tpls/.clang-format @@ -0,0 +1,3 @@ +#Official Tool: clang-format version 8.0.0 +DisableFormat: true +SortIncludes: false -- GitLab