diff options
author | Georgios Pinitas <georgios.pinitas@arm.com> | 2018-05-02 14:07:55 +0100 |
---|---|---|
committer | Anthony Barbier <anthony.barbier@arm.com> | 2018-11-02 16:51:17 +0000 |
commit | e043767d068da389308507011d944e6db9e4d676 (patch) | |
tree | 30c8965d8d03d141c7630420c6e945f78485efc7 /arm_compute/graph | |
parent | 019634f8befde24b19bae9b749e75a9f3ae44801 (diff) | |
download | ComputeLibrary-e043767d068da389308507011d944e6db9e4d676.tar.gz |
COMPMID-920: Introduce prepare() stage
Change-Id: I08ddb7f6e061178e7566518b48e4e18f8f078596
Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/129825
Tested-by: Jenkins <bsgcomp@arm.com>
Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
Diffstat (limited to 'arm_compute/graph')
-rw-r--r-- | arm_compute/graph/Workload.h | 11 | ||||
-rw-r--r-- | arm_compute/graph/detail/ExecutionHelpers.h | 21 |
2 files changed, 29 insertions, 3 deletions
diff --git a/arm_compute/graph/Workload.h b/arm_compute/graph/Workload.h index b19c932636..11bb22ea9a 100644 --- a/arm_compute/graph/Workload.h +++ b/arm_compute/graph/Workload.h @@ -37,6 +37,7 @@ namespace graph class ITensorHandle; class INode; class Tensor; +class Graph; /** Execution task * @@ -52,14 +53,18 @@ struct ExecutionTask /** Function operator */ void operator()(); + + /** Prepare execution task */ + void prepare(); }; /** Execution workload */ struct ExecutionWorkload { - std::vector<Tensor *> inputs = {}; /**< Input handles */ - std::vector<Tensor *> outputs = {}; /**< Output handles */ - std::vector<ExecutionTask> tasks = {}; /**< Execution workload */ + std::vector<Tensor *> inputs = {}; /**< Input handles */ + std::vector<Tensor *> outputs = {}; /**< Output handles */ + std::vector<ExecutionTask> tasks = {}; /**< Execution workload */ + Graph *graph = nullptr; /**< Graph bound to the workload */ }; } // namespace graph } // namespace arm_compute diff --git a/arm_compute/graph/detail/ExecutionHelpers.h b/arm_compute/graph/detail/ExecutionHelpers.h index 52304d6836..a868df8a5d 100644 --- a/arm_compute/graph/detail/ExecutionHelpers.h +++ b/arm_compute/graph/detail/ExecutionHelpers.h @@ -35,6 +35,7 @@ class Graph; class GraphContext; class ExecutionWorkload; class Tensor; +class INode; namespace detail { @@ -45,6 +46,21 @@ void default_initialize_backends(); * @param[in] g Graph to configure */ void configure_all_tensors(Graph &g); +/** Allocates all input tensors of a node. + * + * @param[in] node Node to allocate the input tensor of + */ +void allocate_all_input_tensors(INode &node); +/** Allocates all output tensors of a node. + * + * @param[in] node Node to allocate the output tensor of + */ +void allocate_all_output_tensors(INode &node); +/** Allocates const tensor of a given graph + * + * @param[in] g Graph to allocate the tensors + */ +void allocate_const_tensors(Graph &g); /** Allocates all tensors of a graph * * @param[in] g Graph to allocate the tensors @@ -88,6 +104,11 @@ void call_all_input_node_accessors(ExecutionWorkload &workload); * @param[in] workload Workload to execute */ void call_all_output_node_accessors(ExecutionWorkload &workload); +/** Prepares all tasks for execution + * + * @param[in] workload Workload to prepare + */ +void prepare_all_tasks(ExecutionWorkload &workload); /** Executes all tasks of a workload * * @param[in] workload Workload to execute |