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

Follow up PR for PR #37695 ECAL Phase 2 weights method amplitude reconstruction on GPU #38619

Open
ChrisSandever opened this issue Jul 6, 2022 · 8 comments

Comments

@ChrisSandever
Copy link
Contributor

PR #37695 ECAL Phase 2 weights method amplitude reconstruction on GPU, added a producer to reconstruct uncalibrated RecHits a converter and modified certain other converters. It completed the reconstruction on a GPU for Phase-2.

This PR will need to be followed up by a separate PR to modify the added modules.
The planned modifications are as follows:
-To change the modules (EcalPhase2DigiToGPUProducer, EcalUncalibRecHitPhase2WeightsProducerGPU) such that they do not use the external_work template.
-To modify the kernel to be able to run with any number of threads and blocks, by allowing the kernel to reconstruct as many channels per thread as is required.
-To use the single buffer data format for use on the GPU device.

@cmsbuild
Copy link
Contributor

cmsbuild commented Jul 6, 2022

A new Issue was created by @ChrisSandever Christopher Rhys Sandever.

@Dr15Jones, @perrotta, @dpiparo, @makortel, @smuzaffar, @qliphy can you please review it and eventually sign/assign? Thanks.

cms-bot commands are listed here

@fwyzard
Copy link
Contributor

fwyzard commented Jul 13, 2022

assign ecal-dpg

@fwyzard
Copy link
Contributor

fwyzard commented Jul 13, 2022

assign heterogeneous

@cmsbuild
Copy link
Contributor

New categories assigned: heterogeneous,ecal-dpg

@fwyzard,@simonepigazzini,@makortel,@jainshilpi,@thomreis you have been requested to review this Pull request/Issue and eventually sign? Thanks

@thomreis
Copy link
Contributor

Hi @fwyzard , working on this issue at the moment. The first two tasks are done. For the single buffer data format I remember you mentioning that a generic format is being worked on. What is the status of the development there? I found #37952 but it is not merged yet.

@fwyzard
Copy link
Contributor

fwyzard commented Aug 25, 2022

hi @thomreis

For the single buffer data format I remember you mentioning that a generic format is being worked on.

We have it implemented for the Alpaka port, see for example my slides from the GPU meeting last Monday or the Core Software meeting last Tuesday (https://indico.cern.ch/event/1192819/contributions/5014619/attachments/2496301/4287337/Alpaka%20GPU%20framework.pdf) (yes, we need better documentation).

If you would like to give it a try already for the CUDA version of the modules, we can make that version available as well, currently it's only used in a private branch.

@thomreis
Copy link
Contributor

Thanks @fwyzard , in that case I will integrate the first two tasks already. We will probably move the code to Alpaka anyway so the single buffer can be done then.

@thomreis
Copy link
Contributor

#39195 takes care of the first two tasks.

  • To change the modules (EcalPhase2DigiToGPUProducer, EcalUncalibRecHitPhase2WeightsProducerGPU) such that they do not use the external_work template.
  • To modify the kernel to be able to run with any number of threads and blocks, by allowing the kernel to reconstruct as many channels per thread as is required.
  • To use the single buffer data format for use on the GPU device.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants