公有成员函数 | 保护成员函数 | 友元 | 所有成员列表
cudf::mutable_column_view 类参考
»

一个非拥有、可变的设备数据视图,以列元素形式表示,其中一些元素可能为空(由位掩码指示)。更多...

#include <column_view.hpp>

cudf::mutable_column_view 的继承图
cudf::detail::column_view_base

公有成员函数

 mutable_column_view (mutable_column_view const &)=default
 拷贝构造函数。
 
 mutable_column_view (mutable_column_view &&)=default
 移动构造函数。
 
mutable_column_viewoperator= (mutable_column_view const &)=default
 拷贝赋值运算符。更多...
 
mutable_column_viewoperator= (mutable_column_view &&)=default
 移动赋值运算符。更多...
 
 mutable_column_view (data_type type, size_type size, void *data, bitmask_type *null_mask, size_type null_count, size_type offset=0, std::vector< mutable_column_view > const &children={})
 从指向设备内存的指针构造一个 mutable_column_view,包含列的元素和位掩码。更多...
 
template<typename T = void, CUDF_ENABLE_IF(std::is_same_v< T, void > or is_rep_layout_compatible< T >()) >
T * head () const noexcept
 返回指向基础设备内存分配的指针,并转换为指定类型。更多...
 
template<typename T , CUDF_ENABLE_IF(is_rep_layout_compatible< T >()) >
T * data () const noexcept
 返回转换为指定类型并加上偏移量的底层数据。更多...
 
template<typename T , CUDF_ENABLE_IF(is_rep_layout_compatible< T >()) >
T * begin () const noexcept
 返回底层数据转换为指定类型后的第一个元素(考虑偏移量)。更多...
 
template<typename T , CUDF_ENABLE_IF(is_rep_layout_compatible< T >()) >
T * end () const noexcept
 返回底层数据转换为指定类型后的最后一个元素之后的位置。更多...
 
bitmask_typenull_mask () const noexcept
 返回指向底层位掩码分配的原始指针。更多...
 
void set_null_count (size_type new_null_count)
 设置空值计数。更多...
 
mutable_column_view child (size_type child_index) const noexcept
 返回对指定子列的引用。更多...
 
size_type num_children () const noexcept
 返回子列的数量。更多...
 
auto child_begin () const noexcept
 返回指向有序子列视图序列开头的迭代器。更多...
 
auto child_end () const noexcept
 返回指向有序子列视图序列末尾的迭代器。更多...
 
 operator column_view () const
 将可变视图转换为不可变视图。更多...
 
- 继承自 cudf::detail::column_view_base 的公有成员函数
template<typename T = void, CUDF_ENABLE_IF(std::is_same_v< T, void > or is_rep_layout_compatible< T >()) >
T const * head () const noexcept
 返回指向基础设备内存分配的指针,并转换为指定类型。更多...
 
template<typename T , CUDF_ENABLE_IF(is_rep_layout_compatible< T >()) >
T const * data () const noexcept
 返回转换为指定类型并加上偏移量的底层数据。更多...
 
template<typename T , CUDF_ENABLE_IF(is_rep_layout_compatible< T >()) >
T const * begin () const noexcept
 返回底层数据转换为指定类型后的第一个元素(考虑偏移量)。更多...
 
template<typename T , CUDF_ENABLE_IF(is_rep_layout_compatible< T >()) >
T const * end () const noexcept
 返回底层数据转换为指定类型后的最后一个元素之后的位置。更多...
 
size_type size () const noexcept
 返回列中的元素数量。更多...
 
bool is_empty () const noexcept
 如果 size() 返回零,则返回 true,否则返回 false。更多...
 
data_type type () const noexcept
 返回元素 data_type 更多...
 
bool nullable () const noexcept
 指示列是否可以包含空元素,即是否分配了位掩码。更多...
 
size_type null_count () const
 返回空元素的数量。更多...
 
size_type null_count (size_type begin, size_type end, rmm::cuda_stream_view stream=cudf::get_default_stream()) const
 返回范围 [begin, end) 中的空元素数量。更多...
 
bool has_nulls () const
 指示列是否包含空元素,即 null_count() > 0 更多...
 
bool has_nulls (size_type begin, size_type end, rmm::cuda_stream_view stream=cudf::get_default_stream()) const
 指示列在范围 [begin, end) 中是否包含空元素,即 null_count(begin, end) > 0 更多...
 
bitmask_type const * null_mask () const noexcept
 返回指向底层位掩码分配的原始指针。更多...
 
size_type offset () const noexcept
 返回相对于基础内存分配的第一个元素的索引,即 head<T>() 返回的值。更多...
 

保护成员函数

void const * get_data () const noexcept override
 返回指向基础设备内存分配的指针。更多...
 
- 继承自 cudf::detail::column_view_base 的保护成员函数
 column_view_base (column_view_base const &)=default
 拷贝构造函数。
 
 column_view_base (column_view_base &&)=default
 移动构造函数。
 
column_view_baseoperator= (column_view_base const &)=default
 拷贝赋值运算符。更多...
 
column_view_baseoperator= (column_view_base &&)=default
 移动赋值运算符。更多...
 
 column_view_base (data_type type, size_type size, void const *data, bitmask_type const *null_mask, size_type null_count, size_type offset=0)
 从指向设备内存的指针构造一个 column_view_base,包含列的元素和位掩码。更多...
 

友元

mutable_column_view bit_cast (mutable_column_view const &input, data_type type)
 在具有相同大小和兼容底层表示的类型之间进行零拷贝转换。更多...
 

额外继承成员

- 继承自 cudf::detail::column_view_base 的保护属性
data_type _type {type_id::EMPTY}
 元素类型。
 
size_type _size {}
 元素数量。
 
void const * _data {}
 指向包含元素的设备内存的指针。
 
bitmask_type const * _null_mask {}
 
size_type _null_count {}
 空元素的数量。
 
size_type _offset {}
 

详细描述

一个非拥有、可变的设备数据视图,以列元素形式表示,其中一些元素可能为空(由位掩码指示)。

mutable_column_view 可以从 cudf::column 隐式构造,也可以从指向预先存在的设备内存的指针显式构造。

除非另有说明,否则 mutable_column_view 的数据和位掩码内存布局应遵循 Arrow 物理内存布局规范:https://arrow.apache.ac.cn/docs/memory_layout.html

由于 mutable_column_view 是非拥有的,在创建或销毁 mutable_column_view 对象时不会分配或释放设备内存。

为了启用零拷贝切片,mutable_column_view 有一个 offset,指示列中第一个元素相对于基础设备内存分配的索引。默认情况下,offset() 为零。

定义在文件 column_view.hpp503 行。

构造函数与析构函数文档

◆ mutable_column_view()

cudf::mutable_column_view::mutable_column_view ( data_type  类型,
size_type  大小,
void *  数据,
bitmask_type 空值掩码,
size_type  空值数量,
size_type  偏移量 = 0,
std::vector< mutable_column_view > const &  子列 = {} 
)

从指向设备内存的指针构造一个 mutable_column_view,包含列的元素和位掩码。

如果 typeEMPTY,指定的 null_count 将被忽略,并且 null_count() 将始终返回与 size() 相同的值。

异常
cudf::logic_error如果 size < 0
cudf::logic_error如果 size > 0data == nullptr
cudf::logic_error如果 type.id() == EMPTYdata != nullptrnull_mask != nullptr
cudf::logic_error如果 null_count > 0,但 null_mask == nullptr
cudf::logic_error如果 offset < 0
参数
类型元素类型
大小元素数量
数据指向包含列元素的设备内存的指针
空值掩码指向包含空值指示位掩码的设备内存的指针
空值数量空元素的数量。
偏移量可选,第一个元素的索引
子列可选,根据元素类型,子列可能包含额外数据

成员函数文档

◆ begin()

template<typename T , CUDF_ENABLE_IF(is_rep_layout_compatible< T >()) >
T* cudf::mutable_column_view::begin ( ) const
inlinenoexcept

返回底层数据转换为指定类型后的第一个元素(考虑偏移量)。

如果 is_rep_layout_compatible<T> 为 false,则此函数不参与重载决议。

模板参数
T期望的类型
返回值
转换后的第一个元素的指针

定义在文件 column_view.hpp611 行。

◆ child()

mutable_column_view cudf::mutable_column_view::child ( size_type  子列索引) const
inlinenoexcept

返回对指定子列的引用。

参数
子列索引期望子列的索引
返回值
请求的子 mutable_column_view

定义在文件 column_view.hpp661 行。

◆ child_begin()

auto cudf::mutable_column_view::child_begin ( ) const
inlinenoexcept

返回指向有序子列视图序列开头的迭代器。

返回值
指向引用第一个子列的 mutable_column_view 的迭代器

定义在文件 column_view.hpp678 行。

◆ child_end()

auto cudf::mutable_column_view::child_end ( ) const
inlinenoexcept

返回指向有序子列视图序列末尾的迭代器。

返回值
指向最后一个子列之后元素的 mutable_column_view 的迭代器

定义在文件 column_view.hpp685 行。

◆ data()

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

返回转换为指定类型并加上偏移量的底层数据。

如果 is_rep_layout_compatible<T> 为 false,则此函数不参与重载决议。

注意
如果 offset() == 0,则 head<T>() == data<T>()
模板参数
T要转换到的类型
返回值
包含偏移量的底层数据的类型化指针

定义在文件 column_view.hpp595 行。

◆ end()

template<typename T , CUDF_ENABLE_IF(is_rep_layout_compatible< T >()) >
T* cudf::mutable_column_view::end ( ) const
inlinenoexcept

返回底层数据转换为指定类型后的最后一个元素之后的位置。

如果 is_rep_layout_compatible<T> 为 false,则此函数不参与重载决议。

模板参数
T期望的类型
返回值
转换后最后一个元素之后的位置指针

定义在文件 column_view.hpp627 行。

◆ get_data()

void const* cudf::mutable_column_view::get_data ( ) const
overrideprotectedvirtualnoexcept

返回指向基础设备内存分配的指针。

此函数的主要目的是允许派生类覆盖内存访问的基本属性,而无需更改底层指针的所有不同访问器。

返回值
底层数据的类型化指针

重新实现自 cudf::detail::column_view_base

◆ head()

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

返回指向基础设备内存分配的指针,并转换为指定类型。

当且仅当 is_rep_layout_compatible<T>()std::is_same_v<T,void> 为 true 时,此函数才会参与重载决议。

注意
如果 offset() == 0,则 head<T>() == data<T>()
通常很少需要访问列的 head<T>() 分配,而应通过 data<T>() 访问元素。
模板参数
要转换到的类型
返回值
底层数据的类型化指针

定义在文件 column_view.hpp577 行。

◆ null_mask()

bitmask_type* cudf::mutable_column_view::null_mask ( ) const
inlinenoexcept

返回指向底层位掩码分配的原始指针。

注意
此函数考虑 offset()
如果 null_count() == 0,这可能返回 nullptr
返回值
指向底层位掩码分配的原始指针

定义在文件 column_view.hpp641 行。

◆ num_children()

size_type cudf::mutable_column_view::num_children ( ) const
inlinenoexcept

返回子列的数量。

返回值
子列的数量

定义在文件 column_view.hpp671 行。

◆ operator column_view()

cudf::mutable_column_view::operator column_view ( ) const

将可变视图转换为不可变视图。

返回值
该可变视图元素的不可变视图

◆ operator=() [1/2]

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

移动赋值运算符。

返回值
对此对象的引用(所有权转移后)

◆ operator=() [2/2]

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

拷贝赋值运算符。

返回值
对此对象的引用

◆ set_null_count()

void cudf::mutable_column_view::set_null_count ( size_type  新空值数量)

设置空值计数。

异常
cudf::logic_error如果 new_null_count > 0nullable() == false
参数
新空值数量新的空值计数

友元和相关函数文档

◆ bit_cast

mutable_column_view bit_cast ( mutable_column_view const &  输入,
data_type  类型 
)
友元

在具有相同大小和兼容底层表示的类型之间进行零拷贝转换。

这类似于 reinterpret_castbit_cast,因为它提供对相同原始位作为不同类型的视图。然而,与 reinterpret_cast 不同的是,此转换仅允许用于具有相同宽度和兼容表示的类型。例如,时间戳类型在内存中的布局方式等同于表示自固定纪元以来的持续时间的整数;将其位转换为相同的整数类型(日期为 INT32,其他为 INT64)将获得持续时间计数的原始视图。FLOAT32 也可以位转换为 INT32 并作为整数值处理。但是,INT32 列不能位转换为 INT64,因为大小不同;string_view 列也不能转换为数字类型列,因为它们的数据表示不兼容。

可以使用 cudf::is_bit_castable() 检查转换的有效性。

异常
cudf::logic_error如果指定的转换不可能,即 is_bit_castable(input.type(), type) 为 false。
参数
输入要从中转换的 mutable_column_view
类型要转换到的 data_type
返回值
新的 mutable_column_view,包装与 input 相同的数据,但转换为 type

此类的文档生成自以下文件