From: Edward Hervey Date: Wed, 25 Nov 2020 16:59:54 +0000 (+0100) Subject: cuda: Fix lowest targetted architecture for CUDA >= 11.0 X-Git-Tag: 1.19.3~507^2~987 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=dddd0af9cdafbc3f0adfc632d60edc8444a3c330;p=platform%2Fupstream%2Fgstreamer.git cuda: Fix lowest targetted architecture for CUDA >= 11.0 Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1469 Part-of: --- diff --git a/sys/nvcodec/gstcudanvrtc.c b/sys/nvcodec/gstcudanvrtc.c index 0d90de2..39c15be 100644 --- a/sys/nvcodec/gstcudanvrtc.c +++ b/sys/nvcodec/gstcudanvrtc.c @@ -44,9 +44,11 @@ gst_cuda_nvrtc_compile (const gchar * source) { nvrtcProgram prog; nvrtcResult ret; + CUresult curet; const gchar *opts[] = { "--gpu-architecture=compute_30" }; gsize ptx_size; gchar *ptx = NULL; + int driverVersion; g_return_val_if_fail (source != NULL, FALSE); @@ -54,12 +56,25 @@ gst_cuda_nvrtc_compile (const gchar * source) GST_TRACE ("CUDA kernel source \n%s", source); + curet = CuDriverGetVersion (&driverVersion); + if (curet != CUDA_SUCCESS) { + GST_ERROR ("Failed to query CUDA Driver version, ret %d", curet); + return NULL; + } + + GST_DEBUG ("CUDA Driver Version %d.%d", driverVersion / 1000, + (driverVersion % 1000) / 10); + ret = NvrtcCreateProgram (&prog, source, NULL, 0, NULL, NULL); if (ret != NVRTC_SUCCESS) { GST_ERROR ("couldn't create nvrtc program, ret %d", ret); return NULL; } + /* Starting from CUDA 11, the lowest supported architecture is 5.2 */ + if (driverVersion >= 11000) + opts[0] = "--gpu-architecture=compute_52"; + ret = NvrtcCompileProgram (prog, 1, opts); if (ret != NVRTC_SUCCESS) { gsize log_size;