alpaka
Abstraction Library for Parallel Kernel Acceleration
Loading...
Searching...
No Matches
hipConfig.hpp
Go to the documentation of this file.
1/* Copyright 2025 René Widera
2 * SPDX-License-Identifier: MPL-2.0
3 */
4
5#pragma once
6
7#include "alpaka/core/PP.hpp"
8
9// We can not use ALPAKA_LANG_HIP because this file is required by core/config.hpp where ALPAKA_LANG_HIP is defined.
10#if defined(__HIP__)
11
12# include <hip/hip_version.h>
13
14// version numbers are only defined on the device side
15# if !defined(ALPAKA_AMDGPU_ARCH) && defined(__HIP__) && defined(__HIP_DEVICE_COMPILE__) \
16 && __HIP_DEVICE_COMPILE__ == 1
17
18/* Map AMDGPU arch macro -> ALPAKA_VRRPP_TO_VERSION(wrapped code)
19 * Rules:
20 * - gfx9xy (numeric): 9xy -> 90x0y (e.g., 908->90008, 906->90006, 942->90402)
21 * - gfx10xy / gfx11xy: stxy -> st0x0y (e.g., 1036->100306, 1103->110003)
22 * - Suffix: a == 10 (90a->90010), b == 11, c == 11
23 *
24 * An overview of AMD GPU architectures can be found here:
25 * https://llvm.org/docs/AMDGPUUsage.html#processors
26 */
27
28# if defined(__gfx1251__)
29/* RDNA 4 APU variant */
30# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(120501)
31# elif defined(__gfx1250__)
32/* RDNA 4 APU (APU) */
33# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(120500)
34# elif defined(__gfx1201__)
35/* RDNA 4 dGPU (RX 9070 / RX 9070 GRE / 9070 XT) */
36# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(120001)
37# elif defined(__gfx1200__)
38/* RDNA 4 dGPU (RX 9060 / RX 9060 XT) */
39# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(120000)
40
41# elif defined(__gfx1153__)
42/* RDNA 3.5 iGPU (Medusa Point / Strix Halo successor) */
43# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(110503)
44# elif defined(__gfx1152__)
45/* RDNA 3.5 iGPU (Krackan Point) */
46# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(110502)
47# elif defined(__gfx1151__)
48/* RDNA 3.5 iGPU (Strix Halo) */
49# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(110501)
50# elif defined(__gfx1150__)
51/* RDNA 3.5 iGPU (Radeon 890M on Strix Point) */
52# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(110500)
53
54# elif defined(__gfx1103__)
55/* RDNA 3 APU (Radeon 780M, 760M, ROG Ally Extreme) */
56# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(110003)
57# elif defined(__gfx1102__)
58/* RDNA 3 Desktop (RX 7600 / 7600 XT) */
59# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(110002)
60# elif defined(__gfx1101__)
61/* RDNA 3 Desktop (RX 7700 / 7700 XT, Pro W7700 / V710) */
62# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(110001)
63# elif defined(__gfx1100__)
64/* RDNA 3 Desktop (RX 7900 XT, XTX, Pro W7900) */
65# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(110000)
66
67# elif defined(__gfx1036__)
68/* RDNA 2 APU (Radeon Graphics 128-SP iGPU) */
69# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(100306)
70# elif defined(__gfx1035__)
71/* RDNA 2 APU (Radeon 660M, 680M) */
72# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(100305)
73# elif defined(__gfx1034__)
74/* RDNA 2 Mobile (Pro W6300/W6400, RX 6400-6500) */
75# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(100304)
76# elif defined(__gfx1033__)
77/* RDNA 2 APU (Steam Deck) */
78# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(100303)
79# elif defined(__gfx1032__)
80/* RDNA 2 Desktop (RX 6600 XT, 6650 XT/S, 6700S) */
81# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(100302)
82# elif defined(__gfx1031__)
83/* RDNA 2 Desktop (RX 6700 series, 6750/6850M XT) */
84# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(100301)
85# elif defined(__gfx1030__)
86/* RDNA 2 Desktop (RX 6800 / 6900 XT, Pro W6800) */
87# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(100300)
88
89# elif defined(__gfx1013__)
90/* RDNA 1 Mobile (RX 5300M / 5500M) */
91# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(100103)
92# elif defined(__gfx1012__)
93/* RDNA 1 Desktop (RX 5500 / 5500 XT) */
94# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(100102)
95# elif defined(__gfx1011__)
96/* RDNA 1 Desktop (Pro V520) */
97# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(100101)
98# elif defined(__gfx1010__)
99/* RDNA 1 Desktop (RX 5700 / 5700 XT, Pro 5600 XT/M) */
100# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(100100)
101
102# elif defined(__gfx942__)
103/* CDNA 3 (Instinct MI300 series: MI300/MI300A/MI300X) */
104# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(90402)
105# elif defined(__gfx941__)
106/* CDNA 2/3 (Instinct MI210) */
107# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(90401)
108# elif defined(__gfx940__)
109/* CDNA 2 (Instinct MI200) */
110# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(90400)
111
112# elif defined(__gfx90c__)
113/* CDNA 1 (Renoir APUs), c -> 12 */
114# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(90012)
115# elif defined(__gfx90b__)
116/* (If present) b -> 11 */
117# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(90011)
118# elif defined(__gfx90a__)
119/* CDNA 2 (Instinct MI250 / MI250X), a -> 10 */
120# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(90010)
121# elif defined(__gfx908__)
122/* CDNA 1 (Instinct MI100) */
123# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(90008)
124# elif defined(__gfx906__)
125/* Vega 20 (Radeon VII, Instinct MI50/60) */
126# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(90006)
127
128# else
129# warning \
130 "Unknown AMDGPU architecture, please define __gfxXXX__ macro for your target. Until alpaka is updated you can define the macro ALPAKA_AMDGPU_ARCH to avoid this warning."
131# define ALPAKA_AMDGPU_ARCH ALPAKA_VERSION_NUMBER_UNKNOWN
132# endif
133
134# endif
135#endif