Skip to content

Commit

Permalink
[OpenMP] Fix two usm tests for amdgpus. (#78824)
Browse files Browse the repository at this point in the history
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
  • Loading branch information
carlobertolli committed Jan 22, 2024
1 parent ac3ee1b commit 3440466
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 8 deletions.
9 changes: 7 additions & 2 deletions openmp/libomptarget/test/lit.cfg
Expand Up @@ -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')

Expand Down
1 change: 1 addition & 0 deletions openmp/libomptarget/test/lit.site.cfg.in
Expand Up @@ -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@"
Expand Down
7 changes: 4 additions & 3 deletions 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>
Expand Down
@@ -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

Expand Down

0 comments on commit 3440466

Please sign in to comment.