Skip to content

Performance Gap: conv+pool is not fused into one linear operation #3123

Description

@Zohaib58

HEIR's pipeline does not fuse linalg.conv + linalg.pooling into a single linear operation (BSGS matrix-vector product). The LinalgCanonicalizations pass converts linalg.pooling_nchw_sum into a separate linalg.conv_2d_nchw_fchw, so each pool consumes its own multiplicative level. In contrast, a hand-written CROSS implementation fuses conv+pool into one matrix, saving ~2 levels for AlexNet-Tiny (depth 9 vs depth 7)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions