Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
device_context.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TRIGINDETCUDA_DEVCONTEXTS_H
6 #define TRIGINDETCUDA_DEVCONTEXTS_H
7 
9 
10 
11 #include <cuda_runtime.h>
12 #include <tbb/tick_count.h>
13 
14 #include "CommonStructures.h"
15 
16 
18 public:
20  size_t hostSize() { return h_size;}
21  size_t deviceSize() { return d_size;}
22 
23  int m_deviceId{};
24  cudaStream_t m_stream{};
25  unsigned char *h_settings{};
26  unsigned char *d_settings{};
27  unsigned char *h_spacepoints{};
28  unsigned char *d_spacepoints{};
29 
30  unsigned char *d_detmodel{};
31 
32  unsigned char *h_outputseeds{};
33  unsigned char *d_outputseeds{};
34 
35  unsigned char *d_doubletstorage{};
36  unsigned char *d_doubletinfo{};
37 
38  size_t d_size{}, h_size{};
40 
41 private:
43 };
44 
46 public:
48  size_t hostSize() { return h_size;}
49  size_t deviceSize() { return d_size;}
50  size_t managedSize() { return m_size;}
51 
52  int m_deviceId{};
53  cudaStream_t m_stream{};
54 
55 
56  unsigned char *m_settings{};
57 
58 
59  unsigned char *m_spacepoints{};
60 
61  unsigned char *d_detmodel{};
62 
63 
64 
65 
66  unsigned char *m_outputseeds{};
67  unsigned char *m_confirmedseeds{};
68 
69  unsigned char *d_doubletstorage{};
70  unsigned char *d_doubletinfo{};
71 
72  size_t d_size{}, h_size{}, m_size{};
74 
75 private:
77 };
78 
80 public:
81  GbtsDeviceContext() = default;
82  size_t hostSize() { return h_size;}
83  size_t deviceSize() { return d_size;}
84 
85  int m_deviceId{-1};
86  cudaStream_t m_stream;
87  size_t d_size{}, h_size{};
88 
89  int m_nLayers{};
90  int m_nBinPairs{};
91  int m_maxEtaBin{};
92  int m_nNodes{};
93  unsigned int m_nMaxEdges{};
94 
95  //1. Input data structures on GPU
96 
97  float* d_sp_params{};//spacepoint parameters x, y, z, w
98  int* d_layer_info{};
99  float* d_layer_geo{};
100 
101  //2. GBTS algorithm parameters
102 
103  float* d_algo_params{};
104 
105  //3. Graph nodes on GPU
106 
107  float* d_node_params{};//tau1, tau2, r, phi, z
108  int* d_node_index{};//original spacepoint index
109  int* d_eta_bin_views{};//views of the nodes
110  float* d_bin_rads{};//minimum and maximum r of nodes inside an eta-bin
111 
112  int* d_node_eta_index{};//for data binning
113  int* d_node_phi_index{};//for data binning
114 
115  unsigned int* d_eta_phi_histo{};//for data binning
116  unsigned int* d_phi_cusums{};//for data binning
117  unsigned int* d_eta_node_counter{};//for data binning
118 
119  int* h_eta_bin_views{};//eta-bin views of the node_params array
120  float* h_bin_rads{};
121 
122  unsigned int* h_bin_pair_views{};
123  unsigned int* d_bin_pair_views{};
124 
125  float* h_bin_pair_dphi{};
126  float* d_bin_pair_dphi{};
127 
128  int* d_edge_nodes{};
129  float* d_edge_params{};
130 
131  unsigned int* d_num_incoming_edges{};
132 
134 
135  int* d_edge_links{};
136 
138  int* d_reIndexer{};
139  int* d_neighbours{};
140  unsigned int* d_counters{};
141 
142  //output stats
143 
144  unsigned int m_nEdges{};
145  unsigned int m_nLinks{};
146  unsigned int m_nUniqueEdges{};
147 
148  //output array
149 
151 
152 private:
154 };
155 
156 
157 #endif
SeedMakingDeviceContext::m_stream
cudaStream_t m_stream
Definition: device_context.h:24
SeedMakingManagedDeviceContext::m_settings
unsigned char * m_settings
Definition: device_context.h:56
SeedMakingDeviceContext::d_spacepoints
unsigned char * d_spacepoints
Definition: device_context.h:28
SeedMakingDeviceContext::h_settings
unsigned char * h_settings
Definition: device_context.h:25
SeedMakingManagedDeviceContext::managedSize
size_t managedSize()
Definition: device_context.h:50
GbtsDeviceContext::d_output_graph
int * d_output_graph
Definition: device_context.h:150
GbtsDeviceContext::hostSize
size_t hostSize()
Definition: device_context.h:82
CommonStructures.h
SeedMakingManagedDeviceContext::SeedMakingManagedDeviceContext
SeedMakingManagedDeviceContext()
Definition: device_context.h:47
GbtsDeviceContext::d_algo_params
float * d_algo_params
Definition: device_context.h:103
GbtsDeviceContext::d_reIndexer
int * d_reIndexer
Definition: device_context.h:138
SeedMakingDeviceContext::hostSize
size_t hostSize()
Definition: device_context.h:20
GbtsDeviceContext::d_eta_bin_views
int * d_eta_bin_views
Definition: device_context.h:109
GbtsDeviceContext::h_size
size_t h_size
Definition: device_context.h:87
GbtsDeviceContext::h_eta_bin_views
int * h_eta_bin_views
Definition: device_context.h:119
SeedMakingDeviceContext::d_detmodel
unsigned char * d_detmodel
Definition: device_context.h:30
SeedMakingDeviceContext::m_gpuParams
GPU_PARAMETERS m_gpuParams
Definition: device_context.h:39
GbtsDeviceContext::d_eta_node_counter
unsigned int * d_eta_node_counter
Definition: device_context.h:117
GbtsDeviceContext::GbtsDeviceContext
GbtsDeviceContext()=default
SeedMakingManagedDeviceContext::d_doubletinfo
unsigned char * d_doubletinfo
Definition: device_context.h:70
GbtsDeviceContext::h_bin_rads
float * h_bin_rads
Definition: device_context.h:120
SeedMakingDeviceContext::d_settings
unsigned char * d_settings
Definition: device_context.h:26
SeedMakingManagedDeviceContext::m_spacepoints
unsigned char * m_spacepoints
Definition: device_context.h:59
GbtsDeviceContext::d_bin_rads
float * d_bin_rads
Definition: device_context.h:110
GbtsDeviceContext::h_bin_pair_dphi
float * h_bin_pair_dphi
Definition: device_context.h:125
GbtsDeviceContext::GbtsDeviceContext
GbtsDeviceContext(const GbtsDeviceContext &sc)
Definition: device_context.h:153
GbtsDeviceContext::d_node_phi_index
int * d_node_phi_index
Definition: device_context.h:113
SeedMakingManagedDeviceContext::m_gpuParams
GPU_PARAMETERS m_gpuParams
Definition: device_context.h:73
SeedMakingDeviceContext::d_doubletinfo
unsigned char * d_doubletinfo
Definition: device_context.h:36
GbtsDeviceContext::deviceSize
size_t deviceSize()
Definition: device_context.h:83
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
SeedMakingManagedDeviceContext::h_size
size_t h_size
Definition: device_context.h:72
SeedMakingDeviceContext::SeedMakingDeviceContext
SeedMakingDeviceContext()
Definition: device_context.h:19
SeedMakingDeviceContext::deviceSize
size_t deviceSize()
Definition: device_context.h:21
GbtsDeviceContext::m_nLayers
int m_nLayers
Definition: device_context.h:89
GbtsDeviceContext::m_deviceId
int m_deviceId
Definition: device_context.h:85
GbtsDeviceContext::d_neighbours
int * d_neighbours
Definition: device_context.h:139
SeedMakingManagedDeviceContext::m_outputseeds
unsigned char * m_outputseeds
Definition: device_context.h:66
GbtsDeviceContext::d_node_eta_index
int * d_node_eta_index
Definition: device_context.h:112
GbtsDeviceContext::m_maxEtaBin
int m_maxEtaBin
Definition: device_context.h:91
SeedMakingManagedDeviceContext::m_size
size_t m_size
Definition: device_context.h:72
SeedMakingManagedDeviceContext::m_stream
cudaStream_t m_stream
Definition: device_context.h:53
SeedMakingManagedDeviceContext::deviceSize
size_t deviceSize()
Definition: device_context.h:49
GbtsDeviceContext::d_phi_cusums
unsigned int * d_phi_cusums
Definition: device_context.h:116
SeedMakingManagedDeviceContext::d_detmodel
unsigned char * d_detmodel
Definition: device_context.h:61
GbtsDeviceContext::d_eta_phi_histo
unsigned int * d_eta_phi_histo
Definition: device_context.h:115
GbtsDeviceContext::d_link_counters
int * d_link_counters
Definition: device_context.h:133
SeedMakingDeviceContext::h_spacepoints
unsigned char * h_spacepoints
Definition: device_context.h:27
GbtsDeviceContext::m_stream
cudaStream_t m_stream
Definition: device_context.h:86
GbtsDeviceContext::d_counters
unsigned int * d_counters
Definition: device_context.h:140
SeedMakingDeviceContext::h_size
size_t h_size
Definition: device_context.h:38
SeedMakingManagedDeviceContext::SeedMakingManagedDeviceContext
SeedMakingManagedDeviceContext(const SeedMakingManagedDeviceContext &sc)
Definition: device_context.h:76
GbtsDeviceContext::d_layer_info
int * d_layer_info
Definition: device_context.h:98
GbtsDeviceContext::d_size
size_t d_size
Definition: device_context.h:87
GbtsDeviceContext::d_edge_nodes
int * d_edge_nodes
Definition: device_context.h:128
SeedMakingDeviceContext::SeedMakingDeviceContext
SeedMakingDeviceContext(const SeedMakingDeviceContext &sc)
Definition: device_context.h:42
GbtsDeviceContext::d_num_neighbours
int * d_num_neighbours
Definition: device_context.h:137
GbtsDeviceContext::h_bin_pair_views
unsigned int * h_bin_pair_views
Definition: device_context.h:122
SeedMakingManagedDeviceContext::hostSize
size_t hostSize()
Definition: device_context.h:48
gpuParameters
Definition: CommonStructures.h:6
GbtsDeviceContext::d_bin_pair_dphi
float * d_bin_pair_dphi
Definition: device_context.h:126
SeedMakingDeviceContext::d_doubletstorage
unsigned char * d_doubletstorage
Definition: device_context.h:35
SeedMakingManagedDeviceContext::d_doubletstorage
unsigned char * d_doubletstorage
Definition: device_context.h:69
GbtsDeviceContext::d_edge_links
int * d_edge_links
Definition: device_context.h:135
GbtsDeviceContext::d_node_params
float * d_node_params
Definition: device_context.h:107
SeedMakingManagedDeviceContext::d_size
size_t d_size
Definition: device_context.h:72
GbtsDeviceContext::m_nNodes
int m_nNodes
Definition: device_context.h:92
GbtsDeviceContext::m_nUniqueEdges
unsigned int m_nUniqueEdges
Definition: device_context.h:146
SeedMakingDeviceContext::d_size
size_t d_size
Definition: device_context.h:38
GbtsDeviceContext::m_nLinks
unsigned int m_nLinks
Definition: device_context.h:145
GbtsDeviceContext
Definition: device_context.h:79
SeedMakingDeviceContext::h_outputseeds
unsigned char * h_outputseeds
Definition: device_context.h:32
GbtsDeviceContext::d_node_index
int * d_node_index
Definition: device_context.h:108
GbtsDeviceContext::d_layer_geo
float * d_layer_geo
Definition: device_context.h:99
SeedMakingManagedDeviceContext
Definition: device_context.h:45
SeedMakingDeviceContext
Definition: device_context.h:17
GbtsDeviceContext::d_num_incoming_edges
unsigned int * d_num_incoming_edges
Definition: device_context.h:131
GbtsDeviceContext::d_edge_params
float * d_edge_params
Definition: device_context.h:129
GbtsDeviceContext::m_nBinPairs
int m_nBinPairs
Definition: device_context.h:90
SeedMakingDeviceContext::m_deviceId
int m_deviceId
Definition: device_context.h:23
SeedMakingDeviceContext::d_outputseeds
unsigned char * d_outputseeds
Definition: device_context.h:33
GbtsDeviceContext::m_nMaxEdges
unsigned int m_nMaxEdges
Definition: device_context.h:93
GbtsDeviceContext::d_sp_params
float * d_sp_params
Definition: device_context.h:97
SeedMakingManagedDeviceContext::m_deviceId
int m_deviceId
Definition: device_context.h:52
SeedMakingManagedDeviceContext::m_confirmedseeds
unsigned char * m_confirmedseeds
Definition: device_context.h:67
TrigInDetAccelEDM.h
GbtsDeviceContext::d_bin_pair_views
unsigned int * d_bin_pair_views
Definition: device_context.h:123
GbtsDeviceContext::m_nEdges
unsigned int m_nEdges
Definition: device_context.h:144