[mlir][sparse][gpu] first implementation of the GPU libgen approach
authorAart Bik <ajcbik@google.com>
Fri, 12 May 2023 19:43:35 +0000 (12:43 -0700)
committerAart Bik <ajcbik@google.com>
Mon, 15 May 2023 15:49:38 +0000 (08:49 -0700)
commitee42e23614c789088a1528d41926d47c94e8ccdf
treeb69c5a1b39976063fa528714f3400f9e41f0b9f1
parent9715af434579022b5ef31781be40b722d7e63bee
[mlir][sparse][gpu] first implementation of the GPU libgen approach

The sparse compiler now has two prototype strategies for GPU acceleration:

* CUDA codegen: this converts sparsified code to CUDA threads
* CUDA libgen: this converts pre-sparsified code to cuSPARSE library calls

This revision introduces the first steps required for the second approach.

Reviewed By: ThomasRaoux

Differential Revision: https://reviews.llvm.org/D150170
mlir/include/mlir/Dialect/SparseTensor/Pipelines/Passes.h
mlir/include/mlir/Dialect/SparseTensor/Transforms/Passes.h
mlir/include/mlir/Dialect/SparseTensor/Transforms/Passes.td
mlir/lib/Dialect/SparseTensor/Transforms/SparseGPUCodegen.cpp
mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorPasses.cpp
mlir/lib/Dialect/SparseTensor/Transforms/SparsificationAndBufferizationPass.cpp
mlir/test/Dialect/SparseTensor/GPU/gpu_matvec_lib.mlir [new file with mode: 0644]