TimeloopFE
Loading...
Searching...
No Matches
timeloopfe.v4.specification.Specification Class Reference

A top-level class for the Timeloop specification. More...

Inheritance diagram for timeloopfe.v4.specification.Specification:
Collaboration diagram for timeloopfe.v4.specification.Specification:

Public Member Functions

 declare_attrs (cls, *args, **kwargs)
 Initialize the attributes of this node.
 
 __init__ (self, *args, **kwargs)
 
 parse_expressions (self, Optional[Dict[str, Any]] symbol_table=None, Optional[set] parsed_ids=None)
 Parse expressions in the specification.
 
"pydot.Graph" to_diagram (self, Union[str, List[str]] container_names=(), Union[str, List[str]] ignore_containers=())
 
- Public Member Functions inherited from timeloopfe.common.base_specification.BaseSpecification
 needs_processing (self, Optional[List["Processor"]] with_processors=None, Optional[List["Processor"]] to_run=None, bool pre_parse=False)
 
 process (self, Union["Processor", List["Processor"]] with_processors=None, bool check_types=False, bool check_types_ignore_empty=True, bool reprocess=True)
 Process the specification with the given processors.
 
"Specification" from_yaml_files (cls, *args, **kwargs)
 Create a Specification object from YAML files.
 
- Public Member Functions inherited from timeloopfe.common.nodes.DictNode
 require_one_of (cls, *args)
 Require that at least one of the given keys is present.
 
 require_all_or_none_of (cls, *args)
 Require that all or none of the given keys are present.
 
"DictNode" combine (self, "DictNode" other)
 Combines this dictionary with another dictionary.
 
Any __getitem__ (self, Any __key)
 Get the value at the given key or index.
 
None __setitem__ (self, Any __key, Any __value)
 Set the value at the given key or index.
 
Any get (self, Any __key, Any __default=None)
 Gets a key from the dictionary.
 
Any setdefault (self, Any __key, Any __default=None)
 Sets the default value for a key.
 
Any pop (self, Any __key, Any __default=None)
 Pops a key from the dictionary.
 
None check_unrecognized (self, *args, **kwargs)
 Check for unrecognized keys in this node and all subnodes.
 
 __getattr__ (self, name)
 Index into the attributes or the contents of this node.
 
 __setattr__ (self, name, value)
 
- Public Member Functions inherited from timeloopfe.common.nodes.Node
 get_specifiers_from_processors (cls, "BaseSpecification" spec)
 Get the specifiers that have been set from processors.
 
 reset_specifiers_from_processors (cls, Optional[Type] processor=None)
 Reset the specifiers that have been set from processors.
 
 reset_processor_elems (cls, Optional[Type] processor=None)
 
 recognize_all (cls, bool recognize_all=True)
 Set whether all attributes under this node should be recognized.
 
str get_tag (self)
 Get the tag of this node.
 
Iterable[Tuple[Union[str, int], Any]] items (self)
 Get iterable of (key, value) or (index, value) pairs.
 
T combine_index (self, Union[str, int] key, T value)
 Combine the value at the given key with the given value.
 
str get_name (self, Union[Set, None] seen=None)
 Get the name of this node.
 
Any recursive_apply (self, callable func, bool self_first=False, set applied_to=None)
 Apply a function to this node and all subnodes.
 
 clean_empties (self)
 Remove empty nodes from this node and all subnodes.
 
bool isempty (self)
 Return True if this node is empty.
 
bool isempty_recursive (self)
 Return True if this node or all subnodes are empty.
 
 add_attr (cls, str key_or_tag, Optional[Union[type, Tuple[type,...], Tuple[None,...], Tuple[str,...], None]] required_type=None, Any default=default_unspecified_, Optional[Callable] callfunc=None, Optional[bool] part_name_match=None, Optional[bool] no_change_key=None, Any _processor_responsible_for_removing=None, Optional[Dict[str, TypeSpecifier]] _add_checker_to=None)
 Initialize a type specifier for this class.
 
List[Tget_nodes_of_type (self, Type[T] node_type)
 Return a list of all subnodes of a given type.
 
Callable get_setter_lambda (self, Union[str, int] keytag)
 Get a function that can be used to set a value in this node.
 
Callable get_combiner_lambda (self, Union[str, int] keytag)
 Get a function that can be used to combine a value to this node.
 
List[Tuple[Any, Callable]] get_setters_for_keytag (self, str keytag, bool recursive=True)
 Get a list of tuples of the form (value, setter) for all keys/tags in this node that match the given key/tag.
 
List[Tuple[Any, Callable]] get_combiners_for_keytag (self, str keytag, bool recursive=True)
 Get a list of tuples of the form (value, combiner) for all keys/tags in this node that match the given key/tag.
 
List[Tuple[Any, Callable]] get_setters_for_type (self, Type t, bool recursive=True)
 Get a list of tuples of the form (value, setter) for all keys/tags in this node that match the given type.
 
List[Tuple[Any, Callable]] get_combiners_for_type (self, Type t, bool recursive=True)
 Get a list of tuples of the form (value, combiner) for all keys/tags in this node that match the given type.
 
 __str__ (self)
 Return the name of this node.
 
 __format__ (self, format_spec)
 Formats the name of this node.
 
bool is_defined_non_default_non_empty (self, str key)
 Returns True if the given key is defined in this node and is not the default value and is not empty.
 
 unique_class_name (cls)
 Return a unique name for this class.
 

Public Attributes

arch.Architecture architecture = self["architecture"]
 
constraints.Constraints constraints = self["constraints"]
 
constraints.Constraints mapping = self["mapping"]
 
problem.Problem problem = self["problem"]
 
variables.Variables variables = self["variables"]
 
ListNode components = self["components"]
 
Mapper mapper = self["mapper"]
 
SparseOptimizations sparse_optimizations = self["sparse_optimizations"]
 
Mapspace mapspace = self["mapspace"]
 
 processors
 
- Public Attributes inherited from timeloopfe.common.base_specification.BaseSpecification
ListNode[Processorprocessors = ProcessorListHolder(kwargs["processors"])
 
 spec = self
 
bool processors = True):
 
- Public Attributes inherited from timeloopfe.common.nodes.DictNode
 spec
 
- Public Attributes inherited from timeloopfe.common.nodes.Node
Node parent_node = None
 
"BaseSpecification" spec = Node.get_global_spec()
 
 logger = logging.getLogger(self.__class__.__name__)
 
 from_data = None
 

Protected Member Functions

OutputStats _parse_timeloop_output (self, str timeloop_output_dir, str prefix)
 
- Protected Member Functions inherited from timeloopfe.common.base_specification.BaseSpecification
 _claim_nodes (self, *args, **kwargs)
 
 _processors_declare_attrs (self, *args, **kwargs)
 
 _early_init_processors (self, List["Processor"] _required_processors, **kwargs)
 
 _process (self)
 
- Protected Member Functions inherited from timeloopfe.common.nodes.DictNode
 _update_combine_pre_parse (self, dict other)
 
None _check_alias (self, key)
 
- Protected Member Functions inherited from timeloopfe.common.nodes.Node
Dict[str, TypeSpecifier_get_type_specifiers (cls, "BaseSpecification" spec)
 Get the type specifiers for this node.
 
 _get_all_recognized (self)
 
Dict[Union[str, int], TypeSpecifier_get_index2checker (self, Optional[List[Tuple[str, Any]]] key2elem=None)
 
 _parse_elem (self, Union[str, int] key, TypeSpecifier check, Any value_override=None)
 
 _parse_elems (self)
 
 _parse_extra_elems (self, List[Tuple[str, Any]] key2elem)
 
 _check_unrecognized (self, ignore_empty=False, ignore_should_have_been_removed_by=False)
 
 _parse_expression (self, Union[str, int] index, Dict[str, Any] symbol_table, Optional[TypeSpecifier] checker=None)
 

Additional Inherited Members

- Static Public Member Functions inherited from timeloopfe.common.nodes.Node
"BaseSpecification" get_global_spec ()
 Get the global specification object.
 
 set_global_spec ("BaseSpecification" spec)
 Set the global specification object.
 
Any try_combine (Any a, Any b, Union["Node", None] innonde=None, Union[int, str, None] index=None)
 Try to combine two values.
 
- Static Protected Member Functions inherited from timeloopfe.common.nodes.Node
str _get_tag (x)
 
- Protected Attributes inherited from timeloopfe.common.base_specification.BaseSpecification
ListNode[Processor_required_processors
 
dict _processor_attributes = {}
 
List[Processor_processors_run = self["_processors_run"]
 
List[Processor_processors_run_pre_parse
 
bool _parsed_expressions = self["_parsed_expressions"]
 
- Protected Attributes inherited from timeloopfe.common.nodes.DictNode
 _require_one_of = _require_one_of
 
 _require_all_or_none_of = _require_all_or_none_of
 
- Protected Attributes inherited from timeloopfe.common.nodes.Node
tuple _init_args = (args, kwargs)
 
bool _default_parse = False
 

Detailed Description

A top-level class for the Timeloop specification.

Attributes: architecture: The top-level architecture description. components: List of compound components. constraints: Additional constraints on the architecture and mapping. mapping: Additional constraints on the architecture and mapping. problem: The problem specification. variables: Variables to be used in parsing. mapper: Directives to control the mapping process. sparse_optimizations: Additional sparse optimizations available to the architecture. mapspace: The top-level mapspace description. globals: Global inclusion of extra parsing functions and environment variables.

Note: Inherits from BaseSpecification.

Constructor & Destructor Documentation

◆ __init__()

timeloopfe.v4.specification.Specification.__init__ ( self,
* args,
** kwargs )

Member Function Documentation

◆ _parse_timeloop_output()

OutputStats timeloopfe.v4.specification.Specification._parse_timeloop_output ( self,
str timeloop_output_dir,
str prefix )
protected

◆ declare_attrs()

timeloopfe.v4.specification.Specification.declare_attrs ( cls,
* args,
** kwargs )

Initialize the attributes of this node.

Reimplemented from timeloopfe.common.base_specification.BaseSpecification.

◆ parse_expressions()

timeloopfe.v4.specification.Specification.parse_expressions ( self,
Optional[Dict[str, Any]] symbol_table = None,
Optional[set] parsed_ids = None )

Parse expressions in the specification.

Args: symbol_table (Optional[Dict[str, Any]], optional): Symbol table to be used for parsing. Defaults to None. parsed_ids (Optional[set], optional): Set of IDs of specifications that have already been parsed. Defaults to None.

Reimplemented from timeloopfe.common.base_specification.BaseSpecification.

◆ to_diagram()

"pydot.Graph" timeloopfe.v4.specification.Specification.to_diagram ( self,
Union[str, List[str]] container_names = (),
Union[str, List[str]] ignore_containers = () )

Member Data Documentation

◆ architecture

arch.Architecture timeloopfe.v4.specification.Specification.architecture = self["architecture"]

◆ components

ListNode timeloopfe.v4.specification.Specification.components = self["components"]

◆ constraints

constraints.Constraints timeloopfe.v4.specification.Specification.constraints = self["constraints"]

◆ mapper

Mapper timeloopfe.v4.specification.Specification.mapper = self["mapper"]

◆ mapping

constraints.Constraints timeloopfe.v4.specification.Specification.mapping = self["mapping"]

◆ mapspace

Mapspace timeloopfe.v4.specification.Specification.mapspace = self["mapspace"]

◆ problem

problem.Problem timeloopfe.v4.specification.Specification.problem = self["problem"]

◆ processors

timeloopfe.v4.specification.Specification.processors

◆ sparse_optimizations

SparseOptimizations timeloopfe.v4.specification.Specification.sparse_optimizations = self["sparse_optimizations"]

◆ variables

timeloopfe.v4.specification.Specification.variables = self["variables"]

The documentation for this class was generated from the following file: