forked from pytorch/pytorch
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbackend_interface.h
32 lines (26 loc) · 1.13 KB
/
backend_interface.h
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
#pragma once
#include <torch/custom_class.h>
namespace torch::jit {
// Interface for a JIT backend.
class TORCH_API PyTorchBackendInterface : public torch::CustomClassHolder {
public:
PyTorchBackendInterface() noexcept;
~PyTorchBackendInterface() override;
// Returns true if the backend is available to process delegation calls.
virtual bool is_available() = 0;
// Compile the module contained in \p processed using the details provided in
// \p method_compile_spec for each module method that should be compiled for
// the backend. \p method_compile_spec should be of type Dict<string, Any>.
// \returns a dictionary of type Dict<string, Any> that contains a backend
// handle each method that can run on the backend (i.e. each key in \p
// method_compile_spec).
virtual c10::impl::GenericDict compile(
c10::IValue processed,
c10::impl::GenericDict method_compile_spec) = 0;
// Execute the method specified by \p handle using \p inputs. \returns the
// outputs as a tuple.
virtual c10::impl::GenericList execute(
c10::IValue handle,
c10::impl::GenericList inputs) = 0;
};
} // namespace torch::jit