Skip to content
Snippets Groups Projects
Commit fb245d4a authored by Olivier BICHLER's avatar Olivier BICHLER
Browse files

Initial commit

parent 0d33ca05
No related branches found
No related tags found
2 merge requests!152Update Aidge export to take a graph view has an argument instead of a...,!131New features to simplify exports
......@@ -123,6 +123,8 @@ void explicitCastMove(std::shared_ptr<GraphView> graphView);
*/
void expandMetaOps(std::shared_ptr<GraphView> graph, bool recursive = false);
void fuseToMetaOps(std::shared_ptr<GraphView> graph, const std::string& query, const std::string& name = "");
} // namespace Aidge
#endif /* AIDGE_CORE_UTILS_RECIPES_H_ */
/********************************************************************************
* Copyright (c) 2023 CEA-List
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* SPDX-License-Identifier: EPL-2.0
*
********************************************************************************/
#include <memory>
#include "aidge/graph/Node.hpp"
#include "aidge/graph/GraphView.hpp"
#include "aidge/operator/MetaOperator.hpp"
#include "aidge/recipes/Recipes.hpp"
//Graph Regex
#include "aidge/graphRegex/GraphRegex.hpp"
void Aidge::fuseToMetaOps(std::shared_ptr<GraphView> graphView, const std::string& query, const std::string& name) {
std::shared_ptr<GraphRegex> regex = std::make_shared<GraphRegex>();
regex->setKeyFromGraph(graphView);
regex->addQuery(query);
size_t nbReplaced = 0;
const auto matches = regex->match(graphView);
for (const auto& solution : matches) {
auto microGraph = std::make_shared<GraphView>();
microGraph->add(solution->getAll());
auto metaOp = MetaOperator(query.c_str(), microGraph, name);
const auto success = GraphView::replace(solution->getAll(), {metaOp});
if (!success) {
Log::notice("Could not replace sub-graph with meta operator");
}
else {
++nbReplaced;
}
}
Log::info("Replaced {} (out of {}) matching sub-graph with meta operators", nbReplaced, matches.size());
}
/********************************************************************************
* Copyright (c) 2023 CEA-List
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* SPDX-License-Identifier: EPL-2.0
*
********************************************************************************/
#include <catch2/catch_test_macros.hpp>
#include <set>
#include "aidge/data/Tensor.hpp"
#include "aidge/graph/GraphView.hpp"
#include "aidge/recipes/Recipes.hpp"
namespace Aidge {
TEST_CASE("[cpu/recipes] FuseToMetaOps", "[FuseToMetaOps][recipes]") {
}
} // namespace Aidge
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment