diff options
author | Artem Belevich <tra@google.com> | 2020-04-07 11:00:19 -0700 |
---|---|---|
committer | Artem Belevich <tra@google.com> | 2020-04-08 11:19:44 -0700 |
commit | a9627b7ea7e2b47488188cb1d80a23b24a8066b2 (patch) | |
tree | e539e3c8cc11324093b5ff90df38e8395b7d0d62 /clang/lib/Basic/Cuda.cpp | |
parent | 33386b20aa82c73e28b871cfa35c89a3808c9f92 (diff) | |
download | llvm-a9627b7ea7e2b47488188cb1d80a23b24a8066b2.zip llvm-a9627b7ea7e2b47488188cb1d80a23b24a8066b2.tar.gz llvm-a9627b7ea7e2b47488188cb1d80a23b24a8066b2.tar.bz2 |
[CUDA] Add partial support for recent CUDA versions.
Generate PTX using newer versions of PTX and allow using sm_80 with CUDA-11.
None of the new features of CUDA-10.2+ have been implemented yet, so using these
versions will still produce a warning.
Differential Revision: https://reviews.llvm.org/D77670
Diffstat (limited to 'clang/lib/Basic/Cuda.cpp')
-rw-r--r-- | clang/lib/Basic/Cuda.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/clang/lib/Basic/Cuda.cpp b/clang/lib/Basic/Cuda.cpp index 7337836..664f635 100644 --- a/clang/lib/Basic/Cuda.cpp +++ b/clang/lib/Basic/Cuda.cpp @@ -28,6 +28,10 @@ const char *CudaVersionToString(CudaVersion V) { return "10.0"; case CudaVersion::CUDA_101: return "10.1"; + case CudaVersion::CUDA_102: + return "10.2"; + case CudaVersion::CUDA_110: + return "11.0"; } llvm_unreachable("invalid enum"); } @@ -42,6 +46,8 @@ CudaVersion CudaStringToVersion(const llvm::Twine &S) { .Case("9.2", CudaVersion::CUDA_92) .Case("10.0", CudaVersion::CUDA_100) .Case("10.1", CudaVersion::CUDA_101) + .Case("10.2", CudaVersion::CUDA_102) + .Case("11.0", CudaVersion::CUDA_110) .Default(CudaVersion::UNKNOWN); } @@ -64,6 +70,7 @@ CudaArchToStringMap arch_names[] = { SM(60), SM(61), SM(62), // Pascal SM(70), SM(72), // Volta SM(75), // Turing + SM(80), // Ampere GFX(600), // tahiti GFX(601), // pitcairn, verde, oland,hainan GFX(700), // kaveri @@ -140,6 +147,8 @@ CudaVersion MinVersionForCudaArch(CudaArch A) { return CudaVersion::CUDA_91; case CudaArch::SM_75: return CudaVersion::CUDA_100; + case CudaArch::SM_80: + return CudaVersion::CUDA_110; default: llvm_unreachable("invalid enum"); } |