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

设备数据作为元素列的不可变、非拥有的视图,可轻松复制并在 CUDA 设备代码中使用。 更多...

cudf::detail::column_device_view_base 的继承图
cudf::column_device_view cudf::mutable_column_device_view cudf::detail::lists_column_device_view cudf::detail::structs_column_device_view

结构体  has_element_accessor_impl
 
结构体  has_element_accessor_impl< C, T, void_t< decltype(cuda::std::declval< C >().template element< T >(cuda::std::declval< size_type >()))> >
 

公有成员函数

 column_device_view_base (column_device_view_base const &)=default
 拷贝构造函数。
 
 column_device_view_base (column_device_view_base &&)=default
 移动构造函数。
 
column_device_view_baseoperator= (column_device_view_base const &)=default
 拷贝赋值运算符。 更多...
 
column_device_view_baseoperator= (column_device_view_base &&)=default
 移动赋值运算符。 更多...
 
template<typename T = void, CUDF_ENABLE_IF(std::is_same_v< T, void > or is_rep_layout_compatible< T >()) >
CUDF_HOST_DEVICE T const * head () const noexcept
 返回转换为指定类型的基本设备内存分配的指针。 更多...
 
template<typename T , CUDF_ENABLE_IF(is_rep_layout_compatible< T >()) >
CUDF_HOST_DEVICE T const * CUDF_HOST_DEVICE T const * 
 data () const noexcept
 
返回转换为指定类型的基础数据,加上偏移量。 更多...CUDF_HOST_DEVICE size_type 
 size () const noexcept
 
返回列中的元素数量。 更多...CUDF_HOST_DEVICE data_type 
 type () const noexcept
 
返回元素类型。 更多...CUDF_HOST_DEVICE bool 
 nullable () const noexcept
 
指示列是否可以包含空元素,即是否已分配位掩码。 更多...CUDF_HOST_DEVICE bitmask_type const * 
 null_mask () const noexcept
 
返回转换为指定类型的基础数据,加上偏移量。 更多...返回指向基础位掩码分配的原始指针。 更多...
 CUDF_HOST_DEVICE size_type 
 
offset () const noexcept返回相对于基本内存分配的第一个元素的索引,即 head() 返回的值。 更多...
 bool 
 
offset () const noexceptis_valid (size_type element_index) const noexcept
 返回指定的元素是否持有有效值(即非空)。 更多...
 
offset () const noexceptCUDF_HOST_DEVICE bool 
 is_valid_nocheck (size_type element_index) const noexcept
 
offset () const noexcept返回指定的元素是否持有有效值(即非空) 更多...
 CUDF_HOST_DEVICE bool 
 
is_null (size_type element_index) const noexcept返回指定的元素是否为空。 更多...
 CUDF_HOST_DEVICE bool 
 

is_null_nocheck (size_type element_index) const noexcept

返回指定的元素是否为空。 更多...CUDF_HOST_DEVICE bitmask_type 
 get_mask_word (size_type word_index) const noexcept
 

null_mask() 返回指定的位掩码字。 更多...

保护成员函数CUDF_HOST_DEVICE 
 column_device_view_base (data_type type, size_type size, void const *data, bitmask_type const *null_mask, size_type offset)
 
构造具有指定类型、大小、数据、空掩码和偏移量的列。 更多... 保护属性 {}
  data_type 
 
_type {type_id::EMPTY}元素类型。 {}
  cudf::size_type 
 
_size元素数量。 {}
 
void const * _data {}
 

指向包含元素的设备内存的指针。

bitmask_type const * 

_null_mask

size_type 

_offset

详细描述

设备数据作为元素列的不可变、非拥有的视图,可轻松复制并在 CUDA 设备代码中使用。 ( column_device_view_base 及其派生类不支持 has_nulls()null_count()。主要原因是,从 null 计数未知的 column_views 创建 column_device_views 将需要立即计算 null 计数,而且这种计算并不显而易见,这可能导致不良的性能问题。这些信息通常在设备代码中也不需要,并且在主机端可以轻松从关联的 column_view 访问。 定义位于文件 column_device_view.cuh 的第 103 行。,
void const *  构造函数和析构函数文档,
◆ column_device_view_base() CUDF_HOST_DEVICE cudf::detail::column_device_view_base::column_device_view_base,
_size (data_type ,
void const *  type
)
, size_type 

size

, void const * 
定义位于文件 column_device_view.cuh 的第 103 行。data
构造函数和析构函数文档, bitmask_type const * 
CUDF_HOST_DEVICE cudf::detail::column_device_view_base::column_device_view_basenull_mask
(data_type , size_type 
offset )inlineprotected

构造具有指定类型、大小、数据、空掩码和偏移量的列。

参数

列的类型

template<typename T , CUDF_ENABLE_IF(is_rep_layout_compatible< T >()) >
列中元素的数量 ( ) 指向包含元素的设备内存的指针
指向包含表示有效元素的位掩码的设备内存的指针

offset

第一个元素的索引位置
定义位于文件 column_device_view.cuh 的第 315 行。

成员函数文档

◆ data()

template<typename T , CUDF_ENABLE_IF(is_rep_layout_compatible< T >()) > CUDF_HOST_DEVICE T const* cudf::detail::column_device_view_base::data
()const
inlinenoexcept
返回转换为指定类型的基础数据,加上偏移量。

注意

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

对于带有子列的列,返回的指针是未定义的,不应使用。 ( void const *  如果 is_rep_layout_compatible<T> 为 false,则此函数不参与重载解析。) 指向包含元素的设备内存的指针
指向包含表示有效元素的位掩码的设备内存的指针

模板参数

第一个元素的索引位置
T
, void const * 
如果 is_rep_layout_compatible<T> 为 false,则此函数不参与重载解析。要转换到的类型
inlinenoexcept
返回

指向基础数据的类型化指针,包括偏移量

定义位于文件 column_device_view.cuh 的第 161 行。

template<typename T = void, CUDF_ENABLE_IF(std::is_same_v< T, void > or is_rep_layout_compatible< T >()) >
◆ get_mask_word() ( ) 指向包含元素的设备内存的指针
指向包含表示有效元素的位掩码的设备内存的指针

CUDF_HOST_DEVICE bitmask_type cudf::detail::column_device_view_base::get_mask_word

第一个元素的索引位置
定义位于文件 column_device_view.cuh 的第 315 行。
(size_type 

word_index

template<typename T , CUDF_ENABLE_IF(is_rep_layout_compatible< T >()) > CUDF_HOST_DEVICE T const* cudf::detail::column_device_view_base::data
) const noexceptnull_mask() 返回指定的位掩码字。
inlinenoexcept
如果 nullable() == false,调用此函数是未定义行为。

参数

要获取的字的索引

返回 ( void const *  给定 word_index 的位掩码字) 指向包含元素的设备内存的指针
指向包含表示有效元素的位掩码的设备内存的指针

定义位于文件 column_device_view.cuh 的第 292 行。

◆ head()

第一个元素的索引位置
template<typename T = void, CUDF_ENABLE_IF(std::is_same_v< T, void > or is_rep_layout_compatible< T >()) > CUDF_HOST_DEVICE T const* cudf::detail::column_device_view_base::head
, void const * 
给定 word_index 的位掩码字() const noexcept
inlinenoexcept
返回转换为指定类型的基本设备内存分配的指针。
很少需要访问列的 head<T>() 分配,而应通过 data<T>() 访问元素。

只有当 is_rep_layout_compatible<T>()std::is_same_v<T,void> 为 true 时,此函数才参与重载解析。

模板参数

T ( void const *  给定 word_index 的位掩码字) 指向包含元素的设备内存的指针
指向包含表示有效元素的位掩码的设备内存的指针

定义位于文件 column_device_view.cuh 的第 292 行。

要转换到的类型

, void const * 
给定 word_index 的位掩码字() const noexcept
inlinenoexcept
返回转换为指定类型的基本设备内存分配的指针。
很少需要访问列的 head<T>() 分配,而应通过 data<T>() 访问元素。

返回

指向基础数据的类型化指针

定义位于文件 column_device_view.cuh 的第 140 行。 ( void const *  给定 word_index 的位掩码字) 指向包含元素的设备内存的指针
指向包含表示有效元素的位掩码的设备内存的指针

◆ is_null()

CUDF_HOST_DEVICE bool cudf::detail::column_device_view_base::is_null

第一个元素的索引位置
(size_type 
, void const * 
给定 word_index 的位掩码字() const noexcept
inlinenoexcept
element_index
) const noexcept

返回指定的元素是否为空。

首先检查空位掩码是否存在。如果 nullable() == false,此函数始终返回 false。

如果可以保证 nullable() == true,则使用 is_null_nocheck() 性能更高。 ( void const *  给定 word_index 的位掩码字) 指向包含元素的设备内存的指针
指向包含表示有效元素的位掩码的设备内存的指针

参数

要转换到的类型

, void const * 
给定 word_index 的位掩码字() const noexcept
inlinenoexcept
element_index
) const noexcept

要查询的元素的索引

返回

true 元素为空 ( ) 指向包含元素的设备内存的指针
指向包含表示有效元素的位掩码的设备内存的指针

false 元素有效

第一个元素的索引位置
定义位于文件 column_device_view.cuh 的第 262 行。
◆ is_null_nocheck()
inlinenoexcept
CUDF_HOST_DEVICE bool cudf::detail::column_device_view_base::is_null_nocheck

(size_type 

element_index

) const noexcept ( ) 指向包含元素的设备内存的指针
指向包含表示有效元素的位掩码的设备内存的指针

返回指定的元素是否为空。

第一个元素的索引位置
此函数在尝试读取位掩码之前不验证其是否存在。因此,如果 nullable() == false,调用此函数是未定义行为。
inlinenoexcept
参数
要查询的元素的索引

返回

true 元素为空

false 元素有效 ( ) 指向包含元素的设备内存的指针
指向包含表示有效元素的位掩码的设备内存的指针

定义位于文件 column_device_view.cuh 的第 278 行。

inlinenoexcept
◆ is_valid()

CUDF_HOST_DEVICE bool cudf::detail::column_device_view_base::is_valid

(size_type 

element_index ( ) const noexcept )
返回指定的元素是否持有有效值(即非空)。

首先检查空位掩码是否存在。如果 nullable() == false,此函数始终返回 true。

inlinenoexcept
如果可以保证 nullable() == true,则使用 is_valid_nocheck() 性能更高。

参数

element_index ( 要查询的元素的索引 )
返回指定的元素是否持有有效值(即非空)。

返回

inlinenoexcept
true 元素有效

false 元素为空

定义位于文件 column_device_view.cuh 的第 227 行。 ( ) 指向包含元素的设备内存的指针
指向包含表示有效元素的位掩码的设备内存的指针

◆ is_valid_nocheck()

inlinenoexcept
, bitmask_type const * 

CUDF_HOST_DEVICE bool cudf::detail::column_device_view_base::is_valid_nocheck

(size_type 

element_index ( ) 指向包含元素的设备内存的指针
指向包含表示有效元素的位掩码的设备内存的指针

) const noexcept

inlinenoexcept
返回指定的元素是否持有有效值(即非空)

参数

要查询的元素的索引

返回

true 元素有效
false 元素为空

定义位于文件 column_device_view.cuh 的第 244 行。

◆ null_mask()

CUDF_HOST_DEVICE bitmask_type const* cudf::detail::column_device_view_base::null_mask

() const noexcept
false 元素为空

返回指向基础位掩码分配的原始指针。

此函数不考虑 offset()


如果 null_count() == 0,此函数可能返回 nullptr