[
https://issues.apache.org/jira/browse/ARROW-5924?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Wes McKinney updated ARROW-5924:
--------------------------------
Fix Version/s: (was: 0.14.1)
1.0.0
> [C++][Plasma] It is not convenient to release a GPU object
> ----------------------------------------------------------
>
> Key: ARROW-5924
> URL: https://issues.apache.org/jira/browse/ARROW-5924
> Project: Apache Arrow
> Issue Type: Improvement
> Components: C++ - Plasma
> Affects Versions: 0.14.0
> Reporter: shengjun.li
> Priority: Major
> Labels: pull-request-available
> Fix For: 1.0.0
>
> Time Spent: 2h 50m
> Remaining Estimate: 0h
>
> cmake_modules/DefineOptions.cmake
> define_option(ARROW_CUDA "Build the Arrow CUDA extensions (requires CUDA
> toolkit)" ON)
> define_option(ARROW_PLASMA "Build the plasma object store along with
> Arrow" ON)
> The corrent sequence is as follow:
> (1) plasma_client.Create(object_id, size, nullptr, 0, &buff, 1); // where
> device_num > 0
> (2) plasma_client.Seal(object_id);
> (3) buff = nullptr;
> (4) plasma_client.Release(object_id);
> (5) plasma_client.Delete(object_id);
> To set buff nullptr (step 3) just before release the object (step 4) because
> CloseIpcBuffer is in its destructor (class CudaBuffer).
> If a user does not do that promptly, CloseIpcBuffer will be blocked.
> Then, the following error may occure when another object created.
> IOError: Cuda Driver API call in
> /home/zilliz/arrow/cpp/src/arrow/gpu/cuda_context.cc at line 156 failed with
> code 208: cuIpcOpenMemHandle(&data, *handle,
> CU_IPC_MEM_LAZY_ENABLE_PEER_ACCESS) (nil)
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)