Mojo struct
RegisterAccumulatorLayout
@register_passable(trivial)
struct RegisterAccumulatorLayout[MMA_M: Int, MMA_N: Int, num_m_mmas: Int, num_n_mmas: Int, consumer_group_size: Int, *, frag_simdwidth: Int = 2]
Implemented traits
AnyType
,
Copyable
,
ImplicitlyCopyable
,
Movable
,
UnknownDestructibility
Aliases
__copyinit__is_trivial
alias __copyinit__is_trivial = True
__del__is_trivial
alias __del__is_trivial = True
__moveinit__is_trivial
alias __moveinit__is_trivial = True
element_layout
alias element_layout = Layout.row_major(1, frag_simdwidth)
frag_size
alias frag_size = ((MMA_M * MMA_N) // consumer_group_size)
num_row_blocks_per_mma
alias num_row_blocks_per_mma = 2
rows_of_frags_layout
alias rows_of_frags_layout = Layout.row_major((num_m_mmas * num_n_mmas), ((MMA_M * MMA_N) // consumer_group_size))
vec_output_layout
alias vec_output_layout = Layout.__init__(IntTuple.__init__[__origin_of()](IntTuple[__origin_of()](2, num_m_mmas), IntTuple[__origin_of()]((((MMA_M * MMA_N) // consumer_group_size) // (frag_simdwidth * 2)), num_n_mmas), Tuple[]()), IntTuple.__init__[__origin_of()](IntTuple[__origin_of()](frag_simdwidth, ((MMA_M * MMA_N) // consumer_group_size)), IntTuple[__origin_of()]((frag_simdwidth * 2), (((MMA_M * MMA_N) // consumer_group_size) * num_m_mmas)), Tuple[]()))
Methods
description
static description() -> RegisterAccumulatorDescription
Returns:
RegisterAccumulatorDescription
Was this page helpful?
Thank you! We'll create more content like this.
Thank you for helping us improve!