Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
cudf::mutable_column_device_view_core Class Reference

A mutable, non-owning view of device data as a column of elements that is trivially copyable and usable in CUDA device code and offline-compiled code (i.e. NVRTC). More...

Inheritance diagram for cudf::mutable_column_device_view_core:
cudf::detail::column_device_view_base cudf::mutable_column_device_view

Public Member Functions

 mutable_column_device_view_core (mutable_column_device_view_core const &)=default
 Copy constructor.
 
 mutable_column_device_view_core (mutable_column_device_view_core &&)=default
 Move constructor.
 
mutable_column_device_view_coreoperator= (mutable_column_device_view_core const &)=default
 Copy assignment operator. More...
 
mutable_column_device_view_coreoperator= (mutable_column_device_view_core &&)=default
 Move assignment operator. More...
 
template<typename T = void, CUDF_ENABLE_IF(cuda::std::is_same_v< T, void > or is_rep_layout_compatible< T >()) >
CUDF_HOST_DEVICE T * head () const noexcept
 Returns pointer to the base device memory allocation casted to the specified type. More...
 
template<typename T , CUDF_ENABLE_IF(is_rep_layout_compatible< T >()) >
CUDF_HOST_DEVICE T * data () const noexcept
 Returns the underlying data casted to the specified type, plus the offset. More...
 
template<typename T , CUDF_ENABLE_IF(is_rep_layout_compatible< T >()) >
T & element (size_type element_index) const noexcept
 Returns reference to element at the specified index. More...
 
template<typename T , CUDF_ENABLE_IF(is_rep_layout_compatible< T >()) >
void assign (size_type element_index, T value) const noexcept
 Assigns value to the element at element_index More...
 
template<typename T , CUDF_ENABLE_IF(is_fixed_point< T >()) >
void assign (size_type element_index, T value) const noexcept
 Assigns value to the element at element_index. More...
 
CUDF_HOST_DEVICE bitmask_typenull_mask () const noexcept
 Returns raw pointer to the underlying bitmask allocation. More...
 
mutable_column_device_view_core child (size_type child_index) const noexcept
 Returns the specified child. More...
 
void set_mask_word (size_type word_index, bitmask_type new_word) const noexcept
 Updates the specified bitmask word in the null_mask() with a new word. More...
 
- Public Member Functions inherited from cudf::detail::column_device_view_base
 column_device_view_base (column_device_view_base const &)=default
 Copy constructor.
 
 column_device_view_base (column_device_view_base &&)=default
 Move constructor.
 
column_device_view_baseoperator= (column_device_view_base const &)=default
 Copy assignment operator. More...
 
column_device_view_baseoperator= (column_device_view_base &&)=default
 Move assignment operator. More...
 
template<typename T = void, CUDF_ENABLE_IF(cuda::std::is_same_v< T, void > or is_rep_layout_compatible< T >()) >
CUDF_HOST_DEVICE T const * head () const noexcept
 Returns pointer to the base device memory allocation casted to the specified type. More...
 
template<typename T , CUDF_ENABLE_IF(is_rep_layout_compatible< T >()) >
CUDF_HOST_DEVICE T const * data () const noexcept
 Returns the underlying data casted to the specified type, plus the offset. More...
 
CUDF_HOST_DEVICE size_type size () const noexcept
 Returns the number of elements in the column. More...
 
CUDF_HOST_DEVICE data_type type () const noexcept
 Returns the element type. More...
 
CUDF_HOST_DEVICE bool nullable () const noexcept
 Indicates whether the column can contain null elements, i.e., if it has an allocated bitmask. More...
 
CUDF_HOST_DEVICE bitmask_type const * null_mask () const noexcept
 Returns raw pointer to the underlying bitmask allocation. More...
 
CUDF_HOST_DEVICE size_type offset () const noexcept
 Returns the index of the first element relative to the base memory allocation, i.e., what is returned from head<T>(). More...
 
bool is_valid (size_type element_index) const noexcept
 Returns whether the specified element holds a valid value (i.e., not null). More...
 
bool is_valid_nocheck (size_type element_index) const noexcept
 Returns whether the specified element holds a valid value (i.e., not null) More...
 
bool is_null (size_type element_index) const noexcept
 Returns whether the specified element is null. More...
 
bool is_null_nocheck (size_type element_index) const noexcept
 Returns whether the specified element is null. More...
 
bitmask_type get_mask_word (size_type word_index) const noexcept
 Returns the specified bitmask word from the null_mask(). More...
 

Protected Member Functions

CUDF_HOST_DEVICE mutable_column_device_view_core (data_type type, size_type size, void const *data, bitmask_type const *null_mask, size_type offset, mutable_column_device_view_core *children, size_type num_children)
 Creates an instance of this class using pre-existing device memory pointers to data, nullmask, and offset. More...
 
- Protected Member Functions inherited from cudf::detail::column_device_view_base
CUDF_HOST_DEVICE column_device_view_base (data_type type, size_type size, void const *data, bitmask_type const *null_mask, size_type offset)
 Constructs a column with the specified type, size, data, nullmask and offset. More...
 

Protected Attributes

mutable_column_device_view_cored_children {}
 
size_type _num_children {}
 The number of child columns.
 
- Protected Attributes inherited from cudf::detail::column_device_view_base
data_type _type {type_id::EMPTY}
 Element type.
 
cudf::size_type _size {}
 Number of elements.
 
void const * _data {}
 Pointer to device memory containing elements.
 
bitmask_type const * _null_mask {}
 
size_type _offset {}
 

Additional Inherited Members

- Static Public Attributes inherited from cudf::detail::column_device_view_base
static constexpr size_type offsets_column_index {0}
 Child index of the offsets column.
 

Detailed Description

A mutable, non-owning view of device data as a column of elements that is trivially copyable and usable in CUDA device code and offline-compiled code (i.e. NVRTC).

Definition at line 528 of file column_device_view_base.cuh.

Constructor & Destructor Documentation

◆ mutable_column_device_view_core()

CUDF_HOST_DEVICE cudf::mutable_column_device_view_core::mutable_column_device_view_core ( data_type  type,
size_type  size,
void const *  data,
bitmask_type const *  null_mask,
size_type  offset,
mutable_column_device_view_core children,
size_type  num_children 
)
inlineprotected

Creates an instance of this class using pre-existing device memory pointers to data, nullmask, and offset.

Parameters
typeThe type of the column
sizeThe number of elements in the column
dataPointer to the device memory containing the data
null_maskPointer to the device memory containing the null bitmask
offsetThe index of the first element in the column
childrenPointer to the device memory containing child data
num_childrenThe number of child columns

Definition at line 733 of file column_device_view_base.cuh.

Member Function Documentation

◆ assign() [1/2]

template<typename T , CUDF_ENABLE_IF(is_rep_layout_compatible< T >()) >
void cudf::mutable_column_device_view_core::assign ( size_type  element_index,
value 
) const
inlinenoexcept

Assigns value to the element at element_index

Template Parameters
TThe element type
Parameters
element_indexPosition of the desired element
valueThe value to assign

Definition at line 618 of file column_device_view_base.cuh.

◆ assign() [2/2]

template<typename T , CUDF_ENABLE_IF(is_fixed_point< T >()) >
void cudf::mutable_column_device_view_core::assign ( size_type  element_index,
value 
) const
inlinenoexcept

Assigns value to the element at element_index.

Warning
Expects that value has been scaled to the column's scale
Template Parameters
TThe element type
Parameters
element_indexPosition of the desired element
valueThe value to assign

Definition at line 632 of file column_device_view_base.cuh.

◆ child()

mutable_column_device_view_core cudf::mutable_column_device_view_core::child ( size_type  child_index) const
inlinenoexcept

Returns the specified child.

Parameters
child_indexThe index of the desired child
Returns
The requested child column_view

Definition at line 660 of file column_device_view_base.cuh.

◆ data()

template<typename T , CUDF_ENABLE_IF(is_rep_layout_compatible< T >()) >
CUDF_HOST_DEVICE T* cudf::mutable_column_device_view_core::data ( ) const
inlinenoexcept

Returns the underlying data casted to the specified type, plus the offset.

This function does not participate in overload resolution if is_rep_layout_compatible<T> is false.

Note
If offset() == 0, then head<T>() == data<T>()
Template Parameters
TThe type to cast to
Returns
Typed pointer to underlying data, including the offset

Definition at line 585 of file column_device_view_base.cuh.

◆ element()

template<typename T , CUDF_ENABLE_IF(is_rep_layout_compatible< T >()) >
T& cudf::mutable_column_device_view_core::element ( size_type  element_index) const
inlinenoexcept

Returns reference to element at the specified index.

This function accounts for the offset.

This function does not participate in overload resolution if is_rep_layout_compatible<T> is false. Specializations of this function may exist for types T where is_rep_layout_compatible<T> is false.

Template Parameters
TThe element type
Parameters
element_indexPosition of the desired element
Returns
Reference to the element at the specified index

Definition at line 605 of file column_device_view_base.cuh.

◆ head()

template<typename T = void, CUDF_ENABLE_IF(cuda::std::is_same_v< T, void > or is_rep_layout_compatible< T >()) >
CUDF_HOST_DEVICE T* cudf::mutable_column_device_view_core::head ( ) const
inlinenoexcept

Returns pointer to the base device memory allocation casted to the specified type.

This function will only participate in overload resolution if is_rep_layout_compatible<T>() or std::is_same_v<T,void> are true.

Note
If offset() == 0, then head<T>() == data<T>()
It should be rare to need to access the head<T>() allocation of a column, and instead, accessing the elements should be done via data<T>().
Template Parameters
Thetype to cast to
Returns
Typed pointer to underlying data

Definition at line 567 of file column_device_view_base.cuh.

◆ null_mask()

CUDF_HOST_DEVICE bitmask_type* cudf::mutable_column_device_view_core::null_mask ( ) const
inlinenoexcept

Returns raw pointer to the underlying bitmask allocation.

Note
This function does not account for the offset().
If null_count() == 0, this may return nullptr.
Returns
Raw pointer to the underlying bitmask allocation

Definition at line 648 of file column_device_view_base.cuh.

◆ operator=() [1/2]

mutable_column_device_view_core& cudf::mutable_column_device_view_core::operator= ( mutable_column_device_view_core &&  )
default

Move assignment operator.

Returns
Reference to this object (after transferring ownership)

◆ operator=() [2/2]

mutable_column_device_view_core& cudf::mutable_column_device_view_core::operator= ( mutable_column_device_view_core const &  )
default

Copy assignment operator.

Returns
Reference to this object

◆ set_mask_word()

void cudf::mutable_column_device_view_core::set_mask_word ( size_type  word_index,
bitmask_type  new_word 
) const
inlinenoexcept

Updates the specified bitmask word in the null_mask() with a new word.

Note
It is undefined behavior to call this function if nullable() == false.
Parameters
word_indexThe index of the word to update
new_wordThe new bitmask word

Definition at line 715 of file column_device_view_base.cuh.

Member Data Documentation

◆ d_children

mutable_column_device_view_core* cudf::mutable_column_device_view_core::d_children {}
protected

Array of raw_mutable_column_device_view objects in device memory. Based on element type, children may contain additional data

Definition at line 746 of file column_device_view_base.cuh.


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