SiPixelDigisCUDA
Class used to contain pixel data (coordinates, ADC values) using the SoA approach, intended to be used by CUDA code.
The actual data is stored in an instance of
SiPixelDigisCUDASOAView (m_view attribute),
accessed via the view() method.
Header on github.
Source on github.
UML diagram
classDiagram
class SiPixelDigisCUDA{
-SiPixelDigisCUDASOAView m_view
-cms::cuda::device::unique_ptr<uint16_t[]> m_store
+view() SiPixelDigisCUDASOAView
}
class SiPixelDigisCUDASOAView
SiPixelDigisCUDA -- "1" SiPixelDigisCUDASOAView : m_view
Attributes
m_store
Todo
This attribute is a pointer to GPU memory. What does it store?
Attribute of type cms::cuda::device::unique_ptr<StoreType[]>
(from HeterogeneousCore)
, where StoreType is uint16_t. This is a pointer to an array
stored on GPU memory.
It is initialized by default in the SiPixelDigisCUDA constructor, and
is then passed on as a parameter to initialize m_view.
See the Constructor below for more information.
m_view
An instance of SiPixelDigisCUDASOAView. Stores all the Pixel Digi data as SoA.
Methods
Constructor
Gets a number of maxFedWords (number of pixels??) and a CUDA stream
as inputs.
Initializes the m_store and m_view attributes.
m_store is initialized using the cms::cuda::make_device_unique function
(found in HeterogeneousCore),
by giving it the maxFedWords multiplied by the kMAX constant
found in the StorageLocation enumerator as input.
Todo
What is the meaning of the number produced by the multiplication above?
i.e. kMAX * maxFedWords
Probably the memory size allocated on the device for storing
the SiPixelDigisCUDASOAView instance?
view
Accesses the data stored in the m_view attribute, which are
stored with the SoA approach.