Madgraph5 GPU development

→ Europe/Zurich
Virtual (Zoom)

Virtual (Zoom)

# Madgraph dev meeting 25.10.2021

Present: SR, OM, AV, SH, DavidS, TaylorC, NathanN, WalterH, LaurenceF

## Round table

StephanH
- Will change the CI configuration to use a github "matrix" of different configurations (OS, compiler, process, epoch, etc)
We were only doing eemumu so far, now worked with AV also on ggttgg tests, which pass locally
- Q/SH: anyone else from abstraction layers has prepared functional tests?
AV: only saw some runTest.cc for sycl.
LF: did not actually try it out for sycl yet.
SH: please let me know if you need help, would like to include containers for all layers.

David
- Working on alpaka abstraction. Changed approach to work on top of golden epochX4, resuing parts of Andrea's plugin.
- In epoch1 had tried to add Alpaka dependencies in Makefile (not cmake), but it made the build system quite convoluted. Can give it another try. Alpaka is header only, but cupla needs libraries, and it needs cmake itself.
- Q/AV: do you need cmake to build cupla or to build Madgraph with cupla? A/DS: to build cupla itself. AV: then we could consider something like SH has done for googletest. SH: there teh build is done with cmake, but an ancient cmake 2.8 is enough, do not need a very recent cmake.

Taylor
- Still looking at code generation. Maybe will need to discuss with Olivier. It also depends if we want to stick with the plugin idea. Had some issues with overloading the aloha writer. AV: can look at how I did it; but the question of whether it is a plugin or not is a very good question. OM: good question, we need to discuss this eventually, differentoptions are possible. TC: important to have consistency. AV: maybe we can have a single plugin for our work here on cuda/c++/abstractions, but not have this a replacement of upstream MG. Note that export_cpp.py also contains pythia and python bindings, so maybe it's better if we do not touch that and we remain standalone with a plugin. OM: you are also all welcome to modify the bazaar gpu branch. OM: pythia plugin is for allowing matrix elements from madgraph inside pythia, if you want to do event generation in pythia.

Nathan
- Following up on issue #262 in sycl (cuda error illegal address). Found a workaround on an A100. Used USM as an alternative. There are issues with some MEs being zero or NaNs, following this up. Still a few things to understand (not sure what change exactly fixed on eof these issues for me).
- Q/SR: in CUDA itself you can do checkCudaError, is this something you can also do in sycl? A/NN: yes this is possible in sycl, will work on that.

Olivier
- NTR, busy with teaching these days.
- Q/SR: we discussed last time about all the functionalities still missing for what is missing in a full functionality, can you augment this gitub issue? A/OM: ok just send me the github issue.
- Q/AV: can you give an example of a process with nprocesses>1? OM: something like pp to tt, or gg/qq to tt, where there are different initial states. OM: note anyway that we can also keep the subprocesses separate in MG, so we do not really need to worry about that.

Walter
- NTR

Laurence
- NTR was on vacation last week, previous week had worked on sycl port, spotted 4 issues on cuda and added them on github

Andrea
- Show some slides with backport and ggttgg vectorization results
- OM: maybe the factor 2 in Fortran is because you compare to Fortran with helicity recycling? We had seen that this gives more or less a factor 2

Stefan
- In contact with a student, will probably work on notebook execution
- Next week at the Excalibur Swifthep workshop, funding for HL-LHC (personal interest on EU COST initiative), som eof the plan is event generators

## AOB

- AV: LHCC review next week

- Next meeting on 8 Nov (both Europe and US should have be back in summer time)
DS: there is a clash with the MERIT session (but ok for me not to go, inetresting mainly for newcomers)

There are minutes attached to this event. Show them.