@@ -72,23 +72,21 @@ CudaVersion ToCudaVersion(llvm::VersionTuple Version) {
7272}
7373
7474namespace {
75- struct CudaArchToStringMap {
76- CudaArch arch;
75+ struct OffloadArchToStringMap {
76+ OffloadArch arch;
7777 const char *arch_name;
7878 const char *virtual_arch_name;
7979};
8080} // namespace
8181
82- #define SM2 (sm, ca ) \
83- { CudaArch::SM_##sm, " sm_" #sm, ca }
82+ #define SM2 (sm, ca ) {OffloadArch::SM_##sm, " sm_" #sm, ca}
8483#define SM (sm ) SM2(sm, " compute_" #sm)
85- #define GFX (gpu ) \
86- { CudaArch::GFX##gpu, " gfx" #gpu, " compute_amdgcn" }
87- static const CudaArchToStringMap arch_names[] = {
84+ #define GFX (gpu ) {OffloadArch::GFX##gpu, " gfx" #gpu, " compute_amdgcn" }
85+ static const OffloadArchToStringMap arch_names[] = {
8886 // clang-format off
89- {CudaArch ::UNUSED, " " , " " },
87+ {OffloadArch ::UNUSED, " " , " " },
9088 SM2 (20 , " compute_20" ), SM2 (21 , " compute_20" ), // Fermi
91- SM (30 ), {CudaArch ::SM_32_, " sm_32" , " compute_32" }, SM (35 ), SM (37 ), // Kepler
89+ SM (30 ), {OffloadArch ::SM_32_, " sm_32" , " compute_32" }, SM (35 ), SM (37 ), // Kepler
9290 SM (50 ), SM (52 ), SM (53 ), // Maxwell
9391 SM (60 ), SM (61 ), SM (62 ), // Pascal
9492 SM (70 ), SM (72 ), // Volta
@@ -112,7 +110,7 @@ static const CudaArchToStringMap arch_names[] = {
112110 GFX (803 ), // gfx803
113111 GFX (805 ), // gfx805
114112 GFX (810 ), // gfx810
115- {CudaArch ::GFX9_GENERIC, " gfx9-generic" , " compute_amdgcn" },
113+ {OffloadArch ::GFX9_GENERIC, " gfx9-generic" , " compute_amdgcn" },
116114 GFX (900 ), // gfx900
117115 GFX (902 ), // gfx902
118116 GFX (904 ), // gfx903
@@ -124,126 +122,126 @@ static const CudaArchToStringMap arch_names[] = {
124122 GFX (940 ), // gfx940
125123 GFX (941 ), // gfx941
126124 GFX (942 ), // gfx942
127- {CudaArch ::GFX10_1_GENERIC, " gfx10-1-generic" , " compute_amdgcn" },
125+ {OffloadArch ::GFX10_1_GENERIC, " gfx10-1-generic" , " compute_amdgcn" },
128126 GFX (1010 ), // gfx1010
129127 GFX (1011 ), // gfx1011
130128 GFX (1012 ), // gfx1012
131129 GFX (1013 ), // gfx1013
132- {CudaArch ::GFX10_3_GENERIC, " gfx10-3-generic" , " compute_amdgcn" },
130+ {OffloadArch ::GFX10_3_GENERIC, " gfx10-3-generic" , " compute_amdgcn" },
133131 GFX (1030 ), // gfx1030
134132 GFX (1031 ), // gfx1031
135133 GFX (1032 ), // gfx1032
136134 GFX (1033 ), // gfx1033
137135 GFX (1034 ), // gfx1034
138136 GFX (1035 ), // gfx1035
139137 GFX (1036 ), // gfx1036
140- {CudaArch ::GFX11_GENERIC, " gfx11-generic" , " compute_amdgcn" },
138+ {OffloadArch ::GFX11_GENERIC, " gfx11-generic" , " compute_amdgcn" },
141139 GFX (1100 ), // gfx1100
142140 GFX (1101 ), // gfx1101
143141 GFX (1102 ), // gfx1102
144142 GFX (1103 ), // gfx1103
145143 GFX (1150 ), // gfx1150
146144 GFX (1151 ), // gfx1151
147145 GFX (1152 ), // gfx1152
148- {CudaArch ::GFX12_GENERIC, " gfx12-generic" , " compute_amdgcn" },
146+ {OffloadArch ::GFX12_GENERIC, " gfx12-generic" , " compute_amdgcn" },
149147 GFX (1200 ), // gfx1200
150148 GFX (1201 ), // gfx1201
151- {CudaArch ::AMDGCNSPIRV, " amdgcnspirv" , " compute_amdgcn" },
152- {CudaArch ::Generic, " generic" , " " },
149+ {OffloadArch ::AMDGCNSPIRV, " amdgcnspirv" , " compute_amdgcn" },
150+ {OffloadArch ::Generic, " generic" , " " },
153151 // clang-format on
154152};
155153#undef SM
156154#undef SM2
157155#undef GFX
158156
159- const char *CudaArchToString (CudaArch A) {
157+ const char *OffloadArchToString (OffloadArch A) {
160158 auto result = std::find_if (
161159 std::begin (arch_names), std::end (arch_names),
162- [A](const CudaArchToStringMap &map) { return A == map.arch ; });
160+ [A](const OffloadArchToStringMap &map) { return A == map.arch ; });
163161 if (result == std::end (arch_names))
164162 return " unknown" ;
165163 return result->arch_name ;
166164}
167165
168- const char *CudaArchToVirtualArchString (CudaArch A) {
166+ const char *OffloadArchToVirtualArchString (OffloadArch A) {
169167 auto result = std::find_if (
170168 std::begin (arch_names), std::end (arch_names),
171- [A](const CudaArchToStringMap &map) { return A == map.arch ; });
169+ [A](const OffloadArchToStringMap &map) { return A == map.arch ; });
172170 if (result == std::end (arch_names))
173171 return " unknown" ;
174172 return result->virtual_arch_name ;
175173}
176174
177- CudaArch StringToCudaArch (llvm::StringRef S) {
175+ OffloadArch StringToOffloadArch (llvm::StringRef S) {
178176 auto result = std::find_if (
179177 std::begin (arch_names), std::end (arch_names),
180- [S](const CudaArchToStringMap &map) { return S == map.arch_name ; });
178+ [S](const OffloadArchToStringMap &map) { return S == map.arch_name ; });
181179 if (result == std::end (arch_names))
182- return CudaArch ::UNKNOWN;
180+ return OffloadArch ::UNKNOWN;
183181 return result->arch ;
184182}
185183
186- CudaVersion MinVersionForCudaArch (CudaArch A) {
187- if (A == CudaArch ::UNKNOWN)
184+ CudaVersion MinVersionForOffloadArch (OffloadArch A) {
185+ if (A == OffloadArch ::UNKNOWN)
188186 return CudaVersion::UNKNOWN;
189187
190188 // AMD GPUs do not depend on CUDA versions.
191- if (IsAMDGpuArch (A))
189+ if (IsAMDOffloadArch (A))
192190 return CudaVersion::CUDA_70;
193191
194192 switch (A) {
195- case CudaArch ::SM_20:
196- case CudaArch ::SM_21:
197- case CudaArch ::SM_30:
198- case CudaArch ::SM_32_:
199- case CudaArch ::SM_35:
200- case CudaArch ::SM_37:
201- case CudaArch ::SM_50:
202- case CudaArch ::SM_52:
203- case CudaArch ::SM_53:
193+ case OffloadArch ::SM_20:
194+ case OffloadArch ::SM_21:
195+ case OffloadArch ::SM_30:
196+ case OffloadArch ::SM_32_:
197+ case OffloadArch ::SM_35:
198+ case OffloadArch ::SM_37:
199+ case OffloadArch ::SM_50:
200+ case OffloadArch ::SM_52:
201+ case OffloadArch ::SM_53:
204202 return CudaVersion::CUDA_70;
205- case CudaArch ::SM_60:
206- case CudaArch ::SM_61:
207- case CudaArch ::SM_62:
203+ case OffloadArch ::SM_60:
204+ case OffloadArch ::SM_61:
205+ case OffloadArch ::SM_62:
208206 return CudaVersion::CUDA_80;
209- case CudaArch ::SM_70:
207+ case OffloadArch ::SM_70:
210208 return CudaVersion::CUDA_90;
211- case CudaArch ::SM_72:
209+ case OffloadArch ::SM_72:
212210 return CudaVersion::CUDA_91;
213- case CudaArch ::SM_75:
211+ case OffloadArch ::SM_75:
214212 return CudaVersion::CUDA_100;
215- case CudaArch ::SM_80:
213+ case OffloadArch ::SM_80:
216214 return CudaVersion::CUDA_110;
217- case CudaArch ::SM_86:
215+ case OffloadArch ::SM_86:
218216 return CudaVersion::CUDA_111;
219- case CudaArch ::SM_87:
217+ case OffloadArch ::SM_87:
220218 return CudaVersion::CUDA_114;
221- case CudaArch ::SM_89:
222- case CudaArch ::SM_90:
219+ case OffloadArch ::SM_89:
220+ case OffloadArch ::SM_90:
223221 return CudaVersion::CUDA_118;
224- case CudaArch ::SM_90a:
222+ case OffloadArch ::SM_90a:
225223 return CudaVersion::CUDA_120;
226224 default :
227225 llvm_unreachable (" invalid enum" );
228226 }
229227}
230228
231- CudaVersion MaxVersionForCudaArch (CudaArch A) {
229+ CudaVersion MaxVersionForOffloadArch (OffloadArch A) {
232230 // AMD GPUs do not depend on CUDA versions.
233- if (IsAMDGpuArch (A))
231+ if (IsAMDOffloadArch (A))
234232 return CudaVersion::NEW;
235233
236234 switch (A) {
237- case CudaArch ::UNKNOWN:
235+ case OffloadArch ::UNKNOWN:
238236 return CudaVersion::UNKNOWN;
239- case CudaArch ::SM_20:
240- case CudaArch ::SM_21:
237+ case OffloadArch ::SM_20:
238+ case OffloadArch ::SM_21:
241239 return CudaVersion::CUDA_80;
242- case CudaArch ::SM_30:
243- case CudaArch ::SM_32_:
240+ case OffloadArch ::SM_30:
241+ case OffloadArch ::SM_32_:
244242 return CudaVersion::CUDA_102;
245- case CudaArch ::SM_35:
246- case CudaArch ::SM_37:
243+ case OffloadArch ::SM_35:
244+ case OffloadArch ::SM_37:
247245 return CudaVersion::CUDA_118;
248246 default :
249247 return CudaVersion::NEW;
0 commit comments