mirror of
https://gitlab.com/scemama/qmcchem.git
synced 2025-01-02 17:45:39 +01:00
noprefetch
This commit is contained in:
parent
72baed17c2
commit
076803da1a
@ -324,14 +324,16 @@ subroutine det_update$n(n,LDS,m,l,S,S_inv,d)
|
|||||||
double precision :: zj, zj1, zj2, zj3
|
double precision :: zj, zj1, zj2, zj3
|
||||||
|
|
||||||
!DIR$ VECTOR ALIGNED
|
!DIR$ VECTOR ALIGNED
|
||||||
!DIR$ SIMD
|
!DIR$ NOPREFETCH
|
||||||
|
!DIR$ SIMD NOVECREMAINDER
|
||||||
do i=1,$n
|
do i=1,$n
|
||||||
u(i) = m(i) - S(i,l)
|
u(i) = m(i) - S(i,l)
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
zj = 0.d0
|
zj = 0.d0
|
||||||
!DIR$ VECTOR ALIGNED
|
!DIR$ VECTOR ALIGNED
|
||||||
!DIR$ SIMD REDUCTION(+:zj)
|
!DIR$ NOPREFETCH
|
||||||
|
!DIR$ SIMD REDUCTION(+:zj) NOVECREMAINDER
|
||||||
do i=1,$n-1,4
|
do i=1,$n-1,4
|
||||||
zj = zj + S_inv(i,l)*u(i) + S_inv(i+1,l)*u(i+1) &
|
zj = zj + S_inv(i,l)*u(i) + S_inv(i+1,l)*u(i+1) &
|
||||||
+ S_inv(i+2,l)*u(i+2) + S_inv(i+3,l)*u(i+3)
|
+ S_inv(i+2,l)*u(i+2) + S_inv(i+3,l)*u(i+3)
|
||||||
@ -352,7 +354,8 @@ subroutine det_update$n(n,LDS,m,l,S,S_inv,d)
|
|||||||
zj2 = 0.d0
|
zj2 = 0.d0
|
||||||
zj3 = 0.d0
|
zj3 = 0.d0
|
||||||
!DIR$ VECTOR ALIGNED
|
!DIR$ VECTOR ALIGNED
|
||||||
!DIR$ SIMD REDUCTION(+:zj,zj1,zj2,zj3)
|
!DIR$ NOPREFETCH
|
||||||
|
!DIR$ SIMD REDUCTION(+:zj,zj1,zj2,zj3) NOVECREMAINDER
|
||||||
do i=1,$n
|
do i=1,$n
|
||||||
zj = zj + S_inv(i,j )*u(i)
|
zj = zj + S_inv(i,j )*u(i)
|
||||||
zj1 = zj1 + S_inv(i,j+1)*u(i)
|
zj1 = zj1 + S_inv(i,j+1)*u(i)
|
||||||
@ -366,7 +369,8 @@ subroutine det_update$n(n,LDS,m,l,S,S_inv,d)
|
|||||||
enddo
|
enddo
|
||||||
|
|
||||||
!DIR$ VECTOR ALIGNED
|
!DIR$ VECTOR ALIGNED
|
||||||
!DIR$ SIMD FIRSTPRIVATE(d_inv)
|
!DIR$ NOPREFETCH
|
||||||
|
!DIR$ SIMD FIRSTPRIVATE(d_inv) NOVECREMAINDER
|
||||||
do i=1,$n
|
do i=1,$n
|
||||||
w(i) = S_inv(i,l)*d_inv
|
w(i) = S_inv(i,l)*d_inv
|
||||||
S(i,l) = m(i)
|
S(i,l) = m(i)
|
||||||
@ -378,7 +382,8 @@ subroutine det_update$n(n,LDS,m,l,S,S_inv,d)
|
|||||||
zj2 = z(i+2)
|
zj2 = z(i+2)
|
||||||
zj3 = z(i+3)
|
zj3 = z(i+3)
|
||||||
!DIR$ VECTOR ALIGNED
|
!DIR$ VECTOR ALIGNED
|
||||||
!DIR$ SIMD FIRSTPRIVATE(lambda,zj,zj1,zj2,zj3)
|
!DIR$ NOPREFETCH
|
||||||
|
!DIR$ SIMD FIRSTPRIVATE(lambda,zj,zj1,zj2,zj3) NOVECREMAINDER
|
||||||
do j=1,$n
|
do j=1,$n
|
||||||
S_inv(j,i ) = S_inv(j,i )*lambda - w(j)*zj
|
S_inv(j,i ) = S_inv(j,i )*lambda - w(j)*zj
|
||||||
S_inv(j,i+1) = S_inv(j,i+1)*lambda - w(j)*zj1
|
S_inv(j,i+1) = S_inv(j,i+1)*lambda - w(j)*zj1
|
||||||
@ -452,12 +457,14 @@ subroutine det_update$n(n,LDS,m,l,S,S_inv,d)
|
|||||||
double precision :: zj, zj1, zj2, zj3
|
double precision :: zj, zj1, zj2, zj3
|
||||||
|
|
||||||
!DIR$ VECTOR ALIGNED
|
!DIR$ VECTOR ALIGNED
|
||||||
!DIR$ SIMD
|
!DIR$ NOPREFETCH
|
||||||
|
!DIR$ SIMD NOVECREMAINDER
|
||||||
do i=1,$n
|
do i=1,$n
|
||||||
u(i) = m(i) - S(i,l)
|
u(i) = m(i) - S(i,l)
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
zj = 0.d0
|
zj = 0.d0
|
||||||
|
!DIR$ NOPREFETCH
|
||||||
!DIR$ SIMD REDUCTION(+:zj)
|
!DIR$ SIMD REDUCTION(+:zj)
|
||||||
do i=1,$n-1,4
|
do i=1,$n-1,4
|
||||||
zj = zj + S_inv(i,l)*u(i) + S_inv(i+1,l)*u(i+1) &
|
zj = zj + S_inv(i,l)*u(i) + S_inv(i+1,l)*u(i+1) &
|
||||||
@ -480,7 +487,8 @@ subroutine det_update$n(n,LDS,m,l,S,S_inv,d)
|
|||||||
zj2 = 0.d0
|
zj2 = 0.d0
|
||||||
zj3 = 0.d0
|
zj3 = 0.d0
|
||||||
!DIR$ VECTOR ALIGNED
|
!DIR$ VECTOR ALIGNED
|
||||||
!DIR$ SIMD REDUCTION(+:zj,zj1,zj2,zj3)
|
!DIR$ NOPREFETCH
|
||||||
|
!DIR$ SIMD REDUCTION(+:zj,zj1,zj2,zj3) NOVECREMAINDER
|
||||||
do i=1,$n-1
|
do i=1,$n-1
|
||||||
zj = zj + S_inv(i,j )*u(i)
|
zj = zj + S_inv(i,j )*u(i)
|
||||||
zj1 = zj1 + S_inv(i,j+1)*u(i)
|
zj1 = zj1 + S_inv(i,j+1)*u(i)
|
||||||
@ -495,14 +503,16 @@ subroutine det_update$n(n,LDS,m,l,S,S_inv,d)
|
|||||||
|
|
||||||
zj = 0.d0
|
zj = 0.d0
|
||||||
!DIR$ VECTOR ALIGNED
|
!DIR$ VECTOR ALIGNED
|
||||||
!DIR$ SIMD REDUCTION(+:zj)
|
!DIR$ NOPREFETCH
|
||||||
do i=1,$n
|
!DIR$ SIMD REDUCTION(+:zj) NOVECREMAINDER
|
||||||
|
do i=1,$n-1
|
||||||
zj = zj + S_inv(i,$n)*u(i)
|
zj = zj + S_inv(i,$n)*u(i)
|
||||||
enddo
|
enddo
|
||||||
z($n) = zj
|
z($n) = zj + S_inv($n,$n)*u($n)
|
||||||
|
|
||||||
!DIR$ VECTOR ALIGNED
|
!DIR$ VECTOR ALIGNED
|
||||||
!DIR$ SIMD FIRSTPRIVATE(d_inv)
|
!DIR$ NOPREFETCH
|
||||||
|
!DIR$ SIMD FIRSTPRIVATE(d_inv) NOVECREMAINDER
|
||||||
do i=1,$n
|
do i=1,$n
|
||||||
w(i) = S_inv(i,l)*d_inv
|
w(i) = S_inv(i,l)*d_inv
|
||||||
S(i,l) = m(i)
|
S(i,l) = m(i)
|
||||||
@ -514,7 +524,8 @@ subroutine det_update$n(n,LDS,m,l,S,S_inv,d)
|
|||||||
zj2 = z(i+2)
|
zj2 = z(i+2)
|
||||||
zj3 = z(i+3)
|
zj3 = z(i+3)
|
||||||
!DIR$ VECTOR ALIGNED
|
!DIR$ VECTOR ALIGNED
|
||||||
!DIR$ SIMD FIRSTPRIVATE(lambda,zj,zj1,zj2,zj3)
|
!DIR$ NOPREFETCH
|
||||||
|
!DIR$ SIMD FIRSTPRIVATE(lambda,zj,zj1,zj2,zj3) NOVECREMAINDER
|
||||||
do j=1,$n-1
|
do j=1,$n-1
|
||||||
S_inv(j,i ) = S_inv(j,i )*lambda - w(j)*zj
|
S_inv(j,i ) = S_inv(j,i )*lambda - w(j)*zj
|
||||||
S_inv(j,i+1) = S_inv(j,i+1)*lambda - w(j)*zj1
|
S_inv(j,i+1) = S_inv(j,i+1)*lambda - w(j)*zj1
|
||||||
@ -529,7 +540,8 @@ subroutine det_update$n(n,LDS,m,l,S,S_inv,d)
|
|||||||
|
|
||||||
zj = z($n)
|
zj = z($n)
|
||||||
!DIR$ VECTOR ALIGNED
|
!DIR$ VECTOR ALIGNED
|
||||||
!DIR$ SIMD FIRSTPRIVATE(lambda,zj)
|
!DIR$ NOPREFETCH
|
||||||
|
!DIR$ SIMD FIRSTPRIVATE(lambda,zj) NOVECREMAINDER
|
||||||
do i=1,$n
|
do i=1,$n
|
||||||
S_inv(i,$n) = S_inv(i,$n)*lambda -w(i)*zj
|
S_inv(i,$n) = S_inv(i,$n)*lambda -w(i)*zj
|
||||||
enddo
|
enddo
|
||||||
@ -602,14 +614,16 @@ subroutine det_update$n(n,LDS,m,l,S,S_inv,d)
|
|||||||
|
|
||||||
double precision :: zj, zj1, zj2, zj3
|
double precision :: zj, zj1, zj2, zj3
|
||||||
!DIR$ VECTOR ALIGNED
|
!DIR$ VECTOR ALIGNED
|
||||||
!DIR$ SIMD
|
!DIR$ NOPREFETCH
|
||||||
|
!DIR$ SIMD NOVECREMAINDER
|
||||||
do i=1,$n
|
do i=1,$n
|
||||||
u(i) = m(i) - S(i,l)
|
u(i) = m(i) - S(i,l)
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
zj = 0.d0
|
zj = 0.d0
|
||||||
!DIR$ VECTOR ALIGNED
|
!DIR$ VECTOR ALIGNED
|
||||||
!DIR$ SIMD REDUCTION(+:zj)
|
!DIR$ NOPREFETCH
|
||||||
|
!DIR$ SIMD REDUCTION(+:zj) NOVECREMAINDER
|
||||||
do i=1,$n-2,4
|
do i=1,$n-2,4
|
||||||
zj = zj + S_inv(i,l)*u(i) + S_inv(i+1,l)*u(i+1) &
|
zj = zj + S_inv(i,l)*u(i) + S_inv(i+1,l)*u(i+1) &
|
||||||
+ S_inv(i+2,l)*u(i+2) + S_inv(i+3,l)*u(i+3)
|
+ S_inv(i+2,l)*u(i+2) + S_inv(i+3,l)*u(i+3)
|
||||||
@ -653,7 +667,8 @@ subroutine det_update$n(n,LDS,m,l,S,S_inv,d)
|
|||||||
zj = 0.d0
|
zj = 0.d0
|
||||||
zj1 = 0.d0
|
zj1 = 0.d0
|
||||||
!DIR$ VECTOR ALIGNED
|
!DIR$ VECTOR ALIGNED
|
||||||
!DIR$ SIMD REDUCTION(+:zj,zj1)
|
!DIR$ NOPREFETCH
|
||||||
|
!DIR$ SIMD REDUCTION(+:zj,zj1) NOVECREMAINDER
|
||||||
do i=1,$n-2
|
do i=1,$n-2
|
||||||
zj = zj + S_inv(i,j )*u(i)
|
zj = zj + S_inv(i,j )*u(i)
|
||||||
zj1 = zj1 + S_inv(i,j+1)*u(i)
|
zj1 = zj1 + S_inv(i,j+1)*u(i)
|
||||||
@ -664,7 +679,8 @@ subroutine det_update$n(n,LDS,m,l,S,S_inv,d)
|
|||||||
z(j+1) = z(j+1) + S_inv($n,j+1)*u($n)
|
z(j+1) = z(j+1) + S_inv($n,j+1)*u($n)
|
||||||
|
|
||||||
!DIR$ VECTOR ALIGNED
|
!DIR$ VECTOR ALIGNED
|
||||||
!DIR$ SIMD FIRSTPRIVATE(d_inv)
|
!DIR$ NOPREFETCH
|
||||||
|
!DIR$ SIMD FIRSTPRIVATE(d_inv) NOVECREMAINDER
|
||||||
do i=1,$n
|
do i=1,$n
|
||||||
w(i) = S_inv(i,l)*d_inv
|
w(i) = S_inv(i,l)*d_inv
|
||||||
S(i,l) = m(i)
|
S(i,l) = m(i)
|
||||||
@ -780,7 +796,8 @@ subroutine det_update$n(n,LDS,m,l,S,S_inv,d)
|
|||||||
|
|
||||||
zj = 0.d0
|
zj = 0.d0
|
||||||
!DIR$ VECTOR ALIGNED
|
!DIR$ VECTOR ALIGNED
|
||||||
!DIR$ SIMD REDUCTION(+:zj)
|
!DIR$ NOPREFETCH
|
||||||
|
!DIR$ SIMD REDUCTION(+:zj) NOVECREMAINDER
|
||||||
do i=1,$n-3,4
|
do i=1,$n-3,4
|
||||||
zj = zj + S_inv(i,l)*u(i) + S_inv(i+1,l)*u(i+1) &
|
zj = zj + S_inv(i,l)*u(i) + S_inv(i+1,l)*u(i+1) &
|
||||||
+ S_inv(i+2,l)*u(i+2) + S_inv(i+3,l)*u(i+3)
|
+ S_inv(i+2,l)*u(i+2) + S_inv(i+3,l)*u(i+3)
|
||||||
@ -830,6 +847,7 @@ subroutine det_update$n(n,LDS,m,l,S,S_inv,d)
|
|||||||
zj1 = 0.d0
|
zj1 = 0.d0
|
||||||
zj2 = 0.d0
|
zj2 = 0.d0
|
||||||
!DIR$ VECTOR ALIGNED
|
!DIR$ VECTOR ALIGNED
|
||||||
|
!DIR$ NOPREFETCH
|
||||||
!DIR$ SIMD REDUCTION(+:zj,zj1,zj2)
|
!DIR$ SIMD REDUCTION(+:zj,zj1,zj2)
|
||||||
do i=1,$n-3
|
do i=1,$n-3
|
||||||
zj = zj + S_inv(i,j )*u(i)
|
zj = zj + S_inv(i,j )*u(i)
|
||||||
@ -847,6 +865,7 @@ subroutine det_update$n(n,LDS,m,l,S,S_inv,d)
|
|||||||
z(j+2) = z(j+2) + S_inv($n,j+2)*u($n)
|
z(j+2) = z(j+2) + S_inv($n,j+2)*u($n)
|
||||||
|
|
||||||
!DIR$ VECTOR ALIGNED
|
!DIR$ VECTOR ALIGNED
|
||||||
|
!DIR$ NOPREFETCH
|
||||||
!DIR$ SIMD FIRSTPRIVATE(d_inv)
|
!DIR$ SIMD FIRSTPRIVATE(d_inv)
|
||||||
do i=1,$n
|
do i=1,$n
|
||||||
w(i) = S_inv(i,l)*d_inv
|
w(i) = S_inv(i,l)*d_inv
|
||||||
@ -859,6 +878,7 @@ subroutine det_update$n(n,LDS,m,l,S,S_inv,d)
|
|||||||
zj2 = z(i+2)
|
zj2 = z(i+2)
|
||||||
zj3 = z(i+3)
|
zj3 = z(i+3)
|
||||||
!DIR$ VECTOR ALIGNED
|
!DIR$ VECTOR ALIGNED
|
||||||
|
!DIR$ NOPREFETCH
|
||||||
!DIR$ SIMD FIRSTPRIVATE(lambda,zj,zj1,zj2,zj3)
|
!DIR$ SIMD FIRSTPRIVATE(lambda,zj,zj1,zj2,zj3)
|
||||||
do j=1,$n-3
|
do j=1,$n-3
|
||||||
S_inv(j,i ) = S_inv(j,i )*lambda - w(j)*zj
|
S_inv(j,i ) = S_inv(j,i )*lambda - w(j)*zj
|
||||||
@ -885,6 +905,7 @@ subroutine det_update$n(n,LDS,m,l,S,S_inv,d)
|
|||||||
zj1 = z(i+1)
|
zj1 = z(i+1)
|
||||||
zj2 = z(i+2)
|
zj2 = z(i+2)
|
||||||
!DIR$ VECTOR ALIGNED
|
!DIR$ VECTOR ALIGNED
|
||||||
|
!DIR$ NOPREFETCH
|
||||||
!DIR$ SIMD FIRSTPRIVATE(lambda,zj,zj1,zj2)
|
!DIR$ SIMD FIRSTPRIVATE(lambda,zj,zj1,zj2)
|
||||||
do j=1,$n
|
do j=1,$n
|
||||||
S_inv(j,i ) = S_inv(j,i )*lambda - w(j)*zj
|
S_inv(j,i ) = S_inv(j,i )*lambda - w(j)*zj
|
||||||
@ -962,6 +983,7 @@ subroutine det_update_general(n,LDS,m,l,S,S_inv,d)
|
|||||||
double precision :: zl
|
double precision :: zl
|
||||||
|
|
||||||
!DIR$ VECTOR ALIGNED
|
!DIR$ VECTOR ALIGNED
|
||||||
|
!DIR$ NOPREFETCH
|
||||||
!DIR$ SIMD
|
!DIR$ SIMD
|
||||||
do i=1,n
|
do i=1,n
|
||||||
u(i) = m(i) - S(i,l)
|
u(i) = m(i) - S(i,l)
|
||||||
@ -969,6 +991,7 @@ subroutine det_update_general(n,LDS,m,l,S,S_inv,d)
|
|||||||
|
|
||||||
zl = 0.d0
|
zl = 0.d0
|
||||||
!DIR$ VECTOR ALIGNED
|
!DIR$ VECTOR ALIGNED
|
||||||
|
!DIR$ NOPREFETCH
|
||||||
!DIR$ SIMD REDUCTION(+:zl)
|
!DIR$ SIMD REDUCTION(+:zl)
|
||||||
do i=1,n
|
do i=1,n
|
||||||
zl = zl + S_inv(i,l)*u(i)
|
zl = zl + S_inv(i,l)*u(i)
|
||||||
@ -987,12 +1010,14 @@ subroutine det_update_general(n,LDS,m,l,S,S_inv,d)
|
|||||||
|
|
||||||
n4 = iand(n,not(3))
|
n4 = iand(n,not(3))
|
||||||
!DIR$ VECTOR ALIGNED
|
!DIR$ VECTOR ALIGNED
|
||||||
|
!DIR$ NOPREFETCH
|
||||||
do j=1,n4,4
|
do j=1,n4,4
|
||||||
zj = 0.d0
|
zj = 0.d0
|
||||||
zj1 = 0.d0
|
zj1 = 0.d0
|
||||||
zj2 = 0.d0
|
zj2 = 0.d0
|
||||||
zj3 = 0.d0
|
zj3 = 0.d0
|
||||||
!DIR$ VECTOR ALIGNED
|
!DIR$ VECTOR ALIGNED
|
||||||
|
!DIR$ NOPREFETCH
|
||||||
!DIR$ SIMD REDUCTION(+:zj,zj1,zj2,zj3)
|
!DIR$ SIMD REDUCTION(+:zj,zj1,zj2,zj3)
|
||||||
do i=1,n
|
do i=1,n
|
||||||
zj = zj + S_inv(i,j )*u(i)
|
zj = zj + S_inv(i,j )*u(i)
|
||||||
@ -1009,6 +1034,7 @@ subroutine det_update_general(n,LDS,m,l,S,S_inv,d)
|
|||||||
do j=n4+1,n
|
do j=n4+1,n
|
||||||
zj = 0.d0
|
zj = 0.d0
|
||||||
!DIR$ VECTOR ALIGNED
|
!DIR$ VECTOR ALIGNED
|
||||||
|
!DIR$ NOPREFETCH
|
||||||
!DIR$ SIMD REDUCTION(+:zj)
|
!DIR$ SIMD REDUCTION(+:zj)
|
||||||
do i=1,n
|
do i=1,n
|
||||||
zj = zj + S_inv(i,j)*u(i)
|
zj = zj + S_inv(i,j)*u(i)
|
||||||
@ -1017,6 +1043,7 @@ subroutine det_update_general(n,LDS,m,l,S,S_inv,d)
|
|||||||
enddo
|
enddo
|
||||||
|
|
||||||
!DIR$ VECTOR ALIGNED
|
!DIR$ VECTOR ALIGNED
|
||||||
|
!DIR$ NOPREFETCH
|
||||||
!DIR$ SIMD FIRSTPRIVATE(d_inv)
|
!DIR$ SIMD FIRSTPRIVATE(d_inv)
|
||||||
do i=1,n
|
do i=1,n
|
||||||
w(i) = S_inv(i,l)*d_inv
|
w(i) = S_inv(i,l)*d_inv
|
||||||
@ -1024,6 +1051,7 @@ subroutine det_update_general(n,LDS,m,l,S,S_inv,d)
|
|||||||
enddo
|
enddo
|
||||||
|
|
||||||
!DIR$ VECTOR ALIGNED
|
!DIR$ VECTOR ALIGNED
|
||||||
|
!DIR$ NOPREFETCH
|
||||||
!DIR$ SIMD FIRSTPRIVATE(d_inv)
|
!DIR$ SIMD FIRSTPRIVATE(d_inv)
|
||||||
do i=1,n
|
do i=1,n
|
||||||
w(i) = S_inv(i,l)*d_inv
|
w(i) = S_inv(i,l)*d_inv
|
||||||
@ -1036,6 +1064,7 @@ subroutine det_update_general(n,LDS,m,l,S,S_inv,d)
|
|||||||
zj2 = z(i+2)
|
zj2 = z(i+2)
|
||||||
zj3 = z(i+3)
|
zj3 = z(i+3)
|
||||||
!DIR$ VECTOR ALIGNED
|
!DIR$ VECTOR ALIGNED
|
||||||
|
!DIR$ NOPREFETCH
|
||||||
!DIR$ SIMD FIRSTPRIVATE(lambda,zj,zj1,zj2,zj3)
|
!DIR$ SIMD FIRSTPRIVATE(lambda,zj,zj1,zj2,zj3)
|
||||||
do j=1,n
|
do j=1,n
|
||||||
S_inv(j,i ) = S_inv(j,i )*lambda -zj *w(j)
|
S_inv(j,i ) = S_inv(j,i )*lambda -zj *w(j)
|
||||||
@ -1048,6 +1077,7 @@ subroutine det_update_general(n,LDS,m,l,S,S_inv,d)
|
|||||||
do i=n4+1,n
|
do i=n4+1,n
|
||||||
zj = z(i)
|
zj = z(i)
|
||||||
!DIR$ VECTOR ALIGNED
|
!DIR$ VECTOR ALIGNED
|
||||||
|
!DIR$ NOPREFETCH
|
||||||
!DIR$ SIMD FIRSTPRIVATE(lambda,zj)
|
!DIR$ SIMD FIRSTPRIVATE(lambda,zj)
|
||||||
do j=1,n
|
do j=1,n
|
||||||
S_inv(j,i) = S_inv(j,i)*lambda -zj*w(j)
|
S_inv(j,i) = S_inv(j,i)*lambda -zj*w(j)
|
||||||
|
Loading…
Reference in New Issue
Block a user