Skip to content

Commit

Permalink
[icx] regenerate 7 processes sa
Browse files Browse the repository at this point in the history
  • Loading branch information
valassi committed Jul 25, 2023
1 parent 80e3c9b commit 7a1c398
Show file tree
Hide file tree
Showing 42 changed files with 810 additions and 278 deletions.
10 changes: 5 additions & 5 deletions epochX/cudacpp/ee_mumu.sa/CODEGEN_cudacpp_ee_mumu_log.txt
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ generate e+ e- > mu+ mu-
No model currently active, so we import the Standard Model
INFO: load particles
INFO: load vertices
DEBUG: model prefixing takes 0.005183219909667969 
DEBUG: model prefixing takes 0.0053577423095703125 
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 
Expand Down Expand Up @@ -202,7 +202,7 @@ ALOHA: aloha creates FFV1 routines
ALOHA: aloha creates FFV2 routines
ALOHA: aloha creates FFV4 routines
ALOHA: aloha creates FFV2_4 routines
ALOHA: aloha creates 4 routines in 0.219 s
ALOHA: aloha creates 4 routines in 0.216 s
<class 'aloha.create_aloha.AbstractRoutine'> FFV1
<class 'aloha.create_aloha.AbstractRoutine'> FFV1
<class 'aloha.create_aloha.AbstractRoutine'> FFV2
Expand All @@ -225,6 +225,6 @@ INFO: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_ee_mumu/src/.
DEBUG: Entering PLUGIN_ProcessExporter.finalize [output.py at line 203] 
quit

real 0m0.940s
user 0m0.769s
sys 0m0.097s
real 0m0.960s
user 0m0.762s
sys 0m0.119s
16 changes: 14 additions & 2 deletions epochX/cudacpp/ee_mumu.sa/SubProcesses/cudacpp.mk
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,18 @@ MG5AMC_COMMONLIB = mg5amc_common
LIBFLAGS = -L$(LIBDIR) -l$(MG5AMC_COMMONLIB)
INCFLAGS += -I../../src

# Compiler-specific googletest build directory (#125 and #738)
ifneq ($(shell $(CXX) --version | grep '^Intel(R) oneAPI DPC++/C++ Compiler'),)
CXXNAME = icpx$(shell $(CXX) --version | head -1 | cut -d' ' -f5)
else ifneq ($(shell $(CXX) --version | egrep '^clang'),)
CXXNAME = clang$(shell $(CXX) --version | head -1 | cut -d' ' -f3)
else ifneq ($(shell $(CXX) --version | grep '^g++ (GCC)'),)
CXXNAME = gcc$(shell $(CXX) --version | head -1 | cut -d' ' -f3)
else
CXXNAME = unknown
endif
###$(info CXXNAME=$(CXXNAME))

# Dependency on test directory
# Within the madgraph4gpu git repo: by default use a common gtest installation in <topdir>/test (optionally use an external or local gtest)
# Outside the madgraph4gpu git repo: by default do not build the tests (optionally use an external or local gtest)
Expand All @@ -50,10 +62,10 @@ ifneq ($(wildcard $(GTEST_ROOT)),)
TESTDIR =
else ifneq ($(LOCALGTEST),)
TESTDIR=$(TESTDIRLOCAL)
GTEST_ROOT = $(TESTDIR)/googletest/install
GTEST_ROOT = $(TESTDIR)/googletest/install_$(CXXNAME)
else ifneq ($(wildcard ../../../../../epochX/cudacpp/CODEGEN),)
TESTDIR = $(TESTDIRCOMMON)
GTEST_ROOT = $(TESTDIR)/googletest/install
GTEST_ROOT = $(TESTDIR)/googletest/install_$(CXXNAME)
else
TESTDIR =
endif
Expand Down
7 changes: 5 additions & 2 deletions epochX/cudacpp/ee_mumu.sa/SubProcesses/testxxx.cc
Original file line number Diff line number Diff line change
Expand Up @@ -129,8 +129,11 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx )
const fptype p1 = par0[ievt * np4 + 1];
const fptype p2 = par0[ievt * np4 + 2];
const fptype p3 = par0[ievt * np4 + 3];
volatile fptype m2 = p0 * p0 - p1 * p1 - p2 * p2 - p3 * p3; // see #736
mass0[ievt] = sqrt( m2 );
volatile fptype m2 = fpmax( p0 * p0 - p1 * p1 - p2 * p2 - p3 * p3, 0 ); // see #736
if( m2 > 0 )
mass0[ievt] = fpsqrt( (fptype)m2 );
else
mass0[ievt] = 0;
ispzgt0[ievt] = ( p3 > 0 );
ispzlt0[ievt] = ( p3 < 0 );
isptgt0[ievt] = ( p1 != 0 ) || ( p2 != 0 );
Expand Down
67 changes: 48 additions & 19 deletions epochX/cudacpp/ee_mumu.sa/src/HelAmps_sm.h
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,7 @@ namespace mg5amcCpu
// NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701)
// Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727)
// Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724)
// A few additional variables are declared as 'volatile' to avoid sqrt-of-negative-number FPEs (#736)
const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar );
const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar );
const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar );
Expand All @@ -205,7 +206,12 @@ namespace mg5amcCpu
const int nh = nhel * nsf;
if( fmass != 0. )
{
#ifndef MGONGPU_CPPSIMD
const fptype_sv pp = fpmin( pvec0, fpsqrt( pvec1 * pvec1 + pvec2 * pvec2 + pvec3 * pvec3 ) );
#else
volatile fptype_sv p2 = pvec1 * pvec1 + pvec2 * pvec2 + pvec3 * pvec3; // volatile fixes #736
const fptype_sv pp = fpmin( pvec0, fpsqrt( p2 ) );
#endif
// In C++ ixxxxx, use a single ip/im numbering that is valid both for pp==0 and pp>0, which have two numbering schemes in Fortran ixxxxx:
// for pp==0, Fortran sqm(0:1) has indexes 0,1 as in C++; but for Fortran pp>0, omega(2) has indexes 1,2 and not 0,1
// NB: this is only possible in ixxxx, but in oxxxxx two different numbering schemes must be used
Expand Down Expand Up @@ -254,9 +260,10 @@ namespace mg5amcCpu
omega[1] = fmass / omega[0];
const fptype_v sfomega[2] = { sf[0] * omega[ip], sf[1] * omega[im] };
const fptype_v pp3 = fpmax( pp + pvec3, 0 );
volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0
volatile fptype_v pp3DENOM = fpternary( pp3 != 0, pp3, 1. ); // hack: pp3DENOM[ieppV]=1 if pp3[ieppV]==0
const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / ppDENOM ), 0 ), // hack: dummy[ieppV] is not used if pp[ieppV]==0
volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0
volatile fptype_v pp3DENOM = fpternary( pp3 != 0, pp3, 1. ); // hack: pp3DENOM[ieppV]=1 if pp3[ieppV]==0
volatile fptype_v chi0r2 = pp3 * 0.5 / ppDENOM; // volatile fixes #736
const cxtype_v chi[2] = { cxmake( fpsqrt( chi0r2 ), 0 ), // hack: dummy[ieppV] is not used if pp[ieppV]==0
cxternary( ( pp3 == 0. ),
cxmake( -nh, 0 ),
cxmake( (fptype)nh * pvec1, pvec2 ) / fpsqrt( 2. * ppDENOM * pp3DENOM ) ) }; // hack: dummy[ieppV] is not used if pp[ieppV]==0
Expand All @@ -274,16 +281,20 @@ namespace mg5amcCpu
}
else
{
const fptype_sv sqp0p3 = fpternary( ( pvec1 == 0. and pvec2 == 0. and pvec3 < 0. ),
fptype_sv{ 0 },
fpsqrt( fpmax( pvec0 + pvec3, 0. ) ) * (fptype)nsf );
#ifdef MGONGPU_CPPSIMD
volatile fptype_v sqp0p3DENOM = fpternary( sqp0p3 != 0, sqp0p3, 1. ); // hack: dummy sqp0p3DENOM[ieppV]=1 if sqp0p3[ieppV]==0
cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ),
volatile fptype_sv p0p3 = fpmax( pvec0 + pvec3, 0 ); // volatile fixes #736
volatile fptype_sv sqp0p3 = fpternary( ( pvec1 == 0. and pvec2 == 0. and pvec3 < 0. ),
fptype_sv{ 0 },
fpsqrt( p0p3 ) * (fptype)nsf );
volatile fptype_sv sqp0p3DENOM = fpternary( sqp0p3 != 0, (fptype_sv)sqp0p3, 1. ); // hack: dummy sqp0p3DENOM[ieppV]=1 if sqp0p3[ieppV]==0
cxtype_sv chi[2] = { cxmake( (fptype_v)sqp0p3, 0. ),
cxternary( sqp0p3 == 0,
cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ),
cxmake( (fptype)nh * pvec1, pvec2 ) / (const fptype_v)sqp0p3DENOM ) }; // hack: dummy[ieppV] is not used if sqp0p3[ieppV]==0
#else
const fptype_sv sqp0p3 = fpternary( ( pvec1 == 0. and pvec2 == 0. and pvec3 < 0. ),
fptype_sv{ 0 },
fpsqrt( fpmax( pvec0 + pvec3, 0. ) ) * (fptype)nsf );
const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ),
( sqp0p3 == 0. ? cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ) : cxmake( (fptype)nh * pvec1, pvec2 ) / sqp0p3 ) };
#endif
Expand Down Expand Up @@ -440,6 +451,7 @@ namespace mg5amcCpu
// NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701)
// Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727)
// Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724)
// A few additional variables are declared as 'volatile' to avoid sqrt-of-negative-number FPEs (#736)
const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar );
const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar );
const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar );
Expand All @@ -452,11 +464,11 @@ namespace mg5amcCpu
if( vmass != 0. )
{
const int nsvahl = nsv * std::abs( hel );
const fptype hel0 = 1. - std::abs( hel );
#ifndef MGONGPU_CPPSIMD
const fptype_sv pt2 = ( pvec1 * pvec1 ) + ( pvec2 * pvec2 );
const fptype_sv pp = fpmin( pvec0, fpsqrt( pt2 + ( pvec3 * pvec3 ) ) );
const fptype_sv pt = fpmin( pp, fpsqrt( pt2 ) );
const fptype hel0 = 1. - std::abs( hel );
#ifndef MGONGPU_CPPSIMD
if( pp == 0. )
{
vc[2] = cxmake( 0., 0. );
Expand Down Expand Up @@ -484,6 +496,10 @@ namespace mg5amcCpu
}
}
#else
volatile fptype_sv pt2 = ( pvec1 * pvec1 ) + ( pvec2 * pvec2 );
volatile fptype_sv p2 = pt2 + ( pvec3 * pvec3 ); // volatile fixes #736
const fptype_sv pp = fpmin( pvec0, fpsqrt( p2 ) );
const fptype_sv pt = fpmin( pp, fpsqrt( pt2 ) );
// Branch A: pp == 0.
const cxtype vcA_2 = cxmake( 0, 0 );
const cxtype vcA_3 = cxmake( -hel * sqh, 0 );
Expand Down Expand Up @@ -514,7 +530,12 @@ namespace mg5amcCpu
else
{
const fptype_sv& pp = pvec0; // NB: rewrite the following as in Fortran, using pp instead of pvec0
#ifndef MGONGPU_CPPSIMD
const fptype_sv pt = fpsqrt( ( pvec1 * pvec1 ) + ( pvec2 * pvec2 ) );
#else
volatile fptype_sv pt2 = pvec1 * pvec1 + pvec2 * pvec2; // volatile fixes #736
const fptype_sv pt = fpsqrt( pt2 );
#endif
vc[2] = cxzero_sv();
vc[5] = cxmake( hel * pt / pp * sqh, 0. );
#ifndef MGONGPU_CPPSIMD
Expand Down Expand Up @@ -591,6 +612,7 @@ namespace mg5amcCpu
// NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701)
// Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727)
// Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724)
// A few additional variables are declared as 'volatile' to avoid sqrt-of-negative-number FPEs (#736)
const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar );
const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar );
const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar );
Expand All @@ -601,8 +623,8 @@ namespace mg5amcCpu
const int nh = nhel * nsf;
if( fmass != 0. )
{
const fptype_sv pp = fpmin( pvec0, fpsqrt( ( pvec1 * pvec1 ) + ( pvec2 * pvec2 ) + ( pvec3 * pvec3 ) ) );
#ifndef MGONGPU_CPPSIMD
const fptype_sv pp = fpmin( pvec0, fpsqrt( ( pvec1 * pvec1 ) + ( pvec2 * pvec2 ) + ( pvec3 * pvec3 ) ) );
if( pp == 0. )
{
// NB: Do not use "abs" for floats! It returns an integer with no build warning! Use std::abs!
Expand Down Expand Up @@ -635,6 +657,8 @@ namespace mg5amcCpu
fo[5] = sfomeg[0] * chi[ip];
}
#else
volatile fptype_sv p2 = pvec1 * pvec1 + pvec2 * pvec2 + pvec3 * pvec3; // volatile fixes #736
const fptype_sv pp = fpmin( pvec0, fpsqrt( p2 ) );
// Branch A: pp == 0.
// NB: Do not use "abs" for floats! It returns an integer with no build warning! Use std::abs!
fptype sqm[2] = { fpsqrt( std::abs( fmass ) ), 0 }; // possibility of negative fermion masses
Expand All @@ -654,9 +678,10 @@ namespace mg5amcCpu
const int imB = ( 1 - nh ) / 2;
const fptype_v sfomeg[2] = { sf[0] * omega[ipB], sf[1] * omega[imB] };
const fptype_v pp3 = fpmax( pp + pvec3, 0. );
volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0
volatile fptype_v pp3DENOM = fpternary( pp3 != 0, pp3, 1. ); // hack: pp3DENOM[ieppV]=1 if pp3[ieppV]==0
const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / ppDENOM ), 0. ), // hack: dummy[ieppV] is not used if pp[ieppV]==0
volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0
volatile fptype_v pp3DENOM = fpternary( pp3 != 0, pp3, 1. ); // hack: pp3DENOM[ieppV]=1 if pp3[ieppV]==0
volatile fptype_v chi0r2 = pp3 * 0.5 / ppDENOM; // volatile fixes #736
const cxtype_v chi[2] = { cxmake( fpsqrt( chi0r2 ), 0. ), // hack: dummy[ieppV] is not used if pp[ieppV]==0
( cxternary( ( pp3 == 0. ),
cxmake( -nh, 0. ),
cxmake( (fptype)nh * pvec1, -pvec2 ) / fpsqrt( 2. * ppDENOM * pp3DENOM ) ) ) }; // hack: dummy[ieppV] is not used if pp[ieppV]==0
Expand All @@ -674,16 +699,20 @@ namespace mg5amcCpu
}
else
{
const fptype_sv sqp0p3 = fpternary( ( pvec1 == 0. ) and ( pvec2 == 0. ) and ( pvec3 < 0. ),
0,
fpsqrt( fpmax( pvec0 + pvec3, 0. ) ) * (fptype)nsf );
#ifdef MGONGPU_CPPSIMD
volatile fptype_v sqp0p3DENOM = fpternary( sqp0p3 != 0, sqp0p3, 1. ); // hack: sqp0p3DENOM[ieppV]=1 if sqp0p3[ieppV]==0
const cxtype_v chi[2] = { cxmake( sqp0p3, 0. ),
volatile fptype_sv p0p3 = fpmax( pvec0 + pvec3, 0 ); // volatile fixes #736
volatile fptype_sv sqp0p3 = fpternary( ( pvec1 == 0. and pvec2 == 0. and pvec3 < 0. ),
fptype_sv{ 0 },
fpsqrt( p0p3 ) * (fptype)nsf );
volatile fptype_v sqp0p3DENOM = fpternary( sqp0p3 != 0, (fptype_sv)sqp0p3, 1. ); // hack: sqp0p3DENOM[ieppV]=1 if sqp0p3[ieppV]==0
const cxtype_v chi[2] = { cxmake( (fptype_v)sqp0p3, 0. ),
cxternary( ( sqp0p3 == 0. ),
cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ),
cxmake( (fptype)nh * pvec1, -pvec2 ) / (const fptype_sv)sqp0p3DENOM ) }; // hack: dummy[ieppV] is not used if sqp0p3[ieppV]==0
#else
const fptype_sv sqp0p3 = fpternary( ( pvec1 == 0. ) and ( pvec2 == 0. ) and ( pvec3 < 0. ),
0,
fpsqrt( fpmax( pvec0 + pvec3, 0. ) ) * (fptype)nsf );
const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ),
( sqp0p3 == 0. ? cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ) : cxmake( (fptype)nh * pvec1, -pvec2 ) / sqp0p3 ) };
#endif
Expand Down
14 changes: 14 additions & 0 deletions epochX/cudacpp/ee_mumu.sa/src/mgOnGpuVectors.h
Original file line number Diff line number Diff line change
Expand Up @@ -236,6 +236,20 @@ namespace mg5amcCpu
// Functions and operators for fptype_v

#ifdef MGONGPU_CPPSIMD
inline fptype_v
fpsqrt( const volatile fptype_v& v ) // volatile fixes #736
{
// See https://stackoverflow.com/questions/18921049/gcc-vector-extensions-sqrt
fptype_v out = {}; // avoid warning 'out' may be used uninitialized: see #594
for( int i = 0; i < neppV; i++ )
{
volatile fptype outi = 0; // volatile fixes #736
if( v[i] > 0 ) outi = fpsqrt( (fptype)v[i] );
out[i] = outi;
}
return out;
}

inline fptype_v
fpsqrt( const fptype_v& v )
{
Expand Down
40 changes: 29 additions & 11 deletions epochX/cudacpp/ee_mumu.sa/test/cudacpp_test.mk
Original file line number Diff line number Diff line change
Expand Up @@ -5,27 +5,45 @@

THISDIR = $(dir $(abspath $(lastword $(MAKEFILE_LIST))))

# Compiler-specific googletest build directory (#125 and #738)
# Note: AR, CXX and FC are implicitly defined if not set externally
# See https://www.gnu.org/software/make/manual/html_node/Implicit-Variables.html
ifneq ($(shell $(CXX) --version | grep '^Intel(R) oneAPI DPC++/C++ Compiler'),)
CXXNAME = icpx$(shell $(CXX) --version | head -1 | cut -d' ' -f5)
else ifneq ($(shell $(CXX) --version | egrep '^clang'),)
CXXNAME = clang$(shell $(CXX) --version | head -1 | cut -d' ' -f3)
else ifneq ($(shell $(CXX) --version | grep '^g++ (GCC)'),)
CXXNAME = gcc$(shell $(CXX) --version | head -1 | cut -d' ' -f3)
else
CXXNAME = unknown
endif
$(info CXXNAME=$(CXXNAME))
BUILDDIR = build_$(CXXNAME)
$(info BUILDDIR=$(BUILDDIR))
INSTALLDIR = install_$(CXXNAME)
$(info INSTALLDIR=$(INSTALLDIR))

CXXFLAGS += -Igoogletest/googletest/include/ -std=c++11

all: googletest/install/lib64/libgtest.a
all: googletest/$(INSTALLDIR)/lib64/libgtest.a

googletest/CMakeLists.txt:
git clone https://github.com/google/googletest.git -b release-1.11.0 googletest

googletest/build/Makefile: googletest/CMakeLists.txt
mkdir -p googletest/build
cd googletest/build && cmake -DCMAKE_INSTALL_PREFIX:PATH=$(THISDIR)/googletest/install -DBUILD_GMOCK=OFF ../
googletest/$(BUILDDIR)/Makefile: googletest/CMakeLists.txt
mkdir -p googletest/$(BUILDDIR)
cd googletest/$(BUILDDIR) && cmake -DCMAKE_INSTALL_PREFIX:PATH=$(THISDIR)/googletest/install -DBUILD_GMOCK=OFF ../

googletest/build/lib/libgtest.a: googletest/build/Makefile
$(MAKE) -C googletest/build
googletest/$(BUILDDIR)/lib/libgtest.a: googletest/$(BUILDDIR)/Makefile
$(MAKE) -C googletest/$(BUILDDIR)

# NB 'make install' is no longer supported in googletest (issue 328)
# NB keep 'lib64' instead of 'lib' as in LCG cvmfs installations
googletest/install/lib64/libgtest.a: googletest/build/lib/libgtest.a
mkdir -p googletest/install/lib64
cp googletest/build/lib/lib*.a googletest/install/lib64/
mkdir -p googletest/install/include
cp -r googletest/googletest/include/gtest googletest/install/include/
googletest/$(INSTALLDIR)/lib64/libgtest.a: googletest/$(BUILDDIR)/lib/libgtest.a
mkdir -p googletest/$(INSTALLDIR)/lib64
cp googletest/$(BUILDDIR)/lib/lib*.a googletest/$(INSTALLDIR)/lib64/
mkdir -p googletest/$(INSTALLDIR)/include
cp -r googletest/googletest/include/gtest googletest/$(INSTALLDIR)/include/

clean:
rm -rf googletest
Expand Down
10 changes: 5 additions & 5 deletions epochX/cudacpp/gg_tt.sa/CODEGEN_cudacpp_gg_tt_log.txt
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,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.005059957504272461 
DEBUG: model prefixing takes 0.005174160003662109 
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 
Expand Down Expand Up @@ -205,7 +205,7 @@ Generated helas calls for 1 subprocesses (3 diagrams) in 0.005 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.113 s
ALOHA: aloha creates 2 routines in 0.114 s
<class 'aloha.create_aloha.AbstractRoutine'> VVV1
<class 'aloha.create_aloha.AbstractRoutine'> FFV1
<class 'aloha.create_aloha.AbstractRoutine'> FFV1
Expand All @@ -227,6 +227,6 @@ INFO: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gg_tt/src/. a
DEBUG: Entering PLUGIN_ProcessExporter.finalize [output.py at line 203] 
quit

real 0m0.862s
user 0m0.664s
sys 0m0.121s
real 0m0.866s
user 0m0.677s
sys 0m0.118s
Loading

0 comments on commit 7a1c398

Please sign in to comment.