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