ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TrigAccel
TrigInDetCUDA
src
device_context.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef TRIGINDETCUDA_DEVCONTEXTS_H
6
#define TRIGINDETCUDA_DEVCONTEXTS_H
7
8
#include "
TrigAccelEvent/TrigInDetAccelEDM.h
"
9
10
#include "
TrigAccelEvent/TrigITkAccelEDM.h
"
11
12
#include <cuda_runtime.h>
13
#include <tbb/tick_count.h>
14
15
#include "
CommonStructures.h
"
16
17
18
struct
SeedMakingDeviceContext
{
19
public
:
20
SeedMakingDeviceContext
() :
m_deviceId
(-1),
h_spacepoints
(0),
d_spacepoints
(0),
d_size
(0),
h_size
(0) {};
21
size_t
hostSize
() {
return
h_size
;}
22
size_t
deviceSize
() {
return
d_size
;}
23
24
int
m_deviceId
{};
25
cudaStream_t
m_stream
{};
26
unsigned
char
*
h_settings
{};
27
unsigned
char
*
d_settings
{};
28
unsigned
char
*
h_spacepoints
{};
29
unsigned
char
*
d_spacepoints
{};
30
31
unsigned
char
*
d_detmodel
{};
32
33
unsigned
char
*
h_outputseeds
{};
34
unsigned
char
*
d_outputseeds
{};
35
36
unsigned
char
*
d_doubletstorage
{};
37
unsigned
char
*
d_doubletinfo
{};
38
39
size_t
d_size
{},
h_size
{};
40
GPU_PARAMETERS
m_gpuParams
{};
41
42
private
:
43
SeedMakingDeviceContext
(
const
SeedMakingDeviceContext
&
sc
) :
m_deviceId
(
sc
.
m_deviceId
) {};
44
};
45
46
struct
SeedMakingManagedDeviceContext
{
47
public
:
48
SeedMakingManagedDeviceContext
() :
m_deviceId
(-1),
m_spacepoints
(0),
d_size
(0),
h_size
(0),
m_size
(0) {};
49
size_t
hostSize
() {
return
h_size
;}
50
size_t
deviceSize
() {
return
d_size
;}
51
size_t
managedSize
() {
return
m_size
;}
52
53
int
m_deviceId
{};
54
cudaStream_t
m_stream
{};
55
56
57
unsigned
char
*
m_settings
{};
58
59
60
unsigned
char
*
m_spacepoints
{};
61
62
unsigned
char
*
d_detmodel
{};
63
64
65
66
67
unsigned
char
*
m_outputseeds
{};
68
unsigned
char
*
m_confirmedseeds
{};
69
70
unsigned
char
*
d_doubletstorage
{};
71
unsigned
char
*
d_doubletinfo
{};
72
73
size_t
d_size
{},
h_size
{},
m_size
{};
74
GPU_PARAMETERS
m_gpuParams
;
75
76
private
:
77
SeedMakingManagedDeviceContext
(
const
SeedMakingManagedDeviceContext
&
sc
) :
m_deviceId
(
sc
.
m_deviceId
) {};
78
};
79
80
struct
GbtsDeviceContext
{
81
public
:
82
GbtsDeviceContext
() =
default
;
83
size_t
hostSize
() {
return
h_size
;}
84
size_t
deviceSize
() {
return
d_size
;}
85
86
int
m_deviceId
{-1};
87
cudaStream_t
m_stream
;
88
size_t
d_size
{},
h_size
{};
89
90
int
m_nLayers
{};
91
int
m_nBinPairs
{};
92
int
m_maxEtaBin
{};
93
int
m_nNodes
{};
94
unsigned
int
m_nMaxEdges
{};
95
96
int
m_minLevel
{};
97
98
bool
m_useGPUseedExtraction
{};
99
100
//1. Input data structures on GPU
101
102
float
*
d_sp_params
{};
//spacepoint parameters x, y, z, w
103
int
*
d_layer_info
{};
104
float
*
d_layer_geo
{};
105
106
//2. GBTS algorithm parameters
107
108
float
*
d_algo_params
{};
109
110
//3. Graph nodes on GPU
111
112
float
*
d_node_params
{};
//tau1, tau2, r, phi, z
113
int
*
d_node_index
{};
//original spacepoint index
114
int
*
d_eta_bin_views
{};
//views of the nodes
115
float
*
d_bin_rads
{};
//minimum and maximum r of nodes inside an eta-bin
116
117
int
*
d_node_eta_index
{};
//for data binning
118
int
*
d_node_phi_index
{};
//for data binning
119
120
unsigned
int
*
d_eta_phi_histo
{};
//for data binning
121
unsigned
int
*
d_phi_cusums
{};
//for data binning
122
unsigned
int
*
d_eta_node_counter
{};
//for data binning
123
124
int
*
h_eta_bin_views
{};
//eta-bin views of the node_params array
125
float
*
h_bin_rads
{};
126
127
unsigned
int
*
h_bin_pair_views
{};
128
unsigned
int
*
d_bin_pair_views
{};
129
130
float
*
h_bin_pair_dphi
{};
131
float
*
d_bin_pair_dphi
{};
132
133
int
*
d_edge_nodes
{};
134
float
*
d_edge_params
{};
135
136
unsigned
int
*
d_num_incoming_edges
{};
137
int
*
d_edge_links
{};
138
139
unsigned
char
*
d_num_neighbours
{};
140
int
*
d_reIndexer
{};
141
int
*
d_neighbours
{};
142
unsigned
int
*
d_counters
{};
143
144
// message-passing CCA
145
146
int
*
d_active_edges
{};
//holds indices of the edges that need more CCA iterations
147
char
*
d_levels
{};
//d_levels[edge_idx] = the maxium length of seeds starting with this edge
148
int
*
d_level_views
{};
//edge indices by level
149
int
*
d_level_boundaries
{};
//number of edges for each level in the above
150
151
// seed-extraction walkthrough
152
153
int
*
d_mini_states
{};
// edge_idx and prev mini_state forms a seeds uniuqe path through the graph
154
int
*
d_seed_proposals
{};
// int quality and final mini_state_idx
155
float
*
d_state_store
{};
// global overflow of live edgeStates
156
unsigned
long
long
int
*
d_edge_bids
{};
//first 32 bits are seed quality second 32 bits are seed_proposals index [int_m_J, prop_idx]
157
char
*
d_seed_ambiguity
{};
//0 as default/is real seed, 1 as maybe seed, -1 as maybe not seed, -2 as fake
158
159
//output stats
160
161
unsigned
int
m_nEdges
{};
162
unsigned
int
m_nLinks
{};
163
unsigned
int
m_nUniqueEdges
{};
164
unsigned
int
m_nSeeds
{};
165
166
//output array
167
168
TrigAccel::ITk::Tracklet
*
d_seeds
{};
169
170
int
*
d_output_graph
{};
171
//stores each edges node-pair, number of connections and the self-refrencing indexes of those connections
172
173
private
:
174
GbtsDeviceContext
(
const
GbtsDeviceContext
&
sc
) :
m_deviceId
(
sc
.
m_deviceId
) {};
175
};
176
177
178
#endif
CommonStructures.h
GPU_PARAMETERS
struct gpuParameters GPU_PARAMETERS
sc
static Double_t sc
Definition
LArPhysWaveHECTool.cxx:37
TrigITkAccelEDM.h
TrigInDetAccelEDM.h
GbtsDeviceContext::d_seed_ambiguity
char * d_seed_ambiguity
Definition
device_context.h:157
GbtsDeviceContext::m_deviceId
int m_deviceId
Definition
device_context.h:86
GbtsDeviceContext::d_node_index
int * d_node_index
Definition
device_context.h:113
GbtsDeviceContext::d_reIndexer
int * d_reIndexer
Definition
device_context.h:140
GbtsDeviceContext::d_output_graph
int * d_output_graph
Definition
device_context.h:170
GbtsDeviceContext::d_eta_node_counter
unsigned int * d_eta_node_counter
Definition
device_context.h:122
GbtsDeviceContext::m_nNodes
int m_nNodes
Definition
device_context.h:93
GbtsDeviceContext::d_eta_bin_views
int * d_eta_bin_views
Definition
device_context.h:114
GbtsDeviceContext::h_eta_bin_views
int * h_eta_bin_views
Definition
device_context.h:124
GbtsDeviceContext::m_useGPUseedExtraction
bool m_useGPUseedExtraction
Definition
device_context.h:98
GbtsDeviceContext::d_bin_pair_dphi
float * d_bin_pair_dphi
Definition
device_context.h:131
GbtsDeviceContext::h_bin_rads
float * h_bin_rads
Definition
device_context.h:125
GbtsDeviceContext::d_node_params
float * d_node_params
Definition
device_context.h:112
GbtsDeviceContext::d_level_views
int * d_level_views
Definition
device_context.h:148
GbtsDeviceContext::d_mini_states
int * d_mini_states
Definition
device_context.h:153
GbtsDeviceContext::GbtsDeviceContext
GbtsDeviceContext()=default
GbtsDeviceContext::m_nSeeds
unsigned int m_nSeeds
Definition
device_context.h:164
GbtsDeviceContext::d_seed_proposals
int * d_seed_proposals
Definition
device_context.h:154
GbtsDeviceContext::d_neighbours
int * d_neighbours
Definition
device_context.h:141
GbtsDeviceContext::d_node_eta_index
int * d_node_eta_index
Definition
device_context.h:117
GbtsDeviceContext::d_seeds
TrigAccel::ITk::Tracklet * d_seeds
Definition
device_context.h:168
GbtsDeviceContext::m_stream
cudaStream_t m_stream
Definition
device_context.h:87
GbtsDeviceContext::hostSize
size_t hostSize()
Definition
device_context.h:83
GbtsDeviceContext::d_phi_cusums
unsigned int * d_phi_cusums
Definition
device_context.h:121
GbtsDeviceContext::d_layer_geo
float * d_layer_geo
Definition
device_context.h:104
GbtsDeviceContext::d_algo_params
float * d_algo_params
Definition
device_context.h:108
GbtsDeviceContext::d_level_boundaries
int * d_level_boundaries
Definition
device_context.h:149
GbtsDeviceContext::m_maxEtaBin
int m_maxEtaBin
Definition
device_context.h:92
GbtsDeviceContext::d_num_incoming_edges
unsigned int * d_num_incoming_edges
Definition
device_context.h:136
GbtsDeviceContext::h_bin_pair_views
unsigned int * h_bin_pair_views
Definition
device_context.h:127
GbtsDeviceContext::h_bin_pair_dphi
float * h_bin_pair_dphi
Definition
device_context.h:130
GbtsDeviceContext::d_edge_bids
unsigned long long int * d_edge_bids
Definition
device_context.h:156
GbtsDeviceContext::d_num_neighbours
unsigned char * d_num_neighbours
Definition
device_context.h:139
GbtsDeviceContext::GbtsDeviceContext
GbtsDeviceContext(const GbtsDeviceContext &sc)
Definition
device_context.h:174
GbtsDeviceContext::m_nLinks
unsigned int m_nLinks
Definition
device_context.h:162
GbtsDeviceContext::d_edge_nodes
int * d_edge_nodes
Definition
device_context.h:133
GbtsDeviceContext::m_nBinPairs
int m_nBinPairs
Definition
device_context.h:91
GbtsDeviceContext::d_edge_links
int * d_edge_links
Definition
device_context.h:137
GbtsDeviceContext::d_eta_phi_histo
unsigned int * d_eta_phi_histo
Definition
device_context.h:120
GbtsDeviceContext::d_active_edges
int * d_active_edges
Definition
device_context.h:146
GbtsDeviceContext::m_nUniqueEdges
unsigned int m_nUniqueEdges
Definition
device_context.h:163
GbtsDeviceContext::h_size
size_t h_size
Definition
device_context.h:88
GbtsDeviceContext::m_nLayers
int m_nLayers
Definition
device_context.h:90
GbtsDeviceContext::d_layer_info
int * d_layer_info
Definition
device_context.h:103
GbtsDeviceContext::d_bin_rads
float * d_bin_rads
Definition
device_context.h:115
GbtsDeviceContext::m_nMaxEdges
unsigned int m_nMaxEdges
Definition
device_context.h:94
GbtsDeviceContext::d_size
size_t d_size
Definition
device_context.h:88
GbtsDeviceContext::d_sp_params
float * d_sp_params
Definition
device_context.h:102
GbtsDeviceContext::m_minLevel
int m_minLevel
Definition
device_context.h:96
GbtsDeviceContext::d_state_store
float * d_state_store
Definition
device_context.h:155
GbtsDeviceContext::d_counters
unsigned int * d_counters
Definition
device_context.h:142
GbtsDeviceContext::deviceSize
size_t deviceSize()
Definition
device_context.h:84
GbtsDeviceContext::d_bin_pair_views
unsigned int * d_bin_pair_views
Definition
device_context.h:128
GbtsDeviceContext::d_edge_params
float * d_edge_params
Definition
device_context.h:134
GbtsDeviceContext::d_node_phi_index
int * d_node_phi_index
Definition
device_context.h:118
GbtsDeviceContext::d_levels
char * d_levels
Definition
device_context.h:147
GbtsDeviceContext::m_nEdges
unsigned int m_nEdges
Definition
device_context.h:161
SeedMakingDeviceContext::d_spacepoints
unsigned char * d_spacepoints
Definition
device_context.h:29
SeedMakingDeviceContext::m_deviceId
int m_deviceId
Definition
device_context.h:24
SeedMakingDeviceContext::h_size
size_t h_size
Definition
device_context.h:39
SeedMakingDeviceContext::m_gpuParams
GPU_PARAMETERS m_gpuParams
Definition
device_context.h:40
SeedMakingDeviceContext::m_stream
cudaStream_t m_stream
Definition
device_context.h:25
SeedMakingDeviceContext::d_detmodel
unsigned char * d_detmodel
Definition
device_context.h:31
SeedMakingDeviceContext::hostSize
size_t hostSize()
Definition
device_context.h:21
SeedMakingDeviceContext::h_outputseeds
unsigned char * h_outputseeds
Definition
device_context.h:33
SeedMakingDeviceContext::d_outputseeds
unsigned char * d_outputseeds
Definition
device_context.h:34
SeedMakingDeviceContext::h_spacepoints
unsigned char * h_spacepoints
Definition
device_context.h:28
SeedMakingDeviceContext::h_settings
unsigned char * h_settings
Definition
device_context.h:26
SeedMakingDeviceContext::d_doubletstorage
unsigned char * d_doubletstorage
Definition
device_context.h:36
SeedMakingDeviceContext::d_doubletinfo
unsigned char * d_doubletinfo
Definition
device_context.h:37
SeedMakingDeviceContext::d_size
size_t d_size
Definition
device_context.h:39
SeedMakingDeviceContext::deviceSize
size_t deviceSize()
Definition
device_context.h:22
SeedMakingDeviceContext::SeedMakingDeviceContext
SeedMakingDeviceContext(const SeedMakingDeviceContext &sc)
Definition
device_context.h:43
SeedMakingDeviceContext::d_settings
unsigned char * d_settings
Definition
device_context.h:27
SeedMakingDeviceContext::SeedMakingDeviceContext
SeedMakingDeviceContext()
Definition
device_context.h:20
SeedMakingManagedDeviceContext::h_size
size_t h_size
Definition
device_context.h:73
SeedMakingManagedDeviceContext::deviceSize
size_t deviceSize()
Definition
device_context.h:50
SeedMakingManagedDeviceContext::SeedMakingManagedDeviceContext
SeedMakingManagedDeviceContext()
Definition
device_context.h:48
SeedMakingManagedDeviceContext::d_doubletstorage
unsigned char * d_doubletstorage
Definition
device_context.h:70
SeedMakingManagedDeviceContext::m_gpuParams
GPU_PARAMETERS m_gpuParams
Definition
device_context.h:74
SeedMakingManagedDeviceContext::managedSize
size_t managedSize()
Definition
device_context.h:51
SeedMakingManagedDeviceContext::SeedMakingManagedDeviceContext
SeedMakingManagedDeviceContext(const SeedMakingManagedDeviceContext &sc)
Definition
device_context.h:77
SeedMakingManagedDeviceContext::d_doubletinfo
unsigned char * d_doubletinfo
Definition
device_context.h:71
SeedMakingManagedDeviceContext::d_size
size_t d_size
Definition
device_context.h:73
SeedMakingManagedDeviceContext::m_confirmedseeds
unsigned char * m_confirmedseeds
Definition
device_context.h:68
SeedMakingManagedDeviceContext::d_detmodel
unsigned char * d_detmodel
Definition
device_context.h:62
SeedMakingManagedDeviceContext::m_settings
unsigned char * m_settings
Definition
device_context.h:57
SeedMakingManagedDeviceContext::m_deviceId
int m_deviceId
Definition
device_context.h:53
SeedMakingManagedDeviceContext::m_stream
cudaStream_t m_stream
Definition
device_context.h:54
SeedMakingManagedDeviceContext::m_size
size_t m_size
Definition
device_context.h:73
SeedMakingManagedDeviceContext::m_spacepoints
unsigned char * m_spacepoints
Definition
device_context.h:60
SeedMakingManagedDeviceContext::hostSize
size_t hostSize()
Definition
device_context.h:49
SeedMakingManagedDeviceContext::m_outputseeds
unsigned char * m_outputseeds
Definition
device_context.h:67
TrigAccel::ITk::Tracklet
Definition
TrigITkAccelEDM.h:165
Generated on
for ATLAS Offline Software by
1.17.0