Navigation Menu

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

PFDisplacedVertexFinder speedups #20997

Merged
merged 4 commits into from Oct 26, 2017
Merged

Conversation

davidlange6
Copy link
Contributor

merge two calculations and covert them to float (as the inputs are floats). Regression is possible, though I found the calculations agreed to 5 digits (changing by 1 in the 6th digit from time to time).

@cmsbuild
Copy link
Contributor

The code-checks are being triggered in jenkins.

@davidlange6
Copy link
Contributor Author

a double precision version of this code saved ~0.5% of reco

0.82 24.04 PFDisplacedVertexFinder::getLongDiff(Point3DBase<float, GlobalTag> const&, Point3DBase<float, GlobalTag> const&) const [256]
0.76 22.42 PFDisplacedVertexFinder::getTransvDiff(Point3DBase<float, GlobalTag> const&, Point3DBase<float, GlobalTag> const&) const [271]

goes to

1.0 29.56 PFDisplacedVertexFinder::getTransvLongDiff(Point3DBase<float, GlobalTag> const&, Point3DBase<float, GlobalTag> const&) const

@cmsbuild
Copy link
Contributor

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/PR-20997/1610

@davidlange6
Copy link
Contributor Author

please test

@cmsbuild
Copy link
Contributor

cmsbuild commented Oct 24, 2017

The tests are being triggered in jenkins.
https://cmssdt.cern.ch/jenkins/job/ib-any-integration/23941/console Started: 2017/10/24 10:02

@cmsbuild
Copy link
Contributor

A new Pull Request was created by @davidlange6 (David Lange) for master.

It involves the following packages:

RecoParticleFlow/PFTracking

@perrotta, @cmsbuild, @slava77 can you please review it and eventually sign? Thanks.
@mmarionncern, @makortel, @rovere, @lgray, @seemasharmafnal, @cbernet, @ebrondol, @bachtis this is something you requested to watch as well.
@davidlange6, @slava77 you are the release manager for this.

cms-bot commands are listed here

@slava77
Copy link
Contributor

slava77 commented Oct 24, 2017 via email

Basic3DVector<float>vToProject(ToProject);
double oneOverMag = 1.0/vRef.mag();

return std::make_pair(fabs(vRef.cross(vToProject).mag()*oneOverMag),fabs((vRef.dot(vToProject)-vRef.mag2())*oneOverMag));
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IMHO, this can all be in float.
all possible essential precision loss can happen in .cross and .dot and .dot-mag2, which all apparently will be made in float.
The extra scaling by 1/mag done in double seems unnecessary.

@davidlange6
Copy link
Contributor Author

davidlange6 commented Oct 24, 2017 via email

@cmsbuild
Copy link
Contributor

The code-checks are being triggered in jenkins.

@cmsbuild
Copy link
Contributor

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/PR-20997/1612

@cmsbuild
Copy link
Contributor

The code-checks are being triggered in jenkins.

@davidlange6
Copy link
Contributor Author

davidlange6 commented Oct 25, 2017 via email

@cmsbuild
Copy link
Contributor

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/PR-20997/1637

@cmsbuild
Copy link
Contributor

Pull request #20997 was updated. @perrotta, @cmsbuild, @slava77 can you please check and sign again.

@davidlange6
Copy link
Contributor Author

please test

@cmsbuild
Copy link
Contributor

cmsbuild commented Oct 25, 2017

The tests are being triggered in jenkins.
https://cmssdt.cern.ch/jenkins/job/ib-any-integration/23978/console Started: 2017/10/25 10:43

@cmsbuild
Copy link
Contributor

@cmsbuild
Copy link
Contributor

Comparison job queued.

@cmsbuild
Copy link
Contributor

Comparison is ready
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-20997/23978/summary.html

Comparison Summary:

  • No significant changes to the logs found
  • Reco comparison results: 0 differences found in the comparisons
  • DQMHistoTests: Total files compared: 26
  • DQMHistoTests: Total histograms compared: 2815041
  • DQMHistoTests: Total failures: 105
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 2814765
  • DQMHistoTests: Total skipped: 171
  • DQMHistoTests: Total Missing objects: 0
  • Checked 107 log files, 10 edm output root files, 26 DQM output files

@slava77
Copy link
Contributor

slava77 commented Oct 26, 2017

+1

for #20997 d08e826

  • algorithmically technical update; reduction of precision from double to float looks OK
  • jenkins tests pass and comparisons show no differences. It looks like the change is numerically stable enough that differences are essentially invisible.

@cmsbuild
Copy link
Contributor

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

@davidlange6
Copy link
Contributor Author

merge

@cmsbuild cmsbuild merged commit acedb14 into cms-sw:master Oct 26, 2017
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.

None yet

3 participants