ATLAS Offline Software
SeedMakingWorkCuda_ITk.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_ITK_H
6 #define TRIGINDETCUDA_SEEDMAKINGWORKCUDA_ITK_H
7 
8 
9 
10 #include "tbb/concurrent_vector.h"
11 
12 #include "TrigAccelEvent/Work.h" //base class
13 
14 #include <cstdio> // for printf
15 #include <memory> // for shared_ptr
16 
19 
20 
22 
23 public:
24  SeedMakingWorkCudaITk(unsigned int, SeedMakingDeviceContext*, std::shared_ptr<TrigAccel::OffloadBuffer>,
25  tbb::concurrent_vector<WorkTimeStamp>*);
27  std::shared_ptr<TrigAccel::OffloadBuffer> getOutput();
28  bool run();
29  unsigned int getId() const {
30  return m_workId;
31  }
32 
33 private:
34 
35  inline void checkError() const {
36  cudaError_t error = cudaGetLastError();
37  if(error != cudaSuccess) {
38  printf("CUDA error: %s\n", cudaGetErrorString(error));
39  exit(-1);
40  }
41  };
42 
43  unsigned int m_workId;
45  std::shared_ptr<TrigAccel::OffloadBuffer> m_input, m_output;
46  tbb::concurrent_vector<WorkTimeStamp>* m_timeLine;
47 
49 };
50 
52 
53 public:
54  SeedMakingWorkCudaManagedITk(unsigned int, SeedMakingManagedDeviceContext*, std::shared_ptr<TrigAccel::OffloadBuffer>,
55  tbb::concurrent_vector<WorkTimeStamp>*);
57  std::shared_ptr<TrigAccel::OffloadBuffer> getOutput();
58  bool run();
59  unsigned int getId() const {
60  return m_workId;
61  }
62 
63 private:
64 
65  inline void checkError() const {
66  cudaError_t error = cudaGetLastError();
67  if(error != cudaSuccess) {
68  printf("CUDA error: %s\n", cudaGetErrorString(error));
69  exit(-1);
70  }
71  };
72 
73  unsigned int m_workId;
75  std::shared_ptr<TrigAccel::OffloadBuffer> m_input, m_output;
76  tbb::concurrent_vector<WorkTimeStamp>* m_timeLine;
77 
79 };
80 
81 #endif
SeedMakingWorkCudaManagedITk::m_ptCoeff2
float m_ptCoeff2
Definition: SeedMakingWorkCuda_ITk.h:78
SeedMakingWorkCudaManagedITk::m_ptCoeff
float m_ptCoeff
Definition: SeedMakingWorkCuda_ITk.h:78
SeedMakingWorkCudaITk
Definition: SeedMakingWorkCuda_ITk.h:21
SeedMakingWorkCudaITk::m_input
std::shared_ptr< TrigAccel::OffloadBuffer > m_input
Definition: SeedMakingWorkCuda_ITk.h:45
SeedMakingWorkCudaITk::m_workId
unsigned int m_workId
Definition: SeedMakingWorkCuda_ITk.h:41
SeedMakingWorkCudaManagedITk::m_maxD0
float m_maxD0
Definition: SeedMakingWorkCuda_ITk.h:78
SeedMakingWorkCudaManagedITk::m_context
SeedMakingManagedDeviceContext * m_context
Definition: SeedMakingWorkCuda_ITk.h:74
SeedMakingWorkCudaITk::m_ptCoeff
float m_ptCoeff
Definition: SeedMakingWorkCuda_ITk.h:48
SeedMakingWorkCudaITk::getId
unsigned int getId() const
Definition: SeedMakingWorkCuda_ITk.h:29
SeedMakingWorkCudaITk::checkError
void checkError() const
Definition: SeedMakingWorkCuda_ITk.h:35
SeedMakingWorkCudaITk::m_minPt2
float m_minPt2
Definition: SeedMakingWorkCuda_ITk.h:48
SeedMakingWorkCudaITk::m_output
std::shared_ptr< TrigAccel::OffloadBuffer > m_output
Definition: SeedMakingWorkCuda_ITk.h:45
SeedMakingWorkCudaITk::~SeedMakingWorkCudaITk
~SeedMakingWorkCudaITk()
SeedMakingWorkCudaManagedITk::m_CovMS
float m_CovMS
Definition: SeedMakingWorkCuda_ITk.h:78
SeedMakingWorkCudaManagedITk::getOutput
std::shared_ptr< TrigAccel::OffloadBuffer > getOutput()
SeedMakingWorkCudaManagedITk::m_minPt2
float m_minPt2
Definition: SeedMakingWorkCuda_ITk.h:78
SeedMakingWorkCudaManagedITk::checkError
void checkError() const
Definition: SeedMakingWorkCuda_ITk.h:65
SeedMakingWorkCudaManagedITk::SeedMakingWorkCudaManagedITk
SeedMakingWorkCudaManagedITk(unsigned int, SeedMakingManagedDeviceContext *, std::shared_ptr< TrigAccel::OffloadBuffer >, tbb::concurrent_vector< WorkTimeStamp > *)
SeedMakingWorkCudaITk::m_maxD0
float m_maxD0
Definition: SeedMakingWorkCuda_ITk.h:48
SeedMakingWorkCudaManagedITk::m_timeLine
tbb::concurrent_vector< WorkTimeStamp > * m_timeLine
Definition: SeedMakingWorkCuda_ITk.h:76
calibdata.exit
exit
Definition: calibdata.py:236
SeedMakingWorkCudaManagedITk::m_workId
unsigned int m_workId
Definition: SeedMakingWorkCuda_ITk.h:71
SeedMakingWorkCudaManagedITk::run
bool run()
SeedMakingWorkCudaManagedITk::~SeedMakingWorkCudaManagedITk
~SeedMakingWorkCudaManagedITk()
SeedMakingWorkCudaManagedITk::m_output
std::shared_ptr< TrigAccel::OffloadBuffer > m_output
Definition: SeedMakingWorkCuda_ITk.h:75
TrigAccel::Work
Definition: Work.h:14
SeedMakingWorkCudaITk::m_CovMS
float m_CovMS
Definition: SeedMakingWorkCuda_ITk.h:48
SeedMakingWorkCudaManagedITk::m_input
std::shared_ptr< TrigAccel::OffloadBuffer > m_input
Definition: SeedMakingWorkCuda_ITk.h:75
SeedMakingManagedDeviceContext
Definition: device_context.h:45
SeedMakingDeviceContext
Definition: device_context.h:17
SeedMakingWorkCudaManagedITk
Definition: SeedMakingWorkCuda_ITk.h:51
SeedMakingWorkCudaITk::SeedMakingWorkCudaITk
SeedMakingWorkCudaITk(unsigned int, SeedMakingDeviceContext *, std::shared_ptr< TrigAccel::OffloadBuffer >, tbb::concurrent_vector< WorkTimeStamp > *)
SeedMakingWorkCudaITk::m_timeLine
tbb::concurrent_vector< WorkTimeStamp > * m_timeLine
Definition: SeedMakingWorkCuda_ITk.h:46
SeedMakingWorkCudaITk::m_context
SeedMakingDeviceContext * m_context
Definition: SeedMakingWorkCuda_ITk.h:44
SeedMakingWorkCudaITk::m_ptCoeff2
float m_ptCoeff2
Definition: SeedMakingWorkCuda_ITk.h:48
error
Definition: IImpactPoint3dEstimator.h:70
SeedMakingWorkCudaManagedITk::getId
unsigned int getId() const
Definition: SeedMakingWorkCuda_ITk.h:59
SeedMakingWorkCudaITk::getOutput
std::shared_ptr< TrigAccel::OffloadBuffer > getOutput()
Work.h
SeedMakingWorkCudaITk::run
bool run()