[llvm] [offload] [test] Skip amdgcn/nvptx tests if detected arch is not built (PR #119006)

via llvm-commits llvm-commits at lists.llvm.org
Fri Dec 6 10:25:59 PST 2024


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-offload

Author: Michał Górny (mgorny)

<details>
<summary>Changes</summary>

Skip amdgcn and/or nvptx tests, if the detected GPU architecture is not present among GPUs offload was built for.  Without this change, the tests are run if any GPU is detected -- which could lead to cryptic test failures, such as the ones reported in #<!-- -->118824.

---
Full diff: https://github.com/llvm/llvm-project/pull/119006.diff


2 Files Affected:

- (modified) offload/DeviceRTL/CMakeLists.txt (+3) 
- (modified) offload/test/CMakeLists.txt (+14) 


``````````diff
diff --git a/offload/DeviceRTL/CMakeLists.txt b/offload/DeviceRTL/CMakeLists.txt
index 32a7510be980d8..94746b35ea7e0d 100644
--- a/offload/DeviceRTL/CMakeLists.txt
+++ b/offload/DeviceRTL/CMakeLists.txt
@@ -69,6 +69,9 @@ elseif(LIBOMPTARGET_DEVICE_ARCHITECTURES STREQUAL "auto" OR
       "${LIBOMPTARGET_NVPTX_DETECTED_ARCH_LIST};${LIBOMPTARGET_AMDGPU_DETECTED_ARCH_LIST}")
 endif()
 list(REMOVE_DUPLICATES LIBOMPTARGET_DEVICE_ARCHITECTURES)
+# for tests
+set(LIBOMPTARGET_EXPANDED_DEVICE_ARCHITECTURES ${LIBOMPTARGET_DEVICE_ARCHITECTURES}
+    PARENT_SCOPE)
 
 set(include_files
   ${include_directory}/Allocator.h
diff --git a/offload/test/CMakeLists.txt b/offload/test/CMakeLists.txt
index 8a827e0a625eff..9ab213acd23be2 100644
--- a/offload/test/CMakeLists.txt
+++ b/offload/test/CMakeLists.txt
@@ -37,6 +37,20 @@ string(REGEX MATCHALL "([^\ ]+\ |[^\ ]+$)" SYSTEM_TARGETS "${LIBOMPTARGET_SYSTEM
 foreach(CURRENT_TARGET IN LISTS SYSTEM_TARGETS)
   string(STRIP "${CURRENT_TARGET}" CURRENT_TARGET)
 
+  if(CURRENT_TARGET MATCHES "^amdgcn" AND
+     NOT "${LIBOMPTARGET_AMDGPU_DETECTED_ARCH_LIST}"
+         IN_LIST LIBOMPTARGET_EXPANDED_DEVICE_ARCHITECTURES)
+    message(WARNING "Detected AMDGPU arch ${LIBOMPTARGET_AMDGPU_DETECTED_ARCH_LIST} "
+                    "not in built arch list, ${CURRENT_TARGET} tests will be skipped")
+    continue()
+  elseif(CURRENT_TARGET MATCHES "^nvptx" AND
+     NOT "${LIBOMPTARGET_DEP_CUDA_ARCH}"
+         IN_LIST LIBOMPTARGET_EXPANDED_DEVICE_ARCHITECTURES)
+    message(WARNING "Detected NVPTX arch ${LIBOMPTARGET_DEP_CUDA_ARCH} "
+                    "not in built arch list, ${CURRENT_TARGET} tests will be skipped")
+    continue()
+  endif()
+
   add_offload_testsuite(check-libomptarget-${CURRENT_TARGET}
     "Running libomptarget tests"
     ${CMAKE_CURRENT_BINARY_DIR}/${CURRENT_TARGET}

``````````

</details>


https://github.com/llvm/llvm-project/pull/119006


More information about the llvm-commits mailing list