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#include "GPUO2ExternalUser.h"
19#include "GPUSettings.h"
20#include "GPUDataTypes.h"
21#include "GPUHostDataTypes.h"
22#include "GPUOutputControl.h"
24#include <memory>
25#include <array>
26#include <vector>
27#include <functional>
28#include <gsl/gsl> // TODO: Get rid of gsl
29
30class TH1F;
31class TH1D;
32class TH2F;
33class TGraphAsymmErrors;
34
35namespace o2
36{
37namespace tpc
38{
39class TrackTPC;
40class Digit;
41} // namespace tpc
42namespace gpu
43{
44class TPCFastTransform;
45class GPUReconstruction;
46struct GPUSettingsO2;
47
49 const std::vector<TH1F>* hist1 = nullptr;
50 const std::vector<TH2F>* hist2 = nullptr;
51 const std::vector<TH1D>* hist3 = nullptr;
52 const std::vector<TGraphAsymmErrors>* hist4 = nullptr;
53 bool newQAHistsCreated = false;
54};
55
59
61 std::function<void(GPUTrackingInOutPointers*& data, GPUInterfaceOutputs*& outputs)> callback; // Callback which provides final data ptrs / outputRegions after Clusterization stage
62 std::function<void()> notifyCallback; // Callback called to notify that Clusterization state has finished without update
63};
64
65// Full configuration structure with all available settings of GPU...
70
71 // Settings for the Interface class
74 // These constants affect GPU memory allocation only and do not limit the CPU processing
75 uint64_t maxTPCZS = 8192ul * 1024 * 1024;
76 uint32_t maxTPCHits = 1024 * 1024 * 1024;
77 uint32_t maxTRDTracklets = 128 * 1024;
78 uint32_t maxITSTracks = 96 * 1024;
79 };
80
82 GPUSettingsProcessing configProcessing;
85 GPUSettingsDisplay configDisplay;
86 GPUSettingsQA configQA;
90
91 GPUSettingsO2 ReadConfigurableParam();
92 static GPUSettingsO2 ReadConfigurableParam(GPUO2InterfaceConfiguration& obj);
93 void PrintParam();
94
95 private:
96 void PrintParam_internal();
97};
98
99} // namespace gpu
100} // namespace o2
101
102#endif
GLboolean * data
Definition glcorearb.h:298
typedef void(APIENTRYP PFNGLCULLFACEPROC)(GLenum mode)
o2::cpv::Digit Digit
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