forked from cms-sw/cmssw
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathClusterSLOnGPU.h
42 lines (31 loc) · 1.45 KB
/
ClusterSLOnGPU.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#ifndef SimTracker_TrackerHitAssociation_plugins_ClusterSLOnGPU_h
#define SimTracker_TrackerHitAssociation_plugins_ClusterSLOnGPU_h
#include <cuda_runtime.h>
#include <cuda/api_wrappers.h>
#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h"
#include "RecoLocalTracker/SiPixelClusterizer/plugins/siPixelRawToClusterHeterogeneousProduct.h"
#include "RecoLocalTracker/SiPixelRecHits/plugins/siPixelRecHitsHeterogeneousProduct.h"
#include "trackerHitAssociationHeterogeneousProduct.h"
namespace clusterSLOnGPU {
using ClusterSLGPU = trackerHitAssociationHeterogeneousProduct::ClusterSLGPU;
using GPUProduct = trackerHitAssociationHeterogeneousProduct::GPUProduct;
using DigisOnGPU = siPixelRawToClusterHeterogeneousProduct::GPUProduct;
using HitsOnGPU = siPixelRecHitsHeterogeneousProduct::HitsOnGPU;
using HitsOnCPU = siPixelRecHitsHeterogeneousProduct::HitsOnCPU;
using Clus2TP = ClusterSLGPU::Clus2TP;
class Kernel {
public:
Kernel(cuda::stream_t<>& stream, bool dump);
~Kernel() {deAlloc();}
void algo(DigisOnGPU const & dd, uint32_t ndigis, HitsOnCPU const & hh, uint32_t nhits, uint32_t n, cuda::stream_t<>& stream);
GPUProduct getProduct() { return GPUProduct{slgpu.me_d};}
private:
void alloc(cuda::stream_t<>& stream);
void deAlloc();
void zero(cudaStream_t stream);
public:
ClusterSLGPU slgpu;
bool doDump;
};
}
#endif // SimTracker_TrackerHitAssociation_plugins_ClusterSLOnGPU_h