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

Automatize the reuse of the CUDA stream of an input product #305

Merged

Conversation

makortel
Copy link

This PR addresses #278. Basic idea is that the first CUDAScopedContext constructor reading a CUDAProduct<T> object will re-use the CUDA stream of that product, and all the subsequent ones will create a new CUDA stream.

As an example, let's say we have the following modules/products

   A
 / | \
B  C  D
      |
      E

The product A is produced in one CUDA stream. One of the B, C, or D will re-use the same CUDA stream, the other two will create new ones. The E will use the same CUDA stream as D.

I believe this approach is the best we can do in a simple way using only local information.

I believe this approach is the best we can do in a simple (and local)
way.
@fwyzard
Copy link

fwyzard commented Apr 8, 2019

Interesting approach, let's run the usual tests.

@fwyzard
Copy link

fwyzard commented Apr 8, 2019

No impact on the throughput.

Before: 1846.2 ± 15.6 ev/s
After: 1843.0 ± 9.3 ev/s

@fwyzard
Copy link

fwyzard commented Apr 8, 2019

No impact on the tracking performance:

  development-10824.52 testing-10824.52
Efficiency 0.5801 0.5801
Number of TrackingParticles (after cuts) 5575 5575
Number of matched TrackingParticles 3234 3234
Fake rate 0.0342 0.0342
Duplicate rate 0.0004 0.0004
Number of tracks 44607 44607
Number of true tracks 43080 43080
Number of fake tracks 1527 1527
Number of pileup tracks 38249 38249
Number of duplicate tracks 16 16

@fwyzard
Copy link

fwyzard commented Apr 8, 2019

image

image

@fwyzard fwyzard merged commit 219ef3c into cms-patatrack:CMSSW_10_6_X_Patatrack Apr 8, 2019
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.

2 participants