FROM git.lair.cafe/gongfoo/runner-rust:latest

ARG CUDA_REPO_FEDORA=43
ARG CUDA_REPO_RHEL=9

RUN dnf config-manager addrepo \
        --from-repofile=https://developer.download.nvidia.com/compute/cuda/repos/fedora${CUDA_REPO_FEDORA}/x86_64/cuda-fedora${CUDA_REPO_FEDORA}.repo \
    && dnf config-manager addrepo \
        --from-repofile=https://developer.download.nvidia.com/compute/cuda/repos/rhel${CUDA_REPO_RHEL}/x86_64/cuda-rhel${CUDA_REPO_RHEL}.repo

RUN dnf config-manager setopt \
        cuda-fedora${CUDA_REPO_FEDORA}-x86_64.exclude='nvidia-driver*,nvidia-modprobe,nvidia-persistenced,nvidia-settings,nvidia-libXNVCtrl,nvidia-xconfig,nvidia-open,xorg-x11-drv-nvidia*,xorg-x11-nvidia*,kmod-nvidia*,akmod-nvidia*,cuda-drivers*,nvidia-kmod-common,libnvidia-*' \
    && dnf config-manager setopt \
        cuda-rhel${CUDA_REPO_RHEL}-x86_64.exclude='nvidia-driver*,nvidia-modprobe,nvidia-persistenced,nvidia-settings,nvidia-libXNVCtrl,nvidia-xconfig,nvidia-open,xorg-x11-drv-nvidia*,xorg-x11-nvidia*,kmod-nvidia*,akmod-nvidia*,cuda-drivers*,nvidia-kmod-common,libnvidia-*'

ARG CUDA_VERSION=13-0
RUN dnf install -y --setopt=install_weak_deps=False \
        cuda-nvcc-${CUDA_VERSION} \
        cuda-cudart-devel-${CUDA_VERSION} \
        cuda-nvrtc-devel-${CUDA_VERSION} \
        libcublas-devel-${CUDA_VERSION} \
        libcusparse-devel-${CUDA_VERSION} \
        libcurand-devel-${CUDA_VERSION} \
        libcusolver-devel-${CUDA_VERSION} \
        cuda-driver-devel-${CUDA_VERSION} \
        cuda-profiler-api-${CUDA_VERSION} \
        libcudnn9-devel-cuda-13 \
        libnccl-devel \
        cmake \
        gcc-c++ \
        ninja-build \
    && dnf clean all

ENV CUDA_HOME=/usr/local/cuda-${CUDA_VERSION/-/.}
ENV PATH="${CUDA_HOME}/bin:${PATH}"
ENV LD_LIBRARY_PATH="${CUDA_HOME}/targets/x86_64-linux/lib:${CUDA_HOME}/lib64:${LD_LIBRARY_PATH:-/usr/lib64}"
