Skip to content
Snippets Groups Projects

Added new resource algorithm for minimizing pe -> memory connections etc

Merged Simon Bjurek requested to merge add-new-res-alloc-alg into master
5 unresolved threads
  • Fixed bug in RecursiveListScheduler.
  • Improved performance in ListScheduler by modifying evaluation order.
  • Added show() method for Architecture so it can be rendered without an enriched shell.
  • Added new resource algorithm for minimizing pe -> memory connections and prepared for one that will minimize memory -> pe connections.
Edited by Simon Bjurek

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
981 if processing_elements is None:
982 raise ValueError(
983 "processing_elements must be provided if heuristic = 'min_mem_to_pe'"
984 )
985 return self._split_ports_minimize_memory_to_pe_connections(
986 read_ports,
987 write_ports,
988 total_ports,
989 sequence=sorted(self),
990 processing_elements=processing_elements,
957 991 )
958 992 else:
959 993 raise ValueError("Invalid heuristic provided.")
960 994
961 def split_ports_sequentially(
995 def _split_ports_sequentially(
  • Simon Bjurek changed the description

    changed the description

  • Simon Bjurek marked this merge request as ready

    marked this merge request as ready

  • Simon Bjurek changed title from Added new resource algorithm for minimizing pe -> memory connections, prepared to Added new resource algorithm for minimizing pe -> memory connections etc

    changed title from Added new resource algorithm for minimizing pe -> memory connections, prepared to Added new resource algorithm for minimizing pe -> memory connections etc

  • 939 946 The total number of ports used when splitting process collection based on
    940 947 memory variable access.
    941 948
    949 processing_elements : list[ProcessingElements], optional
  • 924 924 raise KeyError(f"{proc} not in {source.entity_name}")
    925 925 self._build_dicts()
    926 926
    927 def show(
    928 self,
    929 fmt: str | None = None,
    930 branch_node: bool = True,
    931 cluster: bool = True,
    932 splines: str = "spline",
    • Suggested change
      932 splines: str = "spline",
      932 splines: Literal["spline", "line", "ortho", "polyline", "curved"] = "spline",

      probably have to import Literal from typing.

    • Please register or sign in to reply
  • 1046 1051 )
    1047 1052 )
    1048 # Return the list of created ProcessCollections
    1049 1053 return collections
    1050 1054
    1055 def _split_ports_minimize_pe_to_memory_connections(
    1056 self,
    1057 read_ports: int,
    1058 write_ports: int,
    1059 total_ports: int,
    1060 sequence: list[Process],
    1061 processing_elements: list["ProcessingElement"],
    1062 ) -> list["ProcessCollection"]:
    1063
    1064 if set(self.collection) != set(sequence):
    1065 raise KeyError("processes in `sequence` must be equal to processes in self")
  • 926 931
    927 932 * "graph_color"
    928 933 * "left_edge"
    934 * "min_pe_to_mem"
    935 * "min_mem_to_pe"
  • Some minor comments to sort out now or later.

  • Oscar Gustafsson approved this merge request

    approved this merge request

  • Simon Bjurek mentioned in merge request !508 (merged)

    mentioned in merge request !508 (merged)

  • Please register or sign in to reply
    Loading