ATLAS Offline Software
SeedMakingWorkCuda.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TRIGINDETCUDA_SEEDMAKINGWORKCUDA_H
6 #define TRIGINDETCUDA_SEEDMAKINGWORKCUDA_H
7 
8 
9 #include "tbb/concurrent_vector.h"
10 #include "TrigAccelEvent/Work.h" //base class
11 #include "CommonStructures.h" //for WorkTimeStamp
12 
13 #include <cstdio> // for printf
14 #include <memory> // for shared_ptr
15 
18 
20 
21 public:
22  SeedMakingWorkCuda(unsigned int, SeedMakingDeviceContext*, std::shared_ptr<TrigAccel::OffloadBuffer>,
23  tbb::concurrent_vector<WorkTimeStamp>*);
25  std::shared_ptr<TrigAccel::OffloadBuffer> getOutput();
26  bool run();
27  unsigned int getId() const {
28  return m_workId;
29  }
30 
31 private:
32 
33  inline void checkError() const {
34  cudaError_t error = cudaGetLastError();
35  if(error != cudaSuccess) {
36  printf("CUDA error: %s\n", cudaGetErrorString(error));
37  exit(-1);
38  }
39  };
40 
41  unsigned int m_workId;
43  std::shared_ptr<TrigAccel::OffloadBuffer> m_input, m_output;
44  tbb::concurrent_vector<WorkTimeStamp>* m_timeLine;
45 
47 };
48 
50 
51 public:
52  SeedMakingWorkCudaManaged(unsigned int, SeedMakingManagedDeviceContext*, std::shared_ptr<TrigAccel::OffloadBuffer>,
53  tbb::concurrent_vector<WorkTimeStamp>*);
55  std::shared_ptr<TrigAccel::OffloadBuffer> getOutput();
56  bool run();
57  unsigned int getId() const {
58  return m_workId;
59  }
60 
61 private:
62 
63  inline void checkError() const {
64  cudaError_t error = cudaGetLastError();
65  if(error != cudaSuccess) {
66  printf("CUDA error: %s\n", cudaGetErrorString(error));
67  exit(-1);
68  }
69  };
70 
71  unsigned int m_workId;
73  std::shared_ptr<TrigAccel::OffloadBuffer> m_input, m_output;
74  tbb::concurrent_vector<WorkTimeStamp>* m_timeLine;
75 
77 };
78 
79 #endif
SeedMakingWorkCuda::getId
unsigned int getId() const
Definition: SeedMakingWorkCuda.h:27
CommonStructures.h
SeedMakingWorkCuda::~SeedMakingWorkCuda
~SeedMakingWorkCuda()
SeedMakingWorkCudaManaged::m_input
std::shared_ptr< TrigAccel::OffloadBuffer > m_input
Definition: SeedMakingWorkCuda.h:73
SeedMakingWorkCudaManaged::m_ptCoeff
float m_ptCoeff
Definition: SeedMakingWorkCuda.h:76
SeedMakingWorkCuda::m_context
SeedMakingDeviceContext * m_context
Definition: SeedMakingWorkCuda.h:42
SeedMakingWorkCuda::m_minPt2
float m_minPt2
Definition: SeedMakingWorkCuda.h:46
SeedMakingWorkCudaManaged::m_output
std::shared_ptr< TrigAccel::OffloadBuffer > m_output
Definition: SeedMakingWorkCuda.h:73
SeedMakingWorkCudaManaged::m_minPt2
float m_minPt2
Definition: SeedMakingWorkCuda.h:76
SeedMakingWorkCuda::m_workId
unsigned int m_workId
Definition: SeedMakingWorkCuda.h:39
SeedMakingWorkCudaManaged::m_workId
unsigned int m_workId
Definition: SeedMakingWorkCuda.h:69
SeedMakingWorkCudaManaged::m_timeLine
tbb::concurrent_vector< WorkTimeStamp > * m_timeLine
Definition: SeedMakingWorkCuda.h:74
SeedMakingWorkCuda
Definition: SeedMakingWorkCuda.h:19
SeedMakingWorkCuda::m_ptCoeff2
float m_ptCoeff2
Definition: SeedMakingWorkCuda.h:46
SeedMakingWorkCuda::m_timeLine
tbb::concurrent_vector< WorkTimeStamp > * m_timeLine
Definition: SeedMakingWorkCuda.h:44
SeedMakingWorkCudaManaged::SeedMakingWorkCudaManaged
SeedMakingWorkCudaManaged(unsigned int, SeedMakingManagedDeviceContext *, std::shared_ptr< TrigAccel::OffloadBuffer >, tbb::concurrent_vector< WorkTimeStamp > *)
SeedMakingWorkCuda::run
bool run()
SeedMakingWorkCuda::m_CovMS
float m_CovMS
Definition: SeedMakingWorkCuda.h:46
SeedMakingWorkCuda::m_output
std::shared_ptr< TrigAccel::OffloadBuffer > m_output
Definition: SeedMakingWorkCuda.h:43
SeedMakingWorkCuda::checkError
void checkError() const
Definition: SeedMakingWorkCuda.h:33
calibdata.exit
exit
Definition: calibdata.py:236
SeedMakingWorkCudaManaged::m_context
SeedMakingManagedDeviceContext * m_context
Definition: SeedMakingWorkCuda.h:72
SeedMakingWorkCudaManaged::run
bool run()
TrigAccel::Work
Definition: Work.h:14
SeedMakingWorkCuda::SeedMakingWorkCuda
SeedMakingWorkCuda(unsigned int, SeedMakingDeviceContext *, std::shared_ptr< TrigAccel::OffloadBuffer >, tbb::concurrent_vector< WorkTimeStamp > *)
SeedMakingWorkCudaManaged::m_maxD0
float m_maxD0
Definition: SeedMakingWorkCuda.h:76
SeedMakingWorkCudaManaged::m_ptCoeff2
float m_ptCoeff2
Definition: SeedMakingWorkCuda.h:76
SeedMakingWorkCudaManaged::m_CovMS
float m_CovMS
Definition: SeedMakingWorkCuda.h:76
SeedMakingWorkCuda::getOutput
std::shared_ptr< TrigAccel::OffloadBuffer > getOutput()
SeedMakingWorkCuda::m_maxD0
float m_maxD0
Definition: SeedMakingWorkCuda.h:46
SeedMakingManagedDeviceContext
Definition: device_context.h:45
SeedMakingDeviceContext
Definition: device_context.h:17
SeedMakingWorkCuda::m_input
std::shared_ptr< TrigAccel::OffloadBuffer > m_input
Definition: SeedMakingWorkCuda.h:43
SeedMakingWorkCudaManaged::~SeedMakingWorkCudaManaged
~SeedMakingWorkCudaManaged()
SeedMakingWorkCudaManaged::checkError
void checkError() const
Definition: SeedMakingWorkCuda.h:63
SeedMakingWorkCudaManaged::getOutput
std::shared_ptr< TrigAccel::OffloadBuffer > getOutput()
SeedMakingWorkCudaManaged
Definition: SeedMakingWorkCuda.h:49
SeedMakingWorkCudaManaged::getId
unsigned int getId() const
Definition: SeedMakingWorkCuda.h:57
error
Definition: IImpactPoint3dEstimator.h:70
SeedMakingWorkCuda::m_ptCoeff
float m_ptCoeff
Definition: SeedMakingWorkCuda.h:46
Work.h