Project
Loading...
Searching...
No Matches
GPUO2InterfaceConfiguration.h
Go to the documentation of this file.
1// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3// All rights not expressly granted are reserved.
4//
5// This software is distributed under the terms of the GNU General Public
6// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7//
8// In applying this license CERN does not waive the privileges and immunities
9// granted to it by virtue of its status as an Intergovernmental Organization
10// or submit itself to any jurisdiction.
11
14
15#ifndef GPUO2INTERFACECONFIGURATION_H
16#define GPUO2INTERFACECONFIGURATION_H
17
18#ifndef GPUCA_TPC_GEOMETRY_O2
19#define GPUCA_TPC_GEOMETRY_O2
20#endif
21#ifndef GPUCA_O2_INTERFACE
22#define GPUCA_O2_INTERFACE
23#endif
24
25#include <memory>
26#include <array>
27#include <vector>
28#include <functional>
29#include <gsl/gsl>
30#include "GPUSettings.h"
31#include "GPUDataTypes.h"
32#include "GPUHostDataTypes.h"
33#include "GPUOutputControl.h"
35
36class TH1F;
37class TH1D;
38class TH2F;
39class TGraphAsymmErrors;
40
41namespace o2
42{
43namespace tpc
44{
45class TrackTPC;
46class Digit;
47} // namespace tpc
48namespace gpu
49{
50class TPCFastTransform;
51class GPUReconstruction;
52struct GPUSettingsO2;
53
55 const std::vector<TH1F>* hist1 = nullptr;
56 const std::vector<TH2F>* hist2 = nullptr;
57 const std::vector<TH1D>* hist3 = nullptr;
58 const std::vector<TGraphAsymmErrors>* hist4 = nullptr;
59 bool newQAHistsCreated = false;
60};
61
65
67 std::function<void(GPUTrackingInOutPointers*& data, GPUInterfaceOutputs*& outputs)> callback; // Callback which provides final data ptrs / outputRegions after Clusterization stage
68 std::function<void()> notifyCallback; // Callback called to notify that Clusterization state has finished without update
69};
70
71// Full configuration structure with all available settings of GPU...
76
77 // Settings for the Interface class
80 // These constants affect GPU memory allocation only and do not limit the CPU processing
81 uint64_t maxTPCZS = 8192ul * 1024 * 1024;
82 uint32_t maxTPCHits = 1024 * 1024 * 1024;
83 uint32_t maxTRDTracklets = 128 * 1024;
84 uint32_t maxITSTracks = 96 * 1024;
85 };
86
88 GPUSettingsProcessing configProcessing;
91 GPUSettingsDisplay configDisplay;
92 GPUSettingsQA configQA;
96
97 GPUSettingsO2 ReadConfigurableParam();
98 static GPUSettingsO2 ReadConfigurableParam(GPUO2InterfaceConfiguration& obj);
99 void PrintParam();
100
101 private:
102 void PrintParam_internal();
103};
104
105} // namespace gpu
106} // namespace o2
107
108#endif
GLboolean * data
Definition glcorearb.h:298
typedef void(APIENTRYP PFNGLCULLFACEPROC)(GLenum mode)
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
std::function< void(GPUTrackingInOutPointers *&data, GPUInterfaceOutputs *&outputs)> callback
const std::vector< TGraphAsymmErrors > * hist4
GPUO2InterfaceConfiguration(const GPUO2InterfaceConfiguration &)=default