CMS 3D CMS Logo

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