Pearu Peterson created ARROW-4861:
-------------------------------------

             Summary: [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


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)

Reply via email to