File size: 1,008 Bytes
2a31de5
 
 
 
6c0e598
 
2a31de5
 
 
 
 
 
 
 
6c0e598
 
 
 
 
 
 
2a31de5
 
 
 
6c0e598
2a31de5
 
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
ARG SDK_VERSION=latest
FROM huggingface/hfendpoints-sdk:${SDK_VERSION} AS sdk

FROM python:3.12-bookworm

RUN apt update && apt install -y libjemalloc2
RUN --mount=type=bind,from=sdk,source=/opt/hfendpoints/dist,target=/usr/local/endpoints/dist \
    --mount=type=bind,source=requirements.txt,target=/tmp/requirements.txt \
    python3 -m pip install torch --index-url https://download.pytorch.org/whl/cpu && \
    python3 -m pip install -r /tmp/requirements.txt && \
    python3 -m pip install /usr/local/endpoints/dist/*.whl

COPY handler.py /usr/local/endpoint/

# OMP & MALLOC related tuning
ENV KMP_AFFINITY="granularity=fine,compact,1,0"
ENV KMP_BLOCKTIME=1
ENV MALLOC_CONF=oversize_threshold:1,background_thread:true,metadata_thp:auto,dirty_decay_ms:9000000000,muzzy_decay_ms:9000000000
ENV LD_PRELOAD=/usr/local/lib/libiomp5.so;/usr/lib/x86_64-linux-gnu/libjemalloc.so.2

# Network interface
ENV INTERFACE=0.0.0.0
ENV PORT=80

EXPOSE 80

ENTRYPOINT ["python3"]
CMD ["/usr/local/endpoint/handler.py"]