• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright © 2017 Advanced Micro Devices, Inc.
3  *
4  * SPDX-License-Identifier: MIT
5  */
6 
7 #include "amd_family.h"
8 #include "addrlib/src/amdgpu_asic_addr.h"
9 #include "util/macros.h"
10 
ac_get_family_name(enum radeon_family family)11 const char *ac_get_family_name(enum radeon_family family)
12 {
13    switch (family) {
14    case CHIP_TAHITI:
15       return "TAHITI";
16    case CHIP_PITCAIRN:
17       return "PITCAIRN";
18    case CHIP_VERDE:
19       return "VERDE";
20    case CHIP_OLAND:
21       return "OLAND";
22    case CHIP_HAINAN:
23       return "HAINAN";
24    case CHIP_BONAIRE:
25       return "BONAIRE";
26    case CHIP_KABINI:
27       return "KABINI";
28    case CHIP_KAVERI:
29       return "KAVERI";
30    case CHIP_HAWAII:
31       return "HAWAII";
32    case CHIP_TONGA:
33       return "TONGA";
34    case CHIP_ICELAND:
35       return "ICELAND";
36    case CHIP_CARRIZO:
37       return "CARRIZO";
38    case CHIP_FIJI:
39       return "FIJI";
40    case CHIP_STONEY:
41       return "STONEY";
42    case CHIP_POLARIS10:
43       return "POLARIS10";
44    case CHIP_POLARIS11:
45       return "POLARIS11";
46    case CHIP_POLARIS12:
47       return "POLARIS12";
48    case CHIP_VEGAM:
49       return "VEGAM";
50    case CHIP_VEGA10:
51       return "VEGA10";
52    case CHIP_RAVEN:
53       return "RAVEN";
54    case CHIP_VEGA12:
55       return "VEGA12";
56    case CHIP_VEGA20:
57       return "VEGA20";
58    case CHIP_RAVEN2:
59       return "RAVEN2";
60    case CHIP_RENOIR:
61       return "RENOIR";
62    case CHIP_MI100:
63       return "MI100";
64    case CHIP_MI200:
65       return "MI200";
66    case CHIP_GFX940:
67       return "GFX940";
68    case CHIP_NAVI10:
69       return "NAVI10";
70    case CHIP_NAVI12:
71       return "NAVI12";
72    case CHIP_NAVI14:
73       return "NAVI14";
74    case CHIP_NAVI21:
75       return "NAVI21";
76    case CHIP_NAVI22:
77       return "NAVI22";
78    case CHIP_NAVI23:
79       return "NAVI23";
80    case CHIP_VANGOGH:
81       return "VANGOGH";
82    case CHIP_NAVI24:
83       return "NAVI24";
84    case CHIP_REMBRANDT:
85       return "REMBRANDT";
86    case CHIP_RAPHAEL_MENDOCINO:
87       return "RAPHAEL_MENDOCINO";
88    case CHIP_NAVI31:
89       return "NAVI31";
90    case CHIP_NAVI32:
91       return "NAVI32";
92    case CHIP_NAVI33:
93       return "NAVI33";
94    case CHIP_GFX1103_R1:
95       return "GFX1103_R1";
96    case CHIP_GFX1103_R2:
97       return "GFX1103_R2";
98    case CHIP_GFX1150:
99       return "GFX1150";
100    default:
101       unreachable("Unknown GPU family");
102    }
103 }
104 
ac_get_gfx_level(enum radeon_family family)105 enum amd_gfx_level ac_get_gfx_level(enum radeon_family family)
106 {
107    if (family >= CHIP_GFX1150)
108       return GFX11_5;
109    if (family >= CHIP_NAVI31)
110       return GFX11;
111    if (family >= CHIP_NAVI21)
112       return GFX10_3;
113    if (family >= CHIP_NAVI10)
114       return GFX10;
115    if (family >= CHIP_VEGA10)
116       return GFX9;
117    if (family >= CHIP_TONGA)
118       return GFX8;
119    if (family >= CHIP_BONAIRE)
120       return GFX7;
121 
122    return GFX6;
123 }
124 
ac_get_family_id(enum radeon_family family)125 unsigned ac_get_family_id(enum radeon_family family)
126 {
127    if (family >= CHIP_GFX1150)
128       return FAMILY_GFX1150;
129    if (family >= CHIP_NAVI31)
130       return FAMILY_NV3;
131    if (family >= CHIP_NAVI21)
132       return FAMILY_NV;
133    if (family >= CHIP_NAVI10)
134       return FAMILY_NV;
135    if (family >= CHIP_VEGA10)
136       return FAMILY_AI;
137    if (family >= CHIP_TONGA)
138       return FAMILY_VI;
139    if (family >= CHIP_BONAIRE)
140       return FAMILY_CI;
141 
142    return FAMILY_SI;
143 }
144 
ac_get_llvm_processor_name(enum radeon_family family)145 const char *ac_get_llvm_processor_name(enum radeon_family family)
146 {
147    switch (family) {
148    case CHIP_TAHITI:
149       return "tahiti";
150    case CHIP_PITCAIRN:
151       return "pitcairn";
152    case CHIP_VERDE:
153       return "verde";
154    case CHIP_OLAND:
155       return "oland";
156    case CHIP_HAINAN:
157       return "hainan";
158    case CHIP_BONAIRE:
159       return "bonaire";
160    case CHIP_KABINI:
161       return "kabini";
162    case CHIP_KAVERI:
163       return "kaveri";
164    case CHIP_HAWAII:
165       return "hawaii";
166    case CHIP_TONGA:
167       return "tonga";
168    case CHIP_ICELAND:
169       return "iceland";
170    case CHIP_CARRIZO:
171       return "carrizo";
172    case CHIP_FIJI:
173       return "fiji";
174    case CHIP_STONEY:
175       return "stoney";
176    case CHIP_POLARIS10:
177       return "polaris10";
178    case CHIP_POLARIS11:
179    case CHIP_POLARIS12:
180    case CHIP_VEGAM:
181       return "polaris11";
182    case CHIP_VEGA10:
183       return "gfx900";
184    case CHIP_RAVEN:
185       return "gfx902";
186    case CHIP_VEGA12:
187       return "gfx904";
188    case CHIP_VEGA20:
189       return "gfx906";
190    case CHIP_RAVEN2:
191    case CHIP_RENOIR:
192       return "gfx909";
193    case CHIP_MI100:
194       return "gfx908";
195    case CHIP_MI200:
196       return "gfx90a";
197    case CHIP_GFX940:
198       return "gfx940";
199    case CHIP_NAVI10:
200       return "gfx1010";
201    case CHIP_NAVI12:
202       return "gfx1011";
203    case CHIP_NAVI14:
204       return "gfx1012";
205    case CHIP_NAVI21:
206       return "gfx1030";
207    case CHIP_NAVI22:
208       return "gfx1031";
209    case CHIP_NAVI23:
210       return "gfx1032";
211    case CHIP_VANGOGH:
212       return "gfx1033";
213    case CHIP_NAVI24:
214       return "gfx1034";
215    case CHIP_REMBRANDT:
216       return "gfx1035";
217    case CHIP_RAPHAEL_MENDOCINO:
218       return "gfx1036";
219    case CHIP_NAVI31:
220       return "gfx1100";
221    case CHIP_NAVI32:
222       return "gfx1101";
223    case CHIP_NAVI33:
224       return "gfx1102";
225    case CHIP_GFX1103_R1:
226    case CHIP_GFX1103_R2:
227       return "gfx1103";
228    case CHIP_GFX1150:
229       return "gfx1150";
230    default:
231       return "";
232    }
233 }
234