Fix DLPack: use frame.to_dlpack() for decord→CuPy zero-copy
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -332,10 +332,11 @@ class GPUVideoSource:
|
|||||||
|
|
||||||
# Convert to CuPy via DLPack (zero-copy GPU transfer)
|
# Convert to CuPy via DLPack (zero-copy GPU transfer)
|
||||||
if GPU_AVAILABLE:
|
if GPU_AVAILABLE:
|
||||||
# decord tensors support DLPack for zero-copy conversion
|
# decord tensors have .to_dlpack() which returns a PyCapsule
|
||||||
# This keeps the frame on GPU without any CPU transfer
|
# that CuPy can consume for zero-copy GPU transfer
|
||||||
try:
|
try:
|
||||||
gpu_frame = cp.from_dlpack(frame_tensor)
|
dlpack_capsule = frame_tensor.to_dlpack()
|
||||||
|
gpu_frame = cp.from_dlpack(dlpack_capsule)
|
||||||
# Log success once per source
|
# Log success once per source
|
||||||
if not getattr(self, '_dlpack_logged', False):
|
if not getattr(self, '_dlpack_logged', False):
|
||||||
print(f"[GPUVideoSource] DLPack zero-copy SUCCESS - frames stay on GPU", file=sys.stderr)
|
print(f"[GPUVideoSource] DLPack zero-copy SUCCESS - frames stay on GPU", file=sys.stderr)
|
||||||
|
|||||||
Reference in New Issue
Block a user