forked from llm-d/llm-d-benchmark
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
87 lines (74 loc) · 2.87 KB
/
Dockerfile
File metadata and controls
87 lines (74 loc) · 2.87 KB
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
FROM python:3.12.9-slim-bookworm
RUN apt-get update; \
apt-get install -y \
git \
gpg \
jq \
pip \
rsync \
patch \
curl \
yq \
&& apt-get clean && rm -rf /var/cache/apt
RUN echo "# /etc/rsyncd: configuration file for rsync daemon mode" > /etc/rsyncd.conf; echo -e "\
\n\
[global]\n\
charset = utf-8\n\
port = 20873\n\
max connections = 8\n\
reverse lookup = no\n\
\n\
[requests]\n\
path = /requests\n\
read only = yes\n\
use chroot = false\n\
list = yes\n\
" >> /etc/rsyncd.conf; \
sed -i 's^\-e^^' /etc/rsyncd.conf
WORKDIR /workspace
# Install harnesses
ARG FM_PERF_REPO=https://github.com/fmperf-project/fmperf.git
ARG FM_PERF_BRANCH=main
ARG FM_PERF_COMMIT=0b1f63acdafcc815847a22332c0e478cc41ebed2
RUN git clone --branch ${FM_PERF_BRANCH} ${FM_PERF_REPO}
RUN cd fmperf; \
git checkout ${FM_PERF_COMMIT}; \
pip install --no-cache-dir -r requirements.txt && \
python3 setup.py install
ARG INFERENCE_PERF_REPO=https://github.com/kubernetes-sigs/inference-perf.git
ARG INFERENCE_PERF_BRANCH=main
ARG INFERENCE_PERF_COMMIT=087e18a559f776ed10798bdabcdc8b3d52231d3c
RUN git clone --branch ${INFERENCE_PERF_BRANCH} ${INFERENCE_PERF_REPO}
RUN cd inference-perf; \
git checkout ${INFERENCE_PERF_COMMIT}; \
pip install .
ARG VLLM_BENCHMARK_REPO=https://github.com/vllm-project/vllm.git
ARG VLLM_BENCHMARK_BRANCH=main
ARG VLLM_BENCHMARK_COMMIT=b6381ced9c52271f799a8348fcc98c5f40528cdf
RUN git clone --branch ${VLLM_BENCHMARK_BRANCH} ${VLLM_BENCHMARK_REPO}
RUN cd vllm; \
git checkout ${VLLM_BENCHMARK_COMMIT}; \
cd ..; mv -f vllm vllm-benchmark
ARG GUIDELLM_REPO=https://github.com/vllm-project/guidellm.git
ARG GUIDELLM_BRANCH=main
ARG GUIDELLM_COMMIT=72374efdf7d4432173fafec3924dc94ac3b11449
RUN git clone --branch ${GUIDELLM_BRANCH} ${GUIDELLM_REPO}
RUN cd guidellm; \
git checkout ${GUIDELLM_COMMIT}; \
pip install .
RUN echo "fmperf: ${FM_PERF_REPO}" > /workspace/repos.txt; \
echo "inference-perf: ${INFERENCE_PERF_REPO}" >> /workspace/repos.txt; \
echo "vllm-benchmark: ${VLLM_BENCHMARK_REPO}" >> /workspace/repos.txt; \
echo "guidellm: ${GUIDELLM_REPO}" >> /workspace/repos.txt
RUN ln -s /usr/bin/sleep /usr/local/bin/sleep
ADD workload/harnesses/ /usr/local/bin/
COPY analysis/fmperf-analyze_results.py /usr/local/bin/fmperf-analyze_results.py
COPY analysis/inference-perf-analyze_results.sh /usr/local/bin/inference-perf-analyze_results.sh
COPY analysis/nop-analyze_results.py /usr/local/bin/nop-analyze_results.py
COPY analysis/vllm-benchmark-analyze_results.sh /usr/local/bin/vllm-benchmark-analyze_results.sh
COPY analysis/guidellm-analyze_results.sh /usr/local/bin/guidellm-analyze_results.sh
# Install requirements for analysis scripts
COPY build/requirements-analysis.txt .
RUN pip install --no-cache-dir -r requirements-analysis.txt
COPY build/llm-d-benchmark.sh /usr/local/bin/llm-d-benchmark.sh
ENTRYPOINT ["llm-d-benchmark.sh"]