tabby/crates/ctranslate2-bindings/ctranslate2/examples/wngt2020/Dockerfile.gpu

69 lines
2.0 KiB
Docker

FROM nvidia/cuda:10.2-devel-ubuntu18.04 as builder
RUN apt-get update && \
apt-get install -y --no-install-recommends \
apt-transport-https \
build-essential \
ca-certificates \
git \
gnupg2 \
wget && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
WORKDIR /root
ENV CMAKE_VERSION=3.18.4
RUN wget -q https://github.com/Kitware/CMake/releases/download/v$CMAKE_VERSION/cmake-$CMAKE_VERSION-Linux-x86_64.tar.gz && \
tar xf *.tar.gz && \
rm *.tar.gz
ENV PATH=$PATH:/root/cmake-$CMAKE_VERSION-Linux-x86_64/bin
ENV SENTENCEPIECE_VERSION=v0.1.95
RUN wget https://github.com/google/sentencepiece/archive/$SENTENCEPIECE_VERSION.tar.gz && \
tar xf $SENTENCEPIECE_VERSION.tar.gz && \
rm $SENTENCEPIECE_VERSION.tar.gz && \
cd sentencepiece-* && \
mkdir build && \
cd build && \
cmake -DCMAKE_CXX_FLAGS=${CXX_FLAGS} -DSPM_TCMALLOC_STATIC=ON -DSPM_ENABLE_SHARED=OFF .. && \
VERBOSE=1 make -j4 install && \
cd /root && \
rm -r sentencepiece-*
ENV CUDA_ARCH_LIST="7.5"
ENV CTRANSLATE2_VERSION=v1.17.0
RUN git clone https://github.com/OpenNMT/CTranslate2.git && \
cd CTranslate2 && \
git checkout $CTRANSLATE2_VERSION && \
git submodule update --init && \
mkdir build && \
cd build && \
cmake -DCMAKE_CXX_FLAGS=${CXX_FLAGS} -DLIB_ONLY=ON -DWITH_CUDA=ON -DWITH_MKL=OFF -DOPENMP_RUNTIME=NONE -DCUDA_ARCH_LIST="${CUDA_ARCH_LIST}" .. && \
VERBOSE=1 make -j4 install && \
cd /root && \
rm -r CTranslate2
ENV LD_LIBRARY_PATH=/opt/intel/lib/intel64/
COPY CMakeLists.txt .
COPY main.cc .
RUN mkdir build && \
cd build && \
cmake -DCMAKE_CXX_FLAGS=${CXX_FLAGS} .. && \
VERBOSE=1 make -j4
RUN mkdir /opt/wngt2020 && \
cp /root/build/run /opt/wngt2020 && \
cp -P /usr/lib/x86_64-linux-gnu/libcublas*.so* /opt/wngt2020 && \
cp /usr/local/lib/libctranslate2.so /opt/wngt2020
FROM nvidia/cuda:10.2-base-ubuntu18.04
COPY --from=builder /opt/wngt2020 /opt/wngt2020
ENV LD_LIBRARY_PATH=/opt/wngt2020
ARG MODEL_PATH
COPY ${MODEL_PATH} /model
COPY run.sh /