Skip to content

COL broadcast doesn't work for multiple tiles in dest. #1297

@uvelimirovicTT

Description

@uvelimirovicTT

Describe the bug

The bug was discovered while trying to extend test_unpack_A.py test and test_bcast.py to support multiple tiles as input

When doing a test on unpack_A_test.cpp kernels, it appears that when we try to put the kernels in for loop for multiple tiles, it fails on COL broadcast if we num_tiles_in_block != 1.

    const int num_tiles_in_block   = params->NUM_TILES_IN_BLOCK;
    const int num_blocks           = params->NUM_BLOCKS;

    _llk_unpack_hw_configure_<is_fp32_dest_acc_en, disable_src_zero_flag>(
        formats.unpack_src,
        formats.unpack_src,
        formats.unpack_dst,
        formats.unpack_dst,
        params->TEST_FACE_R_DIM,
        params->TEST_FACE_R_DIM,
        params->num_faces,
        params->num_faces);
    _llk_unpack_configure_stoch_rnd_<STOCHASTIC_RND>();
    _llk_unpack_A_init_<BROADCAST_TYPE, ACC_TO_DEST, REUSE_DEST_TYPE, unpack_to_dest>(
        params->UNPACK_TRANSPOSE_FACES,
        params->UNPACK_TRANSPOSE_WITHIN_FACE,
        params->TEST_FACE_R_DIM,
        params->num_faces,
        formats.unpack_src,
        formats.unpack_dst);
    for (int i = 0; i < num_tiles_in_block * num_blocks; ++i)
    {
        _llk_unpack_A_<BROADCAST_TYPE, ACC_TO_DEST, REUSE_DEST_TYPE, unpack_to_dest>(L1_ADDRESS(buffer_A[i]), formats.unpack_src, formats.unpack_dst);
    }
    _llk_unpack_A_uninit_<BROADCAST_TYPE>(params->TEST_FACE_R_DIM);

It appears that unpack and math have different configurations that prevent them from indexing right tiles in dest together when working with broadcast = COL.

Metadata

Metadata

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions