diff options
| author | Artem Belevich <tra@google.com> | 2017-09-07 18:14:32 +0000 |
|---|---|---|
| committer | Artem Belevich <tra@google.com> | 2017-09-07 18:14:32 +0000 |
| commit | 8af4e23d1ee7e93e9bda835be2b97550a13c0737 (patch) | |
| tree | 5510b5995366fd536e9a222f4fbc20af6b34472c /clang/lib/Basic | |
| parent | 9420ec3378b8502434846e84ae14e57652a78279 (diff) | |
| download | bcm5719-llvm-8af4e23d1ee7e93e9bda835be2b97550a13c0737.tar.gz bcm5719-llvm-8af4e23d1ee7e93e9bda835be2b97550a13c0737.zip | |
[CUDA] Added rudimentary support for CUDA-9 and sm_70.
For now CUDA-9 is not included in the list of CUDA versions clang
searches for, so the path to CUDA-9 must be explicitly passed
via --cuda-path=.
On LLVM side NVPTX added sm_70 GPU type which bumps required
PTX version to 6.0, but otherwise is equivalent to sm_62 at the moment.
Differential Revision: https://reviews.llvm.org/D37576
llvm-svn: 312734
Diffstat (limited to 'clang/lib/Basic')
| -rw-r--r-- | clang/lib/Basic/Cuda.cpp | 12 | ||||
| -rw-r--r-- | clang/lib/Basic/Targets/NVPTX.cpp | 2 |
2 files changed, 14 insertions, 0 deletions
diff --git a/clang/lib/Basic/Cuda.cpp b/clang/lib/Basic/Cuda.cpp index 3264078b98f..3a5297b0c64 100644 --- a/clang/lib/Basic/Cuda.cpp +++ b/clang/lib/Basic/Cuda.cpp @@ -16,6 +16,8 @@ const char *CudaVersionToString(CudaVersion V) { return "7.5"; case CudaVersion::CUDA_80: return "8.0"; + case CudaVersion::CUDA_90: + return "9.0"; } llvm_unreachable("invalid enum"); } @@ -48,6 +50,8 @@ const char *CudaArchToString(CudaArch A) { return "sm_61"; case CudaArch::SM_62: return "sm_62"; + case CudaArch::SM_70: + return "sm_70"; } llvm_unreachable("invalid enum"); } @@ -66,6 +70,7 @@ CudaArch StringToCudaArch(llvm::StringRef S) { .Case("sm_60", CudaArch::SM_60) .Case("sm_61", CudaArch::SM_61) .Case("sm_62", CudaArch::SM_62) + .Case("sm_70", CudaArch::SM_70) .Default(CudaArch::UNKNOWN); } @@ -95,6 +100,8 @@ const char *CudaVirtualArchToString(CudaVirtualArch A) { return "compute_61"; case CudaVirtualArch::COMPUTE_62: return "compute_62"; + case CudaVirtualArch::COMPUTE_70: + return "compute_70"; } llvm_unreachable("invalid enum"); } @@ -112,6 +119,7 @@ CudaVirtualArch StringToCudaVirtualArch(llvm::StringRef S) { .Case("compute_60", CudaVirtualArch::COMPUTE_60) .Case("compute_61", CudaVirtualArch::COMPUTE_61) .Case("compute_62", CudaVirtualArch::COMPUTE_62) + .Case("compute_70", CudaVirtualArch::COMPUTE_70) .Default(CudaVirtualArch::UNKNOWN); } @@ -142,6 +150,8 @@ CudaVirtualArch VirtualArchForCudaArch(CudaArch A) { return CudaVirtualArch::COMPUTE_61; case CudaArch::SM_62: return CudaVirtualArch::COMPUTE_62; + case CudaArch::SM_70: + return CudaVirtualArch::COMPUTE_70; } llvm_unreachable("invalid enum"); } @@ -164,6 +174,8 @@ CudaVersion MinVersionForCudaArch(CudaArch A) { case CudaArch::SM_61: case CudaArch::SM_62: return CudaVersion::CUDA_80; + case CudaArch::SM_70: + return CudaVersion::CUDA_90; } llvm_unreachable("invalid enum"); } diff --git a/clang/lib/Basic/Targets/NVPTX.cpp b/clang/lib/Basic/Targets/NVPTX.cpp index 92e21c34b8f..3889f097350 100644 --- a/clang/lib/Basic/Targets/NVPTX.cpp +++ b/clang/lib/Basic/Targets/NVPTX.cpp @@ -183,6 +183,8 @@ void NVPTXTargetInfo::getTargetDefines(const LangOptions &Opts, return "610"; case CudaArch::SM_62: return "620"; + case CudaArch::SM_70: + return "700"; } llvm_unreachable("unhandled CudaArch"); }(); |

