llvm-project/mlir/test/Dialect
aartbik ee01c7a740 [mlir] [VectorOps] Add choice between dot and axpy lowering of vector.contract
Default vector.contract lowering essentially yields a series of sdot/ddot
operations. However, for some layouts a series of saxpy/daxpy operations,
chained through fma are more efficient. This CL introduces a choice between
the two lowering paths. A default heuristic is to follow.

Some preliminary avx2 performance numbers for matrix-times-vector.
Here, dot performs best for 64x64 A x b and saxpy for 64x64 A^T x b.

```
------------------------------------------------------------
            A x b                          A^T x b
------------------------------------------------------------
GFLOPS    sdot (reassoc)    saxpy    sdot (reassoc)    saxpy
------------------------------------------------------------
1x1        0.6               0.9       0.6             0.9
2x2        2.5               3.2       2.4             3.5
4x4        6.4               8.4       4.9             11.8
8x8       11.7               6.1       5.0             29.6
16x16     20.7              10.8       7.3             43.3
32x32     29.3               7.9       6.4             51.8
64x64     38.9                                         79.3
128x128   32.4                                         40.7
------------------------------------------------------------
```

Reviewed By: nicolasvasilache, ftynse

Differential Revision: https://reviews.llvm.org/D83012
2020-07-02 13:21:17 -07:00
..
AVX512 [mlir][AVX512] Start a primitive AVX512 dialect 2020-03-20 14:11:57 -04:00
Affine Enable FileCheck -enable-var-scope by default in MLIR test 2020-06-12 00:43:09 +00:00
GPU [MLIR][Standard] Make the `dim` operation index an operand. 2020-06-10 13:54:47 +00:00
LLVMIR [mlir] LLVM dialect: use addressof instead of constant to create function pointers 2020-06-29 12:21:33 +02:00
Linalg [mlir][Linalg] Add an option to use Alloca instead of malloc/free pairs. 2020-07-01 09:44:01 -04:00
OpenMP [mlir][OpenMP] Add custom parser and pretty printer for parallel construct 2020-06-16 13:35:42 +01:00
Quant Enable FileCheck -enable-var-scope by default in MLIR test 2020-06-12 00:43:09 +00:00
SCF [mlir] parallel loop canonicalization 2020-06-26 09:57:08 +02:00
SPIRV Revert "[MLIR][SPIRV] Support two memory access attributes in OpCopyMemory." 2020-07-02 15:57:25 -04:00
Shape [MLIR][Shape] Canonicalize subsequent `size_to_index` and `index_to_size` 2020-06-25 12:43:17 +00:00
Standard [mlir] Add support for lowering tanh to LLVMIR. 2020-06-18 10:42:13 -07:00
Vector [mlir] [VectorOps] Add choice between dot and axpy lowering of vector.contract 2020-07-02 13:21:17 -07:00
traits.mlir [mlir] Generalize broadcastable trait operands 2020-01-20 13:02:14 -08:00