CoolFace
Apppublic

hbs2/test

sourceHugging Facemitupdated 4mo agoView on Hugging Face
0likes
Dockerfile.AMD134 linesDownload Raw Back to root
1# syntax=docker/dockerfile:1.62# ============================================================3# Stage 1: Build CTranslate2 from source with custom HIP arches4# ============================================================5FROM rocm/dev-ubuntu-22.04:7.2 AS builder6 7ARG CT2_GIT_REF=master8ARG HIP_ARCHITECTURES="gfx1010;gfx1011;gfx1012;gfx1030;gfx1100;gfx1101;gfx1102;gfx1150;gfx1151;gfx1200;gfx1201"9ARG CXX_FLAGS="-msse4.1 -O3 -Wno-deprecated-literal-operator"10ARG HIP_FLAGS="-O3 -Wno-deprecated-literal-operator"11 12RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \13    --mount=type=cache,target=/var/lib/apt,sharing=locked \14    apt-get update && \15    apt-get install -y --no-install-recommends \16        rocm-hip-runtime-dev hipblas-common-dev hipblas-dev hipcub-dev \17        hiprand-dev rocprim-dev rocrand-dev rocthrust-dev \18        python3-dev python3-pip wget git ca-certificates && \19    apt-get clean && rm -rf /var/lib/apt/lists/*20 21WORKDIR /root22 23# Intel oneAPI MKL24ENV ONEAPI_VERSION=2025.325RUN wget -q https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB && \26    apt-key add *.PUB && rm *.PUB && \27    echo "deb https://apt.repos.intel.com/oneapi all main" > /etc/apt/sources.list.d/oneAPI.list && \28    apt-get update && \29    apt-get install -y --no-install-recommends intel-oneapi-mkl-devel-$ONEAPI_VERSION && \30    apt-get clean && rm -rf /var/lib/apt/lists/*31 32RUN python3 -m pip --no-cache-dir install cmake==3.22.*33 34# oneDNN35ENV ONEDNN_VERSION=3.10.236RUN wget -q https://github.com/oneapi-src/oneDNN/archive/refs/tags/v${ONEDNN_VERSION}.tar.gz && \37    tar xf *.tar.gz && rm *.tar.gz && cd oneDNN-* && \38    cmake -DCMAKE_BUILD_TYPE=Release -DONEDNN_LIBRARY_TYPE=STATIC \39          -DONEDNN_BUILD_EXAMPLES=OFF -DONEDNN_BUILD_TESTS=OFF \40          -DONEDNN_ENABLE_WORKLOAD=INFERENCE \41          -DONEDNN_ENABLE_PRIMITIVE="CONVOLUTION;REORDER" \42          -DONEDNN_BUILD_GRAPH=OFF . && \43    make -j$(nproc) install && cd .. && rm -r oneDNN-*44 45# OpenMPI46ENV OPENMPI_VERSION=4.1.647RUN wget -q https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-${OPENMPI_VERSION}.tar.bz2 && \48    tar xf *.tar.bz2 && rm *.tar.bz2 && cd openmpi-* && \49    ./configure && make -j$(nproc) install && cd .. && rm -r openmpi-*50 51# Clone CTranslate2 source instead of needing it in the build context52RUN git clone --recursive --branch ${CT2_GIT_REF} \53        https://github.com/OpenNMT/CTranslate2.git /root/ct254 55WORKDIR /root/ct256 57ENV CTRANSLATE2_ROOT=/opt/ctranslate258ENV LD_LIBRARY_PATH=/usr/local/lib/:${LD_LIBRARY_PATH}59 60RUN mkdir build_tmp && cd build_tmp && \61    cmake -DCMAKE_INSTALL_PREFIX=${CTRANSLATE2_ROOT} \62          -DCMAKE_C_COMPILER=amdclang -DCMAKE_CXX_COMPILER=amdclang++ \63          -DWITH_HIP=ON -DWITH_MKL=ON -DWITH_DNNL=ON -DOPENMP_RUNTIME=COMP \64          -DCMAKE_HIP_ARCHITECTURES="${HIP_ARCHITECTURES}" \65          -DGPU_TARGETS="${HIP_ARCHITECTURES}" \66          -DCMAKE_BUILD_TYPE=Release \67          -DCMAKE_CXX_FLAGS="${CXX_FLAGS}" \68          -DCMAKE_HIP_FLAGS="${HIP_FLAGS}" \69          .. && \70    VERBOSE=1 make -j$(nproc) install71 72ENV LANG=en_US.UTF-873 74RUN cd python && \75    python3 -m pip --no-cache-dir install -r install_requirements.txt && \76    python3 setup.py bdist_wheel --dist-dir $CTRANSLATE2_ROOT77 78# ============================================================79# Stage 2: Final runtime image (CT2 base + your app)80# ============================================================81FROM rocm/dev-ubuntu-22.04:7.282 83ENV DEBIAN_FRONTEND=noninteractive84ENV PYTHONUNBUFFERED=185 86RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \87    --mount=type=cache,target=/var/lib/apt,sharing=locked \88    apt-get update && apt-get install -y --no-install-recommends \89        rocm-hip-libraries openmpi-bin libgomp1 python3-pip \90        ffmpeg python3 curl gosu tzdata libomp5 libdw1 \91    && ln -s /usr/lib/x86_64-linux-gnu/libomp.so.5 /usr/lib/x86_64-linux-gnu/libomp.so \92    && ldconfig \93    && apt-get clean && rm -rf /var/lib/apt/lists/*94 95ENV CTRANSLATE2_ROOT=/opt/ctranslate296ENV ROCM_ROOT=/opt/rocm97 98# Bring in the freshly built CTranslate299COPY --from=builder $CTRANSLATE2_ROOT $CTRANSLATE2_ROOT100RUN --mount=type=cache,target=/root/.cache/pip \101    python3 -m pip install $CTRANSLATE2_ROOT/*.whl && \102    rm $CTRANSLATE2_ROOT/*.whl103 104# torch nightly with rocm7.2 — own layer so app dep changes don't re-download torch105RUN python3 -m pip install --no-cache-dir -U --pre \106        torch torchaudio --index-url https://download.pytorch.org/whl/nightly/rocm7.2107 108# Application Python deps — merged into one layer109RUN --mount=type=cache,target=/root/.cache/pip \110    python3 -m pip install -U \111        numpy fastapi requests uvicorn python-multipart ffmpeg-python \112        watchdog tqdm more-itertools transformers tokenizers huggingface-hub av scipy \113        onnxruntime \114    && python3 -m pip install -U --no-deps faster-whisper stable-ts-whisperless115 116# Application files117COPY entrypoint.sh /118WORKDIR /subgen119COPY launcher.py subgen.py language_code.py /subgen/120RUN mkdir -p /cache && chmod 777 /cache121 122# Caches123ENV XDG_CACHE_HOME=/cache \124    HF_HOME=/cache/huggingface \125    MPLCONFIGDIR=/cache/matplotlib126 127# Library paths and HSA preload (matches your previous image)128ENV LD_LIBRARY_PATH="/opt/ctranslate2/lib:/opt/rocm-7.2.0/lib:/opt/rocm-7.2.0/lib64:${LD_LIBRARY_PATH}"129ENV LD_PRELOAD="/opt/rocm-7.2.0/lib/libhsa-runtime64.so.1"130ENV CT2_CUDA_ALLOCATOR="cub_caching"131 132ENTRYPOINT ["/entrypoint.sh"]133CMD ["python3", "-u", "launcher.py"]134