Spaces:
Paused
Paused
File size: 5,142 Bytes
67b7e1c c0bb512 67b7e1c 5ff1b90 67b7e1c 5ff1b90 67b7e1c 5ff1b90 ff5be78 c0bb512 67b7e1c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 |
#FROM nvidia/cuda:12.2.0-devel-ubuntu20.04
# let's try to downgrade the version of CUDA
FROM nvidia/cuda:11.8.0-devel-ubuntu20.04
LABEL maintainer="Hugging Face"
ARG DEBIAN_FRONTEND=noninteractive
# Use login shell to read variables from `~/.profile` (to pass dynamic created variables between RUN commands)
SHELL ["sh", "-lc"]
# WORKDIR /workdir
RUN apt update
# base stuff
RUN apt --yes install build-essential wget curl rpl
RUN echo "Build started at: $(date "+%Y-%m-%d %H:%M")"
# NodeJS - LEGACY/DEPRECATED WAY
#RUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash -
#RUN apt --yes install nodejs
# NodeJS - NEW, MORE ANNOYING WAY
RUN apt --yes install -y ca-certificates gnupg
RUN mkdir -p /etc/apt/keyrings
RUN curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
ENV NODE_MAJOR=18
RUN echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list
RUN apt update
RUN apt --yes install nodejs
# git and file management
RUN apt --yes install git git-lfs unzip
RUN git lfs install
# Python
RUN apt --yes install python3 python3-pip
RUN python3 -m pip install --no-cache-dir --upgrade pip
# required for CMake it seems
RUN apt --yes install libtbb-dev libeigen3-dev g++ libssl-dev checkinstall
# The app require CMake 3.24+ but this version of Ubuntu only has the 3.16
# So we need to install a more recent version
#RUN apt-get update \
# && rm -rf /var/lib/apt/lists/* \
RUN wget https://github.com/Kitware/CMake/releases/download/v3.24.1/cmake-3.24.1-Linux-x86_64.sh \
-q -O /tmp/cmake-install.sh \
&& chmod u+x /tmp/cmake-install.sh \
&& mkdir /opt/cmake-3.24.1 \
&& /tmp/cmake-install.sh --skip-license --prefix=/opt/cmake-3.24.1 \
&& rm /tmp/cmake-install.sh \
&& ln -s /opt/cmake-3.24.1/bin/* /usr/local/bin
# Install cmake 3.24
#RUN wget https://github.com/Kitware/CMake/releases/download/v3.24.1/cmake-3.22.1.tar.gz \
# && tar -zvxf cmake-3.24.1.tar.gz \
# && cd cmake-3.24.1 \
# && ./bootstrap \
# && make -j8 \
# && checkinstall --pkgname=cmake --pkgversion="3.20-custom" --default
# Copy contents from 2 levels up
#COPY . ./
# Download and extract libtorch
#RUN wget https://download.pytorch.org/libtorch/cu118/libtorch-cxx11-abi-shared-with-deps-2.0.1%2Bcu118.zip \
# && unzip libtorch-cxx11-abi-shared-with-deps-2.0.1+cu118.zip -d external/
# Set up a new user named "user" with user ID 1000
RUN useradd -o -u 1000 user
# Switch to the "user" user
USER user
ENV PYTHON_BIN /usr/bin/python3
#ENV PATH /usr/local/cuda-12.2/bin:$PATH
#ENV LD_LIBRARY_PATH /usr/local/cuda-12.2/lib64:$LD_LIBRARY_PATH
# Let's try to downgrade
ENV PATH /usr/local/cuda-11.8/bin:$PATH
ENV LD_LIBRARY_PATH /usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH
# Set home to the user's home directory
ENV HOME=/home/user \
PATH=/home/user/.local/bin:$PATH
# Set the working directory to the user's home directory
WORKDIR $HOME/app
# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY --chown=user package*.json $HOME/app
RUN npm install
# Copy the current directory contents into the container at $HOME/app setting the owner to the user
COPY --chown=user . $HOME/app
RUN git clone --recursive https://github.com/MrNeRF/gaussian-splatting-cuda
WORKDIR $HOME/app/gaussian-splatting-cuda
RUN wget https://download.pytorch.org/libtorch/cu118/libtorch-cxx11-abi-shared-with-deps-2.0.1%2Bcu118.zip
RUN unzip libtorch-cxx11-abi-shared-with-deps-2.0.1+cu118.zip -d external/
RUN rm libtorch-cxx11-abi-shared-with-deps-2.0.1+cu118.zip
# Build (on CPU, this will add compute_35 as build target, which we do not want)
# There seems to be a work around, see this thread:
# https://github.com/MrNeRF/gaussian-splatting-cuda/issues/14
# here is the hack:
#
# Replace "native" by "all"
# inspired by https://github.com/ztxz16/fastllm/pull/309/files
#
# CUDA architectures are defined as codes
# by default CMake detected:
# 3.5;5.0;8.0;8.6;8.9;9.0
# To see the mapping: https://arnon.dk/matching-sm-architectures-arch-and-gencode-for-various-nvidia-cards/
# A10G and A100 -> Ampere -> sm_80, sm_86, sm_87 -> 8.0;8.6;8.7
# Nvidia T4 -> Turing -> sm_75 -> 7.5
# ? -> Lovelace -> sm_89 -> 8.6
# ? -> Hopper -> sm_90 -> 9.0
RUN find . -name CMakeLists.txt -exec sed -i 's/CUDA_ARCHITECTURES native/CUDA_ARCHITECTURES all/' {} +
#RUN cmake -B build -D CMAKE_BUILD_TYPE=Release -D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-12.2/ -D CUDA_VERSION=12.2
# Let's try to downgrade the version
RUN cmake -B build -D CMAKE_BUILD_TYPE=Release -D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-11.8/ -D CUDA_VERSION=11.8
RUN cmake --build build -- -j8
COPY --chown=user . $HOME/app/gaussian-splatting-cuda
# Set the working directory to the user's home directory
WORKDIR $HOME/app
RUN echo "Build ended at: $(date "+%Y-%m-%d %H:%M")"
EXPOSE 7860
# we can't use this (it time out)
# CMD [ "xvfb-run", "-s", "-ac -screen 0 1920x1080x24", "npm", "run", "start" ]
CMD [ "npm", "run", "start" ]
|