25 #ifndef MXNET_OP_ATTR_TYPES_H_ 26 #define MXNET_OP_ATTR_TYPES_H_ 28 #include <mshadow/tensor.h> 29 #include <nnvm/op_attr_types.h> 41 using nnvm::NodeAttrs;
79 template<
typename xpu>
127 template<
typename T,
typename... Args>
130 ret.ptr_ = std::make_shared<OpState>();
132 ret.ptr_->state_.construct<T>(std::forward<Args>(args)...);
143 return dmlc::get<T>(ptr_->state_);
150 explicit operator bool()
const {
151 return ptr_ ?
true :
false;
158 OpState(
const OpState& other) =
delete;
159 OpState& operator=(
const OpState& other) =
delete;
169 std::shared_ptr<OpState> ptr_;
186 const std::vector<TShape>& in_shape,
187 const std::vector<int>& in_type)>;
191 using FExecType = std::function<ExecType (const NodeAttrs& attrs)>;
201 const std::vector<TBlob>& inputs,
202 const std::vector<OpReqType>& req,
203 const std::vector<TBlob>& outputs)>;
213 const std::vector<NDArray>& inputs,
214 const std::vector<OpReqType>& req,
215 const std::vector<NDArray>& outputs)>;
222 std::vector<ResourceRequest> (
const NodeAttrs& n)>;
229 const std::vector<NDArray>& inputs,
230 std::vector<NDArray>* outputs)>;
236 using FCompute = std::function<void (
const nnvm::NodeAttrs& attrs,
238 const std::vector<TBlob>& inputs,
239 const std::vector<OpReqType>& req,
240 const std::vector<TBlob>& outputs)>;
247 using FComputeEx = std::function<void (
const nnvm::NodeAttrs& attrs,
249 const std::vector<NDArray>& inputs,
250 const std::vector<OpReqType>& req,
251 const std::vector<NDArray>& outputs)>;
262 std::vector<int>* in_attrs,
263 std::vector<int>* out_attrs)>;
267 #endif // MXNET_OP_ATTR_TYPES_H_ std::function< void(const OpStatePtr &state, const OpContext &ctx, const std::vector< TBlob > &inputs, const std::vector< OpReqType > &req, const std::vector< TBlob > &outputs)> FStatefulCompute
Resiger a compute function for stateful operator. OpStatePtr is a pointer type, it's content is mutab...
Definition: op_attr_types.h:203
void reset()
Definition: op_attr_types.h:146
Forward/Backward are synchronize calls.
Engine that schedules all the operations according to dependency.
no operation, do not write anything
Definition: op_attr_types.h:46
write gradient to provided space
Definition: op_attr_types.h:48
namespace of mxnet
Definition: base.h:126
std::function< std::vector< ResourceRequest >(const NodeAttrs &n)> FResourceRequest
The resource request from the operator.
Definition: op_attr_types.h:222
std::function< void(const OpStatePtr &state, const OpContext &ctx, const std::vector< NDArray > &inputs, const std::vector< OpReqType > &req, const std::vector< NDArray > &outputs)> FStatefulComputeEx
Resiger a compute function for stateful operator using NDArray interface. OpStatePtr is a pointer typ...
Definition: op_attr_types.h:215
mshadow::Stream< xpu > * get_stream() const
get mshadow stream from Context
Definition: base.h:251
Asynchronous function call.
engine::VarHandle get_var() const
Definition: op_attr_types.h:137
Cross device copy operation, this is a special operator That indicates copy across devices...
execution time context. The information needed in runtime for actual execution.
Definition: base.h:238
DispatchMode
the dispatch mode of the operator
Definition: op_attr_types.h:106
Run this operator on the scheduling thread without pushing to engine.
T & get_state() const
Definition: op_attr_types.h:142
engine::CallbackOnComplete async_on_complete
the callback when operation completes, used by asynchronize ops
Definition: op_attr_types.h:71
std::function< OpStatePtr(const NodeAttrs &attrs, Context ctx, const std::vector< TShape > &in_shape, const std::vector< int > &in_type)> FCreateOpState
Create a Layer style, forward/backward operator. This is easy to write code that contains state...
Definition: op_attr_types.h:187
All the possible information needed by Operator.Forward and Backward This is the superset of RunConte...
Definition: op_attr_types.h:65
int is_train
whether it is training phase
Definition: op_attr_types.h:67
std::function< ExecType(const NodeAttrs &attrs)> FExecType
Execution mode of this operator.
Definition: op_attr_types.h:191
virtual VarHandle NewVariable()=0
Allocate a new variable, the variable can then be used to schedule the operation concurrently via dep...
static OpStatePtr Create(Args &&...args)
Definition: op_attr_types.h:128
std::function< void(const nnvm::NodeAttrs &attrs, const std::vector< NDArray > &inputs, std::vector< NDArray > *outputs)> FNDArrayFunction
Register an operator called as a NDArray function.
Definition: op_attr_types.h:230
Global resource allocation handling.
virtual void DeleteVariable(SyncFn delete_fn, Context exec_ctx, VarHandle var)=0
Schedule the deletion of a variable.
Var * VarHandle
Variable pointer type, usually hold by user used to specify dependencies.
Definition: engine.h:46
perform an inplace write, Target shares memory with one of input arguments. This option only happen w...
Definition: op_attr_types.h:54
OpReqType
operation request type to Forward and Backward
Definition: op_attr_types.h:44
std::function< void(const nnvm::NodeAttrs &attrs, const OpContext &ctx, const std::vector< NDArray > &inputs, const std::vector< OpReqType > &req, const std::vector< NDArray > &outputs)> FComputeEx
Resiger an NDArray compute function for simple stateless forward only operator.
Definition: op_attr_types.h:251
std::vector< Resource > requested
Resources requested by the operator.
Definition: op_attr_types.h:73
RunContext run_ctx
RunContext related resources.
Definition: op_attr_types.h:69
static Context CPU(int32_t dev_id=0)
std::function< void(const nnvm::NodeAttrs &attrs, const OpContext &ctx, const std::vector< TBlob > &inputs, const std::vector< OpReqType > &req, const std::vector< TBlob > &outputs)> FCompute
Resiger a compute function for simple stateless forward only operator.
Definition: op_attr_types.h:240
OnComplete Callback to the engine, called by AsyncFn when action completes.
Definition: engine.h:55
std::function< bool(const NodeAttrs &attrs, const int dev_mask, DispatchMode *dispatch_mode, std::vector< int > *in_attrs, std::vector< int > *out_attrs)> FInferStorageType
Resiger a storage and dispatch mode inference function based on storage types of the inputs and outpu...
Definition: op_attr_types.h:263
add to the provided space
Definition: op_attr_types.h:56
ExecType
the execution type of the operator
Definition: op_attr_types.h:86
Context information about the execution environment.
Definition: base.h:141
mshadow::Stream< xpu > * get_stream() const
get mshadow stream from Context
Definition: op_attr_types.h:80
Operator state. This is a pointer type, its content is mutable even if OpStatePtr is const...
Definition: op_attr_types.h:122