Graphite and Loop fusion.

Tim Prince n8tm@aol.com
Mon Nov 30 21:32:00 GMT 2009


Toon Moene wrote:

> REAL, ALLOCATABLE ::  A(:,:), B(:,:), C(:,:), D(:,:), E(:,:), F(:,:)
> 
> ! ... READ IN EXTEND OF ARRAYS ...
> 
> READ*,N
> 
> ! ... ALLOCATE ARRAYS
> 
> ALLOCATE(A(N,N),B(N,N),C(N,N),D(N,N),E(N,N),F(N,N))
> 
> ! ... READ IN ARRAYS
> 
> READ*,A,B
> 
> C = A + B
> D = A * C
> E = B * EXP(D)
> F = C * LOG(E)
> 
> where the four assignments all have the structure of loops like:
> 
> DO I = 1, N
>    DO J = 1, N
>       X(J,I) = OP(A(J,I), B(J,I))
>    ENDDO
> ENDDO
> 
> Obviously, this could benefit from loop fusion, by combining the four 
> assignments in one loop.

Provided that it were still possible to vectorize suitable portions, or 
N is known to be so large that cache locality outweighs vectorization. 
This raises the question of progress on vector math functions, as well 
as the one about relative alignments (or ignoring them in view of recent 
CPU designs).



More information about the Gcc mailing list