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

CA Extension to strips #47090

Draft
wants to merge 10 commits into
base: master
Choose a base branch
from
Draft

Conversation

bdanzi
Copy link

@bdanzi bdanzi commented Jan 13, 2025

PR description:

This PR should introduce the usage of strips layers to the offline reco and HLT Cellular Automaton (CA) usage (work done in 15_0_0_pre1):

  • the strip addition and the changes in performance are expected only if using the customizer customizeHLTforAlpakaStrip for HLT and stripNTupletFit for offline reco, final geometry (Geometry/CommonTopologies/interface/SimplePixelStripTopology.py) pairs is still work in progress
  • little gain in performance for the CA applied to pixel only due to the removal of minYsizeB1 and minYsizeB2 cuts + generalization of Kernel_simpleTripletCleaner
    Test on TTbar PU EOR3 TRK DPG v7:
    http://uaf-3.t2.ucsd.edu/~bdanzi/plots_pixelsOnlyValidation_AllCases/plots_hlt_hltPixel/effandfakePtEtaPhi.png where results in blue and red are produced with a cleaned 14_2_0 CMSSW release while the black one comes along with this PR changes

PR validation:

Before submitting I was checking

  • basic test procedure suggested in the CMSSW PR instructions, some of them still failing with exception like:
A std::exception was thrown.
Connection on "frontier://(preferipfamily=0)(proxyconfigurl=http://grid-wpad/wpad.dat)(backupproxyurl=http://cmst0frontier.cern.ch:3128)(backupproxyurl\
=http://cmst0frontier1.cern.ch:3128)(backupproxyurl=http://cmst0frontier2.cern.ch:3128)(backupproxyurl=http://cmsbpfrontier.cern.ch:3128)(backupproxyur\
l=http://cmsbpfrontier1.cern.ch:3128)(backupproxyurl=http://cmsbpfrontier2.cern.ch:3128)(backupproxyurl=http://cmsbproxy.fnal.gov:3128)(serverurl=http:\
//cmsfrontier.cern.ch:8000/FrontierProd)(serverurl=http://cmsfrontier1.cern.ch:8000/FrontierProd)(serverurl=http://cmsfrontier2.cern.ch:8000/FrontierPr\
od)(serverurl=http://cmsfrontier3.cern.ch:8000/FrontierProd)(serverurl=http://cmsfrontier4.cern.ch:8000/FrontierProd)/CMS_CONDITIONS" cannot be establi\
shed ( CORAL : "ConnectionPool::getSessionFromNewConnection" from "CORAL/Services/ConnectionService" )
----- End Fatal Exception -------------------------------------------------

cc @mmasciov @slava77
Work co-authored-by: @AdrianoDee Adriano Di Florio [email protected]

@cmsbuild cmsbuild changed the base branch from CMSSW_15_0_X to master January 13, 2025 09:47
@cmsbuild
Copy link
Contributor

bdanzi, CMSSW_15_0_X branch is closed for direct updates. cms-bot is going to move this PR to master branch.
In future, please use cmssw master branch to submit your changes.

@cmsbuild
Copy link
Contributor

cmsbuild commented Jan 13, 2025

cms-bot internal usage

@cmsbuild
Copy link
Contributor

-code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-47090/43269

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

@cmsbuild
Copy link
Contributor

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-47090/43271

@cmsbuild
Copy link
Contributor

Pull request #47090 was updated.

@AdrianoDee
Copy link
Contributor

please test

@cmsbuild
Copy link
Contributor

Pull request #47090 was updated.

@mmusich
Copy link
Contributor

mmusich commented Jan 29, 2025

test parameters:

  • relvals_opt = --what upgrade
  • workflows = 29634.751

@mmusich
Copy link
Contributor

mmusich commented Jan 30, 2025

@cmsbuild, please test

@cmsbuild
Copy link
Contributor

-1

Failed Tests: Build
Size: This PR adds an extra 16KB to repository
Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-ff55b0/44056/summary.html
COMMIT: eac1c1d
CMSSW: CMSSW_15_0_X_2025-01-29-2300/el8_amd64_gcc12
Additional Tests: PROFILING
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week0/cms-sw/cmssw/47090/44056/install.sh to create a dev area with all the needed externals and cmssw changes.

Build

I found compilation error when building:

/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02874/el8_amd64_gcc12/external/cuda/12.8.0-15bfa86985d46d842bb5ecc3aca6c676/bin/nvcc -dlink -L/data/cmsbld/jenkins/workspace/ib-run-pr-tests/CMSSW_15_0_X_2025-01-29-2300/static/el8_amd64_gcc12 -L/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02874/el8_amd64_gcc12/cms/cmssw/CMSSW_15_0_X_2025-01-29-2300/static/el8_amd64_gcc12  -L/data/cmsbld/jenkins/workspace/ib-run-pr-tests/CMSSW_15_0_X_2025-01-29-2300/biglib/el8_amd64_gcc12 -L/data/cmsbld/jenkins/workspace/ib-run-pr-tests/CMSSW_15_0_X_2025-01-29-2300/lib/el8_amd64_gcc12 -L/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02874/el8_amd64_gcc12/cms/cmssw/CMSSW_15_0_X_2025-01-29-2300/biglib/el8_amd64_gcc12 -L/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02874/el8_amd64_gcc12/cms/cmssw/CMSSW_15_0_X_2025-01-29-2300/lib/el8_amd64_gcc12 -L/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02874/el8_amd64_gcc12/cms/cmssw/CMSSW_15_0_X_2025-01-29-2300/external/el8_amd64_gcc12/lib -L/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02874/el8_amd64_gcc12/external/cuda/12.8.0-15bfa86985d46d842bb5ecc3aca6c676/lib64/stubs -lcudadevrt --diag-suppress 20014 -std=c++20 -O3 --generate-line-info --source-in-ptx --display-error-number --expt-relaxed-constexpr --extended-lambda -gencode arch=compute_60,code=[sm_60,compute_60] -gencode arch=compute_70,code=[sm_70,compute_70] -gencode arch=compute_75,code=[sm_75,compute_75] -gencode arch=compute_80,code=[sm_80,compute_80] -gencode arch=compute_89,code=[sm_89,compute_89] -Wno-deprecated-gpu-targets -diag-suppress=3012 -diag-suppress=3189 -Xcudafe --diag_suppress=esa_on_defaulted_function_ignored -Xcudafe --gnu_version=120300 --cudart shared -DALPAKA_DEFAULT_HOST_MEMORY_ALIGNMENT=128 -DALPAKA_DISABLE_VENDOR_RNG -DALPAKA_ACC_GPU_CUDA_ENABLED -DALPAKA_ACC_GPU_CUDA_ONLY_MODE -UALPAKA_HOST_ONLY --compiler-options '-O3 -pthread -pipe -Werror=main -Werror=pointer-arith -Werror=overlength-strings -Wno-vla -Werror=overflow -ftree-vectorize -Werror=array-bounds -Werror=format-contains-nul -Werror=type-limits -fvisibility-inlines-hidden -fno-math-errno --param vect-max-version-for-alias-checks=50 -Xassembler --compress-debug-sections -Wno-error=array-bounds -Warray-bounds -fuse-ld=bfd -felide-constructors -fmessage-length=0 -Wall -Wno-non-template-friend -Wno-long-long -Wreturn-type -Wextra -Wpessimizing-move -Wclass-memaccess -Wno-cast-function-type -Wno-unused-but-set-parameter -Wno-ignored-qualifiers -Wno-unused-parameter -Wunused -Wparentheses -Werror=return-type -Werror=missing-braces -Werror=unused-value -Werror=unused-label -Werror=address -Werror=format -Werror=sign-compare -Werror=write-strings -Werror=delete-non-virtual-dtor -Werror=strict-aliasing -Werror=narrowing -Werror=unused-but-set-variable -Werror=reorder -Werror=unused-variable -Werror=conversion-null -Werror=return-local-addr -Wnon-virtual-dtor -Werror=switch -fdiagnostics-show-option -Wno-unused-local-typedefs -Wno-attributes -Wno-psabi -DEIGEN_DONT_PARALLELIZE -DEIGEN_MAX_ALIGN_BYTES=64 -Wno-error=unused-variable -DALPAKA_DEFAULT_HOST_MEMORY_ALIGNMENT=128 -DALPAKA_DISABLE_VENDOR_RNG -DALPAKA_ACC_GPU_CUDA_ENABLED -DALPAKA_ACC_GPU_CUDA_ONLY_MODE -DALPAKA_HOST_ONLY -DBOOST_DISABLE_ASSERTS  -std=c++20 -march=x86-64-v2 -fPIC ' tmp/el8_amd64_gcc12/src/RecoVertex/PixelVertexFinding/plugins/RecoPixelVertexingPixelVertexFindingPluginsPortableCudaAsync/alpaka/vertexFinder.dev.cc.o -o tmp/el8_amd64_gcc12/src/RecoVertex/PixelVertexFinding/plugins/RecoPixelVertexingPixelVertexFindingPluginsPortableCudaAsync/RecoPixelVertexingPixelVertexFindingPluginsPortableCudaAsync_cudadlink.o
nvlink error   : Entry function '_ZN6alpaka6detail9gpuKernelIN17alpaka_cuda_async12vertexFinder15SortByPt2KernelENS_9ApiCudaRtENS_22AccGpuUniformCudaHipRtIS5_St17integral_constantImLm1EEjEES8_jJN4reco13ZVertexLayoutILm128ELb0EE22ViewTemplateFreeParamsILm128ELb0ELb1ELb1EEENSA_19ZVertexTracksLayoutILm128ELb0EE22ViewTemplateFreeParamsILm128ELb0ELb1ELb1EEEN12vertexFinder22PixelVertexWSSoALayoutILm128ELb0EE22ViewTemplateFreeParamsILm128ELb0ELb1ELb1EEEEEEvNS_3VecIT2_T3_EET_DpT4_' uses too much shared data (0xfdb0 bytes, 0xc000 max) (target: sm_60)
nvlink error   : Entry function '_ZN6alpaka6detail9gpuKernelIN17alpaka_cuda_async12vertexFinder19SplitVerticesKernelENS_9ApiCudaRtENS_22AccGpuUniformCudaHipRtIS5_St17integral_constantImLm1EEjEES8_jJN4reco13ZVertexLayoutILm128ELb0EE22ViewTemplateFreeParamsILm128ELb0ELb1ELb1EEENSA_19ZVertexTracksLayoutILm128ELb0EE22ViewTemplateFreeParamsILm128ELb0ELb1ELb1EEEN12vertexFinder22PixelVertexWSSoALayoutILm128ELb0EE22ViewTemplateFreeParamsILm128ELb0ELb1ELb1EEEfEEEvNS_3VecIT2_T3_EET_DpT4_' uses too much shared data (0xfdac bytes, 0xc000 max) (target: sm_60)
nvlink error   : Entry function '_ZN6alpaka6detail9gpuKernelIN17alpaka_cuda_async12vertexFinder28ClusterTracksByDensityKernelENS_9ApiCudaRtENS_22AccGpuUniformCudaHipRtIS5_St17integral_constantImLm1EEjEES8_jJN4reco13ZVertexLayoutILm128ELb0EE22ViewTemplateFreeParamsILm128ELb0ELb1ELb1EEENSA_19ZVertexTracksLayoutILm128ELb0EE22ViewTemplateFreeParamsILm128ELb0ELb1ELb1EEEN12vertexFinder22PixelVertexWSSoALayoutILm128ELb0EE22ViewTemplateFreeParamsILm128ELb0ELb1ELb1EEEifffEEEvNS_3VecIT2_T3_EET_DpT4_' uses too much shared data (0xfda8 bytes, 0xc000 max) (target: sm_60)
nvlink error   : Entry function '_ZN6alpaka6detail9gpuKernelIN17alpaka_cuda_async12vertexFinder21VertexFinderOneKernelENS_9ApiCudaRtENS_22AccGpuUniformCudaHipRtIS5_St17integral_constantImLm1EEjEES8_jJN4reco13ZVertexLayoutILm128ELb0EE22ViewTemplateFreeParamsILm128ELb0ELb1ELb1EEENSA_19ZVertexTracksLayoutILm128ELb0EE22ViewTemplateFreeParamsILm128ELb0ELb1ELb1EEEN12vertexFinder22PixelVertexWSSoALayoutILm128ELb0EE22ViewTemplateFreeParamsILm128ELb0ELb1ELb1EEEbifffEEEvNS_3VecIT2_T3_EET_DpT4_' uses too much shared data (0xfdb0 bytes, 0xc000 max) (target: sm_60)
gmake: *** [tmp/el8_amd64_gcc12/src/RecoVertex/PixelVertexFinding/plugins/RecoPixelVertexingPixelVertexFindingPluginsPortableCudaAsync/RecoPixelVertexingPixelVertexFindingPluginsPortableCudaAsync_cudadlink.o] Error 255
>> Building alpaka/cuda edm plugin tmp/el8_amd64_gcc12/src/RecoVertex/PixelVertexFinding/plugins/RecoPixelVertexingPixelVertexFindingPluginsPortableCudaAsync/libRecoPixelVertexingPixelVertexFindingPluginsPortableCudaAsync.so
/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02874/el8_amd64_gcc12/external/gcc/12.3.1-40d504be6370b5a30e3947a6e575ca28/bin/c++ -O3 -pthread -pipe -Werror=main -Werror=pointer-arith -Werror=overlength-strings -Wno-vla -Werror=overflow -std=c++20 -ftree-vectorize -Werror=array-bounds -Werror=format-contains-nul -Werror=type-limits -fvisibility-inlines-hidden -fno-math-errno --param vect-max-version-for-alias-checks=50 -Xassembler --compress-debug-sections -Wno-error=array-bounds -Warray-bounds -fuse-ld=bfd -march=x86-64-v3 -felide-constructors -fmessage-length=0 -Wall -Wno-non-template-friend -Wno-long-long -Wreturn-type -Wextra -Wpessimizing-move -Wclass-memaccess -Wno-cast-function-type -Wno-unused-but-set-parameter -Wno-ignored-qualifiers -Wno-unused-parameter -Wunused -Wparentheses -Werror=return-type -Werror=missing-braces -Werror=unused-value -Werror=unused-label -Werror=address -Werror=format -Werror=sign-compare -Werror=write-strings -Werror=delete-non-virtual-dtor -Werror=strict-aliasing -Werror=narrowing -Werror=unused-but-set-variable -Werror=reorder -Werror=unused-variable -Werror=conversion-null -Werror=return-local-addr -Wnon-virtual-dtor -Werror=switch -fdiagnostics-show-option -Wno-unused-local-typedefs -Wno-attributes -Wno-psabi -DEIGEN_DONT_PARALLELIZE -DEIGEN_MAX_ALIGN_BYTES=64 -Wno-error=unused-variable -DALPAKA_DEFAULT_HOST_MEMORY_ALIGNMENT=128 -DALPAKA_DISABLE_VENDOR_RNG -DALPAKA_ACC_GPU_CUDA_ENABLED -DALPAKA_ACC_GPU_CUDA_ONLY_MODE -DALPAKA_HOST_ONLY -DBOOST_DISABLE_ASSERTS -flto=auto -fipa-icf -flto-odr-type-merging -fno-fat-lto-objects -Wodr -shared -Wl,-E    -Wl,-z,defs     tmp/el8_amd64_gcc12/src/RecoVertex/PixelVertexFinding/plugins/RecoPixelVertexingPixelVertexFindingPluginsPortableCudaAsync/alpaka/PixelVertexProducerAlpaka.cc.o tmp/el8_amd64_gcc12/src/RecoVertex/PixelVertexFinding/plugins/RecoPixelVertexingPixelVertexFindingPluginsPortableCudaAsync/alpaka/vertexFinder.dev.cc.o tmp/el8_amd64_gcc12/src/RecoVertex/PixelVertexFinding/plugins/RecoPixelVertexingPixelVertexFindingPluginsPortableCudaAsync/RecoPixelVertexingPixelVertexFindingPluginsPortableCudaAsync_cudadlink.o -o tmp/el8_amd64_gcc12/src/RecoVertex/PixelVertexFinding/plugins/RecoPixelVertexingPixelVertexFindingPluginsPortableCudaAsync/libRecoPixelVertexingPixelVertexFindingPluginsPortableCudaAsync.so -Wl,-E -Wl,--hash-style=gnu -Wl,--as-needed -Wl,-z,noexecstack -L/data/cmsbld/jenkins/workspace/ib-run-pr-tests/CMSSW_15_0_X_2025-01-29-2300/biglib/el8_amd64_gcc12 -L/data/cmsbld/jenkins/workspace/ib-run-pr-tests/CMSSW_15_0_X_2025-01-29-2300/lib/el8_amd64_gcc12 -L/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02874/el8_amd64_gcc12/cms/cmssw/CMSSW_15_0_X_2025-01-29-2300/biglib/el8_amd64_gcc12 -L/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02874/el8_amd64_gcc12/cms/cmssw/CMSSW_15_0_X_2025-01-29-2300/lib/el8_amd64_gcc12 -L/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02874/el8_amd64_gcc12/cms/cmssw/CMSSW_15_0_X_2025-01-29-2300/external/el8_amd64_gcc12/lib -L/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02874/el8_amd64_gcc12/external/cuda/12.8.0-15bfa86985d46d842bb5ecc3aca6c676/lib64/stubs -L/data/cmsbld/jenkins/workspace/ib-run-pr-tests/CMSSW_15_0_X_2025-01-29-2300/static/el8_amd64_gcc12 -L/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02874/el8_amd64_gcc12/cms/cmssw/CMSSW_15_0_X_2025-01-29-2300/static/el8_amd64_gcc12 -lDataFormatsJetReco -lDataFormatsParticleFlowCandidate -lDataFormatsParticleFlowReco -lDataFormatsEgammaCandidates -lDataFormatsMuonReco -lRecoLocalTrackerClusterParameterEstimatorCudaAsync -lDataFormatsRecoCandidate -lRecoLocalTrackerClusterParameterEstimator -lRecoVertexPixelVertexFinding -lDataFormatsEgammaReco -lDataFormatsGsfTrackReco -lDataFormatsVertexReco -lTrackingToolsTrajectoryState -lDataFormatsTrackReco -lDataFormatsGEMRecHit -lDataFormatsTrackCandidate -lDataFormatsTrackerRecHit2D -lDataFormatsCSCRecHit -lDataFormatsDTRecHit -lDataFormatsFTLRecHit -lDataFormatsTrajectorySeed -lRecoLocalTrackerRecords -lCalibTrackerRecords -lDataFormatsTrackingRecHit -lGeometryTrackerGeometryBuilder -lDataFormatsL1TrackTrigger -lMagneticFieldRecords -lCommonToolsClustering1D -lCondFormatsDataRecord -lDataFormatsBeamSpotCudaAsync -lDataFormatsTrackerCommon -lGeometryCaloGeometry -lGeometryCommonTopologies -lDataFormatsBeamSpot -lDataFormatsCaloTowers -lDataFormatsEcalRecHit -lDataFormatsGeometryCommonDetAlgo -lDataFormatsHepMCCandidate -lDataFormatsSiStripCluster -lGeometryRecords -lGeometryTrackerNumberingBuilder -lHeterogeneousCoreAlpakaCoreCudaAsync -lTrackingToolsAnalyticalJacobians -lCondFormatsAlignmentRecord -lDataFormatsCandidate -lDataFormatsDTDigi -lDataFormatsEcalDigi -lDataFormatsGeometrySurface -lDataFormatsTrajectoryState -lDetectorDescriptionCore -lDetectorDescriptionDDCMS -lHeterogeneousCoreAlpakaCore -lMagneticFieldEngine -lCondFormatsGeometryObjects -lDataFormatsCLHEP -lDataFormatsCaloRecHit -lDataFormatsEcalDetId -lDataFormatsForwardDetId -lDataFormatsGeometryVector -lDataFormatsHcalDetId -lDataFormatsMuonDetId -lDataFormatsPhase2TrackerCluster -lDataFormatsSiPixelDetId -lDataFormatsSiStripDetId -lDataFormatsTrackSoACudaAsync -lDataFormatsVertexSoACudaAsync -lFWCoreFramework -lSimDataFormatsPileupSummaryInfo -lDataFormatsDetId -lDataFormatsFEDRawData -lDataFormatsMath -lDataFormatsPhase2TrackerDigi -lDataFormatsScouting -lDataFormatsSiPixelCluster -lDataFormatsSiStripDigi -lDataFormatsTrackSoA -lDataFormatsVertexSoA -lFWCoreCommon -lFWCoreServiceRegistry -lDataFormatsCommon -lFWCoreParameterSet -lFWCoreMessageLogger -lDataFormatsProvenance -lFWCoreConcurrency -lFWCorePluginManager -lFWCoreReflection -lHeterogeneousCoreAlpakaInterface -lTrackingToolsTrajectoryParametrization -lCondFormatsSerialization -lFWCoreUtilities -lFWCoreVersion -lDDAlign -lDDCond -lDDCore -lDDParsers -lPhysics -lHist -lMatrix -lGenVector -lMathMore -lTree -lNet -lGeom -lThread -lMathCore -lRIO -lSmatrix -lboost_program_options -lboost_serialization -lCore -lboost_thread -lboost_date_time -lCLHEP -lHepMCfio -lHepMC -lpcre -lbz2 -lcudart -lcudadevrt -lnvToolsExt -lgsl -luuid -ltbb -lxerces-c -llzma -lz -lcuda -lfmt -lcms-md5 -lopenblas -lcrypt -ldl -lrt -lstdc++fs -ltinyxml2
/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02874/el8_amd64_gcc12/external/gcc/12.3.1-40d504be6370b5a30e3947a6e575ca28/bin/../lib/gcc/x86_64-redhat-linux-gnu/12.3.1/../../../../x86_64-redhat-linux-gnu/bin/ld.bfd: cannot find tmp/el8_amd64_gcc12/src/RecoVertex/PixelVertexFinding/plugins/RecoPixelVertexingPixelVertexFindingPluginsPortableCudaAsync/RecoPixelVertexingPixelVertexFindingPluginsPortableCudaAsync_cudadlink.o: No such file or directory
collect2: error: ld returned 1 exit status
gmake: *** [tmp/el8_amd64_gcc12/src/RecoVertex/PixelVertexFinding/plugins/RecoPixelVertexingPixelVertexFindingPluginsPortableCudaAsync/libRecoPixelVertexingPixelVertexFindingPluginsPortableCudaAsync.so] Error 1


Comment on lines +78 to +79
// enable_if should be used when there is another implementation,
// please use static_assert to report invalid template arguments
Copy link
Contributor

Choose a reason for hiding this comment

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

I guess we disagree on how to write C++ code.

@fwyzard
Copy link
Contributor

fwyzard commented Jan 30, 2025

-heterogeneous

@@ -57,11 +57,12 @@
# 2024 with PU, Alpaka-based
17034.402, 17034.403, 17034.404,
17034.406, 17034.407, 17034.408,
17034.409,
Copy link
Contributor

Choose a reason for hiding this comment

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

please follow the existing numbering scheme, and introduce workflows for

  • regular reconstruction
  • GPU vs CPU validation
  • profiling

Comment on lines +21 to +22


Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change

@@ -4,12 +4,12 @@
#include <cstdint>

#include <alpaka/alpaka.hpp>

Copy link
Contributor

Choose a reason for hiding this comment

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

please add back the empty line

@@ -140,6 +140,7 @@ namespace pixelTrack {

float pt = std::min<float>(tracks.pt(it), chi2MaxPt);
float chi2Cut = chi2Scale * (chi2Coeff[0] + roughLog(pt) * chi2Coeff[1]);
//chi2Cut = chi2Scale;
Copy link
Contributor

Choose a reason for hiding this comment

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

what does this comment mean ?

@@ -13,4 +13,9 @@
<class name="alpaka_rocm_async::pixelTrack::TracksSoACollectionPhase2" persistent="false"/>
<class name="edm::DeviceProduct<alpaka_rocm_async::pixelTrack::TracksSoACollectionPhase2>" persistent="false"/>
<class name="edm::Wrapper<edm::DeviceProduct<alpaka_rocm_async::pixelTrack::TracksSoACollectionPhase2>>" persistent="false"/>

<class name="alpaka_rocm_async::PortableCollection<reco::TrackLayout<pixelTopology::Phase1Strip>>" persistent="false"/>
Copy link
Contributor

Choose a reason for hiding this comment

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

indentation

constexpr int nPairs = 13 + 2 + 4;
; // without jump + jumping barrel + jumping forward
Copy link
Contributor

Choose a reason for hiding this comment

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

why the spare ; ?

3716, // Np
numberOfModules};

static constexpr uint32_t layerStart[numberOfLayers + 1] = {0,
Copy link
Contributor

Choose a reason for hiding this comment

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

mhmh, why no longer HOST_DEVICE_CONSTANT ?
if layerStart no longer used in device code ?

@@ -378,7 +386,9 @@ namespace pixelTopology {
static constexpr int maxDYsize = 10;
static constexpr int maxDYPred = 20;

static constexpr uint16_t numberOfModules = phase2PixelTopology::numberOfModules;
static constexpr uint16_t numberOfModules = 3892;
Copy link
Contributor

Choose a reason for hiding this comment

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

please take these "magic" numbers from an existing definition

};

struct Phase1 {
// types
using hindex_type = uint32_t; // FIXME from siPixelRecHitsHeterogeneousProduct
using tindex_type = uint16_t; // for tuples
using tindex_type = uint32_t; // for tuples
Copy link
Contributor

Choose a reason for hiding this comment

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

why ?

@@ -475,7 +490,9 @@ namespace pixelTopology {
static constexpr int maxDYsize = 20;
static constexpr int maxDYPred = 20;

static constexpr uint16_t numberOfModules = phase1PixelTopology::numberOfModules;
static constexpr uint16_t numberOfModules = 1856;
Copy link
Contributor

Choose a reason for hiding this comment

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

definition ?

Comment on lines +482 to +483
static constexpr int minYsizeB1 = 1;
static constexpr int minYsizeB2 = 1;
Copy link
Contributor

Choose a reason for hiding this comment

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

why ?

@@ -0,0 +1,293 @@
#ifndef Geometry_CommonTopologies_SimpleSeedingLayersTopology_h
#define Geometry_CommonTopologies_SimpleSeedingLayersTopology_h
#include <iostream>
Copy link
Contributor

Choose a reason for hiding this comment

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

unused header ?

Comment on lines +4 to +10
#include <alpaka/alpaka.hpp>
#include "HeterogeneousCore/AlpakaInterface/interface/CopyToDevice.h"
#include "HeterogeneousCore/AlpakaInterface/interface/config.h"
#include "HeterogeneousCore/AlpakaInterface/interface/memory.h"
#include "DataFormats/GeometrySurface/interface/SOARotation.h"

#include "DataFormats/SoATemplate/interface/SoALayout.h"
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
#include <alpaka/alpaka.hpp>
#include "HeterogeneousCore/AlpakaInterface/interface/CopyToDevice.h"
#include "HeterogeneousCore/AlpakaInterface/interface/config.h"
#include "HeterogeneousCore/AlpakaInterface/interface/memory.h"
#include "DataFormats/GeometrySurface/interface/SOARotation.h"
#include "DataFormats/SoATemplate/interface/SoALayout.h"
#include "DataFormats/GeometrySurface/interface/SOARotation.h"
#include "DataFormats/SoATemplate/interface/SoALayout.h"

Comment on lines +23 to +34
namespace cms::alpakatools {
template <>
struct CopyToDevice<FrameSoAHost> {
template <typename TQueue>
static auto copyAsync(TQueue& queue, FrameSoAHost const& srcData) {
using TDevice = typename alpaka::trait::DevType<TQueue>::type;
FrameSoADevice<TDevice> dstData(srcData->metadata().size(), queue);
alpaka::memcpy(queue, dstData.buffer(), srcData.buffer());
return dstData;
}
};
} // namespace cms::alpakatools
Copy link
Contributor

Choose a reason for hiding this comment

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

This should no be necessary, as CopyToDevice is already available for PortableCollection specialisations.

Copy link
Author

Choose a reason for hiding this comment

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

If I remove this piece I get issues in FrameSoAESProducer, could you suggest me how to proceed?: ```
/cvmfs/cms-ib.cern.ch/sw/x86_64/week0/el8_amd64_gcc12/cms/cmssw/CMSSW_15_0_DEVEL_X_2025-01-28-2300/src/HeterogeneousCore/AlpakaCore/interface/alpaka/ESProducer.h: In instantiation of 'auto alpaka_rocm_async::ESProducer::setWhatProduced(T*, TReturn (T::)(const TRecord&), const edm::es::Label&) [with T = alpaka_rocm_async::FrameSoAESProducerpixelTopology::Phase2; TReturn = std::unique_ptr<PortableHostCollection<FrameLayout<> > >; TRecord = FrameSoARecord]':
/cvmfs/cms-ib.cern.ch/sw/x86_64/week0/el8_amd64_gcc12/cms/cmssw/CMSSW_15_0_DEVEL_X_2025-01-28-2300/src/HeterogeneousCore/AlpakaCore/interface/alpaka/ESProducer.h:41:29: required from 'auto alpaka_rocm_async::ESProducer::setWhatProduced(T
, const edm::es::Label&) [with T = alpaka_rocm_async::FrameSoAESProducerpixelTopology::Phase2]'
src/RecoLocalTracker/ClusterParameterEstimator/plugins/alpaka/FrameSoAESProducer.cc:56:30: required from 'alpaka_rocm_async::FrameSoAESProducer::FrameSoAESProducer(const edm::ParameterSet&) [with TrackerTraits = pixelTopology::Phase2]'
/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02874/el8_amd64_gcc12/external/gcc/12.3.1-40d504be6370b5a30e3947a6e575ca28/include/c++/12.3.1/bits/stl_construct.h:119:7: required from 'constexpr void std::_Construct(_Tp*, _Args&& ...) [with _Tp = alpaka_rocm_async::FrameSoAESProducerpixelTopology::Phase2; _Args = {edm::ParameterSet&}]'
/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02874/el8_amd64_gcc12/external/gcc/12.3.1-40d504be6370b5a30e3947a6e575ca28/include/c++/12.3.1/bits/alloc_traits.h:635:19: required from 'static constexpr void std::allocator_traits<std::allocator >::construct(allocator_type&, _Up*, _Args&& ...) [with _Up = alpaka_rocm_async::FrameSoAESProducerpixelTopology::Phase2; _Args = {edm::ParameterSet&}; allocator_type = std::allocator]'
/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02874/el8_amd64_gcc12/external/gcc/12.3.1-40d504be6370b5a30e3947a6e575ca28/include/c++/12.3.1/bits/shared_ptr_base.h:604:39: required from 'std::_Sp_counted_ptr_inplace<_Tp, _Alloc, _Lp>::_Sp_counted_ptr_inplace(_Alloc, _Args&& ...) [with _Args = {edm::ParameterSet&}; _Tp = alpaka_rocm_async::FrameSoAESProducerpixelTopology::Phase2; _Alloc = std::allocator; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]'
/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02874/el8_amd64_gcc12/external/gcc/12.3.1-40d504be6370b5a30e3947a6e575ca28/include/c++/12.3.1/bits/shared_ptr_base.h:971:16: required from 'std::__shared_count<_Lp>::__shared_count(_Tp*&, std::_Sp_alloc_shared_tag<_Alloc>, _Args&& ...) [with _Tp = alpaka_rocm_async::FrameSoAESProducerpixelTopology::Phase2; _Alloc = std::allocator; _Args = {edm::ParameterSet&}; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]'
/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02874/el8_amd64_gcc12/external/gcc/12.3.1-40d504be6370b5a30e3947a6e575ca28/include/c++/12.3.1/bits/shared_ptr_base.h:1712:14: required from 'std::__shared_ptr<_Tp, _Lp>::__shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator; _Args = {edm::ParameterSet&}; _Tp = alpaka_rocm_async::FrameSoAESProducerpixelTopology::Phase2; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]'
/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02874/el8_amd64_gcc12/external/gcc/12.3.1-40d504be6370b5a30e3947a6e575ca28/include/c++/12.3.1/bits/shared_ptr.h:464:59: required from 'std::shared_ptr<_Tp>::shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator; _Args = {edm::ParameterSet&}; _Tp = alpaka_rocm_async::FrameSoAESProducerpixelTopology::Phase2]'
/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02874/el8_amd64_gcc12/external/gcc/12.3.1-40d504be6370b5a30e3947a6e575ca28/include/c++/12.3.1/bits/shared_ptr.h:1009:14: required from 'std::shared_ptr<std::_NonArray<_Tp> > std::make_shared(_Args&& ...) [with _Tp = alpaka_rocm_async::FrameSoAESProducerpixelTopology::Phase2; _Args = {edm::ParameterSet&}; _NonArray<_Tp> = alpaka_rocm_async::FrameSoAESProducerpixelTopology::Phase2]'
/cvmfs/cms-ib.cern.ch/sw/x86_64/week0/el8_amd64_gcc12/cms/cmssw/CMSSW_15_0_DEVEL_X_2025-01-28-2300/src/FWCore/Framework/interface/ComponentMaker.h:139:75: required from 'std::shared_ptr edm::eventsetup::ComponentMaker<T, TComponent>::addTo(edm::eventsetup::EventSetupsController&, edm::eventsetup::EventSetupProvider&, edm::ParameterSet&, bool) const [with T = edm::eventsetup::ModuleMakerTraits; TComponent = alpaka_rocm_async::FrameSoAESProducerpixelTopology::Phase2; typename T::base_type = edm::eventsetup::ESProductResolverProvider]'
/cvmfs/cms-ib.cern.ch/sw/x86_64/week0/el8_amd64_gcc12/cms/cmssw/CMSSW_15_0_DEVEL_X_2025-01-28-2300/src/FWCore/Framework/interface/ComponentMaker.h:96:72: required from here
/cvmfs/cms-ib.cern.ch/sw/x86_64/week0/el8_amd64_gcc12/cms/cmssw/CMSSW_15_0_DEVEL_X_2025-01-28-2300/src/HeterogeneousCore/AlpakaCore/interface/alpaka/ESProducer.h:56:54: error: incomplete type 'CopyT' {aka 'cms::alpakatools::CopyToDevice<PortableHostCollection<FrameLayout<> > >'} used in nested name specifier
56 | return std::optional{CopyT::copyAsync(iRecord.queue(), handle)};
| ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
/cvmfs/cms-ib.cern.ch/sw/x86_64/week0/el8_amd64_gcc12/cms/cmssw/CMSSW_15_0_DEVEL_X_2025-01-28-2300/src/HeterogeneousCore/AlpakaCore/interface/alpaka/ESProducer.h:58:63: error: incomplete type 'cms::alpakatools::CopyToDevice<PortableHostCollection<FrameLayout<> > >' used in nested name specifier
58 | return std::optional<decltype(CopyT::copyAsync(std::declval<Queue&>(), std::declval()))>();
| ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cvmfs/cms-ib.cern.ch/sw/x86_64/week0/el8_amd64_gcc12/cms/cmssw/CMSSW_15_0_DEVEL_X_2025-01-28-2300/src/FWCore/Framework/interface/es_impl/ReturnArgumentTypes.h: In instantiation of 'struct edm::eventsetup::impl::ReturnArgumentTypes<alpaka_rocm_async::ESProducer::setWhatProduced<alpaka_rocm_async::FrameSoAESProducerpixelTopology::Phase2, std::unique_ptr<PortableHostCollection<FrameLayout<> > >, FrameSoARecord>(alpaka_rocm_async::FrameSoAESProducerpixelTopology::Phase2
, std::unique_ptr<PortableHostCollection<FrameLayout<> > > (alpaka_rocm_async::FrameSoAESProducerpixelTopology::Phase2::)(const FrameSoARecord&), const edm::es::Label&)::<lambda(const alpaka_rocm_async::device::Record&)> >':
/cvmfs/cms-ib.cern.ch/sw/x86_64/week0/el8_amd64_gcc12/cms/cmssw/CMSSW_15_0_DEVEL_X_2025-01-28-2300/src/HeterogeneousCore/AlpakaCore/interface/alpaka/ESProducer.h:96:13: required from 'auto alpaka_rocm_async::ESProducer::setWhatProducedDevice(TFunc&&, const edm::es::Label&) [with TRecord = FrameSoARecord; TFunc = alpaka_rocm_async::ESProducer::setWhatProduced<alpaka_rocm_async::FrameSoAESProducerpixelTopology::Phase2, std::unique_ptr<PortableHostCollection<FrameLayout<> > >, FrameSoARecord>(alpaka_rocm_async::FrameSoAESProducerpixelTopology::Phase2
, std::unique_ptr<PortableHostCollection<FrameLayout<> > > (alpaka_rocm_async::FrameSoAESProducerpixelTopology::Phase2::)(const FrameSoARecord&), const edm::es::Label&)::<lambda(const alpaka_rocm_async::device::Record&)>]'
/cvmfs/cms-ib.cern.ch/sw/x86_64/week0/el8_amd64_gcc12/cms/cmssw/CMSSW_15_0_DEVEL_X_2025-01-28-2300/src/HeterogeneousCore/AlpakaCore/interface/alpaka/ESProducer.h:51:52: required from 'auto alpaka_rocm_async::ESProducer::setWhatProduced(T
, TReturn (T::)(const TRecord&), const edm::es::Label&) [with T = alpaka_rocm_async::FrameSoAESProducerpixelTopology::Phase2; TReturn = std::unique_ptr<PortableHostCollection<FrameLayout<> > >; TRecord = FrameSoARecord]'
/cvmfs/cms-ib.cern.ch/sw/x86_64/week0/el8_amd64_gcc12/cms/cmssw/CMSSW_15_0_DEVEL_X_2025-01-28-2300/src/HeterogeneousCore/AlpakaCore/interface/alpaka/ESProducer.h:41:29: required from 'auto alpaka_rocm_async::ESProducer::setWhatProduced(T
, const edm::es::Label&) [with T = alpaka_rocm_async::FrameSoAESProducerpixelTopology::Phase2]'
src/RecoLocalTracker/ClusterParameterEstimator/plugins/alpaka/FrameSoAESProducer.cc:56:30: required from 'alpaka_rocm_async::FrameSoAESProducer::FrameSoAESProducer(const edm::ParameterSet&) [with TrackerTraits = pixelTopology::Phase2]'
/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02874/el8_amd64_gcc12/external/gcc/12.3.1-40d504be6370b5a30e3947a6e575ca28/include/c++/12.3.1/bits/stl_construct.h:119:7: required from 'constexpr void std::_Construct(_Tp*, _Args&& ...) [with _Tp = alpaka_rocm_async::FrameSoAESProducerpixelTopology::Phase2; _Args = {edm::ParameterSet&}]'
/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02874/el8_amd64_gcc12/external/gcc/12.3.1-40d504be6370b5a30e3947a6e575ca28/include/c++/12.3.1/bits/alloc_traits.h:635:19: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02874/el8_amd64_gcc12/external/gcc/12.3.1-40d504be6370b5a30e3947a6e575ca28/include/c++/12.3.1/bits/shared_ptr_base.h:971:16: required from 'std::__shared_count<_Lp>::__shared_count(_Tp*&, std::_Sp_alloc_shared_tag<_Alloc>, _Args&& ...) [with _Tp = alpaka_rocm_async::FrameSoAESProducerpixelTopology::Phase2; _Alloc = std::allocator; _Args = {edm::ParameterSet&}; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]'
/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02874/el8_amd64_gcc12/external/gcc/12.3.1-40d504be6370b5a30e3947a6e575ca28/include/c++/12.3.1/bits/shared_ptr_base.h:1712:14: required from 'std::__shared_ptr<_Tp, _Lp>::__shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator; _Args = {edm::ParameterSet&}; _Tp = alpaka_rocm_async::FrameSoAESProducerpixelTopology::Phase2; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]'
/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02874/el8_amd64_gcc12/external/gcc/12.3.1-40d504be6370b5a30e3947a6e575ca28/include/c++/12.3.1/bits/shared_ptr.h:464:59: required from 'std::shared_ptr<_Tp>::shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator; _Args = {edm::ParameterSet&}; _Tp = alpaka_rocm_async::FrameSoAESProducerpixelTopology::Phase2]'
/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02874/el8_amd64_gcc12/external/gcc/12.3.1-40d504be6370b5a30e3947a6e575ca28/include/c++/12.3.1/bits/shared_ptr.h:1009:14: required from 'std::shared_ptr<std::_NonArray<_Tp> > std::make_shared(_Args&& ...) [with _Tp = alpaka_rocm_async::FrameSoAESProducerpixelTopology::Phase2; _Args = {edm::ParameterSet&}; _NonArray<_Tp> = alpaka_rocm_async::FrameSoAESProducerpixelTopology::Phase2]'
/cvmfs/cms-ib.cern.ch/sw/x86_64/week0/el8_amd64_gcc12/cms/cmssw/CMSSW_15_0_DEVEL_X_2025-01-28-2300/src/FWCore/Framework/interface/ComponentMaker.h:139:75: required from 'std::shared_ptr edm::eventsetup::ComponentMaker<T, TComponent>::addTo(edm::eventsetup::EventSetupsController&, edm::eventsetup::EventSetupProvider&, edm::ParameterSet&, bool) const [with T = edm::eventsetup::ModuleMakerTraits; TComponent = alpaka_rocm_async::FrameSoAESProducerpixelTopology::Phase2; typename T::base_type = edm::eventsetup::ESProductResolverProvider]'
/cvmfs/cms-ib.cern.ch/sw/x86_64/week0/el8_amd64_gcc12/cms/cmssw/CMSSW_15_0_DEVEL_X_2025-01-28-2300/src/FWCore/Framework/interface/ComponentMaker.h:96:72: required from here
/cvmfs/cms-ib.cern.ch/sw/x86_64/week0/el8_amd64_gcc12/cms/cmssw/CMSSW_15_0_DEVEL_X_2025-01-28-2300/src/FWCore/Framework/interface/es_impl/ReturnArgumentTypes.h:55:13: error: invalid use of incomplete type 'struct edm::eventsetup::impl::ReturnArgumentTypesImpl<auto (alpaka_rocm_async::ESProducer::setWhatProduced<alpaka_rocm_async::FrameSoAESProducerpixelTopology::Phase2, std::unique_ptr<PortableHostCollection<FrameLayout<> > >, FrameSoARecord>(alpaka_rocm_async::FrameSoAESProducerpixelTopology::Phase2, std::unique_ptr<PortableHostCollection<FrameLayout<> > > (alpaka_rocm_async::FrameSoAESProducerpixelTopology::Phase2::)(const FrameSoARecord&), const edm::es::Label&)::<lambda(const alpaka_rocm_async::device::Record&)>::)(const alpaka_rocm_async::device::Record&) const>'
55 | using argument_type = typename ReturnArgumentTypesImpl<decltype(&F::operator())>::argument_type;
| ^~~~~~~~~~~~~
/cvmfs/cms-ib.cern.ch/sw/x86_64/week0/el8_amd64_gcc12/cms/cmssw/CMSSW_15_0_DEVEL_X_2025-01-28-2300/src/FWCore/Framework/interface/es_impl/ReturnArgumentTypes.h:9:12: note: declaration of 'struct edm::eventsetup::impl::ReturnArgumentTypesImpl<auto (alpaka_rocm_async::ESProducer::setWhatProduced<alpaka_rocm_async::FrameSoAESProducerpixelTopology::Phase2, std::unique_ptr<PortableHostCollection<FrameLayout<> > >, FrameSoARecord>(alpaka_rocm_async::FrameSoAESProducerpixelTopology::Phase2
, std::unique_ptr<PortableHostCollection<FrameLayout<> > > (alpaka_rocm_async::FrameSoAESProducerpixelTopology::Phase2::)(const FrameSoARecord&), const edm::es::Label&)::<lambda(const alpaka_rocm_async::device::Record&)>::)(const alpaka_rocm_async::device::Record&) const>'
9 | struct ReturnArgumentTypesImpl;
| ^~~~~~~~~~~~~~~~~~~~~~~
/cvmfs/cms-ib.cern.ch/sw/x86_64/week0/el8_amd64_gcc12/cms/cmssw/CMSSW_15_0_DEVEL_X_2025-01-28-2300/src/FWCore/Framework/interface/es_impl/ReturnArgumentTypes.h:56:13: error: invalid use of incomplete type 'struct edm::eventsetup::impl::ReturnArgumentTypesImpl<auto (alpaka_rocm_async::ESProducer::setWhatProduced<alpaka_rocm_async::FrameSoAESProducerpixelTopology::Phase2, std::unique_ptr<PortableHostCollection<FrameLayout<> > >, FrameSoARecord>(alpaka_rocm_async::FrameSoAESProducerpixelTopology::Phase2, std::unique_ptr<PortableHostCollection<FrameLayout<> > > (alpaka_rocm_async::FrameSoAESProducerpixelTopology::Phase2::)(const FrameSoARecord&), const edm::es::Label&)::<lambda(const alpaka_rocm_async::device::Record&)>::)(const alpaka_rocm_async::device::Record&) const>'
56 | using return_type = typename ReturnArgumentTypesImpl<decltype(&F::operator())>::return_type;
| ^~~~~~~~~~~
/cvmfs/cms-ib.cern.ch/sw/x86_64/week0/el8_amd64_gcc12/cms/cmssw/CMSSW_15_0_DEVEL_X_2025-01-28-2300/src/FWCore/Framework/interface/es_impl/ReturnArgumentTypes.h:9:12: note: declaration of 'struct edm::eventsetup::impl::ReturnArgumentTypesImpl<auto (alpaka_rocm_async::ESProducer::setWhatProduced<alpaka_rocm_async::FrameSoAESProducerpixelTopology::Phase2, std::unique_ptr<PortableHostCollection<FrameLayout<> > >, FrameSoARecord>(alpaka_rocm_async::FrameSoAESProducerpixelTopology::Phase2
, std::unique_ptr<PortableHostCollection<FrameLayout<> > > (alpaka_rocm_async::FrameSoAESProducerpixelTopology::Phase2::)(const FrameSoARecord&), const edm::es::Label&)::<lambda(const alpaka_rocm_async::device::Record&)>::)(const alpaka_rocm_async::device::Record&) const>'
9 | struct ReturnArgumentTypesImpl;
| ^~~~~~~~~~~~~~~~~~~~~~~

namespace ALPAKA_ACCELERATOR_NAMESPACE {

template <typename TrackerTraits>
class SiStripRecHitSoA : public stream::SynchronizingEDProducer<> {
Copy link
Contributor

Choose a reason for hiding this comment

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

please rename this to SiStripRecHitSoAProducer

static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);

private:
void acquire(device::Event const& iEvent, device::EventSetup const& iSetup) override {};
Copy link
Contributor

Choose a reason for hiding this comment

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

why do you use a SynchronizingEDProducer if you have an empty acquire method ?

Comment on lines +134 to +141
//std::cout << "nStripHits = " << nStripHits << std::endl;
//std::cout << "nPixelHits = " << nPixelHits << std::endl;

// HostView<const PixelHits, PixelHitsHost> pixelHitsHostView(pixelHits, iEvent.queue());
// PixelHitsHost& pixelHitsHost = pixelHitsHostView.get();
// PixelHitsHost pixelHitsHost(nPixelHits, iEvent.queue());

// alpaka::memcpy(iEvent.queue(), pixelHitsHost.buffer(), pixelHits.buffer());
Copy link
Contributor

Choose a reason for hiding this comment

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

please clean up

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.

10 participants