Shamrock
2025.10.0
Astrophysical Code
Loading...
Searching...
No Matches
shambackends
include
shambackends
intrisics
base_select.hpp
Go to the documentation of this file.
1
// -------------------------------------------------------//
2
//
3
// SHAMROCK code for hydrodynamics
4
// Copyright (c) 2021-2026 Timothée David--Cléris <tim.shamrock@proton.me>
5
// SPDX-License-Identifier: CeCILL Free Software License Agreement v2.1
6
// Shamrock is licensed under the CeCILL 2.1 License, see LICENSE for more information
7
//
8
// -------------------------------------------------------//
9
10
#pragma once
11
18
#include <
shambackends/sycl.hpp
>
19
20
#if defined(__ACPP__)
21
22
#ifndef ACPP_LIBKERNEL_IS_DEVICE_PASS_SSCP
23
#define ACPP_LIBKERNEL_IS_DEVICE_PASS_SSCP 0
24
#endif
25
26
#ifndef ACPP_LIBKERNEL_IS_DEVICE_PASS_HOST
27
#define ACPP_LIBKERNEL_IS_DEVICE_PASS_HOST 0
28
#endif
29
30
#if defined(__SYCL_DEVICE_ONLY__) && defined(__NVPTX__)
31
#define _IS_ACPP_SMCP_CUDA
32
#elif defined(__SYCL_DEVICE_ONLY__) && defined(__AMDGCN__)
33
#define _IS_ACPP_SMCP_HIP
34
#if __AMDGCN_WAVEFRONT_SIZE == 64
35
#define _IS_ACPP_SMCP_HIP_WAVEFRONT64
36
#elif __AMDGCN_WAVEFRONT_SIZE == 32
37
#define _IS_ACPP_SMCP_HIP_WAVEFRONT32
38
#endif
39
#elif defined(__SYCL_DEVICE_ONLY__) && (defined(__SPIR__) || defined(__SPIRV__))
40
#define _IS_ACPP_SMCP_INTEL_SPIRV
41
#elif ACPP_LIBKERNEL_IS_DEVICE_PASS_SSCP
42
#define _IS_ACPP_SSCP
43
#elif ACPP_LIBKERNEL_IS_DEVICE_PASS_HOST && !defined(DOXYGEN)
44
#define _IS_ACPP_SMCP_HOST
45
#endif
46
47
#endif
48
49
#if defined(SYCL_IMPLEMENTATION_ONEAPI) && defined(__SYCL_DEVICE_ONLY__) && defined(__NVPTX__)
50
#define _IS_ONEAPI_SMCP_CUDA
51
#elif defined(SYCL_IMPLEMENTATION_ONEAPI) && defined(__SYCL_DEVICE_ONLY__) && defined(__AMDGCN__)
52
#define _IS_ONEAPI_SMCP_HIP
53
#elif defined(SYCL_IMPLEMENTATION_ONEAPI) && defined(__SYCL_DEVICE_ONLY__) \
54
&& (defined(__SPIR__) || defined(__SPIRV__))
55
#define _IS_ONEAPI_SMCP_INTEL_SPIRV
56
#endif
57
58
#if defined(__ACPP__)
59
#define DEVICE_ATTRIBUTE_ON_ACPP __device__
60
#else
61
#define DEVICE_ATTRIBUTE_ON_ACPP
62
#endif
sycl.hpp
Generated on Wed May 13 2026 13:21:48 for Shamrock by
1.9.8