-
Notifications
You must be signed in to change notification settings - Fork 11
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
Issue with plugin template of alpaka_serial_sync::HCALRecHitSoAProducer
#86
Comments
Hmm, my first comment: do we actually care? We had decided not to use the format Separate is the question why ConfDb parsing seems to mess up the trackiness of some parameter. I'll need to look at the details later but can only assume there is more than one cfi file for this specific plugin and the other has this parameter different and is parsed first (?) |
This is one of the plugins fixed up by cms-sw/cmssw#44290 it seems, BUT when making template CMSSW_14_0_1_HLT2 I only fixed the module templates for the non |
unfortunately we care, because after discussing this last December we have run into a scenario where using only the To run the GPU vs CPU comparisons offline (like in the PdmV campaigns for release validation) one should configure the jobs to require running on a GPU - otherwise we may end up running on non-GPU nodes and run the same job twice on a CPU. The way to configure this in CMSSW is to set However, this also make all So there are few options:
I'm not really very fond of 3., because we open the possibility of false negatives in the validation. Matti told me he would like to make 2. work, but I'm not 100% sure I like the idea (of forcing a backend choice, and then forcing modules to ignore that choice). Either way, I don't think this would be ready any time soon, and the backport to 14.0.x could be complicated (I just don't know). I don't know what 4. could be, by definition :-) So - at the moment - the option that is left seems to be only 1. |
I assume we need only a few modules of the |
Can one extend the |
So far it looks like a dozen or so - a copy of all or almost all the alpaka modules in the menu.
Technically it should be possible, though if we do that, I would prefer not to declare both That said, there is nothing inherently wrong in using a namespace specifier in the class name, either in C++ or in the python-based language we use - it's only a limitation in ConfDB :-/
I admit I'm not familiar with the unlikely-string hack. |
Wouldn't that be option 2. above ? |
Hmm, with a value different than |
The unlikely-string hack is needed because otherwise, if you use the GUI to add a module to a path where that module contains a @missirol had initially put in the hack, but I did not like it and then it was reverted - see here the code location: |
Would it be less of a hack if we change the delimiter everywhere to something that can never be part of a c++ name (_e.g. |
The parsing of modules of type
The hack only concerns the "Add Module > Open Module Inserter" portion of the GUI (for what I know). |
I'd prefer that but OTOH that would require diving down inside the belly of the belly of the beast and check and find and change everywhere where it is needed - ie, time we do not have (?). OK, I am resigned to go with the unlikely-string hack, at least it was already tested! In addition, it would be great to get a 14_0_X IB with the fillDescription-fix PRs #44288 and #44291 so that I can re-parse. |
I looked into this, but I could not figure this out. I think this delimiter is used in various places, so some care is needed to change it properly. As Martin just commented, to make progress on the Alpaka migration this week, we just need a new template. The hack is only for the GUI and it is not strictly needed this week. |
By the way, I think you can use a simpler |
Please check and try ConfDb template |
Thanks @Martin-Grunewald , will try. |
Good news: with
Bad news: I could not fully test this at runtime, because the menus based on
This goes back to the fact that GUI considers that "IB names" ( The short-term fix is to have the same release, or higher, parsed under a different name.. (e.g. |
#!/bin/bash
hltGetConfiguration v3-test/run3:/users/missirol/test/dev/CMSSW_14_0_0/tmp/240303_firstAlpakaMenu/Test03/GRun \
--globaltag auto:phase1_2024_realistic \
--mc \
--no-prescale \
--max-events 100 \
--input /store/mc/Run3Winter24Digi/TT_TuneCP5_13p6TeV_powheg-pythia8/GEN-SIM-RAW/133X_mcRun3_2024_realistic_v8-v2/80000/dc984f7f-2e54-48c4-8950-5daa848b6db9.root \
--eras Run3 --l1-emulator uGT --l1 L1Menu_Collisions2024_v1_0_0_xml \
> hlt1.py
# --customise HLTrigger/Configuration/customizeHLTforAlpaka.customizeHLTforAlpaka \
cat <<@EOF >> hlt1.py
for out_mod_label, out_mod in process.outputModules_().items():
try: out_mod.SelectEvents.SelectEvents = ['HLTriggerFirstPath']
except: pass
@EOF
edmConfigDump hlt1.py > hlt1_dump.py
cmsRun hlt1.py &> hlt1.log A bit of progress: the test above works without runtime errors (checked both on CPU and GPU). To do this, I implemented a workaround for the release-template name and i deployed it to the To do it properly, we still need a template with the "better" name, unless there are better suggestions, of course. At least this shows that there are no other issues after that (at least testing on 100 events). |
We can start looking at [1] (target) vs [2] (baseline) to figure out the minimal set of changes to integrate the Alpaka updates, but this is going beyond the scope of this issue. At some point, we should move this part of the discussion to a JIRA ticket (even just one for documentation purposes, and we can do a clean integration ticket after we iron out the details.. whichever way you see fit). [1]
[2]
|
I have renamed template |
Thanks, Martin. With the new name, the test in #86 (comment) works without specifying Obviously, I had no idea one could rename a release template. Just out of curiosity, how is it done ? |
Using
like this:
ie, WHERE ID= is the ID returned by the SELECT command for the RELEASETAG to be changed, in this case:
|
Thanks, magic.. I think this issue can be closed. I will open a PR to introduce the hack for the "Output Module Inserter". How do we proceed with discussing the Alpaka integration ? |
JIRA ticket or STORM mattermost channel? |
I can open a JIRA ticket to document what i checked so far, so Andrea can also review it. Later we can see if we use this ticket for the integration, or we do the integration in a quick follow up ticket. |
I encountered an issue related to the plugin
alpaka_serial_sync::HCALRecHitSoAProducer
while trying to test the integration of the "Alpaka customisations" in ConfDB.The issue can be seen comparing the modules
hltHbheRecHitSoA
andhltHbheRecHitSoACPUSerial
inThe issue is that
hltHbheRecHitSoACPUSerial.src
is an untracked parameter, while it should be tracked.I see a similar problem for the
alpaka_serial_sync::
version of other plugins fixed in cms-sw/cmssw#44291. On the other hand, their auto-generated cfi files look okay, and in ConfDB I do not see this problem for some of the otheralpaka_serial_sync::*
plugins (so it does not affect everyalpaka_serial_sync::*
plugin, in general).Is this somehow related to the parsing of the latest CMSSW updates into ConfDB ?
More context.
I updated the Alpaka customisations in the branch below implementing technical changes to aid HLT-menu integration (e.g. removal of
ConditionalTask
s where possible).https://github.com/missirol/cmssw/commits/devel_hltCustomAlpaka
I applied this customisation to the latest HLT combined table, parsed into ConfDB (using V03-05-00), created subtables, and found the runtime error in [1] when testing the GRun subtable.
While checking the current Alpaka customisation with Andrea, he explained that the "CPU only" modules in the HLT menu will need to use the backend-specific plugin type (e.g.
alpaka_serial_sync::HCALRecHitSoAProducer
) instead of*@alpaka
plus backend selection via thealpaka
PSet parameter. As far as I understood, this (alpaka_serial_sync::
) is necessary in order to make the CPU-only modules run even in the case where one explicitly requires the presence of a GPU device (for example, viaaccelerators = [ 'gpu-*']
). This was missed in the discussion in Add support for Alpaka modules in HLT configs ofCMSSW_14_0_0_pre1
or higher #85.[1]
The text was updated successfully, but these errors were encountered: