[GCC15] Add -ftrack-macro-expansion=0 to avoid high RSS during pre-processing - #10848
[GCC15] Add -ftrack-macro-expansion=0 to avoid high RSS during pre-processing#10848smuzaffar wants to merge 2 commits into
Conversation
|
A new Pull Request was created by @smuzaffar for branch IB/CMSSW_20_1_X/g15. @akritkbehera, @iarspider, @raoatifshad, @smuzaffar can you please review it and eventually sign? Thanks. |
|
cms-bot internal usage |
|
please test using full cmssw for CMSSW_20_1_X/el9_amd64_gcc15 |
What behaviour do developers get in their |
|
The default while with and with |
Same as PR/CI tests i.e. we build without |
|
Note that with GCC 14 the For user dev area and PR tests, we only build for one micro architectiure and also we do not build full cmssw so chances of such OOM is less during PR tests |
|
-1 Failed Tests: Build 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: Failed BuildI found compilation error when building: >> Subsystem RecoTICL built >> Subsystem SimRomanPot built Copying tmp/el9_amd64_gcc15/src/DataFormats/SoATemplate/test/SoACustomizedMethodsHip/libSoACustomizedMethodsHip_rocm.a to productstore area: cp: cannot stat 'tmp/el9_amd64_gcc15/src/DataFormats/SoATemplate/test/SoACustomizedMethodsHip/libSoACustomizedMethodsHip_rocm.a': No such file or directory >> Deleted: tmp/el9_amd64_gcc15/src/DataFormats/SoATemplate/test/SoACustomizedMethodsHip/libSoACustomizedMethodsHip_rocm.a gmake: *** [config/SCRAM/GMake/Makefile.rules:1926: tmp/el9_amd64_gcc15/src/DataFormats/SoATemplate/test/SoACustomizedMethodsHip/libSoACustomizedMethodsHip_rocm.a] Error 1 Copying tmp/el9_amd64_gcc15/src/DataFormats/SoATemplate/test/testRocmSoALayoutAndView_t/libtestRocmSoALayoutAndView_t_rocm.a to productstore area: cp: cannot stat 'tmp/el9_amd64_gcc15/src/DataFormats/SoATemplate/test/testRocmSoALayoutAndView_t/libtestRocmSoALayoutAndView_t_rocm.a': No such file or directory >> Deleted: tmp/el9_amd64_gcc15/src/DataFormats/SoATemplate/test/testRocmSoALayoutAndView_t/libtestRocmSoALayoutAndView_t_rocm.a gmake: *** [config/SCRAM/GMake/Makefile.rules:1926: tmp/el9_amd64_gcc15/src/DataFormats/SoATemplate/test/testRocmSoALayoutAndView_t/libtestRocmSoALayoutAndView_t_rocm.a] Error 1 >> Entering Package DataFormats/StdDictionaries |
|
Pull request #10848 was updated. |
|
please test with cms-sw/cmssw-config#123 using full cmssw for CMSSW_20_1_X/el9_amd64_gcc15 |
|
enable multi_microarchs,gpu |
|
please test with cms-sw/cmssw-config#123 using full cmssw for CMSSW_20_1_X/el9_amd64_gcc15 |
|
-1 Failed Tests: Build 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: Failed BuildI found compilation error when building: /data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc15/external/gcc/15.3.1-d0029c3359733fc60a20a68217f2ee30/bin/c++ -c -DCMS_MICRO_ARCH='' -ftrack-macro-expansion=0 -DGNU_GCC -D_GNU_SOURCE -DTBB_USE_GLIBCXX_VERSION=150301 -DTBB_SUPPRESS_DEPRECATED_MESSAGES -DTBB_PREVIEW_RESUMABLE_TASKS=1 -DTBB_PREVIEW_TASK_GROUP_EXTENSIONS=1 -DBOOST_SPIRIT_THREADSAFE -DPHOENIX_THREADSAFE -DBOOST_MATH_DISABLE_STD_FPCLASSIFY -DBOOST_UUID_RANDOM_PROVIDER_FORCE_POSIX -DBOOST_MPL_IGNORE_PARENTHESES_WARNING -DCMSSW_GIT_HASH='CMSSW_20_1_X_2026-09-11-2300' -DPROJECT_NAME='CMSSW' -DPROJECT_VERSION='CMSSW_20_1_X_2026-09-11-2300' -Isrc -I/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc15/external/hepmc3/3.3.1-1df6c2c7e406fc4213f0785333b4cace/include -I/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc15/external/pcre/8.43-2e7cd569f80863eb9dfcf87970bfdccd/include -isystem/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc15/external/boost/1.92.0-3eaf8a183df8cc77a4ce5ac549e2d0e8/include -I/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc15/external/bz2lib/1.0.8-dacdc81794eb1c23244654b096d5e8f8/include -isystem/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc15/external/clhep/2.4.7.2-64c40c879108baff2af8ce7d5453c293/include -I/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc15/external/gsl/2.6-811f5a148a1825735987ef4d2698696a/include -I/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc15/external/hepmc/2.06.10-2dde2ba112214420ccbbfc20899ea331/include -I/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc15/external/libuuid/2.40-c2a3b3080a707cf8c78728fbf2ac665e/include -isystem/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc15/lcg/root/6.36.15-69d8c11d03ee187fc814a0e8a1f03f75/include -isystem/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc15/external/tbb/v2022.3.0-51dbeb661f0bf655bf554fe6bd043fc8/include -I/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc15/external/xz/5.8.3-330fa033891c5047b20099ed7c39a049/include -I/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc15/external/zlib/1.3.2-992f3b833708f30789f7ac5c998d015e/include -I/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc15/external/zstd/1.5.7-dd41d7a96454092322dfa50efe8fefd5/include -I/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc15/external/eigen/5.0.1-a08466f2ae786748cc7d248d552f4cff/include -I/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc15/external/eigen/5.0.1-a08466f2ae786748cc7d248d552f4cff/include/eigen3 -I/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc15/external/md5/2.0.0-e96f5713a508a28b4e21b910decc9f17/include -I/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc15/external/OpenBLAS/0.3.27-e0dcc6346b223a5d7147ec9d1f6a4b64/include -I/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc15/external/tinyxml2/6.2.0-71c40642358afd1fc6abc610ea54c6f7/include -O3 -pthread -pipe -Werror=main -Werror=pointer-arith -Werror=overlength-strings -Wno-vla -Werror=overflow -std=c++20 -ftree-vectorize -Werror=array-bounds -Werror=format-contains-nul -Werror=type-limits -fvisibility-inlines-hidden -fno-math-errno --param vect-max-version-for-alias-checks=50 -Xassembler --compress-debug-sections -Wno-error=array-bounds -Warray-bounds -fuse-ld=bfd -march=x86-64-v3 -felide-constructors -fmessage-length=0 -Wall -Wno-non-template-friend -Wno-long-long -Wreturn-type -Wextra -Wpessimizing-move -Wclass-memaccess -Wno-cast-function-type -Wno-unused-but-set-parameter -Wno-ignored-qualifiers -Wno-unused-parameter -Wunused -Wparentheses -Werror=return-type -Werror=unused-value -Werror=unused-result -Werror=unused-label -Werror=address -Werror=format -Werror=sign-compare -Werror=write-strings -Werror=delete-non-virtual-dtor -Werror=strict-aliasing -Werror=narrowing -Werror=unused-but-set-variable -Werror=reorder -Werror=unused-variable -Werror=conversion-null -Werror=return-local-addr -Wnon-virtual-dtor -Werror=switch -fdiagnostics-show-option -Wno-unused-local-typedefs -Wno-attributes -Wno-psabi -DEIGEN_DONT_PARALLELIZE -DEIGEN_MAX_ALIGN_BYTES=64 -Wno-error=unused-variable -DBOOST_DISABLE_ASSERTS -flto=auto -fipa-icf -flto-odr-type-merging -fno-fat-lto-objects -Wodr -fPIC -MMD -MF tmp/el9_amd64_gcc15/src/SimMuon/DTDigitizer/src/SimMuonDTDigitizer/DTDriftTimeParametrization.cc.d src/SimMuon/DTDigitizer/src/DTDriftTimeParametrization.cc -o tmp/el9_amd64_gcc15/src/SimMuon/DTDigitizer/src/SimMuonDTDigitizer/DTDriftTimeParametrization.cc.o
>> Compiling edm plugin src/SimMuon/DTDigitizer/src/DTNeutronWriter.cc
/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc15/external/gcc/15.3.1-d0029c3359733fc60a20a68217f2ee30/bin/c++ -c -DCMS_MICRO_ARCH='' -ftrack-macro-expansion=0 -DGNU_GCC -D_GNU_SOURCE -DTBB_USE_GLIBCXX_VERSION=150301 -DTBB_SUPPRESS_DEPRECATED_MESSAGES -DTBB_PREVIEW_RESUMABLE_TASKS=1 -DTBB_PREVIEW_TASK_GROUP_EXTENSIONS=1 -DBOOST_SPIRIT_THREADSAFE -DPHOENIX_THREADSAFE -DBOOST_MATH_DISABLE_STD_FPCLASSIFY -DBOOST_UUID_RANDOM_PROVIDER_FORCE_POSIX -DBOOST_MPL_IGNORE_PARENTHESES_WARNING -DCMSSW_GIT_HASH='CMSSW_20_1_X_2026-09-11-2300' -DPROJECT_NAME='CMSSW' -DPROJECT_VERSION='CMSSW_20_1_X_2026-09-11-2300' -Isrc -I/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc15/external/hepmc3/3.3.1-1df6c2c7e406fc4213f0785333b4cace/include -I/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc15/external/pcre/8.43-2e7cd569f80863eb9dfcf87970bfdccd/include -isystem/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc15/external/boost/1.92.0-3eaf8a183df8cc77a4ce5ac549e2d0e8/include -I/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc15/external/bz2lib/1.0.8-dacdc81794eb1c23244654b096d5e8f8/include -isystem/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc15/external/clhep/2.4.7.2-64c40c879108baff2af8ce7d5453c293/include -I/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc15/external/gsl/2.6-811f5a148a1825735987ef4d2698696a/include -I/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc15/external/hepmc/2.06.10-2dde2ba112214420ccbbfc20899ea331/include -I/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc15/external/libuuid/2.40-c2a3b3080a707cf8c78728fbf2ac665e/include -isystem/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc15/lcg/root/6.36.15-69d8c11d03ee187fc814a0e8a1f03f75/include -isystem/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc15/external/tbb/v2022.3.0-51dbeb661f0bf655bf554fe6bd043fc8/include -I/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc15/external/xz/5.8.3-330fa033891c5047b20099ed7c39a049/include -I/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc15/external/zlib/1.3.2-992f3b833708f30789f7ac5c998d015e/include -I/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc15/external/zstd/1.5.7-dd41d7a96454092322dfa50efe8fefd5/include -I/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc15/external/eigen/5.0.1-a08466f2ae786748cc7d248d552f4cff/include -I/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc15/external/eigen/5.0.1-a08466f2ae786748cc7d248d552f4cff/include/eigen3 -I/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc15/external/md5/2.0.0-e96f5713a508a28b4e21b910decc9f17/include -I/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc15/external/OpenBLAS/0.3.27-e0dcc6346b223a5d7147ec9d1f6a4b64/include -I/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc15/external/tinyxml2/6.2.0-71c40642358afd1fc6abc610ea54c6f7/include -O3 -pthread -pipe -Werror=main -Werror=pointer-arith -Werror=overlength-strings -Wno-vla -Werror=overflow -std=c++20 -ftree-vectorize -Werror=array-bounds -Werror=format-contains-nul -Werror=type-limits -fvisibility-inlines-hidden -fno-math-errno --param vect-max-version-for-alias-checks=50 -Xassembler --compress-debug-sections -Wno-error=array-bounds -Warray-bounds -fuse-ld=bfd -march=x86-64-v3 -felide-constructors -fmessage-length=0 -Wall -Wno-non-template-friend -Wno-long-long -Wreturn-type -Wextra -Wpessimizing-move -Wclass-memaccess -Wno-cast-function-type -Wno-unused-but-set-parameter -Wno-ignored-qualifiers -Wno-unused-parameter -Wunused -Wparentheses -Werror=return-type -Werror=unused-value -Werror=unused-result -Werror=unused-label -Werror=address -Werror=format -Werror=sign-compare -Werror=write-strings -Werror=delete-non-virtual-dtor -Werror=strict-aliasing -Werror=narrowing -Werror=unused-but-set-variable -Werror=reorder -Werror=unused-variable -Werror=conversion-null -Werror=return-local-addr -Wnon-virtual-dtor -Werror=switch -fdiagnostics-show-option -Wno-unused-local-typedefs -Wno-attributes -Wno-psabi -DEIGEN_DONT_PARALLELIZE -DEIGEN_MAX_ALIGN_BYTES=64 -Wno-error=unused-variable -DBOOST_DISABLE_ASSERTS -flto=auto -fipa-icf -flto-odr-type-merging -fno-fat-lto-objects -Wodr -fPIC -MMD -MF tmp/el9_amd64_gcc15/src/SimMuon/DTDigitizer/src/SimMuonDTDigitizer/DTNeutronWriter.cc.d src/SimMuon/DTDigitizer/src/DTNeutronWriter.cc -o tmp/el9_amd64_gcc15/src/SimMuon/DTDigitizer/src/SimMuonDTDigitizer/DTNeutronWriter.cc.o
In file included from src/SimMuon/DTDigitizer/src/DTDriftTimeParametrization.cc:26:
src/DataFormats/DTRecHit/interface/DTDriftTimeParameters.icc: In member function 'void DTDriftTimeParametrization::MB_DT_Get_grid_values(double, short unsigned int*, short unsigned int*, short int, short unsigned int, const double*) const':
src/DataFormats/DTRecHit/interface/DTDriftTimeParameters.icc:479:3: error: comparison is always true due to limited range of data type [-Werror=type-limits]
479 | assert(jValue >= 0);
| ^~~~~~
src/DataFormats/DTRecHit/interface/DTDriftTimeParameters.icc:480:3: error: comparison is always true due to limited range of data type [-Werror=type-limits]
480 | assert(iValue >= 0);
| ^~~~~~
|
GCC 15 can use excessive memory when compiling some macro-heavy CMSSW sources. For example, RecoTracker/LSTCore/src/alpaka/LST.cc uses ~9 GB of memory, with most of it spent during preprocessing/macro-expansion tracking. This can lead to OOM failures when multiple compilation jobs run in parallel.
Testing -ftrack-macro-expansion=0 reduces the memory usage of this compilation from ~9 GB to below 1 GB and also reduces the compilation time significantly.
This PR enables -ftrack-macro-expansion=0 to evaluate its impact on CMSSW builds. The option only disables detailed macro-expansion tracking for diagnostics; macro expansion and generated code are unchanged.
If the test is successful, we will consider enabling it for IB/release builds while retaining full macro-expansion tracking for CI/PR builds.