This is an archive of the discontinued LLVM Phabricator instance.

[mlir][Linalg] Tile sizes for Conv ops vectorization added as pass arguments
ClosedPublic

Authored by limo1996 on Sep 30 2020, 12:15 AM.

Details

Summary

Current setup for conv op vectorization does not enable user to specify tile
sizes as well as dimensions for vectorization. In this commit we change that by
adding tile sizes as pass arguments. Every dimension with corresponding tile
size > 1 is automatically vectorized.

Diff Detail

Event Timeline

limo1996 created this revision.Sep 30 2020, 12:15 AM
Herald added a reviewer: aartbik. · View Herald Transcript
Herald added a project: Restricted Project. · View Herald Transcript
limo1996 requested review of this revision.Sep 30 2020, 12:15 AM
ftynse accepted this revision.Sep 30 2020, 12:32 AM

In general, I wouldn't couple vectorization flags to tiling flags (well, maybe have tiling as a precondition) because we may want to tile several times. But this is already an improvement over the current state.

This revision is now accepted and ready to land.Sep 30 2020, 12:32 AM

In general, I wouldn't couple vectorization flags to tiling flags (well, maybe have tiling as a precondition) because we may want to tile several times. But this is already an improvement over the current state.

I agree. We can tile for free before the pass though.. You can see it in the tests. But yeah, right now we cannot vectorize without tiling (tiling is in fact needed only when dimension is dynamic)..

nicolasvasilache accepted this revision.Sep 30 2020, 3:33 AM

Same comment as Alex.
Still this is an improvement so let's land it.