[mlir][sparse][gpu] a first prototype sparse GPU code generator
authorAart Bik <ajcbik@google.com>
Mon, 3 Apr 2023 22:46:23 +0000 (15:46 -0700)
committerAart Bik <ajcbik@google.com>
Wed, 5 Apr 2023 18:32:06 +0000 (11:32 -0700)
commit19466ebc7ff8f51e2ce2c69949823a0c3e2fb660
tree5e3fbd0d9201f3a176a04f8824012c33d2251e57
parent9812948d22328e6f810c7654b93b063ce97ecfec
[mlir][sparse][gpu] a first prototype sparse GPU code generator

This implements a proof-of-concept GPU code generator
to the sparse compiler pipeline, currently only capable
of generating CUDA threads for outermost parallel loops.

The objective, obviously, is to grow this concept
to a full blown GPU code generator, capable of the
right combinaton of code generation as well as exploiting
idiomatic kernels or vector specific libraries (think cuSparse).

Reviewed By: ThomasRaoux

Differential Revision: https://reviews.llvm.org/D147483
mlir/include/mlir/Dialect/SparseTensor/Transforms/Passes.h
mlir/include/mlir/Dialect/SparseTensor/Transforms/Passes.td
mlir/lib/Dialect/SparseTensor/Transforms/CMakeLists.txt
mlir/lib/Dialect/SparseTensor/Transforms/SparseGPUCodegen.cpp [new file with mode: 0644]
mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorPasses.cpp
mlir/test/Dialect/SparseTensor/GPU/gpu_matmul.mlir [new file with mode: 0644]
mlir/test/Dialect/SparseTensor/GPU/gpu_matvec.mlir [new file with mode: 0644]
utils/bazel/llvm-project-overlay/mlir/BUILD.bazel