84 lines
2.5 KiB
Docker
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 /
|