diff --git a/algorithms/unit_tests/TestBinSortA.hpp b/algorithms/unit_tests/TestBinSortA.hpp index 2d112af04b1..646bc1fb2eb 100644 --- a/algorithms/unit_tests/TestBinSortA.hpp +++ b/algorithms/unit_tests/TestBinSortA.hpp @@ -219,7 +219,7 @@ void test_sort_integer_overflow() { } // namespace BinSortSetA TEST(TEST_CATEGORY, BinSortGenericTests) { - // FIXME_OPENMPTARGET - causes ICE with CrayClang compiler + // FIXME_OPENMPTARGET - causes runtime failure with CrayClang compiler #if defined(KOKKOS_COMPILER_CRAY_LLVM) && defined(KOKKOS_ENABLE_OPENMPTARGET) GTEST_SKIP() << "known to fail with OpenMPTarget+Cray LLVM"; #endif diff --git a/algorithms/unit_tests/TestBinSortB.hpp b/algorithms/unit_tests/TestBinSortB.hpp index e9790a630df..d11b53a9a61 100644 --- a/algorithms/unit_tests/TestBinSortB.hpp +++ b/algorithms/unit_tests/TestBinSortB.hpp @@ -185,7 +185,7 @@ void run_for_rank2() { } // namespace BinSortSetB TEST(TEST_CATEGORY, BinSortUnsignedKeyLayoutStrideValues) { - // FIXME_OPENMPTARGET - causes ICE with CrayClang compiler + // FIXME_OPENMPTARGET - causes runtime failure with CrayClang compiler #if defined(KOKKOS_COMPILER_CRAY_LLVM) && defined(KOKKOS_ENABLE_OPENMPTARGET) GTEST_SKIP() << "known to fail with OpenMPTarget+Cray LLVM"; #endif diff --git a/algorithms/unit_tests/TestNestedSort.hpp b/algorithms/unit_tests/TestNestedSort.hpp index fd667bc80c6..cd57fd23ecf 100644 --- a/algorithms/unit_tests/TestNestedSort.hpp +++ b/algorithms/unit_tests/TestNestedSort.hpp @@ -386,7 +386,7 @@ void test_nested_sort_by_key(unsigned int N, KeyType minKey, KeyType maxKey, } // namespace NestedSortImpl TEST(TEST_CATEGORY, NestedSort) { - // FIXME_OPENMPTARGET - causes ICE with CrayClang compiler + // FIXME_OPENMPTARGET - causes runtime failure with CrayClang compiler #if defined(KOKKOS_COMPILER_CRAY_LLVM) && defined(KOKKOS_ENABLE_OPENMPTARGET) GTEST_SKIP() << "known to fail with OpenMPTarget+Cray LLVM"; #endif @@ -399,7 +399,7 @@ TEST(TEST_CATEGORY, NestedSort) { } TEST(TEST_CATEGORY, NestedSortByKey) { - // FIXME_OPENMPTARGET - causes ICE with CrayClang compiler + // FIXME_OPENMPTARGET - causes runtime failure with CrayClang compiler #if defined(KOKKOS_COMPILER_CRAY_LLVM) && defined(KOKKOS_ENABLE_OPENMPTARGET) GTEST_SKIP() << "known to fail with OpenMPTarget+Cray LLVM"; #endif diff --git a/algorithms/unit_tests/TestRandom.hpp b/algorithms/unit_tests/TestRandom.hpp index e40510243c9..6960b912d0e 100644 --- a/algorithms/unit_tests/TestRandom.hpp +++ b/algorithms/unit_tests/TestRandom.hpp @@ -542,7 +542,7 @@ void test_duplicate_stream() { } // namespace AlgoRandomImpl TEST(TEST_CATEGORY, Random_XorShift64) { - // FIXME_OPENMPTARGET - causes ICE with CrayClang compiler + // FIXME_OPENMPTARGET - causes runtime failure with CrayClang compiler #if defined(KOKKOS_COMPILER_CRAY_LLVM) && defined(KOKKOS_ENABLE_OPENMPTARGET) GTEST_SKIP() << "known to fail with OpenMPTarget+Cray LLVM"; #endif @@ -567,7 +567,7 @@ TEST(TEST_CATEGORY, Random_XorShift64) { TEST(TEST_CATEGORY, Random_XorShift1024_0) { using ExecutionSpace = TEST_EXECSPACE; - // FIXME_OPENMPTARGET - causes ICE with CrayClang compiler + // FIXME_OPENMPTARGET - causes runtime failure with CrayClang compiler #if defined(KOKKOS_COMPILER_CRAY_LLVM) && defined(KOKKOS_ENABLE_OPENMPTARGET) GTEST_SKIP() << "known to fail with OpenMPTarget+Cray LLVM"; #endif diff --git a/algorithms/unit_tests/TestSort.hpp b/algorithms/unit_tests/TestSort.hpp index b9010ad3073..5ea88ae5d62 100644 --- a/algorithms/unit_tests/TestSort.hpp +++ b/algorithms/unit_tests/TestSort.hpp @@ -209,7 +209,7 @@ void test_sort_integer_overflow() { } // namespace SortImpl TEST(TEST_CATEGORY, SortUnsignedValueType) { - // FIXME_OPENMPTARGET - causes ICE with CrayClang compiler + // FIXME_OPENMPTARGET - causes runtime failure with CrayClang compiler #if defined(KOKKOS_COMPILER_CRAY_LLVM) && defined(KOKKOS_ENABLE_OPENMPTARGET) GTEST_SKIP() << "known to fail with OpenMPTarget+Cray LLVM"; #endif @@ -228,7 +228,7 @@ TEST(TEST_CATEGORY, SortUnsignedValueType) { } TEST(TEST_CATEGORY, SortEmptyView) { - // FIXME_OPENMPTARGET - causes ICE with CrayClang compiler + // FIXME_OPENMPTARGET - causes runtime failure with CrayClang compiler #if defined(KOKKOS_COMPILER_CRAY_LLVM) && defined(KOKKOS_ENABLE_OPENMPTARGET) GTEST_SKIP() << "known to fail with OpenMPTarget+Cray LLVM"; #endif diff --git a/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Instance.cpp b/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Instance.cpp index bc4e73c00f0..53e723882f5 100644 --- a/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Instance.cpp +++ b/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Instance.cpp @@ -114,8 +114,6 @@ void OpenMPTargetInternal::impl_finalize() { void OpenMPTargetInternal::impl_initialize() { m_is_initialized = true; - MAX_ACTIVE_THREADS = concurrency(); - // FIXME_OPENMPTARGET: Only fix the number of teams for NVIDIA architectures // from Pascal and upwards. // FIXME_OPENMPTARGTE: Cray compiler did not yet implement omp_set_num_teams. @@ -178,8 +176,8 @@ void OpenMPTargetInternal::resize_scratch(int64_t team_size, // Maximum active teams possible. // The number should not exceed the maximum in-flight teams possible or the // league_size. - int max_active_teams = std::min( - OpenMPTargetInternal::MAX_ACTIVE_THREADS / team_size, league_size); + int max_active_teams = + std::min(OpenMPTargetInternal::concurrency() / team_size, league_size); // max_active_teams is the number of active teams on the given hardware. // We set the number of teams to be twice the number of max_active_teams for diff --git a/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Instance.hpp b/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Instance.hpp index 3ee5b714384..cffe056f0d0 100644 --- a/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Instance.hpp +++ b/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Instance.hpp @@ -53,12 +53,6 @@ class OpenMPTargetInternal { static OpenMPTargetInternal* impl_singleton(); - // FIXME_OPENMPTARGET - Currently the maximum number of - // teams possible is calculated based on NVIDIA's Volta GPU. In - // future this value should be based on the chosen architecture for the - // OpenMPTarget backend. - int MAX_ACTIVE_THREADS = 0; - static void verify_is_process(const char* const); static void verify_initialized(const char* const); diff --git a/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Parallel_Common.hpp b/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Parallel_Common.hpp index 9aa2b605eab..3af8638ed83 100644 --- a/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Parallel_Common.hpp +++ b/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Parallel_Common.hpp @@ -200,7 +200,7 @@ struct ParallelReduceSpecialize, const auto size = end - begin; - // FIXME_OPENMPTARGET: The team size and MAX_ACTIVE_THREADS are currently + // FIXME_OPENMPTARGET: The team size and concurrency are currently // based on NVIDIA-V100 and should be modifid to be based on the // architecture in the future. const int max_team_threads = 32; diff --git a/core/unit_test/TestAtomicOperations_complexfloat.hpp b/core/unit_test/TestAtomicOperations_complexfloat.hpp index 57e420e8fb8..5e4881c4066 100644 --- a/core/unit_test/TestAtomicOperations_complexfloat.hpp +++ b/core/unit_test/TestAtomicOperations_complexfloat.hpp @@ -20,7 +20,7 @@ using namespace TestAtomicOperations; namespace Test { TEST(TEST_CATEGORY, atomic_operations_complexfloat) { - // FIXME_OPENMPTARGET - causes ICE with CrayClang compiler + // FIXME_OPENMPTARGET - causes runtime failure with CrayClang compiler #if defined(KOKKOS_COMPILER_CRAY_LLVM) && defined(KOKKOS_ENABLE_OPENMPTARGET) GTEST_SKIP() << "known to fail with OpenMPTarget+Cray LLVM"; #endif diff --git a/core/unit_test/TestAtomicOperations_double.hpp b/core/unit_test/TestAtomicOperations_double.hpp index 35480a66576..12f0c9fa4f3 100644 --- a/core/unit_test/TestAtomicOperations_double.hpp +++ b/core/unit_test/TestAtomicOperations_double.hpp @@ -18,7 +18,7 @@ namespace Test { TEST(TEST_CATEGORY, atomic_operations_double) { - // FIXME_OPENMPTARGET - causes ICE with CrayClang compiler + // FIXME_OPENMPTARGET - causes runtime failure with CrayClang compiler #if defined(KOKKOS_COMPILER_CRAY_LLVM) && defined(KOKKOS_ENABLE_OPENMPTARGET) GTEST_SKIP() << "known to fail with OpenMPTarget+Cray LLVM"; #endif diff --git a/core/unit_test/TestAtomicOperations_float.hpp b/core/unit_test/TestAtomicOperations_float.hpp index 9dfa61d33c9..7ccda57cb34 100644 --- a/core/unit_test/TestAtomicOperations_float.hpp +++ b/core/unit_test/TestAtomicOperations_float.hpp @@ -18,7 +18,7 @@ namespace Test { TEST(TEST_CATEGORY, atomic_operations_float) { - // FIXME_OPENMPTARGET - causes ICE with CrayClang compiler + // FIXME_OPENMPTARGET - causes runtime failure with CrayClang compiler #if defined(KOKKOS_COMPILER_CRAY_LLVM) && defined(KOKKOS_ENABLE_OPENMPTARGET) GTEST_SKIP() << "known to fail with OpenMPTarget+Cray LLVM"; #endif diff --git a/core/unit_test/TestAtomicOperations_int.hpp b/core/unit_test/TestAtomicOperations_int.hpp index 19a75fc1c54..59a10eec552 100644 --- a/core/unit_test/TestAtomicOperations_int.hpp +++ b/core/unit_test/TestAtomicOperations_int.hpp @@ -18,7 +18,7 @@ namespace Test { TEST(TEST_CATEGORY, atomic_operations_int) { - // FIXME_OPENMPTARGET - causes ICE with CrayClang compiler + // FIXME_OPENMPTARGET - causes runtime failure with CrayClang compiler #if defined(KOKKOS_COMPILER_CRAY_LLVM) && defined(KOKKOS_ENABLE_OPENMPTARGET) GTEST_SKIP() << "known to fail with OpenMPTarget+Cray LLVM"; #endif diff --git a/core/unit_test/TestAtomicOperations_longint.hpp b/core/unit_test/TestAtomicOperations_longint.hpp index 442848bec63..5d94ec0eb39 100644 --- a/core/unit_test/TestAtomicOperations_longint.hpp +++ b/core/unit_test/TestAtomicOperations_longint.hpp @@ -18,7 +18,7 @@ namespace Test { TEST(TEST_CATEGORY, atomic_operations_long) { - // FIXME_OPENMPTARGET - causes ICE with CrayClang compiler + // FIXME_OPENMPTARGET - causes runtime failure with CrayClang compiler #if defined(KOKKOS_COMPILER_CRAY_LLVM) && defined(KOKKOS_ENABLE_OPENMPTARGET) GTEST_SKIP() << "known to fail with OpenMPTarget+Cray LLVM"; #endif diff --git a/core/unit_test/TestAtomicOperations_longlongint.hpp b/core/unit_test/TestAtomicOperations_longlongint.hpp index 5650e10e1cf..589b6a543e1 100644 --- a/core/unit_test/TestAtomicOperations_longlongint.hpp +++ b/core/unit_test/TestAtomicOperations_longlongint.hpp @@ -18,7 +18,7 @@ namespace Test { TEST(TEST_CATEGORY, atomic_operations_longlong) { - // FIXME_OPENMPTARGET - causes ICE with CrayClang compiler + // FIXME_OPENMPTARGET - causes runtime failure with CrayClang compiler #if defined(KOKKOS_COMPILER_CRAY_LLVM) && defined(KOKKOS_ENABLE_OPENMPTARGET) GTEST_SKIP() << "known to fail with OpenMPTarget+Cray LLVM"; #endif diff --git a/core/unit_test/TestAtomicOperations_shared.hpp b/core/unit_test/TestAtomicOperations_shared.hpp index ad7ee85dd84..8f817101cda 100644 --- a/core/unit_test/TestAtomicOperations_shared.hpp +++ b/core/unit_test/TestAtomicOperations_shared.hpp @@ -40,7 +40,7 @@ struct TestSharedAtomicsFunctor { }; TEST(TEST_CATEGORY, atomic_shared) { - // FIXME_OPENMPTARGET - causes ICE with CrayClang compiler + // FIXME_OPENMPTARGET - causes runtime failure with CrayClang compiler #if defined(KOKKOS_COMPILER_CRAY_LLVM) && defined(KOKKOS_ENABLE_OPENMPTARGET) GTEST_SKIP() << "known to fail with OpenMPTarget+Cray LLVM"; #endif diff --git a/core/unit_test/TestAtomicOperations_unsignedint.hpp b/core/unit_test/TestAtomicOperations_unsignedint.hpp index e67fabe4d86..1d2c1a8900e 100644 --- a/core/unit_test/TestAtomicOperations_unsignedint.hpp +++ b/core/unit_test/TestAtomicOperations_unsignedint.hpp @@ -18,7 +18,7 @@ namespace Test { TEST(TEST_CATEGORY, atomic_operations_unsigned) { - // FIXME_OPENMPTARGET - causes ICE with CrayClang compiler + // FIXME_OPENMPTARGET - causes runtime failure with CrayClang compiler #if defined(KOKKOS_COMPILER_CRAY_LLVM) && defined(KOKKOS_ENABLE_OPENMPTARGET) GTEST_SKIP() << "known to fail with OpenMPTarget+Cray LLVM"; #endif diff --git a/core/unit_test/TestAtomicOperations_unsignedlongint.hpp b/core/unit_test/TestAtomicOperations_unsignedlongint.hpp index 9725a099f31..3e2231b68f9 100644 --- a/core/unit_test/TestAtomicOperations_unsignedlongint.hpp +++ b/core/unit_test/TestAtomicOperations_unsignedlongint.hpp @@ -18,7 +18,7 @@ namespace Test { TEST(TEST_CATEGORY, atomic_operations_unsignedlong) { - // FIXME_OPENMPTARGET - causes ICE with CrayClang compiler + // FIXME_OPENMPTARGET - causes runtime failure with CrayClang compiler #if defined(KOKKOS_COMPILER_CRAY_LLVM) && defined(KOKKOS_ENABLE_OPENMPTARGET) GTEST_SKIP() << "known to fail with OpenMPTarget+Cray LLVM"; #endif diff --git a/core/unit_test/TestAtomicOperations_unsignedlonglongint.hpp b/core/unit_test/TestAtomicOperations_unsignedlonglongint.hpp index c3501773f2f..b1864010456 100644 --- a/core/unit_test/TestAtomicOperations_unsignedlonglongint.hpp +++ b/core/unit_test/TestAtomicOperations_unsignedlonglongint.hpp @@ -18,7 +18,7 @@ namespace Test { TEST(TEST_CATEGORY, atomic_operations_unsignedlonglong) { - // FIXME_OPENMPTARGET - causes ICE with CrayClang compiler + // FIXME_OPENMPTARGET - causes runtime failure with CrayClang compiler #if defined(KOKKOS_COMPILER_CRAY_LLVM) && defined(KOKKOS_ENABLE_OPENMPTARGET) GTEST_SKIP() << "known to fail with OpenMPTarget+Cray LLVM"; #endif diff --git a/core/unit_test/TestReduce.hpp b/core/unit_test/TestReduce.hpp index 8a125233e58..eb548e8264c 100644 --- a/core/unit_test/TestReduce.hpp +++ b/core/unit_test/TestReduce.hpp @@ -637,6 +637,10 @@ struct FunctorReductionWithLargeIterationCount { }; TEST(TEST_CATEGORY, reduction_with_large_iteration_count) { + // FIXME_OPENMPTARGET - causes runtime failure with CrayClang compiler +#if defined(KOKKOS_COMPILER_CRAY_LLVM) && defined(KOKKOS_ENABLE_OPENMPTARGET) + GTEST_SKIP() << "known to fail with OpenMPTarget+Cray LLVM"; +#endif if constexpr (std::is_same_v) { GTEST_SKIP() << "Disabling for host backends";