Skip to content

Commit

Permalink
Drop Instruction Set Architecture macros
Browse files Browse the repository at this point in the history
Macros KOKKOS_{USE -> ENABLE}_ISA_{X86_64,KNC,POWERPCLE,POWERPCBE} definitions (KOKKOS_USE_ISA_*) did not match guarding in code (KOKKOS_ENABLE_ISA_*)
Proposing to remove altogether rather than trying to "fix".  Pre-desul atomics source files were intentionally left out.
  • Loading branch information
dalg24 committed Apr 27, 2022
1 parent a03b0f1 commit 2461bcb
Show file tree
Hide file tree
Showing 5 changed files with 9 additions and 116 deletions.
30 changes: 0 additions & 30 deletions Makefile.kokkos
Original file line number Diff line number Diff line change
Expand Up @@ -455,12 +455,6 @@ KOKKOS_INTERNAL_USE_ARCH_AVX2 := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_H
KOKKOS_INTERNAL_USE_ARCH_AVX512MIC := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_KNL))
KOKKOS_INTERNAL_USE_ARCH_AVX512XEON := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_SKX))

# Decide what ISA level we are able to support.
KOKKOS_INTERNAL_USE_ISA_X86_64 := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_WSM) + $(KOKKOS_INTERNAL_USE_ARCH_SNB) + $(KOKKOS_INTERNAL_USE_ARCH_HSW) + $(KOKKOS_INTERNAL_USE_ARCH_BDW) + $(KOKKOS_INTERNAL_USE_ARCH_KNL) + $(KOKKOS_INTERNAL_USE_ARCH_SKX) + $(KOKKOS_INTERNAL_USE_ARCH_ZEN) + $(KOKKOS_INTERNAL_USE_ARCH_ZEN2) + $(KOKKOS_INTERNAL_USE_ARCH_ZEN3))
KOKKOS_INTERNAL_USE_ISA_KNC := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_KNC))
KOKKOS_INTERNAL_USE_ISA_POWERPCLE := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_POWER8) + $(KOKKOS_INTERNAL_USE_ARCH_POWER9))
KOKKOS_INTERNAL_USE_ISA_POWERPCBE := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_POWER7))

# Decide whether we can support transactional memory
KOKKOS_INTERNAL_USE_TM := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_BDW) + $(KOKKOS_INTERNAL_USE_ARCH_SKX))

Expand Down Expand Up @@ -574,30 +568,6 @@ ifeq ($(KOKKOS_INTERNAL_USE_TM), 1)
tmp := $(call kokkos_append_header,"$H""endif")
endif

ifeq ($(KOKKOS_INTERNAL_USE_ISA_X86_64), 1)
tmp := $(call kokkos_append_header,"$H""ifndef __CUDA_ARCH__")
tmp := $(call kokkos_append_header,"$H""define KOKKOS_USE_ISA_X86_64")
tmp := $(call kokkos_append_header,"$H""endif")
endif

ifeq ($(KOKKOS_INTERNAL_USE_ISA_KNC), 1)
tmp := $(call kokkos_append_header,"$H""ifndef __CUDA_ARCH__")
tmp := $(call kokkos_append_header,"$H""define KOKKOS_USE_ISA_KNC")
tmp := $(call kokkos_append_header,"$H""endif")
endif

ifeq ($(KOKKOS_INTERNAL_USE_ISA_POWERPCLE), 1)
tmp := $(call kokkos_append_header,"$H""ifndef __CUDA_ARCH__")
tmp := $(call kokkos_append_header,"$H""define KOKKOS_USE_ISA_POWERPCLE")
tmp := $(call kokkos_append_header,"$H""endif")
endif

ifeq ($(KOKKOS_INTERNAL_USE_ISA_POWERPCBE), 1)
tmp := $(call kokkos_append_header,"$H""ifndef __CUDA_ARCH__")
tmp := $(call kokkos_append_header,"$H""define KOKKOS_USE_ISA_POWERPCBE")
tmp := $(call kokkos_append_header,"$H""endif")
endif

#only add the c++ standard flags if this is not CMake
tmp := $(call kokkos_append_header,"/* General Settings */")
ifneq ($(KOKKOS_INTERNAL_DISABLE_DEPRECATED_CODE), 1)
Expand Down
4 changes: 0 additions & 4 deletions cmake/KokkosCore_config.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,6 @@

#ifndef __CUDA_ARCH__
#cmakedefine KOKKOS_ENABLE_TM
#cmakedefine KOKKOS_USE_ISA_X86_64
#cmakedefine KOKKOS_USE_ISA_KNC
#cmakedefine KOKKOS_USE_ISA_POWERPCLE
#cmakedefine KOKKOS_USE_ISA_POWERPCBE
#endif

/* General Settings */
Expand Down
10 changes: 0 additions & 10 deletions cmake/kokkos_arch.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -319,7 +319,6 @@ IF (KOKKOS_ARCH_KNL)
ENDIF()

IF (KOKKOS_ARCH_KNC)
SET(KOKKOS_USE_ISA_KNC ON)
COMPILER_SPECIFIC_FLAGS(
COMPILER_ID KOKKOS_CXX_HOST_COMPILER_ID
DEFAULT -mmic
Expand All @@ -338,10 +337,6 @@ IF (KOKKOS_ARCH_SKX)
)
ENDIF()

IF (KOKKOS_ARCH_WSM OR KOKKOS_ARCH_SNB OR KOKKOS_ARCH_HSW OR KOKKOS_ARCH_BDW OR KOKKOS_ARCH_KNL OR KOKKOS_ARCH_SKX OR KOKKOS_ARCH_ZEN OR KOKKOS_ARCH_ZEN2 OR KOKKOS_ARCH_ZEN3)
SET(KOKKOS_USE_ISA_X86_64 ON)
ENDIF()

IF (KOKKOS_ARCH_BDW OR KOKKOS_ARCH_SKX)
SET(KOKKOS_ENABLE_TM ON) #not a cache variable
ENDIF()
Expand All @@ -352,7 +347,6 @@ IF (KOKKOS_ARCH_POWER7)
NVHPC NO-VALUE-SPECIFIED
DEFAULT -mcpu=power7 -mtune=power7
)
SET(KOKKOS_USE_ISA_POWERPCBE ON)
ENDIF()

IF (KOKKOS_ARCH_POWER8)
Expand All @@ -371,10 +365,6 @@ IF (KOKKOS_ARCH_POWER9)
)
ENDIF()

IF (KOKKOS_ARCH_POWER8 OR KOKKOS_ARCH_POWER9)
SET(KOKKOS_USE_ISA_POWERPCLE ON)
ENDIF()

IF (KOKKOS_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE)
COMPILER_SPECIFIC_FLAGS(
Clang -fcuda-rdc
Expand Down
20 changes: 0 additions & 20 deletions core/src/impl/Kokkos_Core.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -379,26 +379,6 @@ void pre_initialize_internal(const InitArguments& args) {
std::to_string(KOKKOS_COMPILER_MSVC));
declare_configuration_metadata("tools_only", "compiler_family", "msvc");
#endif
#ifdef KOKKOS_ENABLE_ISA_KNC
declare_configuration_metadata("architecture", "KOKKOS_ENABLE_ISA_KNC",
"yes");
#else
declare_configuration_metadata("architecture", "KOKKOS_ENABLE_ISA_KNC", "no");
#endif
#ifdef KOKKOS_ENABLE_ISA_POWERPCLE
declare_configuration_metadata("architecture", "KOKKOS_ENABLE_ISA_POWERPCLE",
"yes");
#else
declare_configuration_metadata("architecture", "KOKKOS_ENABLE_ISA_POWERPCLE",
"no");
#endif
#ifdef KOKKOS_ENABLE_ISA_X86_64
declare_configuration_metadata("architecture", "KOKKOS_ENABLE_ISA_X86_64",
"yes");
#else
declare_configuration_metadata("architecture", "KOKKOS_ENABLE_ISA_X86_64",
"no");
#endif

#ifdef KOKKOS_ENABLE_GNU_ATOMICS
declare_configuration_metadata("atomics", "KOKKOS_ENABLE_GNU_ATOMICS", "yes");
Expand Down
61 changes: 9 additions & 52 deletions core/src/impl/Kokkos_HostSpace.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -101,11 +101,6 @@
#include <impl/Kokkos_Error.hpp>
#include <Kokkos_Atomic.hpp>

#if (defined(KOKKOS_ENABLE_ASM) || defined(KOKKOS_ENABLE_TM)) && \
defined(KOKKOS_ENABLE_ISA_X86_64) && !defined(KOKKOS_COMPILER_PGI)
#include <immintrin.h>
#endif

//----------------------------------------------------------------------------
//----------------------------------------------------------------------------

Expand Down Expand Up @@ -428,56 +423,18 @@ void init_lock_array_host_space() {
}

bool lock_address_host_space(void *ptr) {
#if defined(KOKKOS_ENABLE_ISA_X86_64) && defined(KOKKOS_ENABLE_TM) && \
!defined(KOKKOS_COMPILER_PGI)
const unsigned status = _xbegin();

if (_XBEGIN_STARTED == status) {
const int val =
HOST_SPACE_ATOMIC_LOCKS[((size_t(ptr) >> 2) & HOST_SPACE_ATOMIC_MASK) ^
HOST_SPACE_ATOMIC_XOR_MASK];

if (0 == val) {
HOST_SPACE_ATOMIC_LOCKS[((size_t(ptr) >> 2) & HOST_SPACE_ATOMIC_MASK) ^
HOST_SPACE_ATOMIC_XOR_MASK] = 1;
} else {
_xabort(1);
}

_xend();

return 1;
} else {
#endif
return 0 == atomic_compare_exchange(
&HOST_SPACE_ATOMIC_LOCKS[((size_t(ptr) >> 2) &
HOST_SPACE_ATOMIC_MASK) ^
HOST_SPACE_ATOMIC_XOR_MASK],
0, 1);
#if defined(KOKKOS_ENABLE_ISA_X86_64) && defined(KOKKOS_ENABLE_TM) && \
!defined(KOKKOS_COMPILER_PGI)
}
#endif
return 0 == atomic_compare_exchange(
&HOST_SPACE_ATOMIC_LOCKS[((size_t(ptr) >> 2) &
HOST_SPACE_ATOMIC_MASK) ^
HOST_SPACE_ATOMIC_XOR_MASK],
0, 1);
}

void unlock_address_host_space(void *ptr) {
#if defined(KOKKOS_ENABLE_ISA_X86_64) && defined(KOKKOS_ENABLE_TM) && \
!defined(KOKKOS_COMPILER_PGI)
const unsigned status = _xbegin();

if (_XBEGIN_STARTED == status) {
HOST_SPACE_ATOMIC_LOCKS[((size_t(ptr) >> 2) & HOST_SPACE_ATOMIC_MASK) ^
HOST_SPACE_ATOMIC_XOR_MASK] = 0;
} else {
#endif
atomic_exchange(
&HOST_SPACE_ATOMIC_LOCKS[((size_t(ptr) >> 2) & HOST_SPACE_ATOMIC_MASK) ^
HOST_SPACE_ATOMIC_XOR_MASK],
0);
#if defined(KOKKOS_ENABLE_ISA_X86_64) && defined(KOKKOS_ENABLE_TM) && \
!defined(KOKKOS_COMPILER_PGI)
}
#endif
atomic_exchange(
&HOST_SPACE_ATOMIC_LOCKS[((size_t(ptr) >> 2) & HOST_SPACE_ATOMIC_MASK) ^
HOST_SPACE_ATOMIC_XOR_MASK],
0);
}

} // namespace Impl
Expand Down

0 comments on commit 2461bcb

Please sign in to comment.