JJacques Pienaar[mlir] Flip LinAlg dialect to _Both
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[mlir][bufferization][NFC] Move sparse_tensor.release to bufferization dialect This op used to belong to the sparse dialect, but there are use cases for dense bufferization as well. (E.g., when a tensor alloc is returned from a function and should be deallocated at the call site.) This change moves the op to the bufferization dialect, which now has an alloc_tensor and a dealloc_tensor op. Differential Revision: https://reviews.llvm.org/D129985 | 3 年前 | |
[mlir][sparse] migrate sparse rewriting to sparse transformations pass The rules in the linalg file were very specific to sparse tensors so will find a better home under sparse tensor dialect than linalg dialect. Also moved some rewriting from sparsification into this new "pre-rewriting" file. Reviewed By: springerm Differential Revision: https://reviews.llvm.org/D129910 | 3 年前 | |
[mlir][sparse] Add F16 and BF16. This is the first PR to add F16 and BF16 support to the sparse codegen. There are still problems in supporting these two data types, such as BF16 is not quite working yet. Add tests cases. Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D127010 | 3 年前 | |
[mlir][sparse] add support for complex zero/one building Reviewed By: bixia Differential Revision: https://reviews.llvm.org/D126039 | 4 年前 | |
[mlir][sparse] Switch to One-Shot Bufferize This change removes the partial bufferization passes from the sparse compilation pipeline and replaces them with One-Shot Bufferize. One-Shot Analysis (and TensorCopyInsertion) is used to resolve all out-of-place bufferizations, dense and sparse. Dense ops are then bufferized with BufferizableOpInterface. Sparse ops are still bufferized in the Sparsification pass. Details: * Dense allocations are automatically deallocated, unless they are yielded from a block. (In that case the alloc would leak.) All test cases are modified accordingly. E.g., some funcs now have an "out" tensor argument that is returned from the function. (That way, the allocation happens at the call site.) * Sparse allocations are *not* automatically deallocated. They must be "released" manually. (No change, this will be addressed in a future change.) * Sparse tensor copies are not supported yet. (Future change) * Sparsification no longer has to consider inplacability. If necessary, allocations and/or copies are inserted during TensorCopyInsertion. All tensors are inplaceable by the time Sparsification is running. Instead of marking a tensor as "not inplaceable", it can be marked as "not writable", which will trigger an allocation and/or copy during TensorCopyInsertion. Differential Revision: https://reviews.llvm.org/D129356 | 3 年前 | |
[mlir][bufferization][NFC] Move sparse_tensor.release to bufferization dialect This op used to belong to the sparse dialect, but there are use cases for dense bufferization as well. (E.g., when a tensor alloc is returned from a function and should be deallocated at the call site.) This change moves the op to the bufferization dialect, which now has an alloc_tensor and a dealloc_tensor op. Differential Revision: https://reviews.llvm.org/D129985 | 3 年前 | |
[mlir][bufferization][NFC] Move sparse_tensor.release to bufferization dialect This op used to belong to the sparse dialect, but there are use cases for dense bufferization as well. (E.g., when a tensor alloc is returned from a function and should be deallocated at the call site.) This change moves the op to the bufferization dialect, which now has an alloc_tensor and a dealloc_tensor op. Differential Revision: https://reviews.llvm.org/D129985 | 3 年前 | |
[mlir] Flip LinAlg dialect to _Both This one required more changes than ideal due to overlapping generated name with different return types. Changed getIndexingMaps to getIndexingMapsArray to move it out of the way/highlight that it returns (more expensively) a SmallVector and uses the prefixed name for the Attribute. Differential Revision: https://reviews.llvm.org/D129919 | 3 年前 | |
[mlir][bufferization][NFC] Move sparse_tensor.release to bufferization dialect This op used to belong to the sparse dialect, but there are use cases for dense bufferization as well. (E.g., when a tensor alloc is returned from a function and should be deallocated at the call site.) This change moves the op to the bufferization dialect, which now has an alloc_tensor and a dealloc_tensor op. Differential Revision: https://reviews.llvm.org/D129985 | 3 年前 |