[llvm-bugs] [Bug 46119] New: Slow handling of vectorized loop epilogue

via llvm-bugs llvm-bugs at lists.llvm.org
Thu May 28 02:15:08 PDT 2020


https://bugs.llvm.org/show_bug.cgi?id=46119

            Bug ID: 46119
           Summary: Slow handling of vectorized loop epilogue
           Product: new-bugs
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: new bugs
          Assignee: unassignedbugs at nondot.org
          Reporter: elrodc at gmail.com
                CC: htmldeveloper at gmail.com, llvm-bugs at lists.llvm.org

I have benchmarks here:
https://chriselrod.github.io/LoopVectorization.jl/latest/examples/dot_product/

Showing poor performance of Julia and Clang-compiled functions whenever the
epilogue is long.

Optimized by LLVM:
https://godbolt.org/z/kfzhK2

Faster version:
https://godbolt.org/z/C5f7by

Benchmarks on a 10980xe, summing dot products of 4096 vectors with random
lengths uniformly distributed between 1 and...
32:
Default: 50.925 microseconds
Fast: 30.677 microseconds

64:
Default: 64.971 microseconds
Fast: 40.321 microseconds

96:
Default: 70.463 microseconds
Fast: 48.614 microseconds

128:
Default: 78.189 microseconds
Fast: 52.912 microseconds

LLVM's current behavior takes about 50% longer than using masks + SIMD
instructions on the epilogue for randomly sized vectors of length 1,...N where
N is 32, 64, 96, or 128 on this architecture.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20200528/72435f8b/attachment.html>


More information about the llvm-bugs mailing list