MCPcopy Create free account
hub / github.com/NVIDIA/DALI / CopyToExternalImplGPU

Function CopyToExternalImplGPU

dali/python/backend_impl.cc:507–526  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

505 */
506template <typename SourceObject>
507void CopyToExternalImplGPU(SourceObject &src,
508 py::object dst_ptr, py::object cuda_stream,
509 bool non_blocking, bool use_copy_kernel) {
510 CUDAStreamLease lease;
511 AccessOrder copy_order;
512 AccessOrder wait_order = non_blocking ? src.order() : AccessOrder::host();
513 int device = src.device_id();
514 if (!cuda_stream.is_none()) {
515 cudaStream_t stream = static_cast<cudaStream_t>(ctypes_void_ptr(cuda_stream));
516 copy_order = AccessOrder(stream, device);
517 } else {
518 lease = CUDAStreamPool::instance().Get(device);
519 copy_order = AccessOrder(lease, device);
520 }
521
522 void *ptr = ctypes_void_ptr(dst_ptr);
523 CopyToExternal<mm::memory_kind::device>(ptr, std::nullopt, src, copy_order, use_copy_kernel);
524
525 wait_order.wait(copy_order);
526}
527
528template <typename Backend>
529py::object GetTensorProperty(const Tensor<Backend> &tensor, std::string name) {

Callers 2

ExposeTensorFunction · 0.85
ExposeTesorListGPUFunction · 0.85

Calls 6

ctypes_void_ptrFunction · 0.85
AccessOrderFunction · 0.85
hostFunction · 0.50
device_idMethod · 0.45
GetMethod · 0.45
waitMethod · 0.45

Tested by

no test coverage detected