Madgraph5 GPU development - !! ATTENTION TUESDAY !!
Virtual (Zoom)
# Madgraph dev meeting Tue 22.03.2022
Present: SR, LF, CV, LF, DS, SH, NN, OM, WH, TC
## Round table
### SR
Still working on alphas, passing the Gs, for CPUs now, then will do GPUs.
Had a discussion with a swedish student as a possible candidate for the PhD student program.
Still sorting out some CERN bureaucracy.
### SH
Mostly working on detector simulation.
Have now a machine with a virtual GPU, will try to mov ethe github CI there.
It might even run more than one job in parallel (now it runs only one job at a time in the CI, which explains why the CI takes quite long).
SR: still a V100?
SH: not sure, will check
AV: is it more than one more GPU?
SH: even if they all use the same GPU, it will time share, not a problem.
### DS
About alpaka port: this is now based on epochx4 golden.
Andrea had produced and run several processes.
There was one process ggttgg where it exits, DS looked into that.
The symptm is kernel is queued for running, then cuda error about memory.
In that tag, inside calculate wavefunction, the 2D array of color factors which is a constexpr,
not a static constexpr: if we use a static constexpr, then it works.
Note in latets code it is changed to static
AV: yes this is https://github.com/madgraph5/madgraph4gpu/issues/283
DS: will create a PR against that PR to have static.
DS: looked why in cuda it is ok and not in alpaka: this is related to having relocatable objects in alpaka.
AV: is this the same as rdc? DS: will need to look at that.
NN: had to use dc for AMD
DS: en passant noticed some issues in complex class, there was
AV: https://github.com/madgraph5/madgraph4gpu/blob/34ab2d4571c61712ddff848d7ba740f1a4c311a8/epochX/cudacpp/gg_tt/src/mgOnGpuCxtypes.h#L45
### OM
Discussed with AV and SR.
Found a huge bug in ggtt, the cross section was hugely wrong.
I introduced this whne doing a merge of branches.
Thought it was a scale issue, took me some time to discover that it is is the use of pdf.
Opened a ticket in the madgraph upstream github.
https://github.com/oliviermattelaer/mg5amc_test/issues/3
Now studying MLM processes. Found some minor discrepancies, but they seem minor, maybe scale related.
### CV
Having trouble building alpaka.
Do we need gcc 9.3? We are using gcc 9.2.
AV: maybe use gcc10.2 if you can
DS: gcc8 was not ok, not sure about gcc9, I also used gcc10.2
### NN
Completed backport to golden epochx4, created a PR for that.
Now working on getting performance numbers.
Had some issues for ggttggg (three gluons in final state).
SR: would probably be better to use static in constexpr.
NN: will try that out.
SR: then we can make a patched tag.
NN to AV: did you have a chance to try out sycl on V100?
AV: no sorry, will do (or anyone else can try that)
NN: reached out to codeplay about observed V100 difference in performance between cuda and sycl
(as a reminder, on A100 I get 1 to 1 performance)
### LF
Presented oneapi work at openlab workshop yesterday.
Also gave a link to the vchep paper about vectorization and cuda numbers.
Interesting that I advertised David Raindeer's book and he was in the panel session!
Due to the reorganisation I have to leave this team as I am reassigned to HPC service management.
This will still involve GPUs on HPCs and will try to contribute if I can.
### WH
Ported kokkos code to golden epochx4. Some issues, TC may give more details.
### TC
Worked with WH on port to golden epochx4.
Trying to debug some issues.
SR: for ICHEP paper all is clear?
TC: yes essentially. Students want to branch off and do their own work.
Please have a look at the abtsract and send feedback.
Deadline is March 31st.
### AV
Was on holiday for 10 days, just back this morning.
Had a very useful chat with Olivier just before leaving, created several tickets.
Two issues which must be added to critical path (with multichannel and alphas)
are randomly picking one color and randomly pickin one helicity
https://github.com/madgraph5/madgraph4gpu/issues/402
https://github.com/madgraph5/madgraph4gpu/issues/403
AV: Probably best to pass one random number from fortran to cuda/c++ and handle this laer
OM: there are three ways to do it
- pass random to c++
- pass all elements of the sum from c++ to fortran and let fortran do it
- do a pure potprocessing even in python, not a factor 2 because you only do it for the
Had no time to work on any of this in the last two weeks.
Will work on more complet bridge interface with two issues above and also alphas.
OM: helicity is not that important, even if CMS seems keen on it
Agree instead that color is important... but maybe still do alphas first?
AV: since we need to do the Gs/alphas and multichannle in the bridge anyway,
maybe we can also add the color and helicity to the interface of the bridge?
OM: sounds good?
## AOB
Coffee of CERN team on Thu morning 10am
Next meeting Monday April 4