4747
4848# Extract NVRTC dependency, https://developer.download.nvidia.com/compute/cuda/redist/cuda_nvrtc/LICENSE.txt
4949if command -v nvidia-smi & > /dev/null && nvidia-smi > /dev/null 2>&1 ; then
50+ NVRTC_DEST_PREFIX=" ${NVRTC_DEST_PREFIX-/ usr} "
5051 CUDA_DRIVER_SYSTEM=" $( nvidia-smi --version | grep ' CUDA Version' | cut -d: -f2 | tr -d ' ' ) "
5152 NVRTC_ARCH=" ${NVRTC_ARCH-$(dpkg --print-architecture | sed -e ' s/arm64/sbsa/' -e ' s/ppc64el/ppc64le/' -e ' s/i.*86/x86/' -e ' s/amd64/x86_64/' -e ' s/unknown/x86_64/' )} "
53+ # TEMPORARY: Cap CUDA version to 12.9 if the detected version is 13.0 or higher for NVRTC compatibility, https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4655
54+ if [ -n " ${CUDA_DRIVER_SYSTEM} " ]; then
55+ CUDA_MAJOR_VERSION=$( echo " ${CUDA_DRIVER_SYSTEM} " | cut -d. -f1)
56+ if [ " ${CUDA_MAJOR_VERSION} " -ge 13 ]; then
57+ CUDA_DRIVER_SYSTEM=" 12.9"
58+ fi
59+ fi
5260 NVRTC_URL=" https://developer.download.nvidia.com/compute/cuda/redist/cuda_nvrtc/linux-${NVRTC_ARCH} /"
5361 NVRTC_ARCHIVE=" $( curl -fsSL " ${NVRTC_URL} " | grep -oP " (?<=href=')cuda_nvrtc-linux-${NVRTC_ARCH} -${CUDA_DRIVER_SYSTEM} \.[0-9]+-archive\.tar\.xz" | sort -V | tail -n 1) "
5462 if [ -z " ${NVRTC_ARCHIVE} " ]; then
@@ -61,8 +69,8 @@ if command -v nvidia-smi &> /dev/null && nvidia-smi >/dev/null 2>&1; then
6169 echo "ERROR: Could not find a compatible NVRTC archive." >&2
6270 fi
6371 echo "Selected NVRTC archive: ${NVRTC_ARCHIVE} "
64- GST_ARCH ="$(dpkg --print-architecture | sed -e 's/arm64 /aarch64 -linux-gnu/' -e 's/armhf/arm-linux-gnueabihf/' -e 's/riscv64 /riscv64 -linux-gnu/' -e 's/ppc64 el/powerpc64 le-linux-gnu/' -e 's/s390 x/s390 x-linux-gnu/' -e 's/i.*86 /i386 -linux-gnu/' -e 's/amd64 /x86 _64 -linux-gnu/' -e 's/unknown/x86 _64 -linux-gnu/')"
65- cd /tmp && curl -fsSL "${NVRTC_URL}${NVRTC_ARCHIVE} " | tar - xJf - - C / tmp && mv - f cuda_nvrtc* cuda_nvrtc && cd cuda_nvrtc/ lib && chmod - f 755 libnvrtc* && rm - f "/ opt / gstreamer / lib/ ${GST_ARCH } / "libnvrtc* && mv - f libnvrtc* "/ opt / gstreamer / lib/ ${GST_ARCH } / " && cd / tmp && rm - rf / tmp/ cuda_nvrtc && cd "${HOME} "
72+ NVRTC_LIB_ARCH ="$(dpkg --print-architecture | sed -e 's/arm64 /aarch64 -linux-gnu/' -e 's/armhf/arm-linux-gnueabihf/' -e 's/riscv64 /riscv64 -linux-gnu/' -e 's/ppc64 el/powerpc64 le-linux-gnu/' -e 's/s390 x/s390 x-linux-gnu/' -e 's/i.*86 /i386 -linux-gnu/' -e 's/amd64 /x86 _64 -linux-gnu/' -e 's/unknown/x86 _64 -linux-gnu/')"
73+ cd /tmp && curl -fsSL "${NVRTC_URL}${NVRTC_ARCHIVE} " | tar - xJf - - C / tmp && mv - f cuda_nvrtc* cuda_nvrtc && cd cuda_nvrtc/ lib && chmod - f 755 libnvrtc* && rm - f "${NVRTC_DEST_PREFIX} / lib/ ${NVRTC_LIB_ARCH } / "libnvrtc* && mv - f libnvrtc* "${NVRTC_DEST_PREFIX} / lib/ ${NVRTC_LIB_ARCH } / " && cd / tmp && rm - rf / tmp/ cuda_nvrtc && cd "${HOME} "
6674fi
6775
6876# Wait for X server to start
0 commit comments