From 1f263f6ec9bd0077ea40948193baaaf9c6625413 Mon Sep 17 00:00:00 2001 From: Olivier Mattelaer Date: Thu, 14 Sep 2023 10:20:17 +0200 Subject: [PATCH 001/107] change python interface to handle two parameter related to vectorization (vector_size and nb_wrap. (fortran/cpp code not updated yet) --- MG5aMC/mg5amcnlo | 2 +- .../PLUGIN/CUDACPP_SA_OUTPUT/launch_plugin.py | 12 +++++++++--- .../CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/output.py | 6 +++++- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/MG5aMC/mg5amcnlo b/MG5aMC/mg5amcnlo index 3597d123f6..1d20bfdc7e 160000 --- a/MG5aMC/mg5amcnlo +++ b/MG5aMC/mg5amcnlo @@ -1 +1 @@ -Subproject commit 3597d123f6c954bdba4a49387b8e89a5f2b06dcc +Subproject commit 1d20bfdc7e3db68d14687baaf40228fa5b302b35 diff --git a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/launch_plugin.py b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/launch_plugin.py index 23271b846e..3e140de5eb 100644 --- a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/launch_plugin.py +++ b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/launch_plugin.py @@ -55,10 +55,15 @@ def reset_simd(self, old_value, new_value, name): if not hasattr(self, 'path'): raise Exception - if name == "vector_size" and new_value <= int(old_value): - # code can handle the new size -> do not recompile + if name != 'vecsize_memmax': + # this will be control by that value only return + if name == "vecsize_memax" and new_value <= int(old_value): + # code can handle the new size -> do not recompile + return + + # ok need to force recompilation of the cpp part Sourcedir = pjoin(os.path.dirname(os.path.dirname(self.path)), 'Source') subprocess.call(['make', 'cleanavx'], cwd=Sourcedir, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) @@ -73,7 +78,8 @@ def default_setup(self): def write_one_include_file(self, output_dir, incname, output_file=None): """write one include file at the time""" - if incname == "vector.inc" and 'vector_size' not in self.user_set: + if incname == "vector.inc" and 'vector_size' not in self.user_set and\ + 'wrap_size' not in self.user_set: return super().write_one_include_file(output_dir, incname, output_file) diff --git a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/output.py b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/output.py index 53cbf7f621..8aeebfbcac 100644 --- a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/output.py +++ b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/output.py @@ -269,6 +269,8 @@ def change_output_args(args, cmd): args.append('--me_exporter=standalone_simd') if 'vector_size' not in ''.join(args): args.append('--vector_size=16') + if 'nb_wrap' not in ''.join(args): + args.append('--nb_wrap=1') return args @@ -281,7 +283,9 @@ def change_output_args(args, cmd): args.append('--hel_recycling=False') args.append('--me_exporter=standalone_cuda') if 'vector_size' not in ''.join(args): - args.append('--vector_size=16384') + args.append('--vector_size=32') + if 'nb_wrap' not in ''.join(args): + args.append('--nb_wrap=512') return args def finalize(self, matrix_element, cmdhistory, MG5options, outputflag): From bc994a3654956d312d0a1c2fe7dfe156a6202408 Mon Sep 17 00:00:00 2001 From: Olivier Mattelaer Date: Fri, 22 Sep 2023 14:33:30 +0200 Subject: [PATCH 002/107] change submodule to support lhapdf --- MG5aMC/mg5amcnlo | 2 +- .../madgraph/iolibs/template_files/gpu/cudacpp.mk | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/MG5aMC/mg5amcnlo b/MG5aMC/mg5amcnlo index 1d20bfdc7e..8419b703e8 160000 --- a/MG5aMC/mg5amcnlo +++ b/MG5aMC/mg5amcnlo @@ -1 +1 @@ -Subproject commit 1d20bfdc7e3db68d14687baaf40228fa5b302b35 +Subproject commit 8419b703e8fa9cc11d2da82e2c41558324e7109c diff --git a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/cudacpp.mk b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/cudacpp.mk index 49a5856085..c937a6f7bb 100644 --- a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/cudacpp.mk +++ b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/cudacpp.mk @@ -81,6 +81,11 @@ GTESTLIBDIR = GTESTLIBS = GTESTINC = endif +TESTDIR = +GTESTLIBDIR = +GTESTLIBS = +GTESTINC = + ###$(info GTEST_ROOT = $(GTEST_ROOT)) ###$(info LOCALGTEST = $(LOCALGTEST)) ###$(info TESTDIR = $(TESTDIR)) From 55b3e746273ab71d7e9d2d2082a292ee4b48a3c2 Mon Sep 17 00:00:00 2001 From: Olivier Mattelaer Date: Thu, 5 Oct 2023 16:13:06 +0200 Subject: [PATCH 003/107] remove the patch for autodsig.f (need an upstream patch from wrap_interface) --- .../MG5aMC_patches/PROD/patch.P1 | 158 ------------------ .../iolibs/template_files/gpu/cudacpp.mk | 4 + .../iolibs/template_files/gpu/smatrix_multi.f | 89 ++++++++++ .../PLUGIN/CUDACPP_SA_OUTPUT/output.py | 73 +++++++- .../PLUGIN/CUDACPP_SA_OUTPUT/patchMad.sh | 4 +- 5 files changed, 166 insertions(+), 162 deletions(-) create mode 100644 epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/smatrix_multi.f diff --git a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/MG5aMC_patches/PROD/patch.P1 b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/MG5aMC_patches/PROD/patch.P1 index d7c2c53fa7..996883d637 100644 --- a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/MG5aMC_patches/PROD/patch.P1 +++ b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/MG5aMC_patches/PROD/patch.P1 @@ -1,161 +1,3 @@ -diff --git b/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/auto_dsig1.f a/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/auto_dsig1.f -index 27ed1439e..3b24a9924 100644 ---- b/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/auto_dsig1.f -+++ a/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/auto_dsig1.f -@@ -469,23 +469,140 @@ C - INTEGER VECSIZE_USED - - INTEGER IVEC -- -- -+ INTEGER IEXT -+ -+ INTEGER ISUM_HEL -+ LOGICAL MULTI_CHANNEL -+ COMMON/TO_MATRIX/ISUM_HEL, MULTI_CHANNEL -+ -+ LOGICAL FIRST_CHID -+ SAVE FIRST_CHID -+ DATA FIRST_CHID/.TRUE./ -+ -+#ifdef MG5AMC_MEEXPORTER_CUDACPP -+ INCLUDE 'coupl.inc' ! for ALL_G -+ INCLUDE 'fbridge.inc' -+ INCLUDE 'fbridge_common.inc' -+ INCLUDE 'genps.inc' -+ INCLUDE 'run.inc' -+ DOUBLE PRECISION OUT2(VECSIZE_MEMMAX) -+ INTEGER SELECTED_HEL2(VECSIZE_MEMMAX) -+ INTEGER SELECTED_COL2(VECSIZE_MEMMAX) -+ DOUBLE PRECISION CBYF1 -+ INTEGER*4 NGOODHEL, NTOTHEL -+ -+ INTEGER*4 NWARNINGS -+ SAVE NWARNINGS -+ DATA NWARNINGS/0/ -+ -+ LOGICAL FIRST -+ SAVE FIRST -+ DATA FIRST/.TRUE./ -+ -+ IF( FBRIDGE_MODE .LE. 0 ) THEN ! (FortranOnly=0 or BothQuiet=-1 or BothDebug=-2) -+#endif -+ call counters_smatrix1multi_start( -1, VECSIZE_USED ) ! fortran=-1 - !$OMP PARALLEL - !$OMP DO -- DO IVEC=1, VECSIZE_USED -- CALL SMATRIX1(P_MULTI(0,1,IVEC), -- & hel_rand(IVEC), -- & col_rand(IVEC), -- & channel, -- & IVEC, -- & out(IVEC), -- & selected_hel(IVEC), -- & selected_col(IVEC) -- & ) -- ENDDO -+ DO IVEC=1, VECSIZE_USED -+ CALL SMATRIX1(P_MULTI(0,1,IVEC), -+ & hel_rand(IVEC), -+ & col_rand(IVEC), -+ & channel, -+ & IVEC, -+ & out(IVEC), -+ & selected_hel(IVEC), -+ & selected_col(IVEC) -+ & ) -+ ENDDO - !$OMP END DO - !$OMP END PARALLEL -+ call counters_smatrix1multi_stop( -1 ) ! fortran=-1 -+#ifdef MG5AMC_MEEXPORTER_CUDACPP -+ ENDIF -+ -+ IF( FBRIDGE_MODE .EQ. 1 .OR. FBRIDGE_MODE .LT. 0 ) THEN ! (CppOnly=1 or BothQuiet=-1 or BothDebug=-2) -+ IF( LIMHEL.NE.0 ) THEN -+ WRITE(6,*) 'ERROR! The cudacpp bridge only supports LIMHEL=0' -+ STOP -+ ENDIF -+ IF ( FIRST ) THEN ! exclude first pass (helicity filtering) from timers (#461) -+ CALL FBRIDGESEQUENCE(FBRIDGE_PBRIDGE, P_MULTI, ALL_G, -+ & HEL_RAND, COL_RAND, 0, OUT2, -+ & SELECTED_HEL2, SELECTED_COL2 ) ! 0: multi channel disabled for helicity filtering -+ FIRST = .FALSE. -+c ! This is a workaround for https://github.com/oliviermattelaer/mg5amc_test/issues/22 (see PR #486) -+ IF( FBRIDGE_MODE .EQ. 1 ) THEN ! (CppOnly=1 : SMATRIX1 is not called at all) -+ CALL RESET_CUMULATIVE_VARIABLE() ! mimic 'avoid bias of the initialization' within SMATRIX1 -+ ENDIF -+ CALL FBRIDGEGETNGOODHEL(FBRIDGE_PBRIDGE,NGOODHEL,NTOTHEL) -+ IF( NTOTHEL .NE. NCOMB ) THEN -+ WRITE(6,*) 'ERROR! Cudacpp/Fortran mismatch', -+ & ' in total number of helicities', NTOTHEL, NCOMB -+ STOP -+ ENDIF -+ WRITE (6,*) 'NGOODHEL =', NGOODHEL -+ WRITE (6,*) 'NCOMB =', NCOMB -+ ENDIF -+ call counters_smatrix1multi_start( 0, VECSIZE_USED ) ! cudacpp=0 -+ IF ( .NOT. MULTI_CHANNEL ) THEN -+ CALL FBRIDGESEQUENCE(FBRIDGE_PBRIDGE, P_MULTI, ALL_G, -+ & HEL_RAND, COL_RAND, 0, OUT2, -+ & SELECTED_HEL2, SELECTED_COL2 ) ! 0: multi channel disabled -+ ELSE -+ IF( SDE_STRAT.NE.1 ) THEN -+ WRITE(6,*) 'ERROR! The cudacpp bridge requires SDE=1' ! multi channel single-diagram enhancement strategy -+ STOP -+ ENDIF -+ CALL FBRIDGESEQUENCE(FBRIDGE_PBRIDGE, P_MULTI, ALL_G, -+ & HEL_RAND, COL_RAND, CHANNEL, OUT2, -+ & SELECTED_HEL2, SELECTED_COL2 ) ! 1-N: multi channel enabled -+ ENDIF -+ call counters_smatrix1multi_stop( 0 ) ! cudacpp=0 -+ ENDIF -+ -+ IF( FBRIDGE_MODE .LT. 0 ) THEN ! (BothQuiet=-1 or BothDebug=-2) -+ DO IVEC=1, VECSIZE_USED -+ CBYF1 = OUT2(IVEC)/OUT(IVEC) - 1 -+ FBRIDGE_NCBYF1 = FBRIDGE_NCBYF1 + 1 -+ FBRIDGE_CBYF1SUM = FBRIDGE_CBYF1SUM + CBYF1 -+ FBRIDGE_CBYF1SUM2 = FBRIDGE_CBYF1SUM2 + CBYF1 * CBYF1 -+ IF( CBYF1 .GT. FBRIDGE_CBYF1MAX ) FBRIDGE_CBYF1MAX = CBYF1 -+ IF( CBYF1 .LT. FBRIDGE_CBYF1MIN ) FBRIDGE_CBYF1MIN = CBYF1 -+ IF( FBRIDGE_MODE .EQ. -2 ) THEN ! (BothDebug=-2) -+ WRITE (*,'(I4,2E16.8,F23.11,I3,I3,I4,I4)') -+ & IVEC, OUT(IVEC), OUT2(IVEC), 1+CBYF1, -+ & SELECTED_HEL(IVEC), SELECTED_HEL2(IVEC), -+ & SELECTED_COL(IVEC), SELECTED_COL2(IVEC) -+ ENDIF -+ IF( ABS(CBYF1).GT.5E-5 .AND. NWARNINGS.LT.20 ) THEN -+ NWARNINGS = NWARNINGS + 1 -+ WRITE (*,'(A,I4,A,I4,2E16.8,F23.11)') -+ & 'WARNING! (', NWARNINGS, '/20) Deviation more than 5E-5', -+ & IVEC, OUT(IVEC), OUT2(IVEC), 1+CBYF1 -+ ENDIF -+ END DO -+ ENDIF -+ -+ IF( FBRIDGE_MODE .EQ. 1 .OR. FBRIDGE_MODE .LT. 0 ) THEN ! (CppOnly=1 or BothQuiet=-1 or BothDebug=-2) -+ DO IVEC=1, VECSIZE_USED -+ OUT(IVEC) = OUT2(IVEC) ! use the cudacpp ME instead of the fortran ME! -+ SELECTED_HEL(IVEC) = SELECTED_HEL2(IVEC) ! use the cudacpp helicity instead of the fortran helicity! -+ SELECTED_COL(IVEC) = SELECTED_COL2(IVEC) ! use the cudacpp color instead of the fortran color! -+ END DO -+ ENDIF -+#endif -+ -+ IF ( FIRST_CHID ) THEN -+ IF ( MULTI_CHANNEL ) THEN -+ WRITE (*,*) 'MULTI_CHANNEL = TRUE' -+ ELSE -+ WRITE (*,*) 'MULTI_CHANNEL = FALSE' -+ ENDIF -+ WRITE (*,*) 'CHANNEL_ID =', CHANNEL -+ FIRST_CHID = .FALSE. -+ ENDIF -+ - RETURN - END - diff --git b/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/driver.f a/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/driver.f index 71fbf2b25..0f1d199fc 100644 --- b/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/driver.f diff --git a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/cudacpp.mk b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/cudacpp.mk index c937a6f7bb..4aa0003ed8 100644 --- a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/cudacpp.mk +++ b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/cudacpp.mk @@ -90,6 +90,10 @@ GTESTINC = ###$(info LOCALGTEST = $(LOCALGTEST)) ###$(info TESTDIR = $(TESTDIR)) +TESTDIR= +GTESTLIBDIR = +GTESTLIBS = +GTESTINC = #------------------------------------------------------------------------------- #=== Configure the C++ compiler diff --git a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/smatrix_multi.f b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/smatrix_multi.f new file mode 100644 index 0000000000..75f308d1ec --- /dev/null +++ b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/smatrix_multi.f @@ -0,0 +1,89 @@ +c The following lines has been copy from the plugin +c template_file CUDACPP/madgraph/iolibs/template_files/gpu/smatrix_multi.f +c and are designed to be put at the end of the smatrix$i_multi function part of the auto_dsig$i.f file +c + call counters_smatrix1multi_stop( -1 ) ! fortran=-1 + ENDIF + + #ifdef MG5AMC_MEEXPORTER_CUDACPP + IF( FBRIDGE_MODE .EQ. 1 .OR. FBRIDGE_MODE .LT. 0 ) THEN ! (CppOnly=1 or BothQuiet=-1 or BothDebug=-2) + IF( LIMHEL.NE.0 ) THEN + WRITE(6,*) 'ERROR! The cudacpp bridge only supports LIMHEL=0' + STOP + ENDIF + IF ( FIRST ) THEN ! exclude first pass (helicity filtering) from timers (#461) + CALL FBRIDGESEQUENCE(FBRIDGE_PBRIDGE, P_MULTI, ALL_G, + & HEL_RAND, COL_RAND, 0, OUT2, + & SELECTED_HEL2, SELECTED_COL2 ) ! 0: multi channel disabled for helicity filtering + FIRST = .FALSE. +c ! This is a workaround for https://github.com/oliviermattelaer/mg5amc_test/issues/22 (see PR #486) + IF( FBRIDGE_MODE .EQ. 1 ) THEN ! (CppOnly=1 : SMATRIX1 is not called at all) + CALL RESET_CUMULATIVE_VARIABLE() ! mimic 'avoid bias of the initialization' within SMATRIX1 + ENDIF + CALL FBRIDGEGETNGOODHEL(FBRIDGE_PBRIDGE,NGOODHEL,NTOTHEL) + IF( NTOTHEL .NE. NCOMB ) THEN + WRITE(6,*) 'ERROR! Cudacpp/Fortran mismatch', + & ' in total number of helicities', NTOTHEL, NCOMB + STOP + ENDIF + WRITE (6,*) 'NGOODHEL =', NGOODHEL + WRITE (6,*) 'NCOMB =', NCOMB + ENDIF + call counters_smatrix1multi_start( 0, VECSIZE_USED ) ! cudacpp=0 + IF ( .NOT. MULTI_CHANNEL ) THEN + CALL FBRIDGESEQUENCE(FBRIDGE_PBRIDGE, P_MULTI, ALL_G, + & HEL_RAND, COL_RAND, 0, OUT2, + & SELECTED_HEL2, SELECTED_COL2 ) ! 0: multi channel disabled + ELSE + IF( SDE_STRAT.NE.1 ) THEN + WRITE(6,*) 'ERROR! The cudacpp bridge requires SDE=1' ! multi channel single-diagram enhancement strategy + STOP + ENDIF + CALL FBRIDGESEQUENCE(FBRIDGE_PBRIDGE, P_MULTI, ALL_G, + & HEL_RAND, COL_RAND, CHANNEL, OUT2, + & SELECTED_HEL2, SELECTED_COL2 ) ! 1-N: multi channel enabled + ENDIF + call counters_smatrix1multi_stop( 0 ) ! cudacpp=0 + ENDIF + + IF( FBRIDGE_MODE .LT. 0 ) THEN ! (BothQuiet=-1 or BothDebug=-2) + DO IVEC=1, VECSIZE_USED + CBYF1 = OUT2(IVEC)/OUT(IVEC) - 1 + FBRIDGE_NCBYF1 = FBRIDGE_NCBYF1 + 1 + FBRIDGE_CBYF1SUM = FBRIDGE_CBYF1SUM + CBYF1 + FBRIDGE_CBYF1SUM2 = FBRIDGE_CBYF1SUM2 + CBYF1 * CBYF1 + IF( CBYF1 .GT. FBRIDGE_CBYF1MAX ) FBRIDGE_CBYF1MAX = CBYF1 + IF( CBYF1 .LT. FBRIDGE_CBYF1MIN ) FBRIDGE_CBYF1MIN = CBYF1 + IF( FBRIDGE_MODE .EQ. -2 ) THEN ! (BothDebug=-2) + WRITE (*,'(I4,2E16.8,F23.11,I3,I3,I4,I4)') + & IVEC, OUT(IVEC), OUT2(IVEC), 1+CBYF1, + & SELECTED_HEL(IVEC), SELECTED_HEL2(IVEC), + & SELECTED_COL(IVEC), SELECTED_COL2(IVEC) + ENDIF + IF( ABS(CBYF1).GT.5E-5 .AND. NWARNINGS.LT.20 ) THEN + NWARNINGS = NWARNINGS + 1 + WRITE (*,'(A,I4,A,I4,2E16.8,F23.11)') + & 'WARNING! (', NWARNINGS, '/20) Deviation more than 5E-5', + & IVEC, OUT(IVEC), OUT2(IVEC), 1+CBYF1 + ENDIF + END DO + ENDIF + + IF( FBRIDGE_MODE .EQ. 1 .OR. FBRIDGE_MODE .LT. 0 ) THEN ! (CppOnly=1 or BothQuiet=-1 or BothDebug=-2) + DO IVEC=1, VECSIZE_USED + OUT(IVEC) = OUT2(IVEC) ! use the cudacpp ME instead of the fortran ME! + SELECTED_HEL(IVEC) = SELECTED_HEL2(IVEC) ! use the cudacpp helicity instead of the fortran helicity! + SELECTED_COL(IVEC) = SELECTED_COL2(IVEC) ! use the cudacpp color instead of the fortran color! + END DO + ENDIF +#endif + + IF ( FIRST_CHID ) THEN + IF ( MULTI_CHANNEL ) THEN + WRITE (*,*) 'MULTI_CHANNEL = TRUE' + ELSE + WRITE (*,*) 'MULTI_CHANNEL = FALSE' + ENDIF + WRITE (*,*) 'CHANNEL_ID =', CHANNEL + FIRST_CHID = .FALSE. + ENDIF diff --git a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/output.py b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/output.py index 8aeebfbcac..00ea0a53ce 100644 --- a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/output.py +++ b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/output.py @@ -36,6 +36,7 @@ from os.path import join as pjoin import madgraph.various.misc as misc import madgraph.iolibs.files as files +import madgraph.iolibs.export_v4 as export_v4 # AV - define the plugin's process exporter # (NB: this is the plugin's main class, enabled in the new_output dictionary in __init__.py) @@ -259,12 +260,18 @@ def add_madevent_plugin_fct(self): files.ln( pjoin(self.dir_path, 'lib'), pjoin(self.dir_path, 'SubProcesses')) + #------------------------------------------------------------------------------------ class SIMD_ProcessExporter(PLUGIN_ProcessExporter): + def change_output_args(args, cmd): """ """ - cmd._export_format = "madevent" + #cmd._export_format = "madevent_forplugin" + cmd._export_format = 'madevent' + cmd._export_plugin = FortranExporterBridge + + args.append('--hel_recycling=False') args.append('--me_exporter=standalone_simd') if 'vector_size' not in ''.join(args): @@ -272,6 +279,66 @@ def change_output_args(args, cmd): if 'nb_wrap' not in ''.join(args): args.append('--nb_wrap=1') return args + +class FortranExporterBridge(export_v4.ProcessExporterFortranMEGroup): + + def write_auto_dsig_file(self, writer, matrix_element, proc_id = ""): + + replace_dict,context = super().write_auto_dsig_file(False, matrix_element, proc_id) + + replace_dict['additional_header'] = """ + INTEGER IEXT + + INTEGER ISUM_HEL + LOGICAL MULTI_CHANNEL + COMMON/TO_MATRIX/ISUM_HEL, MULTI_CHANNEL + + LOGICAL FIRST_CHID + SAVE FIRST_CHID + DATA FIRST_CHID/.TRUE./ + +#ifdef MG5AMC_MEEXPORTER_CUDACPP + INCLUDE 'coupl.inc' ! for ALL_G + INCLUDE 'fbridge.inc' + INCLUDE 'fbridge_common.inc' + INCLUDE 'genps.inc' + INCLUDE 'run.inc' + DOUBLE PRECISION OUT2(VECSIZE_MEMMAX) + INTEGER SELECTED_HEL2(VECSIZE_MEMMAX) + INTEGER SELECTED_COL2(VECSIZE_MEMMAX) + DOUBLE PRECISION CBYF1 + INTEGER*4 NGOODHEL, NTOTHEL + + INTEGER*4 NWARNINGS + SAVE NWARNINGS + DATA NWARNINGS/0/ + + LOGICAL FIRST + SAVE FIRST + DATA FIRST/.TRUE./ +#else + INTEGER FBRIDGE_MODE +#endif + call counters_smatrix1multi_start( -1, VECSIZE_USED ) ! fortran=-1 +""" + replace_dict['OMP_LIB'] = '' + replace_dict['OMP_PREFIX'] = """ IF( FBRIDGE_MODE .LE. 0 ) THEN ! (FortranOnly=0 or BothQuiet=-1 or BothDebug=-2) +call counters_smatrix1multi_start( -1, VECSIZE_USED ) ! fortran=-1 +""" + replace_dict["OMP_POSTFIX"] = open(pjoin(PLUGINDIR,'madgraph','iolibs','template_files','gpu','smatrix_multi.f')).read() + + _file_path = export_v4._file_path + if writer: + file = open(pjoin(_file_path, \ + 'iolibs/template_files/auto_dsig_v4.inc')).read() + file = file % replace_dict + + # Write the file + writer.writelines(file, context=context) + else: + return replace_dict, context + + @@ -279,7 +346,9 @@ class GPU_ProcessExporter(PLUGIN_ProcessExporter): def change_output_args(args, cmd): """ """ - cmd._export_format = "madevent" + cmd._export_format = 'plugin' + cmd._export_plugin = FortranExporterBridge + args.append('--hel_recycling=False') args.append('--me_exporter=standalone_cuda') if 'vector_size' not in ''.join(args): diff --git a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/patchMad.sh b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/patchMad.sh index 548a7fdcc8..aad7843845 100755 --- a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/patchMad.sh +++ b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/patchMad.sh @@ -75,7 +75,7 @@ if [ "${patchlevel}" == "2" ]; then cd ${dir} #sed -i 's/DEFAULT_F2PY_COMPILER=f2py3.*/DEFAULT_F2PY_COMPILER=f2py3/' Source/make_opts echo "DEBUG: cd ${PWD}; patch -p4 -i ${scrdir}/MG5aMC_patches/${dir_patches}/patch.common" - if ! patch -p4 -i ${scrdir}/MG5aMC_patches/${dir_patches}/patch.common; then status=1; fi + if ! patch -f -p4 -i ${scrdir}/MG5aMC_patches/${dir_patches}/patch.common; then status=1; fi \rm -f Source/*.orig \rm -f bin/internal/*.orig cd - > /dev/null @@ -87,7 +87,7 @@ for p1dir in ${dir}/SubProcesses/P*; do ln -sf ../ompnumthreads.cc . # new file if [ "${patchlevel}" == "2" ]; then echo "DEBUG: cd ${PWD}; patch -p6 -i ${scrdir}/MG5aMC_patches/${dir_patches}/patch.P1" - if ! patch -p6 -i ${scrdir}/MG5aMC_patches/${dir_patches}/patch.P1; then status=1; fi + if ! patch -f -p6 -i ${scrdir}/MG5aMC_patches/${dir_patches}/patch.P1; then status=1; fi fi \rm -f *.orig cd - > /dev/null From 01642945c85ff8e21a537c616b2fccece32af5ac Mon Sep 17 00:00:00 2001 From: Olivier Mattelaer Date: Fri, 6 Oct 2023 17:16:37 +0200 Subject: [PATCH 004/107] change name to get (the first) element of the list of channel --- .../madgraph/iolibs/template_files/gpu/smatrix_multi.f | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/smatrix_multi.f b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/smatrix_multi.f index 75f308d1ec..90c5d1ae48 100644 --- a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/smatrix_multi.f +++ b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/smatrix_multi.f @@ -40,7 +40,7 @@ STOP ENDIF CALL FBRIDGESEQUENCE(FBRIDGE_PBRIDGE, P_MULTI, ALL_G, - & HEL_RAND, COL_RAND, CHANNEL, OUT2, + & HEL_RAND, COL_RAND, CHANNELS(1), OUT2, & SELECTED_HEL2, SELECTED_COL2 ) ! 1-N: multi channel enabled ENDIF call counters_smatrix1multi_stop( 0 ) ! cudacpp=0 @@ -84,6 +84,6 @@ ELSE WRITE (*,*) 'MULTI_CHANNEL = FALSE' ENDIF - WRITE (*,*) 'CHANNEL_ID =', CHANNEL + WRITE (*,*) 'CHANNEL_ID =', CHANNELS(1) FIRST_CHID = .FALSE. ENDIF From b284dd273982b867995a7ef1ba9cc9897dad4816 Mon Sep 17 00:00:00 2001 From: Olivier Mattelaer Date: Thu, 14 Sep 2023 10:20:17 +0200 Subject: [PATCH 005/107] change python interface to handle two parameter related to vectorization (vector_size and nb_wrap. (fortran/cpp code not updated yet) --- MG5aMC/mg5amcnlo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MG5aMC/mg5amcnlo b/MG5aMC/mg5amcnlo index 49c93e01b8..1d062d1fbb 160000 --- a/MG5aMC/mg5amcnlo +++ b/MG5aMC/mg5amcnlo @@ -1 +1 @@ -Subproject commit 49c93e01b8596cbdb4e65f628601de1e6f08c744 +Subproject commit 1d062d1fbb0dabbd9ad898e017a993649e86b2e0 From ff9a3d5d0629d7c644c252d943a70b37bd38a606 Mon Sep 17 00:00:00 2001 From: Stefan Roiser Date: Wed, 8 Nov 2023 21:22:17 +0100 Subject: [PATCH 006/107] update submodule --- MG5aMC/mg5amcnlo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MG5aMC/mg5amcnlo b/MG5aMC/mg5amcnlo index 1d062d1fbb..e14c9dfffb 160000 --- a/MG5aMC/mg5amcnlo +++ b/MG5aMC/mg5amcnlo @@ -1 +1 @@ -Subproject commit 1d062d1fbb0dabbd9ad898e017a993649e86b2e0 +Subproject commit e14c9dfffb72a18e7e7fc87efabf45452a877f28 From 977864beee0ac71699624398c9dacc98c3e7cc8b Mon Sep 17 00:00:00 2001 From: Stefan Roiser Date: Thu, 16 Nov 2023 14:50:22 +0100 Subject: [PATCH 007/107] change python interface to handle two parameter related to vectorization (vector_size and nb_wrap. (fortran/cpp code not updated yet) --- MG5aMC/mg5amcnlo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MG5aMC/mg5amcnlo b/MG5aMC/mg5amcnlo index e14c9dfffb..663473a082 160000 --- a/MG5aMC/mg5amcnlo +++ b/MG5aMC/mg5amcnlo @@ -1 +1 @@ -Subproject commit e14c9dfffb72a18e7e7fc87efabf45452a877f28 +Subproject commit 663473a0820f2d28032d797968f6cb03069ad4b1 From 664875bb19994838f31d3bfe8fb2eccab75261e9 Mon Sep 17 00:00:00 2001 From: Stefan Roiser Date: Mon, 20 Nov 2023 15:19:06 +0100 Subject: [PATCH 008/107] move submodule commit --- MG5aMC/mg5amcnlo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MG5aMC/mg5amcnlo b/MG5aMC/mg5amcnlo index 663473a082..d4e3ee9762 160000 --- a/MG5aMC/mg5amcnlo +++ b/MG5aMC/mg5amcnlo @@ -1 +1 @@ -Subproject commit 663473a0820f2d28032d797968f6cb03069ad4b1 +Subproject commit d4e3ee97621574a666a49d165ac1d85d29622669 From b2c3e03bb329fbd0dd7307094d4e6e3f0b184a4c Mon Sep 17 00:00:00 2001 From: Stefan Roiser Date: Wed, 6 Dec 2023 11:41:18 +0100 Subject: [PATCH 009/107] initial commit for changing g g > t t~ code --- .../cudacpp/gg_tt.mad/SubProcesses/Bridge.h | 28 ++++++---- .../gg_tt.mad/SubProcesses/BridgeKernels.cc | 21 ++++--- .../gg_tt.mad/SubProcesses/BridgeKernels.h | 7 ++- .../SubProcesses/MatrixElementKernels.cc | 14 +++-- .../SubProcesses/MatrixElementKernels.h | 13 ++++- .../gg_tt.mad/SubProcesses/MemoryBuffers.h | 18 ++++++ .../SubProcesses/P1_gg_ttx/CPPProcess.cc | 56 +++++++++---------- .../SubProcesses/P1_gg_ttx/CPPProcess.h | 42 +++++++------- .../SubProcesses/P1_gg_ttx/auto_dsig1.f | 8 ++- .../SubProcesses/P1_gg_ttx/fcheck_sa.f | 2 +- .../cudacpp/gg_tt.mad/SubProcesses/fbridge.cc | 8 +-- .../gg_tt.mad/SubProcesses/fbridge.inc | 2 +- 12 files changed, 131 insertions(+), 88 deletions(-) diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/Bridge.h b/epochX/cudacpp/gg_tt.mad/SubProcesses/Bridge.h index bf8b5e024d..c2675052c2 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/Bridge.h +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/Bridge.h @@ -100,7 +100,7 @@ namespace mg5amcCpu * @param gs the pointer to the input Gs (running QCD coupling constant alphas) * @param rndhel the pointer to the input random numbers for helicity selection * @param rndcol the pointer to the input random numbers for color selection - * @param channelId the Feynman diagram to enhance in multi-channel mode if 1 to n (disable multi-channel if 0) + * @param channelIds the Feynman diagram to enhance in multi-channel mode if 1 to n (disable multi-channel if 0) SR-FIXME need to describe how it looks like when no channel ID is used * @param mes the pointer to the output matrix elements * @param goodHelOnly quit after computing good helicities? * @param selhel the pointer to the output selected helicities @@ -110,7 +110,7 @@ namespace mg5amcCpu const FORTRANFPTYPE* gs, const FORTRANFPTYPE* rndhel, const FORTRANFPTYPE* rndcol, - const unsigned int channelId, + const unsigned int* channelIds, FORTRANFPTYPE* mes, int* selhel, int* selcol, @@ -123,7 +123,7 @@ namespace mg5amcCpu * @param gs the pointer to the input Gs (running QCD coupling constant alphas) * @param rndhel the pointer to the input random numbers for helicity selection * @param rndcol the pointer to the input random numbers for color selection - * @param channelId the Feynman diagram to enhance in multi-channel mode if 1 to n (disable multi-channel if 0) + * @param channelIds the Feynman diagram to enhance in multi-channel mode if 1 to n (disable multi-channel if 0) SR-FIXME need to describe how it looks like when no channel ID is used * @param mes the pointer to the output matrix elements * @param selhel the pointer to the output selected helicities * @param selcol the pointer to the output selected colors @@ -133,7 +133,7 @@ namespace mg5amcCpu const FORTRANFPTYPE* gs, const FORTRANFPTYPE* rndhel, const FORTRANFPTYPE* rndcol, - const unsigned int channelId, + const unsigned int* channelIds, FORTRANFPTYPE* mes, int* selhel, int* selcol, @@ -161,12 +161,14 @@ namespace mg5amcCpu DeviceBufferMatrixElements m_devMEs; DeviceBufferSelectedHelicity m_devSelHel; DeviceBufferSelectedColor m_devSelCol; + DeviceBufferChannelIds m_devChanIds; PinnedHostBufferGs m_hstGs; PinnedHostBufferRndNumHelicity m_hstRndHel; PinnedHostBufferRndNumColor m_hstRndCol; PinnedHostBufferMatrixElements m_hstMEs; PinnedHostBufferSelectedHelicity m_hstSelHel; PinnedHostBufferSelectedColor m_hstSelCol; + PinnedHostBufferChannelIds m_hstChanIds; std::unique_ptr m_pmek; //static constexpr int s_gputhreadsmin = 16; // minimum number of gpu threads (TEST VALUE FOR MADEVENT) static constexpr int s_gputhreadsmin = 32; // minimum number of gpu threads (DEFAULT) @@ -178,6 +180,7 @@ namespace mg5amcCpu HostBufferMatrixElements m_hstMEs; HostBufferSelectedHelicity m_hstSelHel; HostBufferSelectedColor m_hstSelCol; + HostBufferChannelIds m_hstChanIds; std::unique_ptr m_pmek; #endif }; @@ -220,6 +223,7 @@ namespace mg5amcCpu , m_devMEs( m_nevt ) , m_devSelHel( m_nevt ) , m_devSelCol( m_nevt ) + , m_devChanIds( m_nevt ) #else , m_hstMomentaC( m_nevt ) #endif @@ -229,6 +233,7 @@ namespace mg5amcCpu , m_hstMEs( m_nevt ) , m_hstSelHel( m_nevt ) , m_hstSelCol( m_nevt ) + , m_hstChanIds( m_nevt ) , m_pmek( nullptr ) { if( nparF != CPPProcess::npar ) throw std::runtime_error( "Bridge constructor: npar mismatch" ); @@ -245,10 +250,10 @@ namespace mg5amcCpu } std::cout << "WARNING! Instantiate device Bridge (nevt=" << m_nevt << ", gpublocks=" << m_gpublocks << ", gputhreads=" << m_gputhreads << ", gpublocks*gputhreads=" << m_gpublocks * m_gputhreads << ")" << std::endl; - m_pmek.reset( new MatrixElementKernelDevice( m_devMomentaC, m_devGs, m_devRndHel, m_devRndCol, m_devMEs, m_devSelHel, m_devSelCol, m_gpublocks, m_gputhreads ) ); + m_pmek.reset( new MatrixElementKernelDevice( m_devMomentaC, m_devGs, m_devRndHel, m_devRndCol, m_devChanIds, m_devMEs, m_devSelHel, m_devSelCol, m_gpublocks, m_gputhreads ) ); #else std::cout << "WARNING! Instantiate host Bridge (nevt=" << m_nevt << ")" << std::endl; - m_pmek.reset( new MatrixElementKernelHost( m_hstMomentaC, m_hstGs, m_hstRndHel, m_hstRndCol, m_hstMEs, m_hstSelHel, m_hstSelCol, m_nevt ) ); + m_pmek.reset( new MatrixElementKernelHost( m_hstMomentaC, m_hstGs, m_hstRndHel, m_hstRndCol, m_hstChanIds, m_hstMEs, m_hstSelHel, m_hstSelCol, m_nevt ) ); #endif // __CUDACC__ // Create a process object, read param card and set parameters // FIXME: the process instance can happily go out of scope because it is only needed to read parameters? @@ -282,7 +287,7 @@ namespace mg5amcCpu const FORTRANFPTYPE* gs, const FORTRANFPTYPE* rndhel, const FORTRANFPTYPE* rndcol, - const unsigned int channelId, + const unsigned int* channelIds, FORTRANFPTYPE* mes, int* selhel, int* selcol, @@ -312,16 +317,18 @@ namespace mg5amcCpu std::copy( rndhel, rndhel + m_nevt, m_hstRndHel.data() ); std::copy( rndcol, rndcol + m_nevt, m_hstRndCol.data() ); } + memcpy(m_hstChanIds.data(), channelIds, m_nevt * sizeof(unsigned int)); copyDeviceFromHost( m_devGs, m_hstGs ); copyDeviceFromHost( m_devRndHel, m_hstRndHel ); copyDeviceFromHost( m_devRndCol, m_hstRndCol ); + copyDeviceFromHost( m_devChanIds, m_hstChanIds ); if( m_nGoodHel < 0 ) { m_nGoodHel = m_pmek->computeGoodHelicities(); if( m_nGoodHel < 0 ) throw std::runtime_error( "Bridge gpu_sequence: computeGoodHelicities returned nGoodHel<0" ); } if( goodHelOnly ) return; - m_pmek->computeMatrixElements( channelId ); + m_pmek->computeMatrixElements(); copyHostFromDevice( m_hstMEs, m_devMEs ); flagAbnormalMEs( m_hstMEs.data(), m_nevt ); copyHostFromDevice( m_hstSelHel, m_devSelHel ); @@ -347,7 +354,7 @@ namespace mg5amcCpu const FORTRANFPTYPE* gs, const FORTRANFPTYPE* rndhel, const FORTRANFPTYPE* rndcol, - const unsigned int channelId, + const unsigned int* channelIds, FORTRANFPTYPE* mes, int* selhel, int* selcol, @@ -366,13 +373,14 @@ namespace mg5amcCpu std::copy( rndhel, rndhel + m_nevt, m_hstRndHel.data() ); std::copy( rndcol, rndcol + m_nevt, m_hstRndCol.data() ); } + memcpy( m_hstChanIds.data(), channelIds, m_nevt * sizeof(unsigned int)); if( m_nGoodHel < 0 ) { m_nGoodHel = m_pmek->computeGoodHelicities(); if( m_nGoodHel < 0 ) throw std::runtime_error( "Bridge cpu_sequence: computeGoodHelicities returned nGoodHel<0" ); } if( goodHelOnly ) return; - m_pmek->computeMatrixElements( channelId ); + m_pmek->computeMatrixElements(); flagAbnormalMEs( m_hstMEs.data(), m_nevt ); if constexpr( std::is_same_v ) { diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/BridgeKernels.cc b/epochX/cudacpp/gg_tt.mad/SubProcesses/BridgeKernels.cc index d58066c9c1..ee4f8da6f8 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/BridgeKernels.cc +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/BridgeKernels.cc @@ -26,11 +26,12 @@ namespace mg5amcCpu const BufferGs& gs, // input: gs for alphaS const BufferRndNumHelicity& rndhel, // input: random numbers for helicity selection const BufferRndNumColor& rndcol, // input: random numbers for color selection + const BufferChannelIds& chanIds, // input: channel Ids BufferMatrixElements& matrixElements, // output: matrix elements BufferSelectedHelicity& selhel, // output: helicity selection BufferSelectedColor& selcol, // output: color selection const size_t nevt ) - : MatrixElementKernelBase( momenta, gs, rndhel, rndcol, matrixElements, selhel, selcol ) + : MatrixElementKernelBase( momenta, gs, rndhel, rndcol, chanIds, matrixElements, selhel, selcol ) , NumberOfEvents( nevt ) , m_bridge( nevt, npar, np4 ) { @@ -55,11 +56,12 @@ namespace mg5amcCpu const BufferGs& gs, // input: Gs for alphaS const BufferRndNumHelicity& rndhel, // input: random numbers for helicity selection const BufferRndNumColor& rndcol, // input: random numbers for color selection + const BufferChannelIds& chanIds, // input: channel Ids BufferMatrixElements& matrixElements, // output: matrix elements BufferSelectedHelicity& selhel, // output: helicity selection BufferSelectedColor& selcol, // output: color selection const size_t nevt ) - : BridgeKernelBase( momenta, gs, rndhel, rndcol, matrixElements, selhel, selcol, nevt ) + : BridgeKernelBase( momenta, gs, rndhel, rndcol, chanIds, matrixElements, selhel, selcol, nevt ) , m_fortranMomenta( nevt ) { } @@ -77,16 +79,16 @@ namespace mg5amcCpu { constexpr bool goodHelOnly = true; constexpr unsigned int channelId = 0; // disable multi-channel for helicity filtering - m_bridge.cpu_sequence( m_fortranMomenta.data(), m_gs.data(), m_rndhel.data(), m_rndcol.data(), channelId, m_matrixElements.data(), m_selhel.data(), m_selcol.data(), goodHelOnly ); + m_bridge.cpu_sequence( m_fortranMomenta.data(), m_gs.data(), m_rndhel.data(), m_rndcol.data(), m_chanIds.data(), m_matrixElements.data(), m_selhel.data(), m_selcol.data(), goodHelOnly ); return m_bridge.nGoodHel(); } //-------------------------------------------------------------------------- - void BridgeKernelHost::computeMatrixElements( const unsigned int channelId ) + void BridgeKernelHost::computeMatrixElements() { constexpr bool goodHelOnly = false; - m_bridge.cpu_sequence( m_fortranMomenta.data(), m_gs.data(), m_rndhel.data(), m_rndcol.data(), channelId, m_matrixElements.data(), m_selhel.data(), m_selcol.data(), goodHelOnly ); + m_bridge.cpu_sequence( m_fortranMomenta.data(), m_gs.data(), m_rndhel.data(), m_rndcol.data(), m_chanIds.data(), m_matrixElements.data(), m_selhel.data(), m_selcol.data(), goodHelOnly ); } //-------------------------------------------------------------------------- @@ -106,12 +108,13 @@ namespace mg5amcGpu const BufferGs& gs, // input: Gs for alphaS const BufferRndNumHelicity& rndhel, // input: random numbers for helicity selection const BufferRndNumColor& rndcol, // input: random numbers for color selection + const BufferChannelIds& chanIds, // input: channel Ids BufferMatrixElements& matrixElements, // output: matrix elements BufferSelectedHelicity& selhel, // output: helicity selection BufferSelectedColor& selcol, // output: color selection const size_t gpublocks, const size_t gputhreads ) - : BridgeKernelBase( momenta, gs, rndhel, rndcol, matrixElements, selhel, selcol, gpublocks * gputhreads ) + : BridgeKernelBase( momenta, gs, rndhel, rndcol, chanIds, matrixElements, selhel, selcol, gpublocks * gputhreads ) , m_fortranMomenta( nevt() ) , m_gpublocks( gpublocks ) , m_gputhreads( gputhreads ) @@ -134,16 +137,16 @@ namespace mg5amcGpu { constexpr bool goodHelOnly = true; constexpr unsigned int channelId = 0; // disable multi-channel for helicity filtering - m_bridge.gpu_sequence( m_fortranMomenta.data(), m_gs.data(), m_rndhel.data(), m_rndcol.data(), channelId, m_matrixElements.data(), m_selhel.data(), m_selcol.data(), goodHelOnly ); + m_bridge.gpu_sequence( m_fortranMomenta.data(), m_gs.data(), m_rndhel.data(), m_rndcol.data(), m_chanIds.data(), m_matrixElements.data(), m_selhel.data(), m_selcol.data(), goodHelOnly ); return m_bridge.nGoodHel(); } //-------------------------------------------------------------------------- - void BridgeKernelDevice::computeMatrixElements( const unsigned int channelId ) + void BridgeKernelDevice::computeMatrixElements() { constexpr bool goodHelOnly = false; - m_bridge.gpu_sequence( m_fortranMomenta.data(), m_gs.data(), m_rndhel.data(), m_rndcol.data(), channelId, m_matrixElements.data(), m_selhel.data(), m_selcol.data(), goodHelOnly ); + m_bridge.gpu_sequence( m_fortranMomenta.data(), m_gs.data(), m_rndhel.data(), m_rndcol.data(), m_chanIds.data(), m_matrixElements.data(), m_selhel.data(), m_selcol.data(), goodHelOnly ); } //-------------------------------------------------------------------------- diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/BridgeKernels.h b/epochX/cudacpp/gg_tt.mad/SubProcesses/BridgeKernels.h index 15eb4bff4d..0ce20228d3 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/BridgeKernels.h +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/BridgeKernels.h @@ -30,6 +30,7 @@ namespace mg5amcCpu const BufferGs& gs, // input: gs for alphaS const BufferRndNumHelicity& rndhel, // input: random numbers for helicity selection const BufferRndNumColor& rndcol, // input: random numbers for color selection + const BufferChannelIds& chanIds, // input: channel Ids BufferMatrixElements& matrixElements, // output: matrix elements BufferSelectedHelicity& selhel, // output: helicity selection BufferSelectedColor& selcol, // output: color selection @@ -60,6 +61,7 @@ namespace mg5amcCpu const BufferGs& gs, // input: gs for alphaS const BufferRndNumHelicity& rndhel, // input: random numbers for helicity selection const BufferRndNumColor& rndcol, // input: random numbers for color selection + const HostBufferChannelIds& chanIds, // input: channel Ids BufferMatrixElements& matrixElements, // output: matrix elements BufferSelectedHelicity& selhel, // output: helicity selection BufferSelectedColor& selcol, // output: color selection @@ -75,7 +77,7 @@ namespace mg5amcCpu int computeGoodHelicities() override final; // Compute matrix elements - void computeMatrixElements( const unsigned int channelId ) override final; + void computeMatrixElements() override final; // Is this a host or device kernel? bool isOnDevice() const override final { return false; } @@ -100,6 +102,7 @@ namespace mg5amcCpu const BufferGs& gs, // input: gs for alphaS const BufferRndNumHelicity& rndhel, // input: random numbers for helicity selection const BufferRndNumColor& rndcol, // input: random numbers for color selection + const BufferChannelIds& chanIds, // input: channel Ids BufferMatrixElements& matrixElements, // output: matrix elements BufferSelectedHelicity& selhel, // output: helicity selection BufferSelectedColor& selcol, // output: color selection @@ -116,7 +119,7 @@ namespace mg5amcCpu int computeGoodHelicities() override final; // Compute matrix elements - void computeMatrixElements( const unsigned int channelId ) override final; + void computeMatrixElements() override final; // Is this a host or device kernel? bool isOnDevice() const override final { return true; } diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/MatrixElementKernels.cc b/epochX/cudacpp/gg_tt.mad/SubProcesses/MatrixElementKernels.cc index 74b5239ebf..0dfe69e711 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/MatrixElementKernels.cc +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/MatrixElementKernels.cc @@ -24,11 +24,12 @@ namespace mg5amcCpu const BufferGs& gs, // input: gs for alphaS const BufferRndNumHelicity& rndhel, // input: random numbers for helicity selection const BufferRndNumColor& rndcol, // input: random numbers for color selection + const BufferChannelIds& chanIds, // input: channel Ids BufferMatrixElements& matrixElements, // output: matrix elements BufferSelectedHelicity& selhel, // output: helicity selection BufferSelectedColor& selcol, // output: color selection const size_t nevt ) - : MatrixElementKernelBase( momenta, gs, rndhel, rndcol, matrixElements, selhel, selcol ) + : MatrixElementKernelBase( momenta, gs, rndhel, rndcol, chanIds, matrixElements, selhel, selcol ) , NumberOfEvents( nevt ) , m_couplings( nevt ) #ifdef MGONGPU_SUPPORTS_MULTICHANNEL @@ -76,11 +77,11 @@ namespace mg5amcCpu //-------------------------------------------------------------------------- - void MatrixElementKernelHost::computeMatrixElements( const unsigned int channelId ) + void MatrixElementKernelHost::computeMatrixElements() { computeDependentCouplings( m_gs.data(), m_couplings.data(), m_gs.size() ); #ifdef MGONGPU_SUPPORTS_MULTICHANNEL - sigmaKin( m_momenta.data(), m_couplings.data(), m_rndhel.data(), m_rndcol.data(), m_matrixElements.data(), channelId, m_numerators.data(), m_denominators.data(), m_selhel.data(), m_selcol.data(), nevt() ); + sigmaKin( m_momenta.data(), m_couplings.data(), m_rndhel.data(), m_rndcol.data(), m_matrixElements.data(), m_chanIds.data(), m_numerators.data(), m_denominators.data(), m_selhel.data(), m_selcol.data(), nevt() ); #else sigmaKin( m_momenta.data(), m_couplings.data(), m_rndhel.data(), m_rndcol.data(), m_matrixElements.data(), m_selhel.data(), m_selcol.data(), nevt() ); #endif @@ -160,12 +161,13 @@ namespace mg5amcGpu const BufferGs& gs, // input: gs for alphaS const BufferRndNumHelicity& rndhel, // input: random numbers for helicity selection const BufferRndNumColor& rndcol, // input: random numbers for color selection + const BufferChannelIds& chanIds, // input: channel Ids BufferMatrixElements& matrixElements, // output: matrix elements BufferSelectedHelicity& selhel, // output: helicity selection BufferSelectedColor& selcol, // output: color selection const size_t gpublocks, const size_t gputhreads ) - : MatrixElementKernelBase( momenta, gs, rndhel, rndcol, matrixElements, selhel, selcol ) + : MatrixElementKernelBase( momenta, gs, rndhel, rndcol, chanIds, matrixElements, selhel, selcol ) , NumberOfEvents( gpublocks * gputhreads ) , m_couplings( this->nevt() ) #ifdef MGONGPU_SUPPORTS_MULTICHANNEL @@ -224,7 +226,7 @@ namespace mg5amcGpu //-------------------------------------------------------------------------- - void MatrixElementKernelDevice::computeMatrixElements( const unsigned int channelId ) + void MatrixElementKernelDevice::computeMatrixElements() { computeDependentCouplings<<>>( m_gs.data(), m_couplings.data() ); #ifndef MGONGPU_NSIGHT_DEBUG @@ -233,7 +235,7 @@ namespace mg5amcGpu constexpr unsigned int sharedMemSize = ntpbMAX * sizeof( float ); #endif #ifdef MGONGPU_SUPPORTS_MULTICHANNEL - sigmaKin<<>>( m_momenta.data(), m_couplings.data(), m_rndhel.data(), m_rndcol.data(), m_matrixElements.data(), channelId, m_numerators.data(), m_denominators.data(), m_selhel.data(), m_selcol.data() ); + sigmaKin<<>>( m_momenta.data(), m_couplings.data(), m_rndhel.data(), m_rndcol.data(), m_matrixElements.data(), m_chanIds.data(), m_numerators.data(), m_denominators.data(), m_selhel.data(), m_selcol.data() ); #else sigmaKin<<>>( m_momenta.data(), m_couplings.data(), m_rndhel.data(), m_rndcol.data(), m_matrixElements.data(), m_selhel.data(), m_selcol.data() ); #endif diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/MatrixElementKernels.h b/epochX/cudacpp/gg_tt.mad/SubProcesses/MatrixElementKernels.h index 23e84757a2..859c902484 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/MatrixElementKernels.h +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/MatrixElementKernels.h @@ -28,6 +28,7 @@ namespace mg5amcCpu const BufferGs& gs, // input: gs for alphaS const BufferRndNumHelicity& rndhel, // input: random numbers for helicity selection const BufferRndNumColor& rndcol, // input: random numbers for color selection + const BufferChannelIds& chanIds, // input: channel Ids BufferMatrixElements& matrixElements, // output: matrix elements BufferSelectedHelicity& selhel, // output: helicity selection BufferSelectedColor& selcol ) // output: color selection @@ -35,6 +36,7 @@ namespace mg5amcCpu , m_gs( gs ) , m_rndhel( rndhel ) , m_rndcol( rndcol ) + , m_chanIds( chanIds ) , m_matrixElements( matrixElements ) , m_selhel( selhel ) , m_selcol( selcol ) @@ -50,7 +52,7 @@ namespace mg5amcCpu virtual int computeGoodHelicities() = 0; // Compute matrix elements - virtual void computeMatrixElements( const unsigned int channelId ) = 0; + virtual void computeMatrixElements() = 0; // Is this a host or device kernel? virtual bool isOnDevice() const = 0; @@ -69,6 +71,9 @@ namespace mg5amcCpu // The buffer for the random numbers for color selection const BufferRndNumColor& m_rndcol; + // The buffer for the channel Ids for each ME + const BufferChannelIds& m_chanIds; + // The buffer for the output matrix elements BufferMatrixElements& m_matrixElements; @@ -92,6 +97,7 @@ namespace mg5amcCpu const BufferGs& gs, // input: gs for alphaS const BufferRndNumHelicity& rndhel, // input: random numbers for helicity selection const BufferRndNumColor& rndcol, // input: random numbers for color selection + const BufferChannelIds& chanIds, // input: channel Ids BufferMatrixElements& matrixElements, // output: matrix elements BufferSelectedHelicity& selhel, // output: helicity selection BufferSelectedColor& selcol, // output: color selection @@ -104,7 +110,7 @@ namespace mg5amcCpu int computeGoodHelicities() override final; // Compute matrix elements - void computeMatrixElements( const unsigned int channelId ) override final; + void computeMatrixElements() override final; // Is this a host or device kernel? bool isOnDevice() const override final { return false; } @@ -141,6 +147,7 @@ namespace mg5amcCpu const BufferGs& gs, // input: gs for alphaS const BufferRndNumHelicity& rndhel, // input: random numbers for helicity selection const BufferRndNumColor& rndcol, // input: random numbers for color selection + const BufferChannelIds& chanIds, // input: channel Ids BufferMatrixElements& matrixElements, // output: matrix elements BufferSelectedHelicity& selhel, // output: helicity selection BufferSelectedColor& selcol, // output: color selection @@ -157,7 +164,7 @@ namespace mg5amcCpu int computeGoodHelicities() override final; // Compute matrix elements - void computeMatrixElements( const unsigned int channelId ) override final; + void computeMatrixElements() override final; // Is this a host or device kernel? bool isOnDevice() const override final { return true; } diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryBuffers.h b/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryBuffers.h index 3093e6ed18..09439c2161 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryBuffers.h +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryBuffers.h @@ -451,6 +451,24 @@ namespace mg5amcCpu //-------------------------------------------------------------------------- + // A base class encapsulating a memory buffer for color random numbers + typedef BufferBase BufferChannelIds; + + // The size (number of elements) per event in a memory buffer for color random numbers + constexpr size_t sizePerEventChannelId = 1; + +#ifndef __CUDACC__ + // A class encapsulating a C++ host buffer for color random numbers + typedef HostBuffer HostBufferChannelIds; +#else + // A class encapsulating a CUDA pinned host buffer for color random numbers + typedef PinnedHostBuffer PinnedHostBufferChannelIds; + // A class encapsulating a CUDA device buffer for color random numbers + typedef DeviceBuffer DeviceBufferChannelIds; +#endif + + //-------------------------------------------------------------------------- + // A base class encapsulating a memory buffer for helicity selection typedef BufferBase BufferSelectedHelicity; diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/CPPProcess.cc b/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/CPPProcess.cc index d2e7a3c91d..af529d933d 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/CPPProcess.cc +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/CPPProcess.cc @@ -113,13 +113,13 @@ namespace mg5amcCpu const fptype* allcouplings, // input: couplings[nevt*ndcoup*2] fptype* allMEs, // output: allMEs[nevt], |M|^2 running_sum_over_helicities #ifdef MGONGPU_SUPPORTS_MULTICHANNEL - const unsigned int channelId, // input: multichannel channel id (1 to #diagrams); 0 to disable channel enhancement - fptype* allNumerators, // output: multichannel numerators[nevt], running_sum_over_helicities - fptype* allDenominators, // output: multichannel denominators[nevt], running_sum_over_helicities + const unsigned int* channelIds, // input: multichannel channel id (1 to #diagrams); 0 to disable channel enhancement + fptype* allNumerators, // output: multichannel numerators[nevt], running_sum_over_helicities + fptype* allDenominators, // output: multichannel denominators[nevt], running_sum_over_helicities #endif - fptype_sv* jamp2_sv // output: jamp2[nParity][ncolor][neppV] for color choice (nullptr if disabled) + fptype_sv* jamp2_sv // output: jamp2[nParity][ncolor][neppV] for color choice (nullptr if disabled) #ifndef __CUDACC__ - , const int ievt00 // input: first event number in current C++ event page (for CUDA, ievt depends on threadid) + , const int ievt00 // input: first event number in current C++ event page (for CUDA, ievt depends on threadid) #endif ) //ALWAYS_INLINE // attributes are not permitted in a function definition @@ -250,7 +250,7 @@ namespace mg5amcCpu // Amplitude(s) for diagram number 1 FFV1_0( w_fp[3], w_fp[2], w_fp[4], COUPs[1], 1.0, &_fp[0] ); -#ifdef MGONGPU_SUPPORTS_MULTICHANNEL +#ifdef MGONGPU_SUPPORTS_MULTICHANNEL2 // SR-FIXME if( channelId == 1 ) numerators_sv += cxabs2( amp_sv[0] ); if( channelId != 0 ) denominators_sv += cxabs2( amp_sv[0] ); #endif @@ -264,7 +264,7 @@ namespace mg5amcCpu // Amplitude(s) for diagram number 2 FFV1_0( w_fp[3], w_fp[4], w_fp[1], COUPs[1], 1.0, &_fp[0] ); -#ifdef MGONGPU_SUPPORTS_MULTICHANNEL +#ifdef MGONGPU_SUPPORTS_MULTICHANNEL2 // SR-FIXME if( channelId == 2 ) numerators_sv += cxabs2( amp_sv[0] ); if( channelId != 0 ) denominators_sv += cxabs2( amp_sv[0] ); #endif @@ -277,7 +277,7 @@ namespace mg5amcCpu // Amplitude(s) for diagram number 3 FFV1_0( w_fp[4], w_fp[2], w_fp[1], COUPs[1], 1.0, &_fp[0] ); -#ifdef MGONGPU_SUPPORTS_MULTICHANNEL +#ifdef MGONGPU_SUPPORTS_MULTICHANNEL2 // SR-FIXME if( channelId == 3 ) numerators_sv += cxabs2( amp_sv[0] ); if( channelId != 0 ) denominators_sv += cxabs2( amp_sv[0] ); #endif @@ -655,7 +655,7 @@ namespace mg5amcCpu constexpr fptype_sv* jamp2_sv = nullptr; // no need for color selection during helicity filtering #ifdef MGONGPU_SUPPORTS_MULTICHANNEL constexpr unsigned int channelId = 0; // disable single-diagram channel enhancement - calculate_wavefunctions( ihel, allmomenta, allcouplings, allMEs, channelId, allNumerators, allDenominators, jamp2_sv ); + calculate_wavefunctions( ihel, allmomenta, allcouplings, allMEs, &channelId, allNumerators, allDenominators, jamp2_sv ); #else calculate_wavefunctions( ihel, allmomenta, allcouplings, allMEs, jamp2_sv ); #endif @@ -719,7 +719,7 @@ namespace mg5amcCpu //std::cout << "sigmaKin_getGoodHel ihel=" << ihel << ( isGoodHel[ihel] ? " true" : " false" ) << std::endl; #ifdef MGONGPU_SUPPORTS_MULTICHANNEL constexpr unsigned int channelId = 0; // disable single-diagram channel enhancement - calculate_wavefunctions( ihel, allmomenta, allcouplings, allMEs, channelId, allNumerators, allDenominators, jamp2_sv, ievt00 ); + calculate_wavefunctions( ihel, allmomenta, allcouplings, allMEs, &channelId, allNumerators, allDenominators, jamp2_sv, ievt00 ); #else calculate_wavefunctions( ihel, allmomenta, allcouplings, allMEs, jamp2_sv, ievt00 ); #endif @@ -775,20 +775,20 @@ namespace mg5amcCpu // Evaluate |M|^2, part independent of incoming flavour __global__ void /* clang-format off */ - sigmaKin( const fptype* allmomenta, // input: momenta[nevt*npar*4] - const fptype* allcouplings, // input: couplings[nevt*ndcoup*2] - const fptype* allrndhel, // input: random numbers[nevt] for helicity selection - const fptype* allrndcol, // input: random numbers[nevt] for color selection - fptype* allMEs, // output: allMEs[nevt], |M|^2 final_avg_over_helicities + sigmaKin( const fptype* allmomenta, // input: momenta[nevt*npar*4] + const fptype* allcouplings, // input: couplings[nevt*ndcoup*2] + const fptype* allrndhel, // input: random numbers[nevt] for helicity selection + const fptype* allrndcol, // input: random numbers[nevt] for color selection + fptype* allMEs, // output: allMEs[nevt], |M|^2 final_avg_over_helicities #ifdef MGONGPU_SUPPORTS_MULTICHANNEL - const unsigned int channelId, // input: multichannel channel id (1 to #diagrams); 0 to disable channel enhancement - fptype* allNumerators, // output: multichannel numerators[nevt], running_sum_over_helicities - fptype* allDenominators, // output: multichannel denominators[nevt], running_sum_over_helicities + const unsigned int* channelIds, // input: multichannel channel id (1 to #diagrams); 0 to disable channel enhancement + fptype* allNumerators, // output: multichannel numerators[nevt], running_sum_over_helicities + fptype* allDenominators, // output: multichannel denominators[nevt], running_sum_over_helicities #endif - int* allselhel, // output: helicity selection[nevt] - int* allselcol // output: helicity selection[nevt] + int* allselhel, // output: helicity selection[nevt] + int* allselcol // output: helicity selection[nevt] #ifndef __CUDACC__ - , const int nevt // input: #events (for cuda: nevt == ndim == gpublocks*gputhreads) + , const int nevt // input: #events (for cuda: nevt == ndim == gpublocks*gputhreads) #endif ) /* clang-format on */ { @@ -862,7 +862,7 @@ namespace mg5amcCpu { const int ihel = cGoodHel[ighel]; #ifdef MGONGPU_SUPPORTS_MULTICHANNEL - calculate_wavefunctions( ihel, allmomenta, allcouplings, allMEs, channelId, allNumerators, allDenominators, jamp2_sv ); + calculate_wavefunctions( ihel, allmomenta, allcouplings, allMEs, channelIds, allNumerators, allDenominators, jamp2_sv ); #else calculate_wavefunctions( ihel, allmomenta, allcouplings, allMEs, jamp2_sv ); #endif @@ -880,7 +880,7 @@ namespace mg5amcCpu break; } } -#ifdef MGONGPU_SUPPORTS_MULTICHANNEL +#ifdef MGONGPU_SUPPORTS_MULTICHANNEL2 // SR-FIXME // Event-by-event random choice of color #402 const int channelIdC = channelId - 1; // coloramps.h uses the C array indexing starting at 0 fptype targetamp[ncolor] = { 0 }; @@ -924,7 +924,7 @@ namespace mg5amcCpu // - firstprivate: give each thread its own copy, and initialise with value from outside #define _OMPLIST0 allcouplings, allMEs, allmomenta, allrndcol, allrndhel, allselcol, allselhel, cGoodHel, cNGoodHel, npagV2 #ifdef MGONGPU_SUPPORTS_MULTICHANNEL -#define _OMPLIST1 , allDenominators, allNumerators, channelId, mgOnGpu::icolamp +#define _OMPLIST1 , allDenominators, allNumerators, channelIds, mgOnGpu::icolamp #else #define _OMPLIST1 #endif @@ -948,7 +948,7 @@ namespace mg5amcCpu { const int ihel = cGoodHel[ighel]; #ifdef MGONGPU_SUPPORTS_MULTICHANNEL - calculate_wavefunctions( ihel, allmomenta, allcouplings, allMEs, channelId, allNumerators, allDenominators, jamp2_sv, ievt00 ); + calculate_wavefunctions( ihel, allmomenta, allcouplings, allMEs, channelIds, allNumerators, allDenominators, jamp2_sv, ievt00 ); #else calculate_wavefunctions( ihel, allmomenta, allcouplings, allMEs, jamp2_sv, ievt00 ); #endif @@ -992,7 +992,7 @@ namespace mg5amcCpu } #endif } -#ifdef MGONGPU_SUPPORTS_MULTICHANNEL // multichannel enabled (random color choice) +#ifdef MGONGPU_SUPPORTS_MULTICHANNEL2 // SR-FIXME // multichannel enabled (random color choice) const int channelIdC = channelId - 1; // coloramps.h uses the C array indexing starting at 0 // Event-by-event random choice of color #402 fptype_sv targetamp[ncolor] = { 0 }; @@ -1057,7 +1057,7 @@ namespace mg5amcCpu // https://www.uzh.ch/cmsssl/physik/dam/jcr:2e24b7b1-f4d7-4160-817e-47b13dbf1d7c/Handout_4_2016-UZH.pdf] #ifdef __CUDACC__ allMEs[ievt] /= helcolDenominators[0]; -#ifdef MGONGPU_SUPPORTS_MULTICHANNEL +#ifdef MGONGPU_SUPPORTS_MULTICHANNEL2 // SR-FIXME if( channelId > 0 ) allMEs[ievt] *= allNumerators[ievt] / allDenominators[ievt]; #endif #else @@ -1067,7 +1067,7 @@ namespace mg5amcCpu fptype* MEs = E_ACCESS::ieventAccessRecord( allMEs, ievt0 ); fptype_sv& MEs_sv = E_ACCESS::kernelAccess( MEs ); MEs_sv /= helcolDenominators[0]; -#ifdef MGONGPU_SUPPORTS_MULTICHANNEL +#ifdef MGONGPU_SUPPORTS_MULTICHANNEL2 // SR-FIXME if( channelId > 0 ) { fptype* numerators = NUM_ACCESS::ieventAccessRecord( allNumerators, ievt0 ); diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/CPPProcess.h b/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/CPPProcess.h index 3ebd92c038..c3a4f13d96 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/CPPProcess.h +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/CPPProcess.h @@ -152,34 +152,34 @@ namespace mg5amcCpu #ifdef __CUDACC__ /* clang-format off */ __global__ void - sigmaKin( const fptype* allmomenta, // input: momenta[nevt*npar*4] - const fptype* allcouplings, // input: couplings[nevt*ndcoup*2] - const fptype* allrndhel, // input: random numbers[nevt] for helicity selection - const fptype* allrndcol, // input: random numbers[nevt] for color selection - fptype* allMEs, // output: allMEs[nevt], |M|^2 final_avg_over_helicities + sigmaKin( const fptype* allmomenta, // input: momenta[nevt*npar*4] + const fptype* allcouplings, // input: couplings[nevt*ndcoup*2] + const fptype* allrndhel, // input: random numbers[nevt] for helicity selection + const fptype* allrndcol, // input: random numbers[nevt] for color selection + fptype* allMEs, // output: allMEs[nevt], |M|^2 final_avg_over_helicities #ifdef MGONGPU_SUPPORTS_MULTICHANNEL - const unsigned int channelId, // input: multichannel channel id (1 to #diagrams); 0 to disable channel enhancement - fptype* allNumerators, // output: multichannel numerators[nevt], running_sum_over_helicities - fptype* allDenominators, // output: multichannel denominators[nevt], running_sum_over_helicities + const unsigned int* channelIds, // input: multichannel channel id (1 to #diagrams); 0 to disable channel enhancement + fptype* allNumerators, // output: multichannel numerators[nevt], running_sum_over_helicities + fptype* allDenominators, // output: multichannel denominators[nevt], running_sum_over_helicities #endif - int* allselhel, // output: helicity selection[nevt] - int* allselcol // output: helicity selection[nevt] + int* allselhel, // output: helicity selection[nevt] + int* allselcol // output: helicity selection[nevt] ); #else __global__ void - sigmaKin( const fptype* allmomenta, // input: momenta[nevt*npar*4] - const fptype* allcouplings, // input: couplings[nevt*ndcoup*2] - const fptype* allrndhel, // input: random numbers[nevt] for helicity selection - const fptype* allrndcol, // input: random numbers[nevt] for color selection - fptype* allMEs, // output: allMEs[nevt], |M|^2 final_avg_over_helicities + sigmaKin( const fptype* allmomenta, // input: momenta[nevt*npar*4] + const fptype* allcouplings, // input: couplings[nevt*ndcoup*2] + const fptype* allrndhel, // input: random numbers[nevt] for helicity selection + const fptype* allrndcol, // input: random numbers[nevt] for color selection + fptype* allMEs, // output: allMEs[nevt], |M|^2 final_avg_over_helicities #ifdef MGONGPU_SUPPORTS_MULTICHANNEL - const unsigned int channelId, // input: multichannel channel id (1 to #diagrams); 0 to disable channel enhancement - fptype* allNumerators, // output: multichannel numerators[nevt], running_sum_over_helicities - fptype* allDenominators, // output: multichannel denominators[nevt], running_sum_over_helicities + const unsigned int* channelIds, // input: multichannel channel id (1 to #diagrams); 0 to disable channel enhancement + fptype* allNumerators, // output: multichannel numerators[nevt], running_sum_over_helicities + fptype* allDenominators, // output: multichannel denominators[nevt], running_sum_over_helicities #endif - int* allselhel, // output: helicity selection[nevt] - int* allselcol, // output: helicity selection[nevt] - const int nevt ); // input: #events (for cuda: nevt == ndim == gpublocks*gputhreads) + int* allselhel, // output: helicity selection[nevt] + int* allselcol, // output: helicity selection[nevt] + const int nevt ); // input: #events (for cuda: nevt == ndim == gpublocks*gputhreads) #endif /* clang-format on */ //-------------------------------------------------------------------------- diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/auto_dsig1.f b/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/auto_dsig1.f index 9346ee4c6a..f913411d4a 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/auto_dsig1.f +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/auto_dsig1.f @@ -542,8 +542,9 @@ SUBROUTINE SMATRIX1_MULTI(P_MULTI, HEL_RAND, COL_RAND, CHANNEL, STOP ENDIF IF ( FIRST ) THEN ! exclude first pass (helicity filtering) from timers (#461) +C SR-FIXME CHANNELS needs to become 0 again CALL FBRIDGESEQUENCE(FBRIDGE_PBRIDGE, P_MULTI, ALL_G, - & HEL_RAND, COL_RAND, 0, OUT2, + & HEL_RAND, COL_RAND, CHANNELS, OUT2, & SELECTED_HEL2, SELECTED_COL2 ) ! 0: multi channel disabled for helicity filtering FIRST = .FALSE. c ! This is a workaround for https://github.com/oliviermattelaer/mg5amc_test/issues/22 (see PR #486) @@ -561,8 +562,9 @@ SUBROUTINE SMATRIX1_MULTI(P_MULTI, HEL_RAND, COL_RAND, CHANNEL, ENDIF call counters_smatrix1multi_start( 0, VECSIZE_USED ) ! cudacpp=0 IF ( .NOT. MULTI_CHANNEL ) THEN +C SR-FIXME CHANNELS needs to become 0 again CALL FBRIDGESEQUENCE(FBRIDGE_PBRIDGE, P_MULTI, ALL_G, - & HEL_RAND, COL_RAND, 0, OUT2, + & HEL_RAND, COL_RAND, CHANNELS, OUT2, & SELECTED_HEL2, SELECTED_COL2 ) ! 0: multi channel disabled ELSE IF( SDE_STRAT.NE.1 ) THEN @@ -570,7 +572,7 @@ SUBROUTINE SMATRIX1_MULTI(P_MULTI, HEL_RAND, COL_RAND, CHANNEL, STOP ENDIF CALL FBRIDGESEQUENCE(FBRIDGE_PBRIDGE, P_MULTI, ALL_G, - & HEL_RAND, COL_RAND, CHANNEL, OUT2, + & HEL_RAND, COL_RAND, CHANNELS, OUT2, & SELECTED_HEL2, SELECTED_COL2 ) ! 1-N: multi channel enabled ENDIF call counters_smatrix1multi_stop( 0 ) ! cudacpp=0 diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/fcheck_sa.f b/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/fcheck_sa.f index f8acb795d8..a304437a06 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/fcheck_sa.f +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/fcheck_sa.f @@ -19,7 +19,7 @@ PROGRAM FCHECK_SA DOUBLE PRECISION GS(NEVTMAX) DOUBLE PRECISION RNDHEL(NEVTMAX) ! not yet used DOUBLE PRECISION RNDCOL(NEVTMAX) ! not yet used - INTEGER*4 CHANID + INTEGER*4 CHANID(NEVTMAX) PARAMETER(CHANID=0) ! TEMPORARY? disable multi-channel in fcheck.exe and fgcheck.exe #466 DOUBLE PRECISION MES(NEVTMAX) INTEGER*4 SELHEL(NEVTMAX) ! not yet used diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/fbridge.cc b/epochX/cudacpp/gg_tt.mad/SubProcesses/fbridge.cc index 2d2b36d560..b2c38f04c7 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/fbridge.cc +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/fbridge.cc @@ -79,7 +79,7 @@ extern "C" * @param gs the pointer to the input Gs (running QCD coupling constant alphas) * @param rndhel the pointer to the input random numbers for helicity selection * @param rndcol the pointer to the input random numbers for color selection - * @param channelId the pointer to the input Feynman diagram to enhance in multi-channel mode if 1 to n (disable multi-channel if 0) + * @param channelIds the pointer to the input Feynman diagram to enhance in multi-channel mode if 1 to n (disable multi-channel if 0) * @param mes the pointer to the output matrix elements * @param selhel the pointer to the output selected helicities * @param selcol the pointer to the output selected colors @@ -89,7 +89,7 @@ extern "C" const FORTRANFPTYPE* gs, const FORTRANFPTYPE* rndhel, const FORTRANFPTYPE* rndcol, - const unsigned int* pchannelId, + const unsigned int* pchannelIds, FORTRANFPTYPE* mes, int* selhel, int* selcol ) @@ -99,11 +99,11 @@ extern "C" #ifdef __CUDACC__ // Use the device/GPU implementation in the CUDA library // (there is also a host implementation in this library) - pbridge->gpu_sequence( momenta, gs, rndhel, rndcol, *pchannelId, mes, selhel, selcol ); + pbridge->gpu_sequence( momenta, gs, rndhel, rndcol, pchannelIds, mes, selhel, selcol ); #else // Use the host/CPU implementation in the C++ library // (there is no device implementation in this library) - pbridge->cpu_sequence( momenta, gs, rndhel, rndcol, *pchannelId, mes, selhel, selcol ); + pbridge->cpu_sequence( momenta, gs, rndhel, rndcol, pchannelIds, mes, selhel, selcol ); #endif } diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/fbridge.inc b/epochX/cudacpp/gg_tt.mad/SubProcesses/fbridge.inc index e2115de6ec..647e831590 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/fbridge.inc +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/fbridge.inc @@ -49,7 +49,7 @@ C DOUBLE PRECISION GS(*) DOUBLE PRECISION RNDHEL(*) DOUBLE PRECISION RNDCOL(*) - INTEGER*4 CHANID + INTEGER*4 CHANID(*) DOUBLE PRECISION MES(*) INTEGER*4 SELHEL(*) INTEGER*4 SELCOL(*) From 580a74287df11f6305070bb1e823651d5f1c7663 Mon Sep 17 00:00:00 2001 From: Stefan Roiser Date: Thu, 7 Dec 2023 14:29:55 +0100 Subject: [PATCH 010/107] regenerate code for g g > t t~ with generateAndCompare --- MG5aMC/mg5amcnlo | 2 +- .../gg_tt.mad/CODEGEN_mad_gg_tt_log.txt | 86 +++--- .../gg_tt.mad/Cards/me5_configuration.txt | 4 +- epochX/cudacpp/gg_tt.mad/Cards/run_card.dat | 1 + .../gg_tt.mad/Cards/run_card_default.dat | 1 + epochX/cudacpp/gg_tt.mad/Source/dsample.f | 37 ++- epochX/cudacpp/gg_tt.mad/Source/make_opts | 2 +- epochX/cudacpp/gg_tt.mad/Source/vector.inc | 4 + .../cudacpp/gg_tt.mad/SubProcesses/Bridge.h | 28 +- .../gg_tt.mad/SubProcesses/BridgeKernels.cc | 21 +- .../gg_tt.mad/SubProcesses/BridgeKernels.h | 7 +- .../SubProcesses/MatrixElementKernels.cc | 14 +- .../SubProcesses/MatrixElementKernels.h | 13 +- .../gg_tt.mad/SubProcesses/MemoryBuffers.h | 18 -- .../SubProcesses/P1_gg_ttx/CPPProcess.cc | 56 ++-- .../SubProcesses/P1_gg_ttx/CPPProcess.h | 42 +-- .../SubProcesses/P1_gg_ttx/auto_dsig.f | 175 +++++++----- .../SubProcesses/P1_gg_ttx/auto_dsig1.f | 261 ++++++------------ .../SubProcesses/P1_gg_ttx/fcheck_sa.f | 2 +- .../SubProcesses/P1_gg_ttx/matrix1.f | 27 +- .../cudacpp/gg_tt.mad/SubProcesses/cudacpp.mk | 9 + .../cudacpp/gg_tt.mad/SubProcesses/fbridge.cc | 8 +- .../gg_tt.mad/SubProcesses/fbridge.inc | 2 +- .../cudacpp/gg_tt.mad/bin/internal/banner.py | 8 +- .../gg_tt.mad/bin/internal/file_writers.py | 8 +- .../gg_tt.mad/bin/internal/launch_plugin.py | 4 +- 26 files changed, 399 insertions(+), 441 deletions(-) diff --git a/MG5aMC/mg5amcnlo b/MG5aMC/mg5amcnlo index d4e3ee9762..f0ad8ca715 160000 --- a/MG5aMC/mg5amcnlo +++ b/MG5aMC/mg5amcnlo @@ -1 +1 @@ -Subproject commit d4e3ee97621574a666a49d165ac1d85d29622669 +Subproject commit f0ad8ca7151731fd4912397dc1434d7a567bb135 diff --git a/epochX/cudacpp/gg_tt.mad/CODEGEN_mad_gg_tt_log.txt b/epochX/cudacpp/gg_tt.mad/CODEGEN_mad_gg_tt_log.txt index 3326a8488f..148c2c1539 100644 --- a/epochX/cudacpp/gg_tt.mad/CODEGEN_mad_gg_tt_log.txt +++ b/epochX/cudacpp/gg_tt.mad/CODEGEN_mad_gg_tt_log.txt @@ -2,6 +2,7 @@ This version is intended for development/beta testing and NOT for production. This version has not been fully tested (if at all) and might have limited user support (if at all) Running MG5 in debug mode +('WARNING: loading of madgraph too slow!!!', 1.1267330646514893) ************************************************************ * * * W E L C O M E to * @@ -52,8 +53,8 @@ Note that you can still compile and run aMC@NLO with the built-in PDFs Using default text editor "vi". Set another one in ./input/mg5_configuration.txt Using default eps viewer "evince". Set another one in ./input/mg5_configuration.txt -No valid web browser found. Please set in ./input/mg5_configuration.txt -import /data/avalassi/GPU2023/madgraph4gpuX/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt.mg +Using default web browser "firefox". Set another one in ./input/mg5_configuration.txt +import /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt.mg The import format was not given, so we guess it as command set stdout_level DEBUG set output information to level: 10 @@ -62,7 +63,7 @@ generate g g > t t~ No model currently active, so we import the Standard Model INFO: load particles INFO: load vertices -DEBUG: model prefixing takes 0.005394458770751953  +DEBUG: model prefixing takes 0.0036835670471191406  INFO: Restrict model sm with file models/sm/restrict_default.dat . DEBUG: Simplifying conditional expressions  DEBUG: remove interactions: u s w+ at order: QED=1  @@ -155,27 +156,28 @@ INFO: Please specify coupling orders to bypass this step. INFO: Trying coupling order WEIGHTED<=2: WEIGTHED IS QCD+2*QED INFO: Trying process: g g > t t~ WEIGHTED<=2 @1 INFO: Process has 3 diagrams -1 processes with 3 diagrams generated in 0.008 s +1 processes with 3 diagrams generated in 0.007 s Total: 1 processes with 3 diagrams output madevent ../TMPOUT/CODEGEN_mad_gg_tt --hel_recycling=False --vector_size=32 --me_exporter=standalone_cudacpp +DEBUG: args =  ['--hel_recycling=False', '--vector_size=32', '--me_exporter=standalone_cudacpp'] [madgraph_interface.py at line 8160]  Load PLUGIN.CUDACPP_OUTPUT Addition matrix-element will be done with PLUGIN: CUDACPP_OUTPUT Output will be done with PLUGIN: CUDACPP_OUTPUT DEBUG: cformat =  standalone_cudacpp [export_cpp.py at line 3071]  -DEBUG: Entering PLUGIN_ProcessExporter.__init__ (initialise the exporter) [output.py at line 160]  +DEBUG: Entering PLUGIN_ProcessExporter.__init__ (initialise the exporter) [output.py at line 161]  INFO: initialize a new directory: CODEGEN_mad_gg_tt INFO: remove old information in CODEGEN_mad_gg_tt -DEBUG: Entering PLUGIN_ProcessExporter.copy_template (initialise the directory) [output.py at line 165]  -WARNING: File exists /data/avalassi/GPU2023/madgraph4gpuX/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt  -INFO: Creating subdirectories in directory /data/avalassi/GPU2023/madgraph4gpuX/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt -WARNING: File exists /data/avalassi/GPU2023/madgraph4gpuX/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/Cards  -WARNING: File exists /data/avalassi/GPU2023/madgraph4gpuX/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/SubProcesses  +DEBUG: Entering PLUGIN_ProcessExporter.copy_template (initialise the directory) [output.py at line 166]  +WARNING: File exists /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt  +INFO: Creating subdirectories in directory /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt +WARNING: File exists /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/Cards  +WARNING: File exists /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/SubProcesses  INFO: Organizing processes into subprocess groups INFO: Generating Helas calls for process: g g > t t~ WEIGHTED<=2 @1 INFO: Processing color information for process: g g > t t~ @1 INFO: Creating files in directory P1_gg_ttx DEBUG: kwargs[prefix] = 0 [model_handling.py at line 1058]  -DEBUG: process_exporter_cpp =  [export_v4.py at line 6262]  +DEBUG: process_exporter_cpp =  [export_v4.py at line 6305]  INFO: Creating files in directory . FileWriter for ././CPPProcess.h FileWriter for ././CPPProcess.cc @@ -184,62 +186,60 @@ INFO: Created files CPPProcess.h and CPPProcess.cc in directory ./. DEBUG: config_map =  [1, 2, 3] [export_cpp.py at line 711]  DEBUG: subproc_number =  0 [export_cpp.py at line 712]  DEBUG: Done [export_cpp.py at line 713]  -DEBUG: vector, subproc_group,self.opt['vector_size'] =  False True 32 [export_v4.py at line 1872]  -DEBUG: vector, subproc_group,self.opt['vector_size'] =  False True 32 [export_v4.py at line 1872]  -DEBUG: vector, subproc_group,self.opt['vector_size'] =  32 True 32 [export_v4.py at line 1872]  -DEBUG: vector, subproc_group,self.opt['vector_size'] =  32 True 32 [export_v4.py at line 1872]  INFO: Generating Feynman diagrams for Process: g g > t t~ WEIGHTED<=2 @1 INFO: Finding symmetric diagrams for subprocess group gg_ttx -Generated helas calls for 1 subprocesses (3 diagrams) in 0.006 s -Wrote files for 10 helas calls in 0.102 s +Generated helas calls for 1 subprocesses (3 diagrams) in 0.007 s +Wrote files for 10 helas calls in 2.214 s ALOHA: aloha starts to compute helicity amplitudes ALOHA: aloha creates VVV1 set of routines with options: P0 ALOHA: aloha creates FFV1 routines -ALOHA: aloha creates 2 routines in 0.142 s -DEBUG: Entering PLUGIN_ProcessExporter.convert_model (create the model) [output.py at line 202]  +ALOHA: aloha creates 2 routines in 0.353 s +DEBUG: Entering PLUGIN_ProcessExporter.convert_model (create the model) [output.py at line 203]  ALOHA: aloha starts to compute helicity amplitudes ALOHA: aloha creates VVV1 set of routines with options: P0 ALOHA: aloha creates FFV1 routines -ALOHA: aloha creates 4 routines in 0.138 s +ALOHA: aloha creates 4 routines in 0.280 s VVV1 FFV1 FFV1 FFV1 -FileWriter for /data/avalassi/GPU2023/madgraph4gpuX/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/src/./HelAmps_sm.h -INFO: Created file HelAmps_sm.h in directory /data/avalassi/GPU2023/madgraph4gpuX/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/src/. +FileWriter for /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/src/./HelAmps_sm.h +INFO: Created file HelAmps_sm.h in directory /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/src/. super_write_set_parameters_onlyfixMajorana (hardcoded=False) super_write_set_parameters_onlyfixMajorana (hardcoded=True) -FileWriter for /data/avalassi/GPU2023/madgraph4gpuX/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/src/./Parameters_sm.h -FileWriter for /data/avalassi/GPU2023/madgraph4gpuX/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/src/./Parameters_sm.cc +FileWriter for /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/src/./Parameters_sm.h +FileWriter for /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/src/./Parameters_sm.cc INFO: Created files Parameters_sm.h and Parameters_sm.cc in directory -INFO: /data/avalassi/GPU2023/madgraph4gpuX/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/src/. and /data/avalassi/GPU2023/madgraph4gpuX/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/src/. +INFO: /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/src/. and /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/src/. The option zerowidth_tchannel is modified [True] but will not be written in the configuration files. If you want to make this value the default for future session, you can run 'save options --all' -save configuration file to /data/avalassi/GPU2023/madgraph4gpuX/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/Cards/me5_configuration.txt +save configuration file to /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/Cards/me5_configuration.txt INFO: Use Fortran compiler gfortran INFO: Use c++ compiler g++ INFO: Generate web pages -DEBUG: cd /data/avalassi/GPU2023/madgraph4gpuX/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt; patch -p4 -i /data/avalassi/GPU2023/madgraph4gpuX/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/MG5aMC_patches/PROD/patch.common +DEBUG: cd /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt; patch -p4 -i /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/MG5aMC_patches/PROD/patch.common patching file Source/genps.inc patching file Source/makefile patching file SubProcesses/makefile patching file bin/internal/gen_ximprove.py Hunk #1 succeeded at 391 (offset 6 lines). patching file bin/internal/madevent_interface.py -DEBUG: cd /data/avalassi/GPU2023/madgraph4gpuX/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/SubProcesses/P1_gg_ttx; patch -p6 -i /data/avalassi/GPU2023/madgraph4gpuX/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/MG5aMC_patches/PROD/patch.P1 -patching file auto_dsig1.f +DEBUG: cd /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/SubProcesses/P1_gg_ttx; patch -p6 -i /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/MG5aMC_patches/PROD/patch.P1 patching file driver.f patching file matrix1.f -DEBUG: p.returncode =  0 [output.py at line 237]  -Output to directory /data/avalassi/GPU2023/madgraph4gpuX/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt done. +Hunk #3 succeeded at 234 (offset 13 lines). +Hunk #4 succeeded at 262 (offset 13 lines). +Hunk #5 succeeded at 307 (offset 13 lines). +DEBUG: p.returncode =  0 [output.py at line 238]  +Output to directory /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt done. Type "launch" to generate events from this process, or see -/data/avalassi/GPU2023/madgraph4gpuX/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/README +/afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/README Run "open index.html" to see more information about this process. quit -real 0m1.677s -user 0m1.453s -sys 0m0.213s +real 0m37.385s +user 0m1.477s +sys 0m1.660s ************************************************************ * * * W E L C O M E to * @@ -260,12 +260,12 @@ sys 0m0.213s * Type 'help' for in-line help. * * * ************************************************************ -INFO: load configuration from /data/avalassi/GPU2023/madgraph4gpuX/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/Cards/me5_configuration.txt -INFO: load configuration from /data/avalassi/GPU2023/madgraph4gpuX/MG5aMC/mg5amcnlo/input/mg5_configuration.txt -INFO: load configuration from /data/avalassi/GPU2023/madgraph4gpuX/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/Cards/me5_configuration.txt +INFO: load configuration from /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/Cards/me5_configuration.txt +INFO: load configuration from /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/mg5amcnlo/input/mg5_configuration.txt +INFO: load configuration from /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/Cards/me5_configuration.txt Using default text editor "vi". Set another one in ./input/mg5_configuration.txt Using default eps viewer "evince". Set another one in ./input/mg5_configuration.txt -No valid web browser found. Please set in ./input/mg5_configuration.txt +Using default web browser "firefox". Set another one in ./input/mg5_configuration.txt treatcards run quit INFO: @@ -290,12 +290,12 @@ launch in debug mode * Type 'help' for in-line help. * * * ************************************************************ -INFO: load configuration from /data/avalassi/GPU2023/madgraph4gpuX/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/Cards/me5_configuration.txt -INFO: load configuration from /data/avalassi/GPU2023/madgraph4gpuX/MG5aMC/mg5amcnlo/input/mg5_configuration.txt -INFO: load configuration from /data/avalassi/GPU2023/madgraph4gpuX/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/Cards/me5_configuration.txt +INFO: load configuration from /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/Cards/me5_configuration.txt +INFO: load configuration from /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/mg5amcnlo/input/mg5_configuration.txt +INFO: load configuration from /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/Cards/me5_configuration.txt Using default text editor "vi". Set another one in ./input/mg5_configuration.txt Using default eps viewer "evince". Set another one in ./input/mg5_configuration.txt -No valid web browser found. Please set in ./input/mg5_configuration.txt +Using default web browser "firefox". Set another one in ./input/mg5_configuration.txt treatcards param quit INFO: diff --git a/epochX/cudacpp/gg_tt.mad/Cards/me5_configuration.txt b/epochX/cudacpp/gg_tt.mad/Cards/me5_configuration.txt index cdeedc7863..23fbf89fcd 100644 --- a/epochX/cudacpp/gg_tt.mad/Cards/me5_configuration.txt +++ b/epochX/cudacpp/gg_tt.mad/Cards/me5_configuration.txt @@ -234,7 +234,7 @@ # pineappl = pineappl -#mg5_path = /data/avalassi/GPU2023/madgraph4gpuX/MG5aMC/mg5amcnlo +#mg5_path = /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/mg5amcnlo # MG5 MAIN DIRECTORY -#mg5_path = /data/avalassi/GPU2023/madgraph4gpuX/MG5aMC/mg5amcnlo +#mg5_path = /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/mg5amcnlo diff --git a/epochX/cudacpp/gg_tt.mad/Cards/run_card.dat b/epochX/cudacpp/gg_tt.mad/Cards/run_card.dat index a6463dc262..f96c5eb99a 100644 --- a/epochX/cudacpp/gg_tt.mad/Cards/run_card.dat +++ b/epochX/cudacpp/gg_tt.mad/Cards/run_card.dat @@ -96,6 +96,7 @@ --fast-math = aloha_flag ! fortran optimization flag for aloha function. Suggestions: '-ffast-math' -O3 = matrix_flag ! fortran optimization flag for matrix.f function. Suggestions: '-O3' 16384 = vector_size ! size of fortran arrays allocated in the multi-event API for SIMD/GPU (VECSIZE_MEMMAX) + 1 = nb_wrap ! total number of wrap/frontwave #********************************************************************* # Customization (custom cuts/scale/bias/...) * diff --git a/epochX/cudacpp/gg_tt.mad/Cards/run_card_default.dat b/epochX/cudacpp/gg_tt.mad/Cards/run_card_default.dat index 27e990a016..0edc4bacc2 100644 --- a/epochX/cudacpp/gg_tt.mad/Cards/run_card_default.dat +++ b/epochX/cudacpp/gg_tt.mad/Cards/run_card_default.dat @@ -96,6 +96,7 @@ --fast-math = aloha_flag ! fortran optimization flag for aloha function. Suggestions: '-ffast-math' -O3 = matrix_flag ! fortran optimization flag for matrix.f function. Suggestions: '-O3' 16 = vector_size ! size of fortran arrays allocated in the multi-event API for SIMD/GPU (VECSIZE_MEMMAX) + 1 = nb_wrap ! total number of wrap/frontwave #********************************************************************* # Customization (custom cuts/scale/bias/...) * diff --git a/epochX/cudacpp/gg_tt.mad/Source/dsample.f b/epochX/cudacpp/gg_tt.mad/Source/dsample.f index e18ba7c03d..bd875c266a 100644 --- a/epochX/cudacpp/gg_tt.mad/Source/dsample.f +++ b/epochX/cudacpp/gg_tt.mad/Source/dsample.f @@ -37,8 +37,12 @@ subroutine sample_full(ndim,ncall,itmax,itmin,dsig,ninvar,nconfigs,VECSIZE_USED) integer jmax,i,j,ipole integer itmax_adjust - integer imirror, iproc, iconf - integer ivec ! position of the event in the vector (max is VECSIZE_MEMMAX, loops go over VECSIZE_USED) +c integer imirror, iproc, iconf + integer imirror_vec(NB_WRAP), iproc, ICONF_VEC(NB_WRAP) + integer ivec ! position of the event in the vector (max is VECSIZE_MEMMAX, loops go over VECSIZE_USED) + integer ilock ! position of the event in the current wrap (max is WRAP_SIZE) + integer iwrap ! position of the current wrap (max is NB_WRAP) +c NOTE THAT IVEC = (IWRAP-1)*NB_WRAP + ILOCK c c External @@ -161,6 +165,8 @@ subroutine sample_full(ndim,ncall,itmax,itmin,dsig,ninvar,nconfigs,VECSIZE_USED) ievent = 0 iter = 1 ivec = 0 + ilock = 0 + iwrap = 1 do while(iter .le. itmax) c c Get integration point @@ -174,6 +180,11 @@ subroutine sample_full(ndim,ncall,itmax,itmin,dsig,ninvar,nconfigs,VECSIZE_USED) CUTSPASSED=.FALSE. if (passcuts(p,VECSIZE_USED)) then ivec=ivec+1 + ilock = ilock+1 + if (ilock.gt.WRAP_SIZE)then + ilock = 1 + iwrap = iwrap +1 + endif c write(*,*) 'pass_point ivec is ', ivec all_p(:,ivec) = p(:) all_wgt(ivec) = wgt @@ -187,25 +198,35 @@ subroutine sample_full(ndim,ncall,itmax,itmin,dsig,ninvar,nconfigs,VECSIZE_USED) c bckp(i) = fx c write(*,*) i, all_wgt(i), fx, all_wgt(i)*fx c all_wgt(i) = all_wgt(i)*fx - if (ivec.lt.VECSIZE_USED)then + if (ilock.ne.WRAP_SIZE)then cycle endif - ivec=0 + if (VECSIZE_USED.le.1) then all_fx(1) = dsig(all_p, all_wgt,0) else - do i=1, VECSIZE_USED +c Here "i" is the position in the full grid of the event + do i=(iwrap-1)*WRAP_SIZE+1, iwrap*wrap_size + c need to restore common block xbk(:) = all_xbk(:, i) cm_rap = all_cm_rap(i) q2fact(:) = all_q2fact(:,i) CUTSDONE=.TRUE. CUTSPASSED=.TRUE. - call prepare_grouping_choice(all_p(1,i), all_wgt(i), i.eq.1) + call prepare_grouping_choice(all_p(1,i), all_wgt(i), i.eq.(iwrap-1)*WRAP_SIZE+1) enddo - call select_grouping(imirror, iproc, iconf, all_wgt, VECSIZE_USED) + call select_grouping(imirror_vec(iwrap), iproc, iconf_vec(iwrap), all_wgt, iwrap) + if (ivec.lt.VECSIZE_USED)then + cycle + endif +c reset variable for the next grid + ivec = 0 + ilock = 0 + iwrap =1 + call dsig_vec(all_p, all_wgt, all_xbk, all_q2fact, all_cm_rap, - & iconf, iproc, imirror, all_fx,VECSIZE_USED) + & iconf_vec, iproc, imirror_vec, all_fx,VECSIZE_USED) do i=1, VECSIZE_USED c need to restore common block diff --git a/epochX/cudacpp/gg_tt.mad/Source/make_opts b/epochX/cudacpp/gg_tt.mad/Source/make_opts index e4b87ee6ad..f9f7b64bb5 100644 --- a/epochX/cudacpp/gg_tt.mad/Source/make_opts +++ b/epochX/cudacpp/gg_tt.mad/Source/make_opts @@ -5,8 +5,8 @@ GLOBAL_FLAG=-O3 -ffast-math -fbounds-check MACFLAG= MG5AMC_VERSION=SpecifiedByMG5aMCAtRunTime PYTHIA8_PATH=NotInstalled -STDLIB_FLAG= STDLIB=-lstdc++ +STDLIB_FLAG= #end_of_make_opts_variables BIASLIBDIR=../../../lib/ diff --git a/epochX/cudacpp/gg_tt.mad/Source/vector.inc b/epochX/cudacpp/gg_tt.mad/Source/vector.inc index 863eebbc70..e2b8f5b265 100644 --- a/epochX/cudacpp/gg_tt.mad/Source/vector.inc +++ b/epochX/cudacpp/gg_tt.mad/Source/vector.inc @@ -27,5 +27,9 @@ C NB: THIS FILE CANNOT CONTAIN #ifdef DIRECTIVES C BECAUSE IT DOES NOT GO THROUGH THE CPP PREPROCESSOR C (see https://github.com/madgraph5/madgraph4gpu/issues/458). C + INTEGER WRAP_SIZE + PARAMETER (WRAP_SIZE=16384) + INTEGER NB_WRAP + PARAMETER (NB_WRAP=1) INTEGER VECSIZE_MEMMAX PARAMETER (VECSIZE_MEMMAX=16384) diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/Bridge.h b/epochX/cudacpp/gg_tt.mad/SubProcesses/Bridge.h index c2675052c2..bf8b5e024d 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/Bridge.h +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/Bridge.h @@ -100,7 +100,7 @@ namespace mg5amcCpu * @param gs the pointer to the input Gs (running QCD coupling constant alphas) * @param rndhel the pointer to the input random numbers for helicity selection * @param rndcol the pointer to the input random numbers for color selection - * @param channelIds the Feynman diagram to enhance in multi-channel mode if 1 to n (disable multi-channel if 0) SR-FIXME need to describe how it looks like when no channel ID is used + * @param channelId the Feynman diagram to enhance in multi-channel mode if 1 to n (disable multi-channel if 0) * @param mes the pointer to the output matrix elements * @param goodHelOnly quit after computing good helicities? * @param selhel the pointer to the output selected helicities @@ -110,7 +110,7 @@ namespace mg5amcCpu const FORTRANFPTYPE* gs, const FORTRANFPTYPE* rndhel, const FORTRANFPTYPE* rndcol, - const unsigned int* channelIds, + const unsigned int channelId, FORTRANFPTYPE* mes, int* selhel, int* selcol, @@ -123,7 +123,7 @@ namespace mg5amcCpu * @param gs the pointer to the input Gs (running QCD coupling constant alphas) * @param rndhel the pointer to the input random numbers for helicity selection * @param rndcol the pointer to the input random numbers for color selection - * @param channelIds the Feynman diagram to enhance in multi-channel mode if 1 to n (disable multi-channel if 0) SR-FIXME need to describe how it looks like when no channel ID is used + * @param channelId the Feynman diagram to enhance in multi-channel mode if 1 to n (disable multi-channel if 0) * @param mes the pointer to the output matrix elements * @param selhel the pointer to the output selected helicities * @param selcol the pointer to the output selected colors @@ -133,7 +133,7 @@ namespace mg5amcCpu const FORTRANFPTYPE* gs, const FORTRANFPTYPE* rndhel, const FORTRANFPTYPE* rndcol, - const unsigned int* channelIds, + const unsigned int channelId, FORTRANFPTYPE* mes, int* selhel, int* selcol, @@ -161,14 +161,12 @@ namespace mg5amcCpu DeviceBufferMatrixElements m_devMEs; DeviceBufferSelectedHelicity m_devSelHel; DeviceBufferSelectedColor m_devSelCol; - DeviceBufferChannelIds m_devChanIds; PinnedHostBufferGs m_hstGs; PinnedHostBufferRndNumHelicity m_hstRndHel; PinnedHostBufferRndNumColor m_hstRndCol; PinnedHostBufferMatrixElements m_hstMEs; PinnedHostBufferSelectedHelicity m_hstSelHel; PinnedHostBufferSelectedColor m_hstSelCol; - PinnedHostBufferChannelIds m_hstChanIds; std::unique_ptr m_pmek; //static constexpr int s_gputhreadsmin = 16; // minimum number of gpu threads (TEST VALUE FOR MADEVENT) static constexpr int s_gputhreadsmin = 32; // minimum number of gpu threads (DEFAULT) @@ -180,7 +178,6 @@ namespace mg5amcCpu HostBufferMatrixElements m_hstMEs; HostBufferSelectedHelicity m_hstSelHel; HostBufferSelectedColor m_hstSelCol; - HostBufferChannelIds m_hstChanIds; std::unique_ptr m_pmek; #endif }; @@ -223,7 +220,6 @@ namespace mg5amcCpu , m_devMEs( m_nevt ) , m_devSelHel( m_nevt ) , m_devSelCol( m_nevt ) - , m_devChanIds( m_nevt ) #else , m_hstMomentaC( m_nevt ) #endif @@ -233,7 +229,6 @@ namespace mg5amcCpu , m_hstMEs( m_nevt ) , m_hstSelHel( m_nevt ) , m_hstSelCol( m_nevt ) - , m_hstChanIds( m_nevt ) , m_pmek( nullptr ) { if( nparF != CPPProcess::npar ) throw std::runtime_error( "Bridge constructor: npar mismatch" ); @@ -250,10 +245,10 @@ namespace mg5amcCpu } std::cout << "WARNING! Instantiate device Bridge (nevt=" << m_nevt << ", gpublocks=" << m_gpublocks << ", gputhreads=" << m_gputhreads << ", gpublocks*gputhreads=" << m_gpublocks * m_gputhreads << ")" << std::endl; - m_pmek.reset( new MatrixElementKernelDevice( m_devMomentaC, m_devGs, m_devRndHel, m_devRndCol, m_devChanIds, m_devMEs, m_devSelHel, m_devSelCol, m_gpublocks, m_gputhreads ) ); + m_pmek.reset( new MatrixElementKernelDevice( m_devMomentaC, m_devGs, m_devRndHel, m_devRndCol, m_devMEs, m_devSelHel, m_devSelCol, m_gpublocks, m_gputhreads ) ); #else std::cout << "WARNING! Instantiate host Bridge (nevt=" << m_nevt << ")" << std::endl; - m_pmek.reset( new MatrixElementKernelHost( m_hstMomentaC, m_hstGs, m_hstRndHel, m_hstRndCol, m_hstChanIds, m_hstMEs, m_hstSelHel, m_hstSelCol, m_nevt ) ); + m_pmek.reset( new MatrixElementKernelHost( m_hstMomentaC, m_hstGs, m_hstRndHel, m_hstRndCol, m_hstMEs, m_hstSelHel, m_hstSelCol, m_nevt ) ); #endif // __CUDACC__ // Create a process object, read param card and set parameters // FIXME: the process instance can happily go out of scope because it is only needed to read parameters? @@ -287,7 +282,7 @@ namespace mg5amcCpu const FORTRANFPTYPE* gs, const FORTRANFPTYPE* rndhel, const FORTRANFPTYPE* rndcol, - const unsigned int* channelIds, + const unsigned int channelId, FORTRANFPTYPE* mes, int* selhel, int* selcol, @@ -317,18 +312,16 @@ namespace mg5amcCpu std::copy( rndhel, rndhel + m_nevt, m_hstRndHel.data() ); std::copy( rndcol, rndcol + m_nevt, m_hstRndCol.data() ); } - memcpy(m_hstChanIds.data(), channelIds, m_nevt * sizeof(unsigned int)); copyDeviceFromHost( m_devGs, m_hstGs ); copyDeviceFromHost( m_devRndHel, m_hstRndHel ); copyDeviceFromHost( m_devRndCol, m_hstRndCol ); - copyDeviceFromHost( m_devChanIds, m_hstChanIds ); if( m_nGoodHel < 0 ) { m_nGoodHel = m_pmek->computeGoodHelicities(); if( m_nGoodHel < 0 ) throw std::runtime_error( "Bridge gpu_sequence: computeGoodHelicities returned nGoodHel<0" ); } if( goodHelOnly ) return; - m_pmek->computeMatrixElements(); + m_pmek->computeMatrixElements( channelId ); copyHostFromDevice( m_hstMEs, m_devMEs ); flagAbnormalMEs( m_hstMEs.data(), m_nevt ); copyHostFromDevice( m_hstSelHel, m_devSelHel ); @@ -354,7 +347,7 @@ namespace mg5amcCpu const FORTRANFPTYPE* gs, const FORTRANFPTYPE* rndhel, const FORTRANFPTYPE* rndcol, - const unsigned int* channelIds, + const unsigned int channelId, FORTRANFPTYPE* mes, int* selhel, int* selcol, @@ -373,14 +366,13 @@ namespace mg5amcCpu std::copy( rndhel, rndhel + m_nevt, m_hstRndHel.data() ); std::copy( rndcol, rndcol + m_nevt, m_hstRndCol.data() ); } - memcpy( m_hstChanIds.data(), channelIds, m_nevt * sizeof(unsigned int)); if( m_nGoodHel < 0 ) { m_nGoodHel = m_pmek->computeGoodHelicities(); if( m_nGoodHel < 0 ) throw std::runtime_error( "Bridge cpu_sequence: computeGoodHelicities returned nGoodHel<0" ); } if( goodHelOnly ) return; - m_pmek->computeMatrixElements(); + m_pmek->computeMatrixElements( channelId ); flagAbnormalMEs( m_hstMEs.data(), m_nevt ); if constexpr( std::is_same_v ) { diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/BridgeKernels.cc b/epochX/cudacpp/gg_tt.mad/SubProcesses/BridgeKernels.cc index ee4f8da6f8..d58066c9c1 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/BridgeKernels.cc +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/BridgeKernels.cc @@ -26,12 +26,11 @@ namespace mg5amcCpu const BufferGs& gs, // input: gs for alphaS const BufferRndNumHelicity& rndhel, // input: random numbers for helicity selection const BufferRndNumColor& rndcol, // input: random numbers for color selection - const BufferChannelIds& chanIds, // input: channel Ids BufferMatrixElements& matrixElements, // output: matrix elements BufferSelectedHelicity& selhel, // output: helicity selection BufferSelectedColor& selcol, // output: color selection const size_t nevt ) - : MatrixElementKernelBase( momenta, gs, rndhel, rndcol, chanIds, matrixElements, selhel, selcol ) + : MatrixElementKernelBase( momenta, gs, rndhel, rndcol, matrixElements, selhel, selcol ) , NumberOfEvents( nevt ) , m_bridge( nevt, npar, np4 ) { @@ -56,12 +55,11 @@ namespace mg5amcCpu const BufferGs& gs, // input: Gs for alphaS const BufferRndNumHelicity& rndhel, // input: random numbers for helicity selection const BufferRndNumColor& rndcol, // input: random numbers for color selection - const BufferChannelIds& chanIds, // input: channel Ids BufferMatrixElements& matrixElements, // output: matrix elements BufferSelectedHelicity& selhel, // output: helicity selection BufferSelectedColor& selcol, // output: color selection const size_t nevt ) - : BridgeKernelBase( momenta, gs, rndhel, rndcol, chanIds, matrixElements, selhel, selcol, nevt ) + : BridgeKernelBase( momenta, gs, rndhel, rndcol, matrixElements, selhel, selcol, nevt ) , m_fortranMomenta( nevt ) { } @@ -79,16 +77,16 @@ namespace mg5amcCpu { constexpr bool goodHelOnly = true; constexpr unsigned int channelId = 0; // disable multi-channel for helicity filtering - m_bridge.cpu_sequence( m_fortranMomenta.data(), m_gs.data(), m_rndhel.data(), m_rndcol.data(), m_chanIds.data(), m_matrixElements.data(), m_selhel.data(), m_selcol.data(), goodHelOnly ); + m_bridge.cpu_sequence( m_fortranMomenta.data(), m_gs.data(), m_rndhel.data(), m_rndcol.data(), channelId, m_matrixElements.data(), m_selhel.data(), m_selcol.data(), goodHelOnly ); return m_bridge.nGoodHel(); } //-------------------------------------------------------------------------- - void BridgeKernelHost::computeMatrixElements() + void BridgeKernelHost::computeMatrixElements( const unsigned int channelId ) { constexpr bool goodHelOnly = false; - m_bridge.cpu_sequence( m_fortranMomenta.data(), m_gs.data(), m_rndhel.data(), m_rndcol.data(), m_chanIds.data(), m_matrixElements.data(), m_selhel.data(), m_selcol.data(), goodHelOnly ); + m_bridge.cpu_sequence( m_fortranMomenta.data(), m_gs.data(), m_rndhel.data(), m_rndcol.data(), channelId, m_matrixElements.data(), m_selhel.data(), m_selcol.data(), goodHelOnly ); } //-------------------------------------------------------------------------- @@ -108,13 +106,12 @@ namespace mg5amcGpu const BufferGs& gs, // input: Gs for alphaS const BufferRndNumHelicity& rndhel, // input: random numbers for helicity selection const BufferRndNumColor& rndcol, // input: random numbers for color selection - const BufferChannelIds& chanIds, // input: channel Ids BufferMatrixElements& matrixElements, // output: matrix elements BufferSelectedHelicity& selhel, // output: helicity selection BufferSelectedColor& selcol, // output: color selection const size_t gpublocks, const size_t gputhreads ) - : BridgeKernelBase( momenta, gs, rndhel, rndcol, chanIds, matrixElements, selhel, selcol, gpublocks * gputhreads ) + : BridgeKernelBase( momenta, gs, rndhel, rndcol, matrixElements, selhel, selcol, gpublocks * gputhreads ) , m_fortranMomenta( nevt() ) , m_gpublocks( gpublocks ) , m_gputhreads( gputhreads ) @@ -137,16 +134,16 @@ namespace mg5amcGpu { constexpr bool goodHelOnly = true; constexpr unsigned int channelId = 0; // disable multi-channel for helicity filtering - m_bridge.gpu_sequence( m_fortranMomenta.data(), m_gs.data(), m_rndhel.data(), m_rndcol.data(), m_chanIds.data(), m_matrixElements.data(), m_selhel.data(), m_selcol.data(), goodHelOnly ); + m_bridge.gpu_sequence( m_fortranMomenta.data(), m_gs.data(), m_rndhel.data(), m_rndcol.data(), channelId, m_matrixElements.data(), m_selhel.data(), m_selcol.data(), goodHelOnly ); return m_bridge.nGoodHel(); } //-------------------------------------------------------------------------- - void BridgeKernelDevice::computeMatrixElements() + void BridgeKernelDevice::computeMatrixElements( const unsigned int channelId ) { constexpr bool goodHelOnly = false; - m_bridge.gpu_sequence( m_fortranMomenta.data(), m_gs.data(), m_rndhel.data(), m_rndcol.data(), m_chanIds.data(), m_matrixElements.data(), m_selhel.data(), m_selcol.data(), goodHelOnly ); + m_bridge.gpu_sequence( m_fortranMomenta.data(), m_gs.data(), m_rndhel.data(), m_rndcol.data(), channelId, m_matrixElements.data(), m_selhel.data(), m_selcol.data(), goodHelOnly ); } //-------------------------------------------------------------------------- diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/BridgeKernels.h b/epochX/cudacpp/gg_tt.mad/SubProcesses/BridgeKernels.h index 0ce20228d3..15eb4bff4d 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/BridgeKernels.h +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/BridgeKernels.h @@ -30,7 +30,6 @@ namespace mg5amcCpu const BufferGs& gs, // input: gs for alphaS const BufferRndNumHelicity& rndhel, // input: random numbers for helicity selection const BufferRndNumColor& rndcol, // input: random numbers for color selection - const BufferChannelIds& chanIds, // input: channel Ids BufferMatrixElements& matrixElements, // output: matrix elements BufferSelectedHelicity& selhel, // output: helicity selection BufferSelectedColor& selcol, // output: color selection @@ -61,7 +60,6 @@ namespace mg5amcCpu const BufferGs& gs, // input: gs for alphaS const BufferRndNumHelicity& rndhel, // input: random numbers for helicity selection const BufferRndNumColor& rndcol, // input: random numbers for color selection - const HostBufferChannelIds& chanIds, // input: channel Ids BufferMatrixElements& matrixElements, // output: matrix elements BufferSelectedHelicity& selhel, // output: helicity selection BufferSelectedColor& selcol, // output: color selection @@ -77,7 +75,7 @@ namespace mg5amcCpu int computeGoodHelicities() override final; // Compute matrix elements - void computeMatrixElements() override final; + void computeMatrixElements( const unsigned int channelId ) override final; // Is this a host or device kernel? bool isOnDevice() const override final { return false; } @@ -102,7 +100,6 @@ namespace mg5amcCpu const BufferGs& gs, // input: gs for alphaS const BufferRndNumHelicity& rndhel, // input: random numbers for helicity selection const BufferRndNumColor& rndcol, // input: random numbers for color selection - const BufferChannelIds& chanIds, // input: channel Ids BufferMatrixElements& matrixElements, // output: matrix elements BufferSelectedHelicity& selhel, // output: helicity selection BufferSelectedColor& selcol, // output: color selection @@ -119,7 +116,7 @@ namespace mg5amcCpu int computeGoodHelicities() override final; // Compute matrix elements - void computeMatrixElements() override final; + void computeMatrixElements( const unsigned int channelId ) override final; // Is this a host or device kernel? bool isOnDevice() const override final { return true; } diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/MatrixElementKernels.cc b/epochX/cudacpp/gg_tt.mad/SubProcesses/MatrixElementKernels.cc index 0dfe69e711..74b5239ebf 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/MatrixElementKernels.cc +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/MatrixElementKernels.cc @@ -24,12 +24,11 @@ namespace mg5amcCpu const BufferGs& gs, // input: gs for alphaS const BufferRndNumHelicity& rndhel, // input: random numbers for helicity selection const BufferRndNumColor& rndcol, // input: random numbers for color selection - const BufferChannelIds& chanIds, // input: channel Ids BufferMatrixElements& matrixElements, // output: matrix elements BufferSelectedHelicity& selhel, // output: helicity selection BufferSelectedColor& selcol, // output: color selection const size_t nevt ) - : MatrixElementKernelBase( momenta, gs, rndhel, rndcol, chanIds, matrixElements, selhel, selcol ) + : MatrixElementKernelBase( momenta, gs, rndhel, rndcol, matrixElements, selhel, selcol ) , NumberOfEvents( nevt ) , m_couplings( nevt ) #ifdef MGONGPU_SUPPORTS_MULTICHANNEL @@ -77,11 +76,11 @@ namespace mg5amcCpu //-------------------------------------------------------------------------- - void MatrixElementKernelHost::computeMatrixElements() + void MatrixElementKernelHost::computeMatrixElements( const unsigned int channelId ) { computeDependentCouplings( m_gs.data(), m_couplings.data(), m_gs.size() ); #ifdef MGONGPU_SUPPORTS_MULTICHANNEL - sigmaKin( m_momenta.data(), m_couplings.data(), m_rndhel.data(), m_rndcol.data(), m_matrixElements.data(), m_chanIds.data(), m_numerators.data(), m_denominators.data(), m_selhel.data(), m_selcol.data(), nevt() ); + sigmaKin( m_momenta.data(), m_couplings.data(), m_rndhel.data(), m_rndcol.data(), m_matrixElements.data(), channelId, m_numerators.data(), m_denominators.data(), m_selhel.data(), m_selcol.data(), nevt() ); #else sigmaKin( m_momenta.data(), m_couplings.data(), m_rndhel.data(), m_rndcol.data(), m_matrixElements.data(), m_selhel.data(), m_selcol.data(), nevt() ); #endif @@ -161,13 +160,12 @@ namespace mg5amcGpu const BufferGs& gs, // input: gs for alphaS const BufferRndNumHelicity& rndhel, // input: random numbers for helicity selection const BufferRndNumColor& rndcol, // input: random numbers for color selection - const BufferChannelIds& chanIds, // input: channel Ids BufferMatrixElements& matrixElements, // output: matrix elements BufferSelectedHelicity& selhel, // output: helicity selection BufferSelectedColor& selcol, // output: color selection const size_t gpublocks, const size_t gputhreads ) - : MatrixElementKernelBase( momenta, gs, rndhel, rndcol, chanIds, matrixElements, selhel, selcol ) + : MatrixElementKernelBase( momenta, gs, rndhel, rndcol, matrixElements, selhel, selcol ) , NumberOfEvents( gpublocks * gputhreads ) , m_couplings( this->nevt() ) #ifdef MGONGPU_SUPPORTS_MULTICHANNEL @@ -226,7 +224,7 @@ namespace mg5amcGpu //-------------------------------------------------------------------------- - void MatrixElementKernelDevice::computeMatrixElements() + void MatrixElementKernelDevice::computeMatrixElements( const unsigned int channelId ) { computeDependentCouplings<<>>( m_gs.data(), m_couplings.data() ); #ifndef MGONGPU_NSIGHT_DEBUG @@ -235,7 +233,7 @@ namespace mg5amcGpu constexpr unsigned int sharedMemSize = ntpbMAX * sizeof( float ); #endif #ifdef MGONGPU_SUPPORTS_MULTICHANNEL - sigmaKin<<>>( m_momenta.data(), m_couplings.data(), m_rndhel.data(), m_rndcol.data(), m_matrixElements.data(), m_chanIds.data(), m_numerators.data(), m_denominators.data(), m_selhel.data(), m_selcol.data() ); + sigmaKin<<>>( m_momenta.data(), m_couplings.data(), m_rndhel.data(), m_rndcol.data(), m_matrixElements.data(), channelId, m_numerators.data(), m_denominators.data(), m_selhel.data(), m_selcol.data() ); #else sigmaKin<<>>( m_momenta.data(), m_couplings.data(), m_rndhel.data(), m_rndcol.data(), m_matrixElements.data(), m_selhel.data(), m_selcol.data() ); #endif diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/MatrixElementKernels.h b/epochX/cudacpp/gg_tt.mad/SubProcesses/MatrixElementKernels.h index 859c902484..23e84757a2 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/MatrixElementKernels.h +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/MatrixElementKernels.h @@ -28,7 +28,6 @@ namespace mg5amcCpu const BufferGs& gs, // input: gs for alphaS const BufferRndNumHelicity& rndhel, // input: random numbers for helicity selection const BufferRndNumColor& rndcol, // input: random numbers for color selection - const BufferChannelIds& chanIds, // input: channel Ids BufferMatrixElements& matrixElements, // output: matrix elements BufferSelectedHelicity& selhel, // output: helicity selection BufferSelectedColor& selcol ) // output: color selection @@ -36,7 +35,6 @@ namespace mg5amcCpu , m_gs( gs ) , m_rndhel( rndhel ) , m_rndcol( rndcol ) - , m_chanIds( chanIds ) , m_matrixElements( matrixElements ) , m_selhel( selhel ) , m_selcol( selcol ) @@ -52,7 +50,7 @@ namespace mg5amcCpu virtual int computeGoodHelicities() = 0; // Compute matrix elements - virtual void computeMatrixElements() = 0; + virtual void computeMatrixElements( const unsigned int channelId ) = 0; // Is this a host or device kernel? virtual bool isOnDevice() const = 0; @@ -71,9 +69,6 @@ namespace mg5amcCpu // The buffer for the random numbers for color selection const BufferRndNumColor& m_rndcol; - // The buffer for the channel Ids for each ME - const BufferChannelIds& m_chanIds; - // The buffer for the output matrix elements BufferMatrixElements& m_matrixElements; @@ -97,7 +92,6 @@ namespace mg5amcCpu const BufferGs& gs, // input: gs for alphaS const BufferRndNumHelicity& rndhel, // input: random numbers for helicity selection const BufferRndNumColor& rndcol, // input: random numbers for color selection - const BufferChannelIds& chanIds, // input: channel Ids BufferMatrixElements& matrixElements, // output: matrix elements BufferSelectedHelicity& selhel, // output: helicity selection BufferSelectedColor& selcol, // output: color selection @@ -110,7 +104,7 @@ namespace mg5amcCpu int computeGoodHelicities() override final; // Compute matrix elements - void computeMatrixElements() override final; + void computeMatrixElements( const unsigned int channelId ) override final; // Is this a host or device kernel? bool isOnDevice() const override final { return false; } @@ -147,7 +141,6 @@ namespace mg5amcCpu const BufferGs& gs, // input: gs for alphaS const BufferRndNumHelicity& rndhel, // input: random numbers for helicity selection const BufferRndNumColor& rndcol, // input: random numbers for color selection - const BufferChannelIds& chanIds, // input: channel Ids BufferMatrixElements& matrixElements, // output: matrix elements BufferSelectedHelicity& selhel, // output: helicity selection BufferSelectedColor& selcol, // output: color selection @@ -164,7 +157,7 @@ namespace mg5amcCpu int computeGoodHelicities() override final; // Compute matrix elements - void computeMatrixElements() override final; + void computeMatrixElements( const unsigned int channelId ) override final; // Is this a host or device kernel? bool isOnDevice() const override final { return true; } diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryBuffers.h b/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryBuffers.h index 09439c2161..3093e6ed18 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryBuffers.h +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryBuffers.h @@ -451,24 +451,6 @@ namespace mg5amcCpu //-------------------------------------------------------------------------- - // A base class encapsulating a memory buffer for color random numbers - typedef BufferBase BufferChannelIds; - - // The size (number of elements) per event in a memory buffer for color random numbers - constexpr size_t sizePerEventChannelId = 1; - -#ifndef __CUDACC__ - // A class encapsulating a C++ host buffer for color random numbers - typedef HostBuffer HostBufferChannelIds; -#else - // A class encapsulating a CUDA pinned host buffer for color random numbers - typedef PinnedHostBuffer PinnedHostBufferChannelIds; - // A class encapsulating a CUDA device buffer for color random numbers - typedef DeviceBuffer DeviceBufferChannelIds; -#endif - - //-------------------------------------------------------------------------- - // A base class encapsulating a memory buffer for helicity selection typedef BufferBase BufferSelectedHelicity; diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/CPPProcess.cc b/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/CPPProcess.cc index af529d933d..d2e7a3c91d 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/CPPProcess.cc +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/CPPProcess.cc @@ -113,13 +113,13 @@ namespace mg5amcCpu const fptype* allcouplings, // input: couplings[nevt*ndcoup*2] fptype* allMEs, // output: allMEs[nevt], |M|^2 running_sum_over_helicities #ifdef MGONGPU_SUPPORTS_MULTICHANNEL - const unsigned int* channelIds, // input: multichannel channel id (1 to #diagrams); 0 to disable channel enhancement - fptype* allNumerators, // output: multichannel numerators[nevt], running_sum_over_helicities - fptype* allDenominators, // output: multichannel denominators[nevt], running_sum_over_helicities + const unsigned int channelId, // input: multichannel channel id (1 to #diagrams); 0 to disable channel enhancement + fptype* allNumerators, // output: multichannel numerators[nevt], running_sum_over_helicities + fptype* allDenominators, // output: multichannel denominators[nevt], running_sum_over_helicities #endif - fptype_sv* jamp2_sv // output: jamp2[nParity][ncolor][neppV] for color choice (nullptr if disabled) + fptype_sv* jamp2_sv // output: jamp2[nParity][ncolor][neppV] for color choice (nullptr if disabled) #ifndef __CUDACC__ - , const int ievt00 // input: first event number in current C++ event page (for CUDA, ievt depends on threadid) + , const int ievt00 // input: first event number in current C++ event page (for CUDA, ievt depends on threadid) #endif ) //ALWAYS_INLINE // attributes are not permitted in a function definition @@ -250,7 +250,7 @@ namespace mg5amcCpu // Amplitude(s) for diagram number 1 FFV1_0( w_fp[3], w_fp[2], w_fp[4], COUPs[1], 1.0, &_fp[0] ); -#ifdef MGONGPU_SUPPORTS_MULTICHANNEL2 // SR-FIXME +#ifdef MGONGPU_SUPPORTS_MULTICHANNEL if( channelId == 1 ) numerators_sv += cxabs2( amp_sv[0] ); if( channelId != 0 ) denominators_sv += cxabs2( amp_sv[0] ); #endif @@ -264,7 +264,7 @@ namespace mg5amcCpu // Amplitude(s) for diagram number 2 FFV1_0( w_fp[3], w_fp[4], w_fp[1], COUPs[1], 1.0, &_fp[0] ); -#ifdef MGONGPU_SUPPORTS_MULTICHANNEL2 // SR-FIXME +#ifdef MGONGPU_SUPPORTS_MULTICHANNEL if( channelId == 2 ) numerators_sv += cxabs2( amp_sv[0] ); if( channelId != 0 ) denominators_sv += cxabs2( amp_sv[0] ); #endif @@ -277,7 +277,7 @@ namespace mg5amcCpu // Amplitude(s) for diagram number 3 FFV1_0( w_fp[4], w_fp[2], w_fp[1], COUPs[1], 1.0, &_fp[0] ); -#ifdef MGONGPU_SUPPORTS_MULTICHANNEL2 // SR-FIXME +#ifdef MGONGPU_SUPPORTS_MULTICHANNEL if( channelId == 3 ) numerators_sv += cxabs2( amp_sv[0] ); if( channelId != 0 ) denominators_sv += cxabs2( amp_sv[0] ); #endif @@ -655,7 +655,7 @@ namespace mg5amcCpu constexpr fptype_sv* jamp2_sv = nullptr; // no need for color selection during helicity filtering #ifdef MGONGPU_SUPPORTS_MULTICHANNEL constexpr unsigned int channelId = 0; // disable single-diagram channel enhancement - calculate_wavefunctions( ihel, allmomenta, allcouplings, allMEs, &channelId, allNumerators, allDenominators, jamp2_sv ); + calculate_wavefunctions( ihel, allmomenta, allcouplings, allMEs, channelId, allNumerators, allDenominators, jamp2_sv ); #else calculate_wavefunctions( ihel, allmomenta, allcouplings, allMEs, jamp2_sv ); #endif @@ -719,7 +719,7 @@ namespace mg5amcCpu //std::cout << "sigmaKin_getGoodHel ihel=" << ihel << ( isGoodHel[ihel] ? " true" : " false" ) << std::endl; #ifdef MGONGPU_SUPPORTS_MULTICHANNEL constexpr unsigned int channelId = 0; // disable single-diagram channel enhancement - calculate_wavefunctions( ihel, allmomenta, allcouplings, allMEs, &channelId, allNumerators, allDenominators, jamp2_sv, ievt00 ); + calculate_wavefunctions( ihel, allmomenta, allcouplings, allMEs, channelId, allNumerators, allDenominators, jamp2_sv, ievt00 ); #else calculate_wavefunctions( ihel, allmomenta, allcouplings, allMEs, jamp2_sv, ievt00 ); #endif @@ -775,20 +775,20 @@ namespace mg5amcCpu // Evaluate |M|^2, part independent of incoming flavour __global__ void /* clang-format off */ - sigmaKin( const fptype* allmomenta, // input: momenta[nevt*npar*4] - const fptype* allcouplings, // input: couplings[nevt*ndcoup*2] - const fptype* allrndhel, // input: random numbers[nevt] for helicity selection - const fptype* allrndcol, // input: random numbers[nevt] for color selection - fptype* allMEs, // output: allMEs[nevt], |M|^2 final_avg_over_helicities + sigmaKin( const fptype* allmomenta, // input: momenta[nevt*npar*4] + const fptype* allcouplings, // input: couplings[nevt*ndcoup*2] + const fptype* allrndhel, // input: random numbers[nevt] for helicity selection + const fptype* allrndcol, // input: random numbers[nevt] for color selection + fptype* allMEs, // output: allMEs[nevt], |M|^2 final_avg_over_helicities #ifdef MGONGPU_SUPPORTS_MULTICHANNEL - const unsigned int* channelIds, // input: multichannel channel id (1 to #diagrams); 0 to disable channel enhancement - fptype* allNumerators, // output: multichannel numerators[nevt], running_sum_over_helicities - fptype* allDenominators, // output: multichannel denominators[nevt], running_sum_over_helicities + const unsigned int channelId, // input: multichannel channel id (1 to #diagrams); 0 to disable channel enhancement + fptype* allNumerators, // output: multichannel numerators[nevt], running_sum_over_helicities + fptype* allDenominators, // output: multichannel denominators[nevt], running_sum_over_helicities #endif - int* allselhel, // output: helicity selection[nevt] - int* allselcol // output: helicity selection[nevt] + int* allselhel, // output: helicity selection[nevt] + int* allselcol // output: helicity selection[nevt] #ifndef __CUDACC__ - , const int nevt // input: #events (for cuda: nevt == ndim == gpublocks*gputhreads) + , const int nevt // input: #events (for cuda: nevt == ndim == gpublocks*gputhreads) #endif ) /* clang-format on */ { @@ -862,7 +862,7 @@ namespace mg5amcCpu { const int ihel = cGoodHel[ighel]; #ifdef MGONGPU_SUPPORTS_MULTICHANNEL - calculate_wavefunctions( ihel, allmomenta, allcouplings, allMEs, channelIds, allNumerators, allDenominators, jamp2_sv ); + calculate_wavefunctions( ihel, allmomenta, allcouplings, allMEs, channelId, allNumerators, allDenominators, jamp2_sv ); #else calculate_wavefunctions( ihel, allmomenta, allcouplings, allMEs, jamp2_sv ); #endif @@ -880,7 +880,7 @@ namespace mg5amcCpu break; } } -#ifdef MGONGPU_SUPPORTS_MULTICHANNEL2 // SR-FIXME +#ifdef MGONGPU_SUPPORTS_MULTICHANNEL // Event-by-event random choice of color #402 const int channelIdC = channelId - 1; // coloramps.h uses the C array indexing starting at 0 fptype targetamp[ncolor] = { 0 }; @@ -924,7 +924,7 @@ namespace mg5amcCpu // - firstprivate: give each thread its own copy, and initialise with value from outside #define _OMPLIST0 allcouplings, allMEs, allmomenta, allrndcol, allrndhel, allselcol, allselhel, cGoodHel, cNGoodHel, npagV2 #ifdef MGONGPU_SUPPORTS_MULTICHANNEL -#define _OMPLIST1 , allDenominators, allNumerators, channelIds, mgOnGpu::icolamp +#define _OMPLIST1 , allDenominators, allNumerators, channelId, mgOnGpu::icolamp #else #define _OMPLIST1 #endif @@ -948,7 +948,7 @@ namespace mg5amcCpu { const int ihel = cGoodHel[ighel]; #ifdef MGONGPU_SUPPORTS_MULTICHANNEL - calculate_wavefunctions( ihel, allmomenta, allcouplings, allMEs, channelIds, allNumerators, allDenominators, jamp2_sv, ievt00 ); + calculate_wavefunctions( ihel, allmomenta, allcouplings, allMEs, channelId, allNumerators, allDenominators, jamp2_sv, ievt00 ); #else calculate_wavefunctions( ihel, allmomenta, allcouplings, allMEs, jamp2_sv, ievt00 ); #endif @@ -992,7 +992,7 @@ namespace mg5amcCpu } #endif } -#ifdef MGONGPU_SUPPORTS_MULTICHANNEL2 // SR-FIXME // multichannel enabled (random color choice) +#ifdef MGONGPU_SUPPORTS_MULTICHANNEL // multichannel enabled (random color choice) const int channelIdC = channelId - 1; // coloramps.h uses the C array indexing starting at 0 // Event-by-event random choice of color #402 fptype_sv targetamp[ncolor] = { 0 }; @@ -1057,7 +1057,7 @@ namespace mg5amcCpu // https://www.uzh.ch/cmsssl/physik/dam/jcr:2e24b7b1-f4d7-4160-817e-47b13dbf1d7c/Handout_4_2016-UZH.pdf] #ifdef __CUDACC__ allMEs[ievt] /= helcolDenominators[0]; -#ifdef MGONGPU_SUPPORTS_MULTICHANNEL2 // SR-FIXME +#ifdef MGONGPU_SUPPORTS_MULTICHANNEL if( channelId > 0 ) allMEs[ievt] *= allNumerators[ievt] / allDenominators[ievt]; #endif #else @@ -1067,7 +1067,7 @@ namespace mg5amcCpu fptype* MEs = E_ACCESS::ieventAccessRecord( allMEs, ievt0 ); fptype_sv& MEs_sv = E_ACCESS::kernelAccess( MEs ); MEs_sv /= helcolDenominators[0]; -#ifdef MGONGPU_SUPPORTS_MULTICHANNEL2 // SR-FIXME +#ifdef MGONGPU_SUPPORTS_MULTICHANNEL if( channelId > 0 ) { fptype* numerators = NUM_ACCESS::ieventAccessRecord( allNumerators, ievt0 ); diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/CPPProcess.h b/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/CPPProcess.h index c3a4f13d96..3ebd92c038 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/CPPProcess.h +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/CPPProcess.h @@ -152,34 +152,34 @@ namespace mg5amcCpu #ifdef __CUDACC__ /* clang-format off */ __global__ void - sigmaKin( const fptype* allmomenta, // input: momenta[nevt*npar*4] - const fptype* allcouplings, // input: couplings[nevt*ndcoup*2] - const fptype* allrndhel, // input: random numbers[nevt] for helicity selection - const fptype* allrndcol, // input: random numbers[nevt] for color selection - fptype* allMEs, // output: allMEs[nevt], |M|^2 final_avg_over_helicities + sigmaKin( const fptype* allmomenta, // input: momenta[nevt*npar*4] + const fptype* allcouplings, // input: couplings[nevt*ndcoup*2] + const fptype* allrndhel, // input: random numbers[nevt] for helicity selection + const fptype* allrndcol, // input: random numbers[nevt] for color selection + fptype* allMEs, // output: allMEs[nevt], |M|^2 final_avg_over_helicities #ifdef MGONGPU_SUPPORTS_MULTICHANNEL - const unsigned int* channelIds, // input: multichannel channel id (1 to #diagrams); 0 to disable channel enhancement - fptype* allNumerators, // output: multichannel numerators[nevt], running_sum_over_helicities - fptype* allDenominators, // output: multichannel denominators[nevt], running_sum_over_helicities + const unsigned int channelId, // input: multichannel channel id (1 to #diagrams); 0 to disable channel enhancement + fptype* allNumerators, // output: multichannel numerators[nevt], running_sum_over_helicities + fptype* allDenominators, // output: multichannel denominators[nevt], running_sum_over_helicities #endif - int* allselhel, // output: helicity selection[nevt] - int* allselcol // output: helicity selection[nevt] + int* allselhel, // output: helicity selection[nevt] + int* allselcol // output: helicity selection[nevt] ); #else __global__ void - sigmaKin( const fptype* allmomenta, // input: momenta[nevt*npar*4] - const fptype* allcouplings, // input: couplings[nevt*ndcoup*2] - const fptype* allrndhel, // input: random numbers[nevt] for helicity selection - const fptype* allrndcol, // input: random numbers[nevt] for color selection - fptype* allMEs, // output: allMEs[nevt], |M|^2 final_avg_over_helicities + sigmaKin( const fptype* allmomenta, // input: momenta[nevt*npar*4] + const fptype* allcouplings, // input: couplings[nevt*ndcoup*2] + const fptype* allrndhel, // input: random numbers[nevt] for helicity selection + const fptype* allrndcol, // input: random numbers[nevt] for color selection + fptype* allMEs, // output: allMEs[nevt], |M|^2 final_avg_over_helicities #ifdef MGONGPU_SUPPORTS_MULTICHANNEL - const unsigned int* channelIds, // input: multichannel channel id (1 to #diagrams); 0 to disable channel enhancement - fptype* allNumerators, // output: multichannel numerators[nevt], running_sum_over_helicities - fptype* allDenominators, // output: multichannel denominators[nevt], running_sum_over_helicities + const unsigned int channelId, // input: multichannel channel id (1 to #diagrams); 0 to disable channel enhancement + fptype* allNumerators, // output: multichannel numerators[nevt], running_sum_over_helicities + fptype* allDenominators, // output: multichannel denominators[nevt], running_sum_over_helicities #endif - int* allselhel, // output: helicity selection[nevt] - int* allselcol, // output: helicity selection[nevt] - const int nevt ); // input: #events (for cuda: nevt == ndim == gpublocks*gputhreads) + int* allselhel, // output: helicity selection[nevt] + int* allselcol, // output: helicity selection[nevt] + const int nevt ); // input: #events (for cuda: nevt == ndim == gpublocks*gputhreads) #endif /* clang-format on */ //-------------------------------------------------------------------------- diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/auto_dsig.f b/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/auto_dsig.f index d80d770784..9a3e828a4b 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/auto_dsig.f +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/auto_dsig.f @@ -118,8 +118,7 @@ SUBROUTINE PREPARE_GROUPING_CHOICE(PP, WGT, INIT) ENDIF END - SUBROUTINE SELECT_GROUPING(IMIRROR, IPROC, ICONF, WGT, - $ VECSIZE_USED) + SUBROUTINE SELECT_GROUPING(IMIRROR, IPROC, ICONF, WGT, IWRAP) USE DISCRETESAMPLER IMPLICIT NONE C @@ -135,7 +134,8 @@ SUBROUTINE SELECT_GROUPING(IMIRROR, IPROC, ICONF, WGT, C C iconf, iproc, imirror C - INTEGER VECSIZE_USED + INTEGER IWRAP + INTEGER IVEC DOUBLE PRECISION WGT(*) INTEGER IMIRROR, IPROC, ICONF @@ -210,16 +210,18 @@ SUBROUTINE SELECT_GROUPING(IMIRROR, IPROC, ICONF, WGT, 50 CONTINUE C Update weigth w.r.t SELPROC normalized to selection probability - DO I=1, VECSIZE_USED - WGT(I)=WGT(I)*(SUMPROB/SELPROC(IMIRROR,IPROC,ICONF)) + DO I=1, WRAP_SIZE + IVEC = (IWRAP -1) *WRAP_SIZE + I + WGT(IVEC)=WGT(IVEC)*(SUMPROB/SELPROC(IMIRROR,IPROC,ICONF)) ENDDO ELSE C We are using the grouped_processes grid and it is initialized. CALL DS_GET_POINT('grouped_processes',R,LMAPPED $ ,MC_GROUPED_PROC_JACOBIAN,'norm',(/'PDF_convolution'/)) - DO I=1, VECSIZE_USED - WGT(I)=WGT(I)*MC_GROUPED_PROC_JACOBIAN + DO I=1, WRAP_SIZE + IVEC = (IWRAP -1) *WRAP_SIZE + I + WGT(IVEC)=WGT(IVEC)*MC_GROUPED_PROC_JACOBIAN ENDDO CALL MAP_1_TO_3(LMAPPED,MAXSPROC,2,ICONF,IPROC,IMIRROR) ENDIF @@ -227,7 +229,7 @@ SUBROUTINE SELECT_GROUPING(IMIRROR, IPROC, ICONF, WGT, END SUBROUTINE DSIG_VEC(ALL_P,ALL_WGT,ALL_XBK,ALL_Q2FACT,ALL_CM_RAP - $ ,ICONF,IPROC,IMIRROR,ALL_OUT,VECSIZE_USED) + $ ,ICONF_VEC,IPROC,IMIRROR_VEC,ALL_OUT,VECSIZE_USED) C ****************************************************** C C INPUT: ALL_PP(0:3, NEXTERNAL, VECSIZE_USED) @@ -240,13 +242,14 @@ SUBROUTINE DSIG_VEC(ALL_P,ALL_WGT,ALL_XBK,ALL_Q2FACT,ALL_CM_RAP IMPLICIT NONE INTEGER VECSIZE_USED + INCLUDE 'vector.inc' INCLUDE 'genps.inc' DOUBLE PRECISION ALL_P(4*MAXDIM/3+14,*) DOUBLE PRECISION ALL_WGT(*) DOUBLE PRECISION ALL_XBK(2,*) DOUBLE PRECISION ALL_Q2FACT(2,*) DOUBLE PRECISION ALL_CM_RAP(*) - INTEGER ICONF, IPROC, IMIRROR + INTEGER ICONF_VEC(NB_WRAP), IPROC, IMIRROR_VEC(NB_WRAP) DOUBLE PRECISION ALL_OUT(*) INCLUDE 'maxconfigs.inc' INCLUDE 'maxamps.inc' @@ -284,7 +287,7 @@ SUBROUTINE DSIG_VEC(ALL_P,ALL_WGT,ALL_XBK,ALL_Q2FACT,ALL_CM_RAP LOGICAL CUTSDONE,CUTSPASSED COMMON/TO_CUTSDONE/CUTSDONE,CUTSPASSED - INTEGER I + INTEGER I, CURR_WRAP INTEGER GROUPED_MC_GRID_STATUS INTEGER LPP(2) @@ -303,12 +306,12 @@ SUBROUTINE DSIG_VEC(ALL_P,ALL_WGT,ALL_XBK,ALL_Q2FACT,ALL_CM_RAP GROUPED_MC_GRID_STATUS = DS_GET_DIM_STATUS('grouped_processes') - IMIRROR_GLOBAL = IMIRROR + IMIRROR_GLOBAL = IMIRROR_VEC(1) IPROC_GLOBAL = IPROC - ICONFIG=SYMCONF(ICONF) - DO I=1,MAXSPROC - SUBDIAG(I) = CONFSUB(I,SYMCONF(ICONF)) - ENDDO +C ICONFIG=SYMCONF(ICONF_VEC(1)) +C DO I=1,MAXSPROC +C SUBDIAG(I) = CONFSUB(I,SYMCONF(ICONF_VEC(1))) +C ENDDO C set the running scale C and update the couplings accordingly @@ -323,8 +326,9 @@ SUBROUTINE DSIG_VEC(ALL_P,ALL_WGT,ALL_XBK,ALL_Q2FACT,ALL_CM_RAP ALLOW_HELICITY_GRID_ENTRIES = .FALSE. ENDIF - CALL DSIGPROC_VEC(ALL_P,ALL_XBK,ALL_Q2FACT,ALL_CM_RAP,ICONF - $ ,IPROC,IMIRROR,SYMCONF,CONFSUB,ALL_WGT,0,ALL_OUT,VECSIZE_USED) + CALL DSIGPROC_VEC(ALL_P,ALL_XBK,ALL_Q2FACT,ALL_CM_RAP,ICONF_VEC + $ ,IPROC,IMIRROR_VEC,SYMCONF,CONFSUB,ALL_WGT,0,ALL_OUT + $ ,VECSIZE_USED) DO I =1,VECSIZE_USED @@ -344,13 +348,19 @@ SUBROUTINE DSIG_VEC(ALL_P,ALL_WGT,ALL_XBK,ALL_Q2FACT,ALL_CM_RAP C ENDIF ENDDO - DO I=1, VECSIZE_USED - IF(ALL_OUT(I).GT.0D0)THEN -C Update summed weight and number of events - SUMWGT(IMIRROR,IPROC,ICONF)=SUMWGT(IMIRROR,IPROC,ICONF) - $ +DABS(ALL_OUT(I)*ALL_WGT(I)) - NUMEVTS(IMIRROR,IPROC,ICONF)=NUMEVTS(IMIRROR,IPROC,ICONF)+1 - ENDIF + + DO CURR_WRAP=1, NB_WRAP + DO I=(CURR_WRAP-1)*WRAP_SIZE+1,CURR_WRAP*WRAP_SIZE + IF(ALL_OUT(I).GT.0D0)THEN +C Update summed weight and number of events + SUMWGT(IMIRROR_VEC(CURR_WRAP),IPROC,ICONF_VEC(CURR_WRAP)) + $ =SUMWGT(IMIRROR_VEC(CURR_WRAP),IPROC,ICONF_VEC(CURR_WRAP)) + $ +DABS(ALL_OUT(I)*ALL_WGT(I)) + NUMEVTS(IMIRROR_VEC(CURR_WRAP),IPROC,ICONF_VEC(CURR_WRAP)) + $ =NUMEVTS(IMIRROR_VEC(CURR_WRAP),IPROC,ICONF_VEC(CURR_WRAP) + $ )+1 + ENDIF + ENDDO ENDDO RETURN @@ -906,8 +916,8 @@ FUNCTION DSIGPROC(PP,ICONF,IPROC,IMIRROR,SYMCONF,CONFSUB,WGT C ccccccccccccccccccccccccc SUBROUTINE DSIGPROC_VEC(ALL_P,ALL_XBK,ALL_Q2FACT,ALL_CM_RAP - $ ,ICONF,IPROC,IMIRROR,SYMCONF,CONFSUB,ALL_WGT,IMODE,ALL_OUT - $ ,VECSIZE_USED) + $ ,ICONF_VEC,IPROC,IMIRROR_VEC,SYMCONF,CONFSUB,ALL_WGT,IMODE + $ ,ALL_OUT,VECSIZE_USED) C **************************************************** C RETURNS DIFFERENTIAL CROSS SECTION C FOR A PROCESS @@ -925,7 +935,7 @@ SUBROUTINE DSIGPROC_VEC(ALL_P,ALL_XBK,ALL_Q2FACT,ALL_CM_RAP INCLUDE 'maxconfigs.inc' INCLUDE 'nexternal.inc' INCLUDE 'maxamps.inc' - INCLUDE 'vector.inc' ! defines VECSIZE_MEMMAX + INCLUDE 'vector.inc' ! defines VECSIZE_MEMMAX/WRAP_SIZE INCLUDE 'coupl.inc' ! needs VECSIZE_MEMMAX (defined in vector.inc) INCLUDE 'run.inc' C @@ -939,6 +949,8 @@ SUBROUTINE DSIGPROC_VEC(ALL_P,ALL_XBK,ALL_Q2FACT,ALL_CM_RAP DOUBLE PRECISION ALL_OUT(VECSIZE_MEMMAX) DOUBLE PRECISION DSIGPROC INTEGER ICONF,IPROC,IMIRROR,IMODE + INTEGER ICONF_VEC(NB_WRAP), IMIRROR_VEC(NB_WRAP) + INTEGER CURR_WRAP, IWRAP INTEGER SYMCONF(0:LMAXCONFIGS) INTEGER CONFSUB(MAXSPROC,LMAXCONFIGS) INTEGER VECSIZE_USED @@ -978,48 +990,63 @@ SUBROUTINE DSIGPROC_VEC(ALL_P,ALL_XBK,ALL_Q2FACT,ALL_CM_RAP INCLUDE 'symperms.inc' SAVE ALL_P1,JC - IF (LAST_ICONF.EQ.-1.OR.LAST_ICONF.NE.ICONF) THEN - ICONFIG=SYMCONF(ICONF) - DO I=1,MAXSPROC - SUBDIAG(I) = CONFSUB(I,SYMCONF(ICONF)) - ENDDO - -C Set momenta according to this permutation - DO IVEC=1, VECSIZE_USED - CALL SWITCHMOM(ALL_P(1,IVEC),ALL_P1(0,1,IVEC),PERMS(1 - $ ,MAPCONFIG(ICONFIG)),JC,NEXTERNAL) - - IF (LAST_ICONF.NE.-1) THEN - LAST_ICONF = ICONF - ENDIF - ENDDO + IF(LAST_ICONF.NE.-1) THEN + STOP 25 ENDIF + LAST_ICONF = 0 + IWRAP = 0 ! position within the current wrap + CURR_WRAP = 1 ! current_wrap used + DO IVEC=1, VECSIZE_USED + IWRAP = IWRAP + 1 + IF (IWRAP.EQ.1) THEN + IF (LAST_ICONF.EQ.-1.OR.LAST_ICONF.NE.ICONF_VEC(CURR_WRAP)) + $ THEN + ICONFIG=SYMCONF(ICONF_VEC(CURR_WRAP)) + DO I=1,MAXSPROC + SUBDIAG(I) = CONFSUB(I,SYMCONF(ICONF_VEC(CURR_WRAP))) + ENDDO + ENDIF +C ICONF = ICONF_VEC(CURR_WRAP) +C IMIRROR = IMIRROR_VEC(CURR_WRAP) + ENDIF +C Set momenta according to this permutation + CALL SWITCHMOM(ALL_P(1,IVEC),ALL_P1(0,1,IVEC),PERMS(1 + $ ,MAPCONFIG(ICONFIG)),JC,NEXTERNAL) + LAST_ICONF = ICONF_VEC(CURR_WRAP) + IF (IWRAP.EQ.WRAP_SIZE) THEN + CURR_WRAP = CURR_WRAP + 1 + IWRAP = 0 + ENDIF + ENDDO + LAST_ICONF=-1 - - IB(1)=1 - IB(2)=2 - - - IF(IMIRROR.EQ.2)THEN - DO IVEC=1,VECSIZE_USED + DO CURR_WRAP=1,NB_WRAP + IB(1)=0 ! This is set in auto_dsigX. set it to zero to create segfault if used at wrong time + IB(2)=0 ! Same + IMIRROR = IMIRROR_VEC(CURR_WRAP) + IF(IMIRROR.EQ.2)THEN C Flip momenta (rotate around x axis) - DO I=1,NEXTERNAL - ALL_P1(2,I, IVEC)=-ALL_P1(2,I,IVEC) - ALL_P1(3,I, IVEC)=-ALL_P1(3,I,IVEC) + DO IVEC = (CURR_WRAP-1)*WRAP_SIZE+1,CURR_WRAP*WRAP_SIZE + DO I=1,NEXTERNAL + ALL_P1(2,I, IVEC)=-ALL_P1(2,I,IVEC) + ALL_P1(3,I, IVEC)=-ALL_P1(3,I,IVEC) + ENDDO + XDUM=ALL_XBK(1, IVEC) + ALL_XBK(1, IVEC) = ALL_XBK(2, IVEC) + ALL_XBK(2, IVEC) = XDUM + ALL_CM_RAP(IVEC) = - ALL_CM_RAP(IVEC) + IB(1) = 0 + IB(2) = 0 +C Flip beam identity -> moved to auto_dsigX (since depend of +C the wrap) ENDDO - XDUM=ALL_XBK(1, IVEC) - ALL_XBK(1, IVEC) = ALL_XBK(2, IVEC) - ALL_XBK(2, IVEC) = XDUM - ALL_CM_RAP(IVEC) = - ALL_CM_RAP(IVEC) -C Flip beam identity - IB(1)=2 - IB(2)=1 - ENDDO - ENDIF + + ENDIF + ENDDO + ALL_OUT(:)=0D0 -C IF (PASSCUTS(P1)) THEN DO IVEC=1,VECSIZE_USED IF (IMODE.EQ.0D0.AND.NB_PASS_CUTS.LT.2**12.AND.ALL_WGT(IVEC) $ .NE.0D0)THEN @@ -1028,18 +1055,20 @@ SUBROUTINE DSIGPROC_VEC(ALL_P,ALL_XBK,ALL_Q2FACT,ALL_CM_RAP ENDDO IF(IPROC.EQ.1) CALL DSIG1_VEC(ALL_P1,ALL_XBK,ALL_Q2FACT - $ ,ALL_CM_RAP,ALL_WGT,IMODE,ALL_OUT,VECSIZE_USED) ! g g > t t~ -C ENDIF - - IF (LAST_ICONF.NE.-1.AND.IMIRROR.EQ.2) THEN -C Flip back local momenta P1 if cached - DO IVEC=1,VECSIZE_USED - DO I=1,NEXTERNAL - ALL_P1(2,I,IVEC)=-ALL_P1(2,I,IVEC) - ALL_P1(3,I,IVEC)=-ALL_P1(3,I,IVEC) + $ ,ALL_CM_RAP,ALL_WGT,IMODE,ALL_OUT,SYMCONF, CONFSUB,ICONF_VEC + $ ,IMIRROR_VEC,VECSIZE_USED) ! g g > t t~ + +C FLIPPING BACK IF NEEDED + DO CURR_WRAP=1,NB_WRAP + IF (IMIRROR_VEC(CURR_WRAP).EQ.2) THEN + DO IVEC = (CURR_WRAP-1)*WRAP_SIZE+1,CURR_WRAP*WRAP_SIZE + DO I=1,NEXTERNAL + ALL_P1(2,I,IVEC)=-ALL_P1(2,I,IVEC) + ALL_P1(3,I,IVEC)=-ALL_P1(3,I,IVEC) + ENDDO ENDDO - ENDDO - ENDIF + ENDIF + ENDDO RETURN diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/auto_dsig1.f b/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/auto_dsig1.f index f913411d4a..3b269852c9 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/auto_dsig1.f +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/auto_dsig1.f @@ -126,7 +126,7 @@ DOUBLE PRECISION FUNCTION DSIG1(PP,WGT,IMODE) IF (ABS(LPP(IB(1))).GE.1) THEN - !LP=SIGN(1,LPP(IB(1))) +C LP=SIGN(1,LPP(IB(1))) IF (DSQRT(Q2FACT(IB(1))).EQ.0D0) THEN QSCALE=0D0 DO I=3,NEXTERNAL @@ -140,7 +140,7 @@ DOUBLE PRECISION FUNCTION DSIG1(PP,WGT,IMODE) G1=PDG2PDF(LPP(IB(1)),0, IB(1),XBK(IB(1)), QSCALE) ENDIF IF (ABS(LPP(IB(2))).GE.1) THEN - !LP=SIGN(1,LPP(IB(2))) +C LP=SIGN(1,LPP(IB(2))) IF (DSQRT(Q2FACT(IB(2))).NE.0D0) THEN QSCALE=DSQRT(Q2FACT(IB(2))) ENDIF @@ -213,7 +213,8 @@ DOUBLE PRECISION FUNCTION DSIG1(PP,WGT,IMODE) DOUBLE PRECISION FUNCTION DSIG1_VEC(ALL_PP, ALL_XBK, ALL_Q2FACT, - $ ALL_CM_RAP, ALL_WGT, IMODE, ALL_OUT, VECSIZE_USED) + $ ALL_CM_RAP, ALL_WGT, IMODE, ALL_OUT, SYMCONF, CONFSUB, + $ ICONF_VEC, IMIRROR_VEC, VECSIZE_USED) C **************************************************** C C Generated by MadGraph5_aMC@NLO v. 3.5.2_lo_vect, 2023-11-08 @@ -256,15 +257,19 @@ DOUBLE PRECISION FUNCTION DSIG1_VEC(ALL_PP, ALL_XBK, ALL_Q2FACT, DOUBLE PRECISION ALL_CM_RAP(VECSIZE_MEMMAX) INTEGER IMODE DOUBLE PRECISION ALL_OUT(VECSIZE_MEMMAX) + INTEGER IMIRROR_VEC(*) + INTEGER ICONF_VEC(*) INTEGER VECSIZE_USED + INTEGER SYMCONF(0:LMAXCONFIGS) + INTEGER CONFSUB(MAXSPROC,LMAXCONFIGS) C ---------- C BEGIN CODE C ---------- C C LOCAL VARIABLES C - DOUBLE PRECISION QSCALE INTEGER I,ITYPE,LP,IPROC + DOUBLE PRECISION QSCALE DOUBLE PRECISION G1(VECSIZE_MEMMAX) DOUBLE PRECISION G2(VECSIZE_MEMMAX) DOUBLE PRECISION XPQ(-7:7),PD(0:MAXPROC) @@ -323,8 +328,8 @@ DOUBLE PRECISION FUNCTION DSIG1_VEC(ALL_PP, ALL_XBK, ALL_Q2FACT, C local C DOUBLE PRECISION P1(0:3, NEXTERNAL) - INTEGER IVEC - + INTEGER IVEC, CURR_WRAP, IWRAP + INTEGER CHANNELS(VECSIZE_MEMMAX) C C DATA C @@ -343,18 +348,28 @@ DOUBLE PRECISION FUNCTION DSIG1_VEC(ALL_PP, ALL_XBK, ALL_Q2FACT, IF(IMODE.NE.0.AND.IMODE.NE.4.AND.IMODE.NE.5) RETURN - DO IVEC=1,VECSIZE_USED - IF (ABS(LPP(IB(1))).GE.1) THEN - !LP=SIGN(1,LPP(IB(1))) - G1(IVEC)=PDG2PDF(LPP(IB(1)),0, IB(1),ALL_XBK(IB(1),IVEC) - $ ,DSQRT(ALL_Q2FACT(IB(1), IVEC))) - ENDIF - IF (ABS(LPP(IB(2))).GE.1) THEN - !LP=SIGN(1,LPP(IB(2))) - G2(IVEC)=PDG2PDF(LPP(IB(2)),0, IB(2),ALL_XBK(IB(2),IVEC) - $ ,DSQRT(ALL_Q2FACT(IB(2), IVEC))) + DO CURR_WRAP=1, NB_WRAP + IF(IMIRROR_VEC(CURR_WRAP).EQ.1)THEN + IB(1) = 1 + IB(2) = 2 + ELSE + IB(1) = 2 + IB(2) = 1 ENDIF - ENDDO + DO IWRAP=1, WRAP_SIZE + IVEC = (CURR_WRAP-1)*WRAP_SIZE+IWRAP + IF (ABS(LPP(IB(1))).GE.1) THEN +C LP=SIGN(1,LPP(IB(1))) + G1(IVEC)=PDG2PDF(LPP(IB(1)),0, IB(1),ALL_XBK(IB(1),IVEC) + $ ,DSQRT(ALL_Q2FACT(IB(1), IVEC))) + ENDIF + IF (ABS(LPP(IB(2))).GE.1) THEN +C LP=SIGN(1,LPP(IB(2))) + G2(IVEC)=PDG2PDF(LPP(IB(2)),0, IB(2),ALL_XBK(IB(2),IVEC) + $ ,DSQRT(ALL_Q2FACT(IB(2), IVEC))) + ENDIF + ENDDO ! IWRAP LOOP + ENDDO ! CURRWRAP LOOP ALL_PD(0,:) = 0D0 IPROC = 0 IPROC=IPROC+1 ! g g > t t~ @@ -370,34 +385,48 @@ DOUBLE PRECISION FUNCTION DSIG1_VEC(ALL_PP, ALL_XBK, ALL_Q2FACT, RETURN ENDIF - DO IVEC=1,VECSIZE_USED -C Do not need those three here do I? - XBK(:) = ALL_XBK(:,IVEC) -C CM_RAP = ALL_CM_RAP(IVEC) - Q2FACT(:) = ALL_Q2FACT(:, IVEC) + DO CURR_WRAP=1, NB_WRAP + IF(IMIRROR_VEC(CURR_WRAP).EQ.1)THEN + IB(1) = 1 + IB(2) = 2 + ELSE + IB(1) = 2 + IB(2) = 1 + ENDIF + DO IWRAP=1, WRAP_SIZE + IVEC = (CURR_WRAP-1)*WRAP_SIZE+IWRAP +C Do not need those three here. do I? + XBK(:) = ALL_XBK(:,IVEC) +C CM_RAP = ALL_CM_RAP(IVEC) + Q2FACT(:) = ALL_Q2FACT(:, IVEC) + + +C Select a flavor combination (need to do here for right sign) + CALL RANMAR(R) + IPSEL=0 + DO WHILE (R.GE.0D0 .AND. IPSEL.LT.IPROC) + IPSEL=IPSEL+1 + R=R-DABS(ALL_PD(IPSEL,IVEC))/ALL_PD(0,IVEC) + ENDDO -C Select a flavor combination (need to do here for right sign) - CALL RANMAR(R) - IPSEL=0 - DO WHILE (R.GE.0D0 .AND. IPSEL.LT.IPROC) - IPSEL=IPSEL+1 - R=R-DABS(ALL_PD(IPSEL,IVEC))/ALL_PD(0,IVEC) - ENDDO - CHANNEL = SUBDIAG(1) + CHANNELS(IVEC) = CONFSUB(1,SYMCONF(ICONF_VEC(CURR_WRAP))) + SUBDIAG(1) = CHANNELS(IVEC) ! only valid if a single process + CHANNEL = SUBDIAG(1) - ALL_RWGT(IVEC) = REWGT(ALL_PP(0,1,IVEC), IVEC) + ALL_RWGT(IVEC) = REWGT(ALL_PP(0,1,IVEC), IVEC) - IF(FRAME_ID.NE.6)THEN - CALL BOOST_TO_FRAME(ALL_PP(0,1,IVEC), FRAME_ID, P_MULTI(0,1 - $ ,IVEC)) - ELSE - P_MULTI(:,:,IVEC) = ALL_PP(:,:,IVEC) - ENDIF - CALL RANMAR(HEL_RAND(IVEC)) - CALL RANMAR(COL_RAND(IVEC)) - ENDDO - CALL SMATRIX1_MULTI(P_MULTI, HEL_RAND, COL_RAND, CHANNEL, + IF(FRAME_ID.NE.6)THEN + CALL BOOST_TO_FRAME(ALL_PP(0,1,IVEC), FRAME_ID, P_MULTI(0 + $ ,1,IVEC)) + ELSE + P_MULTI(:,:,IVEC) = ALL_PP(:,:,IVEC) + ENDIF + CALL RANMAR(HEL_RAND(IVEC)) + CALL RANMAR(COL_RAND(IVEC)) + ENDDO ! end loop on IWRAP/IVEC + ENDDO ! end loop on the CURR_WRAP + CALL SMATRIX1_MULTI(P_MULTI, HEL_RAND, COL_RAND, CHANNELS, $ ALL_OUT , SELECTED_HEL, SELECTED_COL, VECSIZE_USED) @@ -464,7 +493,7 @@ SUBROUTINE PRINT_ZERO_AMP1() END - SUBROUTINE SMATRIX1_MULTI(P_MULTI, HEL_RAND, COL_RAND, CHANNEL, + SUBROUTINE SMATRIX1_MULTI(P_MULTI, HEL_RAND, COL_RAND, CHANNELS, $ OUT, SELECTED_HEL, SELECTED_COL, VECSIZE_USED) USE OMP_LIB IMPLICIT NONE @@ -477,148 +506,32 @@ SUBROUTINE SMATRIX1_MULTI(P_MULTI, HEL_RAND, COL_RAND, CHANNEL, DOUBLE PRECISION P_MULTI(0:3, NEXTERNAL, VECSIZE_MEMMAX) DOUBLE PRECISION HEL_RAND(VECSIZE_MEMMAX) DOUBLE PRECISION COL_RAND(VECSIZE_MEMMAX) - INTEGER CHANNEL + INTEGER CHANNELS(VECSIZE_MEMMAX) DOUBLE PRECISION OUT(VECSIZE_MEMMAX) INTEGER SELECTED_HEL(VECSIZE_MEMMAX) INTEGER SELECTED_COL(VECSIZE_MEMMAX) INTEGER VECSIZE_USED INTEGER IVEC - INTEGER IEXT - - INTEGER ISUM_HEL - LOGICAL MULTI_CHANNEL - COMMON/TO_MATRIX/ISUM_HEL, MULTI_CHANNEL - - LOGICAL FIRST_CHID - SAVE FIRST_CHID - DATA FIRST_CHID/.TRUE./ - -#ifdef MG5AMC_MEEXPORTER_CUDACPP - INCLUDE 'coupl.inc' ! for ALL_G - INCLUDE 'fbridge.inc' - INCLUDE 'fbridge_common.inc' - INCLUDE 'genps.inc' - INCLUDE 'run.inc' - DOUBLE PRECISION OUT2(VECSIZE_MEMMAX) - INTEGER SELECTED_HEL2(VECSIZE_MEMMAX) - INTEGER SELECTED_COL2(VECSIZE_MEMMAX) - DOUBLE PRECISION CBYF1 - INTEGER*4 NGOODHEL, NTOTHEL - - INTEGER*4 NWARNINGS - SAVE NWARNINGS - DATA NWARNINGS/0/ - - LOGICAL FIRST - SAVE FIRST - DATA FIRST/.TRUE./ - - IF( FBRIDGE_MODE .LE. 0 ) THEN ! (FortranOnly=0 or BothQuiet=-1 or BothDebug=-2) -#endif - call counters_smatrix1multi_start( -1, VECSIZE_USED ) ! fortran=-1 -!$OMP PARALLEL -!$OMP DO - DO IVEC=1, VECSIZE_USED - CALL SMATRIX1(P_MULTI(0,1,IVEC), - & hel_rand(IVEC), - & col_rand(IVEC), - & channel, - & IVEC, - & out(IVEC), - & selected_hel(IVEC), - & selected_col(IVEC) - & ) - ENDDO -!$OMP END DO -!$OMP END PARALLEL - call counters_smatrix1multi_stop( -1 ) ! fortran=-1 -#ifdef MG5AMC_MEEXPORTER_CUDACPP - ENDIF - IF( FBRIDGE_MODE .EQ. 1 .OR. FBRIDGE_MODE .LT. 0 ) THEN ! (CppOnly=1 or BothQuiet=-1 or BothDebug=-2) - IF( LIMHEL.NE.0 ) THEN - WRITE(6,*) 'ERROR! The cudacpp bridge only supports LIMHEL=0' - STOP - ENDIF - IF ( FIRST ) THEN ! exclude first pass (helicity filtering) from timers (#461) -C SR-FIXME CHANNELS needs to become 0 again - CALL FBRIDGESEQUENCE(FBRIDGE_PBRIDGE, P_MULTI, ALL_G, - & HEL_RAND, COL_RAND, CHANNELS, OUT2, - & SELECTED_HEL2, SELECTED_COL2 ) ! 0: multi channel disabled for helicity filtering - FIRST = .FALSE. -c ! This is a workaround for https://github.com/oliviermattelaer/mg5amc_test/issues/22 (see PR #486) - IF( FBRIDGE_MODE .EQ. 1 ) THEN ! (CppOnly=1 : SMATRIX1 is not called at all) - CALL RESET_CUMULATIVE_VARIABLE() ! mimic 'avoid bias of the initialization' within SMATRIX1 - ENDIF - CALL FBRIDGEGETNGOODHEL(FBRIDGE_PBRIDGE,NGOODHEL,NTOTHEL) - IF( NTOTHEL .NE. NCOMB ) THEN - WRITE(6,*) 'ERROR! Cudacpp/Fortran mismatch', - & ' in total number of helicities', NTOTHEL, NCOMB - STOP - ENDIF - WRITE (6,*) 'NGOODHEL =', NGOODHEL - WRITE (6,*) 'NCOMB =', NCOMB - ENDIF - call counters_smatrix1multi_start( 0, VECSIZE_USED ) ! cudacpp=0 - IF ( .NOT. MULTI_CHANNEL ) THEN -C SR-FIXME CHANNELS needs to become 0 again - CALL FBRIDGESEQUENCE(FBRIDGE_PBRIDGE, P_MULTI, ALL_G, - & HEL_RAND, COL_RAND, CHANNELS, OUT2, - & SELECTED_HEL2, SELECTED_COL2 ) ! 0: multi channel disabled - ELSE - IF( SDE_STRAT.NE.1 ) THEN - WRITE(6,*) 'ERROR! The cudacpp bridge requires SDE=1' ! multi channel single-diagram enhancement strategy - STOP - ENDIF - CALL FBRIDGESEQUENCE(FBRIDGE_PBRIDGE, P_MULTI, ALL_G, - & HEL_RAND, COL_RAND, CHANNELS, OUT2, - & SELECTED_HEL2, SELECTED_COL2 ) ! 1-N: multi channel enabled - ENDIF - call counters_smatrix1multi_stop( 0 ) ! cudacpp=0 - ENDIF - IF( FBRIDGE_MODE .LT. 0 ) THEN ! (BothQuiet=-1 or BothDebug=-2) - DO IVEC=1, VECSIZE_USED - CBYF1 = OUT2(IVEC)/OUT(IVEC) - 1 - FBRIDGE_NCBYF1 = FBRIDGE_NCBYF1 + 1 - FBRIDGE_CBYF1SUM = FBRIDGE_CBYF1SUM + CBYF1 - FBRIDGE_CBYF1SUM2 = FBRIDGE_CBYF1SUM2 + CBYF1 * CBYF1 - IF( CBYF1 .GT. FBRIDGE_CBYF1MAX ) FBRIDGE_CBYF1MAX = CBYF1 - IF( CBYF1 .LT. FBRIDGE_CBYF1MIN ) FBRIDGE_CBYF1MIN = CBYF1 - IF( FBRIDGE_MODE .EQ. -2 ) THEN ! (BothDebug=-2) - WRITE (*,'(I4,2E16.8,F23.11,I3,I3,I4,I4)') - & IVEC, OUT(IVEC), OUT2(IVEC), 1+CBYF1, - & SELECTED_HEL(IVEC), SELECTED_HEL2(IVEC), - & SELECTED_COL(IVEC), SELECTED_COL2(IVEC) - ENDIF - IF( ABS(CBYF1).GT.5E-5 .AND. NWARNINGS.LT.20 ) THEN - NWARNINGS = NWARNINGS + 1 - WRITE (*,'(A,I4,A,I4,2E16.8,F23.11)') - & 'WARNING! (', NWARNINGS, '/20) Deviation more than 5E-5', - & IVEC, OUT(IVEC), OUT2(IVEC), 1+CBYF1 - ENDIF - END DO - ENDIF - IF( FBRIDGE_MODE .EQ. 1 .OR. FBRIDGE_MODE .LT. 0 ) THEN ! (CppOnly=1 or BothQuiet=-1 or BothDebug=-2) - DO IVEC=1, VECSIZE_USED - OUT(IVEC) = OUT2(IVEC) ! use the cudacpp ME instead of the fortran ME! - SELECTED_HEL(IVEC) = SELECTED_HEL2(IVEC) ! use the cudacpp helicity instead of the fortran helicity! - SELECTED_COL(IVEC) = SELECTED_COL2(IVEC) ! use the cudacpp color instead of the fortran color! - END DO - ENDIF -#endif - IF ( FIRST_CHID ) THEN - IF ( MULTI_CHANNEL ) THEN - WRITE (*,*) 'MULTI_CHANNEL = TRUE' - ELSE - WRITE (*,*) 'MULTI_CHANNEL = FALSE' - ENDIF - WRITE (*,*) 'CHANNEL_ID =', CHANNEL - FIRST_CHID = .FALSE. - ENDIF +!$OMP PARALLEL +!$OMP DO + DO IVEC=1, VECSIZE_USED + CALL SMATRIX1(P_MULTI(0,1,IVEC), + & hel_rand(IVEC), + & col_rand(IVEC), + & channels(IVEC), + & IVEC, + & out(IVEC), + & selected_hel(IVEC), + & selected_col(IVEC) + & ) + ENDDO +!$OMP END DO +!$OMP END PARALLEL RETURN END diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/fcheck_sa.f b/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/fcheck_sa.f index a304437a06..f8acb795d8 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/fcheck_sa.f +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/fcheck_sa.f @@ -19,7 +19,7 @@ PROGRAM FCHECK_SA DOUBLE PRECISION GS(NEVTMAX) DOUBLE PRECISION RNDHEL(NEVTMAX) ! not yet used DOUBLE PRECISION RNDCOL(NEVTMAX) ! not yet used - INTEGER*4 CHANID(NEVTMAX) + INTEGER*4 CHANID PARAMETER(CHANID=0) ! TEMPORARY? disable multi-channel in fcheck.exe and fgcheck.exe #466 DOUBLE PRECISION MES(NEVTMAX) INTEGER*4 SELHEL(NEVTMAX) ! not yet used diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/matrix1.f b/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/matrix1.f index 0c2ce6ec40..1ee4c008b0 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/matrix1.f +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/matrix1.f @@ -164,8 +164,10 @@ SUBROUTINE SMATRIX1(P, RHEL, RCOL, CHANNEL, IVEC, ANS, IHEL, TS(I)=0D0 ENDDO - ! If the helicity grid status is 0, this means that it is not yet initialized. - ! If HEL_PICKED==-1, this means that calls to other matrix where in initialization mode as well for the helicity. +C If the helicity grid status is 0, this means that it is not yet +C initialized. +C If HEL_PICKED==-1, this means that calls to other matrix +C where in initialization mode as well for the helicity. IF ((ISHEL(IMIRROR).EQ.0.AND.ISUM_HEL.EQ.0) $ .OR.(DS_GET_DIM_STATUS('Helicity').EQ.0).OR.(HEL_PICKED.EQ.-1)) $ THEN @@ -187,16 +189,27 @@ SUBROUTINE SMATRIX1(P, RHEL, RCOL, CHANNEL, IVEC, ANS, IHEL, CALL RESET_CUMULATIVE_VARIABLE() ! avoid biais of the initialization ENDIF IF (ISUM_HEL.NE.0) THEN - ! We set HEL_PICKED to -1 here so that later on, the call to DS_add_point in dsample.f does not add anything to the grid since it was already done here. +C We set HEL_PICKED to -1 here so that later on, the call to +C DS_add_point in dsample.f does not add anything to the grid +C since it was already done here. HEL_PICKED = -1 - ! For safety, hardset the helicity sampling jacobian to 0.0d0 to make sure it is not . +C For safety, hardset the helicity sampling jacobian to 0.0d0 +C to make sure it is not . HEL_JACOBIAN = 1.0D0 - ! We don't want to re-update the helicity grid if it was already updated by another matrix, so we make sure that the reference grid is empty. +C We don't want to re-update the helicity grid if it was +C already updated by another matrix, so we make sure that +C the reference grid is empty. REF_HELICITY_GRID = DS_GET_DIMENSION(REF_GRID,'Helicity') IF((DS_GET_DIM_STATUS('Helicity').EQ.1) $ .AND.(REF_HELICITY_GRID%N_TOT_ENTRIES.EQ.0)) THEN - ! If we finished the initialization we can update the grid so as to start sampling over it. - ! However the grid will now be filled by dsample with different kind of weights (including pdf, flux, etc...) so by setting the grid_mode of the reference grid to 'initialization' we make sure it will be overwritten (as opposed to 'combined') by the running grid at the next update. +C If we finished the initialization we can update the grid +C so as to start sampling over it. +C However the grid will now be filled by dsample with +C different kind of weights (including pdf, flux, etc...) +C so by setting the grid_mode of the reference grid to +C 'initialization' we make sure it will be overwritten (as +C opposed to 'combined') by the running grid at the next +C update. CALL DS_UPDATE_GRID('Helicity') CALL DS_SET_GRID_MODE('Helicity','init') ENDIF diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/cudacpp.mk b/epochX/cudacpp/gg_tt.mad/SubProcesses/cudacpp.mk index 509307506b..ec146a85cd 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/cudacpp.mk +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/cudacpp.mk @@ -93,10 +93,19 @@ GTESTLIBDIR = GTESTLIBS = GTESTINC = endif +TESTDIR = +GTESTLIBDIR = +GTESTLIBS = +GTESTINC = + ###$(info GTEST_ROOT = $(GTEST_ROOT)) ###$(info LOCALGTEST = $(LOCALGTEST)) ###$(info TESTDIR = $(TESTDIR)) +TESTDIR= +GTESTLIBDIR = +GTESTLIBS = +GTESTINC = #------------------------------------------------------------------------------- #=== Configure the C++ compiler diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/fbridge.cc b/epochX/cudacpp/gg_tt.mad/SubProcesses/fbridge.cc index b2c38f04c7..2d2b36d560 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/fbridge.cc +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/fbridge.cc @@ -79,7 +79,7 @@ extern "C" * @param gs the pointer to the input Gs (running QCD coupling constant alphas) * @param rndhel the pointer to the input random numbers for helicity selection * @param rndcol the pointer to the input random numbers for color selection - * @param channelIds the pointer to the input Feynman diagram to enhance in multi-channel mode if 1 to n (disable multi-channel if 0) + * @param channelId the pointer to the input Feynman diagram to enhance in multi-channel mode if 1 to n (disable multi-channel if 0) * @param mes the pointer to the output matrix elements * @param selhel the pointer to the output selected helicities * @param selcol the pointer to the output selected colors @@ -89,7 +89,7 @@ extern "C" const FORTRANFPTYPE* gs, const FORTRANFPTYPE* rndhel, const FORTRANFPTYPE* rndcol, - const unsigned int* pchannelIds, + const unsigned int* pchannelId, FORTRANFPTYPE* mes, int* selhel, int* selcol ) @@ -99,11 +99,11 @@ extern "C" #ifdef __CUDACC__ // Use the device/GPU implementation in the CUDA library // (there is also a host implementation in this library) - pbridge->gpu_sequence( momenta, gs, rndhel, rndcol, pchannelIds, mes, selhel, selcol ); + pbridge->gpu_sequence( momenta, gs, rndhel, rndcol, *pchannelId, mes, selhel, selcol ); #else // Use the host/CPU implementation in the C++ library // (there is no device implementation in this library) - pbridge->cpu_sequence( momenta, gs, rndhel, rndcol, pchannelIds, mes, selhel, selcol ); + pbridge->cpu_sequence( momenta, gs, rndhel, rndcol, *pchannelId, mes, selhel, selcol ); #endif } diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/fbridge.inc b/epochX/cudacpp/gg_tt.mad/SubProcesses/fbridge.inc index 647e831590..e2115de6ec 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/fbridge.inc +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/fbridge.inc @@ -49,7 +49,7 @@ C DOUBLE PRECISION GS(*) DOUBLE PRECISION RNDHEL(*) DOUBLE PRECISION RNDCOL(*) - INTEGER*4 CHANID(*) + INTEGER*4 CHANID DOUBLE PRECISION MES(*) INTEGER*4 SELHEL(*) INTEGER*4 SELCOL(*) diff --git a/epochX/cudacpp/gg_tt.mad/bin/internal/banner.py b/epochX/cudacpp/gg_tt.mad/bin/internal/banner.py index bd1517985f..43a2c9887c 100755 --- a/epochX/cudacpp/gg_tt.mad/bin/internal/banner.py +++ b/epochX/cudacpp/gg_tt.mad/bin/internal/banner.py @@ -3916,6 +3916,7 @@ def remove_all_cut(self): %(aloha_flag)s = aloha_flag ! fortran optimization flag for aloha function. Suggestions: '-ffast-math' %(matrix_flag)s = matrix_flag ! fortran optimization flag for matrix.f function. Suggestions: '-O3' %(vector_size)s = vector_size ! size of fortran arrays allocated in the multi-event API for SIMD/GPU (VECSIZE_MEMMAX) + %(nb_wrap)s = nb_wrap ! total number of wrap/frontwave """ template_off = '# To see advanced option for Phase-Space optimization: type "update psoptim"' @@ -4317,7 +4318,10 @@ def default_setup(self): self.add_param('matrix_flag', '', include=False, hidden=True, comment='fortran compilation flag for the matrix-element files, suggestion -O3', fct_mod=(self.make_Ptouch, ('matrix'),{})) self.add_param('vector_size', 1, include='vector.inc', hidden=True, comment='lockstep size for parralelism run', - fortran_name='VECSIZE_MEMMAX', fct_mod=(self.reset_simd,(),{})) + fortran_name='WRAP_SIZE', fct_mod=(self.reset_simd,(),{})) + self.add_param('nb_wrap', 1, include='vector.inc', hidden=True, comment='number of wrap for parralelism run', + fortran_name='NB_WRAP', fct_mod=(self.reset_simd,(),{})) + self.add_param('vecsize_memmax', 0, include='vector.inc', system=True) # parameter allowing to define simple cut via the pdg # Special syntax are related to those. (can not be edit directly) @@ -4608,7 +4612,7 @@ def update_system_parameter_for_include(self): self['mxxmin4pdg'] =[0.] self['mxxpart_antipart'] = [False] - + self['vecsize_memmax'] = self['nb_wrap'] * self['vector_size'] def create_default_for_process(self, proc_characteristic, history, proc_def): """Rules diff --git a/epochX/cudacpp/gg_tt.mad/bin/internal/file_writers.py b/epochX/cudacpp/gg_tt.mad/bin/internal/file_writers.py index bb369e08c8..41bff05276 100755 --- a/epochX/cudacpp/gg_tt.mad/bin/internal/file_writers.py +++ b/epochX/cudacpp/gg_tt.mad/bin/internal/file_writers.py @@ -212,7 +212,7 @@ class FortranWriterError(FileWriter.FileWriterError): # Private variables __indent = 0 __keyword_list = [] - __comment_pattern = re.compile(r"^(\s*#|c$|(c\s+([^=]|$))|cf2py|c\-\-|c\*\*|!\$)", re.IGNORECASE) + __comment_pattern = re.compile(r"^(\s*#|c$|(c\s+([^=]|$))|cf2py|c\-\-|c\*\*|!)", re.IGNORECASE) __continuation_line = re.compile(r"(?: )[$&]") def write_line(self, line): @@ -232,7 +232,7 @@ def write_line(self, line): # Check if this line is a comment if self.__comment_pattern.search(line): # This is a comment - res_lines = self.write_comment_line(line.lstrip()[1:]) + res_lines = self.write_comment_line(line.lstrip()[1:], prefix=line.lstrip()[0]) return res_lines elif self.__continuation_line.search(line): return line+'\n' @@ -316,7 +316,7 @@ def write_line(self, line): return res_lines - def write_comment_line(self, line): + def write_comment_line(self, line, prefix=''): """Write a comment line, with correct indent and line splits""" # write_comment_line must have a single line as argument @@ -328,6 +328,8 @@ def write_comment_line(self, line): return ['%s\n' % line] elif line.startswith("$OMP"): return ['!%s\n' % line] + elif prefix == "#" and line.startswith(("ifdef","else","endif")): + return ['#%s\n' % line] res_lines = [] diff --git a/epochX/cudacpp/gg_tt.mad/bin/internal/launch_plugin.py b/epochX/cudacpp/gg_tt.mad/bin/internal/launch_plugin.py index 3b09713e12..326b0bb1af 100644 --- a/epochX/cudacpp/gg_tt.mad/bin/internal/launch_plugin.py +++ b/epochX/cudacpp/gg_tt.mad/bin/internal/launch_plugin.py @@ -74,6 +74,8 @@ def reset_simd(self, old_value, new_value, name): if name == "vector_size" and new_value <= int(old_value): # code can handle the new size -> do not recompile return + + # ok need to force recompilation of the cpp part Sourcedir = pjoin(os.path.dirname(os.path.dirname(self.path)), 'Source') subprocess.call(['make', 'cleanavx'], cwd=Sourcedir, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) @@ -114,7 +116,7 @@ def default_setup(self): def write_one_include_file(self, output_dir, incname, output_file=None): """write one include file at the time""" if incname == "vector.inc": - if 'vector_size' not in self.user_set: return + if 'vector_size' not in self.user_set and 'wrap_size' not in self.user_set: return if output_file is None: vectorinc=pjoin(output_dir,incname) else: vectorinc=output_file with open(vectorinc+'.new','w') as fileout: From 7b8c25e386ac6c4cc0026a23f598d4cd5f4b13af Mon Sep 17 00:00:00 2001 From: Stefan Roiser Date: Thu, 7 Dec 2023 14:55:52 +0100 Subject: [PATCH 011/107] regenerate g g > t t~ from madgraph prompt (not generateAndCompare) --- .../gg_tt.mad/CODEGEN_mad_gg_tt_log.txt | 302 --------------- .../gg_tt.mad/Cards/delphes_trigger.dat | 20 + epochX/cudacpp/gg_tt.mad/Cards/ident_card.dat | 28 +- .../gg_tt.mad/Cards/me5_configuration.txt | 4 +- epochX/cudacpp/gg_tt.mad/Cards/plot_card.dat | 203 ++++++++++ .../cudacpp/gg_tt.mad/Cards/proc_card_mg5.dat | 6 +- epochX/cudacpp/gg_tt.mad/Cards/run_card.dat | 6 +- epochX/cudacpp/gg_tt.mad/HTML/.keep | 0 .../cudacpp/gg_tt.mad/HTML/info-default.html | 13 + epochX/cudacpp/gg_tt.mad/HTML/info.html | 66 ++++ epochX/cudacpp/gg_tt.mad/HTML/mgstyle.css | 34 ++ epochX/cudacpp/gg_tt.mad/HTML/sortable.js | 335 ++++++++++++++++ epochX/cudacpp/gg_tt.mad/HTML/stop.jpg | Bin 0 -> 9241 bytes epochX/cudacpp/gg_tt.mad/HTML/thinking.gif | Bin 0 -> 54166 bytes epochX/cudacpp/gg_tt.mad/Source/BIAS/bias.inc | 0 epochX/cudacpp/gg_tt.mad/Source/make_opts | 9 +- .../cudacpp/gg_tt.mad/Source/param_card.inc | 15 - epochX/cudacpp/gg_tt.mad/Source/run_card.inc | 364 ------------------ epochX/cudacpp/gg_tt.mad/Source/vector.inc | 6 +- .../SubProcesses/P1_gg_ttx/.gitignore | 12 - .../SubProcesses/P1_gg_ttx/auto_dsig1.f | 213 +++++++--- .../SubProcesses/P1_gg_ttx/matrix1.f | 4 +- .../SubProcesses/proc_characteristics | 2 +- .../cudacpp/gg_tt.mad/bin/internal/run_plot | 47 +++ .../gg_tt.mad/bin/internal/run_plot_delphes | 46 +++ .../gg_tt.mad/bin/internal/run_plot_pgs | 47 +++ .../gg_tt.mad/bin/internal/run_plot_pythia | 50 +++ .../bin/internal/ufomodel/.gitignore | 1 - epochX/cudacpp/gg_tt.mad/madevent.tar.gz | Bin 0 -> 3495041 bytes epochX/cudacpp/gg_tt.mad/mg5.in | 4 - 30 files changed, 1063 insertions(+), 774 deletions(-) delete mode 100644 epochX/cudacpp/gg_tt.mad/CODEGEN_mad_gg_tt_log.txt create mode 100644 epochX/cudacpp/gg_tt.mad/Cards/delphes_trigger.dat create mode 100644 epochX/cudacpp/gg_tt.mad/Cards/plot_card.dat delete mode 100644 epochX/cudacpp/gg_tt.mad/HTML/.keep create mode 100644 epochX/cudacpp/gg_tt.mad/HTML/info-default.html create mode 100644 epochX/cudacpp/gg_tt.mad/HTML/info.html create mode 100644 epochX/cudacpp/gg_tt.mad/HTML/mgstyle.css create mode 100644 epochX/cudacpp/gg_tt.mad/HTML/sortable.js create mode 100644 epochX/cudacpp/gg_tt.mad/HTML/stop.jpg create mode 100644 epochX/cudacpp/gg_tt.mad/HTML/thinking.gif delete mode 100644 epochX/cudacpp/gg_tt.mad/Source/BIAS/bias.inc delete mode 100644 epochX/cudacpp/gg_tt.mad/Source/param_card.inc delete mode 100644 epochX/cudacpp/gg_tt.mad/Source/run_card.inc delete mode 100644 epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/.gitignore create mode 100755 epochX/cudacpp/gg_tt.mad/bin/internal/run_plot create mode 100755 epochX/cudacpp/gg_tt.mad/bin/internal/run_plot_delphes create mode 100755 epochX/cudacpp/gg_tt.mad/bin/internal/run_plot_pgs create mode 100755 epochX/cudacpp/gg_tt.mad/bin/internal/run_plot_pythia delete mode 100644 epochX/cudacpp/gg_tt.mad/bin/internal/ufomodel/.gitignore create mode 100644 epochX/cudacpp/gg_tt.mad/madevent.tar.gz delete mode 100644 epochX/cudacpp/gg_tt.mad/mg5.in diff --git a/epochX/cudacpp/gg_tt.mad/CODEGEN_mad_gg_tt_log.txt b/epochX/cudacpp/gg_tt.mad/CODEGEN_mad_gg_tt_log.txt deleted file mode 100644 index 148c2c1539..0000000000 --- a/epochX/cudacpp/gg_tt.mad/CODEGEN_mad_gg_tt_log.txt +++ /dev/null @@ -1,302 +0,0 @@ -Note that this is a development version. -This version is intended for development/beta testing and NOT for production. -This version has not been fully tested (if at all) and might have limited user support (if at all) -Running MG5 in debug mode -('WARNING: loading of madgraph too slow!!!', 1.1267330646514893) -************************************************************ -* * -* W E L C O M E to * -* M A D G R A P H 5 _ a M C @ N L O * -* * -* * -* * * * -* * * * * * -* * * * * 5 * * * * * -* * * * * * -* * * * -* * -* VERSION 3.5.2_lo_vect 2023-11-08 * -* * -* WARNING: UNKNOWN DEVELOPMENT VERSION. * -* WARNING: DO NOT USE FOR PRODUCTION * -* * -* * -* The MadGraph5_aMC@NLO Development Team - Find us at * -* http://madgraph.phys.ucl.ac.be/ * -* and * -* http://amcatnlo.web.cern.ch/amcatnlo/ * -* * -* Type 'help' for in-line help. * -* Type 'tutorial' to learn how MG5 works * -* Type 'tutorial aMCatNLO' to learn how aMC@NLO works * -* Type 'tutorial MadLoop' to learn how MadLoop works * -* * -************************************************************ -load MG5 configuration from input/mg5_configuration.txt -fastjet-config does not seem to correspond to a valid fastjet-config executable (v3+). We will use fjcore instead. - Please set the 'fastjet'variable to the full (absolute) /PATH/TO/fastjet-config (including fastjet-config). - MG5_aMC> set fastjet /PATH/TO/fastjet-config - -eMELA-config does not seem to correspond to a valid eMELA-config executable. - Please set the 'fastjet'variable to the full (absolute) /PATH/TO/eMELA-config (including eMELA-config). - MG5_aMC> set eMELA /PATH/TO/eMELA-config - -lhapdf-config does not seem to correspond to a valid lhapdf-config executable. -Please set the 'lhapdf' variable to the (absolute) /PATH/TO/lhapdf-config (including lhapdf-config). -Note that you can still compile and run aMC@NLO with the built-in PDFs - MG5_aMC> set lhapdf /PATH/TO/lhapdf-config - -None does not seem to correspond to a valid lhapdf-config executable. -Please set the 'lhapdf' variable to the (absolute) /PATH/TO/lhapdf-config (including lhapdf-config). -Note that you can still compile and run aMC@NLO with the built-in PDFs - MG5_aMC> set lhapdf /PATH/TO/lhapdf-config - -Using default text editor "vi". Set another one in ./input/mg5_configuration.txt -Using default eps viewer "evince". Set another one in ./input/mg5_configuration.txt -Using default web browser "firefox". Set another one in ./input/mg5_configuration.txt -import /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt.mg -The import format was not given, so we guess it as command -set stdout_level DEBUG -set output information to level: 10 -set zerowidth_tchannel F -generate g g > t t~ -No model currently active, so we import the Standard Model -INFO: load particles -INFO: load vertices -DEBUG: model prefixing takes 0.0036835670471191406  -INFO: Restrict model sm with file models/sm/restrict_default.dat . -DEBUG: Simplifying conditional expressions  -DEBUG: remove interactions: u s w+ at order: QED=1  -DEBUG: remove interactions: u b w+ at order: QED=1  -DEBUG: remove interactions: c d w+ at order: QED=1  -DEBUG: remove interactions: c b w+ at order: QED=1  -DEBUG: remove interactions: t d w+ at order: QED=1  -DEBUG: remove interactions: t s w+ at order: QED=1  -DEBUG: remove interactions: s u w+ at order: QED=1  -DEBUG: remove interactions: b u w+ at order: QED=1  -DEBUG: remove interactions: d c w+ at order: QED=1  -DEBUG: remove interactions: b c w+ at order: QED=1  -DEBUG: remove interactions: d t w+ at order: QED=1  -DEBUG: remove interactions: s t w+ at order: QED=1  -DEBUG: remove interactions: c c h at order: QED=1  -DEBUG: remove interactions: e- e- h at order: QED=1  -DEBUG: remove interactions: mu- mu- h at order: QED=1  -DEBUG: Fuse the Following coupling (they have the same value): ('GC_100', 1), ('GC_104', 1), ('GC_108', 1), ('GC_40', 1), ('GC_41', 1), ('GC_45', 1), ('GC_49', 1)  -DEBUG: Fuse the Following coupling (they have the same value): ('GC_21', 1), ('GC_27', -1)  -DEBUG: Fuse the Following coupling (they have the same value): ('GC_15', 1), ('GC_30', -1)  -DEBUG: Fuse the Following coupling (they have the same value): ('GC_38', 1), ('GC_39', -1)  -DEBUG: Fuse the Following coupling (they have the same value): ('GC_3', 1), ('GC_4', -1)  -DEBUG: Fuse the Following coupling (they have the same value): ('GC_50', 1), ('GC_51', -1)  -DEBUG: Fuse the Following coupling (they have the same value): ('GC_54', 1), ('GC_56', -1)  -DEBUG: Fuse the Following coupling (they have the same value): ('GC_66', 1), ('GC_67', -1)  -DEBUG: Fuse the Following coupling (they have the same value): ('GC_70', 1), ('GC_73', -1)  -DEBUG: Fuse the Following coupling (they have the same value): ('GC_74', 1), ('GC_75', -1)  -DEBUG: Fuse the Following coupling (they have the same value): ('GC_77', 1), ('GC_78', -1)  -DEBUG: Fuse the Following coupling (they have the same value): ('GC_76', 1), ('GC_79', -1)  -DEBUG: Fuse the Following coupling (they have the same value): ('GC_7', 1), ('GC_9', -1)  -DEBUG: Fuse the Following coupling (they have the same value): ('GC_96', 1), ('GC_97', -1)  -DEBUG: remove parameters: mdl_lamWS  -DEBUG: remove parameters: mdl_AWS  -DEBUG: remove parameters: mdl_rhoWS  -DEBUG: remove parameters: mdl_etaWS  -DEBUG: remove parameters: mdl_ymc  -DEBUG: remove parameters: mdl_yme  -DEBUG: remove parameters: mdl_ymm  -DEBUG: remove parameters: mdl_MC  -DEBUG: remove parameters: mdl_Me  -DEBUG: remove parameters: mdl_MM  -DEBUG: remove parameters: mdl_WTau  -DEBUG: remove parameters: mdl_lamWS__exp__2  -DEBUG: remove parameters: mdl_CKM1x2  -DEBUG: remove parameters: mdl_lamWS__exp__3  -DEBUG: remove parameters: mdl_CKM1x3  -DEBUG: remove parameters: mdl_CKM2x1  -DEBUG: remove parameters: mdl_CKM2x3  -DEBUG: remove parameters: mdl_CKM3x1  -DEBUG: remove parameters: mdl_CKM3x2  -DEBUG: remove parameters: mdl_conjg__CKM1x3  -DEBUG: remove parameters: mdl_conjg__CKM2x3  -DEBUG: remove parameters: mdl_conjg__CKM2x1  -DEBUG: remove parameters: mdl_conjg__CKM3x1  -DEBUG: remove parameters: mdl_conjg__CKM3x2  -DEBUG: remove parameters: mdl_conjg__CKM1x2  -DEBUG: remove parameters: mdl_yc  -DEBUG: remove parameters: mdl_ye  -DEBUG: remove parameters: mdl_ym  -DEBUG: remove parameters: mdl_I1x31  -DEBUG: remove parameters: mdl_I1x32  -DEBUG: remove parameters: mdl_I2x12  -DEBUG: remove parameters: mdl_I2x13  -DEBUG: remove parameters: mdl_I2x22  -DEBUG: remove parameters: mdl_I2x23  -DEBUG: remove parameters: mdl_I2x32  -DEBUG: remove parameters: mdl_I3x21  -DEBUG: remove parameters: mdl_I3x22  -DEBUG: remove parameters: mdl_I3x23  -DEBUG: remove parameters: mdl_I3x31  -DEBUG: remove parameters: mdl_I3x32  -DEBUG: remove parameters: mdl_I4x13  -DEBUG: remove parameters: mdl_I4x23  -DEBUG: remove parameters: mdl_CKM1x1  -DEBUG: remove parameters: mdl_CKM2x2  -DEBUG: fix parameter value: mdl_CKM3x3  -DEBUG: fix parameter value: mdl_conjg__CKM3x3  -DEBUG: remove parameters: mdl_conjg__CKM2x2  -DEBUG: fix parameter value: mdl_conjg__CKM1x1  -INFO: Change particles name to pass to MG5 convention -Defined multiparticle p = g u c d s u~ c~ d~ s~ -Defined multiparticle j = g u c d s u~ c~ d~ s~ -Defined multiparticle l+ = e+ mu+ -Defined multiparticle l- = e- mu- -Defined multiparticle vl = ve vm vt -Defined multiparticle vl~ = ve~ vm~ vt~ -Defined multiparticle all = g u c d s u~ c~ d~ s~ a ve vm vt e- mu- ve~ vm~ vt~ e+ mu+ t b t~ b~ z w+ h w- ta- ta+ -INFO: Checking for minimal orders which gives processes. -INFO: Please specify coupling orders to bypass this step. -INFO: Trying coupling order WEIGHTED<=2: WEIGTHED IS QCD+2*QED -INFO: Trying process: g g > t t~ WEIGHTED<=2 @1 -INFO: Process has 3 diagrams -1 processes with 3 diagrams generated in 0.007 s -Total: 1 processes with 3 diagrams -output madevent ../TMPOUT/CODEGEN_mad_gg_tt --hel_recycling=False --vector_size=32 --me_exporter=standalone_cudacpp -DEBUG: args =  ['--hel_recycling=False', '--vector_size=32', '--me_exporter=standalone_cudacpp'] [madgraph_interface.py at line 8160]  -Load PLUGIN.CUDACPP_OUTPUT -Addition matrix-element will be done with PLUGIN: CUDACPP_OUTPUT -Output will be done with PLUGIN: CUDACPP_OUTPUT -DEBUG: cformat =  standalone_cudacpp [export_cpp.py at line 3071]  -DEBUG: Entering PLUGIN_ProcessExporter.__init__ (initialise the exporter) [output.py at line 161]  -INFO: initialize a new directory: CODEGEN_mad_gg_tt -INFO: remove old information in CODEGEN_mad_gg_tt -DEBUG: Entering PLUGIN_ProcessExporter.copy_template (initialise the directory) [output.py at line 166]  -WARNING: File exists /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt  -INFO: Creating subdirectories in directory /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt -WARNING: File exists /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/Cards  -WARNING: File exists /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/SubProcesses  -INFO: Organizing processes into subprocess groups -INFO: Generating Helas calls for process: g g > t t~ WEIGHTED<=2 @1 -INFO: Processing color information for process: g g > t t~ @1 -INFO: Creating files in directory P1_gg_ttx -DEBUG: kwargs[prefix] = 0 [model_handling.py at line 1058]  -DEBUG: process_exporter_cpp =  [export_v4.py at line 6305]  -INFO: Creating files in directory . -FileWriter for ././CPPProcess.h -FileWriter for ././CPPProcess.cc -INFO: Created files CPPProcess.h and CPPProcess.cc in directory ./. -DEBUG: proc_id =  1 [export_cpp.py at line 710]  -DEBUG: config_map =  [1, 2, 3] [export_cpp.py at line 711]  -DEBUG: subproc_number =  0 [export_cpp.py at line 712]  -DEBUG: Done [export_cpp.py at line 713]  -INFO: Generating Feynman diagrams for Process: g g > t t~ WEIGHTED<=2 @1 -INFO: Finding symmetric diagrams for subprocess group gg_ttx -Generated helas calls for 1 subprocesses (3 diagrams) in 0.007 s -Wrote files for 10 helas calls in 2.214 s -ALOHA: aloha starts to compute helicity amplitudes -ALOHA: aloha creates VVV1 set of routines with options: P0 -ALOHA: aloha creates FFV1 routines -ALOHA: aloha creates 2 routines in 0.353 s -DEBUG: Entering PLUGIN_ProcessExporter.convert_model (create the model) [output.py at line 203]  -ALOHA: aloha starts to compute helicity amplitudes -ALOHA: aloha creates VVV1 set of routines with options: P0 -ALOHA: aloha creates FFV1 routines -ALOHA: aloha creates 4 routines in 0.280 s - VVV1 - FFV1 - FFV1 - FFV1 -FileWriter for /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/src/./HelAmps_sm.h -INFO: Created file HelAmps_sm.h in directory /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/src/. -super_write_set_parameters_onlyfixMajorana (hardcoded=False) -super_write_set_parameters_onlyfixMajorana (hardcoded=True) -FileWriter for /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/src/./Parameters_sm.h -FileWriter for /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/src/./Parameters_sm.cc -INFO: Created files Parameters_sm.h and Parameters_sm.cc in directory -INFO: /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/src/. and /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/src/. -The option zerowidth_tchannel is modified [True] but will not be written in the configuration files. -If you want to make this value the default for future session, you can run 'save options --all' -save configuration file to /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/Cards/me5_configuration.txt -INFO: Use Fortran compiler gfortran -INFO: Use c++ compiler g++ -INFO: Generate web pages -DEBUG: cd /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt; patch -p4 -i /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/MG5aMC_patches/PROD/patch.common -patching file Source/genps.inc -patching file Source/makefile -patching file SubProcesses/makefile -patching file bin/internal/gen_ximprove.py -Hunk #1 succeeded at 391 (offset 6 lines). -patching file bin/internal/madevent_interface.py -DEBUG: cd /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/SubProcesses/P1_gg_ttx; patch -p6 -i /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/MG5aMC_patches/PROD/patch.P1 -patching file driver.f -patching file matrix1.f -Hunk #3 succeeded at 234 (offset 13 lines). -Hunk #4 succeeded at 262 (offset 13 lines). -Hunk #5 succeeded at 307 (offset 13 lines). -DEBUG: p.returncode =  0 [output.py at line 238]  -Output to directory /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt done. -Type "launch" to generate events from this process, or see -/afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/README -Run "open index.html" to see more information about this process. -quit - -real 0m37.385s -user 0m1.477s -sys 0m1.660s -************************************************************ -* * -* W E L C O M E to * -* M A D G R A P H 5 _ a M C @ N L O * -* M A D E V E N T * -* * -* * * * -* * * * * * -* * * * * 5 * * * * * -* * * * * * -* * * * -* * -* VERSION 3.5.2_lo_vect * -* * -* The MadGraph5_aMC@NLO Development Team - Find us at * -* https://server06.fynu.ucl.ac.be/projects/madgraph * -* * -* Type 'help' for in-line help. * -* * -************************************************************ -INFO: load configuration from /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/Cards/me5_configuration.txt -INFO: load configuration from /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/mg5amcnlo/input/mg5_configuration.txt -INFO: load configuration from /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/Cards/me5_configuration.txt -Using default text editor "vi". Set another one in ./input/mg5_configuration.txt -Using default eps viewer "evince". Set another one in ./input/mg5_configuration.txt -Using default web browser "firefox". Set another one in ./input/mg5_configuration.txt -treatcards run -quit -INFO: -launch in debug mode -************************************************************ -* * -* W E L C O M E to * -* M A D G R A P H 5 _ a M C @ N L O * -* M A D E V E N T * -* * -* * * * -* * * * * * -* * * * * 5 * * * * * -* * * * * * -* * * * -* * -* VERSION 3.5.2_lo_vect * -* * -* The MadGraph5_aMC@NLO Development Team - Find us at * -* https://server06.fynu.ucl.ac.be/projects/madgraph * -* * -* Type 'help' for in-line help. * -* * -************************************************************ -INFO: load configuration from /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/Cards/me5_configuration.txt -INFO: load configuration from /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/mg5amcnlo/input/mg5_configuration.txt -INFO: load configuration from /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/TMPOUT/CODEGEN_mad_gg_tt/Cards/me5_configuration.txt -Using default text editor "vi". Set another one in ./input/mg5_configuration.txt -Using default eps viewer "evince". Set another one in ./input/mg5_configuration.txt -Using default web browser "firefox". Set another one in ./input/mg5_configuration.txt -treatcards param -quit -INFO: -launch in debug mode diff --git a/epochX/cudacpp/gg_tt.mad/Cards/delphes_trigger.dat b/epochX/cudacpp/gg_tt.mad/Cards/delphes_trigger.dat new file mode 100644 index 0000000000..0aab0677aa --- /dev/null +++ b/epochX/cudacpp/gg_tt.mad/Cards/delphes_trigger.dat @@ -0,0 +1,20 @@ +#TRIGGER CARD # DO NOT REMOVE THIS IS A TAG! + +# list of trigger algorithms +# trigger_name >> algorithm #comments +Inclusive electron >> ELEC1_PT: '29' +di-electron >> ELEC1_PT: '17' && ELEC2_PT: '17' +Inclusive Photon >> GAMMA1_PT: '80' +di-Photon >> GAMMA1_PT: '40' && GAMMA2_PT: '25' +Inclusive muon >> MUON1_PT: '19' +di-muon >> MUON1_PT: '7' && MUON2_PT: '7' +Taujet and ETmis >> TAU1_PT: '86' && ETMIS_PT: '65' +di-Taujets >> TAU1_PT: '59' && TAU2_PT: '59' +Jet and ETmis >> JET1_PT: '180' && ETMIS_PT: '123' +Taujet and electron >> TAU1_PT: '45' && ELEC1_PT: '19' +Taujet and muon >> TAU1_PT: '40' && ELEC1_PT: '15' +Inclusive b-jet >> Bjet1_PT: '237' +Inclusive 1 jet >> JET1_PT: '657' +Inclusive 3 jets >> JET1_PT: '247' && JET2_PT: '247' && JET3_PT: '247' +Inclusive 4 jets >> JET1_PT: '113' && JET2_PT: '113' && JET3_PT: '113' && JET4_PT: '113' + diff --git a/epochX/cudacpp/gg_tt.mad/Cards/ident_card.dat b/epochX/cudacpp/gg_tt.mad/Cards/ident_card.dat index 0ba87b008f..b37758a42a 100644 --- a/epochX/cudacpp/gg_tt.mad/Cards/ident_card.dat +++ b/epochX/cudacpp/gg_tt.mad/Cards/ident_card.dat @@ -2,32 +2,32 @@ ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c written by the UFO converter ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +mass 5 mdl_MB +mass 6 mdl_MT +mass 15 mdl_MTA +mass 23 mdl_MZ +mass 25 mdl_MH +sminputs 1 aEWM1 +sminputs 2 mdl_Gf +sminputs 3 aS +yukawa 5 mdl_ymb +yukawa 6 mdl_ymt +yukawa 15 mdl_ymtau - - +decay 6 mdl_WT decay 23 mdl_WZ + decay 24 mdl_WW + decay 25 mdl_WH -decay 6 mdl_WT -mass 15 mdl_MTA -mass 23 mdl_MZ -mass 25 mdl_MH -mass 5 mdl_MB -mass 6 mdl_MT -sminputs 1 aEWM1 -sminputs 2 mdl_Gf -sminputs 3 aS -yukawa 15 mdl_ymtau -yukawa 5 mdl_ymb -yukawa 6 mdl_ymt diff --git a/epochX/cudacpp/gg_tt.mad/Cards/me5_configuration.txt b/epochX/cudacpp/gg_tt.mad/Cards/me5_configuration.txt index 23fbf89fcd..cecde3bfb3 100644 --- a/epochX/cudacpp/gg_tt.mad/Cards/me5_configuration.txt +++ b/epochX/cudacpp/gg_tt.mad/Cards/me5_configuration.txt @@ -234,7 +234,7 @@ # pineappl = pineappl -#mg5_path = /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/mg5amcnlo +mg5_path = /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/mg5amcnlo # MG5 MAIN DIRECTORY -#mg5_path = /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/mg5amcnlo +mg5_path = /afs/cern.ch/work/r/roiser/sw/madgraph4gpu/MG5aMC/mg5amcnlo diff --git a/epochX/cudacpp/gg_tt.mad/Cards/plot_card.dat b/epochX/cudacpp/gg_tt.mad/Cards/plot_card.dat new file mode 100644 index 0000000000..9abe1cc05e --- /dev/null +++ b/epochX/cudacpp/gg_tt.mad/Cards/plot_card.dat @@ -0,0 +1,203 @@ +#************************************************************************** +# Card for MadAnalysis * +# * +# This file is used to set the classes and options for * +# the MadAnalysis program. * +# * +# * +# Some comments about the classes * +# 1. Plots are for classes of particles. * +# 2. Each particle is identified by its PDG code. * +# 3. Classes names are arbitrary (4 symbols max, no spaces allowed). * +# 4. Particles in the same class will be ordered with the 'ordering * +# function' in the file in_func.f. * +# 5. Classes can be added/edited/removed at will, and given a name * +# that will then appear in the plots. * +# 6. A particle can be put in one class only. Putting a particle in * +# two or more classes can lead to double counting of events. * +# 7. The class name mET is missing Energy and its name is reserved. * +# If used, it must be put last in the classes list below. * +# 8. If events contain particles not belonging to an existing class, * +# a new class will automatically be generated. * +# 9. For LHCO events the PDG code 21 is assigned to a jet (not * +# b-tagged), 5 to a b-tagged jet and 12 to missing ET. * +# * +# * +# Some comments about the cuts * +# 1. In the file kin_func.f the functions on which cuts can be applied * +# are given. * +# 2. The syntax is as follows. * +# etmin 1 3 30d0 * +# means that from the first class the Et of the first three particles * +# has to be greater than 30 GeV. * +# * +# etmissmin 20d0 * +# means that there must be at least 20 GeV of missing Et * +# * +# dRmin 2 1 4 3 3d0 * +# means that the distance between the first particle in the second * +# class and the first three particles in the fourth class has to be * +# greater than 3. * +# * +# ptmax 1 3 10d0 * +# ptmax 1 2 15d0 * +# means that the maximum pt of the third particle in the first class * +# has to smaller than 10 GeV, and the first two particles of this * +# class has to be smaller than 15 GeV * +# 3. The ordering of the particles within a class can be set with the * +# 'ordering function' in the file kin_func.f. * +# 4. For all the 'min' cuts, an event will be thrown away if the particle * +# does not exist. On the other hand, for all the 'max' cuts the cut * +# will be ignored if the particle does not exist * +# (Only dRij is an exception, for which it is the other way around) * +# * +# * +# * +# Some comments about the plotting options * +# 1. In the file kin_func.f the functions can be found that can be * +# plotted. (only for off-line usage) * +# 2. With the plotting options one can set the number of plots for each * +# of these functions. * +# 3. One has to specify for each variable which particles from which * +# class are used to set the plots. Syntax: * +# et 2 4 * +# means that the transverse energy of the first four particles in the * +# second class will be plotted. * +# mij 1 3 * +# mij 2 2 * +# means that for the invariant mass plots the first three particles * +# from the first class and the first two from the second class will be * +# used to plot the invariant mass of two particles. (10 plots) * +# 4. The ordering of the particles in a class can be set with the * +# 'ordering_function'. pt, e and et are valid functions. (For off-line * +# users X1, X2 and X3 can also be used, if defined in kin_func.f.) * +# 5. Max number of plots is 200. * +# * +# * +#************************************************************************** +# Put here your list of classes +#************************************************************************** +# Do NOT put spaces before class names! +# Begin Classes # This is TAG. Do not modify this line +jet 1 -1 2 -2 3 -3 4 -4 21 # Class number 1 +b 5 -5 # Class number 2 +mET 12 -12 14 -14 16 -16 1000022 # Missing ET class, name is reserved +# End Classes # This is TAG. Do not modify this line +#************************************************************************** +ordering_function pt # orders particles in classes according to their pt +normalization xsec # histogram normalization, xsec or number (e.g. 1) +#************************************************************************** +# Put here list of minimum pt for the classes +#************************************************************************** +# Begin Minpts # This is TAG. Do not modify this line +#1 30 +#2 40 +#3 10 +# End Minpts # This is TAG. Do not modify this line +#************************************************************************** +# Cuts on plotted events +#************************************************************************** +# Modify the cuts and remove the pounds/hashes to apply those cuts +# Do NOT put spaces at the beginning of the following lines! +# Begin Cuts # This is TAG. Do not modify this line +#etmin 2 2 40d0 +#etmin 2 1 80d0 +#etmin 1 3 20d0 +#etmax 2 1 200d0 +#ptmin 3 1 0d0 +#etmissmin 20d0 +#etmissmax 80d0 +#etamax 1 1 1d0 +#etamax 2 1 2d0 +#etamin 2 2 1.5d0 +#etamin 2 1 2d0 +#mijmax 2 1 2 2 200d0 +#mijmin 2 1 2 2 100d0 +#X1min 2 1 40d0 +#X1max 2 2 50d0 +#dRijmin 2 1 2 2 0.7d0 +#dRijmax 1 3 2 2 0.7d0 +#XY1min 2 2 2 2 20d0 +#XYZA2max 2 2 2 2 4 1 5 1 40d0 +# End Cuts # This is TAG. Do not modify this line +#************************************************************************** +# Put here the required plots +#************************************************************************** +# Do NOT put spaces at the beginning of the following lines! +# Begin PlotDefs # This is TAG. Do not modify this line +pt 1 4 # plot pt for the first four particles in class 1 +pt 2 4 # plot pt for the first four particles in class 2 +pt 3 4 # plot pt for the first four particles in class 3 +pt 4 4 # plot pt for the first four particles in class 4 +pt 5 4 # etc. +pt 6 4 +pt 7 4 +#e 2 2 +y 1 4 # plot rapidity for the first four particles in class 1 +y 2 4 +y 3 4 +y 4 4 +y 5 4 +y 6 4 +y 7 4 +#eta 2 2 # plot pseudo-rapidity for the first two part in the 2nd class +#mom 4 1 +#costh 5 1 +#phi 2 2 +#delta_eta 2 2 +#delta_eta 4 1 +mij 1 4 # use the first four particles in the 1st class to plot inv. mass +mij 2 2 # use the first two particles from the second class as well +mij 3 1 # etc. +mij 4 1 +mij 5 1 +mij 6 1 +mij 7 1 +#cosij 1 2 +#cosij 2 2 +#cosij 3 1 +#cosij 4 1 +dRij 1 4 +dRij 2 2 +dRij 3 1 +dRij 4 1 +dRij 5 1 +dRij 6 1 +dRij 7 1 +#delta_phi 2 2 +#delta_phi 4 1 +#delta_phi 5 1 +#X1 2 2 # plot X1 (defined in kin_func.f) +#XYZA1 2 2 +#XYZA1 4 1 +#XYZA1 5 1 +# End PlotDefs # This is TAG. Do not modify this line +#************************************************************************** +#************************************************************************** +# Put here the plot ranges +#************************************************************************** +# Do NOT put spaces at the beginning of the following lines! +# Begin PlotRange # This is TAG. Do not modify this line +pt 10 0 500 # bin size, min value, max value +et 10 0 500 # bin size, min value, max value +etmiss 10 0 500 # bin size, min value, max value +ht 20 0 1500 +y 0.2 -5 5 # etc. +mij 20 0 1500 +dRij 0.1 0 5 +#delta_phi 0.1 0 3.1 +#X1 1 0 100 +#XYZA1 1 0 100 +# End PlotRange # This is TAG. Do not modify this line +#************************************************************************** +#************************************************************************** +# Output for plots +#************************************************************************** +# Do NOT put spaces at the beginning of the following lines! +# Begin PlotOutput # This is TAG. Do not modify this line +output topdrawer # set to topdrawer or gnuplot +plot_decayed no # plot (and cut) dec. res.? (Only for LHE events) +# End PlotOutput # This is TAG. Do not modify this line +#************************************************************************** +# +# diff --git a/epochX/cudacpp/gg_tt.mad/Cards/proc_card_mg5.dat b/epochX/cudacpp/gg_tt.mad/Cards/proc_card_mg5.dat index cf111e2e6d..c4f85fca42 100644 --- a/epochX/cudacpp/gg_tt.mad/Cards/proc_card_mg5.dat +++ b/epochX/cudacpp/gg_tt.mad/Cards/proc_card_mg5.dat @@ -35,9 +35,8 @@ set loop_color_flows False set max_npoint_for_channel 0 set default_unset_couplings 99 set max_t_for_channel 99 +set zerowidth_tchannel True set nlo_mixed_expansion True -set stdout_level DEBUG -set zerowidth_tchannel F generate g g > t t~ define p = g u c d s u~ c~ d~ s~ define j = g u c d s u~ c~ d~ s~ @@ -45,5 +44,4 @@ define l+ = e+ mu+ define l- = e- mu- define vl = ve vm vt define vl~ = ve~ vm~ vt~ -output madevent ../TMPOUT/CODEGEN_mad_gg_tt --hel_recycling=False --ve\ -ctor_size=32 --me_exporter=standalone_cudacpp +output madevent_simd PROC_gg_ttx_genonly diff --git a/epochX/cudacpp/gg_tt.mad/Cards/run_card.dat b/epochX/cudacpp/gg_tt.mad/Cards/run_card.dat index f96c5eb99a..0edc4bacc2 100644 --- a/epochX/cudacpp/gg_tt.mad/Cards/run_card.dat +++ b/epochX/cudacpp/gg_tt.mad/Cards/run_card.dat @@ -77,7 +77,7 @@ #********************************************************************* 0 = nhel ! using helicities importance sampling or not. ! 0: sum over helicity, 1: importance sampling - 1 = sde_strategy ! default integration strategy (hep-ph/2021.00773) + 2 = sde_strategy ! default integration strategy (hep-ph/2021.00773) ! 1 is old strategy (using amp square) ! 2 is new strategy (using only the denominator) #********************************************************************* @@ -92,10 +92,10 @@ #********************************************************************* # Compilation flag. #********************************************************************* - -O3 -ffast-math -fbounds-check = global_flag ! build flags for all Fortran code (for a fair comparison to cudacpp; default is -O) + -O = global_flag ! fortran optimization flag use for the all code. --fast-math = aloha_flag ! fortran optimization flag for aloha function. Suggestions: '-ffast-math' -O3 = matrix_flag ! fortran optimization flag for matrix.f function. Suggestions: '-O3' - 16384 = vector_size ! size of fortran arrays allocated in the multi-event API for SIMD/GPU (VECSIZE_MEMMAX) + 16 = vector_size ! size of fortran arrays allocated in the multi-event API for SIMD/GPU (VECSIZE_MEMMAX) 1 = nb_wrap ! total number of wrap/frontwave #********************************************************************* diff --git a/epochX/cudacpp/gg_tt.mad/HTML/.keep b/epochX/cudacpp/gg_tt.mad/HTML/.keep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/epochX/cudacpp/gg_tt.mad/HTML/info-default.html b/epochX/cudacpp/gg_tt.mad/HTML/info-default.html new file mode 100644 index 0000000000..35ee976a87 --- /dev/null +++ b/epochX/cudacpp/gg_tt.mad/HTML/info-default.html @@ -0,0 +1,13 @@ + + +Info file + + +

SubProcesses and Feynman diagrams

+

Information not available yet:

+

Process might still be generated or has failed.

+

Please check the process generation log and the process information status on the +main page.

+

If generation failed, please check the process card for mistakes in syntax.

+

Main Page

+ diff --git a/epochX/cudacpp/gg_tt.mad/HTML/info.html b/epochX/cudacpp/gg_tt.mad/HTML/info.html new file mode 100644 index 0000000000..7d5d58ff1f --- /dev/null +++ b/epochX/cudacpp/gg_tt.mad/HTML/info.html @@ -0,0 +1,66 @@ + + + +Detail on the Generation + + + + + +

SubProcesses and Feynman diagrams

+ + + + + + + + + + + + + + +
Directory# Diagrams # Subprocesses FEYNMAN DIAGRAMS SUBPROCESS
P1_gg_ttx 3 1 html postscript + + g g > t t~ + +

+
3 diagrams (3 independent).
+


+ + + + +
proc_card_mg5.dat Input file used for code generation. + +

+
+

Back to Process main page

+
+ + + \ No newline at end of file diff --git a/epochX/cudacpp/gg_tt.mad/HTML/mgstyle.css b/epochX/cudacpp/gg_tt.mad/HTML/mgstyle.css new file mode 100644 index 0000000000..bbab7bf021 --- /dev/null +++ b/epochX/cudacpp/gg_tt.mad/HTML/mgstyle.css @@ -0,0 +1,34 @@ +th a:link{ + color:black; +} + +table { + border-width: 1px; + border-spacing: 0px; + border-style: outset; + border-color: black; + border-collapse: collapse; + background-color: white; +} +table th { + border-width: 2px; + padding: 1px; + border-style: solid; + border-color: black; + background-color: white; +} + +table td { + border-width: 2px; + padding: 1px; + border-style: solid; + border-color: black; +} + +input { + display: inline; +} + +form { + display: inline; +} diff --git a/epochX/cudacpp/gg_tt.mad/HTML/sortable.js b/epochX/cudacpp/gg_tt.mad/HTML/sortable.js new file mode 100644 index 0000000000..c8c3742b11 --- /dev/null +++ b/epochX/cudacpp/gg_tt.mad/HTML/sortable.js @@ -0,0 +1,335 @@ +/* +Table sorting script by Joost de Valk, check it out at http://www.joostdevalk.nl/code/sortable-table/. +Based on a script from http://www.kryogenix.org/code/browser/sorttable/. +Distributed under the MIT license: http://www.kryogenix.org/code/browser/licence.html . +Modify by the MG team for compatibility issue + +Copyright (c) 1997-2007 Stuart Langridge, Joost de Valk. + +Version 1.5.7 +*/ + +/* You can change these values */ +var europeandate = true; +var alternate_row_colors = true; + +/* Don't change anything below this unless you know what you're doing */ +addEvent(window, "load", sortables_init); + +var SORT_COLUMN_INDEX; +var thead = false; + +function sortables_init() { + // Find all tables with class sortable and make them sortable + if (!document.getElementsByTagName) return; + tbls = document.getElementsByTagName("table"); + for (ti=0;ti 0) { + var firstRow = thisTbl.tHead.rows[thisTbl.tHead.rows.length-1]; + } else { + var firstRow = thisTbl.rows[0]; + } + + for (var ci=0;ci 0) { + if (t.tHead && t.tHead.rows.length > 0) { + var firstRow = t.tHead.rows[t.tHead.rows.length-1]; + thead = true; + } else { + var firstRow = t.rows[0]; + } + } + if (!firstRow) return; + + // We have a first row: assume it's the header, and make its contents clickable links + for (var i=0;i'+txt+''; + } + } + if (alternate_row_colors) { + alternate(t); + } +} + +function ts_getInnerText(el) { + if (typeof el == "string") return el; + if (typeof el == "undefined") { return el }; + if (el.innerText) return el.innerText; //Not needed but it is faster + var str = ""; + + var cs = el.childNodes; + var l = cs.length; + for (var i = 0; i < l; i++) { + switch (cs[i].nodeType) { + case 1: //ELEMENT_NODE + str += ts_getInnerText(cs[i]); + break; + case 3: //TEXT_NODE + str += cs[i].nodeValue; + break; + } + } + return str; +} + +function ts_resortTable(lnk, clid) { + var span; + for (var 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
  • hq((5npM{{hXY`J4&##>^CusZ|1ZMc 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 SS?EXgbX+JR>gx8uweP>k=~Np4 literal 0 HcmV?d00001 diff --git a/epochX/cudacpp/gg_tt.mad/Source/BIAS/bias.inc b/epochX/cudacpp/gg_tt.mad/Source/BIAS/bias.inc deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/epochX/cudacpp/gg_tt.mad/Source/make_opts b/epochX/cudacpp/gg_tt.mad/Source/make_opts index f9f7b64bb5..2607530b78 100644 --- a/epochX/cudacpp/gg_tt.mad/Source/make_opts +++ b/epochX/cudacpp/gg_tt.mad/Source/make_opts @@ -1,12 +1,11 @@ DEFAULT_CPP_COMPILER=g++ -DEFAULT_F2PY_COMPILER=f2py3 -DEFAULT_F_COMPILER=gfortran -GLOBAL_FLAG=-O3 -ffast-math -fbounds-check MACFLAG= -MG5AMC_VERSION=SpecifiedByMG5aMCAtRunTime -PYTHIA8_PATH=NotInstalled STDLIB=-lstdc++ STDLIB_FLAG= +DEFAULT_F_COMPILER=gfortran +DEFAULT_F2PY_COMPILER=f2py3.9 +MG5AMC_VERSION=SpecifiedByMG5aMCAtRunTime +PYTHIA8_PATH=NotInstalled #end_of_make_opts_variables BIASLIBDIR=../../../lib/ diff --git a/epochX/cudacpp/gg_tt.mad/Source/param_card.inc b/epochX/cudacpp/gg_tt.mad/Source/param_card.inc deleted file mode 100644 index 081365c16b..0000000000 --- a/epochX/cudacpp/gg_tt.mad/Source/param_card.inc +++ /dev/null @@ -1,15 +0,0 @@ - MDL_MB = 4.700000D+00 - MDL_MT = 1.730000D+02 - MDL_MTA = 1.777000D+00 - MDL_MZ = 9.118800D+01 - MDL_MH = 1.250000D+02 - AEWM1 = 1.325070D+02 - MDL_GF = 1.166390D-05 - AS = 1.180000D-01 - MDL_YMB = 4.700000D+00 - MDL_YMT = 1.730000D+02 - MDL_YMTAU = 1.777000D+00 - MDL_WT = 1.491500D+00 - MDL_WZ = 2.441404D+00 - MDL_WW = 2.047600D+00 - MDL_WH = 6.382339D-03 diff --git a/epochX/cudacpp/gg_tt.mad/Source/run_card.inc b/epochX/cudacpp/gg_tt.mad/Source/run_card.inc deleted file mode 100644 index 57b2b878dc..0000000000 --- a/epochX/cudacpp/gg_tt.mad/Source/run_card.inc +++ /dev/null @@ -1,364 +0,0 @@ - GRIDPACK = .FALSE. - - NEVENTS = 10000 - - ISEED = 0 - - LPP(1) = 1 - - LPP(2) = 1 - - EBEAM(1) = 6.5000000000D+03 - - EBEAM(2) = 6.5000000000D+03 - - PB1 = 0.0000000000D+00 - - PB2 = 0.0000000000D+00 - - NB_PROTON(1) = 1 - - NB_PROTON(2) = 1 - - NB_NEUTRON(1) = 0 - - NB_NEUTRON(2) = 0 - - MASS_ION(1) = -1.0000000000D+00 - - MASS_ION(2) = -1.0000000000D+00 - - PDLABEL = 'nn23lo1' - - PDSUBLABEL(1) = 'nn23lo1' - - PDSUBLABEL(2) = 'nn23lo1' - - LHAID = 230000 - - FIXED_REN_SCALE = .FALSE. - - FIXED_FAC_SCALE1 = .FALSE. - - FIXED_FAC_SCALE2 = .FALSE. - - FIXED_EXTRA_SCALE = .FALSE. - - SCALE = 9.1188000000D+01 - - SF1 = 9.1188000000D+01 - - SF2 = 9.1188000000D+01 - - MUE_REF_FIXED = 9.1188000000D+01 - - DYNAMICAL_SCALE_CHOICE = -1 - - MUE_OVER_REF = 1.0000000000D+00 - - IEVO_EVA = 0 - - SCALEFACT = 1.0000000000D+00 - - ICKKW = 0 - - NHMULT = 1 - - KTSCHEME = 1 - - ALPSFACT = 1.0000000000D+00 - - CHCLUSTER = .FALSE. - - PDFWGT = .TRUE. - - ASRWGTFLAVOR = 5 - - CLUSINFO = .TRUE. - - LHE_VERSION = 3.0000000000D+00 - - FRAME_ID = 6 - - AUTO_PTJ_MJJ = .TRUE. - - BWCUTOFF = 1.5000000000D+01 - - CUT_DECAYS = .FALSE. - - DSQRT_SHAT = 0.0000000000D+00 - - PTJ = 2.0000000000D+01 - - PTB = 0.0000000000D+00 - - PTA = 1.0000000000D+01 - - PTL = 1.0000000000D+01 - - MISSET = 0.0000000000D+00 - - PTHEAVY = 0.0000000000D+00 - - PTJMAX = -1.0000000000D+00 - - PTBMAX = -1.0000000000D+00 - - PTAMAX = -1.0000000000D+00 - - PTLMAX = -1.0000000000D+00 - - MISSETMAX = -1.0000000000D+00 - - EJ = 0.0000000000D+00 - - EB = 0.0000000000D+00 - - EA = 0.0000000000D+00 - - EL = 0.0000000000D+00 - - EJMAX = -1.0000000000D+00 - - EBMAX = -1.0000000000D+00 - - EAMAX = -1.0000000000D+00 - - ELMAX = -1.0000000000D+00 - - ETAJ = 5.0000000000D+00 - - ETAB = -1.0000000000D+00 - - ETAA = 2.5000000000D+00 - - ETAL = 2.5000000000D+00 - - ETAJMIN = 0.0000000000D+00 - - ETABMIN = 0.0000000000D+00 - - ETAAMIN = 0.0000000000D+00 - - ETALMIN = 0.0000000000D+00 - - DRJJ = 4.0000000000D-01 - - DRBB = 0.0000000000D+00 - - DRLL = 4.0000000000D-01 - - DRAA = 4.0000000000D-01 - - DRBJ = 0.0000000000D+00 - - DRAJ = 4.0000000000D-01 - - DRJL = 4.0000000000D-01 - - DRAB = 0.0000000000D+00 - - DRBL = 0.0000000000D+00 - - DRAL = 4.0000000000D-01 - - DRJJMAX = -1.0000000000D+00 - - DRBBMAX = -1.0000000000D+00 - - DRLLMAX = -1.0000000000D+00 - - DRAAMAX = -1.0000000000D+00 - - DRBJMAX = -1.0000000000D+00 - - DRAJMAX = -1.0000000000D+00 - - DRJLMAX = -1.0000000000D+00 - - DRABMAX = -1.0000000000D+00 - - DRBLMAX = -1.0000000000D+00 - - DRALMAX = -1.0000000000D+00 - - MMJJ = 0.0000000000D+00 - - MMBB = 0.0000000000D+00 - - MMAA = 0.0000000000D+00 - - MMLL = 0.0000000000D+00 - - MMJJMAX = -1.0000000000D+00 - - MMBBMAX = -1.0000000000D+00 - - MMAAMAX = -1.0000000000D+00 - - MMLLMAX = -1.0000000000D+00 - - MMNL = 0.0000000000D+00 - - MMNLMAX = -1.0000000000D+00 - - PTLLMIN = 0.0000000000D+00 - - PTLLMAX = -1.0000000000D+00 - - XPTJ = 0.0000000000D+00 - - XPTB = 0.0000000000D+00 - - XPTA = 0.0000000000D+00 - - XPTL = 0.0000000000D+00 - - PTJ1MIN = 0.0000000000D+00 - - PTJ1MAX = -1.0000000000D+00 - - PTJ2MIN = 0.0000000000D+00 - - PTJ2MAX = -1.0000000000D+00 - - PTJ3MIN = 0.0000000000D+00 - - PTJ3MAX = -1.0000000000D+00 - - PTJ4MIN = 0.0000000000D+00 - - PTJ4MAX = -1.0000000000D+00 - - CUTUSE = 0 - - PTL1MIN = 0.0000000000D+00 - - PTL1MAX = -1.0000000000D+00 - - PTL2MIN = 0.0000000000D+00 - - PTL2MAX = -1.0000000000D+00 - - PTL3MIN = 0.0000000000D+00 - - PTL3MAX = -1.0000000000D+00 - - PTL4MIN = 0.0000000000D+00 - - PTL4MAX = -1.0000000000D+00 - - HTJMIN = 0.0000000000D+00 - - HTJMAX = -1.0000000000D+00 - - IHTMIN = 0.0000000000D+00 - - IHTMAX = -1.0000000000D+00 - - HT2MIN = 0.0000000000D+00 - - HT3MIN = 0.0000000000D+00 - - HT4MIN = 0.0000000000D+00 - - HT2MAX = -1.0000000000D+00 - - HT3MAX = -1.0000000000D+00 - - HT4MAX = -1.0000000000D+00 - - PTGMIN = 0.0000000000D+00 - - R0GAMMA = 4.0000000000D-01 - - XN = 1.0000000000D+00 - - EPSGAMMA = 1.0000000000D+00 - - ISOEM = .TRUE. - - XETAMIN = 0.0000000000D+00 - - DELTAETA = 0.0000000000D+00 - - KT_DURHAM = -1.0000000000D+00 - - D_PARAMETER = 4.0000000000D-01 - - PT_LUND = -1.0000000000D+00 - - PDGS_FOR_MERGING_CUT(0) = 7 - - PDGS_FOR_MERGING_CUT(1) = 21 - - PDGS_FOR_MERGING_CUT(2) = 1 - - PDGS_FOR_MERGING_CUT(3) = 2 - - PDGS_FOR_MERGING_CUT(4) = 3 - - PDGS_FOR_MERGING_CUT(5) = 4 - - PDGS_FOR_MERGING_CUT(6) = 5 - - PDGS_FOR_MERGING_CUT(7) = 6 - - MAXJETFLAVOR = 4 - - XQCUT = 0.0000000000D+00 - - USE_SYST = .TRUE. - - GRIDRUN = .FALSE. - - FIXED_COUPLINGS = .TRUE. - - MC_GROUPED_SUBPROC = .TRUE. - - XMTC = 0.0000000000D+00 - - D = 1.0000000000D+00 - - ISSGRIDFILE = '' - - TMIN_FOR_CHANNEL = -1.0000000000D+00 - - SMALL_WIDTH_TREATMENT = 1.0000000000D-06 - - SDE_STRAT = 1 - - PDG_CUT(0) = 1 - - PDG_CUT(1) = 0 - - PTMIN4PDG(0) = 1.0000000000D+00 - - PTMIN4PDG(1) = 0.0000000000D+00 - - PTMAX4PDG(0) = 1.0000000000D+00 - - PTMAX4PDG(1) = -1.0000000000D+00 - - EMIN4PDG(0) = 1.0000000000D+00 - - EMIN4PDG(1) = 0.0000000000D+00 - - EMAX4PDG(0) = 1.0000000000D+00 - - EMAX4PDG(1) = -1.0000000000D+00 - - ETAMIN4PDG(0) = 1.0000000000D+00 - - ETAMIN4PDG(1) = 0.0000000000D+00 - - ETAMAX4PDG(0) = 1.0000000000D+00 - - ETAMAX4PDG(1) = -1.0000000000D+00 - - MXXMIN4PDG(0) = 1.0000000000D+00 - - MXXMIN4PDG(1) = 0.0000000000D+00 - - MXXPART_ANTIPART(1) = .FALSE. - diff --git a/epochX/cudacpp/gg_tt.mad/Source/vector.inc b/epochX/cudacpp/gg_tt.mad/Source/vector.inc index e2b8f5b265..dc4a5bc708 100644 --- a/epochX/cudacpp/gg_tt.mad/Source/vector.inc +++ b/epochX/cudacpp/gg_tt.mad/Source/vector.inc @@ -28,8 +28,10 @@ C BECAUSE IT DOES NOT GO THROUGH THE CPP PREPROCESSOR C (see https://github.com/madgraph5/madgraph4gpu/issues/458). C INTEGER WRAP_SIZE - PARAMETER (WRAP_SIZE=16384) + PARAMETER (WRAP_SIZE=16) INTEGER NB_WRAP PARAMETER (NB_WRAP=1) INTEGER VECSIZE_MEMMAX - PARAMETER (VECSIZE_MEMMAX=16384) + PARAMETER (VECSIZE_MEMMAX=16) + + diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/.gitignore b/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/.gitignore deleted file mode 100644 index 7fc2433954..0000000000 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/.gitignore +++ /dev/null @@ -1,12 +0,0 @@ -.libs -.cudacpplibs -madevent -madevent_fortran -madevent_cpp -madevent_cuda - -G[0-9]* -ajob[0-9]* -input_app.txt -symfact.dat -gensym diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/auto_dsig1.f b/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/auto_dsig1.f index 3b269852c9..5ebe406840 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/auto_dsig1.f +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/auto_dsig1.f @@ -495,7 +495,7 @@ SUBROUTINE PRINT_ZERO_AMP1() SUBROUTINE SMATRIX1_MULTI(P_MULTI, HEL_RAND, COL_RAND, CHANNELS, $ OUT, SELECTED_HEL, SELECTED_COL, VECSIZE_USED) - USE OMP_LIB + IMPLICIT NONE INCLUDE 'nexternal.inc' @@ -515,12 +515,47 @@ SUBROUTINE SMATRIX1_MULTI(P_MULTI, HEL_RAND, COL_RAND, CHANNELS, INTEGER IVEC + INTEGER IEXT + INTEGER ISUM_HEL + LOGICAL MULTI_CHANNEL + COMMON/TO_MATRIX/ISUM_HEL, MULTI_CHANNEL -!$OMP PARALLEL -!$OMP DO - DO IVEC=1, VECSIZE_USED - CALL SMATRIX1(P_MULTI(0,1,IVEC), + LOGICAL FIRST_CHID + SAVE FIRST_CHID + DATA FIRST_CHID/.TRUE./ + +#ifdef MG5AMC_MEEXPORTER_CUDACPP + INCLUDE 'coupl.inc' ! for ALL_G + INCLUDE 'fbridge.inc' + INCLUDE 'fbridge_common.inc' + INCLUDE 'genps.inc' + INCLUDE 'run.inc' + DOUBLE PRECISION OUT2(VECSIZE_MEMMAX) + INTEGER SELECTED_HEL2(VECSIZE_MEMMAX) + INTEGER SELECTED_COL2(VECSIZE_MEMMAX) + DOUBLE PRECISION CBYF1 + INTEGER*4 NGOODHEL, NTOTHEL + + INTEGER*4 NWARNINGS + SAVE NWARNINGS + DATA NWARNINGS/0/ + + LOGICAL FIRST + SAVE FIRST + DATA FIRST/.TRUE./ +#else + INTEGER FBRIDGE_MODE +#endif + CALL COUNTERS_SMATRIX1MULTI_START( -1, VECSIZE_USED ) ! fortran=-1 + + + + IF( FBRIDGE_MODE .LE. 0 ) THEN ! (FortranOnly=0 or BothQuiet=-1 or BothDebug=-2) + CALL COUNTERS_SMATRIX1MULTI_START( -1, VECSIZE_USED ) ! fortran=-1 + + DO IVEC=1, VECSIZE_USED + CALL SMATRIX1(P_MULTI(0,1,IVEC), & hel_rand(IVEC), & col_rand(IVEC), & channels(IVEC), @@ -529,45 +564,137 @@ SUBROUTINE SMATRIX1_MULTI(P_MULTI, HEL_RAND, COL_RAND, CHANNELS, & selected_hel(IVEC), & selected_col(IVEC) & ) - ENDDO -!$OMP END DO -!$OMP END PARALLEL + ENDDO +C The following lines has been copy from the plugin +C template_file +C CUDACPP/madgraph/iolibs/template_files/gpu/smatrix_multi.f +C and are designed to be put at the end of the smatrix$i_multi +C function part of the auto_dsig$i.f file +C + CALL COUNTERS_SMATRIX1MULTI_STOP( -1 ) ! fortran=-1 + ENDIF - RETURN - END +#ifdef MG5AMC_MEEXPORTER_CUDACPP + IF( FBRIDGE_MODE .EQ. 1 .OR. FBRIDGE_MODE .LT. 0 ) THEN ! (CppOnly=1 or BothQuiet=-1 or BothDebug=-2) + IF( LIMHEL.NE.0 ) THEN + WRITE(6,*) 'ERROR ! The cudacpp bridge only supports LIMHEL=0' + STOP + ENDIF + IF ( FIRST ) THEN ! exclude first pass (helicity filtering) from timers (#461) + CALL FBRIDGESEQUENCE(FBRIDGE_PBRIDGE, P_MULTI, ALL_G, + & HEL_RAND, COL_RAND, 0, OUT2, + & SELECTED_HEL2, SELECTED_COL2 ) ! 0: multi channel disabled for helicity filtering + FIRST = .FALSE. +C ! This is a workaround for +C https://github.com/oliviermattelaer/mg5amc_test/issues/22 +C (see PR #486) + IF( FBRIDGE_MODE .EQ. 1 ) THEN ! (CppOnly=1 : SMATRIX1 is not called at all) + CALL RESET_CUMULATIVE_VARIABLE() ! mimic 'avoid bias of the initialization' within SMATRIX1 + ENDIF + CALL FBRIDGEGETNGOODHEL(FBRIDGE_PBRIDGE,NGOODHEL,NTOTHEL) + IF( NTOTHEL .NE. NCOMB ) THEN + WRITE(6,*) 'ERROR ! Cudacpp/Fortran mismatch', + & ' in total number of helicities', NTOTHEL, NCOMB + STOP + ENDIF + WRITE (6,*) 'NGOODHEL =', NGOODHEL + WRITE (6,*) 'NCOMB =', NCOMB + ENDIF + CALL COUNTERS_SMATRIX1MULTI_START( 0, VECSIZE_USED ) ! cudacpp=0 + IF ( .NOT. MULTI_CHANNEL ) THEN + CALL FBRIDGESEQUENCE(FBRIDGE_PBRIDGE, P_MULTI, ALL_G, + & HEL_RAND, COL_RAND, 0, OUT2, + & SELECTED_HEL2, SELECTED_COL2 ) ! 0: multi channel disabled + ELSE + IF( SDE_STRAT.NE.1 ) THEN + WRITE(6,*) 'ERROR ! The cudacpp bridge requires SDE=1' ! multi channel single-diagram enhancement strategy + STOP + ENDIF + CALL FBRIDGESEQUENCE(FBRIDGE_PBRIDGE, P_MULTI, ALL_G, + & HEL_RAND, COL_RAND, CHANNELS(1), OUT2, + & SELECTED_HEL2, SELECTED_COL2 ) ! 1-N: multi channel enabled + ENDIF + CALL COUNTERS_SMATRIX1MULTI_STOP( 0 ) ! cudacpp=0 + ENDIF - INTEGER FUNCTION GET_NHEL1(HEL, IPART) -C if hel>0 return the helicity of particule ipart for the selected -C helicity configuration -C if hel=0 return the number of helicity state possible for that -C particle - IMPLICIT NONE - INTEGER HEL,I, IPART - INCLUDE 'nexternal.inc' - INTEGER ONE_NHEL(NEXTERNAL) - INTEGER NCOMB - PARAMETER ( NCOMB=16) - INTEGER NHEL(NEXTERNAL,0:NCOMB) - DATA (NHEL(I,0),I=1,4) / 2, 2, 2, 2/ - DATA (NHEL(I, 1),I=1,4) /-1,-1,-1, 1/ - DATA (NHEL(I, 2),I=1,4) /-1,-1,-1,-1/ - DATA (NHEL(I, 3),I=1,4) /-1,-1, 1, 1/ - DATA (NHEL(I, 4),I=1,4) /-1,-1, 1,-1/ - DATA (NHEL(I, 5),I=1,4) /-1, 1,-1, 1/ - DATA (NHEL(I, 6),I=1,4) /-1, 1,-1,-1/ - DATA (NHEL(I, 7),I=1,4) /-1, 1, 1, 1/ - DATA (NHEL(I, 8),I=1,4) /-1, 1, 1,-1/ - DATA (NHEL(I, 9),I=1,4) / 1,-1,-1, 1/ - DATA (NHEL(I, 10),I=1,4) / 1,-1,-1,-1/ - DATA (NHEL(I, 11),I=1,4) / 1,-1, 1, 1/ - DATA (NHEL(I, 12),I=1,4) / 1,-1, 1,-1/ - DATA (NHEL(I, 13),I=1,4) / 1, 1,-1, 1/ - DATA (NHEL(I, 14),I=1,4) / 1, 1,-1,-1/ - DATA (NHEL(I, 15),I=1,4) / 1, 1, 1, 1/ - DATA (NHEL(I, 16),I=1,4) / 1, 1, 1,-1/ - - GET_NHEL1 = NHEL(IPART, IABS(HEL)) - RETURN - END + IF( FBRIDGE_MODE .LT. 0 ) THEN ! (BothQuiet=-1 or BothDebug=-2) + DO IVEC=1, VECSIZE_USED + CBYF1 = OUT2(IVEC)/OUT(IVEC) - 1 + FBRIDGE_NCBYF1 = FBRIDGE_NCBYF1 + 1 + FBRIDGE_CBYF1SUM = FBRIDGE_CBYF1SUM + CBYF1 + FBRIDGE_CBYF1SUM2 = FBRIDGE_CBYF1SUM2 + CBYF1 * CBYF1 + IF( CBYF1 .GT. FBRIDGE_CBYF1MAX ) FBRIDGE_CBYF1MAX = CBYF1 + IF( CBYF1 .LT. FBRIDGE_CBYF1MIN ) FBRIDGE_CBYF1MIN = CBYF1 + IF( FBRIDGE_MODE .EQ. -2 ) THEN ! (BothDebug=-2) + WRITE (*,'(I4,2E16.8,F23.11,I3,I3,I4,I4)') + & IVEC, OUT(IVEC), OUT2(IVEC), 1+CBYF1, + & SELECTED_HEL(IVEC), SELECTED_HEL2(IVEC), + & SELECTED_COL(IVEC), SELECTED_COL2(IVEC) + ENDIF + IF( ABS(CBYF1).GT.5E-5 .AND. NWARNINGS.LT.20 ) THEN + NWARNINGS = NWARNINGS + 1 + WRITE (*,'(A,I4,A,I4,2E16.8,F23.11)') + & 'WARNING! (', NWARNINGS, '/20) Deviation more than 5E-5', + & IVEC, OUT(IVEC), OUT2(IVEC), 1+CBYF1 + ENDIF + END DO + ENDIF + + IF( FBRIDGE_MODE .EQ. 1 .OR. FBRIDGE_MODE .LT. 0 ) THEN ! (CppOnly=1 or BothQuiet=-1 or BothDebug=-2) + DO IVEC=1, VECSIZE_USED + OUT(IVEC) = OUT2(IVEC) ! use the cudacpp ME instead of the fortran ME! + SELECTED_HEL(IVEC) = SELECTED_HEL2(IVEC) ! use the cudacpp helicity instead of the fortran helicity! + SELECTED_COL(IVEC) = SELECTED_COL2(IVEC) ! use the cudacpp color instead of the fortran color! + END DO + ENDIF +#endif + + IF ( FIRST_CHID ) THEN + IF ( MULTI_CHANNEL ) THEN + WRITE (*,*) 'MULTI_CHANNEL = TRUE' + ELSE + WRITE (*,*) 'MULTI_CHANNEL = FALSE' + ENDIF + WRITE (*,*) 'CHANNEL_ID =', CHANNELS(1) + FIRST_CHID = .FALSE. + ENDIF + + + RETURN + END + + INTEGER FUNCTION GET_NHEL1(HEL, IPART) +C if hel>0 return the helicity of particule ipart for the +C selected helicity configuration +C if hel=0 return the number of helicity state possible +C for that particle + IMPLICIT NONE + INTEGER HEL,I, IPART + INCLUDE 'nexternal.inc' + INTEGER ONE_NHEL(NEXTERNAL) + INTEGER NCOMB + PARAMETER ( NCOMB=16) + INTEGER NHEL(NEXTERNAL,0:NCOMB) + DATA (NHEL(I,0),I=1,4) / 2, 2, 2, 2/ + DATA (NHEL(I, 1),I=1,4) /-1,-1,-1, 1/ + DATA (NHEL(I, 2),I=1,4) /-1,-1,-1,-1/ + DATA (NHEL(I, 3),I=1,4) /-1,-1, 1, 1/ + DATA (NHEL(I, 4),I=1,4) /-1,-1, 1,-1/ + DATA (NHEL(I, 5),I=1,4) /-1, 1,-1, 1/ + DATA (NHEL(I, 6),I=1,4) /-1, 1,-1,-1/ + DATA (NHEL(I, 7),I=1,4) /-1, 1, 1, 1/ + DATA (NHEL(I, 8),I=1,4) /-1, 1, 1,-1/ + DATA (NHEL(I, 9),I=1,4) / 1,-1,-1, 1/ + DATA (NHEL(I, 10),I=1,4) / 1,-1,-1,-1/ + DATA (NHEL(I, 11),I=1,4) / 1,-1, 1, 1/ + DATA (NHEL(I, 12),I=1,4) / 1,-1, 1,-1/ + DATA (NHEL(I, 13),I=1,4) / 1, 1,-1, 1/ + DATA (NHEL(I, 14),I=1,4) / 1, 1,-1,-1/ + DATA (NHEL(I, 15),I=1,4) / 1, 1, 1, 1/ + DATA (NHEL(I, 16),I=1,4) / 1, 1, 1,-1/ + + GET_NHEL1 = NHEL(IPART, IABS(HEL)) + RETURN + END diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/matrix1.f b/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/matrix1.f index 1ee4c008b0..05a3b82521 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/matrix1.f +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/matrix1.f @@ -429,10 +429,10 @@ REAL*8 FUNCTION MATRIX1(P,NHEL,IC, IHEL,AMP2, JAMP2, IVEC) CALL VVV1P0_1(W(1,1),W(1,2),GC_10(IVEC),ZERO, FK_ZERO,W(1,5)) C Amplitude(s) for diagram number 1 CALL FFV1_0(W(1,4),W(1,3),W(1,5),GC_11(IVEC),AMP(1)) - CALL FFV1_1(W(1,3),W(1,1),GC_11(IVEC),MDL_MT, FK_MDL_WT,W(1,5)) + CALL FFV1_1(W(1,3),W(1,1),GC_11(IVEC),MDL_MT, ZERO,W(1,5)) C Amplitude(s) for diagram number 2 CALL FFV1_0(W(1,4),W(1,5),W(1,2),GC_11(IVEC),AMP(2)) - CALL FFV1_2(W(1,4),W(1,1),GC_11(IVEC),MDL_MT, FK_MDL_WT,W(1,5)) + CALL FFV1_2(W(1,4),W(1,1),GC_11(IVEC),MDL_MT, ZERO,W(1,5)) C Amplitude(s) for diagram number 3 CALL FFV1_0(W(1,5),W(1,3),W(1,2),GC_11(IVEC),AMP(3)) diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/proc_characteristics b/epochX/cudacpp/gg_tt.mad/SubProcesses/proc_characteristics index 51cb12fb25..1e1cd93bfa 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/proc_characteristics +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/proc_characteristics @@ -8,7 +8,7 @@ ninitial = 2 grouped_matrix = True has_loops = False - bias_module = dummy + bias_module = None max_n_matched_jets = 0 colored_pdgs = [1, 2, 3, 4, 5, 6, 21] complex_mass_scheme = False diff --git a/epochX/cudacpp/gg_tt.mad/bin/internal/run_plot b/epochX/cudacpp/gg_tt.mad/bin/internal/run_plot new file mode 100755 index 0000000000..7deee7ac88 --- /dev/null +++ b/epochX/cudacpp/gg_tt.mad/bin/internal/run_plot @@ -0,0 +1,47 @@ +#!/bin/bash +# +# This runs MadAnalysis on the unweighted_events.lhe +# +# Usage: run_plot run_name [madir [tddir]] +# where madir is the path to the MadAnalysis package + +main=`pwd` + +if [ "$1" != "" ] +then + run=$1 +else + echo "Usage: run_plot runname [MAdir [tddir]]" + exit +fi + +if [ "$2" != "" ] +then + MAdir=$main/$2 +else + MAdir=$main/../../MadAnalysis +fi + +if [ "$3" != "" ]; then + td=$main/$3 +else + td=$main/../../td +fi + +dirbin=$main/../bin + +if [[ $run != "" && -e ${run}_unweighted_events.lhe.gz ]];then + gunzip -c ${run}_unweighted_events.lhe.gz > unweighted_events.lhe +fi + +if [[ (-x $MAdir/plot_events) && (-e unweighted_events.lhe) && (-e ../Cards/plot_card.dat) ]]; then + echo "Creating Plots" + mkdir $run + cd $run + echo "../unweighted_events.lhe" > events.list + $dirbin/plot $MAdir $td > plot.log + cd .. + $dirbin/plot_page-pl $run parton + mv plots.html ${run}_plots.html +fi + diff --git a/epochX/cudacpp/gg_tt.mad/bin/internal/run_plot_delphes b/epochX/cudacpp/gg_tt.mad/bin/internal/run_plot_delphes new file mode 100755 index 0000000000..975f410d0e --- /dev/null +++ b/epochX/cudacpp/gg_tt.mad/bin/internal/run_plot_delphes @@ -0,0 +1,46 @@ +#!/bin/bash +# +# This runs MadAnalysis on the delphes_events.lhco +# +# Usage: run_plot run_name [madir [tddir]] +# where madir is the path to the MadAnalysis package + +main=`pwd` + +if [ "$1" != "" ] +then + run=$1 +else + echo "Usage: run_plot runname [MAdir [tddir]]" + exit +fi + +if [ "$2" != "" ] +then + MAdir=$main/$2 +else + MAdir=$main/../../MadAnalysis +fi + +if [ "$3" != "" ]; then + td=$main/$3 +else + td=$main/../../td +fi + +dirbin=$main/../bin + +if [[ $run != "" && -e ${run}_delphes_events.lhco.gz ]];then + gunzip -c ${run}_delphes_events.lhco.gz > delphes_events.lhco +fi + +if [[ (-x $MAdir/plot_events) && (-e delphes_events.lhco) && (-e ../Cards/plot_card.dat) ]]; then + echo "Creating Plots" + mkdir ${run}_delphes + cd ${run}_delphes + echo "../delphes_events.lhco" > events.list + $dirbin/plot $MAdir $td > plot.log + cd .. + $dirbin/plot_page-pl ${run}_delphes Delphes + mv plots.html ${run}_plots_delphes.html +fi diff --git a/epochX/cudacpp/gg_tt.mad/bin/internal/run_plot_pgs b/epochX/cudacpp/gg_tt.mad/bin/internal/run_plot_pgs new file mode 100755 index 0000000000..e7a36ef344 --- /dev/null +++ b/epochX/cudacpp/gg_tt.mad/bin/internal/run_plot_pgs @@ -0,0 +1,47 @@ +#!/bin/bash +# +# This runs MadAnalysis on the unweighted_events.lhe +# +# Usage: run_plot run_name [madir [tddir]] +# where madir is the path to the MadAnalysis package + +main=`pwd` + +if [ "$1" != "" ] +then + run=$1 +else + echo "Usage: run_plot runname [MAdir [tddir]]" + exit +fi + +if [ "$2" != "" ] +then + MAdir=$main/$2 +else + MAdir=$main/../../MadAnalysis +fi + +if [ "$3" != "" ]; then + td=$main/$3 +else + td=$main/../../td +fi + +dirbin=$main/../bin + +if [[ $run != "" && -e ${run}_pgs_events.lhco.gz ]];then + gunzip -c ${run}_pgs_events.lhco.gz > pgs_events.lhco +fi + +if [[ (-x $MAdir/plot_events) && (-e pgs_events.lhco) && (-e ../Cards/plot_card.dat) ]]; then + echo "Creating Plots" + mkdir ${run}_pgs + cd ${run}_pgs + echo "../pgs_events.lhco" > events.list + $dirbin/plot $MAdir $td > plot.log + cd .. + $dirbin/plot_page-pl ${run}_pgs PGS + mv plots.html ${run}_plots_pgs.html +fi + diff --git a/epochX/cudacpp/gg_tt.mad/bin/internal/run_plot_pythia b/epochX/cudacpp/gg_tt.mad/bin/internal/run_plot_pythia new file mode 100755 index 0000000000..532bfb4b7b --- /dev/null +++ b/epochX/cudacpp/gg_tt.mad/bin/internal/run_plot_pythia @@ -0,0 +1,50 @@ +#!/bin/bash +# +# This runs MadAnalysis on the unweighted_events.lhe +# +# Usage: run_plot run_name [madir [tddir]] +# where madir is the path to the MadAnalysis package + +main=`pwd` + +if [ "$1" != "" ] +then + run=$1 +else + echo "Usage: run_plot runname [MAdir [tddir]]" + exit +fi + +if [ "$2" != "" ] +then + MAdir=$main/$2 +else + MAdir=$main/../../MadAnalysis +fi + +if [ "$3" != "" ]; then + td=$main/$3 +else + td=$main/../../td +fi + +dirbin=$main/../bin/internal + +if [[ $run != "" && -e ${run}_pythia_events.lhe.gz ]];then + gunzip -c ${run}_pythia_events.lhe.gz > pythia_events.lhe +fi + +if [[ (-x $MAdir/plot_events) && (-e pythia_events.lhe) && (-e ../Cards/plot_card.dat) ]]; then + echo "Creating Plots" + mkdir ${run}_pythia + cd ${run}_pythia + echo "../pythia_events.lhe" > events.list + $dirbin/plot $MAdir $td > plot.log + cd .. + $dirbin/plot_page-pl ${run}_pythia Pythia + mv plots.html ${run}_plots_pythia.html + $dirbin/gen_crossxhtml-pl $run +else + echo "Not creating plots" +fi + diff --git a/epochX/cudacpp/gg_tt.mad/bin/internal/ufomodel/.gitignore b/epochX/cudacpp/gg_tt.mad/bin/internal/ufomodel/.gitignore deleted file mode 100644 index dc4db554f7..0000000000 --- a/epochX/cudacpp/gg_tt.mad/bin/internal/ufomodel/.gitignore +++ /dev/null @@ -1 +0,0 @@ -py3_model.pkl diff --git a/epochX/cudacpp/gg_tt.mad/madevent.tar.gz b/epochX/cudacpp/gg_tt.mad/madevent.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..9a95cf79c305b0d01171906a6e198f32e1f21dbe GIT binary patch literal 3495041 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≪G2CsXYs~gES05cvQ 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

    _u)X4eo0_5 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

    M~513aBs1_VP_7xaGV1xvNePNeBN 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

    i`PgJ8X3VbQZPfN>An# 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%0AloMq$UGFr@2jGQWi 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