How i can run MADGRAPH on a GPU??

Asked by Hector Gutierrez Arance

I'm currently running MADGRAPH on my CPU and have managed to obtain some results for a simple process:

generate e+ e- > Z > e+ e-

However, I'm interested in speeding up the event generation process using the power of a GPU. I'm wondering how I can configure MADGRAPH to run on a GPU and leverage its massive processing capability to improve performance. I've been searching for tutorials or resources that explain how to do this, but so far, I haven't found any detailed information on the topic.

In addition to that, I'm curious if it's also possible to run MADGRAPH on an FPGA. I'm intrigued by the possibilities of parallelization and optimization that an FPGA could offer for these types of data-intensive scientific calculations. My idea would be to export or translate the code to HLS and then execute it on an FPGA.

I appreciate any guidance or resources you can provide on these topics.

Regards,
Hector

Question information

Language:
English Edit question
Status:
Solved
For:
MadGraph5_aMC@NLO Edit question
Assignee:
No assignee Edit question
Solved by:
Olivier Mattelaer
Solved:
Last query:
Last reply:
Revision history for this message
Olivier Mattelaer (olivier-mattelaer) said :
#1

Hi,

They are a publicly available code for MadGraph4 running on GPU with cuda4.
They are also a non yet release version of MG5aMC@NLO that would allow to use GPU at LO (should be done in a month time scale), and work is starting for NLO computation (but this is more on a time scale of years).

So far we have never investigate to use FPGA for our type of computation but I'm pretty sure that I have seem some exploratory work in the area (like they are already paper doing HEP computation on quantum computer)

Cheers,

Olivier

Revision history for this message
Hector Gutierrez Arance (hg15200) said :
#3

Thanks for your reply,
I ran an example on MADGRAPH4GPU on epochX -> cudacpp -> gg_ttggg.mad , and I got some results . Can I run only the examples in epochX or can I spawn the processes as MADGRAPH5 on the CPU?

For example, in epochX (GPU) this case is not present, as I can generate it in CPU:
generate e+ e- > Z > e+ e-

Regarding FPGAs, my idea is to port MADGRAPH to them, but only the most critical part. Where would you recommend me to start to see the critical part on CPU or GPU? I will use HLS to be able to do the port.

Revision history for this message
Best Olivier Mattelaer (olivier-mattelaer) said :
#4

Hi,

Yes the madgraph4gpu repo is able to generate process but they are restriction for the moment (mainly for BSM physics) and I'm worried about potential bias on GPU (we are working on it). So this is not yet production ready.
We do not have yet documentation ready since we plan to fully drop the madgraph4gpu repo to move to another repo where the structure will be more adapted for the users usage/auto-test/...

>Regarding FPGAs, my idea is to port MADGRAPH to them, but only the most critical part. Where would you recommend me to start to see the critical part on CPU or GPU? I will use HLS to be able to do the port.

In general, the most critical part is the matrix-element (at least for 2>4 process, simpler process are so fast that the point to move them to GPU/FPGA is a bit useless...

Cheers,

Olivier

Revision history for this message
Hector Gutierrez Arance (hg15200) said :
#5

Thanks Olivier Mattelaer, that solved my question.