aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Basic/Cuda.cpp
diff options
context:
space:
mode:
authorArtem Belevich <tra@google.com>2021-08-17 12:32:05 -0700
committerArtem Belevich <tra@google.com>2021-08-23 13:24:48 -0700
commit3db8e486e560183f064e31a228aada52fdeac5d6 (patch)
tree848bd92d4bda0e5b87846f789160437a65ff662c /clang/lib/Basic/Cuda.cpp
parent49d982d8cbbbb6e01b6f8e4f173ed6325beab08b (diff)
downloadllvm-3db8e486e560183f064e31a228aada52fdeac5d6.zip
llvm-3db8e486e560183f064e31a228aada52fdeac5d6.tar.gz
llvm-3db8e486e560183f064e31a228aada52fdeac5d6.tar.bz2
[CUDA] Improve CUDA version detection and diagnostics.
Always use cuda.h to detect CUDA version. It's a more universal approach compared to version.txt which is no longer present in recent CUDA versions. Split the 'unknown CUDA version' warning in two: * when detected CUDA version is partially supported by clang. It's expected to work in general, at the feature parity with the latest supported CUDA version. and may be missing support for the new features/instructions/GPU variants. Clang will issue a warning. * when detected version is new. Recent CUDA versions have been working with clang reasonably well, and will likely to work similarly to the partially supported ones above. Or it may not work at all. Clang will issue a warning and proceed as if the latest known CUDA version was detected. Differential Revision: https://reviews.llvm.org/D108247
Diffstat (limited to 'clang/lib/Basic/Cuda.cpp')
-rw-r--r--clang/lib/Basic/Cuda.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/clang/lib/Basic/Cuda.cpp b/clang/lib/Basic/Cuda.cpp
index 2e34da7..f5ee1fb 100644
--- a/clang/lib/Basic/Cuda.cpp
+++ b/clang/lib/Basic/Cuda.cpp
@@ -40,6 +40,8 @@ const char *CudaVersionToString(CudaVersion V) {
return "11.3";
case CudaVersion::CUDA_114:
return "11.4";
+ case CudaVersion::NEW:
+ return "";
}
llvm_unreachable("invalid enum");
}
@@ -192,7 +194,7 @@ CudaVersion MinVersionForCudaArch(CudaArch A) {
CudaVersion MaxVersionForCudaArch(CudaArch A) {
// AMD GPUs do not depend on CUDA versions.
if (IsAMDGpuArch(A))
- return CudaVersion::LATEST;
+ return CudaVersion::NEW;
switch (A) {
case CudaArch::UNKNOWN:
@@ -203,7 +205,7 @@ CudaVersion MaxVersionForCudaArch(CudaArch A) {
case CudaArch::SM_30:
return CudaVersion::CUDA_110;
default:
- return CudaVersion::LATEST;
+ return CudaVersion::NEW;
}
}