Skip to content

Conversation

@leobeltra
Copy link

@leobeltra leobeltra commented Oct 6, 2025

PR description:

This PR introduces AoSWrapper as a subclass of the SoA layout. It provides the same utilities as SoA, i.e., View, ConstView, and Metadata, in a more minimal form, making AoSWrapper a suitable object for PortableCollections to wrap. The transpose() function enables heterogeneous conversion between SoA and AoS in both directions and runs via a kernel with a fixed thread count, prioritizing ease of use.

PR validation:

Two test cases have been added, one testing the correctness of the new AoS Layout (AoSUnitTests.cc) and one testing the heterogeneous transposition between AoS/SoA and SoA/AoS (test_catch2_portableAoS.dev.cc).

In collaboration with @Electricks94.

FYI: @felicepantaleo

@cmsbuild
Copy link
Contributor

cmsbuild commented Oct 6, 2025

cms-bot internal usage

@mmusich
Copy link
Contributor

mmusich commented Oct 6, 2025

type ngt

@cmsbuild cmsbuild added the ngt label Oct 6, 2025
@cmsbuild
Copy link
Contributor

cmsbuild commented Oct 6, 2025

-code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-49072/46300

Code check has found code style and quality issues which could be resolved by applying following patch(s)

@mmusich
Copy link
Contributor

mmusich commented Oct 6, 2025

enable gpu

@cmsbuild
Copy link
Contributor

cmsbuild commented Oct 6, 2025

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-49072/46301

@cmsbuild
Copy link
Contributor

cmsbuild commented Oct 6, 2025

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

It involves the following packages:

  • DataFormats/Portable (heterogeneous)
  • DataFormats/SoATemplate (heterogeneous)

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

cms-bot commands are listed here

@mmusich
Copy link
Contributor

mmusich commented Oct 6, 2025

allow @leobeltra test rights

@leobeltra
Copy link
Author

please test

Comment on lines +1765 to +2004
/* AoS as subclass of the SoA. The main purpose should be to perform the heterogeneous tranposition */ \
/* from SoA to AoS. This class is a suitable template parameter for the PortableCollections. */ \
struct AoSWrapper { \
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I understand "subclass" the same as "derived class". But here AoSWrapper does not derive from the SoA layout. Is it a nested class then?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, it is a nested class. I will fix the comment, thank you.

@cmsbuild
Copy link
Contributor

cmsbuild commented Oct 6, 2025

+1

Size: This PR adds an extra 60KB to repository
Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-b52652/48494/summary.html
COMMIT: 7c43142
CMSSW: CMSSW_16_0_X_2025-10-06-1100/el8_amd64_gcc13
Additional Tests: GPU,AMD_MI300X,AMD_W7900,NVIDIA_H100,NVIDIA_L40S,NVIDIA_T4
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week0/cms-sw/cmssw/49072/48494/install.sh to create a dev area with all the needed externals and cmssw changes.

Comparison Summary

Summary:

AMD_MI300X Comparison Summary

Summary:

AMD_W7900 Comparison Summary

Summary:

NVIDIA_H100 Comparison Summary

Summary:

NVIDIA_L40S Comparison Summary

Summary:

NVIDIA_T4 Comparison Summary

Summary:

@cmsbuild
Copy link
Contributor

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-49072/46539

@cmsbuild
Copy link
Contributor

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

@cmsbuild
Copy link
Contributor

Milestone for this pull request has been moved to CMSSW_16_1_X. Please open a backport if it should also go in to CMSSW_16_0_X.

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.

4 participants