20 #include <cudf/detail/transform.hpp>
24 #include <cudf/utilities/export.hpp>
32 struct DLManagedTensor;
34 struct ArrowDeviceArray;
40 struct ArrowArrayStream;
45 typedef int32_t ArrowDeviceType;
47 #define ARROW_DEVICE_CUDA 2
50 namespace CUDF_EXPORT
cudf {
76 DLManagedTensor
const* managed_tensor,
157 template <
typename ViewType>
181 std::unique_ptr<cudf::table_view, custom_view_deleter<cudf::table_view>>;
188 std::unique_ptr<cudf::column_view, custom_view_deleter<cudf::column_view>>;
192 struct arrow_array_container;
263 ArrowDeviceArray&& input,
308 ArrowDeviceType device_type = ARROW_DEVICE_CUDA,
322 std::shared_ptr<arrow_array_container>
368 ArrowDeviceArray&& input,
428 ArrowDeviceType device_type = ARROW_DEVICE_CUDA,
442 std::shared_ptr<arrow_array_container>
659 ArrowSchema
const* schema,
660 ArrowArray
const* input,
678 ArrowSchema
const* schema,
679 ArrowArray
const* input,
704 ArrowSchema
const* schema,
705 ArrowDeviceArray
const* input,
723 ArrowArrayStream* input,
747 ArrowSchema
const* schema,
748 ArrowDeviceArray
const* input,
790 ArrowSchema
const* schema,
791 ArrowDeviceArray
const* input,
828 ArrowSchema
const* schema,
829 ArrowDeviceArray
const* input,
作为元素列的非拥有、不可变设备数据视图,其中一些元素可能为 null,如 ind...
cudf 中 ArrowDeviceArray 数据的一种标准交换媒介。
构造新的 Arrow 列对象。
arrow_column(ArrowSchema &&schema, ArrowDeviceArray &&input, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
arrow_column(ArrowSchema &&schema, ArrowArray &&input, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
arrow_column(ArrowSchema &&schema, ArrowDeviceArray &&input, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
column_view view() const
获取列数据的视图。
void to_arrow(ArrowDeviceArray *output, ArrowDeviceType device_type=ARROW_DEVICE_CUDA, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref()) const
将列转换为 ArrowDeviceArray。
arrow_column(cudf::column &&input, column_metadata const &metadata, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
arrow_column(ArrowSchema &&schema, ArrowDeviceArray &&input, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
void to_arrow_schema(ArrowSchema *output, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref()) const
将列转换为 ArrowSchema。
cudf 中 ArrowDeviceArray 数据的一种标准交换媒介。
构造新的 Arrow 表对象。
arrow_table(ArrowSchema &&schema, ArrowDeviceArray &&input, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
arrow_table(ArrowArrayStream &&input, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
arrow_table(ArrowSchema &&schema, ArrowDeviceArray &&input, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
arrow_table(cudf::table &&input, cudf::host_span< column_metadata const > metadata, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
arrow_table(ArrowSchema &&schema, ArrowDeviceArray &&input, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
void to_arrow(ArrowDeviceArray *output, ArrowDeviceType device_type=ARROW_DEVICE_CUDA, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref()) const
将表转换为 ArrowDeviceArray。
arrow_table(ArrowSchema &&schema, ArrowArray &&input, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
arrow_table(ArrowSchema &&schema, ArrowDeviceArray &&input, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
table_view view() const
获取表数据的视图。
void to_arrow_schema(ArrowSchema *output, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref()) const
将表转换为 ArrowSchema。
一组大小相同的 cudf::column_view。
rmm::cuda_stream_view const get_default_stream()
获取当前默认流。
std::unique_ptr< cudf::table_view, custom_view_deleter< cudf::table_view > > unique_table_view_t
带有自定义删除器的 cudf::table_view 的 unique_ptr 的类型别名
std::vector< std::unique_ptr< cudf::column > > owned_columns_t
拥有列向量的类型别名,用于从 ArrowDeviceArray 转换
std::unique_ptr< column > from_arrow_host_column(ArrowSchema const *schema, ArrowDeviceArray const *input, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
根据给定的 ArrowDeviceArray 输入创建 cudf::column。
std::unique_ptr< cudf::column > from_arrow_column(ArrowSchema const *schema, ArrowArray const *input, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
根据给定的 ArrowArray 和 ArrowSchema 输入创建 cudf::column。
unique_schema_t to_arrow_schema(cudf::table_view const &input, cudf::host_span< column_metadata const > metadata)
根据 cudf 表和元数据创建 ArrowSchema。
std::unique_ptr< table > from_arrow_stream(ArrowArrayStream *input, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
根据给定的 ArrowArrayStream 输入创建 cudf::table。
unique_table_view_t from_arrow_device(ArrowSchema const *schema, ArrowDeviceArray const *input, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
根据给定的 ArrowDeviceArray 和 ArrowSchema 创建 cudf::table_view
unique_column_view_t from_arrow_device_column(ArrowSchema const *schema, ArrowDeviceArray const *input, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
根据给定的 ArrowDeviceArray 和 ArrowSchema 创建 cudf::column_view
unique_device_array_t to_arrow_host(cudf::column_view const &col, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
将列视图数据复制到主机并为其创建 ArrowDeviceArray。
unique_device_array_t to_arrow_device(cudf::column_view const &col, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
从列视图创建 ArrowDeviceArray。
std::unique_ptr< cudf::column_view, custom_view_deleter< cudf::column_view > > unique_column_view_t
带有自定义删除器的 cudf::column_view 的 unique_ptr 的类型别名
std::unique_ptr< ArrowSchema, void(*)(ArrowSchema *)> unique_schema_t
带有自定义删除器的 ArrowSchema 的 unique_ptr 的类型别名
std::unique_ptr< ArrowDeviceArray, void(*)(ArrowDeviceArray *)> unique_device_array_t
带有自定义删除器的 ArrowDeviceArray 的 unique_ptr 的类型别名
std::unique_ptr< table > from_arrow_host(ArrowSchema const *schema, ArrowDeviceArray const *input, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
根据给定的 ArrowDeviceArray 输入创建 cudf::table。
std::unique_ptr< cudf::table > from_arrow(ArrowSchema const *schema, ArrowArray const *input, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
根据给定的 ArrowArray 和 ArrowSchema 输入创建 cudf::table。
std::unique_ptr< table > from_dlpack(DLManagedTensor const *managed_tensor, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
将 DLPack DLTensor 转换为 cudf 表。
DLManagedTensor * to_dlpack(table_view const &input, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
将 cudf 表转换为 DLPack DLTensor。
rmm::device_async_resource_ref get_current_device_resource_ref()
获取当前设备内存资源引用。
cuda::mr::async_resource_ref< cuda::mr::device_accessible > device_async_resource_ref
std::vector< cudf::column_metadata > get_table_metadata(cudf::table_view const &input)
用于为 Arrow 转换生成空表元数据(所有列无名称)的辅助函数。
cudf::column_metadata get_column_metadata(cudf::column_view const &input)
用于为 Arrow 转换生成空列元数据(无名称列)的辅助函数。
table_view 的 unique_ptr 的自定义删除器的函数对象
void operator()(ViewType *ptr) const
删除 unique_ptr 的操作符
owned_columns_t owned_mem_
必须删除的拥有列。
custom_view_deleter(owned_columns_t &&owned)
构造新的自定义视图删除器对象。
(mutable)_table_view 的类定义