-
Notifications
You must be signed in to change notification settings - Fork 32
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
master_june24: wrong memory access for channelIds in C++ sigmakin (missing ieventAccessRecordConst) #911
Comments
Ok I guess this is the same issue that @roiser assumed nb_warp=1 for SIMD case (which is in principle fine, but better not rellying on that, especially for the "m" mode) Thanks for pointing that issue, Olivier |
…n channelIds and allChannelIds also in sigmaKin (fix madgraph5#899; wip on madgraph5#911)
…the fact madgraph5#898 that channelids are the same inside each warp This also fixes all pending CID_ACCESS::ieventAccessRecordConst calls madgraph5#899 and madgraph5#911 Note: CPPProcess.cc is now again very close to upstream/master (most of master_june24 changes from madgraph5#830 have been undone)
Thanks to you Olivier.
Well I am not sure that it can be described like this, I think it is much more complex. Technically, the code from 830 was totally missing a distinction between 'allChannels' and 'channels' and the call to ieventAccessRecordConst (which could have been copied from the other accessors). My first implementation, of which I was not sure myself (ievt00 or something else?), was essentially here ea2146b Also, I think that assuming nb_warp=1 is a very bad idea. And at the very least, any assumption in the code must be accompanied by a sanity check of that assumption. Otherwise the code just becomes a mess, and may "randomly" (i.e. by sheer luck) seem to pass some tests. Specifically, you are completely right that the mixed case is more complex. I added several tests in #924 #925 and realised that my first implementation with ievt00 was incomplete. In the mixed case the code (at least, in the version I implemented which is as-is that from upstream/master, there are other choices but unnecessarily complex) assumes that TWO SIMD vectors have the same channelId, not just one. There were two extra things needed, done in #924, essentially here valassi@9e77b2b
This can be closed. (Note also that this is related to but different from #899, where another ieventAccessRecordConst call was missing, but this time in calculate_wavefunctions) |
Would be better to not have such assumptions (I do not see a real need for it so I'm curious of why you are doing it) |
Olivier, it takes WORK to do this. Lets move this after master_june24 can we? I opened #926. Thanks |
Another issue introduced in #830 and being reviewed in #882.
This is a bug in sigmaKin. It is the same as #899 in calculate_wavefunctions. It needs a separate fix at a later time, Ikeep this separate.
https://github.com/valassi/madgraph4gpu/blob/8e312bc02d9d072615fcb1052b5db54754498517/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/CPPProcess.cc#L1035
The text was updated successfully, but these errors were encountered: