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

84 lines
2.5 KiB
Docker

FROM ubuntu:20.04 as builder
RUN apt-get update && \
apt-get install -y --no-install-recommends \
apt-transport-https \
build-essential \
ca-certificates \
gnupg2 \
libgoogle-perftools-dev \
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 ONEAPI_VERSION=2021.1.1
ENV MKL_BUILD=52
RUN wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB && \
apt-key add *.PUB && \
rm *.PUB && \
echo "deb https://apt.repos.intel.com/oneapi all main" > /etc/apt/sources.list.d/oneAPI.list && \
apt-get update && \
apt-get install -y --no-install-recommends \
intel-oneapi-mkl-devel=$ONEAPI_VERSION-$MKL_BUILD \
&& \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
ENV CXX_FLAGS="-march=cascadelake"
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 CTRANSLATE2_VERSION=v1.17.0
RUN wget https://github.com/OpenNMT/CTranslate2/archive/$CTRANSLATE2_VERSION.tar.gz && \
tar xf $CTRANSLATE2_VERSION.tar.gz && \
rm $CTRANSLATE2_VERSION.tar.gz && \
cd CTranslate2-* && \
mkdir build && \
cd build && \
cmake -DCMAKE_CXX_FLAGS=${CXX_FLAGS} -DLIB_ONLY=ON -DOPENMP_RUNTIME=NONE -DENABLE_CPU_DISPATCH=OFF .. && \
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 /usr/local/lib/libctranslate2.so /opt/wngt2020
FROM ubuntu:20.04
COPY --from=builder /opt/wngt2020 /opt/wngt2020
ENV LD_LIBRARY_PATH=/opt/wngt2020
ENV CT2_USE_EXPERIMENTAL_PACKED_GEMM=1
ENV CT2_TRANSLATORS_CORE_OFFSET=0
ARG MODEL_PATH
COPY ${MODEL_PATH} /model
COPY run.sh /