From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id EA9344E302 for ; Mon, 10 Mar 2025 19:53:00 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B60B668A87D; Mon, 10 Mar 2025 21:52:58 +0200 (EET) Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B2F9268A87D for ; Mon, 10 Mar 2025 21:52:56 +0200 (EET) Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-43cf257158fso10567505e9.2 for ; Mon, 10 Mar 2025 12:52:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741636376; x=1742241176; darn=ffmpeg.org; h=thread-index:content-language:content-transfer-encoding :mime-version:message-id:date:subject:to:from:from:to:cc:subject :date:message-id:reply-to; bh=cHiKWNiLLX+rRI+74DoDUr+rs8xR/I9LTTmDA9euOXs=; b=fPV/vnp9LHl/FJQQHC0wfiG1AuTqen9CFt9GRpGdaObouFA4NnCwL1TyGA50B96lSV 467LUfzXNpB6rAFaO9292TXQF2YcbXzaq4RA5vl8JoIUOpIsLpi0X+NrRKr8xagrATZR 8nxsA7aqCImLrz7VErtG4WG1OCA2DSrk+j/gXTBfo1Tul8gsJ5wDcqRbGtkRTaRFka/E ORDXTKZbcGGmTgpwErUYPfbMKLpz3A1Tx+pp3SaEZJr8pxx1OTptydKlLIq6NTDNhi77 B91MDTc0K1oTFRDNEHoS2uVDp79pL300UPLSFbO/30USyRzPBrBrVkw7onCcJGGkHoCu GSUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741636376; x=1742241176; h=thread-index:content-language:content-transfer-encoding :mime-version:message-id:date:subject:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=cHiKWNiLLX+rRI+74DoDUr+rs8xR/I9LTTmDA9euOXs=; b=RMAJykTapZyx03Y/fPQj/wNf90BkSBjGIbSGQhIO0M0W2AlHhCM9ZY/JuVB7sawp5d 7jeDuwVwT9kHeSXMcCKMJlm95BbdKF/GornATZJLNkUYZSCnN7tKqdAqEuQpp4F5frrm b+US2z46skTyYtDQ9imQwVBdAFAznJ5rRKvbKHn/27wC6LW3uxJ7/MJCeuKpivr0yzbf USecoL81dRD+iwUhNZu/DKotiROck2VHl9J+ofr0eLo/Tq3vmrxharOSSrom901zGR3M P0XuwnAfwvC3I3M3kCcIKMUYKnCqc7wu/991dMjzs7Im683W0OPeDcrKlLqgn5UlkRQj nh4g== X-Gm-Message-State: AOJu0Yzb0nQ6fvvUZeFiGlq6tgpf5e8V3CnJyivc6VhQs1uxo48bfpPr y2DKb8M47u/kpF6yrmeWcSk2fFkRRIyCr1FuElWkgbgXp2B0qyukEb1R2g== X-Gm-Gg: ASbGncup83IeaFYhz1pzgi8KpH5iYRP/n0bkTZ48mZW2XLso7l/P3BXgMJAZeoRvkh4 cqjyPz5BgU2ps9phAfimNuq6IdzHN6xNPFcCTXqJQ+QD/6x/7XC2w9WXveoZT961+dRYr2sLEvf cApWuiYwnRX7f/ap8GyZ73GO54xJl1dWf7KFWKCLheCi4oe+rkBNOsdBfYfN1xSYTJpsdd9uuED bPnC89LCksNP65Wkd9aUDmNgPpC117YNr39kkhCz3E1Jl6Bq0XZB8HRH0RtyOMC+qAu107jacWF OwBoxhEP/Tl5Uao5mZfXD3mowwNJ5plpWOmkjNkxtrJqonQO0q8q67+WCwKHZUzYpig2ofLyIkE 60yTaTRG/K1wCUBL6 X-Google-Smtp-Source: AGHT+IHOzJvVrS1VdrM0qI6iCx16b6htYLe1xjz/n+Xs37M/9SAjx1tQOP0jTkQr2w3yp3O138Xn6w== X-Received: by 2002:a05:600c:3c8c:b0:43b:ce36:7574 with SMTP id 5b1f17b1804b1-43cd169b363mr112195035e9.11.1741636375604; Mon, 10 Mar 2025 12:52:55 -0700 (PDT) Received: from MK2 (80-108-16-220.cable.dynamic.surfer.at. [80.108.16.220]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43cf892d380sm45099225e9.24.2025.03.10.12.52.54 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 10 Mar 2025 12:52:55 -0700 (PDT) From: To: Date: Mon, 10 Mar 2025 20:52:55 +0100 Message-ID: <003a01db91f6$04324fb0$0c96ef10$@gmail.com> MIME-Version: 1.0 X-Mailer: Microsoft Outlook 16.0 Content-Language: en-at Thread-Index: AduR9gDOgw1M+sxzRCa7ZBoTI2FA/g== Subject: [FFmpeg-devel] [PATCH v2 FFmpeg 5/20] libavfilter/dnn: libtorch add CUDA suppoort X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Signed-off-by: MaximilianKaindl --- libavfilter/dnn/dnn_backend_torch.cpp | 37 +++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/libavfilter/dnn/dnn_backend_torch.cpp b/libavfilter/dnn/dnn_backend_torch.cpp index 2e4326d9d4..062821949d 100644 --- a/libavfilter/dnn/dnn_backend_torch.cpp +++ b/libavfilter/dnn/dnn_backend_torch.cpp @@ -34,6 +34,10 @@ extern "C" { #include "queue.h" #include "safe_queue.h" } +#if (CONFIG_LIBTORCH_CUDA == 1) +#include +#include +#endif typedef struct THModel { DNNModel model; @@ -435,7 +439,40 @@ static DNNModel *dnn_load_model_th(DnnContext *ctx, DNNFunctionType func_type, A av_log(ctx, AV_LOG_ERROR, "No XPU device found\n"); goto fail; } +#if (CONFIG_LIBTORCH_CUDA == 0) at::detail::getXPUHooks().initXPU(); +#else + at::detail::getXPUHooks().init(); + } else if (device.is_cuda()) { + if (!torch::cuda::is_available()) { + av_log(ctx, AV_LOG_ERROR, "CUDA is not available!\n"); + goto fail; + } + // Initialize CUDA + try { + int device_idx = 0; + const char *device_num = strstr(device_name, ":"); + if (device_num) { + char *endptr = NULL; + device_idx = strtol(device_num + 1, &endptr, 10); + if (*endptr != '\0' && !isspace(*endptr)) { + av_log(ctx, AV_LOG_ERROR, "Invalid device number format: %s\n", device_num + 1); + goto fail; + } + } + if (device_idx >= static_cast(torch::cuda::device_count())) { + av_log(ctx, AV_LOG_ERROR, "Requested CUDA device %d but only %ld devices available\n", device_idx, + torch::cuda::device_count()); + goto fail; + } + c10::cuda::set_device(device_idx); + c10::cuda::setCurrentCUDAStream(c10::cuda::getDefaultCUDAStream()); + torch::cuda::synchronize(); + } catch (const c10::Error &e) { + av_log(ctx, AV_LOG_ERROR, "CUDA initialization failed: %s\n", e.what()); + goto fail; + } +#endif } else if (!device.is_cpu()) { av_log(ctx, AV_LOG_ERROR, "Not supported device:\"%s\"\n", device_name); goto fail; -- 2.34.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".