madgraph5 / madgraph4gpu

GPU development for the Madgraph5_aMC@NLO event generator software package
30 stars 33 forks source link

Fix loop_no_b_mass SM processes (COND and reglog are missing) #696

Open valassi opened 1 year ago

valassi commented 1 year ago

Add support for HRDCOD=1 builds of no_b_mass SM processes like pp_ttW

Unfortunately no_b_mass pp_ttW does not only fail to build HRDCOD=0 (#695), it also fails to build HRDCOD=1. This is how it fails

[avalassi@itscrd80 gcc11.2/cvmfs] /data/avalassi/GPU2023/madgraph4gpuX/epochX/cudacpp/pp_ttW.sa/SubProcesses/P0_Sigma_loop_sm_no_b_mass_dux_ttxwm> make HRDCOD=1
OMPFLAGS=-fopenmp
AVX=512y
FPTYPE=d
HELINL=0
HRDCOD=1
RNDGEN=hasCurand
Building in BUILDDIR=. for tag=512y_d_inl0_hrd1_hasCurand (USEBUILDDIR is not set)
make -C ../../src  -f cudacpp_src.mk
make[1]: Entering directory '/data/avalassi/GPU2023/madgraph4gpuX/epochX/cudacpp/pp_ttW.sa/src'
AVX=512y
ccache /cvmfs/sft.cern.ch/lcg/releases/gcc/11.2.0-ad950/x86_64-centos8/bin/g++  -O3  -std=c++17 -I.  -fPIC -Wall -Wshadow -Wextra -ffast-math  -fopenmp -march=skylake-avx512 -mprefer-vector-width=256  -DMGONGPU_FPTYPE_DOUBLE -DMGONGPU_FPTYPE2_DOUBLE -DMGONGPU_HARDCODE_PARAM -c Parameters_loop_sm_no_b_mass.cc -o Parameters_loop_sm_no_b_mass.o
In file included from Parameters_loop_sm_no_b_mass.cc:15:
Parameters_loop_sm_no_b_mass.h: In function ‘const Parameters_loop_sm_no_b_mass_dependentCouplings::DependentCouplings_sv Parameters_loop_sm_no_b_mass_dependentCouplings::computeDependentCouplings_fromG(const fptype_sv&)’:
Parameters_loop_sm_no_b_mass.h:291:46: error: ‘COND’ was not declared in this scope
  291 |       const fptype_sv mdl_GWcft_UV_t_1EPS_ = COND( mdl_MT, 0., -( ( mdl_G__exp__2 ) / ( 2. * 48. * ( ( M_PI ) * ( M_PI ) ) ) ) * 4. * mdl_TF );
      |                                              ^~~~
Parameters_loop_sm_no_b_mass.h:300:138: error: ‘reglog’ was not declared in this scope
  300 |       const fptype_sv mdl_G_UVt_FIN_ = COND( mdl_MT, 0., -( ( mdl_G__exp__2 ) / ( 2. * 48. * ( ( M_PI ) * ( M_PI ) ) ) ) * 4. * mdl_TF * reglog( mdl_MT__exp__2 / mdl_MU_R__exp__2 ) );
      |                                                                                                                                          ^~~~~~
make[1]: *** [cudacpp_src.mk:241: Parameters_loop_sm_no_b_mass.o] Error 1
make[1]: Leaving directory '/data/avalassi/GPU2023/madgraph4gpuX/epochX/cudacpp/pp_ttW.sa/src'
make: *** [makefile:520: ../../lib/libmg5amc_common.so] Error 2
valassi commented 1 year ago

I have renamed it to specify that it is loop_no_b_mass processes that fail with COND and REGLOG issues.

If one uses no_b_mass then the builds of pp_ttW are possible (see MR #706), but they are affected by other issues (like the FPEs in #701 and #733)

valassi commented 7 months ago

I am not sure why this is closed. I think that accidentally github has understood that https://github.com/madgraph5/madgraph4gpu/commit/f04541830037c7c2febbe2177e14242f69733d0e was closing this, but actually that commit only handles no_b_mass models, which are fixed, while loop_no_b_mass models are NOT fixed.

As this issue specifically concerns loop_no_b_mass, I reopen it. In any case this is low priority for LO< because this model is really only needed for NLO iiuc.

I have regenerated loop_nobm_gg_tt.sa with the SMEFT changes in #632, and I confirm that the builds still fail. As in the past, the issues are COND and reglog (I will add this to the title).

This is HRDCOD=0

[avalassi@itscrd90 gcc11/usr] /data/avalassi/GPU2023/madgraph4gpuX/epochX/cudacpp/loop_nobm_gg_tt.sa/SubProcesses/P1_Sigma_loop_sm_no_b_mass_gg_ttx> make HRDCOD=0
makefile:148: HIP_HOME was not set: using ""
OMPFLAGS=-fopenmp 
AVX=512y
FPTYPE=d
HELINL=0
HRDCOD=0
HASCURAND=hasCurand
HASHIPRAND=hasNoHiprand
Building in BUILDDIR=. for tag=512y_d_inl0_hrd0_hasCurand_hasNoHiprand (USEBUILDDIR is not set)
make -C ../../src  -f cudacpp_src.mk
make[1]: Entering directory '/data/avalassi/GPU2023/madgraph4gpuX/epochX/cudacpp/loop_nobm_gg_tt.sa/src'
AVX=512y
ccache g++  -O3  -std=c++17 -I.  -fPIC -Wall -Wshadow -Wextra -ffast-math  -fopenmp  -march=skylake-avx512 -mprefer-vector-width=256  -DMGONGPU_FPTYPE_DOUBLE -DMGONGPU_FPTYPE2_DOUBLE -fPIC -c Parameters_loop_sm_no_b_mass.cc -o Parameters_loop_sm_no_b_mass.o
In file included from Parameters_loop_sm_no_b_mass.cc:15:
Parameters_loop_sm_no_b_mass.h: In function ‘const mg5amcCpu::Parameters_loop_sm_no_b_mass_dependentCouplings::DependentCouplings_sv mg5amcCpu::Parameters_loop_sm_no_b_mass_dependentCouplings::computeDependentCouplings_fromG(const fptype_sv&, const double*)’:
Parameters_loop_sm_no_b_mass.h:312:48: error: ‘COND’ was not declared in this scope
  312 |         const fptype_sv mdl_GWcft_UV_t_1EPS_ = COND( mdl_MT, 0., -( ( mdl_G__exp__2 ) / ( 2. * 48. * ( ( M_PI ) * ( M_PI ) ) ) ) * 4. * mdl_TF );
      |                                                ^~~~
Parameters_loop_sm_no_b_mass.h:314:73: error: ‘mdl_complexi’ was not declared in this scope
  314 |         constexpr cxsmpl<double> mdl_tMass_UV_1EPS_ = COND( mdl_MT, 0., mdl_complexi * ( ( mdl_G__exp__2 ) / ( 16. * ( ( M_PI ) * ( M_PI ) ) ) ) * 3. * mdl_CF * mdl_MT );
      |                                                                         ^~~~~~~~~~~~
Parameters_loop_sm_no_b_mass.h:321:140: error: ‘reglog’ was not declared in this scope
  321 |         const fptype_sv mdl_G_UVt_FIN_ = COND( mdl_MT, 0., -( ( mdl_G__exp__2 ) / ( 2. * 48. * ( ( M_PI ) * ( M_PI ) ) ) ) * 4. * mdl_TF * reglog( mdl_MT__exp__2 / mdl_MU_R__exp__2 ) );
      |                                                                                                                                            ^~~~~~
make[1]: *** [cudacpp_src.mk:251: Parameters_loop_sm_no_b_mass.o] Error 1
make[1]: Leaving directory '/data/avalassi/GPU2023/madgraph4gpuX/epochX/cudacpp/loop_nobm_gg_tt.sa/src'
make: *** [makefile:681: ../../lib/libmg5amc_common.so] Error 2

And this is HRDCOD=1

[avalassi@itscrd90 gcc11/usr] /data/avalassi/GPU2023/madgraph4gpuX/epochX/cudacpp/loop_nobm_gg_tt.sa/SubProcesses/P1_Sigma_loop_sm_no_b_mass_gg_ttx> make HRDCOD=1
makefile:148: HIP_HOME was not set: using ""
OMPFLAGS=-fopenmp 
AVX=512y
FPTYPE=d
HELINL=0
HRDCOD=1
HASCURAND=hasCurand
HASHIPRAND=hasNoHiprand
Building in BUILDDIR=. for tag=512y_d_inl0_hrd1_hasCurand_hasNoHiprand (USEBUILDDIR is not set)
make -C ../../src  -f cudacpp_src.mk
make[1]: Entering directory '/data/avalassi/GPU2023/madgraph4gpuX/epochX/cudacpp/loop_nobm_gg_tt.sa/src'
AVX=512y
ccache g++  -O3  -std=c++17 -I.  -fPIC -Wall -Wshadow -Wextra -ffast-math  -fopenmp  -march=skylake-avx512 -mprefer-vector-width=256  -DMGONGPU_FPTYPE_DOUBLE -DMGONGPU_FPTYPE2_DOUBLE -DMGONGPU_HARDCODE_PARAM -fPIC -c Parameters_loop_sm_no_b_mass.cc -o Parameters_loop_sm_no_b_mass.o
In file included from Parameters_loop_sm_no_b_mass.cc:15:
Parameters_loop_sm_no_b_mass.h: In function ‘const mg5amcCpu::Parameters_loop_sm_no_b_mass_dependentCouplings::DependentCouplings_sv mg5amcCpu::Parameters_loop_sm_no_b_mass_dependentCouplings::computeDependentCouplings_fromG(const fptype_sv&, const double*)’:
Parameters_loop_sm_no_b_mass.h:312:48: error: ‘COND’ was not declared in this scope
  312 |         const fptype_sv mdl_GWcft_UV_t_1EPS_ = COND( mdl_MT, 0., -( ( mdl_G__exp__2 ) / ( 2. * 48. * ( ( M_PI ) * ( M_PI ) ) ) ) * 4. * mdl_TF );
      |                                                ^~~~
Parameters_loop_sm_no_b_mass.h:321:140: error: ‘reglog’ was not declared in this scope
  321 |         const fptype_sv mdl_G_UVt_FIN_ = COND( mdl_MT, 0., -( ( mdl_G__exp__2 ) / ( 2. * 48. * ( ( M_PI ) * ( M_PI ) ) ) ) * 4. * mdl_TF * reglog( mdl_MT__exp__2 / mdl_MU_R__exp__2 ) );
      |                                                                                                                                            ^~~~~~
make[1]: *** [cudacpp_src.mk:251: Parameters_loop_sm_no_b_mass.o] Error 1
make[1]: Leaving directory '/data/avalassi/GPU2023/madgraph4gpuX/epochX/cudacpp/loop_nobm_gg_tt.sa/src'
make: *** [makefile:681: ../../lib/libmg5amc_common.so] Error 2
valassi commented 7 months ago

I renamed it, and also removed HRDCOD=1 from the title. Both HRDCOD=0 and HRDCOD=1 builds fail.