Move Backend, Layout, ATenGeneral, Deprecated, Generator to ATen/core. (#10740)

Summary:
I included "legacy" includes in the old spots for Backend, Generator, Layout; it seemed unlikely that the other ones had direct user includes.

This is another step on the path to move Type/Tensor to ATen/core.
Pull Request resolved: https://github.com/pytorch/pytorch/pull/10740

Reviewed By: ezyang

Differential Revision: D9435888

Pulled By: gchanan

fbshipit-source-id: 89f4f0f445d4498a059d3a79069ba641b22bbcac
diff --git a/aten/src/ATen/ATen.h b/aten/src/ATen/ATen.h
index 9fb5f40..c84683d 100644
--- a/aten/src/ATen/ATen.h
+++ b/aten/src/ATen/ATen.h
@@ -1,6 +1,6 @@
 #pragma once
 
-#include "ATen/ATenGeneral.h"
+#include "ATen/core/ATenGeneral.h"
 #include "ATen/Allocator.h"
 #include "ATen/CPUGeneral.h"
 #include "ATen/CUDAGuard.h"
@@ -11,8 +11,8 @@
 #include "ATen/Dispatch.h"
 #include "ATen/Formatting.h"
 #include "ATen/Functions.h"
-#include "ATen/Generator.h"
-#include "ATen/Layout.h"
+#include "ATen/core/Generator.h"
+#include "ATen/core/Layout.h"
 #include "ATen/OptionsGuard.h"
 #include "ATen/Scalar.h"
 #include "ATen/Storage.h"
diff --git a/aten/src/ATen/ATenGeneral.cpp b/aten/src/ATen/ATenGeneral.cpp
deleted file mode 100644
index 239d21e..0000000
--- a/aten/src/ATen/ATenGeneral.cpp
+++ /dev/null
@@ -1 +0,0 @@
-#include <ATen/ATenGeneral.h>
diff --git a/aten/src/ATen/Backend.h b/aten/src/ATen/Backend.h
index 622d181..7b12f2e 100644
--- a/aten/src/ATen/Backend.h
+++ b/aten/src/ATen/Backend.h
@@ -1,168 +1,2 @@
 #pragma once
-
-#include <ATen/core/TensorTypeId.h>
-#include <ATen/core/TensorTypeIdRegistration.h>
-#include <ATen/core/Error.h>
-#include <ATen/core/DeviceType.h>
-
-#include <stdexcept>
-
-namespace at {
-
-/**
- * This legacy enum class defines the set of backends supported by
- * old school, code generated Type-based ATen.  The reason we are
- * sunsetting this enum class is because it doesn't allow for
- * open registration of backends.  TensorTypeId is the replacement
- * for Backend which supports open registration.
- *
- * ARE YOU SURE YOU WANT TO USE THIS TYPE?  Think about if SparseCPU/SparseCUDA
- * would make sense in your use case.  If it doesn't make sense, maybe
- * you want DeviceType.
- */
-enum class Backend { CPU, CUDA, SparseCPU, SparseCUDA, Undefined, NumOptions };
-
-static inline Backend toSparse(Backend b) {
-  switch (b) {
-    case Backend::CPU:
-      return Backend::SparseCPU;
-    case Backend::CUDA:
-      return Backend::SparseCUDA;
-    case Backend::SparseCPU:
-      return Backend::SparseCPU;
-    case Backend::SparseCUDA:
-      return Backend::SparseCUDA;
-    default:
-      throw std::runtime_error("Unknown backend");
-  }
-}
-
-static inline Backend toDense(Backend b) {
-  switch (b) {
-    case Backend::CPU:
-      return Backend::CPU;
-    case Backend::CUDA:
-      return Backend::CUDA;
-    case Backend::SparseCPU:
-      return Backend::CPU;
-    case Backend::SparseCUDA:
-      return Backend::CUDA;
-    default:
-      throw std::runtime_error("Unknown backend");
-  }
-}
-
-static inline Backend tensorTypeIdToBackend(TensorTypeId t) {
-  if (t == CPUTensorId()) {
-    return Backend::CPU;
-  } else if (t == CUDATensorId()) {
-    return Backend::CUDA;
-  } else if (t == SparseCPUTensorId()) {
-    return Backend::SparseCPU;
-  } else if (t == SparseCUDATensorId()) {
-    return Backend::SparseCUDA;
-  } else if (t == UndefinedTensorId()) {
-    return Backend::Undefined;
-  } else {
-    AT_ERROR("Unrecognized tensor type ID: ", t);
-  }
-}
-
-static inline TensorTypeId backendToTensorTypeId(Backend b) {
-  switch (b) {
-    case Backend::CPU:
-      return CPUTensorId();
-    case Backend::CUDA:
-      return CUDATensorId();
-    case Backend::SparseCPU:
-      return SparseCPUTensorId();
-    case Backend::SparseCUDA:
-      return SparseCUDATensorId();
-    case Backend::Undefined:
-      return UndefinedTensorId();
-    default:
-      throw std::runtime_error("Unknown backend");
-  }
-}
-
-static inline DeviceType backendToDeviceType(Backend b) {
-  switch (b) {
-    case Backend::CPU:
-      return DeviceType::CPU;
-    case Backend::CUDA:
-      return DeviceType::CUDA;
-    case Backend::SparseCPU:
-      return DeviceType::CPU;
-    case Backend::SparseCUDA:
-      return DeviceType::CUDA;
-    case Backend::Undefined:
-      AT_ERROR("Undefined backend is not a valid device type");
-    default:
-      AT_ERROR("Unknown backend");
-  }
-}
-
-static inline Backend deviceTypeToBackend(DeviceType d) {
-  switch (d) {
-    case DeviceType::CPU:
-      return Backend::CPU;
-    case DeviceType::CUDA:
-      return Backend::CUDA;
-    default:
-      AT_ERROR("Unknown device type ", d);
-  }
-}
-
-static inline Backend backendToCPU(Backend b) {
-  switch (b) {
-    case Backend::CPU:
-      return Backend::CPU;
-    case Backend::CUDA:
-      return Backend::CPU;
-    case Backend::SparseCPU:
-      return Backend::SparseCPU;
-    case Backend::SparseCUDA:
-      return Backend::SparseCPU;
-    case Backend::Undefined:
-      return Backend::Undefined;
-    default:
-      AT_ERROR("Unknown backend");
-  }
-}
-
-static inline Backend backendToCUDA(Backend b) {
-  switch (b) {
-    case Backend::CPU:
-      return Backend::CUDA;
-    case Backend::CUDA:
-      return Backend::CUDA;
-    case Backend::SparseCPU:
-      return Backend::SparseCUDA;
-    case Backend::SparseCUDA:
-      return Backend::SparseCUDA;
-    case Backend::Undefined:
-      return Backend::Undefined;
-    default:
-      AT_ERROR("Unknown backend");
-  }
-}
-
-constexpr DeviceType kCPU = DeviceType::CPU;
-constexpr DeviceType kCUDA = DeviceType::CUDA;
-
-static inline const char* toString(Backend b) {
-  switch (b) {
-    case Backend::CPU:
-      return "CPU";
-    case Backend::CUDA:
-      return "CUDA";
-    case Backend::SparseCPU:
-      return "SparseCPU";
-    case Backend::SparseCUDA:
-      return "SparseCUDA";
-    default:
-      return "UNKNOWN_BACKEND";
-  }
-}
-
-} // namespace at
+#include <ATen/core/Backend.h>
diff --git a/aten/src/ATen/CPUGeneral.h b/aten/src/ATen/CPUGeneral.h
index 83ee165..b406669 100644
--- a/aten/src/ATen/CPUGeneral.h
+++ b/aten/src/ATen/CPUGeneral.h
@@ -4,7 +4,7 @@
 // linking errors using MSVC
 // See https://msdn.microsoft.com/en-us/library/a90k134d.aspx
 // This header adds this if using AT_API
-#include "ATen/ATenGeneral.h"
+#include "ATen/core/ATenGeneral.h"
 
 namespace at {
 AT_API void set_num_threads(int);
diff --git a/aten/src/ATen/CheckGenerator.h b/aten/src/ATen/CheckGenerator.h
index a72e48f..7dfc108 100644
--- a/aten/src/ATen/CheckGenerator.h
+++ b/aten/src/ATen/CheckGenerator.h
@@ -1,6 +1,6 @@
 #pragma once
 
-#include "ATen/Generator.h"
+#include "ATen/core/Generator.h"
 #include "ATen/Utils.h"
 #include "ATen/core/Error.h"
 
diff --git a/aten/src/ATen/Context.h b/aten/src/ATen/Context.h
index 6cbc7d0..f2b3a45 100644
--- a/aten/src/ATen/Context.h
+++ b/aten/src/ATen/Context.h
@@ -1,9 +1,9 @@
 #pragma once
 
 #include <ATen/CPUGeneral.h>
-#include "ATen/ATenGeneral.h"
+#include "ATen/core/ATenGeneral.h"
 #include "ATen/CUDAStream.h"
-#include "ATen/Generator.h"
+#include "ATen/core/Generator.h"
 #include "ATen/Type.h"
 #include "ATen/Utils.h"
 #include "ATen/core/Error.h"
diff --git a/aten/src/ATen/Device.h b/aten/src/ATen/Device.h
index b11b694..7ad6051 100644
--- a/aten/src/ATen/Device.h
+++ b/aten/src/ATen/Device.h
@@ -1,10 +1,10 @@
 #pragma once
 
-#include <ATen/ATenGeneral.h>
+#include <ATen/core/ATenGeneral.h>
 #include <ATen/core/Error.h>
 #include <ATen/core/DeviceType.h>
 #include <ATen/core/Error.h>
-#include <ATen/Backend.h>
+#include <ATen/core/Backend.h>
 
 #include <cstddef>
 #include <iosfwd>
diff --git a/aten/src/ATen/Generator.h b/aten/src/ATen/Generator.h
index 580ab70..48c25e1 100644
--- a/aten/src/ATen/Generator.h
+++ b/aten/src/ATen/Generator.h
@@ -1,25 +1,2 @@
 #pragma once
-
-#include <ATen/ATenGeneral.h>
-
-#include <stdint.h>
-
-namespace at {
-
-struct AT_API Generator {
-  Generator() {};
-  Generator(const Generator& other) = delete;
-  Generator(Generator&& other) = delete;
-  virtual ~Generator() {};
-
-  virtual Generator& copy(const Generator& other) = 0;
-  virtual Generator& free() = 0;
-
-  virtual uint64_t seed() = 0;
-  virtual uint64_t initialSeed() = 0;
-  virtual Generator& manualSeed(uint64_t seed) = 0;
-  virtual Generator& manualSeedAll(uint64_t seed) = 0;
-  virtual void * unsafeGetTH() = 0;
-};
-
-} // namespace at
+#include <ATen/core/Generator.h>
diff --git a/aten/src/ATen/Layout.h b/aten/src/ATen/Layout.h
index ee82a6a..0f80826 100644
--- a/aten/src/ATen/Layout.h
+++ b/aten/src/ATen/Layout.h
@@ -1,35 +1,2 @@
 #pragma once
-
-#include <ATen/Backend.h>
-#include <ATen/core/Error.h>
-
-#include <iostream>
-
-namespace at {
-enum class Layout { Strided, Sparse };
-
-constexpr auto kStrided = Layout::Strided;
-constexpr auto kSparse = Layout::Sparse;
-
-inline Layout layout_from_backend(Backend backend) {
-  switch (backend) {
-    case Backend::SparseCPU:
-    case Backend::SparseCUDA:
-      return Layout::Sparse;
-    default:
-      return Layout::Strided;
-  }
-}
-
-inline std::ostream& operator<<(std::ostream& stream, at::Layout layout) {
-  switch (layout) {
-    case at::kStrided:
-      return stream << "Strided";
-    case at::kSparse:
-      return stream << "Sparse";
-    default:
-      AT_ERROR("Unknown layout");
-  }
-}
-
-} // namespace at
+#include <ATen/core/Layout.h>
diff --git a/aten/src/ATen/OptionsGuard.h b/aten/src/ATen/OptionsGuard.h
index 225060b..a6b83ba 100644
--- a/aten/src/ATen/OptionsGuard.h
+++ b/aten/src/ATen/OptionsGuard.h
@@ -1,7 +1,7 @@
 #pragma once
 
 #include <ATen/Device.h>
-#include <ATen/Layout.h>
+#include <ATen/core/Layout.h>
 #include <ATen/ScalarType.h>
 #include <ATen/TensorOptions.h>
 #include <ATen/core/optional.h>
diff --git a/aten/src/ATen/Registry.h b/aten/src/ATen/Registry.h
index fcc3de6..8f3caff 100644
--- a/aten/src/ATen/Registry.h
+++ b/aten/src/ATen/Registry.h
@@ -18,7 +18,7 @@
 #include <string>
 #include <vector>
 
-#include <ATen/ATenGeneral.h>
+#include <ATen/core/ATenGeneral.h>
 #include <ATen/core/Backtrace.h>
 
 namespace at {
diff --git a/aten/src/ATen/Scalar.h b/aten/src/ATen/Scalar.h
index 21d8e68..1a20680 100644
--- a/aten/src/ATen/Scalar.h
+++ b/aten/src/ATen/Scalar.h
@@ -6,8 +6,8 @@
 #include <string>
 #include <utility>
 
-#include "ATen/ATenGeneral.h"
-#include "ATen/ScalarType.h"
+#include "ATen/core/ATenGeneral.h"
+#include "ATen/core/ScalarType.h"
 #include "ATen/TensorBase.h"
 #include "ATen/core/Half.h"
 
diff --git a/aten/src/ATen/ScalarType.h b/aten/src/ATen/ScalarType.h
index 5b1f787..f662421 100644
--- a/aten/src/ATen/ScalarType.h
+++ b/aten/src/ATen/ScalarType.h
@@ -1,4 +1,4 @@
 #pragma once
-#include <ATen/ATenGeneral.h> // for BC reasons
-#include <ATen/Backend.h>
+#include <ATen/core/ATenGeneral.h> // for BC reasons
+#include <ATen/core/Backend.h>
 #include <ATen/core/ScalarType.h>
diff --git a/aten/src/ATen/TensorImpl.cpp b/aten/src/ATen/TensorImpl.cpp
index f21e6a8..2f8fa1a 100644
--- a/aten/src/ATen/TensorImpl.cpp
+++ b/aten/src/ATen/TensorImpl.cpp
@@ -4,7 +4,7 @@
 #include <ATen/Tensor.h>
 #include <ATen/core/optional.h>
 #include <ATen/Context.h>
-#include <ATen/Backend.h>
+#include <ATen/core/Backend.h>
 
 #include <ATen/detail/VariableHooksInterface.h>
 
diff --git a/aten/src/ATen/TensorOptions.cpp b/aten/src/ATen/TensorOptions.cpp
index 3028d15..a54d358 100644
--- a/aten/src/ATen/TensorOptions.cpp
+++ b/aten/src/ATen/TensorOptions.cpp
@@ -1,7 +1,7 @@
 #include <ATen/TensorOptions.h>
 
 #include <ATen/Device.h>
-#include <ATen/Layout.h>
+#include <ATen/core/Layout.h>
 #include <ATen/OptionsGuard.h>
 #include <ATen/ScalarType.h>
 #include <ATen/core/optional.h>
diff --git a/aten/src/ATen/TensorOptions.h b/aten/src/ATen/TensorOptions.h
index 350bd44..c871768 100644
--- a/aten/src/ATen/TensorOptions.h
+++ b/aten/src/ATen/TensorOptions.h
@@ -1,10 +1,10 @@
 #pragma once
 
-#include <ATen/Backend.h>
+#include <ATen/core/Backend.h>
 #include <ATen/Context.h>
 #include <ATen/Device.h>
 #include <ATen/DeviceGuard.h>
-#include <ATen/Layout.h>
+#include <ATen/core/Layout.h>
 #include <ATen/ScalarType.h>
 #include <ATen/Tensor.h>
 #include <ATen/Type.h>
diff --git a/aten/src/ATen/Utils.h b/aten/src/ATen/Utils.h
index aae6349..58f2c6a 100644
--- a/aten/src/ATen/Utils.h
+++ b/aten/src/ATen/Utils.h
@@ -1,6 +1,6 @@
 #pragma once
 
-#include "ATen/ATenGeneral.h"
+#include "ATen/core/ATenGeneral.h"
 #include "ATen/StorageImpl.h"
 #include "ATen/UndefinedTensor.h"
 
diff --git a/aten/src/ATen/core/ATenGeneral.cpp b/aten/src/ATen/core/ATenGeneral.cpp
new file mode 100644
index 0000000..80b7927
--- /dev/null
+++ b/aten/src/ATen/core/ATenGeneral.cpp
@@ -0,0 +1 @@
+#include <ATen/core/ATenGeneral.h>
diff --git a/aten/src/ATen/ATenGeneral.h b/aten/src/ATen/core/ATenGeneral.h
similarity index 100%
rename from aten/src/ATen/ATenGeneral.h
rename to aten/src/ATen/core/ATenGeneral.h
diff --git a/aten/src/ATen/core/Backend.h b/aten/src/ATen/core/Backend.h
new file mode 100644
index 0000000..622d181
--- /dev/null
+++ b/aten/src/ATen/core/Backend.h
@@ -0,0 +1,168 @@
+#pragma once
+
+#include <ATen/core/TensorTypeId.h>
+#include <ATen/core/TensorTypeIdRegistration.h>
+#include <ATen/core/Error.h>
+#include <ATen/core/DeviceType.h>
+
+#include <stdexcept>
+
+namespace at {
+
+/**
+ * This legacy enum class defines the set of backends supported by
+ * old school, code generated Type-based ATen.  The reason we are
+ * sunsetting this enum class is because it doesn't allow for
+ * open registration of backends.  TensorTypeId is the replacement
+ * for Backend which supports open registration.
+ *
+ * ARE YOU SURE YOU WANT TO USE THIS TYPE?  Think about if SparseCPU/SparseCUDA
+ * would make sense in your use case.  If it doesn't make sense, maybe
+ * you want DeviceType.
+ */
+enum class Backend { CPU, CUDA, SparseCPU, SparseCUDA, Undefined, NumOptions };
+
+static inline Backend toSparse(Backend b) {
+  switch (b) {
+    case Backend::CPU:
+      return Backend::SparseCPU;
+    case Backend::CUDA:
+      return Backend::SparseCUDA;
+    case Backend::SparseCPU:
+      return Backend::SparseCPU;
+    case Backend::SparseCUDA:
+      return Backend::SparseCUDA;
+    default:
+      throw std::runtime_error("Unknown backend");
+  }
+}
+
+static inline Backend toDense(Backend b) {
+  switch (b) {
+    case Backend::CPU:
+      return Backend::CPU;
+    case Backend::CUDA:
+      return Backend::CUDA;
+    case Backend::SparseCPU:
+      return Backend::CPU;
+    case Backend::SparseCUDA:
+      return Backend::CUDA;
+    default:
+      throw std::runtime_error("Unknown backend");
+  }
+}
+
+static inline Backend tensorTypeIdToBackend(TensorTypeId t) {
+  if (t == CPUTensorId()) {
+    return Backend::CPU;
+  } else if (t == CUDATensorId()) {
+    return Backend::CUDA;
+  } else if (t == SparseCPUTensorId()) {
+    return Backend::SparseCPU;
+  } else if (t == SparseCUDATensorId()) {
+    return Backend::SparseCUDA;
+  } else if (t == UndefinedTensorId()) {
+    return Backend::Undefined;
+  } else {
+    AT_ERROR("Unrecognized tensor type ID: ", t);
+  }
+}
+
+static inline TensorTypeId backendToTensorTypeId(Backend b) {
+  switch (b) {
+    case Backend::CPU:
+      return CPUTensorId();
+    case Backend::CUDA:
+      return CUDATensorId();
+    case Backend::SparseCPU:
+      return SparseCPUTensorId();
+    case Backend::SparseCUDA:
+      return SparseCUDATensorId();
+    case Backend::Undefined:
+      return UndefinedTensorId();
+    default:
+      throw std::runtime_error("Unknown backend");
+  }
+}
+
+static inline DeviceType backendToDeviceType(Backend b) {
+  switch (b) {
+    case Backend::CPU:
+      return DeviceType::CPU;
+    case Backend::CUDA:
+      return DeviceType::CUDA;
+    case Backend::SparseCPU:
+      return DeviceType::CPU;
+    case Backend::SparseCUDA:
+      return DeviceType::CUDA;
+    case Backend::Undefined:
+      AT_ERROR("Undefined backend is not a valid device type");
+    default:
+      AT_ERROR("Unknown backend");
+  }
+}
+
+static inline Backend deviceTypeToBackend(DeviceType d) {
+  switch (d) {
+    case DeviceType::CPU:
+      return Backend::CPU;
+    case DeviceType::CUDA:
+      return Backend::CUDA;
+    default:
+      AT_ERROR("Unknown device type ", d);
+  }
+}
+
+static inline Backend backendToCPU(Backend b) {
+  switch (b) {
+    case Backend::CPU:
+      return Backend::CPU;
+    case Backend::CUDA:
+      return Backend::CPU;
+    case Backend::SparseCPU:
+      return Backend::SparseCPU;
+    case Backend::SparseCUDA:
+      return Backend::SparseCPU;
+    case Backend::Undefined:
+      return Backend::Undefined;
+    default:
+      AT_ERROR("Unknown backend");
+  }
+}
+
+static inline Backend backendToCUDA(Backend b) {
+  switch (b) {
+    case Backend::CPU:
+      return Backend::CUDA;
+    case Backend::CUDA:
+      return Backend::CUDA;
+    case Backend::SparseCPU:
+      return Backend::SparseCUDA;
+    case Backend::SparseCUDA:
+      return Backend::SparseCUDA;
+    case Backend::Undefined:
+      return Backend::Undefined;
+    default:
+      AT_ERROR("Unknown backend");
+  }
+}
+
+constexpr DeviceType kCPU = DeviceType::CPU;
+constexpr DeviceType kCUDA = DeviceType::CUDA;
+
+static inline const char* toString(Backend b) {
+  switch (b) {
+    case Backend::CPU:
+      return "CPU";
+    case Backend::CUDA:
+      return "CUDA";
+    case Backend::SparseCPU:
+      return "SparseCPU";
+    case Backend::SparseCUDA:
+      return "SparseCUDA";
+    default:
+      return "UNKNOWN_BACKEND";
+  }
+}
+
+} // namespace at
diff --git a/aten/src/ATen/Deprecated.h b/aten/src/ATen/core/Deprecated.h
similarity index 100%
rename from aten/src/ATen/Deprecated.h
rename to aten/src/ATen/core/Deprecated.h
diff --git a/aten/src/ATen/core/Generator.h b/aten/src/ATen/core/Generator.h
new file mode 100644
index 0000000..b8894c4
--- /dev/null
+++ b/aten/src/ATen/core/Generator.h
@@ -0,0 +1,24 @@
+#pragma once
+
+#include <ATen/core/ATenGeneral.h>
+#include <stdint.h>
+
+namespace at {
+
+struct AT_API Generator {
+  Generator() {};
+  Generator(const Generator& other) = delete;
+  Generator(Generator&& other) = delete;
+  virtual ~Generator() {};
+
+  virtual Generator& copy(const Generator& other) = 0;
+  virtual Generator& free() = 0;
+
+  virtual uint64_t seed() = 0;
+  virtual uint64_t initialSeed() = 0;
+  virtual Generator& manualSeed(uint64_t seed) = 0;
+  virtual Generator& manualSeedAll(uint64_t seed) = 0;
+  virtual void * unsafeGetTH() = 0;
+};
+
+} // namespace at
diff --git a/aten/src/ATen/core/Layout.h b/aten/src/ATen/core/Layout.h
new file mode 100644
index 0000000..5601f23
--- /dev/null
+++ b/aten/src/ATen/core/Layout.h
@@ -0,0 +1,35 @@
+#pragma once
+
+#include <ATen/core/Backend.h>
+#include <ATen/core/Error.h>
+
+#include <iostream>
+
+namespace at {
+enum class Layout { Strided, Sparse };
+
+constexpr auto kStrided = Layout::Strided;
+constexpr auto kSparse = Layout::Sparse;
+
+inline Layout layout_from_backend(Backend backend) {
+  switch (backend) {
+    case Backend::SparseCPU:
+    case Backend::SparseCUDA:
+      return Layout::Sparse;
+    default:
+      return Layout::Strided;
+  }
+}
+
+inline std::ostream& operator<<(std::ostream& stream, at::Layout layout) {
+  switch (layout) {
+    case at::kStrided:
+      return stream << "Strided";
+    case at::kSparse:
+      return stream << "Sparse";
+    default:
+      AT_ERROR("Unknown layout");
+  }
+}
+
+} // namespace at
diff --git a/aten/src/ATen/cuda/CUDAContext.h b/aten/src/ATen/cuda/CUDAContext.h
index 67e5de8..5a79ca6 100644
--- a/aten/src/ATen/cuda/CUDAContext.h
+++ b/aten/src/ATen/cuda/CUDAContext.h
@@ -1,6 +1,6 @@
 #pragma once
 
-#include "ATen/ATenGeneral.h"
+#include "ATen/core/ATenGeneral.h"
 #include "ATen/Context.h"
 #include "ATen/cuda/CUDAStream.h"
 #include "ATen/cuda/Exceptions.h"
diff --git a/aten/src/ATen/cuda/CUDAEvent.h b/aten/src/ATen/cuda/CUDAEvent.h
index 79abfd3..7a711bf 100644
--- a/aten/src/ATen/cuda/CUDAEvent.h
+++ b/aten/src/ATen/cuda/CUDAEvent.h
@@ -5,7 +5,7 @@
 
 #include "cuda_runtime_api.h"
 
-#include <ATen/ATenGeneral.h>
+#include <ATen/core/ATenGeneral.h>
 #include <ATen/Error.h>
 
 /*
diff --git a/aten/src/ATen/cuda/CUDAStream.h b/aten/src/ATen/cuda/CUDAStream.h
index 7a3e1e0..87e8656 100644
--- a/aten/src/ATen/cuda/CUDAStream.h
+++ b/aten/src/ATen/cuda/CUDAStream.h
@@ -5,7 +5,7 @@
 
 #include "cuda_runtime_api.h"
 
-#include <ATen/ATenGeneral.h>
+#include <ATen/core/ATenGeneral.h>
 
 /*
 * A CUDA stream interface with no CUDA build dependency.
diff --git a/aten/src/ATen/detail/CUDAHooksInterface.h b/aten/src/ATen/detail/CUDAHooksInterface.h
index 1b2e4a4..28a8996 100644
--- a/aten/src/ATen/detail/CUDAHooksInterface.h
+++ b/aten/src/ATen/detail/CUDAHooksInterface.h
@@ -1,7 +1,7 @@
 #pragma once
 
 #include <ATen/Allocator.h>
-#include <ATen/Generator.h>
+#include <ATen/core/Generator.h>
 #include <ATen/Registry.h>
 #include <ATen/core/Error.h>
 
diff --git a/aten/src/ATen/native/Distributions.cpp b/aten/src/ATen/native/Distributions.cpp
index acb9e22..36845c7 100644
--- a/aten/src/ATen/native/Distributions.cpp
+++ b/aten/src/ATen/native/Distributions.cpp
@@ -7,7 +7,7 @@
 
 #include "ATen/CPUGenerator.h"
 #include "ATen/CheckGenerator.h"
-#include "ATen/Generator.h"
+#include "ATen/core/Generator.h"
 #include "ATen/native/Distributions.h"
 
 #include <functional>
diff --git a/aten/src/ATen/native/GridSampler.cpp b/aten/src/ATen/native/GridSampler.cpp
index 198a44b..1547ab2 100644
--- a/aten/src/ATen/native/GridSampler.cpp
+++ b/aten/src/ATen/native/GridSampler.cpp
@@ -1,5 +1,5 @@
 #include "ATen/ATen.h"
-#include "ATen/Layout.h"
+#include "ATen/core/Layout.h"
 #include "ATen/Device.h"
 #include "ATen/Error.h"
 #include "ATen/NativeFunctions.h"
diff --git a/aten/src/ATen/native/TensorFactories.cpp b/aten/src/ATen/native/TensorFactories.cpp
index db3833e..aa7c137 100644
--- a/aten/src/ATen/native/TensorFactories.cpp
+++ b/aten/src/ATen/native/TensorFactories.cpp
@@ -7,7 +7,7 @@
 #include "ATen/ATen.h"
 #include "ATen/CPUGenerator.h"
 #include "ATen/CheckGenerator.h"
-#include "ATen/Deprecated.h"
+#include "ATen/core/Deprecated.h"
 #include "ATen/Dispatch.h"
 #include "ATen/NativeFunctions.h"
 #include "ATen/ScalarType.h"
diff --git a/aten/src/ATen/templates/Functions.h b/aten/src/ATen/templates/Functions.h
index 88a01fa..a03cc1c 100644
--- a/aten/src/ATen/templates/Functions.h
+++ b/aten/src/ATen/templates/Functions.h
@@ -6,8 +6,8 @@
 #include "ATen/Type.h"
 #include "ATen/Tensor.h"
 #include "ATen/Storage.h"
-#include "ATen/Generator.h"
-#include "ATen/Deprecated.h"
+#include "ATen/core/Generator.h"
+#include "ATen/core/Deprecated.h"
 #include "ATen/NativeFunctions.h"
 #include "ATen/DeviceGuard.h"
 #include "ATen/TensorOptions.h"
diff --git a/aten/src/ATen/templates/GeneratorDerived.h b/aten/src/ATen/templates/GeneratorDerived.h
index 9fde183..2d38844 100644
--- a/aten/src/ATen/templates/GeneratorDerived.h
+++ b/aten/src/ATen/templates/GeneratorDerived.h
@@ -4,7 +4,7 @@
 
 #include <$header>
 
-#include "ATen/Generator.h"
+#include "ATen/core/Generator.h"
 
 namespace at {
 
diff --git a/aten/src/ATen/templates/Tensor.h b/aten/src/ATen/templates/Tensor.h
index 5a5c65d..c789e93 100644
--- a/aten/src/ATen/templates/Tensor.h
+++ b/aten/src/ATen/templates/Tensor.h
@@ -3,7 +3,7 @@
 // ${generated_comment}
 
 #include "ATen/Device.h"
-#include "ATen/Layout.h"
+#include "ATen/core/Layout.h"
 #include "ATen/Scalar.h"
 #include "ATen/ScalarType.h"
 #include "ATen/SparseTensorRef.h"
diff --git a/aten/src/ATen/templates/Type.h b/aten/src/ATen/templates/Type.h
index 269baf7..d4972d8 100644
--- a/aten/src/ATen/templates/Type.h
+++ b/aten/src/ATen/templates/Type.h
@@ -2,13 +2,13 @@
 
 // ${generated_comment}
 
-#include "ATen/ATenGeneral.h"
+#include "ATen/core/ATenGeneral.h"
 #include "ATen/Allocator.h"
-#include "ATen/Deprecated.h"
-#include "ATen/Generator.h"
-#include "ATen/Layout.h"
+#include "ATen/core/Deprecated.h"
+#include "ATen/core/Generator.h"
+#include "ATen/core/Layout.h"
 #include "ATen/Scalar.h"
-#include "ATen/ScalarType.h"
+#include "ATen/core/ScalarType.h"
 #include "ATen/SparseTensorRef.h"
 #include "ATen/Tensor.h"
 #include "ATen/core/ArrayRef.h"