From 7826e2d039159809f2b16101545cefe2819db16c Mon Sep 17 00:00:00 2001 From: Ahmad Sharif Date: Wed, 31 Jul 2024 16:53:21 -0700 Subject: [PATCH] [torchcodec] Add support for Nvidia GPU Decoding (#137) Summary: Pull Request resolved: https://github.com/pytorch/torchcodec/pull/137 Pull Request resolved: https://github.com/pytorch/torchcodec/pull/58 X-link: https://github.com/pytorch-labs/torchcodec/pull/58 1. Add CUDA support to VideoDecoder.cpp. This is done by checking what device is passed into the options and using CUDA if the device type is cuda. 2. Add -DENABLE_CUDA flag in cmake. 3. Check ENABLE_CUDA environment variable in setup.py and pass it down to cmake if it is present. 4. Add a unit test to demonstrate that CUDA decoding does work. This uses a different tensor than the one from CPU decoding because hardware decoding is intrinsically a bit inaccurate. I generated the reference tensor by dumping the tensor from the GPU on my devVM. It is possible different Nvidia hardware show different outputs. How to test this in a more robust way is TBD. 5. Added a new parameter for cuda device index for `add_video_stream`. If this is present, we will use it to do hardware decoding on a CUDA device. There is a whole bunch of TODOs: 1. Currently GPU utilization is only 7-8% when decoding the video. We need to get this higher. 2. Speed it up compared to CPU implementation. Currently this is slower than CPU decoding even for HD videos (probably because we can't hide the CPU to GPU memcpy). However, decode+resize is faster as the benchmark says. Reviewed By: scotts Differential Revision: D59121006 --- CMakeLists.txt | 3 + README.md | 4 + benchmarks/decoders/BenchmarkDecodersMain.cpp | 3 +- benchmarks/decoders/manual_benchmark.py | 101 +++++++++++ setup.py | 4 + src/torchcodec/decoders/_core/CMakeLists.txt | 33 ++++ src/torchcodec/decoders/_core/FFMPEGCommon.h | 2 + .../decoders/_core/VideoDecoder.cpp | 160 ++++++++++++++++-- src/torchcodec/decoders/_core/VideoDecoder.h | 5 + .../decoders/_core/VideoDecoderOps.cpp | 9 +- .../decoders/_core/VideoDecoderOps.h | 3 +- .../decoders/_core/video_decoder_ops.py | 1 + test/decoders/CMakeLists.txt | 4 + test/decoders/VideoDecoderTest.cpp | 52 ++++++ test/decoders/manual_smoke_test.py | 37 +++- test/generate_reference_resources.sh | 2 + .../nasa_13013.mp4.frame000001.cuda.pt | Bin 0 -> 389980 bytes .../nasa_13013.mp4.frame000002.cuda.pt | Bin 0 -> 389980 bytes 18 files changed, 400 insertions(+), 23 deletions(-) create mode 100644 benchmarks/decoders/manual_benchmark.py create mode 100644 test/resources/nasa_13013.mp4.frame000001.cuda.pt create mode 100644 test/resources/nasa_13013.mp4.frame000002.cuda.pt diff --git a/CMakeLists.txt b/CMakeLists.txt index 4dfeb060..fc8d17c2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,9 @@ cmake_minimum_required(VERSION 3.18) project(TorchCodec) +option(ENABLE_CUDA "Enable CUDA decoding using NVDEC" OFF) +option(ENABLE_NVTX "Enable NVTX annotations for profiling" OFF) + add_subdirectory(src/torchcodec/decoders/_core) diff --git a/README.md b/README.md index 0158e913..a34b48a8 100644 --- a/README.md +++ b/README.md @@ -134,3 +134,7 @@ guide](CONTRIBUTING.md) for more details. ## License TorchCodec is released under the [BSD 3 license](./LICENSE). + + +If you are building with ENABLE_CUDA and/or ENABLE_NVTX please review +[Nvidia licenses](https://docs.nvidia.com/cuda/eula/index.html). diff --git a/benchmarks/decoders/BenchmarkDecodersMain.cpp b/benchmarks/decoders/BenchmarkDecodersMain.cpp index a9762a0b..5be64e6d 100644 --- a/benchmarks/decoders/BenchmarkDecodersMain.cpp +++ b/benchmarks/decoders/BenchmarkDecodersMain.cpp @@ -145,7 +145,8 @@ void runNDecodeIterationsWithCustomOps( /*height=*/std::nullopt, /*thread_count=*/std::nullopt, /*dimension_order=*/std::nullopt, - /*stream_index=*/std::nullopt); + /*stream_index=*/std::nullopt, + /*device_string=*/std::nullopt); for (double pts : ptsList) { seekFrameOp.call(decoderTensor, pts); diff --git a/benchmarks/decoders/manual_benchmark.py b/benchmarks/decoders/manual_benchmark.py new file mode 100644 index 00000000..a19c1d43 --- /dev/null +++ b/benchmarks/decoders/manual_benchmark.py @@ -0,0 +1,101 @@ +import argparse +import os +import time + +import torch.utils.benchmark as benchmark + +import torchcodec +from torchvision.transforms import Resize + + +def transfer_and_resize_frame(frame, device): + # This should be a no-op if the frame is already on the device. + frame = frame.to(device) + frame = Resize((256, 256))(frame) + return frame + + +def decode_full_video(video_path, decode_device): + decoder = torchcodec.decoders._core.create_from_file(video_path) + num_threads = None + if "cuda" in decode_device: + num_threads = 1 + torchcodec.decoders._core.add_video_stream( + decoder, stream_index=0, device_string=decode_device, num_threads=num_threads + ) + start_time = time.time() + frame_count = 0 + while True: + try: + frame, *_ = torchcodec.decoders._core.get_next_frame(decoder) + # You can do a resize to simulate extra preproc work that happens + # on the GPU by uncommenting the following line: + # frame = transfer_and_resize_frame(frame, decode_device) + + frame_count += 1 + except Exception as e: + print("EXCEPTION", e) + break + # print(f"current {frame_count=}", flush=True) + end_time = time.time() + elapsed = end_time - start_time + fps = frame_count / (end_time - start_time) + print( + f"****** DECODED full video {decode_device=} {frame_count=} {elapsed=} {fps=}" + ) + return frame_count, end_time - start_time + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument( + "--devices", + default="cuda:0,cpu", + type=str, + help="Comma-separated devices to test decoding on.", + ) + parser.add_argument( + "--video", + type=str, + default=os.path.dirname(__file__) + "/../../test/resources/nasa_13013.mp4", + ) + parser.add_argument( + "--use_torch_benchmark", + action=argparse.BooleanOptionalAction, + default=True, + help=( + "Use pytorch benchmark to measure decode time with warmup and " + "autorange. Without this we just run one iteration without warmup " + "to measure the cold start time." + ), + ) + args = parser.parse_args() + video_path = args.video + + if not args.use_torch_benchmark: + for device in args.devices.split(","): + print("Testing on", device) + decode_full_video(video_path, device) + return + + results = [] + for device in args.devices.split(","): + print("device", device) + t = benchmark.Timer( + stmt="decode_full_video(video_path, device)", + globals={ + "device": device, + "video_path": video_path, + "decode_full_video": decode_full_video, + }, + label="Decode+Resize Time", + sub_label=f"video={os.path.basename(video_path)}", + description=f"decode_device={device}", + ).blocked_autorange() + results.append(t) + compare = benchmark.Compare(results) + compare.print() + + +if __name__ == "__main__": + main() diff --git a/setup.py b/setup.py index fb5d0278..75310cea 100644 --- a/setup.py +++ b/setup.py @@ -112,12 +112,16 @@ def _build_all_extensions_with_cmake(self): torch_dir = Path(torch.utils.cmake_prefix_path) / "Torch" cmake_build_type = os.environ.get("CMAKE_BUILD_TYPE", "Release") python_version = sys.version_info + enable_cuda = os.environ.get("ENABLE_CUDA", "") + enable_nvtx = os.environ.get("ENABLE_NVTX", "") cmake_args = [ f"-DCMAKE_INSTALL_PREFIX={self._install_prefix}", f"-DTorch_DIR={torch_dir}", "-DCMAKE_VERBOSE_MAKEFILE=ON", f"-DCMAKE_BUILD_TYPE={cmake_build_type}", f"-DPYTHON_VERSION={python_version.major}.{python_version.minor}", + f"-DENABLE_CUDA={enable_cuda}", + f"-DENABLE_NVTX={enable_nvtx}", ] Path(self.build_temp).mkdir(parents=True, exist_ok=True) diff --git a/src/torchcodec/decoders/_core/CMakeLists.txt b/src/torchcodec/decoders/_core/CMakeLists.txt index 0fe8f243..10b11751 100644 --- a/src/torchcodec/decoders/_core/CMakeLists.txt +++ b/src/torchcodec/decoders/_core/CMakeLists.txt @@ -4,6 +4,26 @@ set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) find_package(Torch REQUIRED) + +if(ENABLE_CUDA) + find_package(CUDA REQUIRED) +endif() + +if(ENABLE_NVTX) +file( + DOWNLOAD + https://github.com/cpm-cmake/CPM.cmake/releases/download/v0.38.3/CPM.cmake + ${CMAKE_CURRENT_BINARY_DIR}/cmake/CPM.cmake + EXPECTED_HASH SHA256=cc155ce02e7945e7b8967ddfaff0b050e958a723ef7aad3766d368940cb15494 +) +include(${CMAKE_CURRENT_BINARY_DIR}/cmake/CPM.cmake) +CPMAddPackage( + NAME NVTX + GITHUB_REPOSITORY NVIDIA/NVTX + GIT_TAG v3.1.0-c-cpp + GIT_SHALLOW TRUE) +endif() + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TORCH_CXX_FLAGS}") find_package(Python3 ${PYTHON_VERSION} EXACT COMPONENTS Development) @@ -19,6 +39,12 @@ function(make_torchcodec_library library_name ffmpeg_target) ) add_library(${library_name} SHARED ${sources}) set_property(TARGET ${library_name} PROPERTY CXX_STANDARD 17) + if(ENABLE_CUDA) + target_compile_definitions(${library_name} PRIVATE ENABLE_CUDA=1) + endif() + if(ENABLE_NVTX) + target_compile_definitions(${library_name} PRIVATE ENABLE_NVTX=1) + endif() target_include_directories( ${library_name} @@ -34,6 +60,13 @@ function(make_torchcodec_library library_name ffmpeg_target) ${ffmpeg_target} ${TORCH_LIBRARIES} ${Python3_LIBRARIES} +if(ENABLE_CUDA) + ${CUDA_CUDA_LIBRARY} +endif() + +if(ENABLE_NVTX) + nvtx3-cpp +endif() ) # We already set the library_name to be libtorchcodecN, so we don't want diff --git a/src/torchcodec/decoders/_core/FFMPEGCommon.h b/src/torchcodec/decoders/_core/FFMPEGCommon.h index 7bb61cef..b5ad4e03 100644 --- a/src/torchcodec/decoders/_core/FFMPEGCommon.h +++ b/src/torchcodec/decoders/_core/FFMPEGCommon.h @@ -57,6 +57,8 @@ using UniqueAVFilterInOut = std::unique_ptr< Deleterp>; using UniqueAVIOContext = std:: unique_ptr>; +using UniqueAVBufferRef = + std::unique_ptr>; // av_find_best_stream is not const-correct before commit: // https://github.com/FFmpeg/FFmpeg/commit/46dac8cf3d250184ab4247809bc03f60e14f4c0c diff --git a/src/torchcodec/decoders/_core/VideoDecoder.cpp b/src/torchcodec/decoders/_core/VideoDecoder.cpp index 0674a51b..28781490 100644 --- a/src/torchcodec/decoders/_core/VideoDecoder.cpp +++ b/src/torchcodec/decoders/_core/VideoDecoder.cpp @@ -5,11 +5,22 @@ // LICENSE file in the root directory of this source tree. #include "src/torchcodec/decoders/_core/VideoDecoder.h" +#include +#include #include #include +#include #include #include -#include "torch/types.h" + +#ifdef ENABLE_CUDA +#include +#include +#include +#ifdef ENABLE_NVTX +#include +#endif +#endif extern "C" { #include @@ -18,6 +29,9 @@ extern "C" { #include #include #include +#ifdef ENABLE_CUDA +#include +#endif } #include "src/torchcodec/decoders/_core/FFMPEGCommon.h" @@ -95,6 +109,87 @@ std::vector splitStringWithDelimiters( return result; } +#ifdef ENABLE_CUDA + +AVBufferRef* getCudaContext() { + enum AVHWDeviceType type = av_hwdevice_find_type_by_name("cuda"); + TORCH_CHECK(type != AV_HWDEVICE_TYPE_NONE, "Failed to find cuda device"); + int err = 0; + AVBufferRef* hw_device_ctx; + err = av_hwdevice_ctx_create( + &hw_device_ctx, + type, + nullptr, + nullptr, + // Introduced in 58.26.100: + // https://github.com/FFmpeg/FFmpeg/blob/4acb9b7d1046944345ae506165fb55883d04d8a6/doc/APIchanges#L265 +#if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(58, 26, 100) + AV_CUDA_USE_CURRENT_CONTEXT +#else + 0 +#endif + ); + if (err < 0) { + TORCH_CHECK( + false, + "Failed to create specified HW device", + getFFMPEGErrorStringFromErrorCode(err)); + } + return hw_device_ctx; +} + +torch::Tensor allocateDeviceTensor( + at::IntArrayRef shape, + torch::Device device, + const torch::Dtype dtype = torch::kUInt8) { + return torch::empty( + shape, + torch::TensorOptions() + .dtype(dtype) + .layout(torch::kStrided) + .device(device)); +} + +torch::Tensor convertFrameToTensorUsingCUDA( + const AVCodecContext* codecContext, + const VideoDecoder::VideoStreamDecoderOptions& options, + const AVFrame* src) { + TORCH_CHECK( + src->format == AV_PIX_FMT_CUDA, + "Expected format to be AV_PIX_FMT_CUDA, got " + + std::string(av_get_pix_fmt_name((AVPixelFormat)src->format))); + int width = options.width.value_or(codecContext->width); + int height = options.height.value_or(codecContext->height); + NppStatus status; + NppiSize oSizeROI; + oSizeROI.width = width; + oSizeROI.height = height; + Npp8u* input[2]; + input[0] = (Npp8u*)src->data[0]; + input[1] = (Npp8u*)src->data[1]; + torch::Tensor dst = allocateDeviceTensor({height, width, 3}, options.device); + auto start = std::chrono::high_resolution_clock::now(); + status = nppiNV12ToRGB_8u_P2C3R( + input, + src->linesize[0], + static_cast(dst.data_ptr()), + dst.stride(0), + oSizeROI); + TORCH_CHECK(status == NPP_SUCCESS, "Failed to convert NV12 frame."); + auto end = std::chrono::high_resolution_clock::now(); + std::chrono::duration duration = end - start; + VLOG(9) << "NPP Conversion of frame height=" << height << " width=" << width + << " took: " << duration.count() << "us" << std::endl; + if (options.dimensionOrder == "NCHW") { + // The docs guaranty this to return a view: + // https://pytorch.org/docs/stable/generated/torch.permute.html + dst = dst.permute({2, 0, 1}); + } + return dst; +} + +#endif + } // namespace VideoDecoder::VideoStreamDecoderOptions::VideoStreamDecoderOptions( @@ -340,13 +435,13 @@ void VideoDecoder::initializeFilterGraphForStream( inputs.reset(inputsTmp); if (ffmpegStatus < 0) { throw std::runtime_error( - "Failed to parse filter description: " + - getFFMPEGErrorStringFromErrorCode(ffmpegStatus)); + "Failed to parse filter description: " + std::string(description) + + "; " + getFFMPEGErrorStringFromErrorCode(ffmpegStatus)); } ffmpegStatus = avfilter_graph_config(filterState.filterGraph.get(), nullptr); if (ffmpegStatus < 0) { throw std::runtime_error( - "Failed to configure filter graph: " + + "Failed to configure filter graph: " + std::string(description) + "; " + getFFMPEGErrorStringFromErrorCode(ffmpegStatus)); } } @@ -395,15 +490,37 @@ void VideoDecoder::addVideoStreamDecoder( int retVal = avcodec_parameters_to_context( streamInfo.codecContext.get(), streamInfo.stream->codecpar); TORCH_CHECK_EQ(retVal, AVSUCCESS); + + if (options.device.type() == torch::DeviceType::CUDA) { +#ifdef ENABLE_CUDA + // We create a small tensor using pytorch to initialize the cuda context. + torch::Tensor dummyTensorForCudaInitialization = torch::zeros( + {1}, + torch::TensorOptions().dtype(torch::kUInt8).device(options.device)); + codecContext->hw_device_ctx = av_buffer_ref(getCudaContext()); + + TORCH_INTERNAL_ASSERT( + codecContext->hw_device_ctx, + "Failed to create/reference the CUDA HW device context for index=" + + std::to_string(options.device.index()) + "."); +#else + throw std::runtime_error( + "CUDA support is not enabled in this build of TorchCodec."); +#endif + } + retVal = avcodec_open2(streamInfo.codecContext.get(), codec, nullptr); if (retVal < AVSUCCESS) { throw std::invalid_argument(getFFMPEGErrorStringFromErrorCode(retVal)); } + codecContext->time_base = streamInfo.stream->time_base; activeStreamIndices_.insert(streamNumber); updateMetadataWithCodecContext(streamInfo.streamIndex, codecContext); streamInfo.options = options; - initializeFilterGraphForStream(streamNumber, options); + if (options.device.is_cpu()) { + initializeFilterGraphForStream(streamNumber, options); + } } void VideoDecoder::updateMetadataWithCodecContext( @@ -632,6 +749,9 @@ void VideoDecoder::maybeSeekToBeforeDesiredPts() { VideoDecoder::DecodedOutput VideoDecoder::getDecodedOutputWithFilter( std::function filterFunction) { +#ifdef ENABLE_NVTX + nvtx3::scoped_range loop{"decodeOneFrame"}; +#endif if (activeStreamIndices_.size() == 0) { throw std::runtime_error("No active streams configured."); } @@ -719,8 +839,13 @@ VideoDecoder::DecodedOutput VideoDecoder::getDecodedOutputWithFilter( // This packet is not for any of the active streams. continue; } - ffmpegStatus = avcodec_send_packet( - streams_[packet->stream_index].codecContext.get(), packet.get()); + { +#ifdef ENABLE_NVTX + nvtx3::scoped_range loop{"avcodec_send_packet"}; +#endif + ffmpegStatus = avcodec_send_packet( + streams_[packet->stream_index].codecContext.get(), packet.get()); + } decodeStats_.numPacketsSentToDecoder++; if (ffmpegStatus < AVSUCCESS) { throw std::runtime_error( @@ -757,8 +882,9 @@ VideoDecoder::DecodedOutput VideoDecoder::convertAVFrameToDecodedOutput( UniqueAVFrame frame) { // Convert the frame to tensor. DecodedOutput output; + auto& streamInfo = streams_[streamIndex]; output.streamIndex = streamIndex; - output.streamType = streams_[streamIndex].stream->codecpar->codec_type; + output.streamType = streamInfo.stream->codecpar->codec_type; output.pts = frame->pts; output.ptsSeconds = ptsToSeconds(frame->pts, formatContext_->streams[streamIndex]->time_base); @@ -766,8 +892,22 @@ VideoDecoder::DecodedOutput VideoDecoder::convertAVFrameToDecodedOutput( output.durationSeconds = ptsToSeconds( getDuration(frame), formatContext_->streams[streamIndex]->time_base); if (output.streamType == AVMEDIA_TYPE_VIDEO) { - output.frame = - convertFrameToTensorUsingFilterGraph(streamIndex, frame.get()); + if (streamInfo.options.device.is_cpu()) { + output.frame = + convertFrameToTensorUsingFilterGraph(streamIndex, frame.get()); + } else if (streamInfo.options.device.is_cuda()) { +#ifdef ENABLE_CUDA + { +#ifdef ENABLE_NVTX + nvtx3::scoped_range loop{"convertFrameUsingCuda"}; +#endif + output.frame = convertFrameToTensorUsingCUDA( + streamInfo.codecContext.get(), streamInfo.options, frame.get()); + } +#else + throw std::runtime_error("CUDA is not enabled in this build."); +#endif // ENABLE_CUDA + } } else if (output.streamType == AVMEDIA_TYPE_AUDIO) { // TODO: https://github.com/pytorch-labs/torchcodec/issues/85 implement // audio decoding. diff --git a/src/torchcodec/decoders/_core/VideoDecoder.h b/src/torchcodec/decoders/_core/VideoDecoder.h index 41a1dd27..f864dc0f 100644 --- a/src/torchcodec/decoders/_core/VideoDecoder.h +++ b/src/torchcodec/decoders/_core/VideoDecoder.h @@ -12,6 +12,7 @@ #include #include +#include "c10/core/Device.h" #include "src/torchcodec/decoders/_core/FFMPEGCommon.h" namespace facebook::torchcodec { @@ -139,6 +140,8 @@ class VideoDecoder { // is the same as the original video. std::optional width; std::optional height; + // Set the device to torch::kGPU for GPU decoding. + torch::Device device = torch::kCPU; }; struct AudioStreamDecoderOptions {}; void addVideoStreamDecoder( @@ -253,6 +256,8 @@ class VideoDecoder { FilterState filterState; std::vector keyFrames; std::vector allFrames; + AVPixelFormat hwPixelFormat = AV_PIX_FMT_NONE; + UniqueAVBufferRef hwDeviceContext; }; VideoDecoder(); // Returns the key frame index of the presentation timestamp using FFMPEG's diff --git a/src/torchcodec/decoders/_core/VideoDecoderOps.cpp b/src/torchcodec/decoders/_core/VideoDecoderOps.cpp index 6f05299f..5f8ced3d 100644 --- a/src/torchcodec/decoders/_core/VideoDecoderOps.cpp +++ b/src/torchcodec/decoders/_core/VideoDecoderOps.cpp @@ -29,7 +29,7 @@ TORCH_LIBRARY(torchcodec_ns, m) { m.def("create_from_file(str filename) -> Tensor"); m.def("create_from_tensor(Tensor video_tensor) -> Tensor"); m.def( - "add_video_stream(Tensor(a!) decoder, *, int? width=None, int? height=None, int? num_threads=None, str? dimension_order=None, int? stream_index=None) -> ()"); + "add_video_stream(Tensor(a!) decoder, *, int? width=None, int? height=None, int? num_threads=None, str? dimension_order=None, int? stream_index=None, str? device_string=None) -> ()"); m.def("seek_to_pts(Tensor(a!) decoder, float seconds) -> ()"); m.def("get_next_frame(Tensor(a!) decoder) -> (Tensor, Tensor, Tensor)"); m.def( @@ -113,7 +113,8 @@ void add_video_stream( std::optional height, std::optional num_threads, std::optional dimension_order, - std::optional stream_index) { + std::optional stream_index, + std::optional device_string) { VideoDecoder::VideoStreamDecoderOptions options; options.width = width; options.height = height; @@ -124,6 +125,10 @@ void add_video_stream( TORCH_CHECK(stdDimensionOrder == "NHWC" || stdDimensionOrder == "NCHW"); options.dimensionOrder = stdDimensionOrder; } + if (device_string.has_value()) { + std::string deviceString{device_string.value()}; + options.device = torch::Device(deviceString); + } auto videoDecoder = unwrapTensorToGetDecoder(decoder); videoDecoder->addVideoStreamDecoder(stream_index.value_or(-1), options); diff --git a/src/torchcodec/decoders/_core/VideoDecoderOps.h b/src/torchcodec/decoders/_core/VideoDecoderOps.h index 1da65f6d..f79a1b04 100644 --- a/src/torchcodec/decoders/_core/VideoDecoderOps.h +++ b/src/torchcodec/decoders/_core/VideoDecoderOps.h @@ -35,7 +35,8 @@ void add_video_stream( std::optional height = std::nullopt, std::optional num_threads = std::nullopt, std::optional dimension_order = std::nullopt, - std::optional stream_index = std::nullopt); + std::optional stream_index = std::nullopt, + std::optional device_string = std::nullopt); // Seek to a particular presentation timestamp in the video in seconds. void seek_to_pts(at::Tensor& decoder, double seconds); diff --git a/src/torchcodec/decoders/_core/video_decoder_ops.py b/src/torchcodec/decoders/_core/video_decoder_ops.py index 6a22c098..b7d9b60d 100644 --- a/src/torchcodec/decoders/_core/video_decoder_ops.py +++ b/src/torchcodec/decoders/_core/video_decoder_ops.py @@ -114,6 +114,7 @@ def add_video_stream_abstract( num_threads: Optional[int] = None, dimension_order: Optional[str] = None, stream_index: Optional[int] = None, + device_string: Optional[str] = None, ) -> None: return diff --git a/test/decoders/CMakeLists.txt b/test/decoders/CMakeLists.txt index 21791dde..a5a26704 100644 --- a/test/decoders/CMakeLists.txt +++ b/test/decoders/CMakeLists.txt @@ -26,6 +26,10 @@ add_executable( VideoDecoderOpsTest.cpp ) +if(ENABLE_CUDA) + target_compile_definitions(VideoDecoderTest PRIVATE ENABLE_CUDA=1) +endif() + target_include_directories(VideoDecoderTest SYSTEM PRIVATE ${TORCH_INCLUDE_DIRS}) target_include_directories(VideoDecoderTest PRIVATE ../../) target_include_directories(VideoDecoderOpsTest SYSTEM PRIVATE ${TORCH_INCLUDE_DIRS}) diff --git a/test/decoders/VideoDecoderTest.cpp b/test/decoders/VideoDecoderTest.cpp index 057148b3..1fe19316 100644 --- a/test/decoders/VideoDecoderTest.cpp +++ b/test/decoders/VideoDecoderTest.cpp @@ -17,6 +17,10 @@ #include "tools/cxx/Resources.h" #endif +#ifdef ENABLE_CUDA +#include +#endif + using namespace ::testing; C10_DEFINE_bool( @@ -201,6 +205,54 @@ TEST_P(VideoDecoderTest, ReturnsFirstTwoFramesOfVideo) { } } +#ifdef ENABLE_CUDA +TEST(GPUVideoDecoderTest, ReturnsFirstTwoFramesOfVideo) { + if (!torch::cuda::is_available()) { + return; + } + at::cuda::getDefaultCUDAStream(); + std::string path = getResourcePath("nasa_13013.mp4"); + std::unique_ptr ourDecoder = + VideoDecoder::createFromFilePath(path); + VideoDecoder::VideoStreamDecoderOptions streamOptions; + streamOptions.device = torch::Device("cuda"); + ASSERT_TRUE(streamOptions.device.is_cuda()); + ASSERT_EQ(streamOptions.device.type(), torch::DeviceType::CUDA); + ourDecoder->addVideoStreamDecoder(-1, streamOptions); + auto output = ourDecoder->getNextDecodedOutput(); + torch::Tensor tensor1FromOurDecoder = output.frame; + EXPECT_EQ(tensor1FromOurDecoder.sizes(), std::vector({3, 270, 480})); + EXPECT_EQ(output.ptsSeconds, 0.0); + EXPECT_EQ(output.pts, 0); + output = ourDecoder->getNextDecodedOutput(); + torch::Tensor tensor2FromOurDecoder = output.frame; + EXPECT_EQ(tensor2FromOurDecoder.sizes(), std::vector({3, 270, 480})); + EXPECT_EQ(output.ptsSeconds, 1'001. / 30'000); + EXPECT_EQ(output.pts, 1001); + + torch::Tensor tensor1FromFFMPEG = + readTensorFromDisk("nasa_13013.mp4.frame000001.cuda.pt"); + torch::Tensor tensor2FromFFMPEG = + readTensorFromDisk("nasa_13013.mp4.frame000002.cuda.pt"); + + EXPECT_EQ(tensor1FromFFMPEG.sizes(), std::vector({3, 270, 480})); + EXPECT_EQ(tensor2FromFFMPEG.sizes(), std::vector({3, 270, 480})); + EXPECT_EQ(tensor1FromOurDecoder.device().type(), torch::DeviceType::CUDA); + EXPECT_EQ(tensor2FromOurDecoder.device().type(), torch::DeviceType::CUDA); + torch::Tensor tensor1FromOurDecoderCPU = tensor1FromOurDecoder.cpu(); + torch::Tensor tensor2FromOurDecoderCPU = tensor1FromOurDecoder.cpu(); + EXPECT_TRUE(torch::equal(tensor1FromOurDecoderCPU, tensor1FromFFMPEG)); + EXPECT_TRUE(torch::equal(tensor2FromOurDecoderCPU, tensor2FromFFMPEG)); + + if (FLAGS_dump_frames_for_debugging) { + dumpTensorToDisk(tensor1FromFFMPEG, "tensor1FromFFMPEG.pt"); + dumpTensorToDisk(tensor2FromFFMPEG, "tensor2FromFFMPEG.pt"); + dumpTensorToDisk(tensor1FromOurDecoderCPU, "tensor1FromOurDecoder.pt"); + dumpTensorToDisk(tensor2FromOurDecoderCPU, "tensor2FromOurDecoder.pt"); + } +} +#endif + TEST_P(VideoDecoderTest, DecodesFramesInABatchInNCHW) { std::string path = getResourcePath("nasa_13013.mp4"); std::unique_ptr ourDecoder = diff --git a/test/decoders/manual_smoke_test.py b/test/decoders/manual_smoke_test.py index 7351155c..389aa5f4 100644 --- a/test/decoders/manual_smoke_test.py +++ b/test/decoders/manual_smoke_test.py @@ -4,17 +4,36 @@ # This source code is licensed under the BSD-style license found in the # LICENSE file in the root directory of this source tree. +import argparse import os import torchcodec from torchvision.io.image import write_png -decoder = torchcodec.decoders._core.create_from_file( - os.path.dirname(__file__) + "/../resources/nasa_13013.mp4" -) -torchcodec.decoders._core.scan_all_streams_to_update_metadata(decoder) -torchcodec.decoders._core.add_video_stream(decoder, stream_index=3) -frame, _, _ = torchcodec.decoders._core.get_frame_at_index( - decoder, stream_index=3, frame_index=180 -) -write_png(frame, "frame180.png") + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument( + "--device", default="cpu", type=str, help="Specify 'cuda:0' for CUDA decoding" + ) + args = parser.parse_args() + + decoder = torchcodec.decoders._core.create_from_file( + os.path.dirname(__file__) + "/../resources/nasa_13013.mp4" + ) + torchcodec.decoders._core.scan_all_streams_to_update_metadata(decoder) + torchcodec.decoders._core.add_video_stream( + decoder, stream_index=3, device_string=args.device + ) + frame, _, _ = torchcodec.decoders._core.get_frame_at_index( + decoder, stream_index=3, frame_index=180 + ) + if "cuda" in args.device: + output_name = "frame180.cuda.png" + else: + output_name = "frame180.cpu.png" + write_png(frame.cpu(), output_name) + + +if __name__ == "__main__": + main() diff --git a/test/generate_reference_resources.sh b/test/generate_reference_resources.sh index be77ffae..7f998509 100755 --- a/test/generate_reference_resources.sh +++ b/test/generate_reference_resources.sh @@ -40,6 +40,8 @@ ffmpeg -y -ss 12.979633 -i "$VIDEO_PATH" -frames:v 1 "$VIDEO_PATH.time12.979633. # Audio generation in the form of an mp3. ffmpeg -y -i "$VIDEO_PATH" -b:a 192K -vn "$VIDEO_PATH.audio.mp3" +# TODO: Add frames decoded by Nvidia's NVDEC. + for bmp in "$RESOURCES_DIR"/*.bmp do python3 convert_image_to_tensor.py "$bmp" diff --git a/test/resources/nasa_13013.mp4.frame000001.cuda.pt b/test/resources/nasa_13013.mp4.frame000001.cuda.pt new file mode 100644 index 0000000000000000000000000000000000000000..17c59fd4fd605422991ee6b2071d501f14cf7ea8 GIT binary patch literal 389980 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

vP@-w7fAA%TwD6F>6(Ab84uNQn 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

+3eN<=gU#|@xcf_S1gx(L-=f3E~Vl(@fjof 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�y-qQ>k|KQ#8{_((2N+M>J&AV3IRMaps%YywR2H$XIq z;ARvK`V9gvL>;;=3MH`9@_?G~*(i0G-^~^wDIA*5fJl-zgwM` zn)S=-XMiSAulGrWMt=e{WyMJ5MpT8p;y%h7 z)XADxk`5juQR6?~xnn?k^`;n2%W89$blp((&=6C4O+Q0sxm2NvN1^CKW3Y^bw#p6s z4e~cgpMF#Lydd+I&+C|bWAFJU@p)&L33|)|*gS<+->(<&c?svm9uP=TNq5T{5cR=~ zSiw9UGq>gG~ zGEE(*hg@fBXD{Dlhd>Jsa27&T%#xLEzs85tCpIK=>Gwg}-faNhFy zjb+<6;fdeG=lHpJ@tAAb(Hq)9>mJe9z2(h4Y+pA2nYqT28qJJjojCWZi=}SV0#Y{e zG_=`ABQz#U0b2ty+fI)l=M87T z!0V36E?ARgL68x#G1%b4Gbg01hNB2+v2ei-*Y8Ng{RCKu^^FS+v}LcBI&@Az`n;pADRK=0f1a0%L_5C3nnVsx zg5UeDVHW9WIxJ=D44kc!@klO5WL%(uu_+|yd6D@Xsc5;{ieGS%nxe8(D8osYjC`e# zvsiG?ibWRttGmkEkMEDfbNH{XH+&XIe%2qHwMBAco^$-Od2Rho0Mhn%xb_OXDSW0r zWoI`_L?49B`-8C$&Wk-D#^*RI*08L{65YmUC5fX1kEMiG4z|EqfT{fl?&M1Z7Au62 z;tSz3wg6a$v6{NVWVso!S9L-b6vI0GNV!Lj>wMCRk2ZGl>da=HPSku9e&=!e@MpIG>?(oX=?B$W;gcwe*!*T#rPq5o?JRKFi6G z=M!1S3i7CHI-mkxPBCIK%Tdla{C2!_oZ49M7(fl5sZ7bGYvaL1&FaGELc-4BMenK0 zBKS;|_lxj3l_+RLLuvS2EL2(O3$C?4uvg`?RHm$9SrdE9=WDR~7T$PM_>2xImQabz z_{gk%OkRw}*DDRxH;MSHF{KwT%V%V>gxa%39uUbB?1>z0;-H-8hwXuylB3)T_Y@wM^T? zWy0KG;s9I5l35o&>c1kvFCtmsED~B&bS^{h>#O`9{ZE#QSK_lS8{G2wTL|74{FUDn zKBJtQt*~J5F}!(>;W~kDy(iA7`1*_S88W~YfddN_8M?}=LJUEQEaVXZ-w|^-+{Jkzs$7=*vH0&Ol$PT%H$#D%HDc{uXMX}u%!?o91K8id5q=*p zkACv+=0Ee)say&G7Xbu{eRTWet=w_*mnY9X_gqR$Xz^KNAvrfL!7h!HhtEv#$61k` ziFXHlCM6NGN;RhN#;@~A(#l-5kZy`R+qmerwlAML{egTn>oZd; zQ?i&=@f?9Jzn*z!e`*z zKY*!21RX|;w_$eI(^yUdJUp+wF7q#2Lb>q4p6MS{x1jip@zz9i0iQ)qO3!CJuE2Ss z#ysGGOF|Ps^Z2FG+s|*kU4e3NPo0C}b7V*dMDK;q>gB{>mH=lEO{Zsdbar%vd93Ce z6DuGZGE>e^Z!OJ+xwxV6OoOQdSB%dn)DWK6Xsp&7OVx=va(hO(am{2-g zU@{P!_zKw0w!~l)4#$09Yzr5~#lmDSx-Hb`&VcBUf64htfO81RC{4m=#+XbumfN9}oo7SVWA#RHj6p4b~9=QFPq+Es*4Q3NIJ;y`XD>W3Z8{z~PM945cA6g7FNW zr|TuzP%n zfrrXrMdV5E1or>p?8&XQcX_jL70i3cmEyOVZmd$`ipN%G01LvKWntlDmB|u^$#)$L zX|RmQqV{d6Ro^$CvvBV4`FMhNk5~Pw@Huj8*yC`B_zcRt{VYD?+}I1B<$q4`S^a~8 zGkn9GrUntHDYZz+PbTU^q%!I&Y}(I)SgwDAw+wK`u>gv3IE&JN3!!tcQD5FzIlDN! z#f*UjZYlQ4}+OE9d8PZXZRev9OFx@51jcruqmrjlqNO-EuM$*_^ znmI}Oj>W~(Iwi=A>}+1zTs^s^9w=b@)o;`Kyz0J*c=jXSV zmrpn9^W_qg5sa!^5Ks%ztxWc9&l+TlVh*~Lk_+b!pZ7?rW4l@lqLYQa+>PAeOe&K( zATmn9d}_Yk%3rPM=>EP^N(TCeC4&RyzTTnKuh#X0;-9G^`&rbA*%jsZHJYVppf6|w zeJyl>xUwiwTOF*Gho%tXyGjG0Gy&1U=@EU=d!v`mtp1@%q7DX!rz%X$0CU0f0Nvz#+Bo<&8#NQ4Hl8Rfx7 zh^Fgr)W=uHt80~!r8paNNN`sp;;u9>SsPoVqmX=Y%tA$0PZD3u&7PW{JB^TIA0ZDj zsW6t8&N1M6ZS}(X+Qp6aOAvd0fzj&>U7zC{VRP#e#D=|Z4_4nA7%TOTSBTjtO*cm7 zcvB$wJ&3y?FEknLuyS!q+|ay3mfllZJuRD!=1}l&wlXvN4LNF;^A+8b^q3l zZ@&2C{*7y2-?)DFvyZ<1B?F;i171O319zBl>0Y zS#XBT37knpUk@_ah@?qoAv%}O0oQ|d@p-6BdWRMGJOP=5|2gI}>lkU9N;L1D8J|HJ zsv&W7MD%_^x0)26F*q@pjnDG^irB!8-*$&(59H*Fkq_qGz}^ zGEg5c&s;k7!P?9=FFQuc&}qn9gLKg6&V97AbNP!ezPWSfci(*T-S6-H{?Xk>kM7*Q zbMwZNZ@&BX%ZK-V^ZSQ)p4_?hEr|Zr^>1!|bXR=7{=vWe=>0E0xP0qEAoJ(Qd+*-3 zaQ5S^^$R;&mtivH#_D;@ern+J(!xo;8fGS!LG&PQjh^AH_0!Xn3-Wa&UJg%Y=|44} zR#>I1A zTsr?(7th@|clzUvRcL$}AY(bNES|xCPW%aubc|caH!+<0$& z^e-!uJ@wi^eWAJt{~)Vs#8#tgUoLGr3 zodzD8FowNnJh*NKYkUWBA9zVI&7vmo8t5(Ki^hb;FfcyTGIK%wviaPEbH~4NY=E4) z&>}wf75ppmKYN?m=YsY&gV%lArtu5Tl;X3M2I@-}-yf|^^mGrTT+rUIG>4y#<`Inw-7~|DZVZ)9mBa6J9(MV;GK~v=ortV z)wz&rX=EB-F2Tm$ie_=DK3}ciMX!P;`PgAEghb>32`EnDsKfn9Qnu=b^Vz~p4iasm zQvMSiNWGj~7YdZd!Or;y<2-WC4EK(gdaCoKxwCU;&d;1$8l1uB%&o(C#(O`|H;-Js z{MF-!fA`z3|L*Z`|NiSQpL~4v_We75`{n1~U48G%chBC~Ir-t{#+9Y{GqY3MjoLbi zIP{_%9GDsCCw0^7Ir_KgYJT6s>7|2FTLG zaN}rF6+<+OR4Vq>m?N@5o&cZ3{xmqFwBa*kCWHe4$ncpmNy{1AsO&R!AmH2$P6x&Z zhbQ4Po(;UvFP6_bD9}c!O)k@oh>qQhUzZ^yglzyoN=S&YN_UuyMqID)Hv)d(C|5sa zgvx08MMJa&kS9tE>Li}o0-I4lqTVL(8P^SPjv`D#f)PfYb7z2awKUb}ovd|DoUU)~ zkUq4+c=<5>0Vz!e`xm<3o|>+m-CDi2Jp19&%+AUbq$hS5V&kYUn1tidF$WvntfSso#RQDOG6!`Tc5loX0{7d?}` z?wRcM_Iysmxx?pU1LV|&zF0nc%Q?2F3;fS&t7^%wd@sE$lApo8Jt5X|0jG38t|H8pTpH1=>t4?ji2YUC{e z&WuLKj~xkf95g0tOT@ep;78Bk`s&$B7p@ZphhXvI2ImD~hwJJl=f<>RD*D(nDV6#w zh;XW2JpHQZ<>m>8_eki`NTdb73d~S|y>>;87bW9L0_2)`=Y0Dt(mj*C?wRcMHhj*3 zbBE6mMum*4rgp;34^<_Epg1o?&WB7GfeZ+gtG^Al%ay3Sd-1Mz!4NJ zqDbsl2x&rhByL`M{SZRw5a5ZR;Ai04?V^CBE=}G5U&b!nC`YLGKMT}0Ns781Igq9{ zs8;3~ zY*#&fTM{9n$#6siXyG zA~aASp#+2iXKn%)<(m;Xd$j%!*WsjVVZhR!}^CecxJAl&tYQb6E~7e9r`%x{H0 zHMN06i-FG&8%vv03h^X){%tDd>&W>vGn-X6<}uPYlq=SF)Q~({O}BO0D7JD+>G1hT z@$sN9rVXEEN;7S@;B1KA%}#EPVexB<#^$>~d1gNIMC3gMc&wm4QN-5%VaLkU9c0OPe4hPFN%BtZB?D_2Lr57=|s9sxv zKCmf)gjmiZwt7XepR)qA5$ah-cgae>l~z;V9Q$YIU|+DMQb%DTstXrBF|!#m!(=MK zvW$5)(VE%QP>qs1WlP?|8DaWhlaT?&Iwg`Dp^*Y?LF-Ce(b=t3)8X?$Bkf2X-}o$R zc_8|iI63-R8XPD|0JT_c9*A zSREn?3hZaC$;!%>X_QW3*%piVjPXqPnJin#sb~jSo#k**O%aEEz28=}$G8=uRSJd? zKjXj^W3MT?WbjMOo(Z=|j(U5wv0AidAT!QnJQZRuor7|rz+Ng>R^EZeh@n{FaGZlg zRyRktSEpCP5c@pQ->bD8FAbZFm4=%#RH9=7-xt~H(m@)&nPr+*8qTcX*Y|pd&qs=n z2YoTd=h#{npj|mM$e2FHS;ufTD>@g>RC*?RUHyQb((UbMYxD9A+M+3`hbZ=rCK=js zam0uYE{<5phsner_$o;&>Obd!Efk8mRDzjJx3k%1iIv!r_nr+6$SKA1nfV7zFrEo- zko_!*qT?v`MD@C-u5|xvR`=_e9nNavvxg!4#MR(=>v;%85xJ?ME+V?(jzI8QLu}hN za*_m_oPA;y7$a)=NU=tMd9vSnqI2?}E&iD-F*?-Bf3 zCIQGMDMMOK$Xb+FtaT;PAR#Qoui*6-S9WhEBTZD(@jo9l>R!p?XZbuhIOy;k+s`RJ zn=d*`Y0qS@7xB5JZM)b!OdXyko`Td0_FUK#lsskWxihkS7Mw{b-_=vrm^gJpfmsaW zpP0{pRCM*MF5<1HbaowIlgnp7ZB!Hwv7ccneg-BVQ9?P8yB9tiGd-vyR>$*yiR2i} z(d62pXAt3798q~eX0!J~+XIqPuz7g6cvAG>*t5fG{_$~7ToIqEgQZydnVe;SDL;n0n1wbB zE)G#-O)^K0Xa(k3*v8AVpFN*FR1LPC$zHb=a+Ta&v8G69_A`s}6^G!r`ZAOTyu0!_ zqV7D|o7u`sRKvt5@!VAeY}Bet2ntp=aK@0vx+eJ&k}{aVvb-W#+InB;l|g8S7e(l$ z%G&q>a5npStjf3;dU!=5vP zb>@E#N+ztXh|GK8b1K3aP`9-0JuKRDVPuw)@^9GUz|ffS8689udBs<==>m;SkT96?rr8V}M!aUP0>P%kY_cxJ}O>+s4q2)=6l* z#!n=3cCtejebPiLnLj1tYnXL~!7PMKx92l(=C7vVCn{+hzQLI8Tb(L>4Z5wl7o}y} z4xbML*N)0L7@vW&{cF!>Zxu`T#LoUo4J)KLZ=1BV?Y4Z5pOn6VFi^4ATQZu>uvugK zWHrxN9$vZ*<(ih|EI30X5DlC|)iI* z>D9$kq|jfU-9|`}7X&gdouMRmH0epnO3ExJO(uioL?&wU2=l;VB+F)&x7l0Ej5N`Z zlV}`Dlgz%gSldAH^>26e>wAq#egf=Tv+M018gO?P*~CIKHpy-0p)&8^QK3cWIu76t zs6iQ=Q9Pg3APZY#lzr41ElTd1-YcRNY`6Y-X|Kmm(~ICU;0mU4VmZrrmSOC9jxLl* zVJqkd_dKOjShhu6+{R}ZC^)}tJ_FL(IVN4jAdja;Md1>JW$7xpB3?rvS`)Qk!v`OA zG!r6-hSegojUtyqsenMu;lg_dThY)4PpYBRw#H{eajqghT|i}ZXt-9cG)6|JloXEK-OQ~p*grHhP^ykpk+J^rWO=+%sm+d0 zZLDmqFK;d{ZX=Au#E$`xr=~ZVb%pe#jI6{O#|>`5A$o7(O`@}a)3(2n{RyZMpYdkU z8;B73tU=shR^at;M)z%uMXlqRj7~`2aJh=`>qvRDGBP$=smjJ^-_AXsj}|04S96ee z07SR3pL3C$s%+nGY1_GcCg{jNFYWag#b@ZGPkX^x55As#4LlUSR2t1ve8^?8ul$Mm z3_^kP(#q+nX_A+QSBYd-KEq_WEO?2?xj~KitQQ9*{D;p7E`Ps{?A< z?bzrz&07sP<)%wL1;*!te3(1OK8klB&utdf70jRF<2iF$Y3o*pgwGzlQSeoq6)nk- z6a3i1n!(u?Q6g(C9{J*Rk7d(e6rZzpa&C>;)jDC7I!SciMCe`J@zqho1Lo#`D-{t%A*29vv%> zA=SakL}_fiT&<7R#zrPaO0ktIy!*TvvF^r|bHbdqUYfj8>Hd@JhLhJKmtehtSk8n! z%Y=@`54Pj8Cv(bpW)VKK0&ot2(@F3@d^QsrceD%=Yx&K`;V8nPb4>?+2M&bKH1GB{ zv;Xz^?Pt$tV3Kt42M4B!$i|w6IMGathF_tN(rQx5Vc;|8%vo_Q@EMe$Q_9IhrTC2d z_srQ3Wkpj;LP$3Aza)qjpYcf3vss&56raH$BhskC_vj}DdVVVuC$n57LGHV63H*F$Hr_5%vpHqCMCC7+9@F%%*0!Q%< zylg(3?IDxHnztu#dp&-{o}+)z^EnsJP#Pu(#gyWM7TMO*SU>q1Fyh7Y8SgGW1l+s` zh{F(tcxDC*gJuAy6kDymVq4kCOW~9_bC{gVXDSJq0MX{zXv1fj(1dM}LWK3{PbBaI z9ork%F}+LI}s`2(#-3vlb@PCmYs@`YTgpW-%sq)Zb^XOB6O_ zx|3Rc0U*;w2$RvZNJPi<%yNB_xQ;L-3anN*hwNuVv@uzxGT@b>Qoqvn@E?mnk)!L1fT|=?md=d^1}uXW*<3M_Jb@M=Euw z%V0p1`s89`YI(A;L?DMijS{_gMp^B&B@9l9Bz8dqTf|0o%g^iyEIv~M zpS7k3yYU%iyo!Upq8i!NDm#2W3NOM@mcTi97-Btdewhf)q5IE7<}L^&j*h`8go|@&q>92MCgOr9 zI9wB~%)1E}#Kzj0#raM80qYatxQyCdZO^&s4xTyZw`ONqiOCstj2_f&q{oRf`u$TTWN@d&gl35LA zYI*@UvjVM%_9IHuZjI0M6|y*78bL6mMQMKZZT^rvvz^m8R(Bu=(T9xBJWys@3(k5H zi});XWy>N~r~C%Cm}@+T$|#RLXu^K>e8zbG$@q-T%mo4~tWB;9aAmL8fSFO6{dWdu z6h@9PU<547Fs9_|Kzt_XPSl;9UR{{m0MUEkbF+(3N8#4V2*5jm%Q)#qAYZ4%RZpGh&SgJ~OCLp&E+f5QiZ%LD9zNj{SVB zNO)*3HjU^*#%B*_vyo7aC!Zk|Kn7W$jP5gNM$NwXoY=R4pPtVQ?!#aP%e;3G6y84K zGqKRDjH3fG&(E$;))vB?hEbCL4E)2IUgRDL2Z|!M=>)`h#VGB#xsW&pXKO?uf<)v@+B&(ttCzjxfA>1jCMw5DGJ-*ZH{w;WQnYXMIEvxMxoBw z&mdZEI!Xk$29iVRW59vVB_7&4&_wj%ook|4jn#AglJ6$L7Bp`E#ldbPTK&{8k~ZHNeqNRF^KN)`OtEyb7FP} zVniP@KAT;Hk`UNXoU0stJ~ttp7?wFT`{c9jLD(0l>9F%YkpAAv=tu)Z4-JI$+K9R! zy_dr?ADuzs+5=dYivxx6gF-ZvR&2AFoGL?apvJr;A4DvAJ{z3d@R{HZjAsmH8V@DD z4lT+;rWBuLJa_D8qd`YGgm)ky`VjMZZ-{>Bd{#)X`UmMmBZMO)ST5)v%=K5O(p(UJ z9k1I8L1}~H+@JQt=U_`GJCQ*yN(bEqEL2Kuj&<5uYpAR9Fj`k_ZD&FHY#wK*;|5BTG zcXv~xwaCBZ57FGTi1QjJm?^!TysO^Ek0B#1Tl#nm|0^aLPrc|wteTXlCMWJLY#3$o z=j&cQXpmW=T+>8HTY$9IWY&O4fK{2sKY~9pHQ_Az~rtE1V z*Vvm<@M#Fe!MTzAqa`bcSeUb-uTOKpr5b!^v2zDr(jD;d-1QJin{E03>{f@F&sk!q z#oKobAc!7MzRHipjo@d|0h2;*Pvrl@b=4Ic3=j3zl>Aeg- z^Wm8*xwdp0`?-i7p3l+~o&-A+CVM_d#$MB&6ieehYqqQ?2u+BF%!tC$`0pf!1(tQqI?j6ogEBt?c#6M;)Wv*RZG z3?5_r8zkGGncFn~hF0_EV;iOv&u4Up=oimtf3N&$U_5IP#joRazkaLUbn@G$3W{FJ z^w}Arp|Js(KeXwrz-sWBXbtrV8m0HhX9jK~P&!EGU*`@Sf;;eReD)`v-9tMp+i&~i za~8sFYTEGGv%>58FwX-^Few3r%(>``J2;|kTZ4?Stdz^>wn$D1AzGDf_)Ih!X*wpS zR_PzK-R@CI@!28zVEAnJGo{#l%P36`lIJt8;9Nw@eony|K3hzk!8uWO?;pg!fiNn=q-##m!xkMqnsByBNF#uR{iNU- zecdDa@(8=EBjwP zev9h;IxYG>`TRWojn?OVcRshWrO9WR(8=Cf_$-gB@mVzXe3nkVM!m^xf}bSC=Xzsh zVQJ^BE3k7`E z^WsMY#38Afi0Gc28CBdc-u})E|jE zP=w@``nG(|QaYw_mb!`IlzOiBy?$FhXAzwXXDSE!Mi6mWl=fu`&M7{72IlHT@C^0E zeAW=Z6s5&{9YtjJ?(yt_{Q21X;u-i{#O?H-FZr{2CVO4$XDOY*vKi7HJ|79VbS~n# z??4NOix&34XHV&U^EONJ_V)H}d`=;{h|j8*c`Qo%(#&R4JoiM!_MFU;Gp=!b_N-2s z(?;nmncE-NpC`H@dcXGbi{i6bouzb#&(Hn%c6M;Y??4ffTk7}BXHmMlw?9{k?5=(D zd=Gr~h;GkkSndx9KC4&hm+4)N_Y5t z#NpDpycc>0TA1t?4v5b%Hdnk|*Xkopug@C+EbN8PqI8zkzTUWJU`zpXkBcdrdDq3F z-P&oiQS6*i%#cng{(kOFcYOzmb3?b6K`{<7kR_@<@ zdUyG6e*gH&#d9Zq^IZS_?a%H#eZpRszxu<|M~{De^Q#{oeDjA#kMDo=^uc#OKKbFR zKd!&|{fXJxTfg9Zeq_zN4;L1mYp*|@z5buxxc2(B*Pj0Sd-t9^e*ECx(??If`|-_B zez^bOhX?mBKf3qy&F_CccjM`e?|-ozZcgLoKMwsz_89&vzB%0|rtRkZ@xc#2vd=3Q z>wCC28*he#{P#aU{QPGeApBQ+klqvL?I7Q9?N7ovU%7Z@4~HrI8$EvX^y%XV;T-)Si4;oqs%&5fh{)7$z#aZk&3J^$+syV|79r?>WhyY7~)m;QHi>$p**H}*HZw`Jr1;5N2D zc6xJvN2)EG5B;C!vGe~@Ynxpjf4x69^DF=bTKACI=IYiN?kT3^v9&r*>#}x83fXr_=Pz z>^-Sx=AFII?AdQR=lyc7_v`sP&b?|$MM)}Qu)(3NzMf0HR0siO)lawX^@N6+fB47O zUVHuZ*Mk0wdQJJ-z`>!h{qw^K`vwjTBqWv>OJC~@_)i-C?}^TUEYyEeg={M!ktsw& zDr2`4GPx>5Xk>DckSnyJAya6#7kx80gVLa2jJU-k$w8T#hD53g4*siH z(0?YWTq7D1nOZcq^dcb-mMgauTY52*2Xp@gTv8H=B;ZK+ZukuB=otuw=dHe;Md6Ht zTfOc=z!}gMfin(@!Wjp*2xmM#B(k3Qm)7~rlNpO(GSedge5P;)he2bCXi8=t&UgTM zOo+fA8}KC|pEpBh`Y#gd{EI>x2Sfk6i@#rQ3C?)%R$tGeeBRM3G5qA=GZ1_R!hH6T zue zf$idR$m=ESKX2JNA^rx>=TNo=f1KCP3WbTnnHtU%%fV#cn9txgZ#z>mN5RJ?_BGMZ z0ay<3mnfNkdVCJ6Xi;>84?cr45azQ_(Y=WJnTIf4C|Fy-5!|JG2At(`BLp)qo`qx< zD(8*)O!YJMoI~-MYGxsvg=Bs{$}O@cOjJJ$X$&}r;~k;x2Fsa_({A+W$*5Zjy7K~p=FX6k{^ zTTy?5H#gvH0M1l7(_3CSW5JUdD5jqCPmj-X?mxdPg1ZxN`GoI=&%lnJf#6r5_ehw} zTlOU$qrin*ZyT;n;Ioj-L?m-?7V>$0t-!XRH7ZI=1AGRYp``(5pqNKA4`-IOB7}Tq zRAvNqHh^fnl?dTXRW#3M9?l?hFqZivJMBNqm27ZOMJ*~7wyK}QeBM#)gr9tqXW)79 zd8_$U__Qt>G$$eWc0&M)W|whP1Q`8;Siw&h0Z;hYyVS3cEA0x#Arh=b!G)YLBVB((PlB?=uMQl(zT7!Y#S zNEgAkq5jNJCsUaFvAMPQeqyNCm0YG2jgZ_9d0~VzIyQ-x@WZy@41|0c?y!CibsdE| zE(&LAu?E8#M_vU!Q#ecH2JksbVn93%oGDQOXQaRZ&RpmM_$(wd;QVUx8JEm9TzKK9 z2%mvXoPjW(eIyT5&OTnfK>At9I(hL7ID^byILlBiXhcY5CV0_M;0$ZuAV^A{zq+P> zEQB}U%!y}`v*Cra3~3=KW<*K}To)qR>F>b*CiGyyEu^?;gwoZU)6BwJ(e2UC5Y^%m zI^>1n{lX@$t?)y_XW(hiK**P2SU+<{N2t%^n?KGINt9P22f2D}5od#O@OU#uI zI^>11{)MN#_QKyEJ_CdP(DVe<39m^Lj=X55DU#`0&SL{l6ua> z*5LSzy9A+}at3>WWj;jtjDx&>_J_0A!RE=#!P%yO8P07`DpmG?;5RM<7ovX}@wdf4 zr|=t#n_Pq{W(oQF3E@8rO=&+w2V4#z?mq7F3V%I(2A=8+gm~S-V%ypNNTIHyP{+f3 zrivPHrp^Y1vyjiQH7J}_YA4TU(FNr*-Y){+OtDP27x4kX2YiTd_$sylGC$@n=bwna zC5a+>lUU{-wiA5z^EyIa7=d4Ss>?6@&EYe!;TZ^gwek1EeBNGvgA=zjH{)@)cA{5B zlQ$TLL=M~86eUB>1_`Xu<_^iy)YAZs0cT-sz-Mq05C)B@cTMeU>XQh`%&J@nSS#WY zq^P~z_V>4Wxh_g4+Sg%5PW*A53Qyp4;4jgAocb>cp!=!a`^kn?YYZ(+cS zhE#494Vl8Wr2ujRLR2}^$KWSMNzF7QG7ADn@Fgf)AXKG}ropPCN%+u8z64!O!iLHe zTC_sz!4)VoB!!1Y1pkEi{qZ~CIT=+9A4)b_G#HgDIEd2bbakL94U+_K4b))wzYR$L zSic)GRZ_hF(pGh~XfX>8Zq?tT*V`)woA95zpUx`{7Je;u* zg)I@D;itzpPx!UZ&pQz$iEGhKk)qg4X=3ihcgiE$m&MxX~0L8p`rk)0` zoWW-*o_Rh)KO;1TIGZ&ESdMq+Sd0k(wNhc%>)nZo`AJE6F)?ZR`PIe6by{t7WTY-K z3RU4|f@O7_QWXnC^Gx0$K7-pK5G@90lA#@{mCDZU4^lGow~ya06kKX_xycJQ{IFN* z33|oW3nZE^%0q2Z_ zLMGCfk_`Mj^6NN}>;#R4*%5TRFc{7>=Z%Lm&t$dMO#?>^`go@!JuN<8v0D#5PYoUJ z@0rTYs)qS&u_SPCPBEK3CR6;Ls?NHa?!2tp#JIxToQAB-+RW@avo&3%iAMm=JIZG< z6}>%tRwy+z0ut>))uo2Yuj7?7zj%y<4!Ypzfmakmul%1K;^h$f@Fw`ozZAKJxX&zV zKI330{p^2TXo9ku1CNC2V@3sY@NICeo%cwnJUS)j>xr~h6V0Qe#Tw#Y3X%WJyATk- z)Qg}_g-qcH2ymDxX9{O7hYd$a&ITu*?NL&g8&J`91bMJ8t%91v*v?bxVi8gU35si2 z&5Y8K8keV2*qxTRuC{@aqAI674#)zp%zATndUknkp+%+Zsi@dnQc{+klb@1Wl$g>| zQr=wK9BE78|psMoXqwXohhIwYk-TzRiNs9w<%5aQ(!`tU2p=TQCSsICr1bg+IF#WH`8 zayZm2h4Th{=HX1mGj$2TF7TOyGm2mA6wXvm6Owa$UI!rZEByIPYEn2pdz=}`?i?L! zahPM(tP!C%SnUpXN zov(Up_Kdm6M+8v{YxL4mZ_jdoq%pR6Kic8MS9U zGzm;VXyX|KHK>DC^yc+5r>MonGnt1g?t6sN&k9D*hu@4Xg|K(@`dV}|g*(V7uYMM)YcHjJeBPvx z_Nm;*bm5@pGj}VV=S=ZSO$?v2vCe0F)t4Ya#4|#pi+8xPtj6Tit8eVzchsy)Kq{TZ zoTSyGiV)o`jOa!pRcaAgahdJaZC!Ppy^TFp#dV4ZHLEh~^p4cDe7nPAvBeoo(OSJj zqqCchmZXGao5^F+5k3cyncfW)&ptlWokS$#1q3Z)6y6g11qwfeuHG*FtYi%|0#r0Q z1RJmbDBAnS`I$`WPGM(Mer^7 z48hFFW`0)@{X7Yr!DNbPETErp&|*u|vhMntzO|JbD!CJ$GqIgjRxS$#<4$xkMi(Vl z#~R&3ZG(FXY7%V;8Hu?%jPqtqDm6Nh8bN7RZQ*Bj>oj^s!P?CU$(}q>IFp0mc0lMn zEP^I`ym)*DrFle?MTq{TN`+c9KxRHfU5-FRhq&^dFD1f1{dt{%5HE+&hhK6&i#Dkv zb6}sye-@J2>qsjs!4Tfy$P@567|WceL3B0U4MeIlo)%&oMl`-e;Y?*Sg)`x^E|$^9 z+3e{ib8>oeIkJ~gEl7fta+q*JfM2EB$ZE}QQ}l4>P<>@fjMbyjIMiypQe#7CG^Cv! zQjXD>R4F52&{{Lo@@DqUH+yfoZbfAeR?&1`Ot1?r>OaHZ;PrEWiry-pl?oQYBl__|I>eRty!a6QxzG0u zgm^iGJ{;!rhWeTBejKm}h3Kc}Gxaol%9&(qfX}cv0B0@<%`2V*_^dK|H0DH&Hcl$D zMeQ;wBsP=>3i%8~1I}@Y>2VhKV0%CK>@vrptQ$4mT2qWdZB-~NNQb6{)vUs*Qrgsv zp}nR1!pgOZoZ9Eh=U_?;XBrAAy;VLdLr7>*@ys0z^ZEG_?&bLDA%VLI-U_!cg69Kn zrDMi=db58%vx>iqxz8a&CzX3crqByQd@eS1gGFuydv*a9vH0B(`Om@1Irs=S#u}5X zHw1tfG_e7f5f-B?}UP}ZIvo9D158Fg+}gXw`*=x3CB zqof5QR<3a=w9z(8d`VI5OxILh)*hod5nnP}QuKxds*N?8L=&ynFKA$qy3GAaCnlhA=GnrLZ!tl-RfoF!q1n$p}s?|ks}S2#`b zmn%g}T7=h{-&$}1zZ}E~|CU=h1A>2E|K-#1dHppOy0k>J@!A z8V<9=Xe-GrsxNIzbLW~3acahnVTE`*fVlw)4LBnukI}nXL##pPG8tm#dS}nfp2{z5 z(CA{376Sj|S@N0o$_wT*%?alWAJQ<2#8dD&7|~%qZ-qwT#|EAOe<%y?Jq4fF;S4db z!+aJaGez|C;WLzZuwV{2@)+eDT36$FHmRQ}oQbEw4G^TZGl4TYV5mGQHL}{gMb^A> z7COC@&vJz$-czVnxm9co<+DZ~gVJeEDibTI})Y-M&$S8Z=)cCATf*J)$TCa=S+RVO0E#WO^8kaDI+wyK}Ei_bne zZBVGZi5%33#`!@!0iRKKDU>39*N#9-2W}Vgm#6TO4ZOI+_h0%mAo%C?U-B=2%`JF; zBk%>bV|=D{wP8Mc8)*uf@bhpc72F)3>7F2MPXst)KTZKw`}!2AbqO>Gq5)Nn8{(OG zBXT=bu0|b8{S9oDvKlg23VlS;=NWwVM8}sGHD{%kLn?F5wo9w`nDvP|RV>xvfHMN^ zIN*4sxiXg~SE_RA%yI`jZ7o`ia_oJUeD>=&O=kpzs0W8pLqcs15oD8;Q3-@QQ8_~Te`3Umw=ahbE$*Gr z&r*pMa&cFbGE!kt8{+_B7}OSnJ1r@{BD1t6x6*A(Fl!tt)`jkNs3X0%1I}2W!zY0=22pX{IV4i6l5xR&hJKEesUoB-_^dU1bcO^NASPXO zR$6gwesx1pZJZ+sS#}P48Y0G?X%)a3l%{-EYhr-tOm|+iHeRiYj*KwCqX1?%*3Y7F z#=#ev&q5Xb1bl{s4pz}&{rpoU@Wy|aKa>Ucw#a93IBy@H#mM~P^7+Xm^wa2PVn>h) z6p}|r8`EJy;H-?L2^(JV?9XTFIfKkpJj_Bab9I&d~RG!rrel>U=67VwLTdEq7vA0 z{t3TFB^Hl+n{g*q*=k-^kd_9AX9u&T4h3hb%LGKOx4GL$FnT8k6P|jR7-8!6oeCEka z^)v3mk(S7vyP{0c&pe;eB1tB-!QVh)MubF*F9EPRV=6)m32jcEZfqH=u5HLKIyo~p z&^?-(kR2PHVYehIOvwnqS!GPq7*Y^a@oF)0#hgSdWul~ZSmMu;&%SyVGX2mS!S z2eTeFMjbjd7Di)1r6dU-qJvxx@w#u}Yn!gU7ln_{0V%YvkuJH-YwB1BvK>!5sVX388k*h8cSDncN{cN;kXmzO!o6u2GKR+

vP@-w7fAA%TwD6F>6(Ab84uNQn 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

+3eN<=gU#|@xcf_S1gx(L-=f3E~Vl(@fjof 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�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