Skip to content

Commit dc31a81

Browse files
authored
Merge branch 'AliceO2Group:dev' into new-detector4
2 parents 21545f8 + 17da522 commit dc31a81

File tree

132 files changed

+2877
-2693
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

132 files changed

+2877
-2693
lines changed

.github/workflows/code-transformations.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
runs-on: ubuntu-latest
1212

1313
steps:
14-
- uses: actions/checkout@v4
14+
- uses: actions/checkout@v5
1515
with:
1616
ref: ${{ github.event.pull_request.head.sha }}
1717
persist-credentials: false

.github/workflows/datamodel-doc.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,20 @@ jobs:
1010
steps:
1111

1212
- name: Checkout O2
13-
uses: actions/checkout@v4
13+
uses: actions/checkout@v5
1414
with:
1515
path: O2
1616
persist-credentials: false
1717

1818
- name: Checkout O2Physics
19-
uses: actions/checkout@v4
19+
uses: actions/checkout@v5
2020
with:
2121
repository: AliceO2Group/O2Physics
2222
path: O2Physics
2323
persist-credentials: false
2424

2525
- name: Checkout documentation
26-
uses: actions/checkout@v4
26+
uses: actions/checkout@v5
2727
with:
2828
repository: AliceO2Group/analysis-framework
2929
path: analysis-framework
@@ -40,7 +40,7 @@ jobs:
4040
git checkout -B auto-datamodel-doc
4141
4242
- name: Set up Python
43-
uses: actions/setup-python@v5
43+
uses: actions/setup-python@v6
4444
with:
4545
python-version: 3.x
4646

.github/workflows/doxygen.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
run: |
1414
sudo apt-get update -y
1515
sudo apt-get install -y doxygen doxygen-doc doxygen-latex doxygen-gui graphviz cmake
16-
- uses: actions/checkout@v4
16+
- uses: actions/checkout@v5
1717
with:
1818
ref: "dev"
1919
persist-credentials: false

.github/workflows/first-timer.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ jobs:
88
nag_first_timer:
99
runs-on: ubuntu-latest
1010
steps:
11-
- uses: actions/first-interaction@v1
11+
- uses: actions/first-interaction@v3
1212
with:
1313
repo-token: ${{ secrets.GITHUB_TOKEN }}
1414
pr-message: 'This seems to be your first PR. You will need a positive review in order for tests to start.'

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
branch=$(echo ${{ github.event.inputs.tag }}-patches | tr . - | sed -e's/-[0-9]*-patches$/-patches/')
1919
EOF
2020
id: decide_release_branch
21-
- uses: actions/checkout@v4
21+
- uses: actions/checkout@v5
2222
with:
2323
ref: "dev"
2424
- name: Tag branch (or create one before tagging if does not exists)

.github/workflows/reports.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ jobs:
1717
if: github.repository == 'AliceO2Group/AliceO2'
1818

1919
steps:
20-
- uses: actions/checkout@v4
20+
- uses: actions/checkout@v5
2121
- name: Set up Python 3.10
22-
uses: actions/setup-python@v5
22+
uses: actions/setup-python@v6
2323
with:
2424
python-version: '3.10'
2525
- uses: actions/cache@v4

.github/workflows/stale.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ jobs:
77
stale:
88
runs-on: ubuntu-latest
99
steps:
10-
- uses: actions/stale@v9
10+
- uses: actions/stale@v10
1111
with:
1212
repo-token: ${{ secrets.GITHUB_TOKEN }}
1313
stale-pr-message: 'This PR did not have any update in the last 30 days. Is it still needed? Unless further action in will be closed in 5 days.'

DataFormats/Detectors/TPC/include/DataFormatsTPC/RawDataTypes.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ enum Type : char {
2828
ZS = 2, ///< final Zero Suppression (can be ILBZS, DLBZS)
2929
IDC = 3, ///< Integrated Digitial Currents, with priority bit to end up in separate buffer
3030
SAC = 4, ///< Sampled Analogue Currents from the current monitor
31+
CMV = 5, ///< Common mode values
3132
};
3233

3334
const std::unordered_map<Type, std::string_view> TypeNameMap{
@@ -36,6 +37,7 @@ const std::unordered_map<Type, std::string_view> TypeNameMap{
3637
{Type::ZS, "ZS"},
3738
{Type::IDC, "IDC"},
3839
{Type::SAC, "SAC"},
40+
{Type::CMV, "CMV"},
3941
};
4042

4143
} // namespace o2::tpc::raw_data_types

Detectors/ITSMFT/ITS/tracking/GPU/ITStrackingGPU/TimeFrameGPU.h

Lines changed: 41 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,13 @@ namespace o2::its::gpu
2525
{
2626

2727
template <int nLayers = 7>
28-
class TimeFrameGPU : public TimeFrame<nLayers>
28+
class TimeFrameGPU final : public TimeFrame<nLayers>
2929
{
3030
using typename TimeFrame<nLayers>::CellSeedN;
3131
using typename TimeFrame<nLayers>::IndexTableUtilsN;
3232

3333
public:
34-
TimeFrameGPU();
34+
TimeFrameGPU() = default;
3535
~TimeFrameGPU() = default;
3636

3737
/// Most relevant operations
@@ -44,13 +44,13 @@ class TimeFrameGPU : public TimeFrame<nLayers>
4444
void loadTrackingFrameInfoDevice(const int, const int);
4545
void createTrackingFrameInfoDeviceArray(const int);
4646
void loadUnsortedClustersDevice(const int, const int);
47-
void createUnsortedClustersDeviceArray(const int);
47+
void createUnsortedClustersDeviceArray(const int, const int = nLayers);
4848
void loadClustersDevice(const int, const int);
49-
void createClustersDeviceArray(const int);
49+
void createClustersDeviceArray(const int, const int = nLayers);
5050
void loadClustersIndexTables(const int, const int);
51-
void createClustersIndexTablesArray(const int iteration);
51+
void createClustersIndexTablesArray(const int);
5252
void createUsedClustersDevice(const int, const int);
53-
void createUsedClustersDeviceArray(const int);
53+
void createUsedClustersDeviceArray(const int, const int = nLayers);
5454
void loadUsedClustersDevice();
5555
void loadROFrameClustersDevice(const int, const int);
5656
void createROFrameClustersDeviceArray(const int);
@@ -85,6 +85,12 @@ class TimeFrameGPU : public TimeFrame<nLayers>
8585
void downloadCellsDevice();
8686
void downloadCellsLUTDevice();
8787

88+
/// Vertexer
89+
void createVtxTrackletsLUTDevice(const int32_t);
90+
void createVtxTrackletsBuffers(const int32_t);
91+
void createVtxLinesLUTDevice(const int32_t);
92+
void createVtxLinesBuffer(const int32_t);
93+
8894
/// synchronization
8995
auto& getStream(const size_t stream) { return mGpuStreams[stream]; }
9096
auto& getStreams() { return mGpuStreams; }
@@ -98,6 +104,8 @@ class TimeFrameGPU : public TimeFrame<nLayers>
98104
virtual void wipe() final;
99105

100106
/// interface
107+
virtual bool isGPU() const noexcept final { return true; }
108+
virtual const char* getName() const noexcept { return "GPU"; }
101109
int getNClustersInRofSpan(const int, const int, const int) const;
102110
IndexTableUtilsN* getDeviceIndexTableUtils() { return mIndexTableUtilsDevice; }
103111
int* getDeviceROFramesClusters(const int layer) { return mROFramesClustersDevice[layer]; }
@@ -122,7 +130,7 @@ class TimeFrameGPU : public TimeFrame<nLayers>
122130
const Cluster** getDeviceArrayUnsortedClusters() const { return mUnsortedClustersDeviceArray; }
123131
const int** getDeviceArrayClustersIndexTables() const { return mClustersIndexTablesDeviceArray; }
124132
std::vector<unsigned int> getClusterSizes();
125-
const unsigned char** getDeviceArrayUsedClusters() const { return mUsedClustersDeviceArray; }
133+
uint8_t** getDeviceArrayUsedClusters() const { return mUsedClustersDeviceArray; }
126134
const int** getDeviceROFrameClusters() const { return mROFramesClustersDeviceArray; }
127135
Tracklet** getDeviceArrayTracklets() { return mTrackletsDeviceArray; }
128136
int** getDeviceArrayTrackletsLUT() const { return mTrackletsLUTDeviceArray; }
@@ -135,6 +143,19 @@ class TimeFrameGPU : public TimeFrame<nLayers>
135143
int* getDeviceNeighboursIndexTables(const int layer) { return mNeighboursIndexTablesDevice[layer]; }
136144
uint8_t* getDeviceMultCutMask() { return mMultMaskDevice; }
137145

146+
// Vertexer
147+
auto& getDeviceNTrackletsPerROF() const noexcept { return mNTrackletsPerROFDevice; }
148+
auto& getDeviceNTrackletsPerCluster() const noexcept { return mNTrackletsPerClusterDevice; }
149+
auto& getDeviceNTrackletsPerClusterSum() const noexcept { return mNTrackletsPerClusterSumDevice; }
150+
int32_t** getDeviceArrayNTrackletsPerROF() const noexcept { return mNTrackletsPerROFDeviceArray; }
151+
int32_t** getDeviceArrayNTrackletsPerCluster() const noexcept { return mNTrackletsPerClusterDeviceArray; }
152+
int32_t** getDeviceArrayNTrackletsPerClusterSum() const noexcept { return mNTrackletsPerClusterSumDeviceArray; }
153+
uint8_t* getDeviceUsedTracklets() const noexcept { return mUsedTrackletsDevice; }
154+
int32_t* getDeviceNLinesPerCluster() const noexcept { return mNLinesPerClusterDevice; }
155+
int32_t* getDeviceNLinesPerClusterSum() const noexcept { return mNLinesPerClusterSumDevice; }
156+
Line* getDeviceLines() const noexcept { return mLinesDevice; }
157+
gsl::span<int*> getDeviceTrackletsPerROFs() { return mNTrackletsPerROFDevice; }
158+
138159
void setDevicePropagator(const o2::base::PropagatorImpl<float>* p) final { this->mPropagatorDevice = p; }
139160

140161
// Host-specific getters
@@ -180,7 +201,7 @@ class TimeFrameGPU : public TimeFrame<nLayers>
180201
const Cluster** mClustersDeviceArray;
181202
const Cluster** mUnsortedClustersDeviceArray;
182203
const int** mClustersIndexTablesDeviceArray;
183-
const unsigned char** mUsedClustersDeviceArray;
204+
uint8_t** mUsedClustersDeviceArray;
184205
const int** mROFramesClustersDeviceArray;
185206
std::array<Tracklet*, nLayers - 1> mTrackletsDevice;
186207
std::array<int*, nLayers - 1> mTrackletsLUTDevice;
@@ -208,6 +229,18 @@ class TimeFrameGPU : public TimeFrame<nLayers>
208229
std::array<TrackingFrameInfo*, nLayers> mTrackingFrameInfoDevice;
209230
const TrackingFrameInfo** mTrackingFrameInfoDeviceArray;
210231

232+
/// Vertexer
233+
std::array<int32_t*, 2> mNTrackletsPerROFDevice;
234+
std::array<int32_t*, 2> mNTrackletsPerClusterDevice;
235+
std::array<int32_t*, 2> mNTrackletsPerClusterSumDevice;
236+
uint8_t* mUsedTrackletsDevice;
237+
int32_t* mNLinesPerClusterDevice;
238+
int32_t* mNLinesPerClusterSumDevice;
239+
int32_t** mNTrackletsPerROFDeviceArray;
240+
int32_t** mNTrackletsPerClusterDeviceArray;
241+
int32_t** mNTrackletsPerClusterSumDeviceArray;
242+
Line* mLinesDevice;
243+
211244
// State
212245
Streams mGpuStreams;
213246
std::bitset<nLayers + 1> mPinnedUnsortedClusters{0};

0 commit comments

Comments
 (0)