[Openmp-commits] [openmp] [OpenMP] Fix two usm tests for amdgpus. (PR #78824)
via Openmp-commits
openmp-commits at lists.llvm.org
Fri Jan 19 17:16:40 PST 2024
https://github.com/carlobertolli created https://github.com/llvm/llvm-project/pull/78824
Some are missing setting of HSA_XNACK=1 environment variable, used to enable unified memory support on amdgpu's when it's not been set at kernel boot time. Some others needed to be marked as supporting unified_shared_memory in the lit test harness.
Extend lit test harness to enable unified_shared_memory requirement for AMD GPUs.
Reland: #77851
>From 9fe74d96c68b5fb3cde57bb1b32ef2d93bdfda38 Mon Sep 17 00:00:00 2001
From: Carlo Bertolli <carlo.bertolli at amd.com>
Date: Fri, 19 Jan 2024 19:11:17 -0600
Subject: [PATCH] [OpenMP] Fix two usm tests for amdgpus. Some are missing
setting of HSA_XNACK=1 environment variable, used to enable unified memory
support on amdgpu's when it's not been set at kernel boot time. Some others
needed to be marked as supporting unified_shared_memory in the lit test
harness.
Extend lit test harness to enable unified_shared_memory requirement for AMD GPUs.
Reland: #77851
---
openmp/libomptarget/test/lit.cfg | 9 +++++++--
openmp/libomptarget/test/lit.site.cfg.in | 1 +
openmp/libomptarget/test/unified_shared_memory/api.c | 7 ++++---
.../test/unified_shared_memory/close_enter_exit.c | 6 +++---
4 files changed, 15 insertions(+), 8 deletions(-)
diff --git a/openmp/libomptarget/test/lit.cfg b/openmp/libomptarget/test/lit.cfg
index 9078561e3198e6..a0df7314fe974f 100644
--- a/openmp/libomptarget/test/lit.cfg
+++ b/openmp/libomptarget/test/lit.cfg
@@ -116,8 +116,13 @@ if config.libomptarget_current_target.startswith('nvptx'):
except ValueError:
# If the architecture is invalid, assume it is supported.
supports_unified_shared_memory = True
-if config.libomptarget_current_target.startswith('amdgcn'):
- supports_unified_shared_memory = False
+elif config.libomptarget_current_target.startswith('amdgcn'):
+ # amdgpu_test_arch contains a list of AMD GPUs in the system
+ # only check the first one assuming that we will run the test on it.
+ if not (config.amdgpu_test_arch.startswith("gfx90a") or
+ config.amdgpu_test_arch.startswith("gfx940") or
+ config.amdgpu_test_arch.startswith("gfx942")):
+ supports_unified_shared_memory = False
if supports_unified_shared_memory:
config.available_features.add('unified_shared_memory')
diff --git a/openmp/libomptarget/test/lit.site.cfg.in b/openmp/libomptarget/test/lit.site.cfg.in
index 2d638118838727..7c75aaa18fa770 100644
--- a/openmp/libomptarget/test/lit.site.cfg.in
+++ b/openmp/libomptarget/test/lit.site.cfg.in
@@ -10,6 +10,7 @@ config.test_extra_flags = "@OPENMP_TEST_FLAGS@"
config.cuda_path = "@CUDA_TOOLKIT_ROOT_DIR@"
config.cuda_libdir = "@CUDA_LIBDIR@"
config.cuda_test_arch = "@LIBOMPTARGET_DEP_CUDA_ARCH@"
+config.amdgpu_test_arch = "@LIBOMPTARGET_AMDGPU_DETECTED_ARCH_LIST@"
config.libomptarget_obj_root = "@CMAKE_CURRENT_BINARY_DIR@/@CURRENT_TARGET@"
config.library_dir = "@LIBOMPTARGET_LIBRARY_DIR@"
config.llvm_library_dir = "@LIBOMPTARGET_LLVM_LIBRARY_DIR@"
diff --git a/openmp/libomptarget/test/unified_shared_memory/api.c b/openmp/libomptarget/test/unified_shared_memory/api.c
index 4f0f93b9bf5096..c7ab055abb5152 100644
--- a/openmp/libomptarget/test/unified_shared_memory/api.c
+++ b/openmp/libomptarget/test/unified_shared_memory/api.c
@@ -1,9 +1,10 @@
-// RUN: %libomptarget-compile-run-and-check-generic
+// RUN: %libomptarget-compile-generic
+// RUN: env HSA_XNACK=1 \
+// RUN: %libomptarget-run-generic | %fcheck-generic
// XFAIL: nvptx64-nvidia-cuda
// XFAIL: nvptx64-nvidia-cuda-LTO
-// Fails on amdgpu with error: GPU Memory Error
-// UNSUPPORTED: amdgcn-amd-amdhsa
+// REQUIRES: unified_shared_memory
#include <omp.h>
#include <stdio.h>
diff --git a/openmp/libomptarget/test/unified_shared_memory/close_enter_exit.c b/openmp/libomptarget/test/unified_shared_memory/close_enter_exit.c
index 71be4c9177b063..b116c652f47e99 100644
--- a/openmp/libomptarget/test/unified_shared_memory/close_enter_exit.c
+++ b/openmp/libomptarget/test/unified_shared_memory/close_enter_exit.c
@@ -1,11 +1,11 @@
-// RUN: %libomptarget-compile-run-and-check-generic
+// RUN: %libomptarget-compile-generic
+// RUN: env HSA_XNACK=1 \
+// RUN: %libomptarget-run-generic | %fcheck-generic
// REQUIRES: unified_shared_memory
// UNSUPPORTED: clang-6, clang-7, clang-8, clang-9
-// Fails on amdgpu with error: GPU Memory Error
// Fails on nvptx with error: an illegal memory access was encountered
-// XFAIL: amdgcn-amd-amdhsa
// XFAIL: nvptx64-nvidia-cuda
// XFAIL: nvptx64-nvidia-cuda-LTO
More information about the Openmp-commits
mailing list