clang 22.0.0git
Cuda.h
Go to the documentation of this file.
1//===--- Cuda.h - Utilities for compiling CUDA code ------------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef LLVM_CLANG_BASIC_CUDA_H
10#define LLVM_CLANG_BASIC_CUDA_H
11
13
14namespace llvm {
15class StringRef;
16class Twine;
17class VersionTuple;
18} // namespace llvm
19
20namespace clang {
21
57const char *CudaVersionToString(CudaVersion V);
58// Input is "Major.Minor"
59CudaVersion CudaStringToVersion(const llvm::Twine &S);
60
68
69/// Get the earliest CudaVersion that supports the given OffloadArch.
70CudaVersion MinVersionForOffloadArch(OffloadArch A);
71
72/// Get the latest CudaVersion that supports the given OffloadArch.
73CudaVersion MaxVersionForOffloadArch(OffloadArch A);
74
75// Various SDK-dependent features that affect CUDA compilation
76enum class CudaFeature {
77 // CUDA-9.2+ uses a new API for launching kernels.
79 // CUDA-10.1+ needs explicit end of GPU binary registration.
81};
82
83CudaVersion ToCudaVersion(llvm::VersionTuple);
84bool CudaFeatureEnabled(llvm::VersionTuple, CudaFeature);
85bool CudaFeatureEnabled(CudaVersion, CudaFeature);
86
87} // namespace clang
88
89#endif
#define V(N, I)
The JSON file list parser is used to communicate input to InstallAPI.
CudaVersion MaxVersionForOffloadArch(OffloadArch A)
Get the latest CudaVersion that supports the given OffloadArch.
Definition Cuda.cpp:138
CUDAFunctionTarget
Definition Cuda.h:61
CudaVersion ToCudaVersion(llvm::VersionTuple)
Definition Cuda.cpp:70
CudaVersion CudaStringToVersion(const llvm::Twine &S)
Definition Cuda.cpp:62
bool CudaFeatureEnabled(llvm::VersionTuple, CudaFeature)
Definition Cuda.cpp:163
const char * CudaVersionToString(CudaVersion V)
Definition Cuda.cpp:54
CudaVersion
Definition Cuda.h:22
@ PARTIALLY_SUPPORTED
Definition Cuda.h:53
CudaFeature
Definition Cuda.h:76
@ CUDA_USES_NEW_LAUNCH
Definition Cuda.h:78
@ CUDA_USES_FATBIN_REGISTER_END
Definition Cuda.h:80
CudaVersion MinVersionForOffloadArch(OffloadArch A)
Get the earliest CudaVersion that supports the given OffloadArch.
Definition Cuda.cpp:77
Diagnostic wrappers for TextAPI types for error reporting.
Definition Dominators.h:30