llvm-project/mlir/lib/Conversion
Nicolas Vasilache bbf3ef8541 [mlir][Vector]Lower vector.contract to llvm.intr.matrix_multiply
Summary:
This revision adds lowering of vector.contract to llvm.intr.matrix_multiply.
Note that there is currently a mismatch between the MLIR vector dialect which
expects row-major layout and the LLVM matrix intrinsics which expect column
major layout.

As a consequence, we currently only match a vector.contract with indexing maps
that express column-major matrix multiplication.
Other cases would require additional transposes and it is better to wait for
LLVM intrinsics to provide a per-operation attribute that would specify which
layout is expected.

A separate integration test, not submitted to MLIR core, has independently
verified that correct execution occurs on a 2x2x2 matrix multiplication.

Differential Revision: https://reviews.llvm.org/D76014
2020-03-13 16:33:23 -04:00
..
AffineToStandard [MLIR] Remove redundant library dependencies 2020-03-06 10:12:31 -08:00
GPUCommon Move StandardOps/Ops.h to StandardOps/IR/Ops.h 2020-02-21 11:58:47 -08:00
GPUToCUDA Fix MLIR build when NVPTX backend is not configured in 2020-03-10 04:11:49 +00:00
GPUToNVVM [MLIR] Remove all-reduce lowering from GPU to NVVM. Use in-dialect lowering instead. 2020-03-11 15:17:54 +01:00
GPUToROCDL [MLIR] Ensure that target_link_libraries() always has a keyword. 2020-03-06 09:14:01 -08:00
GPUToSPIRV [mlir][spirv] Use spv.vce in spv.module and wire up (de)serialization 2020-03-12 19:37:45 -04:00
GPUToVulkan [mlir][vulkan-runner] Use std::make_tuple to create tuple 2020-03-10 16:21:35 -04:00
LinalgToLLVM [MLIR] Ensure that target_link_libraries() always has a keyword. 2020-03-06 09:14:01 -08:00
LinalgToSPIRV [MLIR] Ensure that target_link_libraries() always has a keyword. 2020-03-06 09:14:01 -08:00
LoopToStandard [MLIR] Remove redundant library dependencies 2020-03-06 10:12:31 -08:00
LoopsToGPU [mlir][SideEffects] Replace HasNoSideEffect with the memory effect interfaces. 2020-03-12 14:26:15 -07:00
StandardToLLVM [MLIR] Remove redundant library dependencies 2020-03-06 10:12:31 -08:00
StandardToSPIRV [MLIR] Move from add_dependencies() to DEPENDS 2020-03-06 13:25:17 -08:00
VectorToLLVM [mlir][Vector]Lower vector.contract to llvm.intr.matrix_multiply 2020-03-13 16:33:23 -04:00
VectorToLoops [MLIR] Ensure that target_link_libraries() always has a keyword. 2020-03-06 09:14:01 -08:00
CMakeLists.txt [mlir][spirv] Add ConvertGpuLaunchFuncToVulkanCallsPass 2020-02-13 14:10:07 -05:00