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
Support i1 datatype with an experimental flag. (iree-org#18713)
Enable packed i1 datatype storage
This commit introduces support for packed storage of the `i1` (bit)
datatype. When subbyte type packing is enabled via the
`--iree-experimental-packed-i1-storage` option, vectors of `i1` elements
will be stored in a compact packed representation.
For example, a `vector<6xi1>` will occupy a single byte of memory with
the 6 bit elements packed together and 2 padding bits. A
`vector<3x3xi1>` will take up 2 bytes, with the 9 bit elements packed
across the bytes and 7 padding bits.
Limitations:
- To ensure correct behavior, the tiling configuration aligns the
innermost dimension data loads with byte boundaries. This is
necessitated by the current lack of emulation for unaligned subbyte
vector loading/storing.
- Unaligned subbyte emulation support can be added in the future, though
it may incur some performance overhead.
This change requires corresponding updates in the frontend to utilize
the packed `i1` storage format.
Signed-off-by: Alan Li <[email protected]>
Signed-off-by: Giacomo Serafini <[email protected]>
0 commit comments