公共成员函数 | 保护成员函数 | 保护属性 | 所有成员列表
cudf::detail::column_view_base 类参考

作为元素列的设备数据的非拥有、不可变视图,其中一些元素可能为空,由位掩码指示。 更多...

#include <column_view.hpp>

cudf::detail::column_view_base 的继承图
cudf::column_view cudf::mutable_column_view cudf::dictionary_column_view cudf::lists_column_view cudf::strings_column_view cudf::structs_column_view cudf::tdigest::tdigest_column_view

公共成员函数

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 size_type 
 返回范围 [begin, end) 中空元素的计数。 更多...
 
bool has_nulls () const
 指示列是否包含空元素,即 null_count() > 0更多...
 
bool 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>() 返回的值。 更多...
 

保护成员函数

virtual void const * get_data () const noexcept
 返回指向基本设备内存分配的指针。 更多...
 
 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更多...
 

保护属性

data_type _type {type_id::EMPTY}
 元素类型。
 
size_type _size {}
 元素数量。
 
void const * _data {}
 指向包含元素的设备内存的指针。
 
bitmask_type const * _null_mask {}
 
size_type _null_count {}
 空元素的数量。
 
size_type _offset {}
 

详细描述

作为元素列的设备数据的非拥有、不可变视图,其中一些元素可能为空,由位掩码指示。

column_view_base 可以从 cudf::column 隐式构造,也可以从指向现有设备内存的指针显式构造。

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

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

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

定义于文件 column_view.hpp53 行。

构造函数与析构函数文档

◆ column_view_base()

cudf::detail::column_view_base::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 
)
protected

从指向列元素和位掩码的设备内存指针构造 column_view_base

如果 null_count() 为零,则 null_mask 是可选的。

如果 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
参数
type元素类型
size元素数量
data指向包含列元素的设备内存的指针
null_mask指向包含空值指示位掩码的设备内存的指针
null_count空元素的数量。
offset可选,第一个元素的索引

成员函数文档

◆ begin()

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

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

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

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

定义于文件 column_view.hpp107 行。

◆ data()

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

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

注意
如果 offset() == 0,则 head<T>() == data<T>()

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

模板参数
T要转换到的类型
返回
指向底层数据的类型化指针,包括偏移量

定义于文件 column_view.hpp91 行。

◆ end()

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

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

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

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

定义于文件 column_view.hpp123 行。

◆ get_data()

virtual void const* cudf::detail::column_view_base::get_data ( ) const
inlineprotectedvirtualnoexcept

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

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

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

cudf::mutable_column_viewcudf::column_view 中重新实现。

定义于文件 column_view.hpp244 行。

◆ has_nulls() [1/2]

bool cudf::detail::column_view_base::has_nulls ( ) const
inline

指示列是否包含空元素,即 null_count() > 0

返回
true 包含一个或多个空元素
false 所有元素都有效

定义于文件 column_view.hpp194 行。

◆ has_nulls() [2/2]

bool cudf::detail::column_view_base::has_nulls ( size_type  begin,
size_type  end,
rmm::cuda_stream_view  stream = cudf::get_default_stream() 
) const
inline

指示列在范围 [begin, end) 内是否包含空元素,即 null_count(begin, end) > 0

异常
cudf::logic_error对于无效范围(如果 begin < 0, begin > end, begin >= size(), 或 end > size())。
参数
begin范围的起始索引(包含)。
end范围中最后一个元素的索引(不包含)。
stream用于设备内存操作和内核启动的 CUDA 流
返回
true 在范围 [begin, end) 内包含一个或多个空元素
false 在范围 [begin, end) 内所有元素都有效

定义于文件 column_view.hpp209 行。

◆ head()

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

返回转换为指定类型的基本设备内存分配的指针。

注意
如果 offset() == 0,则 head<T>() == data<T>()
很少需要访问列的 head<T>() 分配,而应该通过 data<T>() 访问元素。

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

模板参数
要转换到的类型
返回
指向底层数据的类型化指针

定义于文件 column_view.hpp73 行。

◆ is_empty()

bool cudf::detail::column_view_base::is_empty ( ) const
inlinenoexcept

如果 size() 返回零,则返回 true,否则返回 false。

返回
如果 size() 返回零,则为 true,否则为 false

定义于文件 column_view.hpp140 行。

◆ null_count() [1/2]

size_type cudf::detail::column_view_base::null_count ( ) const
inline

返回空元素的计数。

返回
空元素的计数

定义于文件 column_view.hpp165 行。

◆ null_count() [2/2]

size_type cudf::detail::column_view_base::null_count ( size_type  begin,
size_type  end,
rmm::cuda_stream_view  stream = cudf::get_default_stream() 
) const

返回范围 [begin, end) 中空元素的计数。

注意
如果 null_count() != 0,每次调用 null_count(begin, end) 都将重新计算范围 [begin, end) 中由 null_mask 指示的空元素的计数。
异常
cudf::logic_error对于无效范围(如果 begin < 0, begin > end, begin >= size(), 或 end > size())。
参数
[in]begin范围的起始索引(包含)。
[in]end范围中最后一个元素的索引(不包含)。
[in]stream用于设备内存操作和内核启动的 CUDA 流
返回
给定范围中空元素的计数

◆ null_mask()

bitmask_type const* cudf::detail::column_view_base::null_mask ( ) const
inlinenoexcept

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

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

定义于文件 column_view.hpp224 行。

◆ nullable()

bool cudf::detail::column_view_base::nullable ( ) const
inlinenoexcept

指示列是否可以包含空元素,即是否分配了位掩码。

注意
如果 null_count() > 0,此函数必须始终返回 true
返回
true 位掩码已分配
false 位掩码未分配

定义于文件 column_view.hpp158 行。

◆ offset()

size_type cudf::detail::column_view_base::offset ( ) const
inlinenoexcept

返回相对于基本内存分配的第一个元素的索引,即 head<T>() 返回的值。

返回
相对于 head<T>() 的第一个元素的索引

定义于文件 column_view.hpp232 行。

◆ operator=() [1/2]

column_view_base& cudf::detail::column_view_base::operator= ( column_view_base &&  )
protecteddefault

移动赋值运算符。

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

◆ operator=() [2/2]

column_view_base& cudf::detail::column_view_base::operator= ( column_view_base const &  )
protecteddefault

拷贝赋值运算符。

返回
指向此对象的引用

◆ size()

size_type cudf::detail::column_view_base::size ( ) const
inlinenoexcept

返回列中的元素数量。

返回
列中的元素数量

定义于文件 column_view.hpp133 行。

◆ type()

data_type cudf::detail::column_view_base::type ( ) const
inlinenoexcept

返回元素 data_type

返回
列中元素的 data_type

定义于文件 column_view.hpp147 行。

成员数据文档

◆ _null_mask

bitmask_type const* cudf::detail::column_view_base::_null_mask {}
protected

指向包含表示空元素的位掩码的设备内存的指针。如果 null_count() == 0,则为可选

定义于文件 column_view.hpp249 行。

◆ _offset

size_type cudf::detail::column_view_base::_offset {}
protected

第一个元素的索引位置。启用零拷贝切片

定义于文件 column_view.hpp253 行。


此类的文档是从以下文件生成的