Template Numerical Library version\ main:4904c12
Loading...
Searching...
No Matches
TNL::Algorithms::Segments::BiEllpackView< Device, Index, Organization, WarpSize > Class Template Reference

BiEllpackView is provides a non-owning encapsulation of meta-data stored in the TNL::Algorithms::Segments::BiEllpack segments. More...

#include <TNL/Algorithms/Segments/BiEllpackView.h>

Inheritance diagram for TNL::Algorithms::Segments::BiEllpackView< Device, Index, Organization, WarpSize >:
[legend]
Collaboration diagram for TNL::Algorithms::Segments::BiEllpackView< Device, Index, Organization, WarpSize >:
[legend]

Public Types

using ConstViewType = BiEllpackView< Device, std::add_const_t< Index >, Organization, WarpSize >
 Type of constant segments view.
template<typename Device_, typename Index_>
using ViewTemplate = BiEllpackView< Device_, Index_, Organization, WarpSize >
 Templated view type.
using ViewType = BiEllpackView
 Type of segments view.
Public Types inherited from TNL::Algorithms::Segments::BiEllpackBase< Device, Index, Algorithms::Segments::DefaultElementsOrganization< Device >::getOrganization(), Backend::getWarpSize() >
using ConstOffsetsView
 The type for representing the constant vector view with offsets of the BiEllpack groups.
using DeviceType
 The device where the segments are operating.
using IndexType
 The type used for indexing of segments elements.
using OffsetsView
 The type for representing the vector view with offsets of the BiEllpack groups.
using SegmentViewType
 Accessor type for one particular segment.

Public Member Functions

__cuda_callable__ BiEllpackView ()=default
 Default constructor with no parameters to create empty segments view.
__cuda_callable__ BiEllpackView (BiEllpackView &&) noexcept=default
 Move constructor.
__cuda_callable__ BiEllpackView (const BiEllpackView &)=default
 Copy constructor.
__cuda_callable__ BiEllpackView (Index size, Index storageSize, typename Base::OffsetsView segmentsPermutation, typename Base::OffsetsView groupPointers)
 Constructor that initializes segments based on all necessary data.
__cuda_callable__ void bind (BiEllpackView view)
 Method for rebinding (reinitialization) to another view.
__cuda_callable__ ConstViewType getConstView () const
 Returns a constant view for this instance of segments which can by used for example in lambda functions running in GPU kernels.
__cuda_callable__ ViewType getView ()
 Returns a view for this instance of segments which can by used for example in lambda functions running in GPU kernels.
void load (File &file)
 Method for loading the segments from a file in a binary form.
BiEllpackViewoperator= (BiEllpackView &&)=delete
 Move-assignment operator.
BiEllpackViewoperator= (const BiEllpackView &)=delete
 Copy-assignment operator.
void save (File &file) const
 Method for saving the segments to a file in a binary form.
Public Member Functions inherited from TNL::Algorithms::Segments::BiEllpackBase< Device, Index, Algorithms::Segments::DefaultElementsOrganization< Device >::getOrganization(), Backend::getWarpSize() >
__cuda_callable__ BiEllpackBase ()=default
 Default constructor with no parameters to create empty segments view.
void forAllElements (Function &&function) const
void forAllElementsIf (Condition condition, Function function) const
void forAllSegments (Function &&function) const
void forElements (IndexType begin, IndexType end, Function &&function) const
void forElementsIf (IndexType begin, IndexType end, Condition condition, Function function) const
void forSegments (IndexType begin, IndexType end, Function &&function) const
__cuda_callable__ IndexType getElementCount () const
 Returns the number of elements managed by all segments.
__cuda_callable__ IndexType getGlobalIndex (Index segmentIdx, Index localIdx) const
 Computes the global index of an element managed by the segments.
__cuda_callable__ OffsetsView getGroupPointersView ()
 Returns a view containing the pointers to the beginning of each segment.
__cuda_callable__ IndexType getSegmentCount () const
 Returns the number of segments.
__cuda_callable__ IndexType getSegmentsCount () const
 Returns the number of segments. Deprecated, use getSegmentCount().
__cuda_callable__ IndexType getSegmentSize (IndexType segmentIdx) const
 Returns the size of a particular segment denoted by segmentIdx.
__cuda_callable__ OffsetsView getSegmentsPermutationView ()
 Returns a view containing the permutation of segments.
__cuda_callable__ SegmentViewType getSegmentView (IndexType segmentIdx) const
 Returns a segment view (i.e., a segment accessor) for the specified segment index.
__cuda_callable__ IndexType getSize () const
 Returns the number of elements managed by all segments.
__cuda_callable__ IndexType getStorageSize () const
 Returns number of elements that needs to be allocated by a container connected to this segments.
__cuda_callable__ IndexType getVirtualSegments () const
BiEllpackBaseoperator= (const BiEllpackBase &)=delete
 Copy-assignment operator.
void printStructure (std::ostream &str) const
 Prints the structure of the segments to the specified output stream.

Additional Inherited Members

Static Public Member Functions inherited from TNL::Algorithms::Segments::BiEllpackBase< Device, Index, Algorithms::Segments::DefaultElementsOrganization< Device >::getOrganization(), Backend::getWarpSize() >
static constexpr int getLogWarpSize ()
 Returns the log2 of the warp size used for the segments.
static constexpr ElementsOrganization getOrganization ()
 Returns the data layout for the biellpack format (it is always row-major order).
static std::string getSegmentsType ()
 Returns string with the segments type.
static std::string getSerializationType ()
 Returns string with the serialization type.
static constexpr int getWarpSize ()
 Returns the warp size used for the segments.
static constexpr bool havePadding ()
 This function denotes that the biellpack format uses padding elements.
Protected Member Functions inherited from TNL::Algorithms::Segments::BiEllpackBase< Device, Index, Algorithms::Segments::DefaultElementsOrganization< Device >::getOrganization(), Backend::getWarpSize() >
__cuda_callable__ void bind (IndexType size, IndexType storageSize, OffsetsView segmentsPermutation, OffsetsView groupPointers)
 Re-initializes the internal attributes of the base class.
Protected Attributes inherited from TNL::Algorithms::Segments::BiEllpackBase< Device, Index, Algorithms::Segments::DefaultElementsOrganization< Device >::getOrganization(), Backend::getWarpSize() >
OffsetsView groupPointers
OffsetsView segmentsPermutation
IndexType size
IndexType storageSize

Detailed Description

template<typename Device, typename Index, ElementsOrganization Organization = Algorithms::Segments::DefaultElementsOrganization< Device >::getOrganization(), int WarpSize = Backend::getWarpSize()>
class TNL::Algorithms::Segments::BiEllpackView< Device, Index, Organization, WarpSize >

BiEllpackView is provides a non-owning encapsulation of meta-data stored in the TNL::Algorithms::Segments::BiEllpack segments.

Template Parameters
Deviceis type of device where the segments will be operating.
Indexis type for indexing of the elements managed by the segments.
Organizationis the organization of the elements in the segments—either row-major or column-major order.
WarpSizeis the warp size used for the segments.

Member Typedef Documentation

◆ ViewTemplate

template<typename Device, typename Index, ElementsOrganization Organization = Algorithms::Segments::DefaultElementsOrganization< Device >::getOrganization(), int WarpSize = Backend::getWarpSize()>
template<typename Device_, typename Index_>
using TNL::Algorithms::Segments::BiEllpackView< Device, Index, Organization, WarpSize >::ViewTemplate = BiEllpackView< Device_, Index_, Organization, WarpSize >

Templated view type.

Template Parameters
Device_is alternative device type for the view.
Index_is alternative index type for the view.

Member Function Documentation

◆ load()

template<typename Device, typename Index, ElementsOrganization Organization = Algorithms::Segments::DefaultElementsOrganization< Device >::getOrganization(), int WarpSize = Backend::getWarpSize()>
void TNL::Algorithms::Segments::BiEllpackView< Device, Index, Organization, WarpSize >::load ( File & file)

Method for loading the segments from a file in a binary form.

Parameters
fileis the source file.

◆ save()

template<typename Device, typename Index, ElementsOrganization Organization = Algorithms::Segments::DefaultElementsOrganization< Device >::getOrganization(), int WarpSize = Backend::getWarpSize()>
void TNL::Algorithms::Segments::BiEllpackView< Device, Index, Organization, WarpSize >::save ( File & file) const

Method for saving the segments to a file in a binary form.

Parameters
fileis the target file.

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