llvm-project/mlir/test
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
..
Analysis Change filecheck default to dump input on failure 2020-06-09 18:57:46 +00:00
Conversion [MLIR][SPIRVToLLVM] Convert spv.constant scalars and vectors 2020-07-02 14:26:58 -04:00
Dialect [mlir] [VectorOps] Add choice between dot and axpy lowering of vector.contract 2020-07-02 13:21:17 -07:00
EDSC [mlir] add unsigned comparison builders to Affine EDSC 2020-06-29 23:30:49 +02:00
Examples [lit] Improve naming of test result categories 2020-06-05 08:14:42 -07:00
IR [mlir] do not hardcode the name of the undefined function in the error message 2020-06-29 10:05:06 +02:00
Pass [mlir] Add a new context flag for disabling/enabling multi-threading 2020-05-02 12:32:25 -07:00
SDBM [MLIR] Reapply: Adjust libMLIR building to more closely follow libClang 2020-05-04 20:47:57 -07:00
Target [mlir] LLVM dialect: use addressof instead of constant to create function pointers 2020-06-29 12:21:33 +02:00
Transforms [mlir] Extended BufferPlacement to support nested region control flow. 2020-06-30 12:10:01 +02:00
Unit Add build files and update README. 2019-03-30 11:23:22 -07:00
lib [mlir] [VectorOps] Add choice between dot and axpy lowering of vector.contract 2020-07-02 13:21:17 -07:00
mlir-cpu-runner [mlir] support returning unranked memrefs 2020-06-26 15:37:37 +02:00
mlir-cuda-runner [MLIR][Standard] Make the `dim` operation index an operand. 2020-06-10 13:54:47 +00:00
mlir-linalg-ods-gen [mlir][Linalg] Add support to lower named ops to loops. 2020-04-30 13:45:17 -04:00
mlir-opt [mlir] Change dialect namespace loop->scf 2020-05-13 19:20:21 +02:00
mlir-rocm-runner [mlir][rocdl] Fixing breakage of dim operator from 904f91db 2020-06-11 17:35:22 +00:00
mlir-tblgen [mlir][OpFormatGen] Add support for resolving variadic types from non-variadic 2020-07-01 22:27:08 -07:00
mlir-vulkan-runner [mlir][vulkan-runner] add support for memref of i8, i16 types in vulkan runner 2020-06-18 13:24:51 -07:00
APITest.h Mass update the MLIR license header to mention "Part of the LLVM project" 2020-01-26 03:58:30 +00:00
CMakeLists.txt [mlir][gpu] Introduce mlir-rocm-runner. 2020-06-05 09:46:39 -05:00
lit.cfg.py Fix `check-mlir` target when the host target isn't configured 2020-06-19 06:36:20 +00:00
lit.site.cfg.py.in [mlir][gpu] Introduce mlir-rocm-runner. 2020-06-05 09:46:39 -05:00