aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp
diff options
context:
space:
mode:
authorAart Bik <ajcbik@google.com>2022-04-26 21:25:32 -0700
committerAart Bik <ajcbik@google.com>2022-04-27 10:20:47 -0700
commitccd047cba4f15cd95e8e3895f823757c5988b192 (patch)
treeb3667d2ae3b4a65a043f5123b7a80267310adfc2 /llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp
parentc7bb5ac5ca1b7eeb4b8e00a4f59e90520a44e5f7 (diff)
downloadllvm-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