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

HLT GPU tutorial [15.0.x] #47608

Open
wants to merge 4 commits into
base: CMSSW_15_0_X
Choose a base branch
from

Conversation

fwyzard
Copy link
Contributor

@fwyzard fwyzard commented Mar 17, 2025

PR description:

Implement a tutorial for using GPUs in CMSSW.

The outline is:

  • take a collection of PF jets
  • convert to SoA format
  • [automatically] copy to device
  • read jet corrections from the EventSetup
  • apply the corrections based on pT and |eta|
  • produce a SoA with corrected jets
  • apply some cuts based on pT and |eta|
  • compute the invariant mass of all combinations of 2 or 3 jets
  • select all combinations with invariant mass in a given range
  • fill a SoA with all combinations of (j1, j2, n/a) or (j1, j2, j3)
  • [automatically] copy to host
  • print the combinations of PF jets

This PR includes the bug fixes from #47606.

PR validation:

The tutorial runs successfully on top of CMSSW_15_0_0.

If this PR is a backport please specify the original PR and why you need to backport that PR. If this PR will be backported please specify to which release cycle the backport is meant for:

Backport of #47607 to 15.0.x to help with HLT developments.

@cmsbuild cmsbuild added this to the CMSSW_15_0_X milestone Mar 17, 2025
@fwyzard
Copy link
Contributor Author

fwyzard commented Mar 17, 2025

backport #47607

@cmsbuild
Copy link
Contributor

cmsbuild commented Mar 17, 2025

A new Pull Request was created by @fwyzard for CMSSW_15_0_X.

It involves the following packages:

  • DataFormats/HeterogeneousTutorial (****)
  • DataFormats/SoATemplate (heterogeneous)
  • HeterogeneousCore/AlpakaCore (heterogeneous)
  • HeterogeneousCore/AlpakaInterface (heterogeneous)
  • HeterogeneousCore/Tutorial (****)

The following packages do not have a category, yet:

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

@cmsbuild, @fwyzard, @makortel can you please review it and eventually sign? Thanks.
@makortel, @missirol, @mmusich, @rovere this is something you requested to watch as well.
@antoniovilela, @mandrenguyen, @rappoccio, @sextonkennedy you are the release manager for this.

cms-bot commands are listed here

@cmsbuild
Copy link
Contributor

cmsbuild commented Mar 17, 2025

cms-bot internal usage

It contains various modules and data structres:

an EDProducer to convert PFJets to a simplified SoA format
  - a heterogeneous global::EDProducer running on CPU
  - SoA data structures
  - automatic data transfers from host to device

an EDProducer to apply residual jet corrections on GPU
  - an asynchronous global::EDProducer running on GPU
  - a simple 1D kernel

an ESProducer for the jet corrections
  - a new EventSetup record
  - new “portable” data structures and EventSetup conditions
  - a heterogeneous ESProducer

an EDProducer to find all jet pairs and triplets passing some selection criteria
  - a stream::SynchronizingEDProducer
  - new persistent and local SoA data structures
  - automatic copy of a configuration object to the GPUs
  - more complex 2D and 3D kernels

an EDAnalyzer to print the N-tuplets
  - a traditional edm::EDAnalyzer running on CPU
  - automatic data transfers from device to host

It also contains a configuration file to run the full job on GPUs or on CPU.

Note: these packages are distributed under the GNU GPL v3 license.
@cmsbuild
Copy link
Contributor

Pull request #47608 was updated. @cmsbuild, @fwyzard, @makortel can you please check and sign again.

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.

2 participants