[OpenMP] Remove duplicates from the list if using 'auto'
authorJoseph Huber <jhuber6@vols.utk.edu>
Wed, 12 Apr 2023 20:08:59 +0000 (15:08 -0500)
committerJoseph Huber <jhuber6@vols.utk.edu>
Fri, 14 Apr 2023 20:14:08 +0000 (15:14 -0500)
Summary:
We can detect the user's GPUs via the `auto` option. But if the user has
multiple GPUs installed or set the list incorrectly, we need to remove
the duplicates.

openmp/libomptarget/DeviceRTL/CMakeLists.txt

index 53da266..f123105 100644 (file)
@@ -70,7 +70,8 @@ set(LIBOMPTARGET_DEVICE_ARCHITECTURES "all" CACHE STRING
 
 if(LIBOMPTARGET_DEVICE_ARCHITECTURES STREQUAL "all")
   set(LIBOMPTARGET_DEVICE_ARCHITECTURES ${all_gpu_architectures})
-elseif(LIBOMPTARGET_DEVICE_ARCHITECTURES STREQUAL "auto")
+elseif(LIBOMPTARGET_DEVICE_ARCHITECTURES STREQUAL "auto" OR
+       LIBOMPTARGET_DEVICE_ARCHITECTURES STREQUAL "native")
   if(NOT LIBOMPTARGET_NVPTX_ARCH AND NOT LIBOMPTARGET_AMDGPU_ARCH)
     libomptarget_error_say(
       "Could not find 'amdgpu-arch' and 'nvptx-arch' tools required for 'auto'")
@@ -80,6 +81,7 @@ elseif(LIBOMPTARGET_DEVICE_ARCHITECTURES STREQUAL "auto")
   set(LIBOMPTARGET_DEVICE_ARCHITECTURES
       "${LIBOMPTARGET_NVPTX_DETECTED_ARCH_LIST};${LIBOMPTARGET_AMDGPU_DETECTED_ARCH_LIST}")
 endif()
+list(REMOVE_DUPLICATES LIBOMPTARGET_DEVICE_ARCHITECTURES)
 
 set(include_files
   ${include_directory}/Configuration.h