File size: 6,442 Bytes
0dc1b04 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 | //===----------------------------------------------------------------------===//
//
// Part of libcu++, the C++ Standard Library for your entire system,
// under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
#ifndef __cuda_std__
#define __cuda_std__
#ifdef __CUDACC__
#if defined(__clang__)
#include <cuda_fp16.h>
#define __fp16 __half
#endif
#if defined(__FLT16_MANT_DIG__)
#include <cuda_fp16.h>
#define _Float16 __half
#endif
#define _LIBCUDACXX_CUDACC_VER_MAJOR __CUDACC_VER_MAJOR__
#define _LIBCUDACXX_CUDACC_VER_MINOR __CUDACC_VER_MINOR__
#define _LIBCUDACXX_CUDACC_VER_BUILD __CUDACC_VER_BUILD__
#define _LIBCUDACXX_CUDACC_VER \
_LIBCUDACXX_CUDACC_VER_MAJOR * 100000 + _LIBCUDACXX_CUDACC_VER_MINOR * 1000 + \
_LIBCUDACXX_CUDACC_VER_BUILD
#define _LIBCUDACXX_HAS_NO_LONG_DOUBLE
#else
#ifndef __host__
#define __host__
#endif
#ifndef __device__
#define __device__
#endif
#ifndef __forceinline__
#define __forceinline__
#endif
#endif
#ifdef _MSC_VER
#undef __cpp_lib_transparent_operators
#endif
// request these outcomes
#define _LIBCUDACXX_NO_AUTO_LINK
#ifndef _LIBCUDACXX_NO_EXCEPTIONS
#define _LIBCUDACXX_NO_EXCEPTIONS
#endif
#ifndef _LIBCUDACXX_NO_RTTI
#define _LIBCUDACXX_NO_RTTI
#endif
// Disable the nodebug type
#ifndef _LIBCUDACXX_NODEBUG_TYPE
#define _LIBCUDACXX_NODEBUG_TYPE
#endif
#if defined(__CUDACC_RTC__)
# if defined(__CUDACC_RTC_INT128__)
# define __SIZEOF_INT128__ 16 // This macro is required in order to use int128 within the library
# else
# define _LIBCUDACXX_HAS_NO_INT128
# endif
#endif
#if defined(_LIBCUDACXX_COMPILER_MSVC) || (defined(_LIBCUDACXX_CUDACC_VER) && (_LIBCUDACXX_CUDACC_VER < 1105000))
# define _LIBCUDACXX_HAS_NO_INT128
#endif
#ifndef _LIBCUDACXX_ASSERT
# define _LIBCUDACXX_ASSERT(x, m) ((void)0)
#endif
#define _LIBCUDACXX_FREESTANDING
#define _LIBCUDACXX_HAS_NO_WCHAR_H
#define _LIBCUDACXX_HAS_NO_THREAD_CONTENTION_TABLE
#define _LIBCUDACXX_HAS_NO_PLATFORM_WAIT
#define _LIBCUDACXX_HAS_NO_MONOTONIC_CLOCK
#define _LIBCUDACXX_HAS_NO_TREE_BARRIER
#ifdef __CUDACC_RTC__
#define __ELF__
#define _LIBCUDACXX_DISABLE_PRAGMA_GCC_SYSTEM_HEADER
#define _LIBCUDACXX_HAS_THREAD_API_EXTERNAL
#define __alignof(x) alignof(x)
#define _LIBCUDACXX_LITTLE_ENDIAN
#define _LIBCUDACXX_DISABLE_VISIBILITY_ANNOTATIONS
#define _LIBCUDACXX_HAS_NO_PRAGMA_PUSH_POP_MACRO
#endif
#define _LIBCUDACXX_HAS_EXTERNAL_ATOMIC_IMP
#define _LIBCUDACXX_ATOMIC_ALWAYS_LOCK_FREE(size, ptr) (size <= 8)
#define _LIBCUDACXX_HAS_NO_CXX20_CHRONO_LITERALS
#define _LIBCUDACXX_SYS_CLOCK_DURATION nanoseconds
#if defined(__PGIC__) && defined(__linux__)
#define __ELF__
#endif
#define _LIBCUDACXX_ENABLE_BIT_BACKPORT
#define _LIBCUDACXX_HAS_CUDA_ATOMIC_EXT
#include "libcxx/include/__config"
#if defined(__CUDA_ARCH__)
#define _LIBCUDACXX_HAS_THREAD_API_CUDA
#elif defined(_LIBCUDACXX_COMPILER_MSVC)
#define _LIBCUDACXX_HAS_THREAD_API_WIN32
#endif
#if _GNUC_VER <= 409
#define _LIBCUDACXX_CUDA_HAS_NO_HOST_STD_ATOMIC_INIT
#endif
// force this outcome
#undef _LIBCUDACXX_EXECUTION_SPACE_SPECIFIER
#define _LIBCUDACXX_EXECUTION_SPACE_SPECIFIER __host__ __device__
#undef _LIBCUDACXX_ATOMIC_FLAG_TYPE
#define _LIBCUDACXX_ATOMIC_FLAG_TYPE int
#undef _LIBCUDACXX_INLINE_VISIBILITY
#define _LIBCUDACXX_INLINE_VISIBILITY _LIBCUDACXX_EXECUTION_SPACE_SPECIFIER
#undef _LIBCUDACXX_FUNC_VIS
#define _LIBCUDACXX_FUNC_VIS _LIBCUDACXX_INLINE_VISIBILITY
#undef _LIBCUDACXX_TYPE_VIS
#define _LIBCUDACXX_TYPE_VIS
#ifndef _LIBCUDACXX_ABI_UNSTABLE
# define _LIBCUDACXX_ABI_UNSTABLE
#endif
#define _LIBCUDACXX_CUDA_API_VERSION 1008001
#define _LIBCUDACXX_CUDA_API_VERSION_MAJOR \
(_LIBCUDACXX_CUDA_API_VERSION / 1000000)
#define _LIBCUDACXX_CUDA_API_VERSION_MINOR \
(_LIBCUDACXX_CUDA_API_VERSION / 1000 % 1000)
#define _LIBCUDACXX_CUDA_API_VERSION_PATCH \
(_LIBCUDACXX_CUDA_API_VERSION % 1000)
#ifndef _LIBCUDACXX_CUDA_ABI_VERSION_LATEST
# define _LIBCUDACXX_CUDA_ABI_VERSION_LATEST 4
#endif
#ifdef _LIBCUDACXX_CUDA_ABI_VERSION
# if _LIBCUDACXX_CUDA_ABI_VERSION != 2 && _LIBCUDACXX_CUDA_ABI_VERSION != 3 && _LIBCUDACXX_CUDA_ABI_VERSION != 4
# error Unsupported libcu++ ABI version requested. Please define _LIBCUDACXX_CUDA_ABI_VERSION to either 2 or 3.
# endif
#else
# define _LIBCUDACXX_CUDA_ABI_VERSION _LIBCUDACXX_CUDA_ABI_VERSION_LATEST
#endif
#ifdef _LIBCUDACXX_PIPELINE_ASSUMED_ABI_VERSION
# if _LIBCUDACXX_PIPELINE_ASSUMED_ABI_VERSION != _LIBCUDACXX_CUDA_ABI_VERSION
# error cuda_pipeline.h has assumed a different libcu++ ABI version than provided by this library. To fix this, please include a libcu++ header before including cuda_pipeline.h, or upgrade to a version of the toolkit this version of libcu++ shipped in.
# endif
#endif
#ifndef _LIBCUDACXX_CUDA_ABI_NAMESPACE
# define _LIBCUDACXX_CUDA_ABI_NAMESPACE _LIBCUDACXX_CONCAT(__,_LIBCUDACXX_CUDA_ABI_VERSION)
#endif
#ifndef _LIBCUDACXX_BEGIN_NAMESPACE_CUDA
# define _LIBCUDACXX_BEGIN_NAMESPACE_CUDA \
namespace cuda { inline namespace _LIBCUDACXX_CUDA_ABI_NAMESPACE {
#endif
#ifndef _LIBCUDACXX_END_NAMESPACE_CUDA
# define _LIBCUDACXX_END_NAMESPACE_CUDA } }
#endif
#ifndef _LIBCUDACXX_BEGIN_NAMESPACE_CUDA_DEVICE
# define _LIBCUDACXX_BEGIN_NAMESPACE_CUDA_DEVICE \
namespace cuda { namespace device { inline namespace _LIBCUDACXX_CUDA_ABI_NAMESPACE {
#endif
#ifndef _LIBCUDACXX_END_NAMESPACE_CUDA_DEVICE
# define _LIBCUDACXX_END_NAMESPACE_CUDA_DEVICE } } }
#endif
// redefine namespace std::
#undef _LIBCUDACXX_BEGIN_NAMESPACE_STD
#define _LIBCUDACXX_BEGIN_NAMESPACE_STD \
namespace cuda { namespace std { inline namespace _LIBCUDACXX_CUDA_ABI_NAMESPACE {
#undef _LIBCUDACXX_END_NAMESPACE_STD
#define _LIBCUDACXX_END_NAMESPACE_STD } } }
#undef _CUDA_VSTD
#define _CUDA_VSTD cuda::std::_LIBCUDACXX_CUDA_ABI_NAMESPACE
#undef _LIBCUDACXX_BEGIN_NAMESPACE_STD_NOVERSION
#define _LIBCUDACXX_BEGIN_NAMESPACE_STD_NOVERSION namespace cuda { namespace std {
#undef _LIBCUDACXX_END_NAMESPACE_STD_NOVERSION
#define _LIBCUDACXX_END_NAMESPACE_STD_NOVERSION } }
#endif //__cuda_std__
|