[llvm-dev] Enable vectorizer-maximize-bandwidth by default?

Dehao Chen via llvm-dev llvm-dev at lists.llvm.org
Fri May 26 11:53:18 PDT 2017


Thanks all for the comment. Any other comments on how we should proceed
with this?

Thanks,
Dehao

On Mon, May 22, 2017 at 9:57 AM, Dehao Chen <dehao at google.com> wrote:

>
>
> On Fri, May 19, 2017 at 4:01 PM, Adam Nemet <anemet at apple.com> wrote:
>
>>
>> On May 18, 2017, at 3:30 PM, Dehao Chen via llvm-dev <
>> llvm-dev at lists.llvm.org> wrote:
>>
>> Hi,
>>
>> I'm proposing to make vectorizer-maximize-bandwidth on by default for
>> loop vectorizer because it should generally help performance.
>>
>> I've tested the performance impact on Intel sandybridge machine with
>> speccpu benchmarks:
>>
>>            Benchmark             Base:Reference   (1)
>> -------------------------------------------------------
>> spec/2006/fp/C++/444.namd                 26.84  -0.31%
>> spec/2006/fp/C++/447.dealII               46.19  +0.89%
>> spec/2006/fp/C++/450.soplex               42.92  -0.44%
>> spec/2006/fp/C++/453.povray               38.57  -2.25%
>> spec/2006/fp/C/433.milc                   24.54  -0.76%
>> spec/2006/fp/C/470.lbm                    41.08  +0.26%
>> spec/2006/fp/C/482.sphinx3                47.58  -0.99%
>> spec/2006/int/C++/471.omnetpp             22.06  +1.87%
>> spec/2006/int/C++/473.astar               22.65  -0.12%
>> spec/2006/int/C++/483.xalancbmk           33.69  +4.97%
>> spec/2006/int/C/400.perlbench             33.43  +1.70%
>> spec/2006/int/C/401.bzip2                 23.02  -0.19%
>> spec/2006/int/C/403.gcc                   32.57  -0.43%
>> spec/2006/int/C/429.mcf                   40.35  +0.27%
>> spec/2006/int/C/445.gobmk                 26.96  +0.06%
>> spec/2006/int/C/456.hmmer                  24.4  +0.19%
>> spec/2006/int/C/458.sjeng                 27.91  -0.08%
>> spec/2006/int/C/462.libquantum            57.47  -0.20%
>> spec/2006/int/C/464.h264ref               46.52  +1.35%
>>
>> geometric mean                                   +0.29%
>>
>>   Scores are benchmark specific.
>>
>> We do have regression on 453.povray, but it's due to secondary effects as
>> all hot functions are the same. I've also tested the code size impact, it
>> does not change for tested speccpu benchmarks.
>>
>>
>> Can you please describe the config for the runs (optimization level,
>> PGO/no-PGO, etc).
>>
>
> This is O2 build without PGO.
>
>
>>
>> It would be good to provide analysis for the changes >1%. I.e. we need to
>> make sure that the improvements are not noise either ;).
>>
>
> Good point. I just examined all benchmarks with >1% "improvement". Turns
> out they are all noises: the hot functions (with >1% total cycles) are all
> identical. So the conclusion is: this change does not affect speccpu2006
> performance.
>
> Thanks,
> Dehao
>
>
>>
>>
>> I've prepared https://reviews.llvm.org/D33341 to do this.
>>
>> I really appreciate if the community can help test the performance impact
>> of this change on other architectures so that we can decide if this should
>> go target-dependent.
>>
>>
>> I will run it on Cyclone/AArch64 next week.
>>
>> Adam
>>
>>
>> Any comments/concerns?
>>
>> Thanks,
>> Dehao
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170526/bb8498af/attachment.html>


More information about the llvm-dev mailing list