xref: /aosp_15_r20/external/pytorch/aten/src/ATen/core/ATen_pch.h (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
1 // This global header must not depend on native_functions.yaml or
2 // incremental builds will be next to useless
3 #pragma push_macro("TORCH_ASSERT_NO_OPERATORS")
4 #define TORCH_ASSERT_NO_OPERATORS
5 
6 // This macro doesn't work if defined after the first time inttypes.h
7 // is included, so won't work anywhere if not defined here.
8 #ifndef __STDC_FORMAT_MACROS
9 #define __STDC_FORMAT_MACROS
10 #endif
11 #include <cinttypes>
12 
13 // This list of headers was generated using a script that finds
14 // high-impact headers and then manually tweaked to remove OS specific
15 // or duplicate headers (e.g. <cassert> and <assert.h>) and to remove
16 // "impl" headers (e.g BFloat16-inl.h or complex_math.h in c10).
17 
18 // To generate the initial list:
19 // 1. Build pytorch from scratch with all build caching disabled
20 // 2. Generate a build trace with ninjatracing (https://github.com/nico/ninjatracing)
21 //    $ ninjatracing /path/to/pytorch/build/.ninja_log > trace_all.json
22 // 3. Run pch_gen.py from https://github.com/peterbell10/build_analysis/
23 //    $ python pch_gen.py --threshold .80 --target torch_cpu --build_dir /path/to/pytorch/build --trace trace_all.json
24 //    Where the threshold can be tweaked until c10 and some of ATen
25 //    core are included but TORCH_ASSERT_NO_OPERATORS still passes.
26 
27 #include <cerrno>
28 #include <cmath>
29 #include <cstddef>
30 #include <cstdint>
31 #include <cstdlib>
32 #include <cstring>
33 
34 #include <algorithm>
35 #include <array>
36 #include <atomic>
37 #include <chrono>
38 #include <complex>
39 #include <deque>
40 #include <exception>
41 #include <functional>
42 #include <initializer_list>
43 #include <iomanip>
44 #include <iosfwd>
45 #include <iterator>
46 #include <limits>
47 #include <list>
48 #include <map>
49 #include <memory>
50 #include <mutex>
51 #include <new>
52 #include <numeric>
53 #include <ostream>
54 #include <sstream>
55 #include <stdexcept>
56 #include <string>
57 #include <tuple>
58 #include <type_traits>
59 #include <typeindex>
60 #include <typeinfo>
61 #include <unordered_map>
62 #include <unordered_set>
63 #include <utility>
64 #include <vector>
65 
66 #include <c10/core/Allocator.h>
67 #include <c10/core/AutogradState.h>
68 #include <c10/core/Backend.h>
69 #include <c10/core/DefaultDtype.h>
70 #include <c10/core/Device.h>
71 #include <c10/core/DeviceType.h>
72 #include <c10/core/DispatchKey.h>
73 #include <c10/core/DispatchKeySet.h>
74 #include <c10/core/GeneratorImpl.h>
75 #include <c10/core/InferenceMode.h>
76 #include <c10/core/Layout.h>
77 #include <c10/core/MemoryFormat.h>
78 #include <c10/core/OptionalRef.h>
79 #include <c10/core/QScheme.h>
80 #include <c10/core/Scalar.h>
81 #include <c10/core/ScalarType.h>
82 #include <c10/core/ScalarTypeToTypeMeta.h>
83 #include <c10/core/Storage.h>
84 #include <c10/core/StorageImpl.h>
85 #include <c10/core/SymBool.h>
86 #include <c10/core/SymFloat.h>
87 #include <c10/core/SymInt.h>
88 #include <c10/core/SymIntArrayRef.h>
89 #include <c10/core/SymNodeImpl.h>
90 #include <c10/core/TensorImpl.h>
91 #include <c10/core/TensorOptions.h>
92 #include <c10/core/UndefinedTensorImpl.h>
93 #include <c10/core/WrapDimMinimal.h>
94 #include <c10/core/impl/LocalDispatchKeySet.h>
95 #include <c10/core/impl/PyInterpreter.h>
96 #include <c10/core/impl/SizesAndStrides.h>
97 
98 #include <c10/macros/Export.h>
99 #include <c10/macros/Macros.h>
100 
101 #include <c10/util/AlignOf.h>
102 #include <c10/util/ArrayRef.h>
103 #include <c10/util/BFloat16.h>
104 #include <c10/util/C++17.h>
105 #include <c10/util/ConstexprCrc.h>
106 #include <c10/util/Deprecated.h>
107 #include <c10/util/DimVector.h>
108 #include <c10/util/Exception.h>
109 #include <c10/util/ExclusivelyOwned.h>
110 #include <c10/util/Flags.h>
111 #include <c10/util/Float8_e4m3fn.h>
112 #include <c10/util/Float8_e5m2.h>
113 #include <c10/util/Float8_e4m3fnuz.h>
114 #include <c10/util/Float8_e5m2fnuz.h>
115 #include <c10/util/FunctionRef.h>
116 #include <c10/util/Half.h>
117 #include <c10/util/IdWrapper.h>
118 #include <c10/util/Logging.h>
119 #include <c10/util/MaybeOwned.h>
120 #include <c10/util/Metaprogramming.h>
121 #include <c10/util/Optional.h>
122 #include <c10/util/Registry.h>
123 #include <c10/util/SmallVector.h>
124 #include <c10/util/StringUtil.h>
125 #include <c10/util/ThreadLocalDebugInfo.h>
126 #include <c10/util/Type.h>
127 #include <c10/util/TypeCast.h>
128 #include <c10/util/TypeIndex.h>
129 #include <c10/util/TypeList.h>
130 #include <c10/util/TypeSafeSignMath.h>
131 #include <c10/util/TypeTraits.h>
132 #include <c10/util/UniqueVoidPtr.h>
133 #include <c10/util/accumulate.h>
134 #include <c10/util/bit_cast.h>
135 #include <c10/util/bits.h>
136 #include <c10/util/complex.h>
137 #include <c10/util/floating_point_utils.h>
138 #include <c10/util/intrusive_ptr.h>
139 #include <c10/util/irange.h>
140 #include <c10/util/llvmMathExtras.h>
141 #include <c10/util/python_stub.h>
142 #include <c10/util/qint32.h>
143 #include <c10/util/qint8.h>
144 #include <c10/util/quint2x4.h>
145 #include <c10/util/quint4x2.h>
146 #include <c10/util/quint8.h>
147 #include <c10/util/safe_numerics.h>
148 #include <c10/util/string_utils.h>
149 #include <c10/util/string_view.h>
150 #include <c10/util/typeid.h>
151 
152 #include <ATen/StorageUtils.h>
153 #include <ATen/core/ATen_fwd.h>
154 #include <ATen/core/DeprecatedTypeProperties.h>
155 #include <ATen/core/DeprecatedTypePropertiesRegistry.h>
156 #include <ATen/core/DimVector.h>
157 #include <ATen/core/Dimname.h>
158 #include <ATen/core/Generator.h>
159 #include <ATen/core/NamedTensor.h>
160 #include <ATen/core/QuantizerBase.h>
161 #include <ATen/core/TensorAccessor.h>
162 #include <ATen/core/TensorBase.h>
163 #include <ATen/core/symbol.h>
164 
165 #pragma pop_macro("TORCH_ASSERT_NO_OPERATORS")
166