Reduce memory consumption in b-tagging, by sharing NNs
This shouldn't change any outputs. It should just reduce memory consumption and startup time.
The GN2 transformer is getting kind of big: it pulls around 80 MB of memory per instance. Unfortunately we currently duplicate it a few times for various reasons: different jet collections with the same tagger, different "flip" configurations, etc. The idea is to introduce an optional service that lets us share the underlying NN where possible.
I also removed some very bad track decoration code which would break the EDM if anyone ever enabled it by accident.
Steps:
-
Add an option redefinition constructor for the GNN -
Add a service that GNNTool
can use to register the GNNs we've constructed so far -
Add the service in FlavorTagNNConfig.py
and use it in our standard NNCfg
functions -
Remove super unsafe track decoration stuff from GNN (this should have been done much earlier) -
See if it works
Tagging @svanstro who might be mucking around some of the same code, e.g. in !71095 (merged).
Merge request reports
Activity
added Analysis BTagging JetEtmiss analysis-review-required main labels
CI Result SUCCESS (hash 76e24896)Athena AnalysisBase AthAnalysis externals cmake make tests Full details available on this CI monitor view. Check the JIRA CI status board for known problems
Athena: number of compilation errors 0, warnings 0
AnalysisBase: number of compilation errors 0, warnings 0
AthAnalysis: number of compilation errors 0, warnings 0
For experts only: Jenkins output [CI-MERGE-REQUEST-EL9 9438] (remote access info)added 1 commit
- 779e849f - add hashability to GNNOptions, add base sharing service
- Resolved by Dan Guest
should it target
24.0
?
This merge request affects 1 package:
- PhysicsAnalysis/JetTagging/FlavorTagDiscriminants
This merge request affects 15 files:
- PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/CMakeLists.txt
- PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/GNN.h
- PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/GNNOptions.h
- PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/GNNTool.h
- PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/INNSharingSvc.h
- PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/MultifoldGNN.h
- PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/MultifoldGNNTool.h
- PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/NNSharingSvc.h
- PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/selection.xml
- PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/Root/GNN.cxx
- PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/Root/GNNOptions.cxx
- PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/Root/MultifoldGNN.cxx
- PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/Root/NNSharingSvc.cxx
- PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/src/components/FlavorTagDiscriminants_entries.cxx
- PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/src/testHash.cxx
added 1 commit
- e7da85d2 - everything seems to work, perfectly. Have not run yet
CI Result SUCCESS (hash e63a607d)Athena AnalysisBase AthAnalysis externals cmake make tests Full details available on this CI monitor view. Check the JIRA CI status board for known problems
Athena: number of compilation errors 0, warnings 0
AnalysisBase: number of compilation errors 0, warnings 0
AthAnalysis: number of compilation errors 0, warnings 0
For experts only: Jenkins output [CI-MERGE-REQUEST-EL9 9474] (remote access info)mentioned in issue atlas-flavor-tagging-tools/training-dataset-dumper#144
This merge request affects 1 package:
- PhysicsAnalysis/JetTagging/FlavorTagDiscriminants
This merge request affects 17 files:
- PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/CMakeLists.txt
- PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/GNN.h
- PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/GNNOptions.h
- PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/GNNTool.h
- PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/INNSharingSvc.h
- PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/MultifoldGNN.h
- PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/MultifoldGNNTool.h
- PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/NNSharingSvc.h
- PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/selection.xml
- PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/Root/GNN.cxx
- PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/Root/GNNOptions.cxx
- PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/Root/GNNTool.cxx
- PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/Root/MultifoldGNN.cxx
- PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/Root/MultifoldGNNTool.cxx
- PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/Root/NNSharingSvc.cxx
- PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/src/components/FlavorTagDiscriminants_entries.cxx
- PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/src/testHash.cxx