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

GPU TPC: Add option to apply timebin cut to CTF cluster decoding CPU-only version #13731

Merged
merged 6 commits into from
Nov 27, 2024

Conversation

davidrohr
Copy link
Collaborator

Don't merge yet, just to run the CI

Copy link
Contributor

REQUEST FOR PRODUCTION RELEASES:
To request your PR to be included in production software, please add the corresponding labels called "async-" to your PR. Add the labels directly (if you have the permissions) or add a comment of the form (note that labels are separated by a ",")

+async-label <label1>, <label2>, !<label3> ...

This will add <label1> and <label2> and removes <label3>.

The following labels are available
async-2023-pbpb-apass4
async-2023-pp-apass4
async-2024-pp-apass1
async-2022-pp-apass7
async-2024-pp-cpass0
async-2024-PbPb-cpass0
async-2024-PbPb-apass1
async-2024-ppRef-apass1

@alibuild
Copy link
Collaborator

Error while checking build/O2/fullCI for cd766a9 at 2024-11-25 09:28:

## sw/BUILD/O2-latest/log
c++: error: unrecognized command-line option '--rtlib=compiler-rt'
c++: error: unrecognized command-line option '--rtlib=compiler-rt'
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(185): error: class "o2::gpu::GPUSettingsRecTRD" has already been defined (previous definition at line 163)
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(201): error: identifier "GPUSettingsRecDynamic" is undefined
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(185): error: class "o2::gpu::GPUSettingsRecTRD" has already been defined (previous definition at line 163)
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(201): error: identifier "GPUSettingsRecDynamic" is undefined
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(185): error: class "o2::gpu::GPUSettingsRecTRD" has already been defined (previous definition at line 163)
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(201): error: identifier "GPUSettingsRecDynamic" is undefined
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(185): error: class "o2::gpu::GPUSettingsRecTRD" has already been defined (previous definition at line 163)
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(201): error: identifier "GPUSettingsRecDynamic" is undefined
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(185): error: class "o2::gpu::GPUSettingsRecTRD" has already been defined (previous definition at line 163)
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(201): error: identifier "GPUSettingsRecDynamic" is undefined
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(185): error: class "o2::gpu::GPUSettingsRecTRD" has already been defined (previous definition at line 163)
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(201): error: identifier "GPUSettingsRecDynamic" is undefined
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(185): error: class "o2::gpu::GPUSettingsRecTRD" has already been defined (previous definition at line 163)
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(201): error: identifier "GPUSettingsRecDynamic" is undefined
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(185): error: class "o2::gpu::GPUSettingsRecTRD" has already been defined (previous definition at line 163)
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(201): error: identifier "GPUSettingsRecDynamic" is undefined
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(185): error: class "o2::gpu::GPUSettingsRecTRD" has already been defined (previous definition at line 163)
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(201): error: identifier "GPUSettingsRecDynamic" is undefined
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(185): error: class "o2::gpu::GPUSettingsRecTRD" has already been defined (previous definition at line 163)
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(201): error: identifier "GPUSettingsRecDynamic" is undefined
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(185): error: class "o2::gpu::GPUSettingsRecTRD" has already been defined (previous definition at line 163)
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(201): error: identifier "GPUSettingsRecDynamic" is undefined
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(185): error: class "o2::gpu::GPUSettingsRecTRD" has already been defined (previous definition at line 163)
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(201): error: identifier "GPUSettingsRecDynamic" is undefined
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(185): error: class "o2::gpu::GPUSettingsRecTRD" has already been defined (previous definition at line 163)
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(201): error: identifier "GPUSettingsRecDynamic" is undefined
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(185): error: class "o2::gpu::GPUSettingsRecTRD" has already been defined (previous definition at line 163)
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(201): error: identifier "GPUSettingsRecDynamic" is undefined
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(185): error: class "o2::gpu::GPUSettingsRecTRD" has already been defined (previous definition at line 163)
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(201): error: identifier "GPUSettingsRecDynamic" is undefined
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(185): error: class "o2::gpu::GPUSettingsRecTRD" has already been defined (previous definition at line 163)
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(201): error: identifier "GPUSettingsRecDynamic" is undefined
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(185): error: class "o2::gpu::GPUSettingsRecTRD" has already been defined (previous definition at line 163)
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(201): error: identifier "GPUSettingsRecDynamic" is undefined
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(185): error: class "o2::gpu::GPUSettingsRecTRD" has already been defined (previous definition at line 163)
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(201): error: identifier "GPUSettingsRecDynamic" is undefined
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(185): error: class "o2::gpu::GPUSettingsRecTRD" has already been defined (previous definition at line 163)
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(201): error: identifier "GPUSettingsRecDynamic" is undefined
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(185): error: class "o2::gpu::GPUSettingsRecTRD" has already been defined (previous definition at line 163)
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(201): error: identifier "GPUSettingsRecDynamic" is undefined
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(185): error: class "o2::gpu::GPUSettingsRecTRD" has already been defined (previous definition at line 163)
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(201): error: identifier "GPUSettingsRecDynamic" is undefined
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(185): error: class "o2::gpu::GPUSettingsRecTRD" has already been defined (previous definition at line 163)
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(201): error: identifier "GPUSettingsRecDynamic" is undefined
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(185): error: class "o2::gpu::GPUSettingsRecTRD" has already been defined (previous definition at line 163)
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Definitions/GPUSettingsList.h(201): error: identifier "GPUSettingsRecDynamic" is undefined
[0 more errors; see full log]

Full log here.

@alibuild
Copy link
Collaborator

Error while checking build/O2/fullCI for 3be301d at 2024-11-25 17:18:

## sw/BUILD/O2-latest/log
c++: error: unrecognized command-line option '--rtlib=compiler-rt'
c++: error: unrecognized command-line option '--rtlib=compiler-rt'
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Base/GPUParam.cxx:128:129: error: 'GPUSettingsRecDyn' does not name a type
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Base/GPUParam.cxx:128:6: error: no declaration matches 'void o2::gpu::GPUParam::UpdateSettings(const o2::gpu::GPUSettingsGRP*, const o2::gpu::GPUSettingsProcessing*, const o2::gpu::GPURecoStepConfiguration*, const int*)'
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Global/GPUChainTracking.cxx:707:35: error: qualified-id in declaration before '(' token
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Global/GPUChainTracking.cxx:832:43: error: qualified-id in declaration before '(' token
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Global/GPUChainTracking.cxx:913:54: error: qualified-id in declaration before '(' token
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Global/GPUChainTracking.cxx:926:42: error: qualified-id in declaration before '(' token
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Global/GPUChainTracking.cxx:928:39: error: qualified-id in declaration before '(' token
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Global/GPUChainTracking.cxx:953:42: error: qualified-id in declaration before '(' token
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Global/GPUChainTracking.cxx:1003:39: error: qualified-id in declaration before '(' token
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Global/GPUChainTracking.cxx:1013:45: error: qualified-id in declaration before '(' token
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Global/GPUChainTracking.cxx:1035:68: error: qualified-id in declaration before '(' token
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Global/GPUChainTracking.cxx:1040:39: error: qualified-id in declaration before '(' token
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Global/GPUChainTracking.cxx:1048:2: error: expected '}' at end of input
ninja: build stopped: subcommand failed.

Full log here.

@alibuild
Copy link
Collaborator

alibuild commented Nov 25, 2024

Error while checking build/O2/fullCI for b79138a at 2024-11-26 05:21:

## sw/BUILD/O2-latest/log
c++: error: unrecognized command-line option '--rtlib=compiler-rt'
c++: error: unrecognized command-line option '--rtlib=compiler-rt'
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Global/GPUChainTrackingClusterizer.cxx:575:68: error: invalid use of incomplete type 'struct o2::gpu::GPUNewCalibValues'
/sw/SOURCES/O2/13731-slc8_x86-64/0/GPU/GPUTracking/Global/GPUChainTrackingClusterizer.cxx:575:104: error: invalid use of incomplete type 'struct o2::gpu::GPUNewCalibValues'
ninja: build stopped: subcommand failed.

Full log here.

@davidrohr
Copy link
Collaborator Author

I tested it and it works.
In order to use it, needs configKeyValue GPU_proc.tpcUseOldCPUDecoding=1;GPU_proc.tpcApplyCFCutsAtDecoding=1;
However, I think there is a general bug in the cluster filtering, need to double check. I would not use it yet. Might need another PR with a fix for the filter.

@davidrohr davidrohr merged commit f76f1a7 into AliceO2Group:dev Nov 27, 2024
10 of 12 checks passed
@shahor02
Copy link
Collaborator

So, it will not work if processing is done on the GPU?

@davidrohr
Copy link
Collaborator Author

Not yet, and also on CPU it will only work with above flags.
We have to wait for @cima22 's PR, then it will work in GPU code and in the default CPU code as well.

@davidrohr
Copy link
Collaborator Author

I have to correct myself, the GPU_proc.tpcApplyCFCutsAtDecoding=1; works correctly. It removes clusters with qMax = 3 because we apply a cut of <= 3. Apparently, this cut in the clusterizer is buggy, thus in the data we have stored, there are clusters with qMax 3, which should have been cut away. I have fixed that in #13743, which will obviously only affect newly recorded data.

So the timeBinCut can be safely used with GPU_proc.tpcUseOldCPUDecoding=1;GPU_proc.tpcApplyCFCutsAtDecoding=1; (it will cut away those qMax = 3 clusters as well) on CPU. For GPU, as said before, we have to wait for @cima22 's PR.

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

Successfully merging this pull request may close these issues.

3 participants