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

Igprof analysis of 11_1_0_p3_ROOT618 : CSCMotherboard::CSCMotherboard #30745

Open
tommasoboccali opened this issue Jul 16, 2020 · 9 comments
Open

Comments

@tommasoboccali
Copy link

Dear all,
an igprof analysis of L1+RECO here shows a large allocation (~ 220 MB) in

CSCMotherboard::CSCMotherboard(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, edm::ParameterSet const&)

direct link to the report HERE

Can you please have a look whether this is expected / correct?
cheers

@cmsbuild
Copy link
Contributor

A new Issue was created by @tommasoboccali Tommaso Boccali.

@Dr15Jones, @silviodonato, @dpiparo, @smuzaffar, @makortel can you please review it and eventually sign/assign? Thanks.

cms-bot commands are listed here

@makortel
Copy link
Contributor

assign l1

@cmsbuild
Copy link
Contributor

New categories assigned: l1

@benkrikler,@rekovic you have been requested to review this Pull request/Issue and eventually sign? Thanks

@makortel
Copy link
Contributor

It looks tome that the main culprit is


coming via
clctProc.reset(new CSCCathodeLCTProcessor(endcap, station, sector, subsector, chamber, conf));

The PulseArray is defined as

typedef unsigned int PulseArray[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS];

and NUM_LAYERS is 6 and NUM_HALF_STRIPS_7CFEBS is 225. That makes 6*225*99*4 bytes = 523 kB. GDB gave me 540 hits in the CSCMotherboard constructor (in the workflow mentioned in #30742 (comment)), which makes the total 540*523 kB = 275 MB (this doesn't exactly match to the IgProf report though).

FYI @dildick

@dildick
Copy link
Contributor

dildick commented Jul 16, 2020

I think that the member PulseArray hitsCLCT[99]; was removed in a recent CMSSW_11_2_X version. See #30103. I need to keep track of all the hits for each CLCT candidate for each BX. See https://github.com/cms-sw/cmssw/blob/master/L1Trigger/CSCTriggerPrimitives/src/CSCCathodeLCTProcessor.cc#L573-L575. This container is filled with hits for each CLCT candidate https://github.com/cms-sw/cmssw/blob/master/L1Trigger/CSCTriggerPrimitives/src/CSCCathodeLCTProcessor.cc#L892

@tommasoboccali
Copy link
Author

tommasoboccali commented Jul 29, 2020 via email

@dildick
Copy link
Contributor

dildick commented Jul 29, 2020

The comment posted earlier is only relevant for a different issue.

After removing PulseArray hitsCLCT[99];, is the large allocation still there?

@dildick
Copy link
Contributor

dildick commented Aug 13, 2020

@tommasoboccali Should have a look at newer versions of the CSC trigger if the situation has changed?

@tommasoboccali
Copy link
Author

Ciao!
the HLT production has started, so we are not in the critical path for that.
Still, in the long run we will need to reduce the memory footprint of Phase-2 sw, so yes, a look would be appreciated 👍

thanks

tom

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

No branches or pull requests

4 participants