Skip to content

Commit aa37f9f

Browse files
committed
[CUDA][NFC] CudaArch to OffloadArch rename
Rename CudaArch to OffloadArch to better reflect its content and the use. Apply a similar rename to helpers handling the enum.
1 parent 34fe6da commit aa37f9f

File tree

11 files changed

+297
-298
lines changed

11 files changed

+297
-298
lines changed

clang/include/clang/Basic/Cuda.h

+14-14
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ const char *CudaVersionToString(CudaVersion V);
5252
// Input is "Major.Minor"
5353
CudaVersion CudaStringToVersion(const llvm::Twine &S);
5454

55-
enum class CudaArch {
55+
enum class OffloadArch {
5656
UNUSED,
5757
UNKNOWN,
5858
// TODO: Deprecate and remove GPU architectures older than sm_52.
@@ -133,8 +133,8 @@ enum class CudaArch {
133133
// public one.
134134
LAST,
135135

136-
CudaDefault = CudaArch::SM_52,
137-
HIPDefault = CudaArch::GFX906,
136+
CudaDefault = OffloadArch::SM_52,
137+
HIPDefault = OffloadArch::GFX906,
138138
};
139139

140140
enum class CUDAFunctionTarget {
@@ -145,26 +145,26 @@ enum class CUDAFunctionTarget {
145145
InvalidTarget
146146
};
147147

148-
static inline bool IsNVIDIAGpuArch(CudaArch A) {
149-
return A >= CudaArch::SM_20 && A < CudaArch::GFX600;
148+
static inline bool IsNVIDIAOffloadArch(OffloadArch A) {
149+
return A >= OffloadArch::SM_20 && A < OffloadArch::GFX600;
150150
}
151151

152-
static inline bool IsAMDGpuArch(CudaArch A) {
152+
static inline bool IsAMDOffloadArch(OffloadArch A) {
153153
// Generic processor model is for testing only.
154-
return A >= CudaArch::GFX600 && A < CudaArch::Generic;
154+
return A >= OffloadArch::GFX600 && A < OffloadArch::Generic;
155155
}
156156

157-
const char *CudaArchToString(CudaArch A);
158-
const char *CudaArchToVirtualArchString(CudaArch A);
157+
const char *OffloadArchToString(OffloadArch A);
158+
const char *OffloadArchToVirtualArchString(OffloadArch A);
159159

160160
// The input should have the form "sm_20".
161-
CudaArch StringToCudaArch(llvm::StringRef S);
161+
OffloadArch StringToOffloadArch(llvm::StringRef S);
162162

163-
/// Get the earliest CudaVersion that supports the given CudaArch.
164-
CudaVersion MinVersionForCudaArch(CudaArch A);
163+
/// Get the earliest CudaVersion that supports the given OffloadArch.
164+
CudaVersion MinVersionForOffloadArch(OffloadArch A);
165165

166-
/// Get the latest CudaVersion that supports the given CudaArch.
167-
CudaVersion MaxVersionForCudaArch(CudaArch A);
166+
/// Get the latest CudaVersion that supports the given OffloadArch.
167+
CudaVersion MaxVersionForOffloadArch(OffloadArch A);
168168

169169
// Various SDK-dependent features that affect CUDA compilation
170170
enum class CudaFeature {

clang/lib/Basic/Cuda.cpp

+54-56
Original file line numberDiff line numberDiff line change
@@ -72,23 +72,21 @@ CudaVersion ToCudaVersion(llvm::VersionTuple Version) {
7272
}
7373

7474
namespace {
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

Comments
 (0)