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)11const 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)105enum 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)125unsigned 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)145const 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