Skip to content

Commit

Permalink
[CI] Add remaining Ubuntu 24.04 Docker containers
Browse files Browse the repository at this point in the history
Signed-off-by: Sarnie, Nick <nick.sarnie@intel.com>
  • Loading branch information
sarnex committed Dec 23, 2024
1 parent 1b4e286 commit ba49588
Show file tree
Hide file tree
Showing 4 changed files with 68 additions and 34 deletions.
13 changes: 12 additions & 1 deletion .github/workflows/sycl-containers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,14 @@ jobs:
file: ubuntu2404_base
tag: latest
build_args: ""
- name: Build Ubuntu Docker image
- name: Build Ubuntu 22.04 Docker image
file: ubuntu2204_build
tag: latest
build_args: ""
- name: Build Ubuntu 24.04 Docker image
file: ubuntu2404_build
tag: latest
build_args: ""
- name: Build Ubuntu 24.04 oneAPI Docker image
file: ubuntu2404_build_oneapi
tag: latest
Expand All @@ -70,6 +74,13 @@ jobs:
base_image=ghcr.io/intel/llvm/ubuntu2204_build
base_tag=latest
use_unstable_driver=false
- name: Build + Intel Drivers Ubuntu 24.04 Docker image
file: ubuntu2404_intel_drivers
tag: alldeps
build_args: |
base_image=ghcr.io/intel/llvm/ubuntu2404_build
base_tag=latest
use_unstable_driver=false
steps:
- name: Checkout
uses: actions/checkout@v4
Expand Down
42 changes: 42 additions & 0 deletions devops/containers/ubuntu2404_build.Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
FROM nvidia/cuda:12.6.3-devel-ubuntu24.04

ENV DEBIAN_FRONTEND=noninteractive

USER root

# Install SYCL prerequisites
COPY scripts/install_build_tools.sh /install.sh
RUN /install.sh

SHELL ["/bin/bash", "-ec"]

# Make the directory if it doesn't exist yet.
# This location is recommended by the distribution maintainers.
RUN mkdir --parents --mode=0755 /etc/apt/keyrings
# Download the key, convert the signing-key to a full
# keyring required by apt and store in the keyring directory
RUN wget https://repo.radeon.com/rocm/rocm.gpg.key -O - | \
gpg --dearmor | tee /etc/apt/keyrings/rocm.gpg > /dev/null && \
# Add rocm repo
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/amdgpu/6.3/ubuntu noble main" \
| tee /etc/apt/sources.list.d/amdgpu.list && \
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/rocm/apt/6.3 noble main" \
| tee --append /etc/apt/sources.list.d/rocm.list && \
echo -e 'Package: *\nPin: release o=repo.radeon.com\nPin-Priority: 600' \
| tee /etc/apt/preferences.d/rocm-pin-600 && \
echo -e 'Package: *\nPin: release o=repo.radeon.com\nPin-Priority: 600' \
| tee /etc/apt/preferences.d/rocm-pin-600
# Install the ROCM kernel driver
RUN apt update && apt install -yqq rocm-dev && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*

COPY scripts/create-sycl-user.sh /user-setup.sh
RUN /user-setup.sh

COPY scripts/docker_entrypoint.sh /docker_entrypoint.sh

USER sycl

ENTRYPOINT ["/docker_entrypoint.sh"]

33 changes: 4 additions & 29 deletions devops/containers/ubuntu2404_build_oneapi.Dockerfile
Original file line number Diff line number Diff line change
@@ -1,48 +1,23 @@
FROM nvidia/cuda:12.6.3-devel-ubuntu24.04
FROM ghcr.io/intel/llvm/ubuntu2404_build:latest

ENV DEBIAN_FRONTEND=noninteractive

USER root

# Install SYCL prerequisites
COPY scripts/install_build_tools.sh /install.sh
RUN /install.sh

SHELL ["/bin/bash", "-ec"]

# Install oneAPI

# Make the directory if it doesn't exist yet.
# This location is recommended by the distribution maintainers.
RUN mkdir --parents --mode=0755 /etc/apt/keyrings
# Download the key, convert the signing-key to a full
# keyring required by apt and store in the keyring directory
RUN wget https://repo.radeon.com/rocm/rocm.gpg.key -O - | \
gpg --dearmor | tee /etc/apt/keyrings/rocm.gpg > /dev/null && \
# Add rocm repo
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/amdgpu/6.3/ubuntu noble main" \
| tee /etc/apt/sources.list.d/amdgpu.list && \
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/rocm/apt/6.3 noble main" \
| tee --append /etc/apt/sources.list.d/rocm.list && \
echo -e 'Package: *\nPin: release o=repo.radeon.com\nPin-Priority: 600' \
| tee /etc/apt/preferences.d/rocm-pin-600 && \
echo -e 'Package: *\nPin: release o=repo.radeon.com\nPin-Priority: 600' \
| tee /etc/apt/preferences.d/rocm-pin-600 && \
wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor \
RUN wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor \
| tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null && \
echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" \
| tee /etc/apt/sources.list.d/oneAPI.list

# Install the ROCM kernel driver and oneAPI
RUN apt update && apt install -yqq rocm-dev intel-oneapi-compiler-dpcpp-cpp && \
# Install oneAPI
RUN apt update && apt install -yqq intel-oneapi-compiler-dpcpp-cpp && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*

COPY scripts/create-sycl-user.sh /user-setup.sh
RUN /user-setup.sh

COPY scripts/docker_entrypoint.sh /docker_entrypoint.sh

USER sycl

ENTRYPOINT ["/docker_entrypoint.sh"]
Expand Down
14 changes: 10 additions & 4 deletions sycl/doc/developer/DockerBKMs.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,18 +50,24 @@ The following containers are publicly available for DPC++ compiler development:
development kits for NVidia/AMD from the `ubuntu2204_build` container.
- `ghcr.io/intel/llvm/ubuntu2404_intel_drivers`: contains everything from the
Ubuntu 24.04 base container + pre-installed Intel drivers.
The image comes in three flavors/tags:
The image comes in four flavors/tags:
* `latest`: Intel drivers are downloaded from release/tag and saved in
dependencies.json. The drivers are tested/validated everytime we upgrade
the driver.
* `devigc`: Intel Graphics Compiler driver from github actions artifacts,
other drivers are downloaded from release/tag and saved in dependencies.json.
* `unstable`: Intel drivers are downloaded from release/latest.
* `alldeps`: Includes the same Intel drivers as `latest`, as well as the
development kits for NVidia/AMD from the `ubuntu2404_build` container.
The drivers are installed as it is, not tested or validated.
- `ghcr.io/intel/llvm/ubuntu2204_build`: has development kits installed for
NVidia/AMD and can be used for building DPC++ compiler from source with all
backends enabled or for end-to-end testing with HIP/CUDA on machines with
corresponding GPUs available.
NVidia/AMD, is based on Ubuntu 22.04, and can be used for building DPC++
compiler from source with all backends enabled or for end-to-end testing
with HIP/CUDA on machines with corresponding GPUs available.
- `ghcr.io/intel/llvm/ubuntu2404_build`: has development kits installed for
NVidia/AMD, is based on Ubuntu 24.04, and can be used for building DPC++
compiler from source with all backends enabled or for end-to-end testing
with HIP/CUDA on machines with corresponding GPUs available.
- `ghcr.io/intel/llvm/sycl_ubuntu2204_nightly`: contains the latest successfully
built nightly build of DPC++ compiler. The image comes in three flavors:
with pre-installed Intel drivers (`latest`), without them (`no-drivers`) and
Expand Down

0 comments on commit ba49588

Please sign in to comment.