Skip to content

Commit 0488179

Browse files
author
Tyler Titsworth
authored
Merge branch 'main' into tylertitsworth/re-enable-weekly
2 parents c35ad4f + 0f56f1c commit 0488179

16 files changed

+457
-1
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,5 @@ logs/
1414
models-perf/
1515
output/
1616
site
17+
test-runner-summary-output.json
1718
venv/

docs/roadmap.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
- Granite Rapids Support
1212
- CLS Support
13-
- Intel Developer Cloud Support
13+
- Intel Tiber Developer Cloud Support
1414
- AI Tools 2024.3/2025.0 Support
1515

1616
## Q4'24

docs/scripts/hook.py

+1
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ def create_support_matrix():
3434
compose_to_csv("pytorch", "serving")
3535
compose_to_csv("tensorflow", None)
3636
compose_to_csv("classical-ml", None)
37+
compose_to_csv("jax", None)
3738

3839
# get_repo(models)
3940
compose_to_csv("preset/data-analytics", "data_analytics")

docs/scripts/readmes.py

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
readmes = [
1919
"classical-ml/README.md",
20+
"jax/README.md",
2021
"preset/README.md",
2122
"python/README.md",
2223
"pytorch/README.md",
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# Intel® Gaudi AI Software Tools Containers on OpenShift AI
2+
3+
Intel® Gaudi AI Software Tools for OpenShift AI(RedHat OpenShift Data Science/RHODS) is a suite of containers that enables the AI practitioners to utilize Intel® Gaudi accelerator for AI workflows on OpenShift platforms. You can access these containers using the RHODS Jupyter dashboard. More details about each container is described in the table below.
4+
5+
## Gaudi Notebook Containers
6+
7+
| Notebook Container Name | Tools | Image Name |
8+
| -----------------------------| ------------- | ------------- |
9+
| Intel Gaudi Notebook Container | [Intel® Gaudi Software Stack*](https://docs.habana.ai/en/latest/Installation_Guide/Bare_Metal_Fresh_OS.html), [Intel® Gaudi PyTorch](https://docs.habana.ai/en/latest/PyTorch/index.html), [Intel® Gaudi vLLM](https://github.com/HabanaAI/vllm-fork.git), [Intel® Gaudi DeepSpeed](https://github.com/HabanaAI/DeepSpeed) | [`registry.connect.redhat.com/intel/gaudi-notebooks:1.17.0-495-rhel-9.2`](registry.connect.redhat.com/intel/gaudi-notebooks@sha256:a62baf968caa7dd23b7f4cdcddc26e109d894f1436e247b4ea1e2fb4a5c94d54) |
10+
11+
## Run Gaudi Notebook Containers
12+
13+
You can access the Intel® Gaudi AI SW Tools containers from OpenShift* AI dashboard.
14+
15+
### Prerequisite
16+
17+
1. Make sure you have access to [OpenShift* Container Platform](https://docs.openshift.com/container-platform/4.14/installing/index.html) and [OpenShift* AI operator](https://docs.redhat.com/en/documentation/red_hat_openshift_ai_cloud_service/1/html/installing_and_uninstalling_openshift_ai_cloud_service/installing-and-deploying-openshift-ai_install#installing-and-deploying-openshift-ai_install) is installed if you want to access the containers from OpenShift* AI dashboard.
18+
19+
2. To utilize the Intel® Gaudi accelerator with the notebook please, install the Intel® Gaudi Base Operator for OpenShift([instructions](https://catalog.redhat.com/software/container-stacks/detail/6683b2cce45daa25e36bddcb)) and the accelerate profile using the following command on your machine connected to the OCP cluster. You need to be logged into the OCP cluster for this command to work.
20+
21+
```bash
22+
oc apply -f https://raw.githubusercontent.com/intel/intel-technology-enabling-for-openshift/main/e2e/inference/accelerator_profile_gaudi.yaml
23+
```
24+
25+
3. Install the [Intel® Gaudi AI SW Tool Operator](https://catalog.redhat.com/software/container-stacks/detail/66d7aa630eb66a02febc8103).
26+
27+
4. Create the CRD to install Gaudi notebook into OpenShift AI Jupyter dashboard using following command.
28+
29+
```bash
30+
oc apply -f https://raw.githubusercontent.com/intel/ai-containers/main/enterprise/redhat/openshift-ai/gaudi/crd-sample.yaml
31+
```
32+
33+
### Start the jupyter notebook from RHODS dashboard
34+
35+
To access the jupyter notebook from the jupyter server running inside the Gaudi notebook container in OpenShift AI follow the steps below.
36+
37+
1. Once the OpenShift AI operator is installed correctly, you can access the dashboard by following the instructions below.
38+
39+
1. Go to the *Routes* menu in your OCP console in the menu left side in the *Networking* tab.
40+
41+
2. Select the project as `redhat-ods-applications` from the menu at the top.
42+
43+
3. You will see list of all the routes available to you in the project. You will also see the corresponding link to access the routes. Please select the link in the row named *rhods-dashboard* as shown in the picture. This will take you to the OpenShift AI dashboard. Please refer to the screenshot below for more details.
44+
45+
![Step-1](../oneapi/assets/step-1.png)
46+
47+
2. Once on the OpenShift AI dashboard you can select the link to `Launch Application` inside the *Jupyter* tile in the *Enabled* applications from the left menu. Please refer to the screenshot below for more details.
48+
49+
![Step-2](../oneapi/assets/step-2.png)
50+
51+
3. If you've followed step 3 in [prerequisites](#prerequisite) to import images you should be able to see the Intel® Gaudi AI Software Tools images in the dashboard as shown in the screenshot below.
52+
53+
![Step-3](./assets/step-3.png)
54+
55+
4. Select the size of the resources you want to request from the dropdown menu *Container Size*. The options available are `Small`, `Medium`, `Large`, `X-Large`. The sizes describes the request of resources like CPU, RAM and Disk Space for the jupyter server container.
56+
57+
5. (*Optional*) To utilize the Intel® Gaudi accelerators select the accelerator profile from the dropdown menu as shown in the screenshot below.
58+
59+
![Step-4](./assets/step-4.png)
60+
61+
6. Once all options are selected click on the *Start Server* button to start the jupyter server.
62+
63+
## Troubleshooting and Support
64+
65+
If you need more help feel free to submit an [issue](https://github.com/intel/ai-containers/issues).
66+
67+
---
68+
\* Other names and brands may be claimed as the property of others. Trademarks
Loading
Loading
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Copyright (c) 2024 Intel Corporation
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
apiVersion: aitools.intel/v1
16+
kind: GaudiAIToolsContainer
17+
metadata:
18+
name: intel-gaudi-1.17.0-495
19+
spec:
20+
nameOverride: ""
21+
fullnameOverride: ""
22+
imagespec:
23+
registry: registry.connect.redhat.com
24+
repo: intel/gaudi-notebooks
25+
tags:
26+
- gaudi_software: "1.17.0-495"
27+
rhel_os: "9.2"
28+
namespace: redhat-ods-applications

jax/.actions.json

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"PACKAGE_OPTION": ["idp", "pip"],
3+
"experimental": [true],
4+
"runner_label": ["PVC"]
5+
}

jax/Dockerfile

+104
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
# Copyright 2019 The TensorFlow Authors. All Rights Reserved.
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
# ============================================================================
15+
#
16+
#
17+
# This file was assembled from multiple pieces, whose use is documented
18+
# throughout. Please refer to the TensorFlow dockerfiles documentation
19+
# for more information.
20+
21+
ARG REGISTRY
22+
ARG REPO
23+
ARG GITHUB_RUN_NUMBER
24+
ARG BASE_IMAGE_NAME
25+
ARG BASE_IMAGE_TAG
26+
ARG PACKAGE_OPTION=pip
27+
ARG PYTHON_VERSION
28+
ARG PYTHON_BASE=${REGISTRY}/${REPO}:b-${GITHUB_RUN_NUMBER}-${BASE_IMAGE_NAME}-${BASE_IMAGE_TAG}-${PACKAGE_OPTION}-py${PYTHON_VERSION}-base
29+
ARG TORCHSERVE_BASE=${PYTHON_BASE}
30+
FROM ${PYTHON_BASE} AS xpu-base
31+
32+
RUN apt-get update && \
33+
apt-get install -y --no-install-recommends --fix-missing \
34+
apt-utils \
35+
build-essential \
36+
clinfo \
37+
git \
38+
gnupg2 \
39+
gpg-agent \
40+
rsync \
41+
unzip && \
42+
apt-get clean && \
43+
rm -rf /var/lib/apt/lists/*
44+
45+
RUN wget -qO - https://repositories.intel.com/gpu/intel-graphics.key | \
46+
gpg --dearmor --yes --output /usr/share/keyrings/intel-graphics.gpg
47+
RUN echo "deb [arch=amd64 signed-by=/usr/share/keyrings/intel-graphics.gpg] https://repositories.intel.com/gpu/ubuntu jammy unified" | \
48+
tee /etc/apt/sources.list.d/intel-gpu-jammy.list
49+
50+
ARG ICD_VER
51+
ARG LEVEL_ZERO_GPU_VER
52+
ARG LEVEL_ZERO_VER
53+
ARG LEVEL_ZERO_DEV_VER
54+
55+
RUN apt-get update && \
56+
apt-get install -y --no-install-recommends --fix-missing \
57+
intel-opencl-icd=${ICD_VER} \
58+
intel-level-zero-gpu=${LEVEL_ZERO_GPU_VER} \
59+
libze1=${LEVEL_ZERO_VER} \
60+
libze-dev=${LEVEL_ZERO_DEV_VER} && \
61+
rm -rf /var/lib/apt/lists/*
62+
63+
RUN no_proxy="" NO_PROXY="" wget --progress=dot:giga -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB \
64+
| gpg --dearmor | tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null && \
65+
echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" \
66+
| tee /etc/apt/sources.list.d/oneAPI.list
67+
68+
ARG DPCPP_VER
69+
ARG MKL_VER
70+
ARG CCL_VER
71+
72+
RUN apt-get update && \
73+
apt-get install -y --no-install-recommends --fix-missing \
74+
intel-oneapi-runtime-dpcpp-cpp=${DPCPP_VER} \
75+
intel-oneapi-runtime-mkl=${MKL_VER} \
76+
intel-oneapi-runtime-ccl=${CCL_VER} && \
77+
rm -rf /var/lib/apt/lists/*
78+
79+
RUN rm -rf /etc/apt/sources.list.d/intel-gpu-jammy.list /etc/apt/sources.list.d/oneAPI.list
80+
81+
ENV OCL_ICD_VENDORS=/etc/OpenCL/vendors
82+
83+
FROM xpu-base AS jax-base
84+
85+
WORKDIR /
86+
COPY requirements.txt .
87+
88+
RUN python -m pip install --no-cache-dir -r requirements.txt && \
89+
rm -rf requirements.txt
90+
91+
FROM jax-base AS jupyter
92+
93+
WORKDIR /jupyter
94+
COPY jupyter-requirements.txt .
95+
96+
RUN python -m pip install --no-cache-dir -r jupyter-requirements.txt && \
97+
rm -rf jupyter-requirements.txt
98+
99+
RUN mkdir -p /jupyter/ && chmod -R a+rwx /jupyter/
100+
RUN mkdir /.local && chmod a+rwx /.local
101+
102+
EXPOSE 8888
103+
104+
CMD ["bash", "-c", "source /etc/bash.bashrc && jupyter notebook --notebook-dir=/jupyter --port 8888 --ip 0.0.0.0 --no-browser --allow-root --ServerApp.token= --ServerApp.password= --ServerApp.allow_origin=* --ServerApp.base_url=$NB_PREFIX"]

jax/README.md

+86
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
# Intel® Optimized OpenXLA\*
2+
3+
Transformable numerical computing at scale combined with [Intel® Extension for OpenXLA\*], which includes a PJRT plugin implementation to seamlessly runs [JAX\*] models on Intel GPUs.
4+
5+
## Images
6+
7+
The images below include [JAX\*] and [Intel® Extension for OpenXLA\*].
8+
9+
| Tag(s) | [JAX\*] | [Intel® Extension for OpenXLA\*] | [Flax] | Dockerfile |
10+
| -------------------------- | --------- | ----------------- | -------- | --------------- |
11+
| `0.4.0-pip-base`, `latest` | [v0.4.32] | [v0.4.0-jax] | [v0.9.0] | [v0.4.0] |
12+
13+
The images below additionally include [Jupyter Notebook](https://jupyter.org/) server:
14+
15+
| Tag(s) | [JAX\*] | [Intel® Extension for OpenXLA\*] | [Flax] | Dockerfile |
16+
| ------------------- | --------- | ----------------- | -------- | --------------- |
17+
| `0.4.0-pip-jupyter` | [v0.4.32] | [v0.4.0-jax] | [v0.9.0] | [v0.4.0] |
18+
19+
### Run the Jupyter Container
20+
21+
```bash
22+
docker run -it --rm \
23+
-p 8888:8888 \
24+
--net=host \
25+
-v $PWD/workspace:/workspace \
26+
-w /workspace \
27+
intel/intel-optimized-xla:0.4.0-pip-jupyter
28+
```
29+
30+
After running the command above, copy the URL (something like `http://127.0.0.1:$PORT/?token=***`) into your browser to access the notebook server.
31+
32+
## Images with Intel® Distribution for Python*
33+
34+
The images below include [Intel® Distribution for Python*]:
35+
36+
| Tag(s) | [JAX\*] | [Intel® Extension for OpenXLA\*] | [Flax] | Dockerfile |
37+
| ---------------- | --------- | ----------------- | -------- | --------------- |
38+
| `0.4.0-idp-base` | [v0.4.32] | [v0.4.0-jax] | [v0.9.0] | [v0.4.0] |
39+
40+
The images below additionally include [Jupyter Notebook](https://jupyter.org/) server:
41+
42+
| Tag(s) | [JAX\*] | [Intel® Extension for OpenXLA\*] | [Flax] | Dockerfile |
43+
| ------------------- | --------- | ----------------- | -------- | --------------- |
44+
| `0.4.0-idp-jupyter` | [v0.4.32] | [v0.4.0-jax] | [v0.9.0] | [v0.4.0] |
45+
46+
## Build from Source
47+
48+
To build the images from source, clone the [AI Containers](https://github.com/intel/ai-containers) repository, follow the main `README.md` file to setup your environment, and run the following command:
49+
50+
```bash
51+
cd jax
52+
docker compose build jax-base
53+
docker compose run -it jax-base
54+
```
55+
56+
You can find the list of services below for each container in the group:
57+
58+
| Service Name | Description |
59+
| ------------ | ----------------------------------------------- |
60+
| `jax-base` | Base image with [Intel® Extension for OpenXLA\*] |
61+
| `jupyter` | Adds Jupyter Notebook server |
62+
63+
## License
64+
65+
View the [License](https://github.com/intel/ai-containers/blob/main/LICENSE) for the [Intel® Distribution for Python].
66+
67+
The images below also contain other software which may be under other licenses (such as Pytorch*, Jupyter*, Bash, etc. from the base).
68+
69+
It is the image user's responsibility to ensure that any use of The images below comply with any relevant licenses for all software contained within.
70+
71+
\* Other names and brands may be claimed as the property of others.
72+
73+
<!--Below are links used in these document. They are not rendered: -->
74+
75+
[Intel® Distribution for Python*]: https://www.intel.com/content/www/us/en/developer/tools/oneapi/distribution-for-python.html#gs.9bos9m
76+
[Intel® Extension for OpenXLA\*]: https://github.com/intel/intel-extension-for-openxla
77+
[JAX\*]: https://github.com/google/jax
78+
[Flax]: https://github.com/google/flax
79+
80+
[v0.4.32]: https://github.com/google/jax/releases/tag/jax-v0.4.32
81+
82+
[v0.4.0-jax]: https://github.com/intel/intel-extension-for-openxla/releases/tag/0.4.0
83+
84+
[v0.9.0]: https://github.com/google/Flax/releases/tag/v0.9.0
85+
86+
[v0.4.0]: https://github.com/intel/ai-containers/blob/v0.4.0/jax/Dockerfile

0 commit comments

Comments
 (0)