[LLVMdev] Should we enable Partial unrolling and Runtime unrolling on AArch64?
Hal Finkel
hfinkel at anl.gov
Thu Jul 31 07:11:45 PDT 2014
----- Original Message -----
> From: "Kevin Qin" <kevinqindev at gmail.com>
> To: "LLVM Developers Mailing List" <llvmdev at cs.uiuc.edu>
> Sent: Thursday, July 31, 2014 3:03:19 AM
> Subject: [LLVMdev] Should we enable Partial unrolling and Runtime unrolling on AArch64?
>
>
>
>
>
> Hi all,
>
>
> Partial unrolling and runtime unrolling are enabled by default in
> aarch64 gcc which is help to get performance better. But these two
> methods are enabled for only several backends in LLVM which are X86,
> PowerPC and R600. I don't know the history of these two kinds of
> unrolling, and why they are not widely used. I also want to know is,
> for aarch64 backend, is it intentionally to get them disabled?
>
> I've did some experiment around this and see the performance is
> indeed impacted. Overall, partial unrolling can bring small benefit
> on most cases of Benchmark and regression is major and small.
> Runtime unrolling can bring huge improvement on some certain cases
> but also huge regression on others. The proportion of improvement
> and regression varies in different Benchmark . Also, code size is
> increased for two both.
>
>
> I will show more information before this be changed. Here I just want
> to know more backgrounds of two unrolling methods.
These unrolling methods have been available in LLVM for several years, but the pass-manager setup and TTI hooks that enable backends to enable these in a target-specific way is relatively new. As you've noticed, per-target tuning is required. Patches are certainly welcome; if you have a modification for AArch64 that provides significant benefits and little downside, please send it to llvm-commits for review.
Thanks for looking at this.
-Hal
>
>
> --
>
> Best Regards,
>
>
> Kevin Qin
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
--
Hal Finkel
Assistant Computational Scientist
Leadership Computing Facility
Argonne National Laboratory
More information about the llvm-dev
mailing list