互操作 Dlpack#
- group interop_dlpack
函数
-
std::unique_ptr<table> from_dlpack(DLManagedTensor const *managed_tensor, rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
将DLPack DLTensor转换为cudf表。
DLTensor 的
device_type必须是kDLCPU、kDLCuda或kDLCUDAHost,并且device_id必须与当前设备匹配。ndim必须设置为 1 或 2。dtype必须有 1 个通道,并且位大小必须匹配支持的cudf::data_type。注意
托管张量不会被此函数删除。
- Throws:
cudf::logic_error – 如果任何DLTensor字段不受支持
- Parameters:
managed_tensor – 一个一维或二维的列主序(Fortran顺序)张量
mr – 用于分配返回表的设备内存的设备内存资源
- Returns:
包含张量数据副本的表格
-
DLManagedTensor *to_dlpack(table_view const &input, rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
将cudf表转换为DLPack DLTensor。
所有列必须具有相同的数据类型,并且该类型必须是数字类型。列可以为空,但空值计数必须为零。如果输入表为空或没有行,结果将为nullptr。
注意
返回的
DLManagedTensor的deleter方法必须用于释放为张量分配的内存。- Throws:
cudf::logic_error – 如果数据类型不相等或不是数值类型,或者任何列具有非零的空值计数
- Parameters:
input – 要转换为 DLPack 的表格
mr – 用于分配返回的DLPack张量的设备内存的设备内存资源
- Returns:
1D 或 2D DLPack 张量,包含表格数据的副本,或 nullptr
-
std::unique_ptr<table> from_dlpack(DLManagedTensor const *managed_tensor, rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#