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