From 3f93c6712de4cfa4786b57a263ac99edb406779f Mon Sep 17 00:00:00 2001 From: Dorian Stoll <dorian.stoll@tmsp.io> Date: Sun, 16 Jun 2024 12:09:46 +0200 Subject: [PATCH] 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. --- src/benchmarks/nas-ft/fortran/ft.f90 | 269 ---------------------- src/benchmarks/nas-ft/fortran/ft_data.f90 | 4 - 2 files changed, 273 deletions(-) diff --git a/src/benchmarks/nas-ft/fortran/ft.f90 b/src/benchmarks/nas-ft/fortran/ft.f90 index 86452da4..2ab27c39 100644 --- a/src/benchmarks/nas-ft/fortran/ft.f90 +++ b/src/benchmarks/nas-ft/fortran/ft.f90 @@ -105,8 +105,6 @@ call checksum(iter, u1, dims(1), dims(2), dims(3)) end do - call verify(nx, ny, nz, niter, verified, class) - call print_results('FT', class, nx, ny, nz, niter, & & ' floating point', verified, & & npbversion, compiletime, cs1, cs2, cs3, cs4, cs5, cs6, cs7) @@ -782,273 +780,6 @@ write (*, 30) i, chk 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 end diff --git a/src/benchmarks/nas-ft/fortran/ft_data.f90 b/src/benchmarks/nas-ft/fortran/ft_data.f90 index a94b1e34..c75f807f 100644 --- a/src/benchmarks/nas-ft/fortran/ft_data.f90 +++ b/src/benchmarks/nas-ft/fortran/ft_data.f90 @@ -89,10 +89,6 @@ ! relies on x being largest dimension? double complex u(nxp) - -! for checksum data - double complex sums(0:niter_default) - ! number of iterations integer niter -- GitLab