* Fwd: [Bug tree-optimization/14741] graphite with loop blocking and interchanging doesn't optimize a matrix multiplication loop
[not found] ` <bug-14741-7780-sdz6yBMbvK@http.gcc.gnu.org/bugzilla/>
@ 2013-07-14 7:25 ` Sebastian Pop
2013-07-18 16:31 ` Jeff Law
0 siblings, 1 reply; 4+ messages in thread
From: Sebastian Pop @ 2013-07-14 7:25 UTC (permalink / raw)
To: Jeff Law, Tobias Grosser, gcc
Hi Jeff,
let's start with getting this bug fixed.
Thanks,
Sebastian
---------- Forwarded message ----------
From: spop at gcc dot gnu.org <gcc-bugzilla@gcc.gnu.org>
Date: Sun, Jul 14, 2013 at 2:09 AM
Subject: [Bug tree-optimization/14741] graphite with loop blocking and
interchanging doesn't optimize a matrix multiplication loop
To: spop@gcc.gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14741
--- Comment #18 from Sebastian Pop <spop at gcc dot gnu.org> ---
On my laptop ARM Exynos5 at 1.6GHz I get this:
gfortran -ffast-math -O3 t.f90
./a.out
192.75000000000000 10.239999999999826
gfortran -ffast-math -O3 -fgraphite -floop-interchange -floop-block t.f90
./a.out
193.77500000000001 10.239999999999826
gfortran -ffast-math -O3 -floop-nest-optimize t.f90
t.f90: In function ‘MAIN__’:
t.f90:5:0: warning: iteration 31 invokes undefined behavior
[-Waggressive-loop-optimizations]
B=0.1D0
^
f951: note: containing loop
t.f90:4:0: warning: iteration 31 invokes undefined behavior
[-Waggressive-loop-optimizations]
A=0.1D0
^
f951: note: containing loop
./a.out
./a.out: No such file or directory
I don't know why the compiler does not produce an executable: -S does produce a
.s file.
Adding -fdump-tree-graphite-all produces a file t.f90.106t.graphite containing
the information about what graphite has done: I see that we do loop block the
loop nest like this:
gfortran -ffast-math -O3 -floop-nest-optimize -fdump-tree-graphite-all t.f90
CLAST generated by CLooG:
for (scat_0=0;scat_0<=1023;scat_0+=32) {
for (scat_1=0;scat_1<=1023;scat_1+=32) {
for (scat_2=scat_0;scat_2<=scat_0+31;scat_2++) {
for (scat_3=scat_1;scat_3<=scat_1+31;scat_3++) {
(scat_2,scat_3);
}
}
}
}
I see that the tile size is hard coded as a constant in graphite-optimize-isl.c
TileMap = getTileMap(ctx, *Dimensions, 32);
that should be replaced by a param and tuned.
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Fwd: [Bug tree-optimization/14741] graphite with loop blocking and interchanging doesn't optimize a matrix multiplication loop
2013-07-14 7:25 ` Fwd: [Bug tree-optimization/14741] graphite with loop blocking and interchanging doesn't optimize a matrix multiplication loop Sebastian Pop
@ 2013-07-18 16:31 ` Jeff Law
2013-07-18 16:45 ` Sebastian Pop
0 siblings, 1 reply; 4+ messages in thread
From: Jeff Law @ 2013-07-18 16:31 UTC (permalink / raw)
To: Sebastian Pop; +Cc: Tobias Grosser, gcc
On 07/14/2013 01:24 AM, Sebastian Pop wrote:
> Hi Jeff,
>
> let's start with getting this bug fixed.
So what do you need? Just making the tiling factor won't solve the
problem AFAICT. As I've mentioned, I'm already over-booked on other
things and don't have the time to do any significant development on the
graphite bits.
jeff
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Fwd: [Bug tree-optimization/14741] graphite with loop blocking and interchanging doesn't optimize a matrix multiplication loop
2013-07-18 16:31 ` Jeff Law
@ 2013-07-18 16:45 ` Sebastian Pop
2013-07-18 19:52 ` Sebastian Pop
0 siblings, 1 reply; 4+ messages in thread
From: Sebastian Pop @ 2013-07-18 16:45 UTC (permalink / raw)
To: Jeff Law; +Cc: Tobias Grosser, gcc
For this testcase, it looks like the scop detection pass should be fixed:
it currently discards the interesting loop nest. I can help figuring out what
is needed to be fixed, though I cannot send patches to fix the problem.
On Thu, Jul 18, 2013 at 11:31 AM, Jeff Law <law@redhat.com> wrote:
> On 07/14/2013 01:24 AM, Sebastian Pop wrote:
>>
>> Hi Jeff,
>>
>> let's start with getting this bug fixed.
>
> So what do you need? Just making the tiling factor won't solve the problem
> AFAICT. As I've mentioned, I'm already over-booked on other things and
> don't have the time to do any significant development on the graphite bits.
>
> jeff
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Fwd: [Bug tree-optimization/14741] graphite with loop blocking and interchanging doesn't optimize a matrix multiplication loop
2013-07-18 16:45 ` Sebastian Pop
@ 2013-07-18 19:52 ` Sebastian Pop
0 siblings, 0 replies; 4+ messages in thread
From: Sebastian Pop @ 2013-07-18 19:52 UTC (permalink / raw)
To: Jeff Law, Albert Cohen; +Cc: Tobias Grosser, gcc
+Albert
Would there be somebody from your group Albert who could help maintaining
and pushing patches to graphite? The focus is fixing graphite to get
performance
from the isl scheduler on benchmarks that the gcc community will help identify.
Thanks,
Sebastian
On Thu, Jul 18, 2013 at 11:44 AM, Sebastian Pop <sebpop@gmail.com> wrote:
> For this testcase, it looks like the scop detection pass should be fixed:
> it currently discards the interesting loop nest. I can help figuring out what
> is needed to be fixed, though I cannot send patches to fix the problem.
>
> On Thu, Jul 18, 2013 at 11:31 AM, Jeff Law <law@redhat.com> wrote:
>> On 07/14/2013 01:24 AM, Sebastian Pop wrote:
>>>
>>> Hi Jeff,
>>>
>>> let's start with getting this bug fixed.
>>
>> So what do you need? Just making the tiling factor won't solve the problem
>> AFAICT. As I've mentioned, I'm already over-booked on other things and
>> don't have the time to do any significant development on the graphite bits.
>>
>> jeff
>>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2013-07-18 19:52 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <bug-14741-7780@http.gcc.gnu.org/bugzilla/>
[not found] ` <bug-14741-7780-sdz6yBMbvK@http.gcc.gnu.org/bugzilla/>
2013-07-14 7:25 ` Fwd: [Bug tree-optimization/14741] graphite with loop blocking and interchanging doesn't optimize a matrix multiplication loop Sebastian Pop
2013-07-18 16:31 ` Jeff Law
2013-07-18 16:45 ` Sebastian Pop
2013-07-18 19:52 ` Sebastian Pop
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).