Skip to main content

Mojo struct

RegisterAccumulatorLayout

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, ImplicitlyDestructible, Movable, RegisterPassable, TrivialRegisterPassable

comptime members

element_layout

comptime element_layout = Layout.row_major(VariadicList(1, frag_simdwidth))

frag_size

comptime frag_size = ((MMA_M * MMA_N) // consumer_group_size)

num_row_blocks_per_mma

comptime num_row_blocks_per_mma = 2

rows_of_frags_layout

comptime rows_of_frags_layout = Layout.row_major(VariadicList((num_m_mmas * num_n_mmas), RegisterAccumulatorLayout[MMA_M, MMA_N, num_m_mmas, num_n_mmas, consumer_group_size, frag_simdwidth=frag_simdwidth].frag_size))

vec_output_layout

comptime vec_output_layout = Layout(IntTuple(VariadicList(IntTuple(VariadicList(2, num_m_mmas)), IntTuple(VariadicList((RegisterAccumulatorLayout[MMA_M, MMA_N, num_m_mmas, num_n_mmas, consumer_group_size, frag_simdwidth=frag_simdwidth].frag_size // (2 * frag_simdwidth)), num_n_mmas))), Tuple()), IntTuple(VariadicList(IntTuple(VariadicList(frag_simdwidth, RegisterAccumulatorLayout[MMA_M, MMA_N, num_m_mmas, num_n_mmas, consumer_group_size, frag_simdwidth=frag_simdwidth].frag_size)), IntTuple(VariadicList((2 * frag_simdwidth), (num_m_mmas * RegisterAccumulatorLayout[MMA_M, MMA_N, num_m_mmas, num_n_mmas, consumer_group_size, frag_simdwidth=frag_simdwidth].frag_size)))), Tuple()))

Methods

description

static description() -> RegisterAccumulatorDescription

Returns:

RegisterAccumulatorDescription

Was this page helpful?