From e275a77a6f2842366b3bbee1e3004b0521501721 Mon Sep 17 00:00:00 2001 From: Michael Halkenhaeuser Date: Wed, 15 Feb 2023 16:19:58 +0100 Subject: [PATCH] Add support for AMDGPU target NAVI31 / RX 7900 XT(X): gfx1100 --- Makefile.kokkos | 5 +++++ cmake/KokkosCore_config.h.in | 1 + cmake/kokkos_arch.cmake | 6 +++--- core/src/impl/Kokkos_Core.cpp | 3 +++ generate_makefile.bash | 1 + 5 files changed, 13 insertions(+), 3 deletions(-) diff --git a/Makefile.kokkos b/Makefile.kokkos index a55e3428cf..cf285c23e5 100644 --- a/Makefile.kokkos +++ b/Makefile.kokkos @@ -1092,6 +1092,11 @@ ifeq ($(KOKKOS_INTERNAL_USE_HIP), 1) tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_NAVI") KOKKOS_INTERNAL_HIP_ARCH_FLAG := --offload-arch=gfx1030 endif + ifeq ($(KOKKOS_INTERNAL_USE_ARCH_NAVI1100), 1) + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_NAVI1100") + tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_NAVI") + KOKKOS_INTERNAL_HIP_ARCH_FLAG := --offload-arch=gfx1100 + endif KOKKOS_SRC += $(wildcard $(KOKKOS_PATH)/core/src/HIP/*.cpp) diff --git a/cmake/KokkosCore_config.h.in b/cmake/KokkosCore_config.h.in index 5b97e461b4..445959b2c3 100644 --- a/cmake/KokkosCore_config.h.in +++ b/cmake/KokkosCore_config.h.in @@ -116,3 +116,4 @@ #cmakedefine KOKKOS_ARCH_VEGA90A #cmakedefine KOKKOS_ARCH_NAVI #cmakedefine KOKKOS_ARCH_NAVI1030 +#cmakedefine KOKKOS_ARCH_NAVI1100 diff --git a/cmake/kokkos_arch.cmake b/cmake/kokkos_arch.cmake index b051f8e3bd..fa80ed9dea 100644 --- a/cmake/kokkos_arch.cmake +++ b/cmake/kokkos_arch.cmake @@ -93,9 +93,9 @@ IF(Kokkos_ENABLE_HIP OR Kokkos_ENABLE_OPENMPTARGET) ENDIF() # AMD archs ordered in decreasing priority of autodetection -LIST(APPEND SUPPORTED_AMD_GPUS MI200 MI100 MI50/60 V620/W6800) -LIST(APPEND SUPPORTED_AMD_ARCHS VEGA90A VEGA908 VEGA906 NAVI1030) -LIST(APPEND CORRESPONDING_AMD_FLAGS gfx90a gfx908 gfx906 gfx1030) +LIST(APPEND SUPPORTED_AMD_GPUS MI200 MI100 MI50/60 RX7900XTX V620/W6800) +LIST(APPEND SUPPORTED_AMD_ARCHS VEGA90A VEGA908 VEGA906 NAVI1100 NAVI1030) +LIST(APPEND CORRESPONDING_AMD_FLAGS gfx90a gfx908 gfx906 gfx1100 gfx1030) #FIXME CAN BE REPLACED WITH LIST_ZIP IN CMAKE 3.17 FOREACH(ARCH IN LISTS SUPPORTED_AMD_ARCHS) diff --git a/core/src/impl/Kokkos_Core.cpp b/core/src/impl/Kokkos_Core.cpp index 5e53e42659..594366a383 100644 --- a/core/src/impl/Kokkos_Core.cpp +++ b/core/src/impl/Kokkos_Core.cpp @@ -757,6 +757,9 @@ void pre_initialize_internal(const Kokkos::InitializationSettings& settings) { #elif defined(KOKKOS_ARCH_NAVI1030) declare_configuration_metadata("architecture", "GPU architecture", "NAVI1030"); +#elif defined(KOKKOS_ARCH_NAVI1100) + declare_configuration_metadata("architecture", "GPU architecture", + "NAVI1100"); #else declare_configuration_metadata("architecture", "GPU architecture", "none"); diff --git a/generate_makefile.bash b/generate_makefile.bash index 60791d1c01..018426c9b8 100755 --- a/generate_makefile.bash +++ b/generate_makefile.bash @@ -161,6 +161,7 @@ display_help_text() { echo " VEGA908 = AMD GPU MI100 GFX908" echo " VEGA90A = AMD GPU MI200 GFX90A" echo " NAVI1030 = AMD GPU V620/W6800 GFX1030" + echo " NAVI1100 = AMD GPU RX 7900 XT(X) GFX1100" echo " [ARM]" echo " ARMV80 = ARMv8.0 Compatible CPU" echo " ARMV81 = ARMv8.1 Compatible CPU"