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 == 12
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(__gfx1310__)
29/* RDNA 5 dGPU (TBA) */
30# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(130100)
31# elif defined(__gfx13_generic__)
32/* RDNA 5 generic target */
33# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(130000)
34
35# elif defined(__gfx1251__)
36/* RDNA 4 APU (TBA) */
37# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(120501)
38# elif defined(__gfx1250__)
39/* RDNA 4 APU (TBA) */
40# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(120500)
41# elif defined(__gfx12_5_generic__)
42/* RDNA 4.5 generic target */
43# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(120500)
44
45# elif defined(__gfx1201__)
46/* RDNA 4 dGPU (RX 9070 / 9070 XT / 9070 GRE) */
47# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(120001)
48# elif defined(__gfx1200__)
49/* RDNA 4 dGPU (RX 9060 / 9060 XT) */
50# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(120000)
51# elif defined(__gfx12_generic__)
52/* RDNA 4 generic target */
53# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(120000)
54
55# elif defined(__gfx1172__)
56/* RDNA 4m APU (TBA) */
57# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(110702)
58# elif defined(__gfx1171__)
59/* RDNA 4m APU (TBA) */
60# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(110701)
61# elif defined(__gfx1170__)
62/* RDNA 4m APU (TBA) */
63# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(110700)
64# elif defined(__gfx11_7_generic__)
65/* RDNA 4m generic target */
66# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(110700)
67
68# elif defined(__gfx1154__)
69/* RDNA 3.5 iGPU (TBA) */
70# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(110504)
71# elif defined(__gfx1153__)
72/* RDNA 3.5 iGPU (Medusa Point / Strix Halo successor) */
73# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(110503)
74# elif defined(__gfx1152__)
75/* RDNA 3.5 iGPU (Krackan Point) */
76# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(110502)
77# elif defined(__gfx1151__)
78/* RDNA 3.5 iGPU (Strix Halo) */
79# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(110501)
80# elif defined(__gfx1150__)
81/* RDNA 3.5 iGPU (Radeon 890M on Strix Point) */
82# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(110500)
83
84# elif defined(__gfx1103__)
85/* RDNA 3 APU (Radeon 780M, 760M, ROG Ally Extreme) */
86# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(110003)
87# elif defined(__gfx1102__)
88/* RDNA 3 Desktop (RX 7600 / 7600 XT) */
89# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(110002)
90# elif defined(__gfx1101__)
91/* RDNA 3 Desktop (RX 7700 / 7700 XT, Pro W7700 / V710) */
92# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(110001)
93# elif defined(__gfx1100__)
94/* RDNA 3 Desktop (RX 7900 XT, XTX, Pro W7900) */
95# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(110000)
96# elif defined(__gfx11_generic__)
97/* RDNA 3.x generic target */
98# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(110000)
99
100# elif defined(__gfx1036__)
101/* RDNA 2 APU (Radeon Graphics 128-SP iGPU) */
102# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(100306)
103# elif defined(__gfx1035__)
104/* RDNA 2 APU (Radeon 660M, 680M) */
105# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(100305)
106# elif defined(__gfx1034__)
107/* RDNA 2 Mobile (Pro W6300/W6400, RX 6400-6500) */
108# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(100304)
109# elif defined(__gfx1033__)
110/* RDNA 2 APU (Steam Deck) */
111# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(100303)
112# elif defined(__gfx1032__)
113/* RDNA 2 Desktop (RX 6600 XT, 6650 XT/S, 6700S) */
114# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(100302)
115# elif defined(__gfx1031__)
116/* RDNA 2 Desktop (RX 6700 series, 6750/6850M XT) */
117# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(100301)
118# elif defined(__gfx1030__)
119/* RDNA 2 Desktop (RX 6800 / 6900 XT, Pro W6800) */
120# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(100300)
121# elif defined(__gfx10_3_generic__)
122/* RDNA 2.x generic target */
123# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(100300)
124
125# elif defined(__gfx1013__)
126/* RDNA 1 Mobile (RX 5300M / 5500M) */
127# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(100103)
128# elif defined(__gfx1012__)
129/* RDNA 1 Desktop (RX 5500 / 5500 XT) */
130# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(100102)
131# elif defined(__gfx1011__)
132/* RDNA 1 Desktop (Pro V520) */
133# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(100101)
134# elif defined(__gfx1010__)
135/* RDNA 1 Desktop (RX 5700 / 5700 XT, Pro 5600 XT/M) */
136# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(100100)
137# elif defined(__gfx10_1_generic__)
138/* RDNA 1.x generic target */
139# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(100100)
140
141# elif defined(__gfx950__)
142/* CDNA 4 (Instinct MI350 series: MI350P/MI350X/MI355X) */
143# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(90500)
144# elif defined(__gfx942__)
145/* CDNA 3 (Instinct MI300 series: MI300/MI300A/MI300X) */
146# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(90402)
147# elif defined(__gfx941__)
148/* CDNA 2/3 (Instinct MI210) */
149# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(90401)
150# elif defined(__gfx940__)
151/* CDNA 2 (Instinct MI200) */
152# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(90400)
153# elif defined(__gfx9_4_generic__)
154/* CDNA 3.x generic target */
155# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(90400)
156
157# elif defined(__gfx90c__)
158/* CDNA 1 (Renoir APUs), c -> 12 */
159# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(90012)
160# elif defined(__gfx90b__)
161/* (If present) b -> 11 */
162# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(90011)
163# elif defined(__gfx90a__)
164/* CDNA 2 (Instinct MI250 / MI250X), a -> 10 */
165# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(90010)
166# elif defined(__gfx908__)
167/* CDNA 1 (Instinct MI100) */
168# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(90008)
169# elif defined(__gfx906__)
170/* Vega 20 (Radeon VII, Instinct MI50/60) */
171# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(90006)
172# elif defined(__gfx900__)
173/* Vega 10 (Radeon Pro Vega, Instinct MI25) */
174# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(90000)
175# elif defined(__gfx9_generic__)
176/* GCN 5 generic target (Vega 10, Vega 20, ...) */
177# define ALPAKA_AMDGPU_ARCH ALPAKA_VRRPP_TO_VERSION(90000)
178
179# else
180# error \
181 "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 error."
182# define ALPAKA_AMDGPU_ARCH ALPAKA_VERSION_NUMBER_NOT_AVAILABLE
183# endif
184
185# endif
186#endif