CMS 3D CMS Logo

TrackSoAHeterogeneousDevice.h
Go to the documentation of this file.
1 #ifndef CUDADataFormats_Track_TrackHeterogeneousDevice_H
2 #define CUDADataFormats_Track_TrackHeterogeneousDevice_H
3 
4 #include <cstdint>
5 
8 
10 
11 // TODO: The class is created via inheritance of the PortableDeviceCollection.
12 // This is generally discouraged, and should be done via composition.
13 // See: https://github.com/cms-sw/cmssw/pull/40465#discussion_r1067364306
14 template <typename TrackerTraits>
15 class TrackSoAHeterogeneousDevice : public cms::cuda::PortableDeviceCollection<TrackLayout<TrackerTraits>> {
16 public:
21 
22  TrackSoAHeterogeneousDevice() = default; // cms::cuda::Product needs this
23 
24  // Constructor which specifies the SoA size
25  explicit TrackSoAHeterogeneousDevice(cudaStream_t stream)
26  : cms::cuda::PortableDeviceCollection<TrackLayout<TrackerTraits>>(TrackerTraits::maxNumberOfTuples, stream) {}
27 };
28 
29 namespace pixelTrack {
30 
33 
34 } // namespace pixelTrack
35 
36 #endif // CUDADataFormats_Track_TrackHeterogeneousT_H
typename TrackSoA< TrackerTraits >::template TrackSoALayout<> TrackLayout
uint32_t T const *__restrict__ uint32_t const *__restrict__ int32_t int Histo::index_type cudaStream_t stream
TrackSoAHeterogeneousDevice(cudaStream_t stream)
Namespace of DDCMS conversion namespace.