diff --git a/docker/fedora-40.dockerfile b/docker/fedora-40.dockerfile index 94a8a9fa733..527df6d5d45 100644 --- a/docker/fedora-40.dockerfile +++ b/docker/fedora-40.dockerfile @@ -28,11 +28,14 @@ RUN <<_DEPS #!/bin/bash set -e dnf -y update +dnf -y install dnf-plugins-core +dnf -y config-manager --add-repo=https://negativo17.org/repos/fedora-nvidia.repo dnf -y group install "Development Tools" dnf -y install \ boost-devel-1.83.0* \ cmake-3.28.* \ doxygen \ + cuda-gcc-c++-12.3* \ gcc-14.1.* \ gcc-c++-14.1.* \ git \ @@ -62,7 +65,7 @@ dnf -y install \ pulseaudio-libs-devel \ python3.11 \ rpm-build \ - wget \ + curl \ which \ xorg-x11-server-Xvfb if [[ "${TARGETPLATFORM}" == 'linux/amd64' ]]; then @@ -72,35 +75,38 @@ dnf clean all rm -rf /var/cache/yum _DEPS -# TODO: re-enable cuda once cuda supports gcc-14 ## install cuda -#WORKDIR /build/cuda +WORKDIR /build/cuda ## versions: https://developer.nvidia.com/cuda-toolkit-archive -#ENV CUDA_VERSION="12.4.0" -#ENV CUDA_BUILD="550.54.14" +ENV CUDA_VERSION="12.5.0" +ENV CUDA_BUILD="555.42.02" +ENV NVCC_PREPEND_FLAGS="-ccbin /usr/bin/cuda" ## hadolint ignore=SC3010 -#RUN <<_INSTALL_CUDA -##!/bin/bash -#set -e -#cuda_prefix="https://developer.download.nvidia.com/compute/cuda/" -#cuda_suffix="" -#if [[ "${TARGETPLATFORM}" == 'linux/arm64' ]]; then -# cuda_suffix="_sbsa" -# -# # patch headers https://bugs.launchpad.net/ubuntu/+source/mumax3/+bug/2032624 -# sed -i 's/__Float32x4_t/int/g' /usr/include/bits/math-vector.h -# sed -i 's/__Float64x2_t/int/g' /usr/include/bits/math-vector.h -# sed -i 's/__SVFloat32_t/float/g' /usr/include/bits/math-vector.h -# sed -i 's/__SVFloat64_t/float/g' /usr/include/bits/math-vector.h -# sed -i 's/__SVBool_t/int/g' /usr/include/bits/math-vector.h -#fi -#url="${cuda_prefix}${CUDA_VERSION}/local_installers/cuda_${CUDA_VERSION}_${CUDA_BUILD}_linux${cuda_suffix}.run" -#echo "cuda url: ${url}" -#wget "$url" --progress=bar:force:noscroll -q --show-progress -O ./cuda.run -#chmod a+x ./cuda.run -#./cuda.run --silent --toolkit --toolkitpath=/build/cuda --no-opengl-libs --no-man-page --no-drm -#rm ./cuda.run -#_INSTALL_CUDA +RUN <<_INSTALL_CUDA +#!/bin/bash + +set -e +cuda_prefix="https://developer.download.nvidia.com/compute/cuda/" +cuda_suffix="" + +if [[ "${TARGETPLATFORM}" == 'linux/arm64' ]]; then + cuda_suffix="_sbsa" + + # patch headers https://bugs.launchpad.net/ubuntu/+source/mumax3/+bug/2032624 + sed -i 's/__Float32x4_t/int/g' /usr/include/bits/math-vector.h + sed -i 's/__Float64x2_t/int/g' /usr/include/bits/math-vector.h + sed -i 's/__SVFloat32_t/float/g' /usr/include/bits/math-vector.h + sed -i 's/__SVFloat64_t/float/g' /usr/include/bits/math-vector.h + sed -i 's/__SVBool_t/int/g' /usr/include/bits/math-vector.h +fi + +url="${cuda_prefix}${CUDA_VERSION}/local_installers/cuda_${CUDA_VERSION}_${CUDA_BUILD}_linux${cuda_suffix}.run" +echo "cuda url: ${url}" +curl -Lo "./cuda.run" "$url" +chmod a+x ./cuda.run +./cuda.run --silent --toolkit --override --toolkitpath=/build/cuda --no-opengl-libs --no-man-page --no-drm +rm ./cuda.run +_INSTALL_CUDA # copy repository WORKDIR /build/sunshine/ @@ -109,13 +115,12 @@ COPY --link .. . # setup build directory WORKDIR /build/sunshine/build -# TODO: re-add as first cmake argument: -DCMAKE_CUDA_COMPILER:PATH=/build/cuda/bin/nvcc \ -# TODO: enable cuda flag # cmake and cpack RUN <<_MAKE #!/bin/bash set -e cmake \ + -DCMAKE_CUDA_COMPILER:PATH=/build/cuda/bin/nvcc \ -DBUILD_WERROR=ON \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ @@ -124,7 +129,7 @@ cmake \ -DSUNSHINE_ENABLE_WAYLAND=ON \ -DSUNSHINE_ENABLE_X11=ON \ -DSUNSHINE_ENABLE_DRM=ON \ - -DSUNSHINE_ENABLE_CUDA=OFF \ + -DSUNSHINE_ENABLE_CUDA=ON \ /build/sunshine make -j "$(nproc)" cpack -G RPM