Open fwyzard opened 1 year ago
assign core
New categories assigned: core
@Dr15Jones,@smuzaffar,@makortel you have been requested to review this Pull request/Issue and eventually sign? Thanks
A new Issue was created by @fwyzard Andrea Bocci.
@Dr15Jones, @rappoccio, @smuzaffar, @makortel, @sextonkennedy, @antoniovilela can you please review it and eventually sign/assign? Thanks.
cms-bot commands are listed here
The PGO profile was generated rebuilding a release like this:
cmsrel CMSSW_13_2_2
cd CMSSW_13_2_2
cmsenv
sed -i -e's|ENABLE_PGO="0"|ENABLE_PGO="1"|' $CMSSW_BASE/config/Self.xml
sed -i -e's|<flags PGO_FLAGS=".*"/>|<flags PGO_FLAGS="-fprofile-generate -fprofile-update=atomic -fprofile-correction -fprofile-prefix-path=$CMSSW_BASE -fprofile-dir=$CMSSW_BASE/pgo/cmssw"/>|' $CMSSW_BASE/config/toolbox/el8_amd64_gcc11/tools/selected/gcc-cxxcompiler.xml
scram setup self
scram setup gcc-cxxcompiler
cmsenv
cd $CMSSW_BASE/src
git cms-addpkg '*/*'
scram b clean
scram b -j`nproc`
rm -r $CMSSW_BASE/pgo/cmssw/
and running an online-like HLT workflow over 11k collision events.
The PGO profile was applied rebuilding the release like this:
sed -i -e's|ENABLE_PGO="0"|ENABLE_PGO="1"|' $CMSSW_BASE/config/Self.xml
sed -i -e's|<flags PGO_FLAGS=".*"/>|<flags PGO_FLAGS="-fprofile-use -fprofile-partial-training -fprofile-update=atomic -fprofile-correction -fprofile-prefix-path=$CMSSW_BASE -fprofile-dir=$CMSSW_BASE/pgo/cmssw -Wno-missing-profile"/>|' $CMSSW_BASE/config/toolbox/el8_amd64_gcc11/tools/selected/gcc-cxxcompiler.xml
scram setup self
scram setup gcc-cxxcompiler
cmsenv
cd $CMSSW_BASE/src
git cms-addpkg '*/*'
scram b clean
scram b -j`nproc`
The instruction for building a PGO release come from @smuzaffar - many, many thanks!
I have added the flag -Wno-missing-profile
to avoid errors about files with no coverage.
The flag -Wno-error=array-bounds
can be used to work around the error reported above. The resulting binary runs successfully.
And here s the configuration used to generate the profiles:
hlt.py
is the main HLT configurationrun370293_ls0241_cff.py
can be used to run over more than 11k events from run 370293, ls 241run370293_ls0242_cff.py
can be used to run over more than 11k events from run 370293, ls 242run370293_cff.py
can be used to run on both ls 241 and 242training.py
loads hlt.py
and run370293_ls0242_cff.py
with some adjustments to generate the GCC profiletiming.py
loads hlt.py
and run370293_ls0241_cff.py
with some adjustments to perform the final timing and throughput measurments using scripts like benchmarkThe profile used above was generated with
wget https://github.com/cms-sw/cmssw/files/12524484/config.tar.gz
tar xaf config.tar.gz
cd config
cmsRun training.py
@smuzaffar, let me know if I should make the input events available somewhere.
CMSSW_13_2_2 fails to build with LTO (which is enabled by default) during the second PGO pass:
I'll add the details to reproduce the issue shortly.