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.