Skip to content
Merged
Changes from 1 commit
Commits
Show all changes
104 commits
Select commit Hold shift + click to select a range
d4dc46e
Copying kernels to implement NN clusterizer
ChSonnabend May 16, 2024
c191885
Merge branch 'dev' into gpu_clusterizer
ChSonnabend May 24, 2024
05831ef
First version of clusterizer in GPU code
ChSonnabend May 27, 2024
8515290
Merge branch 'gpu_clusterizer' of github.com:ChSonnabend/AliceO2 into…
ChSonnabend May 27, 2024
3f6c934
Adding a compiling and running version with single-threaded ONNX mode…
ChSonnabend May 29, 2024
8ba6805
Clusters now working by a hack
ChSonnabend May 29, 2024
6ec3c46
Working implementation of settings via GPUSettings.h and --configKeyV…
ChSonnabend Jun 6, 2024
626a46f
Merge branch 'AliceO2Group:dev' into gpu_clusterizer
ChSonnabend Jun 24, 2024
ab4653a
Modifying the onnx_interface to include the right headers
ChSonnabend Jun 24, 2024
04084c8
Adjusting initialization for new ONNXRuntime version
ChSonnabend Jun 24, 2024
01dc4a1
Adjusting global settings and CF code for several settings
ChSonnabend Jun 26, 2024
accd7ab
Adding return statement if cluster is rejected
ChSonnabend Jul 3, 2024
019b388
Merge branch 'AliceO2Group:dev' into gpu_clusterizer
ChSonnabend Jul 3, 2024
3473a06
Adding some statements back
ChSonnabend Jul 4, 2024
dfffdf5
Merge branch 'dev' into gpu_clusterizer
ChSonnabend Oct 16, 2024
df21c96
Update to latest status of gpu clusterization
ChSonnabend Oct 17, 2024
06737fd
Fixing uchar -> uint8_t
ChSonnabend Oct 18, 2024
b148449
Adding utils header
ChSonnabend Oct 18, 2024
534da50
Updating kernels.cmake to uint8_t
ChSonnabend Oct 21, 2024
bb2cb6e
Please consider the following formatting changes
alibuild Oct 21, 2024
027e225
Merge pull request #6 from alibuild/alibot-cleanup-13610
ChSonnabend Nov 4, 2024
25093b3
Adding an ONNX CPU library in the O2 framework
ChSonnabend Nov 18, 2024
74cf0e7
Merge branch 'AliceO2Group:dev' into onnxruntime-cpu
ChSonnabend Nov 18, 2024
9232328
Please consider the following formatting changes
alibuild Nov 18, 2024
9a6a9e8
Merge pull request #7 from alibuild/alibot-cleanup-13709
ChSonnabend Nov 18, 2024
7251c5c
Fixing macOS build issues with calling O*.data()
ChSonnabend Nov 19, 2024
d0f4dd8
Fixing compiler issues and char -> uint8_t
ChSonnabend Nov 19, 2024
7859ab2
Fixing curly braces
ChSonnabend Nov 19, 2024
c6cb3e6
Fixing std::make_shared
ChSonnabend Nov 19, 2024
55621f0
Merge branch 'onnxruntime-cpu' into gpu_clusterizer
ChSonnabend Nov 20, 2024
a00a54b
Merge branch 'dev' into gpu_clusterizer
ChSonnabend Nov 20, 2024
40bc437
Changing order for <CommonUtils/StringUtils.h>
ChSonnabend Nov 20, 2024
f0a8cc2
Merge branch 'dev' into gpu_clusterizer
ChSonnabend Nov 22, 2024
d3aede4
Merge branch 'dev' into gpu_clusterizer
ChSonnabend Dec 17, 2024
52b033f
Bug-fixing file name
ChSonnabend Dec 17, 2024
314a0ce
Merge branch 'dev' into gpu_clusterizer
ChSonnabend Jan 17, 2025
684eb56
Making NN clusterizer more efficient
ChSonnabend Feb 6, 2025
9bd1ce4
Merge branch 'dev' into gpu_clusterizer
ChSonnabend Feb 7, 2025
639b895
Changing constexpr
ChSonnabend Feb 7, 2025
3c4c587
Fixing build issues
ChSonnabend Feb 7, 2025
95bb2ff
Major changes to make clusterizer parallelizable. Problem remains: di…
ChSonnabend Feb 17, 2025
857f27d
Adjusting for default CF regression
ChSonnabend Feb 19, 2025
89c0105
Bug-fix for application of CF regression and logging message
ChSonnabend Feb 20, 2025
45d8071
Adding is_boundary check earlier to avoid out-of-bounds access
ChSonnabend Feb 22, 2025
984857e
Bug-fixes for boundary reading
ChSonnabend Feb 24, 2025
57862a6
Updating to use explicit calls to kernels instead of if-statements
ChSonnabend Feb 25, 2025
c55cfc2
Bug-fix for class label application
ChSonnabend Feb 26, 2025
0125c2a
Explicit casting solves regression issues. To be done: Correct publis…
ChSonnabend Feb 26, 2025
408787d
Bug-fixes
ChSonnabend Feb 26, 2025
e830697
Adding some documentation
ChSonnabend Mar 5, 2025
1ca9fa0
Please consider the following formatting changes
alibuild Mar 5, 2025
815cc30
Modifying for Davids comments
ChSonnabend Mar 5, 2025
0bc4097
Merge pull request #10 from alibuild/alibot-cleanup-13981
ChSonnabend Mar 6, 2025
a478634
Modifications from comments on PR
ChSonnabend Mar 7, 2025
99ca93b
Merge branch 'gpu_clusterizer_2' into gpu_clusterizer
ChSonnabend Mar 7, 2025
db0c836
Please consider the following formatting changes
alibuild Mar 7, 2025
7ebdcb9
Merge pull request #12 from alibuild/alibot-cleanup-13981
ChSonnabend Mar 7, 2025
ff62b9d
Merge branch 'dev' into gpu_clusterizer
ChSonnabend Mar 7, 2025
6c6cb95
iSlice -> iSector
ChSonnabend Mar 7, 2025
490170e
mISlice -> mISector
ChSonnabend Mar 7, 2025
bca1014
Minor bug-fixes
ChSonnabend Mar 7, 2025
b687967
Adjusting for comments
ChSonnabend Mar 8, 2025
70adf1e
Bug-fix for fullCI build
ChSonnabend Mar 8, 2025
06e26a8
Adding GPUd() for on-device functions
ChSonnabend Mar 8, 2025
bedb592
Fixing compile issues, only thing mssing: conversion of float to float16
ChSonnabend Mar 10, 2025
e888298
Let's see if this does the trick
ChSonnabend Mar 10, 2025
21f5694
Making functions (constructors) GPUd() (GPUdDefault())
ChSonnabend Mar 10, 2025
66da84e
GPU kernels should now be findable
ChSonnabend Mar 10, 2025
e8af1c2
Adding ifdefs for standalone build and header exclusions in GPUORTFlo…
ChSonnabend Mar 10, 2025
08753dd
Modifying the approach to not use std:: types. Still needs to be test…
ChSonnabend Mar 10, 2025
9155cca
New version of clusterizer. Compiles locally, but segfaults in fillIn…
ChSonnabend Mar 11, 2025
05bc4b8
Please consider the following formatting changes
alibuild Mar 11, 2025
24bf104
Merge pull request #14 from alibuild/alibot-cleanup-13981
ChSonnabend Mar 11, 2025
ed323ec
Adjust for comments
ChSonnabend Mar 12, 2025
248f9c9
Please consider the following formatting changes
alibuild Mar 12, 2025
f1af003
Merge pull request #15 from alibuild/alibot-cleanup-13981
ChSonnabend Mar 12, 2025
a23fdc9
Merge branch 'dev' into gpu_clusterizer
ChSonnabend Mar 12, 2025
bd3c8d1
Merging dev and adjusting build issues
ChSonnabend Mar 12, 2025
cc6c05c
Adjusting for comments
ChSonnabend Mar 12, 2025
6e809bf
Merge branch 'dev' into gpu_clusterizer
ChSonnabend Mar 12, 2025
80f818d
Fixing incorrect #endif
ChSonnabend Mar 12, 2025
ac61052
Please consider the following formatting changes
alibuild Mar 12, 2025
814d94d
Merge pull request #16 from alibuild/alibot-cleanup-13981
ChSonnabend Mar 12, 2025
c03a60e
Fix indentation, remove duplicate define
davidrohr Mar 13, 2025
207ba9c
Fixing one memory issue. Segfault / memory leak persists
ChSonnabend Mar 13, 2025
c5b147f
Merge branch 'dev' into gpu_clusterizer
ChSonnabend Mar 13, 2025
0978c19
Adjusting for new toNative function
ChSonnabend Mar 13, 2025
ad9696e
Fixing .finalize
ChSonnabend Mar 13, 2025
3377435
Adjusting CMakeLIsts and other bugs
ChSonnabend Mar 13, 2025
9893b43
Adding GPUCA_HAS_ONNX only to tracking
ChSonnabend Mar 13, 2025
bce04bc
Changing to fixed size for number of clusters
ChSonnabend Mar 13, 2025
713dd64
Fixed segfault. Not producing the right number of clusters yet.
ChSonnabend Mar 13, 2025
e66efb1
Network now accepts clusters over all sectors
ChSonnabend Mar 13, 2025
2b9b8da
Whitespaces...
ChSonnabend Mar 13, 2025
34419f3
Merge dev + fix-ups
ChSonnabend Mar 13, 2025
85d185e
Some weird formatting
ChSonnabend Mar 13, 2025
49352ab
Please consider the following formatting changes
alibuild Mar 13, 2025
90ef464
Merge pull request #17 from alibuild/alibot-cleanup-13981
ChSonnabend Mar 13, 2025
78c342d
Removing white-spaces
ChSonnabend Mar 14, 2025
6a7b17c
Adding necessary if-statement to avoid automatic model loading
ChSonnabend Mar 14, 2025
41d80d2
Merge dev and fixes
ChSonnabend Mar 14, 2025
bb163ea
Removing GPUConstantMem, adding interOpNumThreads option
ChSonnabend Mar 14, 2025
eabba5f
Found the bug where I loose clusters
ChSonnabend Mar 14, 2025
1e80754
Editor configured for whitespaces at EOF
ChSonnabend Mar 14, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 32 additions & 34 deletions GPU/GPUTracking/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -162,35 +162,35 @@ set(HDRS_INSTALL
set(SRCS_NO_CINT ${SRCS_NO_CINT} display/GPUDisplayInterface.cxx)

Comment thread
davidrohr marked this conversation as resolved.
set(SRCS_NO_CINT ${SRCS_NO_CINT}
Global/GPUChainITS.cxx
ITS/GPUITSFitter.cxx
ITS/GPUITSFitterKernels.cxx
dEdx/GPUdEdx.cxx
TPCConvert/GPUTPCConvert.cxx
TPCConvert/GPUTPCConvertKernel.cxx
DataCompression/GPUTPCCompression.cxx
DataCompression/GPUTPCCompressionTrackModel.cxx
DataCompression/GPUTPCCompressionKernels.cxx
DataCompression/GPUTPCDecompression.cxx
DataCompression/GPUTPCDecompressionKernels.cxx
DataCompression/TPCClusterDecompressor.cxx
DataCompression/GPUTPCClusterStatistics.cxx
TPCClusterFinder/GPUTPCClusterFinder.cxx
TPCClusterFinder/ClusterAccumulator.cxx
TPCClusterFinder/MCLabelAccumulator.cxx
TPCClusterFinder/GPUTPCCFCheckPadBaseline.cxx
TPCClusterFinder/GPUTPCCFStreamCompaction.cxx
TPCClusterFinder/GPUTPCCFChargeMapFiller.cxx
TPCClusterFinder/GPUTPCCFPeakFinder.cxx
TPCClusterFinder/GPUTPCCFNoiseSuppression.cxx
TPCClusterFinder/GPUTPCCFClusterizer.cxx
TPCClusterFinder/GPUTPCCFDeconvolution.cxx
TPCClusterFinder/GPUTPCCFMCLabelFlattener.cxx
TPCClusterFinder/GPUTPCCFDecodeZS.cxx
TPCClusterFinder/GPUTPCCFGather.cxx
Refit/GPUTrackingRefit.cxx
Refit/GPUTrackingRefitKernel.cxx
Merger/GPUTPCGMO2Output.cxx)
Global/GPUChainITS.cxx
ITS/GPUITSFitter.cxx
ITS/GPUITSFitterKernels.cxx
dEdx/GPUdEdx.cxx
TPCConvert/GPUTPCConvert.cxx
TPCConvert/GPUTPCConvertKernel.cxx
DataCompression/GPUTPCCompression.cxx
DataCompression/GPUTPCCompressionTrackModel.cxx
DataCompression/GPUTPCCompressionKernels.cxx
DataCompression/GPUTPCDecompression.cxx
DataCompression/GPUTPCDecompressionKernels.cxx
DataCompression/TPCClusterDecompressor.cxx
DataCompression/GPUTPCClusterStatistics.cxx
TPCClusterFinder/GPUTPCClusterFinder.cxx
TPCClusterFinder/ClusterAccumulator.cxx
TPCClusterFinder/MCLabelAccumulator.cxx
TPCClusterFinder/GPUTPCCFCheckPadBaseline.cxx
TPCClusterFinder/GPUTPCCFStreamCompaction.cxx
TPCClusterFinder/GPUTPCCFChargeMapFiller.cxx
TPCClusterFinder/GPUTPCCFPeakFinder.cxx
TPCClusterFinder/GPUTPCCFNoiseSuppression.cxx
TPCClusterFinder/GPUTPCCFClusterizer.cxx
TPCClusterFinder/GPUTPCCFDeconvolution.cxx
TPCClusterFinder/GPUTPCCFMCLabelFlattener.cxx
TPCClusterFinder/GPUTPCCFDecodeZS.cxx
TPCClusterFinder/GPUTPCCFGather.cxx
Refit/GPUTrackingRefit.cxx
Refit/GPUTrackingRefitKernel.cxx
Merger/GPUTPCGMO2Output.cxx)

if(NOT ALIGPU_BUILD_TYPE STREQUAL "Standalone")
list(APPEND SRCS_NO_CINT TPCClusterFinder/GPUTPCNNClusterizerKernels.cxx TPCClusterFinder/GPUTPCNNClusterizer.cxx TPCClusterFinder/GPUTPCNNClusterizerHost.cxx)
Expand Down Expand Up @@ -266,20 +266,18 @@ unset(HDRS_TMP)

# Main CMake part for O2
if(ALIGPU_BUILD_TYPE STREQUAL "O2")

o2_add_library(GPUDataTypes
TARGETVARNAME targetName
PUBLIC_INCLUDE_DIRECTORIES .
Definitions
DataTypes
Definitions
DataTypes
PUBLIC_LINK_LIBRARIES O2::GPUUtils
O2::GPUCommon
O2::ReconstructionDataFormats
O2::TPCFastTransformation
O2::ML
Comment thread
davidrohr marked this conversation as resolved.
Outdated
PRIVATE_LINK_LIBRARIES O2::DataFormatsTPC
SOURCES ${SRCS_DATATYPES})
add_compile_definitions(GPUCA_HAS_ONNX=1)
Copy link
Copy Markdown
Collaborator Author

@ChSonnabend ChSonnabend Mar 13, 2025

Choose a reason for hiding this comment

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

@davidrohr This is needed, otherwise the code doesn't find GPUCA_HAS_ONNX internally. E.g. tpcNNClusterer objects are not created

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

We cannot globally add compile definitions, it should be bound to a target, then we have to understand why it didn't work.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Found it: See the new commit

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

But wasn't it already there in my change:

target_compile_definitions(${targetName} PRIVATE GPUCA_O2_LIB GPUCA_TPC_GEOMETRY_O2 GPUCA_HAS_ONNX=1)

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

But GPUCA_HAS_ONNX=1 is needed in two places. Not sure which changes you refer to, but I saw it only in one place before. Maybe I missed it

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Ah, now I understand. You added the library O2::ML to the GPUDataTypes library, not the the GPUTracking library, same for the first define. Can you remove both from GPUDataTypes, and add both only to GPUTracking?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Done

target_compile_definitions(${targetName} PRIVATE GPUCA_O2_LIB GPUCA_TPC_GEOMETRY_O2 GPUCA_HAS_ONNX=1)

o2_target_root_dictionary(GPUDataTypes
Expand Down Expand Up @@ -417,4 +415,4 @@ endif()

if(${GPUCA_NO_FAST_MATH})
target_compile_definitions(${targetName} PUBLIC GPUCA_NO_FAST_MATH)
endif()
endif()