xref: /aosp_15_r20/external/pytorch/c10/cuda/CUDAMacros.h (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
1*da0073e9SAndroid Build Coastguard Worker #pragma once
2*da0073e9SAndroid Build Coastguard Worker 
3*da0073e9SAndroid Build Coastguard Worker #ifndef C10_USING_CUSTOM_GENERATED_MACROS
4*da0073e9SAndroid Build Coastguard Worker 
5*da0073e9SAndroid Build Coastguard Worker // We have not yet modified the AMD HIP build to generate this file so
6*da0073e9SAndroid Build Coastguard Worker // we add an extra option to specifically ignore it.
7*da0073e9SAndroid Build Coastguard Worker #ifndef C10_CUDA_NO_CMAKE_CONFIGURE_FILE
8*da0073e9SAndroid Build Coastguard Worker #include <c10/cuda/impl/cuda_cmake_macros.h>
9*da0073e9SAndroid Build Coastguard Worker #endif // C10_CUDA_NO_CMAKE_CONFIGURE_FILE
10*da0073e9SAndroid Build Coastguard Worker 
11*da0073e9SAndroid Build Coastguard Worker #endif
12*da0073e9SAndroid Build Coastguard Worker 
13*da0073e9SAndroid Build Coastguard Worker // See c10/macros/Export.h for a detailed explanation of what the function
14*da0073e9SAndroid Build Coastguard Worker // of these macros are.  We need one set of macros for every separate library
15*da0073e9SAndroid Build Coastguard Worker // we build.
16*da0073e9SAndroid Build Coastguard Worker 
17*da0073e9SAndroid Build Coastguard Worker #ifdef _WIN32
18*da0073e9SAndroid Build Coastguard Worker #if defined(C10_CUDA_BUILD_SHARED_LIBS)
19*da0073e9SAndroid Build Coastguard Worker #define C10_CUDA_EXPORT __declspec(dllexport)
20*da0073e9SAndroid Build Coastguard Worker #define C10_CUDA_IMPORT __declspec(dllimport)
21*da0073e9SAndroid Build Coastguard Worker #else
22*da0073e9SAndroid Build Coastguard Worker #define C10_CUDA_EXPORT
23*da0073e9SAndroid Build Coastguard Worker #define C10_CUDA_IMPORT
24*da0073e9SAndroid Build Coastguard Worker #endif
25*da0073e9SAndroid Build Coastguard Worker #else // _WIN32
26*da0073e9SAndroid Build Coastguard Worker #if defined(__GNUC__)
27*da0073e9SAndroid Build Coastguard Worker #define C10_CUDA_EXPORT __attribute__((__visibility__("default")))
28*da0073e9SAndroid Build Coastguard Worker #else // defined(__GNUC__)
29*da0073e9SAndroid Build Coastguard Worker #define C10_CUDA_EXPORT
30*da0073e9SAndroid Build Coastguard Worker #endif // defined(__GNUC__)
31*da0073e9SAndroid Build Coastguard Worker #define C10_CUDA_IMPORT C10_CUDA_EXPORT
32*da0073e9SAndroid Build Coastguard Worker #endif // _WIN32
33*da0073e9SAndroid Build Coastguard Worker 
34*da0073e9SAndroid Build Coastguard Worker // This one is being used by libc10_cuda.so
35*da0073e9SAndroid Build Coastguard Worker #ifdef C10_CUDA_BUILD_MAIN_LIB
36*da0073e9SAndroid Build Coastguard Worker #define C10_CUDA_API C10_CUDA_EXPORT
37*da0073e9SAndroid Build Coastguard Worker #else
38*da0073e9SAndroid Build Coastguard Worker #define C10_CUDA_API C10_CUDA_IMPORT
39*da0073e9SAndroid Build Coastguard Worker #endif
40*da0073e9SAndroid Build Coastguard Worker 
41*da0073e9SAndroid Build Coastguard Worker /**
42*da0073e9SAndroid Build Coastguard Worker  * The maximum number of GPUs that we recognizes. Increasing this beyond the
43*da0073e9SAndroid Build Coastguard Worker  * initial limit of 16 broke Caffe2 testing, hence the ifdef guards.
44*da0073e9SAndroid Build Coastguard Worker  * This value cannot be more than 128 because our DeviceIndex is a uint8_t.
45*da0073e9SAndroid Build Coastguard Worker o */
46*da0073e9SAndroid Build Coastguard Worker #ifdef FBCODE_CAFFE2
47*da0073e9SAndroid Build Coastguard Worker // fbcode depends on this value being 16
48*da0073e9SAndroid Build Coastguard Worker #define C10_COMPILE_TIME_MAX_GPUS 16
49*da0073e9SAndroid Build Coastguard Worker #else
50*da0073e9SAndroid Build Coastguard Worker #define C10_COMPILE_TIME_MAX_GPUS 120
51*da0073e9SAndroid Build Coastguard Worker #endif
52