[sollve_vv] Autodetected native GPU (#129)
Using the CMake option `-DTEST_SUITE_SYSTEM_GPU=native` or (`-DTEST_SUITE_SYSTEM_GPU=auto`), automatically pre-selects the tests that are expected to work based on the system's GPU.
Also fixes a lot of other issues:
* `SYSTEM_GPU` violates naming conventions
* `SYSTEM_GPU` is not a cached variable, i.e. after re-running CMake (e.g. after changing a `CMakeLists.txt`), its value is forgotten
* Remove `intel` and `regression` options. There are no lists for these
* Remove possibility to specify multiple pre-select lists. The union of those would run, causing them to fail if run on the other vendor's GPU.
* Remove duplicate `test_metadirective_arch_is_nvidia.c` in preselect lists
* Update documentation
* Add messages whenever SOLLVE V&V is skipped
* Do not dump test directories into the builddir root
* Replace `TEST_SUITE_FORCE_ALL` with `-DTEST_SUITE_SYSTEM_GPU=all`
* Remove uses of `remove_definitions`. Just don't add those flags if you don't want them.
The variable `SYSTEM_GPU` is also used in External/HeCBench and External/smoke. These are based on sollve_vv's previous `CMakeLists.txt` and are not affected.
diff --git a/External/OpenMPOffloading.cmake b/External/OpenMPOffloading.cmake
new file mode 100644
index 0000000..7a8e345
--- /dev/null
+++ b/External/OpenMPOffloading.cmake
@@ -0,0 +1,78 @@
+# Introspection of OpenMP offloading support
+# TODO: Could become a find_package module
+
+if (NOT OpenMP_FOUND)
+ message(STATUS "OpenMP Offloading not available because OpenMP is not available")
+ return ()
+endif ()
+
+
+set(TEST_SUITE_SYSTEM_GPU "auto" CACHE STRING "Select only tests that Clang/Flang is expected to work with for the selected GPU (auto, native, amd, nvidia, or all)")
+set_property(CACHE TEST_SUITE_SYSTEM_GPU PROPERTY STRINGS "amd" "nvidia" "all" "native" "auto")
+
+# TODO: Run only once if included multiple times
+set(TEST_SUITE_EFFECTIVE_SYSTEM_GPU "${TEST_SUITE_SYSTEM_GPU}")
+if (TEST_SUITE_EFFECTIVE_SYSTEM_GPU STREQUAL "auto")
+ # Test sets only maintained for Flang/Clang
+ if ((CMAKE_C_COMPILER_ID STREQUAL "Clang") OR (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") OR (CMAKE_Fortran_COMPILER_ID STREQUAL "LLVMFlang"))
+ set (TEST_SUITE_EFFECTIVE_SYSTEM_GPU "native")
+ else ()
+ set (TEST_SUITE_EFFECTIVE_SYSTEM_GPU "all")
+ endif ()
+endif ()
+if (TEST_SUITE_EFFECTIVE_SYSTEM_GPU STREQUAL "native")
+ # For LLVM, nvptx-arch and amdgpu-arch are executables in the bin directory, next to clang/flang.
+ set(_searchpaths)
+ foreach (_compiler IN ITEMS ${CMAKE_C_COMPILER} ${CMAKE_CXX_COMPILER} ${CMAKE_Fortran_COMPILER})
+ get_filename_component(_compiler_dir "${_compiler}" DIRECTORY)
+ list(APPEND _searchpaths "${_compiler_dir}")
+ endforeach ()
+
+ find_program(NVPTX_ARCH_EXECUTABLE nvptx-arch HINTS ${_searchpaths})
+ execute_process(COMMAND "${NVPTX_ARCH_EXECUTABLE}" RESULT_VARIABLE _nvptx_arch_result OUTPUT_VARIABLE _nvptx_arch_output ERROR_VARIABLE _nvptx_arch_error)
+ if (_nvptx_arch_result STREQUAL "0" AND _nvptx_arch_output)
+ # Which Nvidia GPU is detected currently does not matter
+ set(TEST_SUITE_EFFECTIVE_SYSTEM_GPU "nvidia")
+ endif ()
+
+ find_program(AMDGPU_ARCH_EXECUTABLE amdgpu-arch HINTS ${_searchpaths})
+ execute_process(COMMAND "${AMDGPU_ARCH_EXECUTABLE}" RESULT_VARIABLE _amdgpu_arch_result OUTPUT_VARIABLE _amdgpu_arch_output ERROR_VARIABLE _amdgpu_arch_error)
+ if (_amdgpu_arch_result STREQUAL "0" AND _amdgpu_arch_output)
+ # Which AMD GPU is detected currently does not matter
+ set(TEST_SUITE_EFFECTIVE_SYSTEM_GPU "amd")
+ endif ()
+
+ if (TEST_SUITE_EFFECTIVE_SYSTEM_GPU STREQUAL "native")
+ if (TEST_SUITE_SYSTEM_GPU STREQUAL "auto")
+ # If no preselected list is available, run all tests
+ set(TEST_SUITE_EFFECTIVE_SYSTEM_GPU "all")
+ else ()
+ message(STATUS "OpenMP Offloading not available because no native GPU detected")
+ return()
+ endif ()
+ else ()
+ message(STATUS "Native GPU is ${_effective_SYSTEM_GPU}")
+ endif ()
+endif ()
+
+
+# Do not try to create OpenMP_Offloading multiple times.
+if (TARGET OpenMP_Offloading)
+ return ()
+endif ()
+
+add_library(OpenMP_Offloading INTERFACE IMPORTED)
+foreach (_lang IN ITEMS C CXX Fortran)
+ if (lang STREQUAL "Fortran" AND NOT TEST_SUITE_FORTRAN)
+ continue ()
+ endif ()
+ set(TEST_SUITE_OFFLOADING_${_lang}_FLAGS "--offload-arch=native" CACHE STRING "Compiler arguments for OpenMP offloading in ${_lang}")
+ set(TEST_SUITE_OFFLOADING_${_lang}_LDFLAGS "--offload-arch=native" CACHE STRING "Linker arguments for OpenMP offloading in ${_lang}")
+ if (TARGET OpenMP::OpenMP_${_lang})
+ target_link_libraries(OpenMP_Offloading INTERFACE OpenMP::OpenMP_${_lang})
+ endif ()
+ separate_arguments(_flags NATIVE_COMMAND "${TEST_SUITE_OFFLOADING_${_lang}_FLAGS}")
+ separate_arguments(_ldflags NATIVE_COMMAND "${TEST_SUITE_OFFLOADING_${_lang}_LDFLAGS}")
+ target_compile_options(OpenMP_Offloading INTERFACE $<$<COMPILE_LANGUAGE:${_lang}>:${_flags}>)
+ target_link_options(OpenMP_Offloading INTERFACE $<$<COMPILE_LANGUAGE:${_lang}>:${_ldflags}>)
+endforeach ()
diff --git a/External/sollve_vv/CMakeLists.txt b/External/sollve_vv/CMakeLists.txt
index 1d89a6d..0d0f0a4 100644
--- a/External/sollve_vv/CMakeLists.txt
+++ b/External/sollve_vv/CMakeLists.txt
@@ -1,138 +1,89 @@
# SOLLVE OpenMP Offloading Validation & Verification Suite
# https://crpl.cis.udel.edu/ompvvsollve/
+if (TEST_SUITE_BENCHMARKING_ONLY)
+ message(STATUS "Skipping OpenMP Validiation & Verification because benchmarking-only mode")
+ return ()
+endif ()
+
include(External)
+llvm_externals_find(TEST_SUITE_SOLLVEVV_ROOT "sollve_vv" "OpenMP Offloading Validation & Verification Suite")
+if (NOT TEST_SUITE_SOLLVEVV_ROOT)
+ message(STATUS "Skipping OpenMP Validiation & Verification because external sources not specified")
+ return ()
+endif ()
-remove_definitions(-w)
-remove_definitions(-Werror=date-time)
+include(../OpenMPOffloading.cmake)
+if (NOT TARGET OpenMP_Offloading)
+ message(STATUS "Skipping OpenMP Validiation & Verification because OpenMP Offloading not available")
+ return ()
+endif ()
-option(TEST_SUITE_FORCE_ALL "Execute all SOLLVE V&V tests, even those known to be unsupported by Clang" OFF)
+message(STATUS "Adding OpenMP Offloading Validiation & Verification tests")
+if (TEST_SUITE_EFFECTIVE_SYSTEM_GPU STREQUAL "all")
+ file(GLOB_RECURSE _tests_sources RELATIVE "${TEST_SUITE_SOLLVEVV_ROOT}/tests"
+ "${TEST_SUITE_SOLLVEVV_ROOT}/tests/*.c"
+ "${TEST_SUITE_SOLLVEVV_ROOT}/tests/*.cpp"
+ "${TEST_SUITE_SOLLVEVV_ROOT}/tests/*.F90"
+ )
+ set(TEST_SUITE_SOLLVEVV_TESTS ${_tests_sources})
+ message(STATUS "Using all SOLLVE V&V tests")
+else ()
+ include(sollvevv_${TEST_SUITE_EFFECTIVE_SYSTEM_GPU}_tests.cmake)
+endif ()
-set(TEST_SUITE_OFFLOADING_C_FLAGS --offload-arch=native CACHE STRING "Compiler arguments for OpenMP offloading for C")
-set(TEST_SUITE_OFFLOADING_CXX_FLAGS --offload-arch=native CACHE STRING "Compiler arguments for OpenMP offloading for CXX")
-set(TEST_SUITE_OFFLOADING_Fortran_FLAGS --offload-arch=native CACHE STRING "Compiler arguments for OpenMP offloading for Fortran")
-set(TEST_SUITE_OFFLOADING_C_LDFLAGS --offload-arch=native CACHE STRING "Linker arguments for OpenMP offloading")
-set(TEST_SUITE_OFFLOADING_CXX_LDFLAGS --offload-arch=native CACHE STRING "Linker arguments for OpenMP offloading")
-set(TEST_SUITE_OFFLOADING_Fortran_LDFLAGS --offload-arch=native CACHE STRING "Linker arguments for OpenMP offloading")
-set(ALL_LIST_OPTIONS
- AMD
- INTEL
- NVIDIA
- REGRESSION
-)
-
-set(CHOOSEN_LISTS)
-
-set(REGRESSION)
-set(INTEL)
-
-include(sollvevv_nvidia_tests.cmake)
-include(sollvevv_amd_tests.cmake)
-
-function (add_sollvevv LANG)
+function (add_sollvevv lang)
set(_includedir "${TEST_SUITE_SOLLVEVV_ROOT}/ompvv" )
- if ("${LANG}" STREQUAL "Fortran" AND NOT TEST_SUITE_FORTRAN)
+ if (lang STREQUAL "Fortran" AND NOT TEST_SUITE_FORTRAN)
+ message(STATUS "Skipping SOLLVE V&V Fortran tests in because Fortran tests are disabled")
return ()
endif ()
- if (NOT OpenMP_${LANG}_FOUND)
- message(FATAL_ERROR "OpenMP for ${LANG} not found")
+ if (NOT OpenMP_${lang}_FOUND)
+ message(STATUS "Skipping SOLLVE V&V ${lang} tests in because no OpenMP for ${lang} found")
return ()
endif ()
- #if (OpenMP_${LANG}_VERSION VERSION_LESS "4.5")
- # message(FATAL_ERROR "OpenMP version ${OpenMP_${LANG}_VERSION} too old")
- #endif ()
-
- if ("${LANG}" STREQUAL "C")
+ if (lang STREQUAL "C")
set(_langext ".c")
- elseif ("${LANG}" STREQUAL "CXX")
+ elseif (lang STREQUAL "CXX")
set(_langext ".cpp")
- elseif ("${LANG}" STREQUAL "Fortran")
+ elseif (lang STREQUAL "Fortran")
set(_langext ".F90")
else ()
- message(FATAL_ERROR "Unsupported languge ${LANG}")
+ return ()
endif ()
- file(GLOB_RECURSE _tests_sources RELATIVE "${TEST_SUITE_SOLLVEVV_ROOT}/tests" "${TEST_SUITE_SOLLVEVV_ROOT}/tests/*${_langext}" )
- foreach (_file IN LISTS _tests_sources)
+ foreach (_file IN LISTS TEST_SUITE_SOLLVEVV_TESTS)
get_filename_component(_ext "${_file}" EXT)
get_filename_component(_basename "${_file}" NAME_WE)
get_filename_component(_directory "${_file}" DIRECTORY)
+
+ if (NOT (_ext STREQUAL _langext))
+ continue ()
+ endif ()
+
string(REPLACE "." "" _ext "${_ext}")
string(REPLACE "/" "_" _directory "${_directory}")
string(REPLACE "." "" _directory "${_directory}")
set(_name "omptargetvv-${_basename}-${_directory}-${_ext}")
- if (NOT TEST_SUITE_FORCE_ALL AND NOT "${_file}" IN_LIST CHOOSEN_LISTS)
- message(STATUS "Skipping SOLLVE V&V test ${_file}")
- continue ()
- endif ()
-
# Create a directory for the test
- set(test_dir "${CMAKE_BINARY_DIR}/${_name}")
- file(MAKE_DIRECTORY ${test_dir})
+ set(_module_dir "${CMAKE_CURRENT_BINARY_DIR}/modules/${_name}")
+ file(MAKE_DIRECTORY ${_module_dir})
llvm_test_run()
llvm_test_executable(${_name} "${TEST_SUITE_SOLLVEVV_ROOT}/tests/${_file}")
target_include_directories(${_name} PRIVATE "${_includedir}")
- target_link_libraries(${_name} PUBLIC OpenMP::OpenMP_${_lang} m)
-
- # Add -fopenmp to linker command line; for some reason this is not done by target_link_libraries.
- target_link_options(${_name} PRIVATE ${OpenMP_${LANG}_FLAGS})
-
- set_target_properties(${_name} PROPERTIES Fortran_MODULE_DIRECTORY ${test_dir})
-
- # CMake's find_package(OpenMP) currently does not not introspect flags necessary for offloading.
- target_compile_options(${_name} PUBLIC ${TEST_SUITE_OFFLOADING_${LANG}_FLAGS})
-
- target_link_options(${_name} PUBLIC ${TEST_SUITE_OFFLOADING_${LANG}_LDFLAGS})
+ target_link_libraries(${_name} PUBLIC OpenMP_Offloading m)
+ set_target_properties(${_name} PROPERTIES Fortran_MODULE_DIRECTORY ${_module_dir})
endforeach ()
endfunction ()
-
-llvm_externals_find(TEST_SUITE_SOLLVEVV_ROOT "sollve_vv" "OpenMP Offloading Validation & Verification Suite")
-
-if(TEST_SUITE_SOLLVEVV_ROOT AND NOT TEST_SUITE_BENCHMARKING_ONLY)
- if(OpenMP_FOUND)
- message(STATUS "Adding OpenMP Offloading Validiation & Verification")
- else()
- message(STATUS "NOT using OpenMP Validiation & Verification because OpenMP was not found")
- return()
- endif()
-
- list(REMOVE_DUPLICATES SYSTEM_GPU)
- foreach(list_option ${SYSTEM_GPU})
- string(TOUPPER ${list_option} list_option)
- if(list_option IN_LIST ALL_LIST_OPTIONS)
- if(list_option STREQUAL "AMD")
- list(APPEND CHOOSEN_LISTS ${AMD})
- message(STATUS "adding AMD")
- endif()
- if(list_option STREQUAL "NVIDIA")
- list(APPEND CHOOSEN_LISTS ${NVIDIA})
- message(STATUS "adding NVIDIA")
- endif()
- if(list_option STREQUAL "INTEL")
- list(APPEND CHOOSEN_LISTS ${INTEL})
- message(STATUS "adding INTEL")
- endif()
- if(list_option STREQUAL "REGRESSION")
- list(APPEND CHOOSEN_LISTS ${REGRESSION})
- message(STATUS "adding REGRESSION")
- endif()
- else()
- message(STATUS "Option is unrecognized (${list_option})")
- endif()
- endforeach()
- list(REMOVE_DUPLICATES CHOOSEN_LISTS)
-
- foreach (_lang in C CXX Fortran)
- if(CMAKE_${_lang}_COMPILER)
- add_sollvevv(${_lang})
- endif()
- endforeach ()
-endif ()
+get_property(_enabled_languages GLOBAL PROPERTY ENABLED_LANGUAGES)
+foreach (_lang IN LISTS _enabled_languages)
+ add_sollvevv(${_lang})
+endforeach ()
diff --git a/External/sollve_vv/README b/External/sollve_vv/README
index 7364f30..f194e02 100644
--- a/External/sollve_vv/README
+++ b/External/sollve_vv/README
@@ -19,55 +19,56 @@
machine.
Fortran source files won't be run unless specified. Add TEST_SUITE_FORTRAN=ON
-and TEST_SUITE_OFFLOADING_Fortran_FLAGS to the CMAKE build.
+to the CMake build.
-To specify the offloading flags, add TEST_SUITE_OFFLOADING_<lang>_FLAGS
-where <lang> is C, CXX, or Fortran to the CMAKE build.
+To specify the offloading flags, add TEST_SUITE_OFFLOADING_<lang>_FLAGS and
+TEST_SUITE_OFFLOADING_<lang>_LDFLAGS where <lang> is C, CXX, or Fortran to the
+CMake build. It defaults to `--offload-arch=native`, which is Clang's command
+line option to compile for the GPU(s) installed in the current machine.
-The CMakeLists.txt contains internal greenlists and redlists that the user
-must declare which options to use with SYSTEM_GPU. The user is able to
-declare multiple lists to use.
+Not all features that the SOLLVE V&V suite is testing are currently supported
+by Clang/Flang. To avoid tests that are known to always fail, the CMake option
+`TEST_SUITE_SYSTEM_GPU` can be used to pre-select a set of tests are are known
+to work. Available options are:
-here are all of the options:
--amd (this is the greenlist that contains tests that passes)
--nvidia (this is the greenlist that contains tests that passes)
--intel (this is the greenlist that contains tests that passes)
+ * `-DTEST_SUITE_SYSTEM_GPU=amd` (select tests that should work with Clang/Flang on recent AMD GPUs)
+ * `-DTEST_SUITE_SYSTEM_GPU=nvidia` (select tests that should work with Clang/Flang on recent Nvidia GPUs)
+ * `-DTEST_SUITE_SYSTEM_GPU=native` (select one of the options above based on which GPU is installed)
+ * `-DTEST_SUITE_SYSTEM_GPU=all` (select all SOLLVE V&V tests)
+ * `-DTEST_SUITE_SYSTEM_GPU=auto` (Use suitable preselected list, otherwise `all`)
-OpenMP support is autodetected by CMake, but clang requires additional
-flags to enable offloading. An example run is:
+An example run is:
-$ cmake ../llvm-test-suite -GNinja -DCMAKE_BUILD_TYPE=Release \
- -DTEST_SUITE_SOLLVEVV_ROOT=${HOME}/src/sollve_vv \
- -DTEST_SUITE_LIT=${HOME}/build/llvm-project/release/bin/llvm-lit \
- -DCMAKE_C_COMPILER=${HOME}/install/llvm-project/release/bin/clang \
- -DCMAKE_CXX_COMPILER=${HOME}/install/llvm-project/release/bin/clang++ \
- -DTEST_SUITE_SUBDIRS=External/sollve_vv \
- -DTEST_SUITE_SOLLVEVV_OFFLOADING_C_FLAGS=-fopenmp-targets=nvptx64-nvidia-cuda;--cuda-path=/soft/compilers/cuda/cuda-10.1.243;-Xopenmp-target;-march=sm_70 \
- -DTEST_SUITE_SOLLVEVV_OFFLOADING_CXX_FLAGS=-fopenmp-targets=nvptx64-nvidia-cuda;--cuda-path=/soft/compilers/cuda/cuda-10.1.243;-Xopenmp-target;-march=sm_70 \
- -DTEST_SUITE_SOLLVEVV_OFFLOADING_LDFLAGS=-fopenmp-targets=nvptx64-nvidia-cuda;--cuda-path=/soft/compilers/cuda/cuda-10.1.243;-Xopenmp-target;-march=sm_70;-lopenmptarget \
- -DSYSTEM_GPU="amd\;amd_runtime_redlist" \
- -DTEST_SUITE_LIT_FLAGS=-svj1
+ $ COMMON_OFFLOAD="-fopenmp-targets=nvptx64-nvidia-cuda --cuda-path=/soft/compilers/cuda/cuda-10.1.243 -Xopenmp-target -march=sm_70" \
+ cmake ../llvm-test-suite -GNinja -DCMAKE_BUILD_TYPE=Release \
+ -DTEST_SUITE_SOLLVEVV_ROOT=${HOME}/src/sollve_vv \
+ -DTEST_SUITE_LIT=${HOME}/build/llvm-project/release/bin/llvm-lit \
+ -DCMAKE_C_COMPILER=${HOME}/install/llvm-project/release/bin/clang \
+ -DCMAKE_CXX_COMPILER=${HOME}/install/llvm-project/release/bin/clang++ \
+ -DTEST_SUITE_SUBDIRS=External/sollve_vv \
+ "-DTEST_SUITE_OFFLOADING_C_FLAGS=${COMMON_OFFLOAD}" \
+ "-DTEST_SUITE_OFFLOADING_CXX_FLAGS=${COMMON_OFFLOAD}" \
+ "-DTEST_SUITE_OFFLOADING_C_LDFLAGS=${COMMON_OFFLOAD}" \
+ "-DTEST_SUITE_OFFLOADING_CXX_LDFLAGS=${COMMON_OFFLOAD}" \
+ -DTEST_SUITE_SYSTEM_GPU=nvidia \
+ -DTEST_SUITE_LIT_FLAGS=-svj1
-$ LD_LIBRARY_PATH=${HOME}/install/llvm-project/release/lib ninja check
-
+ $ LD_LIBRARY_PATH=${HOME}/install/llvm-project/release/lib ninja check
Clang also needs to be compiled with enabled offloading for the chosen
target. A configuration compatible for the commands above is:
-$ cmake ../llvm-project/llvm -GNinja -DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_INSTALL_PREFIX=${HOME}/install/llvm-project/release \
- -DLLVM_ENABLE_PROJECTS=clang;openmp;offload;flang;mlir \
- -DCUDA_TOOLKIT_ROOT_DIR=/soft/compilers/cuda/cuda-10.1.243 \
- -DLIBOMPTARGET_NVPTX_COMPUTE_CAPABILITIES=70
+ $ cmake ../llvm-project/llvm -GNinja -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=${HOME}/install/llvm-project/release \
+ "-DLLVM_ENABLE_PROJECTS=clang" \
+ "-DLLVM_ENABLE_RUNTIMES=openmp;offload" \
+ -DCUDA_TOOLKIT_ROOT_DIR=/soft/compilers/cuda/cuda-10.1.243
-$ cmake install
-
+ $ ninja install
In this example, Clang is not installed into a default search path such
-that the paths have to be specified explicitly. The options
-"-DLIBOMPTARGET_NVPTX_COMPUTE_CAPABILITIES=70" and "-march=sm_70" are to
-select the PTX version to compile to. "-DCUDA_TOOLKIT_ROOT_DIR" and
-"--cuda-path" point to the CUDA SDK to use. The option
+that the paths have to be specified explicitly. "-DCUDA_TOOLKIT_ROOT_DIR"
+and "--cuda-path" point to the CUDA SDK to use. The option
"-DTEST_SUITE_LIT_FLAGS=-j1" is required to not run the tests in parallel;
multiple tests may conflict while running on the same GPU and thus fail.
diff --git a/External/sollve_vv/sollvevv_amd_tests.cmake b/External/sollve_vv/sollvevv_amd_tests.cmake
index 93e0d22..08cbf89 100644
--- a/External/sollve_vv/sollvevv_amd_tests.cmake
+++ b/External/sollve_vv/sollvevv_amd_tests.cmake
@@ -1,8 +1,5 @@
-# SOLLVE OpenMP Offloading Validation & Verification Suite
-# https://crpl.cis.udel.edu/ompvvsollve/
-# Maintained By: Aaron Jarmusch <Jarmusch@udel.edu>
-
-set(AMD
+message(STATUS "Using SOLLVE V&V tests known to work with Clang/Flang on AMD GPUs")
+set(TEST_SUITE_SOLLVEVV_TESTS
4.5/application_kernels/alpaka_complex_template.cpp
4.5/application_kernels/gemv_target.cpp
4.5/application_kernels/gemv_target_many_matrices.cpp
@@ -182,7 +179,6 @@
5.0/master_taskloop/test_master_taskloop.c
5.0/master_taskloop_simd/test_master_taskloop_simd.c
5.0/metadirective/test_metadirective_arch_is_nvidia.c
- 5.0/metadirective/test_metadirective_arch_is_nvidia.c
5.0/metadirective/test_metadirective_arch_nvidia_or_amd.c
5.0/parallel_for/test_parallel_for_allocate.c
5.0/parallel_for/test_parallel_for_notequals.c
@@ -322,4 +318,4 @@
5.0/requires/test_requires_atomic_default_mem_order_seq_cst.F90
5.0/simd/test_simd_if.F90
4.5/offloading_success.F90
-) # AMD
+)
diff --git a/External/sollve_vv/sollvevv_nvidia_tests.cmake b/External/sollve_vv/sollvevv_nvidia_tests.cmake
index 3e23c25..c6da9d6 100644
--- a/External/sollve_vv/sollvevv_nvidia_tests.cmake
+++ b/External/sollve_vv/sollvevv_nvidia_tests.cmake
@@ -1,9 +1,5 @@
-# SOLLVE OpenMP Offloading Validation & Verification Suite
-# https://crpl.cis.udel.edu/ompvvsollve/
-# Maintained By: Aaron Jarmusch <Jarmusch@udel.edu>
-
-
-set(NVIDIA
+message(STATUS "Using SOLLVE V&V tests known to work with Clang/Flang on Nvidia GPUs")
+set(TEST_SUITE_SOLLVEVV_TESTS
4.5/application_kernels/alpaka_complex_template.cpp
4.5/application_kernels/gemv_target.cpp
4.5/application_kernels/gemv_target_many_matrices.cpp
@@ -187,7 +183,6 @@
5.0/master_taskloop_simd/test_master_taskloop_simd.c
5.0/master_taskloop_simd/test_master_taskloop_simd_device.c
5.0/metadirective/test_metadirective_arch_is_nvidia.c
- 5.0/metadirective/test_metadirective_arch_is_nvidia.c
5.0/metadirective/test_metadirective_arch_nvidia_or_amd.c
5.0/parallel_for/test_parallel_for_allocate.c
5.0/parallel_for/test_parallel_for_notequals.c
@@ -363,4 +358,4 @@
4.5/target_update/test_target_update_from.F90
4.5/target_update/test_target_update_if.F90
4.5/target_update/test_target_update_to.F90
-) # NVIDIA
+)