[
https://issues.apache.org/jira/browse/ARROW-4861?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16792460#comment-16792460
]
Pearu Peterson commented on ARROW-4861:
---------------------------------------
Yes, also places with fill and memcpy would need to be updated to use the
corresponding functions provided by MemoryPool implementation.
Currently, memcpy, memset, std::copy, dereferencing are used in `Buffer` and
`BufferBuilder` methods. These ought to be replaced with the respective methods
from MemoryPool.
Of course, these host specific memory functions are also used elsewhere but
these are not relevant for manipulating device memory buffers.
Btw, this issue is a part of ARROW-2447 story that aims at extending Arrow
buffer usages to accelerator device applications.
> [C++] Introduce MemoryPool::Memset method.
> ------------------------------------------
>
> Key: ARROW-4861
> URL: https://issues.apache.org/jira/browse/ARROW-4861
> Project: Apache Arrow
> Issue Type: Improvement
> Components: C++
> Reporter: Pearu Peterson
> Assignee: Pearu Peterson
> Priority: Major
> Labels: C++
>
> One can define a device MemoryPool subclass (say, CudaMemoryPool) that can be
> used for creating a Buffer representing a device memory. The prerequisite for
> this to work is that all Buffer memory operations (allocation, deallocation,
> reallocation, etc) can be redefined to use the corresponding device specific
> operations. No host specific operation would be allowed as the device memory
> would be inaccesible from host.
> Currently, this is almost possible. Namely, `Buffer::ZeroPadding` uses host
> specific `memset` function for zero-padding the allocated Buffer memory.
> Suggestion: introduce a new method `MemoryPool::Memset` that
> `Buffer::ZeroPadding` can use.
> The Memset method would use `memset` by default but device specific
> MemoryPool subclasses can override the method to use device driver version of
> the memset function.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)