Madgraph5 GPU development

513/1-024 (CERN)



Show room on map
Madgraph5 GPU development
Zoom Meeting ID
Stefan Roiser
Useful links
Join via phone
Zoom URL

# Madgraph on GPU dev meeting Tue 30 April 2024

Present: SR, ZW, OM, AV, NN, TC, CV

## AV

AV presents the slides attached to the agenda.
(Many comments and discussions, not everything is reported here)

OM: FPE handling looks good, we should be able to merge this

OM: on repos, what we need is a separate repo for the plugin, then we decise about using git subrepos or not

SR: if cuda vs cpp can be specified in backend, do we want to have separate ```output madevent_gpu``` and ```output madevent_simd``` or only one?
AV: initially we had only one, then IIUC OM/SR suggested to split it and have two instead
AV: both options ok for me, maybe the idea of splitting them was that eventually cudacpp may be two separate code bases without ifdefs?
SR: right, better keep them separate to keep that possibility open

SR/ZW: similar point, we have standalone_simd ok, but standalone_gpu does not work
AV: this is because standalone_gpu is OM's original, on which the cudacpp plugin is based
AV: maybe we can make standalone_gpu use cudacpp instead, and produce the 'standalone' code we have in .sa directories with no madevent?
SR: yes this is useful for Zenny's reweighting and also for use cases like powheg

### SR

SR about channelid: verified that it is working as expected.
But the CI is still not running through and there are still small things to fix.

SR started writing up some documentation for people like ATLAS and POWHEG.
This is on the wiki of madgraph4gpu, you can all have a look at it and modify/comment.

SR QUEST has been selected and will join from June.
This is Daniele Massaro who was previously at Louvain and Bologna.

### OM

OM Not much recently due to travelling and sick leave.

SR: would you be interested to join CHEP in Krakow for a theory talk on generators?
OM: maybe yes, have an open invitation from Madgraph colleagues in Krakow.

### ZW

ZW work on reweighting infrastructure is almost completed

ZW will attend PASC where I was invited by Seth Johnson at ETHZ.

### NN

NN having some trouble fitting SYCL into cudacpp abstraction. Can open an issue or a PR.
There are several issues as follows.

One issue is that we need stream support.
AV: I would agree with adding stream support in cudacpp, our present code essentially uses the default stream... 
then streams is probably needed for splitting kernels, maybe NN or one of us can add that?
NN: can try to add that

Second issue is that sycl does not have constant memory.
We would probably have a macro for Intel GPU instead.
AV: how does intel gpu manage constant memory?
NN: there is one in the hardware, but the programming talks of caching, one can be cached.
NN: again there is a proposed extension, a compiler hint.
SR: can we add this in the gu abstraction?
NN: yes can try that

Third issue is indexing.
SYCL does not have support for threadidx.idx, in sycl you must pass the indices.
There is a sycl extension that Intel uses and I will try that out.
Or otherwise we need some macros.

Fourth is that sycl error handling is exception based rather than status.
Would be too much pain to implement in the abstraction, so for the moment doing no error handling.
SR: maybe keep sycl as separate plugin if this makes it easier?
AV: well this is what NN had before, we had agreed to try and put it in cudacpp to have all other functional features

### TC

TC: ntr

### CV

CV: still looking for a student to work on madgraph, no progress so far.

## AOB

Next meeting is normally in two weeks, but it is WLCG/HSF workshop.
There is the generator session at the HSF workshop on Tuesday.
AV: any detail?
SR: not sure yet, I will mainly discus training there
Agenda is
SR: maybe Thu 16 May next meeting? NN/OM some constraints
SR: ok then confirm Tue 14 May instead, go ahead without me


There are minutes attached to this event. Show them.