loki.transformations.single_column.devector
Classes
  | 
A   | 
  | 
A set of utilities that can be used to strip vector loops from a   | 
- class RemoveLoopTransformer(dimension, *args, **kwargs)
 Bases:
TransformerA
Transformerthat removes all loops over the specified dimension.- Parameters:
 horizontal (
Dimension) – The dimension specifying the horizontal vector dimension
- visit_Loop(loop, **kwargs)
 
- class SCCDevectorTransformation(horizontal, trim_vector_sections=False)
 Bases:
TransformationA set of utilities that can be used to strip vector loops from a
Subroutineand determine the regions of the IR to be placed within thread-parallel loop directives.- Parameters:
 horizontal (
Dimension) –Dimensionobject describing the variable conventions used in code to define the horizontal data dimension and iteration space.trim_vector_sections (bool) – Flag to trigger trimming of extracted vector sections to remove nodes that are not assignments involving vector parallel arrays.
- classmethod extract_vector_sections(section, horizontal)
 Extract a contiguous sections of nodes that contains vector-level computations and are not interrupted by recursive subroutine calls or nested control-flow structures.
- classmethod get_trimmed_sections(routine, horizontal, sections)
 Trim extracted vector sections to remove nodes that are not assignments involving vector parallel arrays.
- transform_subroutine(routine, **kwargs)
 Apply SCCDevector utilities to a
Subroutine.- Parameters:
 routine (
Subroutine) – Subroutine to apply this transformation to.role (string) – Role of the subroutine in the call tree; should be
"kernel"
- process_kernel(routine)
 Applies the SCCDevector utilities to a “kernel”. This consists simply of stripping vector loops and determing which sections of the IR can be placed within thread-parallel loops.
- Parameters:
 routine (
Subroutine) – Subroutine to apply this transformation to.
- process_driver(routine, targets=())
 Applies the SCCDevector utilities to a “driver”. This consists simply of stripping vector loops and determining which sections of the IR can be placed within thread-parallel loops.
- Parameters:
 routine (
Subroutine) – Subroutine to apply this transformation to.targets (list or string) – List of subroutines that are to be considered as part of the transformation call tree.