Skip to content
Snippets Groups Projects
Unverified Commit 3f93c671 authored by Dorian Stoll's avatar Dorian Stoll
Browse files

nas-ft: fortran: Disable verification of checksums

We only want to validate that two programs produce the same output.
Printing the checksums to stdout is sufficient for that.
parent b82192d0
No related branches found
No related tags found
No related merge requests found
...@@ -105,8 +105,6 @@ ...@@ -105,8 +105,6 @@
call checksum(iter, u1, dims(1), dims(2), dims(3)) call checksum(iter, u1, dims(1), dims(2), dims(3))
end do end do
call verify(nx, ny, nz, niter, verified, class)
call print_results('FT', class, nx, ny, nz, niter, & call print_results('FT', class, nx, ny, nz, niter, &
& ' floating point', verified, & & ' floating point', verified, &
& npbversion, compiletime, cs1, cs2, cs3, cs4, cs5, cs6, cs7) & npbversion, compiletime, cs1, cs2, cs3, cs4, cs5, cs6, cs7)
...@@ -782,273 +780,6 @@ ...@@ -782,273 +780,6 @@
write (*, 30) i, chk write (*, 30) i, chk
30 format (' T =',I5,5X,'Checksum =',1P2D22.12) 30 format (' T =',I5,5X,'Checksum =',1P2D22.12)
sums(i) = chk
return
end
!---------------------------------------------------------------------
!---------------------------------------------------------------------
subroutine verify (d1, d2, d3, nt, verified, class)
!---------------------------------------------------------------------
!---------------------------------------------------------------------
use, intrinsic :: ieee_arithmetic, only : ieee_is_nan
use ft_data
implicit none
integer d1, d2, d3, nt
character class
logical verified
integer i
double precision err, epsilon
!---------------------------------------------------------------------
! Reference checksums
!---------------------------------------------------------------------
double complex csum_ref(25)
class = 'U'
epsilon = 1.0d-12
verified = .FALSE.
if (d1 .eq. 64 .and. &
& d2 .eq. 64 .and. &
& d3 .eq. 64 .and. &
& nt .eq. 6) then
!---------------------------------------------------------------------
! Sample size reference checksums
!---------------------------------------------------------------------
class = 'S'
csum_ref(1) = dcmplx(5.546087004964D+02, 4.845363331978D+02)
csum_ref(2) = dcmplx(5.546385409189D+02, 4.865304269511D+02)
csum_ref(3) = dcmplx(5.546148406171D+02, 4.883910722336D+02)
csum_ref(4) = dcmplx(5.545423607415D+02, 4.901273169046D+02)
csum_ref(5) = dcmplx(5.544255039624D+02, 4.917475857993D+02)
csum_ref(6) = dcmplx(5.542683411902D+02, 4.932597244941D+02)
else if (d1 .eq. 128 .and. &
& d2 .eq. 128 .and. &
& d3 .eq. 32 .and. &
& nt .eq. 6) then
!---------------------------------------------------------------------
! Class W size reference checksums
!---------------------------------------------------------------------
class = 'W'
csum_ref(1) = dcmplx(5.673612178944D+02, 5.293246849175D+02)
csum_ref(2) = dcmplx(5.631436885271D+02, 5.282149986629D+02)
csum_ref(3) = dcmplx(5.594024089970D+02, 5.270996558037D+02)
csum_ref(4) = dcmplx(5.560698047020D+02, 5.260027904925D+02)
csum_ref(5) = dcmplx(5.530898991250D+02, 5.249400845633D+02)
csum_ref(6) = dcmplx(5.504159734538D+02, 5.239212247086D+02)
else if (d1 .eq. 256 .and. &
& d2 .eq. 256 .and. &
& d3 .eq. 128 .and. &
& nt .eq. 6) then
!---------------------------------------------------------------------
! Class A size reference checksums
!---------------------------------------------------------------------
class = 'A'
csum_ref(1) = dcmplx(5.046735008193D+02, 5.114047905510D+02)
csum_ref(2) = dcmplx(5.059412319734D+02, 5.098809666433D+02)
csum_ref(3) = dcmplx(5.069376896287D+02, 5.098144042213D+02)
csum_ref(4) = dcmplx(5.077892868474D+02, 5.101336130759D+02)
csum_ref(5) = dcmplx(5.085233095391D+02, 5.104914655194D+02)
csum_ref(6) = dcmplx(5.091487099959D+02, 5.107917842803D+02)
else if (d1 .eq. 512 .and. &
& d2 .eq. 256 .and. &
& d3 .eq. 256 .and. &
& nt .eq. 20) then
!---------------------------------------------------------------------
! Class B size reference checksums
!---------------------------------------------------------------------
class = 'B'
csum_ref(1) = dcmplx(5.177643571579D+02, 5.077803458597D+02)
csum_ref(2) = dcmplx(5.154521291263D+02, 5.088249431599D+02)
csum_ref(3) = dcmplx(5.146409228649D+02, 5.096208912659D+02)
csum_ref(4) = dcmplx(5.142378756213D+02, 5.101023387619D+02)
csum_ref(5) = dcmplx(5.139626667737D+02, 5.103976610617D+02)
csum_ref(6) = dcmplx(5.137423460082D+02, 5.105948019802D+02)
csum_ref(7) = dcmplx(5.135547056878D+02, 5.107404165783D+02)
csum_ref(8) = dcmplx(5.133910925466D+02, 5.108576573661D+02)
csum_ref(9) = dcmplx(5.132470705390D+02, 5.109577278523D+02)
csum_ref(10) = dcmplx(5.131197729984D+02, 5.110460304483D+02)
csum_ref(11) = dcmplx(5.130070319283D+02, 5.111252433800D+02)
csum_ref(12) = dcmplx(5.129070537032D+02, 5.111968077718D+02)
csum_ref(13) = dcmplx(5.128182883502D+02, 5.112616233064D+02)
csum_ref(14) = dcmplx(5.127393733383D+02, 5.113203605551D+02)
csum_ref(15) = dcmplx(5.126691062020D+02, 5.113735928093D+02)
csum_ref(16) = dcmplx(5.126064276004D+02, 5.114218460548D+02)
csum_ref(17) = dcmplx(5.125504076570D+02, 5.114656139760D+02)
csum_ref(18) = dcmplx(5.125002331720D+02, 5.115053595966D+02)
csum_ref(19) = dcmplx(5.124551951846D+02, 5.115415130407D+02)
csum_ref(20) = dcmplx(5.124146770029D+02, 5.115744692211D+02)
else if (d1 .eq. 512 .and. &
& d2 .eq. 512 .and. &
& d3 .eq. 512 .and. &
& nt .eq. 20) then
!---------------------------------------------------------------------
! Class C size reference checksums
!---------------------------------------------------------------------
class = 'C'
csum_ref(1) = dcmplx(5.195078707457D+02, 5.149019699238D+02)
csum_ref(2) = dcmplx(5.155422171134D+02, 5.127578201997D+02)
csum_ref(3) = dcmplx(5.144678022222D+02, 5.122251847514D+02)
csum_ref(4) = dcmplx(5.140150594328D+02, 5.121090289018D+02)
csum_ref(5) = dcmplx(5.137550426810D+02, 5.121143685824D+02)
csum_ref(6) = dcmplx(5.135811056728D+02, 5.121496764568D+02)
csum_ref(7) = dcmplx(5.134569343165D+02, 5.121870921893D+02)
csum_ref(8) = dcmplx(5.133651975661D+02, 5.122193250322D+02)
csum_ref(9) = dcmplx(5.132955192805D+02, 5.122454735794D+02)
csum_ref(10) = dcmplx(5.132410471738D+02, 5.122663649603D+02)
csum_ref(11) = dcmplx(5.131971141679D+02, 5.122830879827D+02)
csum_ref(12) = dcmplx(5.131605205716D+02, 5.122965869718D+02)
csum_ref(13) = dcmplx(5.131290734194D+02, 5.123075927445D+02)
csum_ref(14) = dcmplx(5.131012720314D+02, 5.123166486553D+02)
csum_ref(15) = dcmplx(5.130760908195D+02, 5.123241541685D+02)
csum_ref(16) = dcmplx(5.130528295923D+02, 5.123304037599D+02)
csum_ref(17) = dcmplx(5.130310107773D+02, 5.123356167976D+02)
csum_ref(18) = dcmplx(5.130103090133D+02, 5.123399592211D+02)
csum_ref(19) = dcmplx(5.129905029333D+02, 5.123435588985D+02)
csum_ref(20) = dcmplx(5.129714421109D+02, 5.123465164008D+02)
else if (d1 .eq. 2048 .and. &
& d2 .eq. 1024 .and. &
& d3 .eq. 1024 .and. &
& nt .eq. 25) then
!---------------------------------------------------------------------
! Class D size reference checksums
!---------------------------------------------------------------------
class = 'D'
csum_ref(1) = dcmplx(5.122230065252D+02, 5.118534037109D+02)
csum_ref(2) = dcmplx(5.120463975765D+02, 5.117061181082D+02)
csum_ref(3) = dcmplx(5.119865766760D+02, 5.117096364601D+02)
csum_ref(4) = dcmplx(5.119518799488D+02, 5.117373863950D+02)
csum_ref(5) = dcmplx(5.119269088223D+02, 5.117680347632D+02)
csum_ref(6) = dcmplx(5.119082416858D+02, 5.117967875532D+02)
csum_ref(7) = dcmplx(5.118943814638D+02, 5.118225281841D+02)
csum_ref(8) = dcmplx(5.118842385057D+02, 5.118451629348D+02)
csum_ref(9) = dcmplx(5.118769435632D+02, 5.118649119387D+02)
csum_ref(10) = dcmplx(5.118718203448D+02, 5.118820803844D+02)
csum_ref(11) = dcmplx(5.118683569061D+02, 5.118969781011D+02)
csum_ref(12) = dcmplx(5.118661708593D+02, 5.119098918835D+02)
csum_ref(13) = dcmplx(5.118649768950D+02, 5.119210777066D+02)
csum_ref(14) = dcmplx(5.118645605626D+02, 5.119307604484D+02)
csum_ref(15) = dcmplx(5.118647586618D+02, 5.119391362671D+02)
csum_ref(16) = dcmplx(5.118654451572D+02, 5.119463757241D+02)
csum_ref(17) = dcmplx(5.118665212451D+02, 5.119526269238D+02)
csum_ref(18) = dcmplx(5.118679083821D+02, 5.119580184108D+02)
csum_ref(19) = dcmplx(5.118695433664D+02, 5.119626617538D+02)
csum_ref(20) = dcmplx(5.118713748264D+02, 5.119666538138D+02)
csum_ref(21) = dcmplx(5.118733606701D+02, 5.119700787219D+02)
csum_ref(22) = dcmplx(5.118754661974D+02, 5.119730095953D+02)
csum_ref(23) = dcmplx(5.118776626738D+02, 5.119755100241D+02)
csum_ref(24) = dcmplx(5.118799262314D+02, 5.119776353561D+02)
csum_ref(25) = dcmplx(5.118822370068D+02, 5.119794338060D+02)
else if (d1 .eq. 4096 .and. &
& d2 .eq. 2048 .and. &
& d3 .eq. 2048 .and. &
& nt .eq. 25) then
!---------------------------------------------------------------------
! Class E size reference checksums
!---------------------------------------------------------------------
class = 'E'
csum_ref(1) = dcmplx(5.121601045346D+02, 5.117395998266D+02)
csum_ref(2) = dcmplx(5.120905403678D+02, 5.118614716182D+02)
csum_ref(3) = dcmplx(5.120623229306D+02, 5.119074203747D+02)
csum_ref(4) = dcmplx(5.120438418997D+02, 5.119345900733D+02)
csum_ref(5) = dcmplx(5.120311521872D+02, 5.119551325550D+02)
csum_ref(6) = dcmplx(5.120226088809D+02, 5.119720179919D+02)
csum_ref(7) = dcmplx(5.120169296534D+02, 5.119861371665D+02)
csum_ref(8) = dcmplx(5.120131225172D+02, 5.119979364402D+02)
csum_ref(9) = dcmplx(5.120104767108D+02, 5.120077674092D+02)
csum_ref(10) = dcmplx(5.120085127969D+02, 5.120159443121D+02)
csum_ref(11) = dcmplx(5.120069224127D+02, 5.120227453670D+02)
csum_ref(12) = dcmplx(5.120055158164D+02, 5.120284096041D+02)
csum_ref(13) = dcmplx(5.120041820159D+02, 5.120331373793D+02)
csum_ref(14) = dcmplx(5.120028605402D+02, 5.120370938679D+02)
csum_ref(15) = dcmplx(5.120015223011D+02, 5.120404138831D+02)
csum_ref(16) = dcmplx(5.120001570022D+02, 5.120432068837D+02)
csum_ref(17) = dcmplx(5.119987650555D+02, 5.120455615860D+02)
csum_ref(18) = dcmplx(5.119973525091D+02, 5.120475499442D+02)
csum_ref(19) = dcmplx(5.119959279472D+02, 5.120492304629D+02)
csum_ref(20) = dcmplx(5.119945006558D+02, 5.120506508902D+02)
csum_ref(21) = dcmplx(5.119930795911D+02, 5.120518503782D+02)
csum_ref(22) = dcmplx(5.119916728462D+02, 5.120528612016D+02)
csum_ref(23) = dcmplx(5.119902874185D+02, 5.120537101195D+02)
csum_ref(24) = dcmplx(5.119889291565D+02, 5.120544194514D+02)
csum_ref(25) = dcmplx(5.119876028049D+02, 5.120550079284D+02)
else if (d1 .eq. 8192 .and. &
& d2 .eq. 4096 .and. &
& d3 .eq. 4096 .and. &
& nt .eq. 25) then
!---------------------------------------------------------------------
! Class F size reference checksums
!---------------------------------------------------------------------
class = 'F'
csum_ref( 1) = dcmplx(5.119892866928D+02, 5.121457822747D+02)
csum_ref( 2) = dcmplx(5.119560157487D+02, 5.121009044434D+02)
csum_ref( 3) = dcmplx(5.119437960123D+02, 5.120761074285D+02)
csum_ref( 4) = dcmplx(5.119395628845D+02, 5.120614320496D+02)
csum_ref( 5) = dcmplx(5.119390371879D+02, 5.120514085624D+02)
csum_ref( 6) = dcmplx(5.119405091840D+02, 5.120438117102D+02)
csum_ref( 7) = dcmplx(5.119430444528D+02, 5.120376348915D+02)
csum_ref( 8) = dcmplx(5.119460702242D+02, 5.120323831062D+02)
csum_ref( 9) = dcmplx(5.119492377036D+02, 5.120277980818D+02)
csum_ref(10) = dcmplx(5.119523446268D+02, 5.120237368268D+02)
csum_ref(11) = dcmplx(5.119552825361D+02, 5.120201137845D+02)
csum_ref(12) = dcmplx(5.119580008777D+02, 5.120168723492D+02)
csum_ref(13) = dcmplx(5.119604834177D+02, 5.120139707209D+02)
csum_ref(14) = dcmplx(5.119627332821D+02, 5.120113749334D+02)
csum_ref(15) = dcmplx(5.119647637538D+02, 5.120090554887D+02)
csum_ref(16) = dcmplx(5.119665927740D+02, 5.120069857863D+02)
csum_ref(17) = dcmplx(5.119682397643D+02, 5.120051414260D+02)
csum_ref(18) = dcmplx(5.119697238718D+02, 5.120034999132D+02)
csum_ref(19) = dcmplx(5.119710630664D+02, 5.120020405355D+02)
csum_ref(20) = dcmplx(5.119722737384D+02, 5.120007442976D+02)
csum_ref(21) = dcmplx(5.119733705802D+02, 5.119995938652D+02)
csum_ref(22) = dcmplx(5.119743666226D+02, 5.119985735001D+02)
csum_ref(23) = dcmplx(5.119752733481D+02, 5.119976689792D+02)
csum_ref(24) = dcmplx(5.119761008382D+02, 5.119968675026D+02)
csum_ref(25) = dcmplx(5.119768579280D+02, 5.119961575929D+02)
endif
if (class .ne. 'U') then
do i = 1, nt
err = abs( (sums(i) - csum_ref(i)) / csum_ref(i) )
if (ieee_is_nan(err) .or. (err .gt. epsilon)) goto 100
end do
verified = .TRUE.
100 continue
endif
if (class .ne. 'U') then
if (verified) then
write(*,2000)
2000 format(' Result verification successful')
else
write(*,2001)
2001 format(' Result verification failed')
endif
endif
print *, 'class = ', class
return return
end end
......
...@@ -89,10 +89,6 @@ ...@@ -89,10 +89,6 @@
! relies on x being largest dimension? ! relies on x being largest dimension?
double complex u(nxp) double complex u(nxp)
! for checksum data
double complex sums(0:niter_default)
! number of iterations ! number of iterations
integer niter integer niter
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment