Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Port epochX CODEGEN from 270gpu to the 311lovec branch (and pick up the new features there!) #360

Closed
valassi opened this issue Jan 27, 2022 · 7 comments
Assignees

Comments

@valassi
Copy link
Member

valassi commented Jan 27, 2022

Hi @oliviermattelaer I assign this on myself - then we need to discuss when I should start.

All of my epochX CODEGEN is now based on the branch 270gpu of launchpad and specifically on revision 370

This is this revision
https://bazaar.launchpad.net/~maddevelopers/mg5amcnlo/2.7.0_gpu/revision/370

I understand I should be moving instead to this other branch
https://code.launchpad.net/~maddevelopers/mg5amcnlo/3.1.1_lo_vectorization

For instance this includes the patch for issue #343 about nprocesses:
https://bazaar.launchpad.net/~maddevelopers/mg5amcnlo/3.1.1_lo_vectorization/revision/990

(En passant this is also eventually needed as a prerequisite for helicity recycling I guess, #279).

Details to be discussed, thanks Andrea

@valassi
Copy link
Member Author

valassi commented Jan 27, 2022

In doing this upgrade, I should try to stick closer to the original code - adressing issues such as #341 reported by Olivier

@valassi
Copy link
Member Author

valassi commented Jan 28, 2022

As discusset today with Olivier, note that the 311_lo_vec branch includes multichannel outputs. IIUC there is one more python function with one more argument, which creates the C++ with the additional argument needed for multichannel.

Note also Olivier's suggestion to try out this process to check all looks good

add process p p  > t t~
output PROC_vec
--vector_size=16
--me_exporter=standalone_gpu

(The "vector_size" may be renamed to something else, this is the number of events in one "iteration" of our standalone app).

@valassi
Copy link
Member Author

valassi commented Mar 3, 2022

Hi @oliviermattelaer I have started to work on this in PR #391.

I changed the upstream MG5AMC that I am using with my plugins, from 2.7.0_gpu to 3.1.1_lo_vectorization. Surprisingly (or maybe not?), I see no changes at all in source code except for comments.

Maybe I should actually change the templates I am using to realign them to those from the new branch?...

@valassi
Copy link
Member Author

valassi commented Mar 3, 2022

I am splitting this into two separate parts

The resaons is that I want to have a single environment variable MG5AMC_HOME pointing to a single (311) installation, while doing other work

@valassi valassi changed the title Upgrade epochX CODEGEN from 270gpu to a newer branch Port epochX CODEGEN from 270gpu to the 311lovec branch (and pick up the new features there!) Mar 3, 2022
@valassi
Copy link
Member Author

valassi commented Mar 11, 2022

One of the new features in v311 (not the only one) is helicity recycling.

THis is the third time I repeat this comment: Within PR #401, note that I had to introduce this fix while moving to v311
04d4b8e
This indeed picks up a new feature of v311 (#360), but it is only relevant to helicit yrecycling (#279).

In practice

  • initially I started generating code (madevent only, or madevent+cudacpp) without disabling heliicty recycling
  • under this configuration, code generation of madevent+cudacpp did not work, and I had to fix it as above
  • this was especially puxxling because I had to change some code generation lines (for generating cudacpp) which were not used in my normal cudacpp-only version
  • after fixing it, I got code with helicity recycling, which however did not build (not clear why, but not an issue today): to fix the build I disabled helicity recycling
  • in retrospective, the reason why I had to fix those lines is thus for helicity recycling code, which in any case I later decided to disable: if I had disabled helicity recycling before trying to generate madevent+cudacpp code, probably that patch would not hav ebeen necessary

@valassi
Copy link
Member Author

valassi commented Mar 11, 2022

Reminder for myself:

  • do a diff of madgraph/iolibs/export_cpp.py in the 270 and 311 installations, this is where to start

@valassi
Copy link
Member Author

valassi commented Apr 28, 2022

I am closing this.

The "picking up new features from the 311 branch" is mainly the multichannel stuff. This is discussed in #342. I have just renamed that to mention the 311 branch:

  • Olivier has done the code in the 311 branch (in cudacpp)
  • We need to integrate that in codegen ("do a diff of madgraph/iolibs/export_cpp.py in the 270 and 311 installations, this is where to start")

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant