Conversation
|
cms-bot internal usage |
|
+code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-51200/49727
|
|
A new Pull Request was created by @ckoraka for master. It involves the following packages:
@Moanwar, @cmsbuild, @jfernan2, @mandrenguyen, @srimanob can you please review it and eventually sign? Thanks. cms-bot commands are listed here |
|
enable gpu |
|
@cmsbuild, please test |
|
assign heterogeneous |
| namespace ALPAKA_ACCELERATOR_NAMESPACE { | ||
| namespace reco { |
There was a problem hiding this comment.
could be simplified to
| namespace ALPAKA_ACCELERATOR_NAMESPACE { | |
| namespace reco { | |
| namespace ALPAKA_ACCELERATOR_NAMESPACE::reco { |
| } | ||
|
|
||
| template <typename TAcc> | ||
| ALPAKA_FN_ACC T partial_norm(const TAcc& acc) const { |
There was a problem hiding this comment.
partial_norm() and partial_norm2() are not very descriptive.
How about r() and r2() ?
There was a problem hiding this comment.
renamed to follow ROOT conventions, along with several other functions.
|
|
||
| Phys3DVector(const Phys3DVector<T>&) = default; | ||
|
|
||
| constexpr Phys3DVector(const T& value) : m_data{} { |
There was a problem hiding this comment.
probably better to pass it by value:
| constexpr Phys3DVector(const T& value) : m_data{} { | |
| constexpr Phys3DVector(const T value) : m_data{} { |
|
|
||
| namespace cms::alpakatools::math { | ||
|
|
||
| template <class T> |
There was a problem hiding this comment.
Can you add a short documentation, explaining that Phys3DVector represents a vector in 3D space in cartesian (x, y, z) or cylindrical (r, z) coordinates ?
There was a problem hiding this comment.
Also, how much more complicated would it be to use an Eigen::Matrix<T, 3, 1> here ?
It might give better performance due to how Eigen combines multiple operations.
There was a problem hiding this comment.
Eigen was attempted earlier, but that was hit by #48928
There was a problem hiding this comment.
A related bug has been reported to NVIDIA and fixed in CUDA 13.1, so this may have been resolved by now.
There was a problem hiding this comment.
Also, did anything change in the implementation ?
Now this looks like only Cartesian coordinates are used.
There was a problem hiding this comment.
@fwyzard as far as I can tell, there were no essential changes to the implementation itself (some methods were simply migrated to free functions). But it still provides conversion methods that are used elsewhere, e.g. in interface/EleRelPointPairPortable.h.
Note that the header itself is now isolated in RecoEgamma/EgammaElectronAlgos/interface, so it is solely associated with Egamma algorithms. This makes the implementation more consistent with the overall code organization.
There was a problem hiding this comment.
Regarding CUDA 13.1.0, we have not tried that yet. However, even if the issue no longer appears in the current demo code, there is no guarantee that it will not reappear elsewhere. Without a clear understanding of the root cause, I would not be confident that the problem is fully resolved.
I think migrating to Eigen would require some amount of efforts from the developers, which does not seem justified in this case: the Phys3DVector structure is now tightly coupled to the Egamma implementation and is not exposed as a central/common component.
| }; | ||
|
|
||
| template <typename T> | ||
| inline constexpr Phys3DVector<T> ax(const T a, const Phys3DVector<T>& x) { |
| } | ||
|
|
||
| template <typename T> | ||
| inline constexpr Phys3DVector<T> xmy(const Phys3DVector<T>& x, const Phys3DVector<T>& y) { |
|
+code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-51200/49731
|
…conventions and other minor comments
…cription in README and remove customization function
|
Pull request #51200 was updated. @AdrianoDee, @DickyChant, @Electricks94, @Martin-Grunewald, @Moanwar, @Parsifal-2045, @antoniovagnerini, @cmsbuild, @davidlange6, @fabiocos, @ftenchini, @fwyzard, @ghyls, @jfernan2, @kfjack, @makortel, @mandrenguyen, @miquork, @mmusich, @pietroGru, @sbaldu, @srimanob, @sroychow can you please check and sign again. |
…ng propagators/FreeTrajectoryState to use a template type instead of defaulting to double, Renaming of ftsFromVertexToPointPortable to FreeTrajectoryState, Not performing an explicit copy when device is same as host. Updates also to the Phys3DVector to use alpaka functions.
|
Pull request #51200 was updated. @AdrianoDee, @DickyChant, @Electricks94, @Martin-Grunewald, @Moanwar, @Parsifal-2045, @antoniovagnerini, @cmsbuild, @davidlange6, @fabiocos, @ftenchini, @fwyzard, @ghyls, @jfernan2, @kfjack, @makortel, @mandrenguyen, @miquork, @mmusich, @pietroGru, @sbaldu, @srimanob, @sroychow can you please check and sign again. |
Implemented in 7b1adbb |
|
@cmsbuild, please test |
|
-1 Failed Tests: Build ClangBuild The following merge commits were also included on top of IB + this PR after doing git cms-merge-topic:
You can see more details here: Failed BuildI found compilation error when building: >> Compiling src/FWCore/Utilities/src/ConvertException.cc
/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc14/external/gcc/14.3.1-724da22786638848892aa9ded8fcd995/bin/c++ -c -DCMS_MICRO_ARCH='x86-64-v3' -DGNU_GCC -D_GNU_SOURCE -DTBB_USE_GLIBCXX_VERSION=140301 -DTBB_SUPPRESS_DEPRECATED_MESSAGES -DTBB_PREVIEW_RESUMABLE_TASKS=1 -DTBB_PREVIEW_TASK_GROUP_EXTENSIONS=1 -DBOOST_SPIRIT_THREADSAFE -DPHOENIX_THREADSAFE -DBOOST_MATH_DISABLE_STD_FPCLASSIFY -DBOOST_UUID_RANDOM_PROVIDER_FORCE_POSIX -DBOOST_MPL_IGNORE_PARENTHESES_WARNING -DCMSSW_GIT_HASH='CMSSW_20_1_X_2026-09-07-2300' -DPROJECT_NAME='CMSSW' -DPROJECT_VERSION='CMSSW_20_1_X_2026-09-07-2300' -Isrc -Ipoison -I/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02958/el9_amd64_gcc14/cms/cmssw-patch/CMSSW_20_1_X_2026-09-07-2300/src -isystem/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc14/external/boost/1.92.0-cf2c8871c7faab645542060b9ce21934/include -I/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc14/external/libuuid/2.40-30397f5d4641a42f70e122f23e043a5a/include -isystem/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc14/external/tbb/v2022.3.0-2eeb77487c539dd6a4a6662dba22a4d3/include -I/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc14/external/md5/1.0.0-4c04fac6c42256d53fbdabb58aa703f3/include -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=unused-value -Werror=unused-result -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 -Wno-error=unused-variable -DBOOST_DISABLE_ASSERTS -flto=auto -fipa-icf -flto-odr-type-merging -fno-fat-lto-objects -Wodr -fPIC -MMD -MF tmp/el9_amd64_gcc14/src/FWCore/Utilities/src/FWCoreUtilities/ConvertException.cc.d src/FWCore/Utilities/src/ConvertException.cc -o tmp/el9_amd64_gcc14/src/FWCore/Utilities/src/FWCoreUtilities/ConvertException.cc.o
>> Compiling src/FWCore/Utilities/src/Digest.cc
/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc14/external/gcc/14.3.1-724da22786638848892aa9ded8fcd995/bin/c++ -c -DCMS_MICRO_ARCH='x86-64-v3' -DGNU_GCC -D_GNU_SOURCE -DTBB_USE_GLIBCXX_VERSION=140301 -DTBB_SUPPRESS_DEPRECATED_MESSAGES -DTBB_PREVIEW_RESUMABLE_TASKS=1 -DTBB_PREVIEW_TASK_GROUP_EXTENSIONS=1 -DBOOST_SPIRIT_THREADSAFE -DPHOENIX_THREADSAFE -DBOOST_MATH_DISABLE_STD_FPCLASSIFY -DBOOST_UUID_RANDOM_PROVIDER_FORCE_POSIX -DBOOST_MPL_IGNORE_PARENTHESES_WARNING -DCMSSW_GIT_HASH='CMSSW_20_1_X_2026-09-07-2300' -DPROJECT_NAME='CMSSW' -DPROJECT_VERSION='CMSSW_20_1_X_2026-09-07-2300' -Isrc -Ipoison -I/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02958/el9_amd64_gcc14/cms/cmssw-patch/CMSSW_20_1_X_2026-09-07-2300/src -isystem/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc14/external/boost/1.92.0-cf2c8871c7faab645542060b9ce21934/include -I/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc14/external/libuuid/2.40-30397f5d4641a42f70e122f23e043a5a/include -isystem/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc14/external/tbb/v2022.3.0-2eeb77487c539dd6a4a6662dba22a4d3/include -I/data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/el9_amd64_gcc14/external/md5/1.0.0-4c04fac6c42256d53fbdabb58aa703f3/include -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=unused-value -Werror=unused-result -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 -Wno-error=unused-variable -DBOOST_DISABLE_ASSERTS -flto=auto -fipa-icf -flto-odr-type-merging -fno-fat-lto-objects -Wodr -fPIC -MMD -MF tmp/el9_amd64_gcc14/src/FWCore/Utilities/src/FWCoreUtilities/Digest.cc.d src/FWCore/Utilities/src/Digest.cc -o tmp/el9_amd64_gcc14/src/FWCore/Utilities/src/FWCoreUtilities/Digest.cc.o
In file included from src/FWCore/Utilities/src/Digest.cc:6:
src/FWCore/Utilities/interface/Digest.h:4:10: fatal error: edm_md5.h: No such file or directory
4 | #include
| ^~~~~~~~~~~
compilation terminated.
gmake: *** [tmp/el9_amd64_gcc14/src/FWCore/Utilities/src/FWCoreUtilities/Digest.cc.o] Error 1
>> Compiling src/FWCore/Utilities/src/EDMException.cc
Failed Clang BuildI found compilation error while trying to compile with clang. Command used: >> Entering Package SimDataFormats/ValidationFormats >> Entering Package SimDataFormats/Vertex >> Entering Package Utilities/General >> Entering Package Utilities/PPS >> Compile sequence completed for CMSSW CMSSW_20_1_X_2026-09-07-2300 gmake: *** [There are compilation/build errors. Please see the detail log above.] Error 1 Command exited with non-zero status 1 Command being timed: "scram build -k -j 32 COMPILER=llvm compile BUILD_LOG=yes" User time (seconds): 94256.98 System time (seconds): 6770.43 Percent of CPU this job got: 968% |
|
please test with cms-sw/cmsdist#10825 I think this is necessary until tonight's full build. |
|
+1 Size: This PR adds an extra 16KB to repository Comparison SummarySummary:
AMD_MI300X Comparison SummarySummary:
AMD_W7900 Comparison SummarySummary:
NVIDIA_H100 Comparison SummarySummary:
NVIDIA_L40S Comparison SummarySummary:
NVIDIA_T4 Comparison SummarySummary:
Max Memory Comparisons exceeding threshold@cms-sw/core-l2 , I found 56 workflow step(s) with memory usage exceeding the error threshold: Expand to see workflows ...
Max Memory Comparisons exceeding threshold NVIDIA_H100@cms-sw/core-l2 , I found 2 workflow step(s) with memory usage exceeding the error threshold: Expand to see workflows ...
Max Memory Comparisons exceeding threshold NVIDIA_L40S@cms-sw/core-l2 , I found 2 workflow step(s) with memory usage exceeding the error threshold: Expand to see workflows ...
Max Memory Comparisons exceeding threshold NVIDIA_T4@cms-sw/core-l2 , I found 2 workflow step(s) with memory usage exceeding the error threshold: Expand to see workflows ...
|
… add deduction guide in EleRelPointPairPortable
|
+code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-51200/50903
|
|
Pull request #51200 was updated. @AdrianoDee, @DickyChant, @Electricks94, @Martin-Grunewald, @Moanwar, @Parsifal-2045, @antoniovagnerini, @cmsbuild, @davidlange6, @fabiocos, @ftenchini, @fwyzard, @ghyls, @jfernan2, @kfjack, @makortel, @mandrenguyen, @miquork, @mmusich, @pietroGru, @sbaldu, @srimanob, @sroychow can you please check and sign again. |
|
@cmsbuild, please test |
|
@smuzaffar Tests seem to be stuck? (they should be restarted anyhow to avoid the unrelated unit test failures) |
|
@cmsbuild, please test |
| } | ||
|
|
||
| // Print per-event doublet rejection summary | ||
| edm::LogPrint("ElectronSeedConverter") << "[ElectronSeedConverter] matched=" << nMatched << " doublets=" << nDoublets |
There was a problem hiding this comment.
Should this be a LogDebug to avoid flooding the HLT output stream?
PR description:
This PR introduces a heterogeneous implementation of the electron pixel seed-matching algorithm, intended to replace the legacy ElectronNHitSeedProducer. It introduces the following developments:
Two new SoA data formats in DataFormats/EgammaReco:
Portable utility functions for helix track propagation, ported to be usable on device: helixBarrelPlaneCrossingByCircle, helixForwardPlaneCrossing, helixArbitraryPlaneCrossing(and 2nd order), ftsFromVertexToPointPortable, EleRelPointPairPortable, and Plane.
A dedicated Alpaka kernel that performs the seed-to-supercluster matching on the device.
Two new producers implementing the new workflow:
PR validation:
Timing and performance studies have been conducted to validate these developments. The results can be found here:
Note One can run these developments using :
runTheMatrix.py -w upgrade -l 37634.7511