|
CGRA-ME
|
#include <CGRA/ConfigStore.h>#include <CGRA/Mapper.h>#include <CGRA/Mapping.h>#include <CGRA/MRRG.h>#include <CGRA/MRRGProcedureCache.h>#include <CGRA/OpGraph.h>#include <functional>#include <iosfwd>Go to the source code of this file.
Classes | |
| struct | ILPHeuristicMapperOptions |
| struct | ILPHeuristicMapperOptions::Solvers |
| struct | ILPHeuristicMapperOptions::Solvers::SolverID |
| struct | ILPHeuristicMapperCaches |
| class | ILPHeuristicMapper |
Typedefs | |
| using | NeighbourFinder = std::function< FunctionalUnitNeighbours(const MRRG &, const std::vector< MRRG::NodeDescriptor > &)> |
| using | SolutionSelector = std::function< Mapping(const Mapping &)> |
| using | EdgeCoster = std::function< double(const FunctionalUnitNeighbours &fu_neighbours, const OpGraphOp &src_op, const MRRG::NodeDescriptor &src_node, const OpGraphOp &sink_op, const MRRG::NodeDescriptor &sink_node)> |
| using | FUCoster = std::function< double(const OpGraph &opgraph, const MRRG &mrrg, const OpGraph::OpDescriptor &op, const MRRG::NodeDescriptor &node)> |
| using | NodeFilter = std::function< bool(const MRRG::NodeDescriptor &node)> |
| using | OpNodeFilter = std::function< bool(const OpGraph::OpDescriptor &op, const MRRG::NodeDescriptor &node)> |
| using | MapOpsJustByConnectivityOptions = ILPHeuristicMapperOptions |
| using | RouteOpMappingByChoosingPathsOptions = ILPHeuristicMapperOptions |
Functions | |
| Mapping | mapViaConnectivityAndPathChoosing (std::unordered_map< std::string, std::string > fix_port, const OpGraph &opgraph, const MRRG &mrrg, const Mapping &initial_mapping, ILPHeuristicMapperOptions options, ILPHeuristicMapperCaches caches={}) |
| Mapping | mapOpsJustByConnectivity (std::unordered_map< std::string, std::string > fix_port, const OpGraph &opgraph, const MRRG &mrrg, ILPHeuristicMapperOptions options, ILPHeuristicMapperCaches caches={}, Mapping initial_mapping=Mapping{std::make_shared< CGRA >(), -1, std::make_shared< OpGraph >()}) |
| Mapping | routeOpMappingByChoosingPaths (std::unordered_map< std::string, std::string > fix_port, const Mapping &op_mapping, const OpGraph &opgraph, const MRRG &mrrg, RouteOpMappingByChoosingPathsOptions options={ {}, acceptTheFirstSolution, {} }, ILPHeuristicMapperCaches caches={}) |
Variables | |
| const SolutionSelector | acceptTheFirstSolution = [](const Mapping& m){ Mapping copy = m; copy.setStatus(MappingStatus::success); return copy; } |
| const EdgeCoster | noEdgeCosting = {} |
| const NodeFilter | allowAllNodes |
| const OpNodeFilter | allowAllNodesForOps |
| using EdgeCoster = std::function<double( const FunctionalUnitNeighbours& fu_neighbours, const OpGraphOp& src_op, const MRRG::NodeDescriptor& src_node, const OpGraphOp& sink_op, const MRRG::NodeDescriptor& sink_node )> |
Definition at line 34 of file HeuristicMappers.h.
| using FUCoster = std::function<double( const OpGraph& opgraph, const MRRG& mrrg, const OpGraph::OpDescriptor& op, const MRRG::NodeDescriptor& node )> |
Definition at line 39 of file HeuristicMappers.h.
Definition at line 134 of file HeuristicMappers.h.
| using NeighbourFinder = std::function<FunctionalUnitNeighbours(const MRRG&, const std::vector<MRRG::NodeDescriptor>&)> |
Definition at line 26 of file HeuristicMappers.h.
| using NodeFilter = std::function<bool( const MRRG::NodeDescriptor& node )> |
Definition at line 46 of file HeuristicMappers.h.
| using OpNodeFilter = std::function<bool( const OpGraph::OpDescriptor& op, const MRRG::NodeDescriptor& node )> |
Definition at line 53 of file HeuristicMappers.h.
Definition at line 154 of file HeuristicMappers.h.
| using SolutionSelector = std::function<Mapping(const Mapping&)> |
Definition at line 28 of file HeuristicMappers.h.
| Mapping mapOpsJustByConnectivity | ( | std::unordered_map< std::string, std::string > | fix_port, |
| const OpGraph & | opgraph, | ||
| const MRRG & | mrrg, | ||
| ILPHeuristicMapperOptions | options, | ||
| ILPHeuristicMapperCaches | caches = {}, |
||
| Mapping | initial_mapping = Mapping{std::make_shared< CGRA >(), -1, std::make_shared< OpGraph >()} |
||
| ) |
Finds compatible FU nodes in mrrg for the ops in opgraph, and uses just the connectivity of these FUs to come up with a op mapping.
Definition at line 1707 of file HeuristicMappers.cpp.
| Mapping mapViaConnectivityAndPathChoosing | ( | std::unordered_map< std::string, std::string > | fix_port, |
| const OpGraph & | opgraph, | ||
| const MRRG & | mrrg, | ||
| const Mapping & | initial_mapping, | ||
| ILPHeuristicMapperOptions | options, | ||
| ILPHeuristicMapperCaches | caches = {} |
||
| ) |
Definition at line 347 of file HeuristicMappers.cpp.
| Mapping routeOpMappingByChoosingPaths | ( | std::unordered_map< std::string, std::string > | fix_port, |
| const Mapping & | op_mapping, | ||
| const OpGraph & | opgraph, | ||
| const MRRG & | mrrg, | ||
| RouteOpMappingByChoosingPathsOptions | options = { {}, acceptTheFirstSolution, {} }, |
||
| ILPHeuristicMapperCaches | caches = {} |
||
| ) |
Queries op_mapping for the FUs that the ops in opgraph are mapped to, finds candidate paths between those FUs, and tries to find a legal set of paths.
Definition at line 1718 of file HeuristicMappers.cpp.
| const SolutionSelector acceptTheFirstSolution = [](const Mapping& m){ Mapping copy = m; copy.setStatus(MappingStatus::success); return copy; } |
Definition at line 41 of file HeuristicMappers.h.
| const NodeFilter allowAllNodes |
Definition at line 31 of file HeuristicMappers.cpp.
| const OpNodeFilter allowAllNodesForOps |
Definition at line 32 of file HeuristicMappers.cpp.
| const EdgeCoster noEdgeCosting = {} |
Definition at line 42 of file HeuristicMappers.h.
1.8.17