You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Data flow is currently implicit in our representation. This causes some problems:
we can't measure the register pressure
it is hard to measure the size of memory blocks. This leads to a O(n^3) search space representation.
we don't know when to introduce broadcasts
reductions are hard to manipulate and we cannot represent parallel reductions
we do not know when to privatise shared memory
Bellow is the modifications necessary to implement the new value system:
Allow accessing the value produce by an instruction with a Value object. This lays out the ground work for the rest of the modifications. WIP: Expose data-flow information in Telamon #63
- Define a Value struct, along with accessors.
- Allow to store the result of an instruction in a value
Expose values in code generation
- Expose a specified value struct
- Name values
Expose values in the .exh file
Add a new operand kind to read a value
- Expose the points where a value is created and used
- Enforce ordering constraints from the exh.
Make the performance model value-aware
- Take dependencies between values uses and defs into account.
Handle the last operator
Handle dimensions mapping
Handle the fby operator
Update the builder to use values and remove inst and reduce operands.
Handle Lowering
Remove the old operand system.
remove instruction type
The text was updated successfully, but these errors were encountered:
64: replace `ir::Type::Void` by an option r=ulysseB a=ulysseB
We currently represented instructions that did not produce a value with the `ir::Type::Void` variant. However, this produced a lot of special cases where we add to test if the type was void. Instead we now use an `Option<ir::Type>` in the places where the type could before be void. This will simplify future improvements to the value system, in particular, #41 .
Co-authored-by: Ulysse Beaugnon <[email protected]>
ulysseB
changed the title
Exopose values and variables in the IR
Expose values and variables in the IR
Aug 19, 2018
Data flow is currently implicit in our representation. This causes some problems:
Bellow is the modifications necessary to implement the new value system:
Value
object. This lays out the ground work for the rest of the modifications. WIP: Expose data-flow information in Telamon #63- Define a
Value
struct, along with accessors.- Allow to store the result of an instruction in a value
- Expose a specified value struct
- Name values
- Expose the points where a value is created and used
- Enforce ordering constraints from the exh.
- Take dependencies between values uses and defs into account.
The text was updated successfully, but these errors were encountered: