• Umang Yadav's avatar
    DepthToSpace and pointwise unary operations fusion (#986) · cf0b6d6d
    Umang Yadav authored
    In migraphx, DepthToSpace (d2s) is implemented as reshape --> transpose --> contiguous --> reshape.
    
    This PR adds matcher to find d2s + unary pointwise ops.
    
    Application of the matcher moves the pointwise unary operation before the contiguous and reshape of the d2s.
    So it becomes
    reshape --> transpose --> unary --> contiguous --> reshape.
    
    Motivation is that, later pointwise module would be created out of unary --> contiguous --> reshape. Codegen for this pointwise module can write out buffer such that explicit contiguous and reshape wouldn't be required.
    
    This transformation is not always guaranteed to improve performance, since unary op will operate on non-standard shape. So, we would need some tuning mechanism to make decision.
    
    #905 pending PR for binary operations.
    cf0b6d6d
simplify_reshapes_test.cpp 40 KB