From 106a4a3633937f854e5304df55ebc950a0c57617 Mon Sep 17 00:00:00 2001 From: Damien L-G Date: Fri, 17 Mar 2023 17:53:09 -0600 Subject: [PATCH] Fixup NVIDIA GPU arch must be defined potentially for other backends as well --- .../Kokkos_Cuda_NvidiaGpuArchitectures.hpp | 58 +++++++++++++++++++ core/src/Kokkos_Macros.hpp | 1 + core/src/setup/Kokkos_Setup_Cuda.hpp | 36 ------------ 3 files changed, 59 insertions(+), 36 deletions(-) create mode 100644 core/src/Cuda/Kokkos_Cuda_NvidiaGpuArchitectures.hpp diff --git a/core/src/Cuda/Kokkos_Cuda_NvidiaGpuArchitectures.hpp b/core/src/Cuda/Kokkos_Cuda_NvidiaGpuArchitectures.hpp new file mode 100644 index 0000000000..956b6dffea --- /dev/null +++ b/core/src/Cuda/Kokkos_Cuda_NvidiaGpuArchitectures.hpp @@ -0,0 +1,58 @@ +//@HEADER +// ************************************************************************ +// +// Kokkos v. 4.0 +// Copyright (2022) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Part of Kokkos, under the Apache License v2.0 with LLVM Exceptions. +// See https://kokkos.org/LICENSE for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//@HEADER + +#ifndef KOKKOS_CUDA_NVIDIA_GPU_ARCHITECTURES_HPP +#define KOKKOS_CUDA_NVIDIA_GPU_ARCHITECTURES_HPP + +#if defined(KOKKOS_ARCH_KEPLER30) +#define KOKKOS_IMPL_ARCH_NVIDIA_GPU 30 +#elif defined(KOKKOS_ARCH_KEPLER32) +#define KOKKOS_IMPL_ARCH_NVIDIA_GPU 32 +#elif defined(KOKKOS_ARCH_KEPLER35) +#define KOKKOS_IMPL_ARCH_NVIDIA_GPU 35 +#elif defined(KOKKOS_ARCH_KEPLER37) +#define KOKKOS_IMPL_ARCH_NVIDIA_GPU 37 +#elif defined(KOKKOS_ARCH_MAXWELL50) +#define KOKKOS_IMPL_ARCH_NVIDIA_GPU 50 +#elif defined(KOKKOS_ARCH_MAXWELL52) +#define KOKKOS_IMPL_ARCH_NVIDIA_GPU 52 +#elif defined(KOKKOS_ARCH_MAXWELL53) +#define KOKKOS_IMPL_ARCH_NVIDIA_GPU 53 +#elif defined(KOKKOS_ARCH_PASCAL60) +#define KOKKOS_IMPL_ARCH_NVIDIA_GPU 60 +#elif defined(KOKKOS_ARCH_PASCAL61) +#define KOKKOS_IMPL_ARCH_NVIDIA_GPU 61 +#elif defined(KOKKOS_ARCH_VOLTA70) +#define KOKKOS_IMPL_ARCH_NVIDIA_GPU 70 +#elif defined(KOKKOS_ARCH_VOLTA72) +#define KOKKOS_IMPL_ARCH_NVIDIA_GPU 72 +#elif defined(KOKKOS_ARCH_TURING75) +#define KOKKOS_IMPL_ARCH_NVIDIA_GPU 75 +#elif defined(KOKKOS_ARCH_AMPERE80) +#define KOKKOS_IMPL_ARCH_NVIDIA_GPU 80 +#elif defined(KOKKOS_ARCH_AMPERE86) +#define KOKKOS_IMPL_ARCH_NVIDIA_GPU 86 +#elif defined(KOKKOS_ARCH_ADA89) +#define KOKKOS_IMPL_ARCH_NVIDIA_GPU 89 +#elif defined(KOKKOS_ARCH_HOPPER90) +#define KOKKOS_IMPL_ARCH_NVIDIA_GPU 90 +#elif defined(KOKKOS_ENABLE_CUDA) +// do not raise an error on other backends that may run on NVIDIA GPUs such as +// OpenACC, OpenMPTarget, or SYCL +#error NVIDIA GPU arch not recognized +#endif + +#endif diff --git a/core/src/Kokkos_Macros.hpp b/core/src/Kokkos_Macros.hpp index a884c037b3..c672de24b0 100644 --- a/core/src/Kokkos_Macros.hpp +++ b/core/src/Kokkos_Macros.hpp @@ -55,6 +55,7 @@ #ifndef KOKKOS_DONT_INCLUDE_CORE_CONFIG_H #include +#include #endif //---------------------------------------------------------------------------- diff --git a/core/src/setup/Kokkos_Setup_Cuda.hpp b/core/src/setup/Kokkos_Setup_Cuda.hpp index 0763b5b31a..c57f690ae1 100644 --- a/core/src/setup/Kokkos_Setup_Cuda.hpp +++ b/core/src/setup/Kokkos_Setup_Cuda.hpp @@ -69,40 +69,4 @@ #define KOKKOS_IMPL_HOST_FUNCTION __host__ #define KOKKOS_IMPL_DEVICE_FUNCTION __device__ -#if defined(KOKKOS_ARCH_KEPLER30) -#define KOKKOS_IMPL_ARCH_NVIDIA_GPU 30 -#elif defined(KOKKOS_ARCH_KEPLER32) -#define KOKKOS_IMPL_ARCH_NVIDIA_GPU 32 -#elif defined(KOKKOS_ARCH_KEPLER35) -#define KOKKOS_IMPL_ARCH_NVIDIA_GPU 35 -#elif defined(KOKKOS_ARCH_KEPLER37) -#define KOKKOS_IMPL_ARCH_NVIDIA_GPU 37 -#elif defined(KOKKOS_ARCH_MAXWELL50) -#define KOKKOS_IMPL_ARCH_NVIDIA_GPU 50 -#elif defined(KOKKOS_ARCH_MAXWELL52) -#define KOKKOS_IMPL_ARCH_NVIDIA_GPU 52 -#elif defined(KOKKOS_ARCH_MAXWELL53) -#define KOKKOS_IMPL_ARCH_NVIDIA_GPU 53 -#elif defined(KOKKOS_ARCH_PASCAL60) -#define KOKKOS_IMPL_ARCH_NVIDIA_GPU 60 -#elif defined(KOKKOS_ARCH_PASCAL61) -#define KOKKOS_IMPL_ARCH_NVIDIA_GPU 61 -#elif defined(KOKKOS_ARCH_VOLTA70) -#define KOKKOS_IMPL_ARCH_NVIDIA_GPU 70 -#elif defined(KOKKOS_ARCH_VOLTA72) -#define KOKKOS_IMPL_ARCH_NVIDIA_GPU 72 -#elif defined(KOKKOS_ARCH_TURING75) -#define KOKKOS_IMPL_ARCH_NVIDIA_GPU 75 -#elif defined(KOKKOS_ARCH_AMPERE80) -#define KOKKOS_IMPL_ARCH_NVIDIA_GPU 80 -#elif defined(KOKKOS_ARCH_AMPERE86) -#define KOKKOS_IMPL_ARCH_NVIDIA_GPU 86 -#elif defined(KOKKOS_ARCH_ADA89) -#define KOKKOS_IMPL_ARCH_NVIDIA_GPU 89 -#elif defined(KOKKOS_ARCH_HOPPER90) -#define KOKKOS_IMPL_ARCH_NVIDIA_GPU 90 -#else -#error NVIDIA GPU arch not recognized -#endif - #endif /* KOKKOS_CUDA_SETUP_HPP_ */