Halide 19.0.0
Halide compiler and libraries
|
The Dim struct represents one loop in the schedule's representation of a loop nest. More...
#include <Schedule.h>
Public Member Functions | |
bool | is_pure () const |
Can this loop be evaluated in any order (including in parallel)? Equivalently, are there no data hazards between evaluations of the Func at distinct values of this var? | |
bool | is_rvar () const |
Did this loop originate from an RVar (in which case the bounds of the loops are algorithmically meaningful)? | |
bool | is_unordered_parallel () const |
Could multiple iterations of this loop happen at the same time, with reads and writes interleaved in arbitrary ways according to the memory model of the underlying compiler and machine? | |
bool | is_parallel () const |
Could multiple iterations of this loop happen at the same time? Vectorized and GPULanes loop types are parallel but not unordered, because the loop iterations proceed together in lockstep with some well-defined outcome if there are hazards. | |
Public Attributes | |
std::string | var |
Name of the loop variable. | |
ForType | for_type |
How are the loop values traversed (e.g. | |
DeviceAPI | device_api |
On what device does the body of the loop execute (e.g. | |
DimType | dim_type |
The DimType tells us what transformations are legal on this loop (see the DimType enum above). | |
Partition | partition_policy |
The strategy for loop partitioning. | |
The Dim struct represents one loop in the schedule's representation of a loop nest.
Definition at line 444 of file Schedule.h.
|
inline |
Can this loop be evaluated in any order (including in parallel)? Equivalently, are there no data hazards between evaluations of the Func at distinct values of this var?
Definition at line 464 of file Schedule.h.
References dim_type, Halide::Internal::PureRVar, and Halide::Internal::PureVar.
|
inline |
Did this loop originate from an RVar (in which case the bounds of the loops are algorithmically meaningful)?
Definition at line 470 of file Schedule.h.
References dim_type, Halide::Internal::ImpureRVar, and Halide::Internal::PureRVar.
|
inline |
Could multiple iterations of this loop happen at the same time, with reads and writes interleaved in arbitrary ways according to the memory model of the underlying compiler and machine?
Definition at line 478 of file Schedule.h.
References for_type, and Halide::Internal::is_unordered_parallel().
|
inline |
Could multiple iterations of this loop happen at the same time? Vectorized and GPULanes loop types are parallel but not unordered, because the loop iterations proceed together in lockstep with some well-defined outcome if there are hazards.
Definition at line 486 of file Schedule.h.
References for_type, and Halide::Internal::is_parallel().
std::string Halide::Internal::Dim::var |
Name of the loop variable.
Definition at line 446 of file Schedule.h.
ForType Halide::Internal::Dim::for_type |
How are the loop values traversed (e.g.
unrolled, vectorized, parallel)
Definition at line 449 of file Schedule.h.
Referenced by is_parallel(), and is_unordered_parallel().
DeviceAPI Halide::Internal::Dim::device_api |
On what device does the body of the loop execute (e.g.
Host, GPU, Hexagon)
Definition at line 452 of file Schedule.h.
DimType Halide::Internal::Dim::dim_type |
The DimType tells us what transformations are legal on this loop (see the DimType enum above).
Definition at line 456 of file Schedule.h.
Partition Halide::Internal::Dim::partition_policy |
The strategy for loop partitioning.
Definition at line 459 of file Schedule.h.