MCPcopy Create free account
hub / github.com/apache/arrow / GetBufferWriter

Method GetBufferWriter

cpp/src/arrow/gpu/cuda_context.cc:408–421  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

406}
407
408Result<std::shared_ptr<io::OutputStream>> CudaMemoryManager::GetBufferWriter(
409 std::shared_ptr<Buffer> buf) {
410 if (*buf->device() != *device_) {
411 return Status::Invalid(
412 "CudaMemoryManager::GetBufferWriter called on foreign buffer "
413 "for device ",
414 buf->device()->ToString());
415 }
416 ARROW_ASSIGN_OR_RAISE(auto cuda_buf, CudaBuffer::FromBuffer(buf));
417 auto writer = std::make_shared<CudaBufferWriter>(cuda_buf);
418 // Use 8MB buffering, which yields generally good performance
419 RETURN_NOT_OK(writer->SetBufferSize(1 << 23));
420 return writer;
421}
422
423Result<std::unique_ptr<Buffer>> CudaMemoryManager::AllocateBuffer(int64_t size) {
424 ARROW_ASSIGN_OR_RAISE(auto context, cuda_device()->GetContext());

Callers

nothing calls this directly

Calls 4

InvalidFunction · 0.50
deviceMethod · 0.45
ToStringMethod · 0.45
SetBufferSizeMethod · 0.45

Tested by

no test coverage detected