-
Notifications
You must be signed in to change notification settings - Fork 5
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
make gpu-cpu cluster matching deterministic #294
make gpu-cpu cluster matching deterministic #294
Conversation
@@ -196,7 +197,10 @@ class SiPixelCluster { | |||
float getSplitClusterErrorX() const { return err_x; } | |||
float getSplitClusterErrorY() const { return err_y; } | |||
|
|||
|
|||
// the original id (they get sorted) | |||
auto oriId() const { return theClusId;} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can we call these originalId()
and setOriginalId()
?
@@ -207,6 +211,8 @@ class SiPixelCluster { | |||
uint16_t theMinPixelCol=MAXPOS; // Minimum pixel index in the y direction (left edge). | |||
uint8_t thePixelRowSpan=0; // Span pixel index in the x direction (low edge). | |||
uint8_t thePixelColSpan=0; // Span pixel index in the y direction (left edge). | |||
|
|||
uint16_t theClusId=std::numeric_limits<uint16_t>::max(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can we call it theClusterId
?
Thanks, I will rebuild at flatiron and run the usual checks... then it sounds like a good reason to cut the next release. |
ok, I will edit here, my area is still compiling and this changes will trigger full recompilation again... |
modified, recompiled, tested, committed, pushed |
RecoLocalTracker/SiPixelClusterizer/plugins/SiPixelRawToClusterGPUKernel.cu
Show resolved
Hide resolved
No impact on the throughput (as expected), running on a P100:
|
Validation summaryReference release CMSSW_10_5_0_pre2 at 4fd4ff5
|
No changes in physics performance observed (as expected). |
Makes the GPU-CPU cluster matching deterministic by intrusively marking CPU clusters with the cluster index. Reuse existing padding space to store the extra transient field, so that the size of SiPixelCluster does not increase. There is still a warning in case of mismatch of the content of the cluster (based on charge comparison), that can eventually be downgraded to a debug message. Properly rewrite the loop in the RawToDigi_kernel . Remove obsolete code (comments and configuration parameters) in SiPixelRawToClusterCUDA and SiPixelRawToClusterGPUKernel.
Makes the GPU-CPU cluster matching deterministic by intrusively marking CPU clusters with the cluster index. Reuse existing padding space to store the extra transient field, so that the size of SiPixelCluster does not increase. There is still a warning in case of mismatch of the content of the cluster (based on charge comparison), that can eventually be downgraded to a debug message. Properly rewrite the loop in the RawToDigi_kernel . Remove obsolete code (comments and configuration parameters) in SiPixelRawToClusterCUDA and SiPixelRawToClusterGPUKernel.
Makes the GPU-CPU cluster matching deterministic by intrusively marking CPU clusters with the cluster index. Reuse existing padding space to store the extra transient field, so that the size of SiPixelCluster does not increase. There is still a warning in case of mismatch of the content of the cluster (based on charge comparison), that can eventually be downgraded to a debug message. Properly rewrite the loop in the RawToDigi_kernel . Remove obsolete code (comments and configuration parameters) in SiPixelRawToClusterCUDA and SiPixelRawToClusterGPUKernel.
Makes the GPU-CPU cluster matching deterministic by intrusively marking CPU clusters with the cluster index. Reuse existing padding space to store the extra transient field, so that the size of SiPixelCluster does not increase. There is still a warning in case of mismatch of the content of the cluster (based on charge comparison), that can eventually be downgraded to a debug message. Properly rewrite the loop in the RawToDigi_kernel . Remove obsolete code (comments and configuration parameters) in SiPixelRawToClusterCUDA and SiPixelRawToClusterGPUKernel.
Makes the GPU-CPU cluster matching deterministic by intrusively marking CPU clusters with the cluster index. Reuse existing padding space to store the extra transient field, so that the size of SiPixelCluster does not increase. There is still a warning in case of mismatch of the content of the cluster (based on charge comparison), that can eventually be downgraded to a debug message. Properly rewrite the loop in the RawToDigi_kernel . Remove obsolete code (comments and configuration parameters) in SiPixelRawToClusterCUDA and SiPixelRawToClusterGPUKernel.
Makes the GPU-CPU cluster matching deterministic by intrusively marking CPU clusters with the cluster index. Reuse existing padding space to store the extra transient field, so that the size of SiPixelCluster does not increase. There is still a warning in case of mismatch of the content of the cluster (based on charge comparison), that can eventually be downgraded to a debug message. Properly rewrite the loop in the RawToDigi_kernel . Remove obsolete code (comments and configuration parameters) in SiPixelRawToClusterCUDA and SiPixelRawToClusterGPUKernel.
Makes the GPU-CPU cluster matching deterministic by intrusively marking CPU clusters with the cluster index. Reuse existing padding space to store the extra transient field, so that the size of SiPixelCluster does not increase. There is still a warning in case of mismatch of the content of the cluster (based on charge comparison), that can eventually be downgraded to a debug message. Properly rewrite the loop in the RawToDigi_kernel . Remove obsolete code (comments and configuration parameters) in SiPixelRawToClusterCUDA and SiPixelRawToClusterGPUKernel.
Makes the GPU-CPU cluster matching deterministic by intrusively marking CPU clusters with the cluster index. Reuse existing padding space to store the extra transient field, so that the size of SiPixelCluster does not increase. There is still a warning in case of mismatch of the content of the cluster (based on charge comparison), that can eventually be downgraded to a debug message. Properly rewrite the loop in the RawToDigi_kernel . Remove obsolete code (comments and configuration parameters) in SiPixelRawToClusterCUDA and SiPixelRawToClusterGPUKernel.
Makes the GPU-CPU cluster matching deterministic by intrusively marking CPU clusters with the cluster index. Reuse existing padding space to store the extra transient field, so that the size of SiPixelCluster does not increase. There is still a warning in case of mismatch of the content of the cluster (based on charge comparison), that can eventually be downgraded to a debug message. Properly rewrite the loop in the RawToDigi_kernel . Remove obsolete code (comments and configuration parameters) in SiPixelRawToClusterCUDA and SiPixelRawToClusterGPUKernel.
Makes the GPU-CPU cluster matching deterministic by intrusively marking CPU clusters with the cluster index. Reuse existing padding space to store the extra transient field, so that the size of SiPixelCluster does not increase. There is still a warning in case of mismatch of the content of the cluster (based on charge comparison), that can eventually be downgraded to a debug message. Properly rewrite the loop in the RawToDigi_kernel . Remove obsolete code (comments and configuration parameters) in SiPixelRawToClusterCUDA and SiPixelRawToClusterGPUKernel.
This PRs makes gpu-cpu cluster matching deterministic by intrusively marking CPU clusters with the cpu cluster index.
The size of SiPixelCluster does not increase neither in memory nor on disk (there was a 16 byte padding space that came handy...)
Obsolete code (comments and config param) in Raw2Cluster removed.
Took the opportunity to properly write the loop in the kernel
Recompiles a bit more than the whole universe: not something you want to carry on in your development area too long
minor regression expected (not in the GPU results, at most in TP matching).
There is still a warning in case of mismatch of the content of the cluster (based on charge comparison).
can be downgraded to debug