Skip to content

Commit 2f956a3

Browse files
authored
[CUDA] Mark CUDA-12.4 as supported and introduce ptx 8.4. (llvm#91516)
1 parent db29f20 commit 2f956a3

File tree

6 files changed

+14
-5
lines changed

6 files changed

+14
-5
lines changed

clang/docs/ReleaseNotes.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -798,6 +798,7 @@ CUDA/HIP Language Changes
798798

799799
CUDA Support
800800
^^^^^^^^^^^^
801+
- Clang now supports CUDA SDK up to 12.4
801802

802803
AIX Support
803804
^^^^^^^^^^^

clang/include/clang/Basic/BuiltinsNVPTX.def

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,9 @@
6161
#pragma push_macro("PTX81")
6262
#pragma push_macro("PTX82")
6363
#pragma push_macro("PTX83")
64-
#define PTX83 "ptx83"
64+
#pragma push_macro("PTX84")
65+
#define PTX84 "ptx84"
66+
#define PTX83 "ptx83|" PTX84
6567
#define PTX82 "ptx82|" PTX83
6668
#define PTX81 "ptx81|" PTX82
6769
#define PTX80 "ptx80|" PTX81
@@ -1091,3 +1093,4 @@ TARGET_BUILTIN(__nvvm_getctarank_shared_cluster, "iv*3", "", AND(SM_90,PTX78))
10911093
#pragma pop_macro("PTX81")
10921094
#pragma pop_macro("PTX82")
10931095
#pragma pop_macro("PTX83")
1096+
#pragma pop_macro("PTX84")

clang/include/clang/Basic/Cuda.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,10 @@ enum class CudaVersion {
4141
CUDA_121,
4242
CUDA_122,
4343
CUDA_123,
44+
CUDA_124,
4445
FULLY_SUPPORTED = CUDA_123,
4546
PARTIALLY_SUPPORTED =
46-
CUDA_123, // Partially supported. Proceed with a warning.
47+
CUDA_124, // Partially supported. Proceed with a warning.
4748
NEW = 10000, // Too new. Issue a warning, but allow using it.
4849
};
4950
const char *CudaVersionToString(CudaVersion V);

clang/lib/Basic/Cuda.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ struct CudaVersionMapEntry {
1414
};
1515
#define CUDA_ENTRY(major, minor) \
1616
{ \
17-
#major "." #minor, CudaVersion::CUDA_##major##minor, \
17+
#major "." #minor, CudaVersion::CUDA_##major##minor, \
1818
llvm::VersionTuple(major, minor) \
1919
}
2020

@@ -41,6 +41,7 @@ static const CudaVersionMapEntry CudaNameVersionMap[] = {
4141
CUDA_ENTRY(12, 1),
4242
CUDA_ENTRY(12, 2),
4343
CUDA_ENTRY(12, 3),
44+
CUDA_ENTRY(12, 4),
4445
{"", CudaVersion::NEW, llvm::VersionTuple(std::numeric_limits<int>::max())},
4546
{"unknown", CudaVersion::UNKNOWN, {}} // End of list tombstone.
4647
};
@@ -241,7 +242,7 @@ CudaVersion MaxVersionForCudaArch(CudaArch A) {
241242
}
242243
}
243244

244-
bool CudaFeatureEnabled(llvm::VersionTuple Version, CudaFeature Feature) {
245+
bool CudaFeatureEnabled(llvm::VersionTuple Version, CudaFeature Feature) {
245246
return CudaFeatureEnabled(ToCudaVersion(Version), Feature);
246247
}
247248

clang/lib/Driver/ToolChains/Cuda.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,8 @@ CudaVersion getCudaVersion(uint32_t raw_version) {
8282
return CudaVersion::CUDA_122;
8383
if (raw_version < 12040)
8484
return CudaVersion::CUDA_123;
85+
if (raw_version < 12050)
86+
return CudaVersion::CUDA_124;
8587
return CudaVersion::NEW;
8688
}
8789

@@ -688,6 +690,7 @@ void NVPTX::getNVPTXTargetFeatures(const Driver &D, const llvm::Triple &Triple,
688690
case CudaVersion::CUDA_##CUDA_VER: \
689691
PtxFeature = "+ptx" #PTX_VER; \
690692
break;
693+
CASE_CUDA_VERSION(124, 84);
691694
CASE_CUDA_VERSION(123, 83);
692695
CASE_CUDA_VERSION(122, 82);
693696
CASE_CUDA_VERSION(121, 81);

llvm/lib/Target/NVPTX/NVPTX.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ foreach sm = [20, 21, 30, 32, 35, 37, 50, 52, 53,
4141
def SM90a: FeatureSM<"90a", 901>;
4242

4343
foreach version = [32, 40, 41, 42, 43, 50, 60, 61, 62, 63, 64, 65,
44-
70, 71, 72, 73, 74, 75, 76, 77, 78, 80, 81, 82, 83] in
44+
70, 71, 72, 73, 74, 75, 76, 77, 78, 80, 81, 82, 83, 84] in
4545
def PTX#version: FeaturePTX<version>;
4646

4747
//===----------------------------------------------------------------------===//

0 commit comments

Comments
 (0)