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

Heterogeneous version of Raw2Cluster and RecHit #62

Conversation

makortel
Copy link

This PR "merges" the CPU version of Raw2Digi and GPU version of Raw2Cluster to a heterogeneous Raw2Cluster (clustering is added to the CPU side). It also adds a "merged" version of CPU and GPU RecHits.

Some work is done towards making the GPU Raw2Cluster fully asynchronous, but that was not fully achieved yet. What remains is some reorganization of countModules and findClus kernels to get rid of the final cudaStreamSynchronize() at the end of RawToDigi_kernel().

This PR replaces #57 by adding the heterogeneous version of RecHits (and cleans a bit the history)

Tested in 10_2_0_pre4, no changes expected.

@fwyzard @felicepantaleo @VinInn @rovere

@cmsbot
Copy link

cmsbot commented May 30, 2018

A new Pull Request was created by @makortel (Matti Kortelainen) for CMSSW_10_2_X_Patatrack.

It involves the following packages:

Configuration/StandardSequences
DQM/TrackingMonitorSource
EventFilter/SiPixelRawToDigi
HeterogeneousCore/CUDAUtilities
RecoLocalTracker/SiPixelClusterizer
RecoLocalTracker/SiPixelRecHits
Validation/RecoTrack

The following packages do not have a category, yet:

HeterogeneousCore/CUDAUtilities
Please create a PR for https://github.com/cms-sw/cms-bot/blob/master/categories_map.py to assign category

@cmsbot, @fwyzard can you please review it and eventually sign? Thanks.

cms-bot commands are listed here

@fwyzard
Copy link

fwyzard commented May 31, 2018

Reference release CMSSW_10_2_0_pre4 at 926a81b
Development branch CMSSW_10_2_X_Patatrack at 4b47b59
Testing PRs:

makeTrackValidationPlots.py plots

/RelValTTbar_13/CMSSW_10_2_0_pre3-PU25ns_101X_upgrade2018_realistic_v7-v1/GEN-SIM-DIGI-RAW

/RelValZMM_13/CMSSW_10_2_0_pre3-101X_upgrade2018_realistic_v7-v1/GEN-SIM-DIGI-RAW

DQM GUI plots

/RelValTTbar_13/CMSSW_10_2_0_pre3-PU25ns_101X_upgrade2018_realistic_v7-v1/GEN-SIM-DIGI-RAW

  • reference DQM plots for reference release, workflow 10824.5
  • DQM plots for development release, workflow 10824.5
  • DQM plots for development release, workflow 10824.8
  • DQM plots for development release, workflow 10824.7
  • DQM plots for development release, workflow 10824.9 are missing
  • DQM plots for testing release, workflow 10824.5
  • DQM plots for testing release, workflow 10824.8
  • DQM plots for testing release, workflow 10824.7
  • DQM plots for testing release, workflow 10824.9 are missing
  • DQM comparison for reference workflow 10824.5
  • DQM comparison for workflow 10824.8
  • DQM comparison for workflow 10824.7
  • DQM comparison for workflow 10824.9

/RelValZMM_13/CMSSW_10_2_0_pre3-101X_upgrade2018_realistic_v7-v1/GEN-SIM-DIGI-RAW

  • reference DQM plots for reference release, workflow 10824.5
  • DQM plots for development release, workflow 10824.5
  • DQM plots for development release, workflow 10824.8
  • DQM plots for development release, workflow 10824.7
  • DQM plots for development release, workflow 10824.9 are missing
  • DQM plots for testing release, workflow 10824.5
  • DQM plots for testing release, workflow 10824.8
  • DQM plots for testing release, workflow 10824.7
  • DQM plots for testing release, workflow 10824.9 are missing
  • DQM comparison for reference workflow 10824.5
  • DQM comparison for workflow 10824.8
  • DQM comparison for workflow 10824.7
  • DQM comparison for workflow 10824.9

logs and nvprof/nvvp profiles

/RelValTTbar_13/CMSSW_10_2_0_pre3-PU25ns_101X_upgrade2018_realistic_v7-v1/GEN-SIM-DIGI-RAW

/RelValZMM_13/CMSSW_10_2_0_pre3-101X_upgrade2018_realistic_v7-v1/GEN-SIM-DIGI-RAW

Logs

The full log is available at https://fwyzard.web.cern.ch/fwyzard/patatrack/pulls/f24fdf85aaaf7542195d985cacab4640b4ae5efb/log .

@fwyzard
Copy link

fwyzard commented May 31, 2018

Sorry for a couple of bugs in the report :(

@makortel
Copy link
Author

makortel commented Jun 1, 2018

The effect ExternalWork seems to be visible in the profiles, even if the GPU side is not fully asynchronous yet (following is from "TTbar testing profile 10824.8")

image

@fwyzard Do I understand correctly that NVProfilerService is not currently aware of the acquire()?

@fwyzard fwyzard merged commit ff4f623 into cms-patatrack:CMSSW_10_2_X_Patatrack Jun 4, 2018
@fwyzard
Copy link

fwyzard commented Jun 4, 2018

Do I understand correctly that NVProfilerService is not currently aware of the acquire()?

Correct, I'll need to add it.

fwyzard pushed a commit that referenced this pull request Jun 4, 2018
  - reorganize `SiPixelRawToDigi` as `SiPixelRawToDigiHeterogeneous` using `HeterogeneousEDProducer`
      - output a `HeterogeneousEvent`
      - use `PixelThresholdClusterizer`
      - add `SiPixelDigiHeterogeneousConverter`
      - make cabling and gain transfers asynchronous
  - reorganize `SiPixelRecHits` as `SiPixelRecHitHeterogeneous`
  - move `PixelThresholdClusterizer` (back?) to interface+src in order to use it outside of RecoLocalTracker/SiPixelClusterizer
  - replace __host__ __device__ with constexpr to avoid weird compilation failures
  - split clusters to their own converter
fwyzard pushed a commit that referenced this pull request Oct 8, 2020
  - reorganize `SiPixelRawToDigi` as `SiPixelRawToDigiHeterogeneous` using `HeterogeneousEDProducer`
      - output a `HeterogeneousEvent`
      - use `PixelThresholdClusterizer`
      - add `SiPixelDigiHeterogeneousConverter`
      - make cabling and gain transfers asynchronous
  - reorganize `SiPixelRecHits` as `SiPixelRecHitHeterogeneous`
  - move `PixelThresholdClusterizer` (back?) to interface+src in order to use it outside of RecoLocalTracker/SiPixelClusterizer
  - replace __host__ __device__ with constexpr to avoid weird compilation failures
  - split clusters to their own converter
fwyzard pushed a commit that referenced this pull request Oct 8, 2020
  - reorganize `SiPixelRawToDigi` as `SiPixelRawToDigiHeterogeneous` using `HeterogeneousEDProducer`
      - output a `HeterogeneousEvent`
      - use `PixelThresholdClusterizer`
      - add `SiPixelDigiHeterogeneousConverter`
      - make cabling and gain transfers asynchronous
  - reorganize `SiPixelRecHits` as `SiPixelRecHitHeterogeneous`
  - move `PixelThresholdClusterizer` (back?) to interface+src in order to use it outside of RecoLocalTracker/SiPixelClusterizer
  - replace __host__ __device__ with constexpr to avoid weird compilation failures
  - split clusters to their own converter
fwyzard pushed a commit that referenced this pull request Oct 19, 2020
  - reorganize `SiPixelRawToDigi` as `SiPixelRawToDigiHeterogeneous` using `HeterogeneousEDProducer`
      - output a `HeterogeneousEvent`
      - use `PixelThresholdClusterizer`
      - add `SiPixelDigiHeterogeneousConverter`
      - make cabling and gain transfers asynchronous
  - reorganize `SiPixelRecHits` as `SiPixelRecHitHeterogeneous`
  - move `PixelThresholdClusterizer` (back?) to interface+src in order to use it outside of RecoLocalTracker/SiPixelClusterizer
  - replace __host__ __device__ with constexpr to avoid weird compilation failures
  - split clusters to their own converter
fwyzard pushed a commit that referenced this pull request Oct 20, 2020
  - reorganize `SiPixelRawToDigi` as `SiPixelRawToDigiHeterogeneous` using `HeterogeneousEDProducer`
      - output a `HeterogeneousEvent`
      - use `PixelThresholdClusterizer`
      - add `SiPixelDigiHeterogeneousConverter`
      - make cabling and gain transfers asynchronous
  - reorganize `SiPixelRecHits` as `SiPixelRecHitHeterogeneous`
  - move `PixelThresholdClusterizer` (back?) to interface+src in order to use it outside of RecoLocalTracker/SiPixelClusterizer
  - replace __host__ __device__ with constexpr to avoid weird compilation failures
  - split clusters to their own converter
fwyzard pushed a commit that referenced this pull request Oct 20, 2020
  - reorganize `SiPixelRawToDigi` as `SiPixelRawToDigiHeterogeneous` using `HeterogeneousEDProducer`
      - output a `HeterogeneousEvent`
      - use `PixelThresholdClusterizer`
      - add `SiPixelDigiHeterogeneousConverter`
      - make cabling and gain transfers asynchronous
  - reorganize `SiPixelRecHits` as `SiPixelRecHitHeterogeneous`
  - move `PixelThresholdClusterizer` (back?) to interface+src in order to use it outside of RecoLocalTracker/SiPixelClusterizer
  - replace __host__ __device__ with constexpr to avoid weird compilation failures
  - split clusters to their own converter
fwyzard pushed a commit that referenced this pull request Oct 20, 2020
  - reorganize `SiPixelRawToDigi` as `SiPixelRawToDigiHeterogeneous` using `HeterogeneousEDProducer`
      - output a `HeterogeneousEvent`
      - use `PixelThresholdClusterizer`
      - add `SiPixelDigiHeterogeneousConverter`
      - make cabling and gain transfers asynchronous
  - reorganize `SiPixelRecHits` as `SiPixelRecHitHeterogeneous`
  - move `PixelThresholdClusterizer` (back?) to interface+src in order to use it outside of RecoLocalTracker/SiPixelClusterizer
  - replace __host__ __device__ with constexpr to avoid weird compilation failures
  - split clusters to their own converter
fwyzard pushed a commit that referenced this pull request Oct 23, 2020
  - reorganize `SiPixelRawToDigi` as `SiPixelRawToDigiHeterogeneous` using `HeterogeneousEDProducer`
      - output a `HeterogeneousEvent`
      - use `PixelThresholdClusterizer`
      - add `SiPixelDigiHeterogeneousConverter`
      - make cabling and gain transfers asynchronous
  - reorganize `SiPixelRecHits` as `SiPixelRecHitHeterogeneous`
  - move `PixelThresholdClusterizer` (back?) to interface+src in order to use it outside of RecoLocalTracker/SiPixelClusterizer
  - replace __host__ __device__ with constexpr to avoid weird compilation failures
  - split clusters to their own converter
fwyzard pushed a commit that referenced this pull request Oct 23, 2020
  - reorganize `SiPixelRawToDigi` as `SiPixelRawToDigiHeterogeneous` using `HeterogeneousEDProducer`
      - output a `HeterogeneousEvent`
      - use `PixelThresholdClusterizer`
      - add `SiPixelDigiHeterogeneousConverter`
      - make cabling and gain transfers asynchronous
  - reorganize `SiPixelRecHits` as `SiPixelRecHitHeterogeneous`
  - move `PixelThresholdClusterizer` (back?) to interface+src in order to use it outside of RecoLocalTracker/SiPixelClusterizer
  - replace __host__ __device__ with constexpr to avoid weird compilation failures
  - split clusters to their own converter
fwyzard pushed a commit that referenced this pull request Nov 6, 2020
  - reorganize `SiPixelRawToDigi` as `SiPixelRawToDigiHeterogeneous` using `HeterogeneousEDProducer`
      - output a `HeterogeneousEvent`
      - use `PixelThresholdClusterizer`
      - add `SiPixelDigiHeterogeneousConverter`
      - make cabling and gain transfers asynchronous
  - reorganize `SiPixelRecHits` as `SiPixelRecHitHeterogeneous`
  - move `PixelThresholdClusterizer` (back?) to interface+src in order to use it outside of RecoLocalTracker/SiPixelClusterizer
  - replace __host__ __device__ with constexpr to avoid weird compilation failures
  - split clusters to their own converter
fwyzard pushed a commit that referenced this pull request Nov 6, 2020
  - reorganize `SiPixelRawToDigi` as `SiPixelRawToDigiHeterogeneous` using `HeterogeneousEDProducer`
      - output a `HeterogeneousEvent`
      - use `PixelThresholdClusterizer`
      - add `SiPixelDigiHeterogeneousConverter`
      - make cabling and gain transfers asynchronous
  - reorganize `SiPixelRecHits` as `SiPixelRecHitHeterogeneous`
  - move `PixelThresholdClusterizer` (back?) to interface+src in order to use it outside of RecoLocalTracker/SiPixelClusterizer
  - replace __host__ __device__ with constexpr to avoid weird compilation failures
  - split clusters to their own converter
fwyzard pushed a commit that referenced this pull request Nov 6, 2020
  - reorganize `SiPixelRawToDigi` as `SiPixelRawToDigiHeterogeneous` using `HeterogeneousEDProducer`
      - output a `HeterogeneousEvent`
      - use `PixelThresholdClusterizer`
      - add `SiPixelDigiHeterogeneousConverter`
      - make cabling and gain transfers asynchronous
  - reorganize `SiPixelRecHits` as `SiPixelRecHitHeterogeneous`
  - move `PixelThresholdClusterizer` (back?) to interface+src in order to use it outside of RecoLocalTracker/SiPixelClusterizer
  - replace __host__ __device__ with constexpr to avoid weird compilation failures
  - split clusters to their own converter
fwyzard pushed a commit that referenced this pull request Nov 16, 2020
  - reorganize `SiPixelRawToDigi` as `SiPixelRawToDigiHeterogeneous` using `HeterogeneousEDProducer`
      - output a `HeterogeneousEvent`
      - use `PixelThresholdClusterizer`
      - add `SiPixelDigiHeterogeneousConverter`
      - make cabling and gain transfers asynchronous
  - reorganize `SiPixelRecHits` as `SiPixelRecHitHeterogeneous`
  - move `PixelThresholdClusterizer` (back?) to interface+src in order to use it outside of RecoLocalTracker/SiPixelClusterizer
  - replace __host__ __device__ with constexpr to avoid weird compilation failures
  - split clusters to their own converter
fwyzard pushed a commit that referenced this pull request Nov 16, 2020
  - reorganize `SiPixelRawToDigi` as `SiPixelRawToDigiHeterogeneous` using `HeterogeneousEDProducer`
      - output a `HeterogeneousEvent`
      - use `PixelThresholdClusterizer`
      - add `SiPixelDigiHeterogeneousConverter`
      - make cabling and gain transfers asynchronous
  - reorganize `SiPixelRecHits` as `SiPixelRecHitHeterogeneous`
  - move `PixelThresholdClusterizer` (back?) to interface+src in order to use it outside of RecoLocalTracker/SiPixelClusterizer
  - replace __host__ __device__ with constexpr to avoid weird compilation failures
  - split clusters to their own converter
fwyzard added a commit that referenced this pull request Nov 27, 2020
  - reorganize `SiPixelRawToDigi` as `SiPixelRawToDigiHeterogeneous` using `HeterogeneousEDProducer`
      - output a `HeterogeneousEvent`
      - use `PixelThresholdClusterizer`
      - add `SiPixelDigiHeterogeneousConverter`
      - make cabling and gain transfers asynchronous
  - reorganize `SiPixelRecHits` as `SiPixelRecHitHeterogeneous`
  - move `PixelThresholdClusterizer` (back?) to interface+src in order to use it outside of RecoLocalTracker/SiPixelClusterizer
  - replace __host__ __device__ with constexpr to avoid weird compilation failures
  - split clusters to their own converter
fwyzard pushed a commit that referenced this pull request Dec 25, 2020
  - reorganize `SiPixelRawToDigi` as `SiPixelRawToDigiHeterogeneous` using `HeterogeneousEDProducer`
      - output a `HeterogeneousEvent`
      - use `PixelThresholdClusterizer`
      - add `SiPixelDigiHeterogeneousConverter`
      - make cabling and gain transfers asynchronous
  - reorganize `SiPixelRecHits` as `SiPixelRecHitHeterogeneous`
  - move `PixelThresholdClusterizer` (back?) to interface+src in order to use it outside of RecoLocalTracker/SiPixelClusterizer
  - replace __host__ __device__ with constexpr to avoid weird compilation failures
  - split clusters to their own converter
fwyzard pushed a commit that referenced this pull request Dec 25, 2020
  - reorganize `SiPixelRawToDigi` as `SiPixelRawToDigiHeterogeneous` using `HeterogeneousEDProducer`
      - output a `HeterogeneousEvent`
      - use `PixelThresholdClusterizer`
      - add `SiPixelDigiHeterogeneousConverter`
      - make cabling and gain transfers asynchronous
  - reorganize `SiPixelRecHits` as `SiPixelRecHitHeterogeneous`
  - move `PixelThresholdClusterizer` (back?) to interface+src in order to use it outside of RecoLocalTracker/SiPixelClusterizer
  - replace __host__ __device__ with constexpr to avoid weird compilation failures
  - split clusters to their own converter
fwyzard pushed a commit that referenced this pull request Dec 26, 2020
  - reorganize `SiPixelRawToDigi` as `SiPixelRawToDigiHeterogeneous` using `HeterogeneousEDProducer`
      - output a `HeterogeneousEvent`
      - use `PixelThresholdClusterizer`
      - add `SiPixelDigiHeterogeneousConverter`
      - make cabling and gain transfers asynchronous
  - reorganize `SiPixelRecHits` as `SiPixelRecHitHeterogeneous`
  - move `PixelThresholdClusterizer` (back?) to interface+src in order to use it outside of RecoLocalTracker/SiPixelClusterizer
  - replace __host__ __device__ with constexpr to avoid weird compilation failures
  - split clusters to their own converter
fwyzard added a commit that referenced this pull request Dec 26, 2020
  - reorganize `SiPixelRawToDigi` as `SiPixelRawToDigiHeterogeneous` using `HeterogeneousEDProducer`
      - output a `HeterogeneousEvent`
      - use `PixelThresholdClusterizer`
      - add `SiPixelDigiHeterogeneousConverter`
      - make cabling and gain transfers asynchronous
  - reorganize `SiPixelRecHits` as `SiPixelRecHitHeterogeneous`
  - move `PixelThresholdClusterizer` (back?) to interface+src in order to use it outside of RecoLocalTracker/SiPixelClusterizer
  - replace __host__ __device__ with constexpr to avoid weird compilation failures
  - split clusters to their own converter
fwyzard pushed a commit that referenced this pull request Dec 29, 2020
  - reorganize `SiPixelRawToDigi` as `SiPixelRawToDigiHeterogeneous` using `HeterogeneousEDProducer`
      - output a `HeterogeneousEvent`
      - use `PixelThresholdClusterizer`
      - add `SiPixelDigiHeterogeneousConverter`
      - make cabling and gain transfers asynchronous
  - reorganize `SiPixelRecHits` as `SiPixelRecHitHeterogeneous`
  - move `PixelThresholdClusterizer` (back?) to interface+src in order to use it outside of RecoLocalTracker/SiPixelClusterizer
  - replace __host__ __device__ with constexpr to avoid weird compilation failures
  - split clusters to their own converter
fwyzard pushed a commit that referenced this pull request Dec 29, 2020
  - reorganize `SiPixelRawToDigi` as `SiPixelRawToDigiHeterogeneous` using `HeterogeneousEDProducer`
      - output a `HeterogeneousEvent`
      - use `PixelThresholdClusterizer`
      - add `SiPixelDigiHeterogeneousConverter`
      - make cabling and gain transfers asynchronous
  - reorganize `SiPixelRecHits` as `SiPixelRecHitHeterogeneous`
  - move `PixelThresholdClusterizer` (back?) to interface+src in order to use it outside of RecoLocalTracker/SiPixelClusterizer
  - replace __host__ __device__ with constexpr to avoid weird compilation failures
  - split clusters to their own converter
fwyzard pushed a commit that referenced this pull request Dec 29, 2020
  - reorganize `SiPixelRawToDigi` as `SiPixelRawToDigiHeterogeneous` using `HeterogeneousEDProducer`
      - output a `HeterogeneousEvent`
      - use `PixelThresholdClusterizer`
      - add `SiPixelDigiHeterogeneousConverter`
      - make cabling and gain transfers asynchronous
  - reorganize `SiPixelRecHits` as `SiPixelRecHitHeterogeneous`
  - move `PixelThresholdClusterizer` (back?) to interface+src in order to use it outside of RecoLocalTracker/SiPixelClusterizer
  - replace __host__ __device__ with constexpr to avoid weird compilation failures
  - split clusters to their own converter
fwyzard pushed a commit that referenced this pull request Dec 29, 2020
  - reorganize `SiPixelRawToDigi` as `SiPixelRawToDigiHeterogeneous` using `HeterogeneousEDProducer`
      - output a `HeterogeneousEvent`
      - use `PixelThresholdClusterizer`
      - add `SiPixelDigiHeterogeneousConverter`
      - make cabling and gain transfers asynchronous
  - reorganize `SiPixelRecHits` as `SiPixelRecHitHeterogeneous`
  - move `PixelThresholdClusterizer` (back?) to interface+src in order to use it outside of RecoLocalTracker/SiPixelClusterizer
  - replace __host__ __device__ with constexpr to avoid weird compilation failures
  - split clusters to their own converter
fwyzard pushed a commit that referenced this pull request Jan 15, 2021
  - reorganize `SiPixelRawToDigi` as `SiPixelRawToDigiHeterogeneous` using `HeterogeneousEDProducer`
      - output a `HeterogeneousEvent`
      - use `PixelThresholdClusterizer`
      - add `SiPixelDigiHeterogeneousConverter`
      - make cabling and gain transfers asynchronous
  - reorganize `SiPixelRecHits` as `SiPixelRecHitHeterogeneous`
  - move `PixelThresholdClusterizer` (back?) to interface+src in order to use it outside of RecoLocalTracker/SiPixelClusterizer
  - replace __host__ __device__ with constexpr to avoid weird compilation failures
  - split clusters to their own converter
fwyzard pushed a commit that referenced this pull request Feb 12, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants