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
#90 Introduced triton block pointer (triton.language.make_block_ptr) support, however there's no code logic to handle out-of-bound access behavior, which is specified in the boundary_check and padding_option parameters of triton.language.load/store op:
If pointer is a block pointer defined by make_block_ptr, a tensor is loaded. In this case: mask and other must be None, and boundary_check and padding_option can be specified to control the behavior of out-of-bound access.
Obviously the first memref.reinterpret_cast might go out-of-bound for the last block program instance if numel % BLOCK_SIZE != 0, there should be some sort of subview with upper bound of min(numel, offset + BLOCK_SIZE) to limit access range.
#90 Introduced triton block pointer (
triton.language.make_block_ptr
) support, however there's no code logic to handle out-of-bound access behavior, which is specified in theboundary_check
andpadding_option
parameters oftriton.language.load/store
op:See docs of tl.load and tl.store
For instance, the triton kernel:
(
BLOCK_SIZE_X=256
)triton ir:
triton strctured ir:
linalg and memref ir:
Obviously the first
memref.reinterpret_cast
might go out-of-bound for the last block program instance ifnumel % BLOCK_SIZE != 0
, there should be some sort ofsubview
with upper bound ofmin(numel, offset + BLOCK_SIZE)
to limit access range.@haishanzzzz Could you take a look? THX.
The text was updated successfully, but these errors were encountered: