From a077da895b489852ceb948f077796e250ff48b78 Mon Sep 17 00:00:00 2001 From: stevxiao Date: Thu, 5 Feb 2026 11:07:10 -0500 Subject: [PATCH] avfilter/dnn_backend_torch: add CUDA/ROCm device support Add support for CUDA and ROCm (AMD GPU) devices in the LibTorch DNN backend. This works for both NVIDIA CUDA and AMD ROCm, as PyTorch exposes ROCm through the CUDA-compatible API. Usage: ./ffmpeg -i input.mp4 -vf scale=224:224,format=rgb24,dnn_processing=dnn_backend=torch:model=sr_model_torch.pt:device=cuda output.mp4 Reviewed-by: Guo Yejun Signed-off-by: younengxiao --- libavfilter/dnn/dnn_backend_torch.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libavfilter/dnn/dnn_backend_torch.cpp b/libavfilter/dnn/dnn_backend_torch.cpp index 99f55165f2..24a202f493 100644 --- a/libavfilter/dnn/dnn_backend_torch.cpp +++ b/libavfilter/dnn/dnn_backend_torch.cpp @@ -439,6 +439,13 @@ static DNNModel *dnn_load_model_th(DnnContext *ctx, DNNFunctionType func_type, A #else at::detail::getXPUHooks().initXPU(); #endif + } else if (device.is_cuda()) { + // CUDA device - works for both NVIDIA CUDA and AMD ROCm (which uses CUDA-compatible API) + if (!torch::cuda::is_available()) { + av_log(ctx, AV_LOG_ERROR, "CUDA/ROCm is not available\n"); + goto fail; + } + av_log(ctx, AV_LOG_INFO, "Using CUDA/ROCm device: %s\n", device_name); } else if (!device.is_cpu()) { av_log(ctx, AV_LOG_ERROR, "Not supported device:\"%s\"\n", device_name); goto fail;