Skip to content
New issue

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

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

Already on GitHub? # to your account

Implement helicity recycling in our CUDA/C++ #279

Open
valassi opened this issue Oct 26, 2021 · 2 comments
Open

Implement helicity recycling in our CUDA/C++ #279

valassi opened this issue Oct 26, 2021 · 2 comments

Comments

@valassi
Copy link
Member

valassi commented Oct 26, 2021

This is a followup of issue #276.

In order to compare C++/CUDA and Fortran throughputs, we should make sure that they use the same algorithm. This is presently not the case: we are comparing a faster Fortran with helicity recycling to a slower C++ without helicity recycling.

In issue #276, I will follow up a better estimate of slower Fortran without helicity recycling, that can be directly compared to C++.

But what we really need to do is implement helicity recycling in the CUDA/C++. @oliviermattelaer is this something that would be complicated (an/or maybe is already underway)? Thanks

@oliviermattelaer
Copy link
Member

I would actually doubt that doing helicity recycling for gpu is a good idea since this blows up the size of the code and the memory requirement. For vectorised cpu, that is obviously an option.

@valassi
Copy link
Member Author

valassi commented Mar 11, 2022

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

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

No branches or pull requests

2 participants