Skip to content

Commit f21a56f

Browse files
[GAUDISW-244821] Modify ubi docker to support both internal and external builds
- parametrize all that's different internally and externally, e.g. locations of RPM packages, pypi indexes - add libomp package which is now required during pytorch modules installation - add support for RHEL 9.4 builds, handle minor differences between 9.4 and 9.6 Signed-off-by: Michal Muszynski <mmuszynski@habana.ai>
1 parent 922a1b8 commit f21a56f

File tree

1 file changed

+26
-11
lines changed

1 file changed

+26
-11
lines changed

.cd/Dockerfile.rhel.ubi.vllm

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,14 @@ ARG ARTIFACTORY_URL="vault.habana.ai"
66
ARG SYNAPSE_VERSION=1.23.0
77
ARG SYNAPSE_REVISION=695
88
ARG BASE_NAME=rhel9.6
9+
ARG OS_VERSION=9.6
10+
ARG OS_STRING=rhel96
911
ARG PT_VERSION=2.9.0
12+
ARG PT_MODULES_REPO_NAME=gaudi-pt-modules
13+
# for internal use - to support a different package name for RHEL 9.4 with Python 3.12
14+
ARG PT_PACKAGE_NAME_NON_DEFAULT_PYTHON_SUBSTRING=
15+
ARG PYPI_INDEX_URL="https://pypi.org/simple/"
16+
ARG HABANA_RPM_REPO_PATH="rhel/9/${OS_VERSION}"
1017
# can be upstream or fork
1118
ARG TORCH_TYPE=upstream
1219
ARG VLLM_GAUDI_COMMIT=main
@@ -15,14 +22,17 @@ ARG VLLM_PROJECT_COMMIT=
1522
# ============================================================================
1623
# Stage 1: gaudi-base - Base system setup with Habana drivers
1724
# ============================================================================
18-
FROM registry.access.redhat.com/ubi9/ubi:9.6 AS gaudi-base
25+
FROM registry.access.redhat.com/ubi9/ubi:${OS_VERSION} AS gaudi-base
1926

2027
# Re-declare global ARGs to use them in this stage
2128
ARG ARTIFACTORY_URL
2229
ARG SYNAPSE_VERSION
2330
ARG SYNAPSE_REVISION
24-
ARG BASE_NAME
31+
ARG OS_VERSION
32+
ARG OS_STRING
2533
ARG PT_VERSION
34+
ARG PYPI_INDEX_URL
35+
ARG HABANA_RPM_REPO_PATH
2636
ARG TORCH_TYPE
2737

2838
# Labels for RHEL certification
@@ -32,7 +42,7 @@ LABEL vendor="Habanalabs Ltd." \
3242
# Environment variables - Habana-specific paths and configurations
3343
ENV TORCH_TYPE=${TORCH_TYPE} \
3444
PT_VERSION=${PT_VERSION} \
35-
OS_STRING="rhel96" \
45+
OS_STRING="${OS_STRING}" \
3646
VLLM_TARGET_DEVICE="hpu" \
3747
GC_KERNEL_PATH=/usr/lib/habanalabs/libtpc_kernels.so \
3848
HABANA_LOGS=/var/log/habana_logs/ \
@@ -45,7 +55,8 @@ COPY LICENSE /licenses/
4555
# System setup - Remove FIPS provider and add EPEL
4656
RUN dnf install -y python3-dnf-plugin-versionlock && \
4757
dnf versionlock add redhat-release* && \
48-
rpm -e --nodeps openssl-fips-provider-so && \
58+
# '|| true' is added to support RHEL 9.4 in which openssl-fips-provider-so is not installed
59+
rpm -e --nodeps openssl-fips-provider-so || true && \
4960
dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm && \
5061
dnf clean all
5162

@@ -56,7 +67,7 @@ RUN printf "[BaseOS]\\nname=CentOS Linux 9 - BaseOS\\nbaseurl=https://mirror.str
5667

5768
# Install system dependencies
5869
RUN dnf install -y \
59-
wget git jq \
70+
wget git jq libomp \
6071
# Image processing dependencies (needed for pillow-simd -> habana-media-loader)
6172
zlib-devel libjpeg-devel \
6273
# Python development
@@ -76,7 +87,7 @@ RUN pip install setuptools==79.0.1 wheel setuptools_scm && \
7687
pip install --upgrade Jinja2 protobuf urllib3 requests
7788

7889
# Setup Habana repository and install Habana packages
79-
RUN printf "[habanalabs]\\nname=Habana RH9 Linux repo\\nbaseurl=https://${ARTIFACTORY_URL}/artifactory/rhel/9/9.6\\ngpgkey=https://${ARTIFACTORY_URL}/artifactory/rhel/9/9.6/repodata/repomd.xml.key\\ngpgcheck=1\\n" > /etc/yum.repos.d/habanalabs.repo && \
90+
RUN printf "[habanalabs]\\nname=Habana RH9 Linux repo\\nbaseurl=https://${ARTIFACTORY_URL}/artifactory/${HABANA_RPM_REPO_PATH}\\ngpgkey=https://${ARTIFACTORY_URL}/artifactory/${HABANA_RPM_REPO_PATH}/repodata/repomd.xml.key\\ngpgcheck=1\\n" > /etc/yum.repos.d/habanalabs.repo && \
8091
echo "=== Content of habanalabs.repo ===" && \
8192
cat /etc/yum.repos.d/habanalabs.repo && \
8293
echo "=== End of habanalabs.repo ===" && \
@@ -95,7 +106,7 @@ RUN printf "[habanalabs]\\nname=Habana RH9 Linux repo\\nbaseurl=https://${ARTIFA
95106
rm -f /etc/yum.repos.d/habanalabs.repo
96107

97108
# Install Habana media loader and configure Python path
98-
RUN pip install habana-media-loader=="${SYNAPSE_VERSION}"."${SYNAPSE_REVISION}" && \
109+
RUN pip install habana-media-loader=="${SYNAPSE_VERSION}"."${SYNAPSE_REVISION}" --extra-index-url ${PYPI_INDEX_URL} && \
99110
echo "/usr/lib/habanalabs" > $(python3 -c "import sysconfig; print(sysconfig.get_path('platlib'))")/habanalabs-graph.pth
100111

101112
# ============================================================================
@@ -105,23 +116,27 @@ FROM gaudi-base AS gaudi-pytorch
105116

106117
# Re-declare global ARGs needed in this stage
107118
ARG ARTIFACTORY_URL
119+
ARG OS_STRING
108120
ARG PT_VERSION
121+
ARG PT_MODULES_REPO_NAME
122+
ARG PT_PACKAGE_NAME_NON_DEFAULT_PYTHON_SUBSTRING
123+
ARG PYPI_INDEX_URL
109124
ARG SYNAPSE_VERSION
110125
ARG SYNAPSE_REVISION
111126
ARG TORCH_TYPE
112127

113128
# Environment variables inherited from base, OS_STRING needed for PyTorch install
114-
ENV OS_STRING="rhel96"
129+
ENV OS_STRING="${OS_STRING}"
115130

116131
# Use installer script from Habana to install Pytorch
117-
RUN PT_PACKAGE_NAME="pytorch_modules-v${PT_VERSION}_${SYNAPSE_VERSION}_${SYNAPSE_REVISION}.tgz" && \
118-
PT_ARTIFACT_PATH="https://${ARTIFACTORY_URL}/artifactory/gaudi-pt-modules/${SYNAPSE_VERSION}/${SYNAPSE_REVISION}/pytorch/${OS_STRING}" && \
132+
RUN PT_PACKAGE_NAME="pytorch_modules${PT_PACKAGE_NAME_NON_DEFAULT_PYTHON_SUBSTRING}-v${PT_VERSION}_${SYNAPSE_VERSION}_${SYNAPSE_REVISION}.tgz" && \
133+
PT_ARTIFACT_PATH="https://${ARTIFACTORY_URL}/artifactory/${PT_MODULES_REPO_NAME}/${SYNAPSE_VERSION}/${SYNAPSE_REVISION}/pytorch/${OS_STRING}" && \
119134
TMP_PATH=$(mktemp --directory) && \
120135
wget --no-verbose "${PT_ARTIFACT_PATH}/${PT_PACKAGE_NAME}" && \
121136
tar -zxf "${PT_PACKAGE_NAME}" -C "${TMP_PATH}" && \
122137
cd "${TMP_PATH}" && \
123138
export SKIP_INSTALL_DEPENDENCIES=1 && \
124-
./install.sh $SYNAPSE_VERSION $SYNAPSE_REVISION $TORCH_TYPE && \
139+
PYTHON_INDEX_URL="--extra-index-url ${PYPI_INDEX_URL}" ./install.sh $SYNAPSE_VERSION $SYNAPSE_REVISION $TORCH_TYPE && \
125140
cd / && \
126141
rm -rf "${TMP_PATH}" "${PT_PACKAGE_NAME}"
127142

0 commit comments

Comments
 (0)