diff options
Diffstat (limited to 'src/dynamic_fusion/sketch/gpu/GpuOperatorGroup.cpp')
-rw-r--r-- | src/dynamic_fusion/sketch/gpu/GpuOperatorGroup.cpp | 48 |
1 files changed, 22 insertions, 26 deletions
diff --git a/src/dynamic_fusion/sketch/gpu/GpuOperatorGroup.cpp b/src/dynamic_fusion/sketch/gpu/GpuOperatorGroup.cpp index 7bb14c8698..aec8b9db4f 100644 --- a/src/dynamic_fusion/sketch/gpu/GpuOperatorGroup.cpp +++ b/src/dynamic_fusion/sketch/gpu/GpuOperatorGroup.cpp @@ -36,20 +36,15 @@ namespace std::vector<DependencyGraph::TensorId> get_tensor_ids(const std::vector<const ITensorInfo *> tensors) { std::vector<DependencyGraph::TensorId> tensor_ids{}; - std::transform( - std::begin(tensors), std::end(tensors), - std::back_inserter(tensor_ids), - [](const auto & t) - { - return t->id(); - }); + std::transform(std::begin(tensors), std::end(tensors), std::back_inserter(tensor_ids), + [](const auto &t) { return t->id(); }); return tensor_ids; } } // namespace Operator::Operator(OperatorId id, GpuOperatorType operator_type, const ArgumentPack<ITensorInfo> &tensors) - : _id{ id }, _operator_type{ operator_type }, _tensors{ tensors } + : _id{id}, _operator_type{operator_type}, _tensors{tensors} { } @@ -73,69 +68,69 @@ bool GpuOperatorGroup::try_add_operator(const Operator &op, bool is_output) cons const auto src_tensor_ids = get_tensor_ids(op.tensors().get_const_src_tensors()); const auto dst_tensor_ids = get_tensor_ids(op.tensors().get_const_dst_tensors()); // Constraint 1 - if(!_graph.try_add_operator_as_linear(op.id(), src_tensor_ids, dst_tensor_ids, is_output)) + if (!_graph.try_add_operator_as_linear(op.id(), src_tensor_ids, dst_tensor_ids, is_output)) { return false; } // Constraint 2 - if(_operators.size() >= max_fused_operators) + if (_operators.size() >= max_fused_operators) { return false; } // Constraint 3.1: Pattern: (Unfusable) - if(_operators.size() > 0 && get_root_operator()->operator_type() == GpuOperatorType::Unfusable) + if (_operators.size() > 0 && get_root_operator()->operator_type() == GpuOperatorType::Unfusable) { return false; } // Constraint 3.2 - if(_operators.size() > 0 && (op.operator_type() != GpuOperatorType::Simple)) + if (_operators.size() > 0 && (op.operator_type() != GpuOperatorType::Simple)) { return false; } // Constraint 4 - if(op.operator_type() != GpuOperatorType::Unfusable && op.tensors().get_const_dst_tensors().size() != 1U) + if (op.operator_type() != GpuOperatorType::Unfusable && op.tensors().get_const_dst_tensors().size() != 1U) { return false; } // Constraint 5 - if(_operators.size() > 0) + if (_operators.size() > 0) { const auto root_dst_tensors = get_root_operator()->tensors().get_const_dst_tensors(); ARM_COMPUTE_ERROR_ON(root_dst_tensors.empty()); const auto first_dst_tensor = root_dst_tensors[0]; const auto dst_tensors = op.tensors().get_const_dst_tensors(); - for(const auto &t : root_dst_tensors) + for (const auto &t : root_dst_tensors) { - if(detail::have_different_dimensions(t->tensor_shape(), first_dst_tensor->tensor_shape(), 0)) + if (detail::have_different_dimensions(t->tensor_shape(), first_dst_tensor->tensor_shape(), 0)) { return false; } } - for(const auto &t : dst_tensors) + for (const auto &t : dst_tensors) { - if(detail::have_different_dimensions(t->tensor_shape(), first_dst_tensor->tensor_shape(), 0)) + if (detail::have_different_dimensions(t->tensor_shape(), first_dst_tensor->tensor_shape(), 0)) { return false; } } } // Constraint 6 - if(_operators.size() > 0) + if (_operators.size() > 0) { const auto root_dst_tensors = get_root_operator()->tensors().get_const_dst_tensors(); ARM_COMPUTE_ERROR_ON(root_dst_tensors.empty()); const auto first_dst_tensor_layout = root_dst_tensors[0]->data_layout(); const auto dst_tensors = op.tensors().get_const_dst_tensors(); - for(const auto &t : root_dst_tensors) + for (const auto &t : root_dst_tensors) { - if(t->data_layout() != first_dst_tensor_layout) + if (t->data_layout() != first_dst_tensor_layout) { return false; } } - for(const auto &t : dst_tensors) + for (const auto &t : dst_tensors) { - if(t->data_layout() != first_dst_tensor_layout) + if (t->data_layout() != first_dst_tensor_layout) { return false; } @@ -151,16 +146,17 @@ void GpuOperatorGroup::add_operator(const Operator &op, bool is_output) _graph.add_operator_as_linear(op.id(), src_tensor_ids, dst_tensor_ids, is_output); _operators[op.id()] = op; } -Operator GpuOperatorGroup::new_operator(const GpuOperatorType &operator_type, const ArgumentPack<ITensorInfo> &tensors) const +Operator GpuOperatorGroup::new_operator(const GpuOperatorType &operator_type, + const ArgumentPack<ITensorInfo> &tensors) const { auto new_id = static_cast<OperatorId>(_operators.size()); - return Operator{ new_id, operator_type, tensors }; + return Operator{new_id, operator_type, tensors}; } const Operator *GpuOperatorGroup::get_root_operator() const { const auto roots = _graph.get_root_ops(); ARM_COMPUTE_ERROR_ON(roots.size() > 1); - if(roots.empty()) + if (roots.empty()) { return nullptr; } |