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
56const char *CudaVersionToString(CudaVersion V);
57// Input is "Major.Minor"
58CudaVersion CudaStringToVersion(const llvm::Twine &S);
59
67
68/// Get the earliest CudaVersion that supports the given OffloadArch.
69CudaVersion MinVersionForOffloadArch(OffloadArch A);
70
71/// Get the latest CudaVersion that supports the given OffloadArch.
72CudaVersion MaxVersionForOffloadArch(OffloadArch A);
73
74// Various SDK-dependent features that affect CUDA compilation
75enum class CudaFeature {
76 // CUDA-9.2+ uses a new API for launching kernels.
78 // CUDA-10.1+ needs explicit end of GPU binary registration.
80};
81
82CudaVersion ToCudaVersion(llvm::VersionTuple);
83bool CudaFeatureEnabled(llvm::VersionTuple, CudaFeature);
84bool CudaFeatureEnabled(CudaVersion, CudaFeature);
85
86} // namespace clang
87
88#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:133
CUDAFunctionTarget
Definition Cuda.h:60
CudaVersion ToCudaVersion(llvm::VersionTuple)
Definition Cuda.cpp:69
CudaVersion CudaStringToVersion(const llvm::Twine &S)
Definition Cuda.cpp:61
bool CudaFeatureEnabled(llvm::VersionTuple, CudaFeature)
Definition Cuda.cpp:155
const char * CudaVersionToString(CudaVersion V)
Definition Cuda.cpp:53
CudaVersion
Definition Cuda.h:22
@ PARTIALLY_SUPPORTED
Definition Cuda.h:52
CudaFeature
Definition Cuda.h:75
@ CUDA_USES_NEW_LAUNCH
Definition Cuda.h:77
@ CUDA_USES_FATBIN_REGISTER_END
Definition Cuda.h:79
CudaVersion MinVersionForOffloadArch(OffloadArch A)
Get the earliest CudaVersion that supports the given OffloadArch.
Definition Cuda.cpp:76
Diagnostic wrappers for TextAPI types for error reporting.
Definition Dominators.h:30