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

GPU refactor common code from ECAL multifit and HCAL mahi #32144

Merged
merged 3 commits into from
Nov 17, 2020

Conversation

mariadalfonso
Copy link
Contributor

@mariadalfonso mariadalfonso commented Nov 15, 2020

move here function used both in
RecoLocalCalo/EcalRecProducers/plugins/AmplitudeComputationKernels.cu
and
RecoLocalCalo/HcalRecProducers/src/MahiGPU.cu

@fwyzard

@cmsbuild
Copy link
Contributor

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-32144/19816

  • This PR adds an extra 16KB to repository

@cmsbuild
Copy link
Contributor

A new Pull Request was created by @mariadalfonso for master.

It involves the following packages:

DataFormats/CaloRecHit

@perrotta, @jpata, @cmsbuild, @slava77 can you please review it and eventually sign? Thanks.
@rovere this is something you requested to watch as well.
@silviodonato, @dpiparo, @qliphy you are the release manager for this.

cms-bot commands are listed here

@fwyzard
Copy link
Contributor

fwyzard commented Nov 15, 2020

please test

@cmsbuild
Copy link
Contributor

cmsbuild commented Nov 15, 2020

The tests are being triggered in jenkins.

@cmsbuild
Copy link
Contributor

+1
Tested at: 5bef34a
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-d5fc7e/10764/summary.html
CMSSW: CMSSW_11_2_X_2020-11-15-0000
SCRAM_ARCH: slc7_amd64_gcc820

@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-d5fc7e/10764/summary.html

Comparison Summary:

  • No significant changes to the logs found
  • Reco comparison results: 2 differences found in the comparisons
  • DQMHistoTests: Total files compared: 35
  • DQMHistoTests: Total histograms compared: 2529296
  • DQMHistoTests: Total failures: 6
  • DQMHistoTests: Total nulls: 1
  • DQMHistoTests: Total successes: 2529267
  • DQMHistoTests: Total skipped: 22
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.004 KiB( 34 files compared)
  • DQMHistoSizes: changed ( 312.0 ): 0.004 KiB MessageLogger/Warnings
  • Checked 148 log files, 22 edm output root files, 35 DQM output files

@fwyzard
Copy link
Contributor

fwyzard commented Nov 16, 2020

@mariadalfonso could you change the title of the PR to be a bit more descriptive ?
For example

Refactor common code from ECAL multifit and HCAL mahi

@jpata @perrotta I can rebase #31719 and #31720 and remove the common code once this is merged.

@davidlange6
Copy link
Contributor

Hi @mariadalfonso - dependency-wise, what drives this to go to DataFormats? (its clearly not a data format but an algorithm). Could it instead go to a package like RecoLocalCalo/CommonAlgos (would be new) or CommonTools/RecoAlgos (if the usage is to grow beyond RecoLocalCalo)?

@fwyzard
Copy link
Contributor

fwyzard commented Nov 16, 2020

Hi @davidlange6, the use of DataFormats/CaloRecHit was introduced by #31704 becase DataFormats/Math was deemed too generic for calorimeter code.

If necessary, things can be moved again of course, but I would agree to that only after all PRs depending on it have been merged.

@mariadalfonso mariadalfonso changed the title GPU calocommon GPU refactor common code from ECAL multifit and HCAL mahi Nov 16, 2020
@jpata
Copy link
Contributor

jpata commented Nov 16, 2020

Could it instead go to a package like RecoLocalCalo/CommonAlgos (would be new) or CommonTools/RecoAlgos (if the usage is to grow beyond RecoLocalCalo)?
If necessary, things can be moved again of course, but I would agree to that only after all PRs depending on it have been merged.

The minimal suggestion to move this from DataFormats/Math -> DataFormats/CaloRecHit was to discourage this apparently calorimeter-specific code to be relied on by others for generic math operations. I agree that as it's not a dataformat as such, it would have a better home in some non-DataFormats package - thx for the suggestion.

I can rebase #31719 and #31720 and remove the common code once this is merged.

Sounds good to me.

@cmsbuild
Copy link
Contributor

cmsbuild commented Nov 16, 2020

The tests are being triggered in jenkins.
Tested with other pull request(s) #31719
Test Parameters:

@cmsbuild
Copy link
Contributor

+1
Tested at: 2554dfe
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-d5fc7e/10791/summary.html
CMSSW: CMSSW_11_2_X_2020-11-16-1100
SCRAM_ARCH: slc7_amd64_gcc820

@cmsbuild
Copy link
Contributor

Comparison job queued.

@cmsbuild
Copy link
Contributor

+1
Tested at: 2554dfe
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-d5fc7e/10792/summary.html
CMSSW: CMSSW_11_2_X_2020-11-16-1100
SCRAM_ARCH: slc7_amd64_gcc820

@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-d5fc7e/10791/summary.html

Comparison Summary:

  • No significant changes to the logs found
  • Reco comparison results: 2 differences found in the comparisons
  • DQMHistoTests: Total files compared: 35
  • DQMHistoTests: Total histograms compared: 2529296
  • DQMHistoTests: Total failures: 1
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 2529273
  • DQMHistoTests: Total skipped: 22
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 34 files compared)
  • Checked 148 log files, 22 edm output root files, 35 DQM output files

@jpata
Copy link
Contributor

jpata commented Nov 17, 2020

Per the discussion in #31735, there is some motivation to reconsider the use of Eigen dependencies in DataFormats, and thus moving the common calo methods as David has suggested. I would not set this as a blocker for this PR necessarily (considering the timeline of the patatrack integration effort), but to be kept in mind as an additional data point.

Although no new unit tests were added for the new functions in this PR (see #31880), it would be good to make sure the existing unit tests at least are running.

It seems like with enable gpu, the CUDA unit tests are not being run on the jenkins infrastructure. @smuzaffar could you comment if this would be possible?

I was trying instead to run the test on my local GPU machine as I have done successfully in the past for the previous patatrack PR #31704 (comment), however, the latest cuda update in CMSSW cms-sw/cmsdist@e412958 requires driver updates which I'm addressing on my infrastructure.

@smuzaffar
Copy link
Contributor

@jpata, Yes this is on my to do list but will take some time (hopefully by the end of the year)

@jpata
Copy link
Contributor

jpata commented Nov 17, 2020

Yes this is on my to do list but will take some time (hopefully by the end of the year)

OK, thank you for confirming (also that I didn't misunderstand whether/how this is supposed to work)!

Meanwhile, I was able to run the existing unit test successfully at least on my machine:

$ ./test/slc7_amd64_gcc820/test_calo_rechit 
0, 10 GeV, 1 ns  flags=0x0  aux=0x0 
0, 10 GeV, 1 ns  flags=0x0  aux=0x0 
all good!

I have no further comments from the reco side, modulo the Eigen-in-Dataformats / package location issue.

@mariadalfonso
Copy link
Contributor Author

@fwyzard wrote
If necessary, things can be moved again of course, but I would agree to that only after all PRs depending on it have been merged.

@jpata
is this fine ?
When is Ecal/Hcal is all integrated/reviewed it will be more clear what is pure Eigen algebra and caloMultifit algorithm and how to keep in synch c++/gpu code and what is cuda specific or more general

@fwyzard
Copy link
Contributor

fwyzard commented Nov 17, 2020

I have no further comments from the reco side, modulo the Eigen-in-Dataformats / package location issue.

To keep track of this and other requests, I would suggest to create an issue on GitHub to collect all the changes that should be made after the initial PRs have been merged.

@jpata
Copy link
Contributor

jpata commented Nov 17, 2020

I opened an issue for this #32159, from my side, I would be OK to move forward like this. I'll wait for comments before proceeding with the reco signature.

@fwyzard
Copy link
Contributor

fwyzard commented Nov 17, 2020

@jpata, could you sign this for RECO to have it merged and allow testing more properly the ECAL and HCAL PRs ?

@jpata
Copy link
Contributor

jpata commented Nov 17, 2020

+reconstruction

@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. @silviodonato, @dpiparo, @qliphy (and backports should be raised in the release meeting by the corresponding L2)

@silviodonato
Copy link
Contributor

+1

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.

8 participants