diff options
author | Aart Bik <ajcbik@google.com> | 2022-04-26 21:25:32 -0700 |
---|---|---|
committer | Aart Bik <ajcbik@google.com> | 2022-04-27 10:20:47 -0700 |
commit | ccd047cba4f15cd95e8e3895f823757c5988b192 (patch) | |
tree | b3667d2ae3b4a65a043f5123b7a80267310adfc2 /llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp | |
parent | c7bb5ac5ca1b7eeb4b8e00a4f59e90520a44e5f7 (diff) | |
download | llvm-ccd047cba4f15cd95e8e3895f823757c5988b192.zip llvm-ccd047cba4f15cd95e8e3895f823757c5988b192.tar.gz llvm-ccd047cba4f15cd95e8e3895f823757c5988b192.tar.bz2 |
[mlir][sparse] optimize COO index handling
By using a shared index pool, we reduce the footprint of each "Element"
in the COO scheme and, in addition, reduce the overhead of allocating
indices (trading many allocations of vectors for allocations in a single
vector only). When the capacity is known, this means *all* allocation
can be done in advance.
This is a big win. For example, reading matrix SK-2005, with dimensions
50,636,154 x 50,636,154 and 1,949,412,601 nonzero elements improves
as follows (time in ms), or about 3.5x faster overall
```
SK-2005 before after speedup
---------------------------------------------
read 305,086.65 180,318.12 1.69
sort 2,836,096.23 510,492.87 5.56
pack 364,485.67 312,009.96 1.17
---------------------------------------------
TOTAL 3,505,668.56 1,002,820.95 3.50
```
Reviewed By: bixia
Differential Revision: https://reviews.llvm.org/D124502
Diffstat (limited to 'llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp')
0 files changed, 0 insertions, 0 deletions