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

Using consistent Eigen alignment settings #9060

Merged
merged 3 commits into from
Mar 11, 2024

Conversation

smuzaffar
Copy link
Contributor

This is follow up on #9043. This change allows

  • to use consistent build flags for project depending on eigen
  • enable vectorization build for lwtnn, opencv and pytorch packages

@cmsbuild
Copy link
Contributor

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

@iarspider, @aandvalenzuela, @cmsbuild, @smuzaffar can you please review it and eventually sign? Thanks.
@antoniovilela, @rappoccio, @sextonkennedy you are the release manager for this.
cms-bot commands are listed here

@cmsbuild
Copy link
Contributor

cmsbuild commented Mar 11, 2024

cms-bot internal usage

@smuzaffar smuzaffar changed the title Eigen build flags Using consistent Eigen alignment settings Mar 11, 2024
@smuzaffar
Copy link
Contributor Author

please test

@smuzaffar
Copy link
Contributor Author

please test for CMSSW_14_1_MULTIARCHS_X/el8_amd64_gcc12

@makortel
Copy link
Contributor

Thanks @smuzaffar. I have two questions

@cmsbuild
Copy link
Contributor

Pull request #9060 was updated.

@smuzaffar
Copy link
Contributor Author

ah my bad @makortel , yes lwtnn should be updated ( I already have updated the PR).
For professor2, I am still running some local tests. As it is not directly used in cmssw so I will update it in a separate PR

@smuzaffar
Copy link
Contributor Author

please test

@smuzaffar
Copy link
Contributor Author

please test for CMSSW_14_1_MULTIARCHS_X/el8_amd64_gcc12

@cmsbuild
Copy link
Contributor

+1

Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-aaee32/38036/summary.html
COMMIT: a12ad75
CMSSW: CMSSW_14_1_X_2024-03-11-1100/el8_amd64_gcc12
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week0/cms-sw/cmsdist/9060/38036/install.sh to create a dev area with all the needed externals and cmssw changes.

Comparison Summary

Summary:

  • You potentially added 44 lines to the logs
  • ROOTFileChecks: Some differences in event products or their sizes found
  • Reco comparison results: 181 differences found in the comparisons
  • DQMHistoTests: Total files compared: 48
  • DQMHistoTests: Total histograms compared: 3297383
  • DQMHistoTests: Total failures: 3
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 3297360
  • DQMHistoTests: Total skipped: 20
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 47 files compared)
  • Checked 202 log files, 165 edm output root files, 48 DQM output files
  • TriggerResults: found differences in 5 / 46 workflows

@smuzaffar
Copy link
Contributor Author

+externals

@smuzaffar
Copy link
Contributor Author

lets get this in for next 14.1.X IB.

@cmsbuild
Copy link
Contributor

This pull request is fully signed and it will be integrated in one of the next IB/CMSSW_14_1_X/master IBs (tests are also fine). This pull request will now be reviewed by the release team before it's merged. @sextonkennedy, @antoniovilela, @rappoccio (and backports should be raised in the release meeting by the corresponding L2)

@smuzaffar smuzaffar merged commit 1f90040 into IB/CMSSW_14_1_X/master Mar 11, 2024
10 of 11 checks passed
@fwyzard
Copy link
Contributor

fwyzard commented Mar 12, 2024

enable vectorization build for lwtnn, opencv and pytorch packages

@smuzaffar it looks like those packages are still using only -msse3 ?

@smuzaffar
Copy link
Contributor Author

Yes @fwyzard , for default (non multiarch build) IBs these packages will still use -msse3. This PR only adds these packages in to list of packages which can be build for multi-archs. #9061 PR actually build these packages for multi-archs (see logs https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-b88baa/38046/externals/ )

[29/38] : && /data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el8_amd64_gcc12/external/gcc/12.3.1-40d504be6370b5a30e3947a6e575ca28/bin/g++ \
-fPIC -DEIGEN_DONT_PARALLELIZE -DEIGEN_MAX_ALIGN_BYTES=64 -march=x86-64-v3 \
-Wall -pedantic -Wextra -Wcomment -Wunused-value -O3 -DNDEBUG  \
CMakeFiles/lwtnn-dump-config.dir/src/lwtnn-dump-config.cxx.o -o bin/lwtnn-dump-config  lib/liblwtnn-stat.a && :

@cmsbuild
Copy link
Contributor

+1

Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-aaee32/38040/summary.html
COMMIT: a12ad75
CMSSW: CMSSW_14_1_MULTIARCHS_X_2024-03-10-2300/el8_amd64_gcc12
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week0/cms-sw/cmsdist/9060/38040/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-aaee32/38040/git-recent-commits.json
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-aaee32/38040/git-merge-result

Comparison Summary

Summary:

  • You potentially removed 589 lines from the logs
  • ROOTFileChecks: Some differences in event products or their sizes found
  • Reco comparison results: 68093 differences found in the comparisons
  • DQMHistoTests: Total files compared: 48
  • DQMHistoTests: Total histograms compared: 3297383
  • DQMHistoTests: Total failures: 147145
  • DQMHistoTests: Total nulls: 272
  • DQMHistoTests: Total successes: 3149946
  • DQMHistoTests: Total skipped: 20
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: -4.849 KiB( 47 files compared)
  • DQMHistoSizes: changed ( 13034.0 ): -0.854 KiB SiStrip/MechanicalView
  • DQMHistoSizes: changed ( 140.063 ): -0.004 KiB JetMET/SUSYDQM
  • DQMHistoSizes: changed ( 141.042 ): 0.004 KiB JetMET/SUSYDQM
  • DQMHistoSizes: changed ( 141.044 ): -0.031 KiB JetMET/SUSYDQM
  • DQMHistoSizes: changed ( 141.046 ): -0.012 KiB JetMET/SUSYDQM
  • DQMHistoSizes: changed ( 250202.181 ): -0.421 KiB SiStrip/MechanicalView
  • DQMHistoSizes: changed ( 25202.0 ): -0.225 KiB SiStrip/MechanicalView
  • DQMHistoSizes: changed ( 7.3 ): 1.533 KiB SiStrip/MechanicalView
  • DQMHistoSizes: changed ( 8.0 ): -4.839 KiB SiStrip/MechanicalView
  • Checked 202 log files, 165 edm output root files, 48 DQM output files
  • TriggerResults: found differences in 17 / 46 workflows

@fwyzard
Copy link
Contributor

fwyzard commented Mar 12, 2024

OK, thanks.

I see that the default build has

cmake ../lwtnn-2.14.1 -G Ninja -DCMAKE_CXX_COMPILER=g++ '-DCMAKE_CXX_FLAGS=-fPIC -DEIGEN_DONT_PARALLELIZE -DEIGEN_MAX_ALIGN_BYTES=64 -msse3' ...

while the v3 build has

cmake ../lwtnn-2.14.1 -G Ninja -DCMAKE_CXX_COMPILER=g++ '-DCMAKE_CXX_FLAGS=-fPIC -DEIGEN_DONT_PARALLELIZE -DEIGEN_MAX_ALIGN_BYTES=64 -march=x86-64-v3' ...

but, looking at the spec files, I don't see what makes the change between the two !

@smuzaffar
Copy link
Contributor Author

@fwyzard , to avoid maintaining two spec files (e.g. lwtnn.spec and lwtnn_x86-64-v3.spec) cmsBuild has a way of auto generating <package>_<micro-arch>.spec from <package>.spec. For multi-arch packages, it uses https://github.com/cms-sw/cmsdist/blob/IB/CMSSW_14_1_X/master/vectorization/cmsdist_packages.py to auto generate <package>_x86-64-v3.spec by replacing the default micro-arch flag (-msse3) with the selected micro-arch flag (-march=x86-64-v3)

@fwyzard
Copy link
Contributor

fwyzard commented Mar 12, 2024

Ah... I see, thanks.

@smuzaffar smuzaffar deleted the eigen-build-flags branch March 14, 2024 15:40
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.

4 participants