66#include < memory>
77#include < unordered_map>
88
9- #include < ATen/core/ATenGeneral.h>
10- #include < ATen/core/Device.h>
9+ #include < ATen/core/DeviceType.h>
1110#include < ATen/core/Error.h>
12- #include < ATen/core/Registry.h>
1311#include < ATen/core/UniqueVoidPtr.h>
1412#include < ATen/core/typeid.h>
13+ #include < ATen/core/ATenGeneral.h>
1514
1615namespace caffe2 {
1716class Event ;
@@ -32,6 +31,11 @@ class AT_CORE_API BaseStaticContext {
3231
3332 virtual std::pair<void *, DeleterFnPtr> New (size_t nbytes) const = 0;
3433
34+ virtual std::unique_ptr<BaseContext> CreateContext () = 0;
35+
36+ virtual std::unique_ptr<BaseContext> CreateContext (
37+ const caffe2::DeviceOption&) = 0;
38+
3539 virtual DeviceType GetDeviceType () = 0;
3640
3741 /*
@@ -180,22 +184,6 @@ class AT_CORE_API BaseContext {
180184 }
181185};
182186
183- // Context constructor registry
184- AT_DECLARE_TYPED_REGISTRY (
185- ContextRegistry,
186- at::DeviceType,
187- BaseContext,
188- std::unique_ptr,
189- at::Device);
190-
191- #define REGISTER_CONTEXT (type, ...) \
192- AT_REGISTER_TYPED_CLASS (ContextRegistry, type, __VA_ARGS__)
193-
194- inline std::unique_ptr<at::BaseContext> CreateContext (
195- const at::Device& device) {
196- return ContextRegistry ()->Create (device.type (), device);
197- }
198-
199187} // namespace at
200188
201189namespace caffe2 {
0 commit comments