Template Numerical Library version\ main:88903d64
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
TNL::Algorithms::Segments::ChunkedEllpack< Device, Index, IndexAllocator, Organization > Class Template Reference
Inheritance diagram for TNL::Algorithms::Segments::ChunkedEllpack< Device, Index, IndexAllocator, Organization >:
Inheritance graph
[legend]
Collaboration diagram for TNL::Algorithms::Segments::ChunkedEllpack< Device, Index, IndexAllocator, Organization >:
Collaboration graph
[legend]

Public Types

using ConstViewType = typename ViewType::ConstViewType
 
using OffsetsContainer = Containers::Vector< Index, Device, typename Base::IndexType, IndexAllocator >
 
using SliceInfoAllocator = typename Allocators::Default< Device >::template Allocator< typename Base::SliceInfoType >
 
using SliceInfoContainer
 
template<typename Device_ , typename Index_ >
using ViewTemplate = ChunkedEllpackView< Device_, Index_, Organization >
 
using ViewType = ChunkedEllpackView< Device, Index, Organization >
 
- Public Types inherited from TNL::Algorithms::Segments::ChunkedEllpackBase< Device, Index, Organization >
using ConstOffsetsView = typename OffsetsView::ConstViewType
 
using ConstSliceInfoContainerView = typename SliceInfoContainerView::ConstViewType
 
using DeviceType = Device
 
using IndexType = std::remove_const_t< Index >
 
using OffsetsView = Containers::VectorView< Index, DeviceType, IndexType >
 
using SegmentViewType = ChunkedEllpackSegmentView< IndexType, Organization >
 
using SliceInfoContainerView
 
using SliceInfoType = detail::ChunkedEllpackSliceInfo< IndexType >
 
template<typename Device_ , typename Index_ >
using ViewTemplate = ChunkedEllpackBase< Device_, Index_, Organization >
 

Public Member Functions

 ChunkedEllpack (ChunkedEllpack &&segments) noexcept=default
 
 ChunkedEllpack (const ChunkedEllpack &segments)
 
template<typename SizesContainer >
 ChunkedEllpack (const SizesContainer &segmentsSizes)
 
template<typename ListIndex >
 ChunkedEllpack (const std::initializer_list< ListIndex > &segmentsSizes)
 
ConstViewType getConstView () const
 
ViewType getView ()
 
void load (File &file)
 
ChunkedEllpackoperator= (ChunkedEllpack &&) noexcept(false)
 Move-assignment operator.
 
ChunkedEllpackoperator= (const ChunkedEllpack &segments)
 Copy-assignment operator (makes a deep copy).
 
template<typename Device_ , typename Index_ , typename IndexAllocator_ , ElementsOrganization Organization_>
ChunkedEllpackoperator= (const ChunkedEllpack< Device_, Index_, IndexAllocator_, Organization_ > &segments)
 
template<typename Device_ , typename Index_ , typename IndexAllocator_ , ElementsOrganization Organization_>
ChunkedEllpack< Device, Index, IndexAllocator, Organization > & operator= (const ChunkedEllpack< Device_, Index_, IndexAllocator_, Organization_ > &segments)
 
void reset ()
 
template<typename SegmentsSizes >
void resolveSliceSizes (SegmentsSizes &segmentsSizes)
 
void save (File &file) const
 
template<typename SizesContainer >
void setSegmentsSizes (const SizesContainer &segmentsSizes)
 
- Public Member Functions inherited from TNL::Algorithms::Segments::ChunkedEllpackBase< Device, Index, Organization >
__cuda_callable__ ChunkedEllpackBase (ChunkedEllpackBase &&) noexcept=default
 
__cuda_callable__ ChunkedEllpackBase (const ChunkedEllpackBase &)=default
 
__cuda_callable__ ChunkedEllpackBase (IndexType size, IndexType storageSize, IndexType numberOfSlices, IndexType chunksInSlice, IndexType desiredChunkSize, OffsetsView segmentToChunkMapping, OffsetsView segmentToSliceMapping, OffsetsView chunksToSegmentsMapping, OffsetsView segmentPointers, SliceInfoContainerView slices)
 
template<typename Function >
void forAllElements (Function &&function) const
 
template<typename Function >
void forAllSegments (Function &&function) const
 
template<typename Function >
void forElements (IndexType begin, IndexType end, Function &&function) const
 
template<typename Function >
void forSegments (IndexType begin, IndexType end, Function &&function) const
 
__cuda_callable__ IndexType getChunksInSlice () const
 
__cuda_callable__ OffsetsView getChunksToSegmentsMappingView ()
 
__cuda_callable__ ConstOffsetsView getChunksToSegmentsMappingView () const
 
__cuda_callable__ IndexType getDesiredChunkSize () const
 
__cuda_callable__ IndexType getGlobalIndex (IndexType segmentIdx, IndexType localIdx) const
 
__cuda_callable__ IndexType getNumberOfSlices () const
 
__cuda_callable__ OffsetsView getSegmentPointersView ()
 
__cuda_callable__ ConstOffsetsView getSegmentPointersView () const
 
__cuda_callable__ IndexType getSegmentsCount () const
 
__cuda_callable__ IndexType getSegmentSize (IndexType segmentIdx) const
 
__cuda_callable__ OffsetsView getSegmentToChunkMappingView ()
 
__cuda_callable__ ConstOffsetsView getSegmentToChunkMappingView () const
 
__cuda_callable__ OffsetsView getSegmentToSliceMappingView ()
 
__cuda_callable__ ConstOffsetsView getSegmentToSliceMappingView () const
 
__cuda_callable__ SegmentViewType getSegmentView (IndexType segmentIdx) const
 
__cuda_callable__ IndexType getSize () const
 
__cuda_callable__ SliceInfoContainerView getSlicesView ()
 
__cuda_callable__ ConstSliceInfoContainerView getSlicesView () const
 
__cuda_callable__ IndexType getStorageSize () const
 
ChunkedEllpackBaseoperator= (ChunkedEllpackBase &&)=delete
 
ChunkedEllpackBaseoperator= (const ChunkedEllpackBase &)=delete
 
void printStructure (std::ostream &str) const
 

Protected Member Functions

template<typename SizesContainer >
void resolveSliceSizes (SizesContainer &segmentsSizes)
 
template<typename SizesContainer >
bool setSlice (SizesContainer &segmentsSizes, Index sliceIndex, Index &elementsToAllocation)
 
- Protected Member Functions inherited from TNL::Algorithms::Segments::ChunkedEllpackBase< Device, Index, Organization >
__cuda_callable__ void bind (IndexType size, IndexType storageSize, IndexType numberOfSlices, IndexType chunksInSlice, IndexType desiredChunkSize, OffsetsView segmentToChunkMapping, OffsetsView segmentToSliceMapping, OffsetsView chunksToSegmentsMapping, OffsetsView segmentPointers, SliceInfoContainerView slices)
 Re-initializes the internal attributes of the base class.
 

Protected Attributes

OffsetsContainer chunksToSegmentsMapping
 
OffsetsContainer segmentPointers
 Keeps index of the first segment index.
 
OffsetsContainer segmentToChunkMapping
 For each segment, this keeps index of the first chunk within a slice.
 
OffsetsContainer segmentToSliceMapping
 For each segment, this keeps index of the slice which contains the segment.
 
SliceInfoContainer slices
 
- Protected Attributes inherited from TNL::Algorithms::Segments::ChunkedEllpackBase< Device, Index, Organization >
IndexType chunksInSlice = 256
 
OffsetsView chunksToSegmentsMapping
 
IndexType desiredChunkSize = 16
 
IndexType numberOfSlices = 0
 
OffsetsView segmentPointers
 Keeps index of the first segment index.
 
OffsetsView segmentToChunkMapping
 For each segment, this keeps index of the first chunk within a slice.
 
OffsetsView segmentToSliceMapping
 For each segment, this keeps index of the slice which contains the segment.
 
IndexType size = 0
 
SliceInfoContainerView slices
 
IndexType storageSize = 0
 

Additional Inherited Members

- Static Public Member Functions inherited from TNL::Algorithms::Segments::ChunkedEllpackBase< Device, Index, Organization >
static constexpr ElementsOrganization getOrganization ()
 
static std::string getSegmentsType ()
 
static std::string getSerializationType ()
 
static constexpr bool havePadding ()
 

Member Typedef Documentation

◆ SliceInfoContainer

template<typename Device , typename Index , typename IndexAllocator = typename Allocators::Default< Device >::template Allocator< Index >, ElementsOrganization Organization = Algorithms::Segments::DefaultElementsOrganization< Device >::getOrganization()>
using TNL::Algorithms::Segments::ChunkedEllpack< Device, Index, IndexAllocator, Organization >::SliceInfoContainer
Initial value:
Device,
Index,
SliceInfoAllocator >
Subrange< Index > splitRange(Index rangeBegin, Index rangeEnd, int rank, int num_subintervals)
A helper function which splits a one-dimensional range.
Definition BlockPartitioning.h:27

The documentation for this class was generated from the following files: