Skip to content

separate buffers for different particles (SOAOSOA?) #309

Closed

Description

@valassi

This is about the second issue discussed in #175 (comment)

Eventually, it may better to change the buffer indexing so as to have completely separate buffers for different particles. This would simplify the ixxx/oxxx api (no need to pass ipar) and make the code more understandbale. However it is clearly something to be synced with the fortran bridge work. Not urgent.

One possibility could be to move from the current AOSOA to an SOAOSOA (or back to an SOA):

  • now we have momenta as AOSOA[npagM][npar][np4][neppM}, with npar particles, np4=4 components of 4-momenta, and nevt=npagM*neppM events split into npagM pages of neppM events per page
  • eventually we could have SOAOSOA[npar][npagM][np4][neppM], so that it is easy to split these into several separate AOSOA[npagM][np4][neppM]
  • or we could use SOA[npar][np4][nevt=npagM*neppM], although some tests I had done long ago seems to say there was a penalty f rthis (tests to be repeated)

Anyway, it could be useful to investigate this

Activity

  1. self-assigned this
    on Dec 9, 2021
  2. valassi commented on Jan 14, 2022

    @valassi
    MemberAuthor

    This can be closed. As far as momenta are concerned, the new MemoryAccessMomenta class does the jobs taking an ipar argument both in CUDA and in C++.
    See https://github.com/madgraph5/madgraph4gpu/pull/322/files#diff-66d130d9cd4df7a88bc6d32cff137904ac4f1c7f55e9ba05188cda231212318b in PR #322

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions