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

Backport of MkFitCore vectorization PR 37868 #38259

Merged

Conversation

gartung
Copy link
Member

@gartung gartung commented Jun 6, 2022

commit 18abd3a
Author: Patrick Gartung [email protected]
Date: Wed May 25 02:12:21 2022 +0200

Code format

commit f067f25
Author: Patrick Gartung [email protected]
Date: Wed May 25 02:08:47 2022 +0200

Fix icc compilation errors

commit b265ce2
Author: Patrick Gartung [email protected]
Date: Fri May 20 23:22:10 2022 +0200

Add line to RecoTracker/MkFitCore/standalone/README_buildFromCMSSW.txt

commit 8618997
Author: Patrick Gartung [email protected]
Date: Fri May 20 18:18:50 2022 +0200

Add CMS_UNROLL_LOOP defines for Intel compilers and use with pragme omp simd instructions that cause internal icc error

commit 45977ea
Author: Patrick Gartung [email protected]
Date: Fri May 20 18:17:54 2022 +0200

Squashed commit of the following:

commit a565f528861deb96fb549f12c8ec619dc60fde1d
Author: Patrick Gartung <[email protected]>
Date:   Thu May 19 15:23:44 2022 +0200

    Remove fast-math flag and attribute needed to prevent segfault when fast-math is used

commit c3fbce9e16987ce4f152b3ae1197c543f988a363
Author: Patrick Gartung <[email protected]>
Date:   Mon May 16 17:28:41 2022 +0200

    Code format

commit c388ab36ccecad460b22042ca882b0f572ce7c6e
Author: Patrick Gartung <[email protected]>
Date:   Mon May 16 17:27:00 2022 +0200

    Update location of #endif after enabling debug. #pragma omp simd not needed for debug statements. Move debug statements to own loop.

commit 468b4760a1a6df6bf8545903339b6312e8420c31
Author: Patrick Gartung <[email protected]>
Date:   Sat May 14 19:51:00 2022 +0200

    No need to link to libmvec. It is called from libm on el8. Always use -ffastmath

commit 0ef90368b2b7c5345b417d9e99fb37acef9f8685
Author: Patrick Gartung <[email protected]>
Date:   Fri May 13 20:01:43 2022 +0200

    Only works on el8_amd64 arch

commit 8866ca64dc913d274f25da401c321cc5d2193790
Author: Patrick Gartung <[email protected]>
Date:   Fri May 13 16:10:23 2022 +0200

    Update for macro name change

commit fe4a38fa1fca00e3746b14c1d72a9e35c675360c
Author: Patrick Gartung <[email protected]>
Date:   Thu May 12 21:43:02 2022 +0200

    code format?

commit 8326129cd2333b8fcc256880f70a5deb9e5d899f
Author: Patrick Gartung <[email protected]>
Date:   Thu May 12 21:18:44 2022 +0200

	    Add CMS_UNROLL_LOOP defines for Intel compilers and use with pragme omp simd instructions that cause internal icc error

commit 056f7ef4fcc745107ff55365f0a1d9e0a2634349
Author: Patrick Gartung <[email protected]>
Date:   Thu May 12 03:42:01 2022 +0200

    Add CMS_UNROLL_LOOP_COUNT(Config::Niter) and initialize arrays with += and -= assignment statements to 0. first

commit 31e2c8351f4f988e97b04ec39eb52547654c3923
Author: Patrick Gartung <[email protected]>
Date:   Wed May 11 05:16:27 2022 +0200

    Add CMS_UNROLL_LOOP_COUNT(Config::Niter)
    and #include "FWCore/Utilities/interface/CMSUnrollLoop.h"

commit 8eab5b1ea5f6d29b90d4670ef7aedbec0ff8af72
Author: Patrick Gartung <[email protected]>
Date:   Wed May 11 04:57:47 2022 +0200

    Change atrribute from no-fast-math to match-errno

commit 688e905a36b83cf8d5da1313b703098598cd74ae
Author: Patrick Gartung <[email protected]>
Date:   Tue May 10 17:37:25 2022 +0200

    Code format

commit ed58228b16f3b86686725556739cc93508d3af14
Author: Patrick Gartung <[email protected]>
Date:   Tue May 10 17:23:08 2022 +0200

    Change attribute from no-inline to no-fast-math. Back out changes to applyMaterialEffects since it does not vectorize with the conditional on radL.

commit c19f9c8b6bb718ae110f914177788bb760a5e59a
Author: Patrick Gartung <[email protected]>
Date:   Mon May 9 19:49:15 2022 +0200

    code format

commit 373ea0d28c50e3b7d949604eddae5ac0859e0a93
Author: Patrick Gartung <[email protected]>
Date:   Mon May 9 19:02:48 2022 +0200

    missed a few initialization of variable length arrays

commit 753934cb32362ecf846b24e726ec4c1b49cf644c
Author: Patrick Gartung <[email protected]>
Date:   Mon May 9 18:51:13 2022 +0200

    for all el8 archs

commit 2eb25ef5bf7c45353d4cae9c852d5b75fd848a85
Author: Patrick Gartung <[email protected]>
Date:   Mon May 9 18:31:35 2022 +0200

    clang does not allow initialization of variable length arrays

commit 7f237622ef7b3c216e6ed3ce1a0a03f978b03817
Author: Patrick Gartung <[email protected]>
Date:   Mon May 9 17:41:29 2022 +0200

    Add fast-math and mvec when compiling under el8

commit 5f6efe223081fe7a17becd39d5f27088c227136b
Author: Patrick Gartung <[email protected]>
Date:   Mon May 9 16:07:08 2022 +0200

    Comment out changes that are CERN specific

commit 1ba6e069887f2ca38a3318f292d409a5c19b8406
Author: Patrick Gartung <[email protected]>
Date:   Thu May 5 21:25:33 2022 +0200

    Try to break loop in applyMaterialEffects into smaller loops
    Combine arithmetic ops into one loop.
    Add -lmvec which is avaiable on RHEL8

commit dbc748cdd84b82a3faa3d621eb3ea9cb2621bc7c
Author: Patrick Gartung <[email protected]>
Date:   Wed May 4 20:02:05 2022 +0200

    Incorporate Dan Riley's suggested changes

commit d6ae2c9c7bb50e03e3e9f187a1413568f5aeb7e0
Author: Patrick Gartung <[email protected]>
Date:   Tue May 3 20:20:47 2022 +0200

    Update helixAtZ to use small calculation loops

commit 3d704ba96e6cefc4d7d1959f621c0d47fc57879e
Author: Patrick Gartung <[email protected]>
Date:   Fri Apr 29 21:43:00 2022 +0200

    Work in progress

commit 31550b4446669845eb696676f47a257726923532
Author: Patrick Gartung <[email protected]>
Date:   Fri Apr 29 20:03:09 2022 +0200

    Fixups

commit f10ef52690510ba9ad9ad00dc9285bc4951e651e
Author: Patrick Gartung <[email protected]>
Date:   Fri Apr 29 00:57:47 2022 +0200

    WIP

PR description:

PR validation:

if this PR is a backport please specify the original PR and why you need to backport that PR:

Before submitting your pull requests, make sure you followed this checklist:

commit 18abd3a
Author: Patrick Gartung <[email protected]>
Date:   Wed May 25 02:12:21 2022 +0200

    Code format

commit f067f25
Author: Patrick Gartung <[email protected]>
Date:   Wed May 25 02:08:47 2022 +0200

    Fix icc compilation errors

commit b265ce2
Author: Patrick Gartung <[email protected]>
Date:   Fri May 20 23:22:10 2022 +0200

    Add line to RecoTracker/MkFitCore/standalone/README_buildFromCMSSW.txt

commit 8618997
Author: Patrick Gartung <[email protected]>
Date:   Fri May 20 18:18:50 2022 +0200

    Add CMS_UNROLL_LOOP defines for Intel compilers and use with pragme omp simd instructions that cause internal icc error

commit 45977ea
Author: Patrick Gartung <[email protected]>
Date:   Fri May 20 18:17:54 2022 +0200

    Squashed commit of the following:

    commit a565f52
    Author: Patrick Gartung <[email protected]>
    Date:   Thu May 19 15:23:44 2022 +0200

        Remove fast-math flag and attribute needed to prevent segfault when fast-math is used

    commit c3fbce9
    Author: Patrick Gartung <[email protected]>
    Date:   Mon May 16 17:28:41 2022 +0200

        Code format

    commit c388ab3
    Author: Patrick Gartung <[email protected]>
    Date:   Mon May 16 17:27:00 2022 +0200

        Update location of #endif after enabling debug. #pragma omp simd not needed for debug statements. Move debug statements to own loop.

    commit 468b476
    Author: Patrick Gartung <[email protected]>
    Date:   Sat May 14 19:51:00 2022 +0200

        No need to link to libmvec. It is called from libm on el8. Always use -ffastmath

    commit 0ef9036
    Author: Patrick Gartung <[email protected]>
    Date:   Fri May 13 20:01:43 2022 +0200

        Only works on el8_amd64 arch

    commit 8866ca6
    Author: Patrick Gartung <[email protected]>
    Date:   Fri May 13 16:10:23 2022 +0200

        Update for macro name change

    commit fe4a38f
    Author: Patrick Gartung <[email protected]>
    Date:   Thu May 12 21:43:02 2022 +0200

        code format?

    commit 8326129
    Author: Patrick Gartung <[email protected]>
    Date:   Thu May 12 21:18:44 2022 +0200

    	    Add CMS_UNROLL_LOOP defines for Intel compilers and use with pragme omp simd instructions that cause internal icc error

    commit 056f7ef
    Author: Patrick Gartung <[email protected]>
    Date:   Thu May 12 03:42:01 2022 +0200

        Add CMS_UNROLL_LOOP_COUNT(Config::Niter) and initialize arrays with += and -= assignment statements to 0. first

    commit 31e2c83
    Author: Patrick Gartung <[email protected]>
    Date:   Wed May 11 05:16:27 2022 +0200

        Add CMS_UNROLL_LOOP_COUNT(Config::Niter)
        and #include "FWCore/Utilities/interface/CMSUnrollLoop.h"

    commit 8eab5b1
    Author: Patrick Gartung <[email protected]>
    Date:   Wed May 11 04:57:47 2022 +0200

        Change atrribute from no-fast-math to match-errno

    commit 688e905
    Author: Patrick Gartung <[email protected]>
    Date:   Tue May 10 17:37:25 2022 +0200

        Code format

    commit ed58228
    Author: Patrick Gartung <[email protected]>
    Date:   Tue May 10 17:23:08 2022 +0200

        Change attribute from no-inline to no-fast-math. Back out changes to applyMaterialEffects since it does not vectorize with the conditional on radL.

    commit c19f9c8
    Author: Patrick Gartung <[email protected]>
    Date:   Mon May 9 19:49:15 2022 +0200

        code format

    commit 373ea0d
    Author: Patrick Gartung <[email protected]>
    Date:   Mon May 9 19:02:48 2022 +0200

        missed a few initialization of variable length arrays

    commit 753934c
    Author: Patrick Gartung <[email protected]>
    Date:   Mon May 9 18:51:13 2022 +0200

        for all el8 archs

    commit 2eb25ef
    Author: Patrick Gartung <[email protected]>
    Date:   Mon May 9 18:31:35 2022 +0200

        clang does not allow initialization of variable length arrays

    commit 7f23762
    Author: Patrick Gartung <[email protected]>
    Date:   Mon May 9 17:41:29 2022 +0200

        Add fast-math and mvec when compiling under el8

    commit 5f6efe2
    Author: Patrick Gartung <[email protected]>
    Date:   Mon May 9 16:07:08 2022 +0200

        Comment out changes that are CERN specific

    commit 1ba6e06
    Author: Patrick Gartung <[email protected]>
    Date:   Thu May 5 21:25:33 2022 +0200

        Try to break loop in applyMaterialEffects into smaller loops
        Combine arithmetic ops into one loop.
        Add -lmvec which is avaiable on RHEL8

    commit dbc748c
    Author: Patrick Gartung <[email protected]>
    Date:   Wed May 4 20:02:05 2022 +0200

        Incorporate Dan Riley's suggested changes

    commit d6ae2c9
    Author: Patrick Gartung <[email protected]>
    Date:   Tue May 3 20:20:47 2022 +0200

        Update helixAtZ to use small calculation loops

    commit 3d704ba
    Author: Patrick Gartung <[email protected]>
    Date:   Fri Apr 29 21:43:00 2022 +0200

        Work in progress

    commit 31550b4
    Author: Patrick Gartung <[email protected]>
    Date:   Fri Apr 29 20:03:09 2022 +0200

        Fixups

    commit f10ef52
    Author: Patrick Gartung <[email protected]>
    Date:   Fri Apr 29 00:57:47 2022 +0200

        WIP
@cmsbuild
Copy link
Contributor

cmsbuild commented Jun 6, 2022

A new Pull Request was created by @gartung (Patrick Gartung) for CMSSW_12_4_X.

It involves the following packages:

  • FWCore/Utilities (core)
  • RecoTracker/MkFitCore (reconstruction)

@smuzaffar, @Dr15Jones, @makortel, @clacaputo, @cmsbuild, @slava77, @jpata can you please review it and eventually sign? Thanks.
@makortel, @felicepantaleo, @GiacomoSguazzoni, @JanFSchulte, @wddgit, @VinInn, @ebrondol, @rovere, @gpetruc, @mmusich, @mtosi, @dgulhan this is something you requested to watch as well.
@perrotta, @dpiparo, @qliphy you are the release manager for this.

cms-bot commands are listed here

@gartung
Copy link
Member Author

gartung commented Jun 6, 2022

enable profiling

@gartung
Copy link
Member Author

gartung commented Jun 6, 2022

please test

@cmsbuild
Copy link
Contributor

cmsbuild commented Jun 7, 2022

+1

Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-640ff4/25310/summary.html
COMMIT: 05e1025
CMSSW: CMSSW_12_4_X_2022-06-06-1100/el8_amd64_gcc10
Additional Tests: PROFILING
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week0/cms-sw/cmssw/38259/25310/install.sh to create a dev area with all the needed externals and cmssw changes.

Comparison Summary

Summary:

  • No significant changes to the logs found
  • Reco comparison results: 63 differences found in the comparisons
  • DQMHistoTests: Total files compared: 50
  • DQMHistoTests: Total histograms compared: 3671502
  • DQMHistoTests: Total failures: 1120
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 3670360
  • DQMHistoTests: Total skipped: 22
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 49 files compared)
  • Checked 208 log files, 45 edm output root files, 50 DQM output files
  • TriggerResults: no differences found

@clacaputo
Copy link
Contributor

Hi @gartung, could you please edit the title by removing the URL? Thanks

@gartung gartung changed the title Backport of MkFitCore vectorization PR https://github.com/cms-sw/cmssw/pull/37868 Backport of MkFitCore vectorization PR 37868 Jun 7, 2022
@clacaputo
Copy link
Contributor

+reconstruction

@gartung
Copy link
Member Author

gartung commented Jun 9, 2022

@Dr15Jones can you sign for core?

@Dr15Jones
Copy link
Contributor

+1

@cmsbuild
Copy link
Contributor

cmsbuild commented Jun 9, 2022

This pull request is fully signed and it will be integrated in one of the next CMSSW_12_4_X IBs (tests are also fine) and once validation in the development release cycle CMSSW_12_5_X is complete. This pull request will now be reviewed by the release team before it's merged. @perrotta, @dpiparo, @qliphy (and backports should be raised in the release meeting by the corresponding L2)

@qliphy
Copy link
Contributor

qliphy commented Jun 9, 2022

+1

@cmsbuild cmsbuild merged commit e83b01d into cms-sw:CMSSW_12_4_X Jun 9, 2022
@gartung gartung deleted the gartung-backport-MkfitCore-37868 branch August 22, 2022 20:26
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.

5 participants