-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathchase_config.h.in
More file actions
146 lines (121 loc) · 3.14 KB
/
Copy pathchase_config.h.in
File metadata and controls
146 lines (121 loc) · 3.14 KB
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
// This file is a part of ChASE.
// Copyright (c) 2015-2026, Simulation and Data Laboratory Quantum Materials,
// Forschungszentrum Juelich GmbH, Germany. All rights reserved.
// License is 3-clause BSD:
// https://github.com/ChASE-library/ChASE
#pragma once
/**
* @file chase_config.h
* @brief ChASE configuration header generated at build time
*
* This file is automatically generated by CMake and contains the build
* configuration options that were set when ChASE was compiled.
*
* These definitions ensure that downstream users get the same configuration
* that ChASE was built with, avoiding ABI mismatches.
*/
// ChASE version information
#define CHASE_VERSION_MAJOR @PROJECT_VERSION_MAJOR@
#define CHASE_VERSION_MINOR @PROJECT_VERSION_MINOR@
#define CHASE_VERSION_PATCH @PROJECT_VERSION_PATCH@
#define CHASE_VERSION "@PROJECT_VERSION@"
// Build configuration options
// Note: These macros may also be defined via -D flags from target properties.
// We only define them here if not already defined to avoid redefinition warnings.
#ifndef CHASE_OUTPUT
#cmakedefine CHASE_OUTPUT
#endif
#ifndef CHASE_USE_NVTX
#cmakedefine CHASE_USE_NVTX
#endif
#ifndef ENABLE_MIXED_PRECISION
#cmakedefine ENABLE_MIXED_PRECISION
#endif
#ifndef QR_DOUBLE_PRECISION
#cmakedefine QR_DOUBLE_PRECISION
#endif
#ifndef RR_DOUBLE_PRECISION
#cmakedefine RR_DOUBLE_PRECISION
#endif
#ifndef ChASE_DISPLAY_COND_V_SVD
#cmakedefine ChASE_DISPLAY_COND_V_SVD
#endif
#ifndef CHASE_SAVE_RESIDUALS
#cmakedefine CHASE_SAVE_RESIDUALS
#endif
#ifndef CHASE_ENABLE_GPU_RESIDENT_LANCZOS
#cmakedefine CHASE_ENABLE_GPU_RESIDENT_LANCZOS
#endif
#ifndef XGEEV_EXISTS
#cmakedefine XGEEV_EXISTS
#endif
// Feature detection (populated by CMake based on found dependencies)
#ifndef HAS_MPI
#cmakedefine HAS_MPI
#endif
#ifndef HAS_CUDA
#cmakedefine HAS_CUDA
#endif
#ifndef HAS_HIP
#cmakedefine HAS_HIP
#endif
#ifndef HAS_HIP_AWARE_MPI
#cmakedefine HAS_HIP_AWARE_MPI
#endif
#ifndef HAS_NCCL
#cmakedefine HAS_NCCL
#endif
#ifndef HAS_RCCL
#cmakedefine HAS_RCCL
#endif
#ifndef HAS_SCALAPACK
#cmakedefine HAS_SCALAPACK
#endif
/**
* @brief Check if ChASE was built with MPI support
*/
#ifdef HAS_MPI
#define CHASE_HAS_MPI_SUPPORT 1
#else
#define CHASE_HAS_MPI_SUPPORT 0
#endif
/**
* @brief Check if ChASE was built with GPU support
*/
#if defined(HAS_CUDA) || defined(HAS_HIP)
#define CHASE_HAS_GPU_SUPPORT 1
#else
#define CHASE_HAS_GPU_SUPPORT 0
#endif
/**
* @brief Check if ChASE was built with NCCL support
*/
#ifdef HAS_NCCL
#define CHASE_HAS_NCCL_SUPPORT 1
#else
#define CHASE_HAS_NCCL_SUPPORT 0
#endif
/**
* @brief Check if ChASE was built with RCCL support (ROCm GPU collectives)
*/
#ifdef HAS_RCCL
#define CHASE_HAS_RCCL_SUPPORT 1
#else
#define CHASE_HAS_RCCL_SUPPORT 0
#endif
/**
* @brief Check if ChASE was built with NCCL or RCCL GPU collective support
*/
#if defined(HAS_NCCL) || defined(HAS_RCCL)
#define CHASE_HAS_GPU_COLLECTIVE_SUPPORT 1
#else
#define CHASE_HAS_GPU_COLLECTIVE_SUPPORT 0
#endif
/**
* @brief Check if ChASE was built with distributed memory support
*/
#ifdef HAS_SCALAPACK
#define CHASE_HAS_DISTRIBUTED_SUPPORT 1
#else
#define CHASE_HAS_DISTRIBUTED_SUPPORT 0
#endif