Skip to content

Testing CMSSW build with -fimplicit-constexpr#10333

Open
smuzaffar wants to merge 1 commit intoIB/CMSSW_16_1_X/masterfrom
gcc-implicit-constexpr
Open

Testing CMSSW build with -fimplicit-constexpr#10333
smuzaffar wants to merge 1 commit intoIB/CMSSW_16_1_X/masterfrom
gcc-implicit-constexpr

Conversation

@smuzaffar
Copy link
Contributor

As discussed in cms-sw/cmssw#47239 , lets test enabling -fimplicit-constexpr for cms

@smuzaffar
Copy link
Contributor Author

please test using full cmssw

@cmsbuild
Copy link
Contributor

A new Pull Request was created by @smuzaffar for branch IB/CMSSW_16_1_X/master.

@akritkbehera, @iarspider, @raoatifshad, @smuzaffar can you please review it and eventually sign? Thanks.
@ftenchini, @mandrenguyen, @sextonkennedy you are the release manager for this.
cms-bot commands are listed here

@cmsbuild
Copy link
Contributor

cmsbuild commented Feb 10, 2026

cms-bot internal usage

@smuzaffar smuzaffar changed the title Testing GCC with -fimplicit-constexpr Testing CMSSW build with -fimplicit-constexpr Feb 10, 2026
@cmsbuild
Copy link
Contributor

-1

Failed Tests: UnitTests
Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-b353bf/51225/summary.html
COMMIT: e6d873d
CMSSW: CMSSW_16_1_X_2026-02-10-1100/el8_amd64_gcc13
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week0/cms-sw/cmsdist/10333/51225/install.sh to create a dev area with all the needed externals and cmssw changes.

Failed Unit Tests

I found 5 errors in the following unit tests:

---> test test-particleLevel_fromHepMC3 had ERRORS
---> test test-rivet-run had ERRORS
---> test test-rivet-plot had ERRORS
and more ...

Comparison Summary

Summary:

@smuzaffar
Copy link
Contributor Author

@makortel @fwyzard , any idea why building with cmssw -fimplicit-constexpr could have caused [a]

[a]. https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-b353bf/51225/unitTests/src/GeneratorInterface/RivetInterface/test/test-rivet-run/testing.log

Thread 1 (Thread 0x15189ecca580 (LWP 2733760) "cmsRun"):
#0  0x000015189e15cae1 in poll () from /lib64/libc.so.6
#1  0x0000151899c468ae in edm::service::InitRootHandlers::stacktraceFromThread() () from /data/cmsbld/jenkins/workspace/ib-run-pr-tests/CMSSW_16_1_X_2026-02-10-1100/lib/el8_amd64_gcc13/pluginFWCoreServicesPlugins.so
#2  0x0000151899c46ab3 in sig_dostack_then_abort () from /data/cmsbld/jenkins/workspace/ib-run-pr-tests/CMSSW_16_1_X_2026-02-10-1100/lib/el8_amd64_gcc13/pluginFWCoreServicesPlugins.so
#3  <signal handler called>
#4  0x000015186c761e02 in HepMC3::GenEvent::GenEvent(HepMC3::Units::MomentumUnit, HepMC3::Units::LengthUnit) () from /data/cmsbld/jenkins/workspace/ib-run-pr-tests/CMSSW_16_1_X_2026-02-10-1100/external/el8_amd64_gcc13/lib/libHepMC3.so.3
#5  0x000015186d5a4875 in Pythia8HepMC3Hadronizer::generatePartonsAndHadronize() () from /data/cmsbld/jenkins/workspace/ib-run-pr-tests/CMSSW_16_1_X_2026-02-10-1100/lib/el8_amd64_gcc13/pluginGeneratorInterfacePythia8HepMC3Filters.so
#6  0x000015186d5c39dc in edm::GeneratorFilter<Pythia8HepMC3Hadronizer, gen::ExternalDecayDriver>::filter(edm::Event&, edm::EventSetup const&) () from /data/cmsbld/jenkins/workspace/ib-run-pr-tests/CMSSW_16_1_X_2026-02-10-1100/lib/el8_amd64_gcc13/pluginGeneratorInterfacePythia8HepMC3Filters.so
#7  0x000015189f051178 in edm::one::EDFilterBase::doEvent(edm::EventTransitionInfo const&, edm::ActivityRegistry*, edm::ModuleCallingContext const*) () from /data/cmsbld/jenkins/workspace/ib-run-pr-tests/CMSSW_16_1_X_2026-02-10-1100/lib/el8_amd64_gcc13/libFWCoreFramework.so
#8  0x000015189f0414e7 in edm::WorkerT<edm::one::EDFilterBase>::implDo(edm::EventTransitionInfo const&, edm::ModuleCallingContext const*) () from /data/cmsbld/jenkins/workspace/ib-run-pr-tests/CMSSW_16_1_X_2026-02-10-1100/lib/el8_amd64_gcc13/libFWCoreFramework.so
#9  0x000015189efd05e2 in std::__exception_ptr::exception_ptr edm::Worker::runModuleAfterAsyncPrefetch<edm::OccurrenceTraits<edm::EventPrincipal, (edm::TransitionActionType)1> >(std::__exception_ptr::exception_ptr, edm::OccurrenceTraits<edm::EventPrincipal, (edm::TransitionActionType)1>::TransitionInfoType const&, edm::StreamID, edm::ParentContext const&, edm::OccurrenceTraits<edm::EventPrincipal, (edm::TransitionActionType)1>::Context const*) () from /data/cmsbld/jenkins/workspace/ib-run-pr-tests/CMSSW_16_1_X_2026-02-10-1100/lib/el8_amd64_gcc13/libFWCoreFramework.so
#10 0x000015189efd28e4 in edm::SerialTaskQueue::QueuedTask<edm::SerialTaskQueueChain::push<edm::Worker::RunModuleTask<edm::OccurrenceTraits<edm::EventPrincipal, (edm::TransitionActionType)1> >::execute()::{lambda()#1}&>(tbb::detail::d2::task_group&, edm::Worker::RunModuleTask<edm::OccurrenceTraits<edm::EventPrincipal, (edm::TransitionActionType)1> >::execute()::{lambda()#1}&)::{lambda()#1}>::execute() () from /data/cmsbld/jenkins/workspace/ib-run-pr-tests/CMSSW_16_1_X_2026-02-10-1100/lib/el8_amd64_gcc13/libFWCoreFramework.so
#11 0x000015189f329417 in tbb::detail::d2::function_task<edm::SerialTaskQueue::spawn(edm::SerialTaskQueue::TaskBase&)::{lambda()#1}>::execute(tbb::detail::d1::execution_data&) () from /data/cmsbld/jenkins/workspace/ib-run-pr-tests/CMSSW_16_1_X_2026-02-10-1100/lib/el8_amd64_gcc13/libFWCoreConcurrency.so
#12 0x000015189f19f2f3 in tbb::detail::r1::task_dispatcher::local_wait_for_all<false, tbb::detail::r1::external_waiter> (waiter=..., t=0x15189c7dab00, this=<optimized out>) at src/tbb/task_dispatcher.h:344
#13 tbb::detail::r1::task_dispatcher::local_wait_for_all<tbb::detail::r1::external_waiter> (waiter=..., t=<optimized out>, this=<optimized out>) at src/tbb/task_dispatcher.h:487
#14 tbb::detail::r1::task_dispatcher::execute_and_wait (t=<optimized out>, wait_ctx=..., w_ctx=...) at src/tbb/task_dispatcher.cpp:169
#15 0x000015189ef4a97f in edm::FinalWaitingTask::wait() () from /data/cmsbld/jenkins/workspace/ib-run-pr-tests/CMSSW_16_1_X_2026-02-10-1100/lib/el8_amd64_gcc13/libFWCoreFramework.so
#16 0x000015189ef5f7c9 in edm::EventProcessor::processRuns() () from /data/cmsbld/jenkins/workspace/ib-run-pr-tests/CMSSW_16_1_X_2026-02-10-1100/lib/el8_amd64_gcc13/libFWCoreFramework.so
#17 0x000015189ef59571 in edm::EventProcessor::runToCompletion() () from /data/cmsbld/jenkins/workspace/ib-run-pr-tests/CMSSW_16_1_X_2026-02-10-1100/lib/el8_amd64_gcc13/libFWCoreFramework.so
#18 0x000000000040914d in tbb::detail::d1::task_arena_function<main::{lambda()#1}::operator()() const::{lambda()#1}, void>::operator()() const ()
#19 0x000015189f18e8c2 in tbb::detail::r1::task_arena_impl::execute (ta=..., d=...) at src/tbb/arena.cpp:860
#20 0x000000000040abf1 in main::{lambda()#1}::operator()() const ()
#21 0x0000000000405260 in main ()

Current Modules:

Module: Pythia8HepMC3GeneratorFilter:generator (crashed)

@smuzaffar
Copy link
Contributor Author

please test using full cmssw for CMSSW_16_1_X/el8_amd64_gcc14

@fwyzard
Copy link
Contributor

fwyzard commented Feb 10, 2026

@makortel @fwyzard , any idea why building with cmssw -fimplicit-constexpr could have caused [a]

Without trying to investigate, the only thing I can think of is that some function is compiled as non-constexpr in the externals and as constexpr in CMSSW, and somehow that leads to some kind of conflict 🤷🏻‍♂️

@smuzaffar
Copy link
Contributor Author

thanks @fwyzard , I also have read that we might have to rebuild full software stack with -fimplicit-constexpr to avoid any ODR violations

@cmsbuild
Copy link
Contributor

-1

Failed Tests: UnitTests
Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-b353bf/51247/summary.html
COMMIT: e6d873d
CMSSW: CMSSW_16_1_X_2026-02-10-1100/el8_amd64_gcc14
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week0/cms-sw/cmsdist/10333/51247/install.sh to create a dev area with all the needed externals and cmssw changes.

The following merge commits were also included on top of IB + this PR after doing git cms-merge-topic:

You can see more details here:
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-b353bf/51247/git-recent-commits.json
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-b353bf/51247/git-merge-result

Failed Unit Tests

I found 5 errors in the following unit tests:

---> test test-particleLevel_fromHepMC3 had ERRORS
---> test test-rivet-run had ERRORS
---> test test-yoda-merge had ERRORS
and more ...

Comparison Summary

Summary:

  • You potentially removed 134 lines from the logs
  • Reco comparison results: 98802 differences found in the comparisons
  • DQMHistoTests: Total files compared: 52
  • DQMHistoTests: Total histograms compared: 4031484
  • DQMHistoTests: Total failures: 463031
  • DQMHistoTests: Total nulls: 237
  • DQMHistoTests: Total successes: 3568196
  • DQMHistoTests: Total skipped: 20
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: -5.840000000000001 KiB( 51 files compared)
  • DQMHistoSizes: changed ( 13034.0 ): 0.176 KiB SiStrip/MechanicalView
  • DQMHistoSizes: changed ( 17034.0,... ): -0.399 KiB SiStrip/MechanicalView
  • DQMHistoSizes: changed ( 2023.0020001 ): -0.004 KiB JetMET/SUSYDQM
  • DQMHistoSizes: changed ( 2024.0000001 ): -0.039 KiB JetMET/SUSYDQM
  • DQMHistoSizes: changed ( 2024.0010001,... ): 0.004 KiB JetMET/SUSYDQM
  • DQMHistoSizes: changed ( 2024.0050001 ): 0.035 KiB JetMET/SUSYDQM
  • DQMHistoSizes: changed ( 2024.0060001,... ): 0.008 KiB JetMET/SUSYDQM
  • DQMHistoSizes: changed ( 250202.181 ): 0.293 KiB SiStrip/MechanicalView
  • DQMHistoSizes: changed ( 25202.0 ): -0.308 KiB SiStrip/MechanicalView
  • DQMHistoSizes: changed ( 7.3 ): -5.219 KiB SiStrip/MechanicalView
  • Checked 222 log files, 193 edm output root files, 52 DQM output files
  • TriggerResults: found differences in 19 / 50 workflows

@fwyzard
Copy link
Contributor

fwyzard commented Feb 11, 2026

The good news: other than the unit tests CMSSW seems to work fine -- for example, I could run the full HLT menu.

The bad news: the -fimplicit-constexpr build does not show any speed improvement.

Benchmarking hlt.py with the reference release at /cvmfs/cms-ib.cern.ch/sw/x86_64/week0/el8_amd64_gcc14/cms/cmssw/CMSSW_16_1_X_2026-02-10-1100:

  • 98.9 ± 0.6 ev/s

Benchmarking hlt.py with the local release at /scratch/constexpr/CMSSW_16_1_X_2026-02-10-1100:

  • 99.0 ± 0.9 ev/s

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants