[llvm-dev] On Loop Distribution pass
Hal Finkel via llvm-dev
llvm-dev at lists.llvm.org
Mon Oct 10 14:53:19 PDT 2016
----- Original Message -----
> From: "Adam Nemet" <anemet at apple.com>
> To: "Hal Finkel" <hfinkel at anl.gov>
> Cc: "Dangeti Tharun kumar" <cs15mtech11002 at iith.ac.in>, "Santanu Das"
> <cs15mtech11018 at iith.ac.in>, llvm-dev at lists.llvm.org
> Sent: Monday, October 10, 2016 4:52:18 PM
> Subject: Re: [llvm-dev] On Loop Distribution pass
> > On Oct 10, 2016, at 2:50 PM, Hal Finkel < hfinkel at anl.gov > wrote:
>
> > ----- Original Message -----
>
> > > From: "Dangeti Tharun kumar via llvm-dev" <
> > > llvm-dev at lists.llvm.org
> > > >
> >
>
> > > To: llvm-dev at lists.llvm.org
> >
>
> > > Cc: "Santanu Das" < cs15mtech11018 at iith.ac.in >
> >
>
> > > Sent: Sunday, October 9, 2016 12:09:01 PM
> >
>
> > > Subject: [llvm-dev] On Loop Distribution pass
> >
>
> > > Dear community,
> >
>
> > > Our team at IITH have been experimenting with loop-distribution
> > > pass
> > > in LLVM. We see the following results on few benchmarks.
> >
>
> > > clang -O3 -mllvm -enable-loop-distribute -Rpass=loop-distribute
> > > file.c
> >
>
> > > clang -O3 -mllvm -enable-loop-distribute
> > > -Rpass-analysis=loop-distribute file.c
> >
>
> > > TORCH :
> >
>
> > > There are nearly 488 loops in this benchmark. LLVM was not able
> > > to
> > > distribute any loop.
> >
>
> > > TSVC :
> >
>
> > > There are 151 loops coded in plain ‘C’, none of them got
> > > distributed.
> > > TSVC has particularly candidates valid for distribution like the
> > > one
> > > below. The inner loop in this example can be distributed.
> >
>
> > > for (int nl = 0; nl < ntimes/2; nl++) {
> >
>
> > > for (int i = 1; i < LEN; i++) {
> >
>
> > > a[i] += c[i] * d[i];
> >
>
> > > b[i] = b[i - 1] + a[i] + d[i];
> >
>
> > > }
> >
>
> > > dummy(a, b, c, d, e, aa, bb, cc, 0.);
> >
>
> > > }
> >
>
> > > MiBench :
> >
>
> > > There are 6539 loops in MiBench. None of the loops were
> > > distributed
> > > by the loop-distribution pass of LLVM.
> >
>
> > > CoMD :
> >
>
> > > CoMD is a reference implementation of typical classical molecular
> > > dynamics algorithms and workloads.
> >
>
> > > Out of 112 loops none of them are distributed.
> >
>
> > > For the specific loop I have shown above which is straight
> > > forward
> > > a
> > > good distribution candidate, the remark is " loop not
> > > distributed:
> > > memory operations are safe for vectorization
> > > [-Rpass-analysis=loop-distribute] ".
> >
>
> > > Can someone reason these results and this remark?
> >
>
> > The current loop distribution implementation is focused on enabling
> > vectorization. The comment at the top of the file says:
>
> > // This file implements the Loop Distribution Pass. Its main focus
> > is
> > to
>
> > // distribute loops that cannot be vectorized due to dependence
> > cycles. It
>
> > // tries to isolate the offending dependences into a new loop
> > allowing
>
> > // vectorization of the remaining parts.
>
> > Hopefully, this helps explain the diagnostic. Regarding why the
> > loop
> > you highlight is not distributed to enable the vectorization of the
> > a[i] update, I don't know. Adam?
>
> Yeah, it’s not immediate clear to me why we’re not distributing that.
> I think it’s s221() from TSVC. I will take a look later.
Yes, it looks like s221.
-Hal
> Adam
> > -Hal
>
> > > I humbly request the community to correct me, if am missing
> > > something
> > > in my analysis.
> >
>
> > > --
> >
>
> > > Thank you
> >
>
> > > D Tharun kumar
> >
>
> > > CS15MTECH11002
> >
>
> > > 9948373970
> >
>
> > > CSE-IITH
> >
>
> > > _______________________________________________
> >
>
> > > LLVM Developers mailing list
> >
>
> > > llvm-dev at lists.llvm.org
> >
>
> > > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
> >
>
> > --
>
> > Hal Finkel
>
> > Lead, Compiler Technology and Programming Languages
>
> > Leadership Computing Facility
>
> > Argonne National Laboratory
>
--
Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20161010/65492775/attachment.html>
More information about the llvm-dev
mailing list