https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52473
--- Comment #21 from Dominique d'Humieres ---
> The original test case is still slow, so I guess we should
> keep this open.
Which test?
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52473
--- Comment #20 from Thomas Koenig ---
The original test case is still slow, so I guess we should
keep this open.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52473
Martin Liška changed:
What|Removed |Added
CC||marxin at gcc dot gnu.org
--- Comment
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52473
--- Comment #18 from Jürgen Reuter ---
The example by posted on May 20, 2017 on c.l.f. improved by Stefano Zaghi below
shows a factor of 10-20 improvement now in gfortran 9.0.0 including the work by
Thomas Koenig.
$ ./a.out
Elapsed CPU time =
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52473
--- Comment #17 from Thomas Koenig ---
Large-scale cshift is OK now.
The original test case, or inlining something like
b = cshift(a,-1) - 2*a + cshift(a,1)
to efficiently calculate a second derivative on a circular array would be
quite nice.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52473
--- Comment #16 from Dominique d'Humieres ---
For the original test compiled with -Ofast, I get
Testing explicit DO loops
Dim =1 Elapsed CPU time = 0.846953988
Dim =2 Elapsed CPU time = 0.724469006
Dim
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52473
Thomas Koenig changed:
What|Removed |Added
Status|ASSIGNED|NEW
Assignee|tkoenig at gcc
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52473
--- Comment #14 from Thomas Koenig ---
Author: tkoenig
Date: Sat Jun 24 07:07:56 2017
New Revision: 249620
URL: https://gcc.gnu.org/viewcvs?rev=249620=gcc=rev
Log:
2017-06-24 Thomas Koenig
PR fortran/52473
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52473
--- Comment #13 from Thomas Koenig ---
Author: tkoenig
Date: Sun Jun 18 18:04:19 2017
New Revision: 249350
URL: https://gcc.gnu.org/viewcvs?rev=249350=gcc=rev
Log:
2017-06-18 Thomas Koenig
PR fortran/52473
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52473
--- Comment #12 from Thomas Koenig ---
Created attachment 41542
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=41542=edit
Test case which still fails
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52473
--- Comment #11 from Thomas Koenig ---
Created attachment 41541
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=41541=edit
Patch for the library, not yet quite correct
This is a patch which brings a dramatic speedup for
any cshift with
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52473
--- Comment #10 from Thomas Koenig ---
Also see the discussion at
https://groups.google.com/forum/#!topic/comp.lang.fortran/AI0F1Vpkc3I
There is one thing that I do not understand. For the following
test code, which compares straightforward
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52473
--- Comment #9 from Dominique d'Humieres ---
> How often or how important is this feature? Would it improve any known
> benchmark or real world application in a significant manner?
Egg and chicken problem! If CSHIFT is slow, nobody will use it.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52473
--- Comment #8 from Thomas Koenig ---
(In reply to Jerry DeLisle from comment #7)
> (In reply to Thomas Koenig from comment #6)
> > Created attachment 41508 [details]
> > What an unrolled cshift could look like
> >
> > This is what an unrolled
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52473
Jerry DeLisle changed:
What|Removed |Added
CC||jvdelisle at gcc dot gnu.org
---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52473
--- Comment #6 from Thomas Koenig ---
Created attachment 41508
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=41508=edit
What an unrolled cshift could look like
This is what an unrolled version of cshift could look like,
for a simple
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52473
Thomas Koenig changed:
What|Removed |Added
Status|NEW |ASSIGNED
Assignee|unassigned
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52473
--- Comment #4 from Thomas Koenig ---
Looking at the code, inlining cshift for a constant shift
could already be a good idea.
So, change
b = cshift(b,1) + cshift(b,-1)
to
a = b
b(1) = a(2) + a(n)
b(2:n-1) = a(1:n-2) + a(3:n)
b(n) = a(1) +
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52473
Dominique d'Humieres dominiq at lps dot ens.fr changed:
What|Removed |Added
Status|UNCONFIRMED |NEW
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52473
Tobias Burnus burnus at gcc dot gnu.org changed:
What|Removed |Added
CC||matz at gcc dot
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52473
Tobias Burnus burnus at gcc dot gnu.org changed:
What|Removed |Added
CC||burnus at gcc
21 matches
Mail list logo