[MLIR] Quick Survey of Vector Abstractions

Note: This was previously surfaced in mlir@tensorflow.org, moving here for visibility.
Since I do not have enough privileges on Discourse I’ll point to the github wiki page and will update later.


MLIR supports multi-dimensional vector types and custom operations on those types. A generic, retargetable, higher-order vector type (n-D with n > 1) is a structured type, that carries semantic information useful for transformations. This document discusses retargetable abstractions that exist in MLIR today and operate on ssa-values of type vector along with pattern rewrites and lowerings that enable targeting specific instructions on concrete targets. These abstractions serve to separate concerns between operations on memref (a.k.a buffers) and operations on vector values. This is not a new proposal but rather a textual documentation of existing MLIR components along with a rationale.

I went ahead and updated the doc of the VectorOps dialect here: https://mlir.llvm.org/docs/Dialects/Vector/

Please refer to that going forward, this thread is now obsolete.


Thanks for doing that @nicolasvasilache. :+1: