From 5dffc1bec5dd74c90929a991564a491c8392cb02 Mon Sep 17 00:00:00 2001 From: moto <855818+mthrok@users.noreply.github.com> Date: Fri, 4 Oct 2024 16:19:57 -0400 Subject: [PATCH] Remove pin memory from binding (#243) --- src/binding/core/conversion.cpp | 50 +++++++-------------------------- src/spdl/io/_composite.py | 12 +++++--- src/spdl/io/_core.py | 12 ++++++++ 3 files changed, 30 insertions(+), 44 deletions(-) diff --git a/src/binding/core/conversion.cpp b/src/binding/core/conversion.cpp index 7b0bdc7b..3da3a1e3 100644 --- a/src/binding/core/conversion.cpp +++ b/src/binding/core/conversion.cpp @@ -17,18 +17,14 @@ #include "gil.h" -#include - namespace nb = nanobind; namespace spdl::core { namespace { template -CPUBufferPtr convert( - const FFmpegFramesPtr&& frames, - bool pin_memory) { +CPUBufferPtr convert(const FFmpegFramesPtr&& frames) { RELEASE_GIL(); - return convert_frames(frames.get(), pin_memory); + return convert_frames(frames.get()); } template @@ -42,11 +38,9 @@ std::vector*> _ref( } template -CPUBufferPtr batch_convert( - std::vector>&& frames, - bool pin_memory) { +CPUBufferPtr batch_convert(std::vector>&& frames) { RELEASE_GIL(); - return convert_frames(_ref(frames), pin_memory); + return convert_frames(_ref(frames)); } } // namespace @@ -54,36 +48,12 @@ void register_conversion(nb::module_& m) { //////////////////////////////////////////////////////////////////////////////// // Frame conversion //////////////////////////////////////////////////////////////////////////////// - m.def( - "convert_frames", - &convert, - nb::arg("frames"), - nb::arg("pin_memory") = false); - m.def( - "convert_frames", - &convert, - nb::arg("frames"), - nb::arg("pin_memory") = false); - m.def( - "convert_frames", - &convert, - nb::arg("frames"), - nb::arg("pin_memory") = false); + m.def("convert_frames", &convert, nb::arg("frames")); + m.def("convert_frames", &convert, nb::arg("frames")); + m.def("convert_frames", &convert, nb::arg("frames")); - m.def( - "convert_frames", - &batch_convert, - nb::arg("frames"), - nb::arg("pin_memory") = false); - m.def( - "convert_frames", - &batch_convert, - nb::arg("frames"), - nb::arg("pin_memory") = false); - m.def( - "convert_frames", - &batch_convert, - nb::arg("frames"), - nb::arg("pin_memory") = false); + m.def("convert_frames", &batch_convert, nb::arg("frames")); + m.def("convert_frames", &batch_convert, nb::arg("frames")); + m.def("convert_frames", &batch_convert, nb::arg("frames")); } } // namespace spdl::core diff --git a/src/spdl/io/_composite.py b/src/spdl/io/_composite.py index 7e3c06dd..5112a59b 100644 --- a/src/spdl/io/_composite.py +++ b/src/spdl/io/_composite.py @@ -420,7 +420,6 @@ async def async_load_image_batch( decode_config: DecodeConfig | None = None, filter_desc: str | None = _FILTER_DESC_DEFAULT, device_config: None = None, - pin_memory: bool = False, strict: bool = True, **kwargs, ) -> CPUBuffer: ... @@ -437,7 +436,6 @@ async def async_load_image_batch( decode_config: DecodeConfig | None = None, filter_desc: str | None = _FILTER_DESC_DEFAULT, device_config: CUDAConfig, - pin_memory: bool = False, strict: bool = True, **kwargs, ) -> CUDABuffer: ... @@ -453,7 +451,6 @@ async def async_load_image_batch( decode_config=None, filter_desc=_FILTER_DESC_DEFAULT, device_config=None, - pin_memory=False, strict=True, **kwargs, ): @@ -544,6 +541,13 @@ async def async_load_image_batch( if not srcs: raise ValueError("`srcs` must not be empty.") + if "pin_memory" in kwargs: + warnings.warn( + "`pin_memory` argument has been removed. Use `storage` instead.", + stacklevel=2, + ) + kwargs.pop("pin_memory") + if device_config is None and "cuda_config" in kwargs: warnings.warn( "The `cuda_config` argument has ben renamed to `device_config`.", @@ -582,7 +586,7 @@ async def async_load_image_batch( if not frames: raise RuntimeError("Failed to load all the images.") - buffer = await _core.async_convert_frames(frames, pin_memory=pin_memory) + buffer = await _core.async_convert_frames(frames) if device_config is not None: buffer = await _core.async_transfer_buffer(buffer, device_config=device_config) diff --git a/src/spdl/io/_core.py b/src/spdl/io/_core.py index db7a10cf..8376478d 100644 --- a/src/spdl/io/_core.py +++ b/src/spdl/io/_core.py @@ -552,6 +552,12 @@ def convert_frames( - ``W``: width - ``H``: height """ + if "pin_memory" in kwargs: + warnings.warn( + "`pin_memory` argument has been removed. Use `storage` instead.", + stacklevel=2, + ) + kwargs.pop("pin_memory") return _libspdl.convert_frames(frames, **kwargs) @@ -567,6 +573,12 @@ async def async_convert_frames( **kwargs, ) -> CPUBuffer: """Async version of :py:func:`~spdl.io.convert_frames`.""" + if "pin_memory" in kwargs: + warnings.warn( + "`pin_memory` argument has been removed. Use `storage` instead.", + stacklevel=2, + ) + kwargs.pop("pin_memory") return await run_async(convert_frames, frames, **kwargs)