Skip to content

Commit 88667bd

Browse files
sarnexbader
andauthored
[CI] Add remaining Ubuntu 24.04 Dockerfile (#16457)
This adds the remaining Dockerfiles we'll need for Ubuntu 24.04. There will be two more containers added to the workflow after this PR, I can't add them now because they require changes in this PR and CI doesn't use the files from precommit. --------- Signed-off-by: Sarnie, Nick <nick.sarnie@intel.com> Co-authored-by: Alexey Bader <alexey.bader@intel.com>
1 parent e6375cc commit 88667bd

File tree

3 files changed

+70
-14
lines changed

3 files changed

+70
-14
lines changed

.github/workflows/sycl-containers.yaml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,14 @@ jobs:
4343
file: ubuntu2404_base
4444
tag: latest
4545
build_args: ""
46-
- name: Build Ubuntu Docker image
46+
- name: Build Ubuntu 22.04 Docker image
4747
file: ubuntu2204_build
4848
tag: latest
4949
build_args: ""
50+
- name: Build Ubuntu 24.04 Docker image
51+
file: ubuntu2404_build
52+
tag: latest
53+
build_args: ""
5054
- name: Build Ubuntu 24.04 oneAPI Docker image
5155
file: ubuntu2404_build_oneapi
5256
tag: latest
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
FROM nvidia/cuda:12.6.3-devel-ubuntu24.04
2+
3+
ENV DEBIAN_FRONTEND=noninteractive
4+
5+
USER root
6+
7+
# Install SYCL prerequisites
8+
COPY scripts/install_build_tools.sh /install.sh
9+
RUN /install.sh
10+
11+
SHELL ["/bin/bash", "-ec"]
12+
13+
# Make the directory if it doesn't exist yet.
14+
# This location is recommended by the distribution maintainers.
15+
RUN mkdir --parents --mode=0755 /etc/apt/keyrings
16+
# Download the key, convert the signing-key to a full
17+
# keyring required by apt and store in the keyring directory
18+
RUN wget https://repo.radeon.com/rocm/rocm.gpg.key -O - | \
19+
gpg --dearmor | tee /etc/apt/keyrings/rocm.gpg > /dev/null && \
20+
# Add rocm repo
21+
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/amdgpu/6.3/ubuntu noble main" \
22+
| tee /etc/apt/sources.list.d/amdgpu.list && \
23+
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/rocm/apt/6.3 noble main" \
24+
| tee --append /etc/apt/sources.list.d/rocm.list && \
25+
echo -e 'Package: *\nPin: release o=repo.radeon.com\nPin-Priority: 600' \
26+
| tee /etc/apt/preferences.d/rocm-pin-600 && \
27+
echo -e 'Package: *\nPin: release o=repo.radeon.com\nPin-Priority: 600' \
28+
| tee /etc/apt/preferences.d/rocm-pin-600
29+
# Install the ROCM kernel driver
30+
RUN apt update && apt install -yqq rocm-dev && \
31+
apt-get clean && \
32+
rm -rf /var/lib/apt/lists/*
33+
34+
COPY scripts/create-sycl-user.sh /user-setup.sh
35+
RUN /user-setup.sh
36+
37+
COPY scripts/docker_entrypoint.sh /docker_entrypoint.sh
38+
39+
USER sycl
40+
41+
ENTRYPOINT ["/docker_entrypoint.sh"]
42+

sycl/doc/developer/DockerBKMs.md

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -36,20 +36,33 @@ identical for Docker and Podman. Choose whatever is available on your system.
3636

3737
The following containers are publicly available for DPC++ compiler development:
3838

39-
- `ghcr.io/intel/llvm/ubuntu2204_base`: contains basic Ubuntu 22.04 environment
40-
setup for building DPC++ compiler from source.
41-
- `ghcr.io/intel/llvm/ubuntu2404_base`: contains basic Ubuntu 24.04 environment
39+
### Ubuntu 22.04-based images
40+
41+
- `ghcr.io/intel/llvm/ubuntu2204_base`: contains basic environment
4242
setup for building DPC++ compiler from source.
4343
- `ghcr.io/intel/llvm/ubuntu2204_intel_drivers`: contains everything from the
44-
Ubuntu 22.04 base container + pre-installed Intel drivers.
44+
base container + pre-installed Intel drivers.
4545
The image comes in two flavors/tags:
4646
* `latest`: Intel drivers are downloaded from release/tag and saved in
4747
dependencies.json. The drivers are tested/validated everytime we upgrade
4848
the driver.
4949
* `alldeps`: Includes the same Intel drivers as `latest`, as well as the
5050
development kits for NVidia/AMD from the `ubuntu2204_build` container.
51+
- `ghcr.io/intel/llvm/ubuntu2204_build`: has development kits installed for
52+
NVidia/AMD and can be used for building DPC++
53+
compiler from source with all backends enabled or for end-to-end testing
54+
with HIP/CUDA on machines with corresponding GPUs available.
55+
- `ghcr.io/intel/llvm/sycl_ubuntu2204_nightly`: contains the latest successfully
56+
built nightly build of DPC++ compiler. The image comes in three flavors:
57+
with pre-installed Intel drivers (`latest`), without them (`no-drivers`) and
58+
with development kits installed (`build`).
59+
60+
### Ubuntu 24.04-based images
61+
62+
- `ghcr.io/intel/llvm/ubuntu2404_base`: contains basic environment
63+
setup for building DPC++ compiler from source.
5164
- `ghcr.io/intel/llvm/ubuntu2404_intel_drivers`: contains everything from the
52-
Ubuntu 24.04 base container + pre-installed Intel drivers.
65+
base container + pre-installed Intel drivers.
5366
The image comes in three flavors/tags:
5467
* `latest`: Intel drivers are downloaded from release/tag and saved in
5568
dependencies.json. The drivers are tested/validated everytime we upgrade
@@ -58,14 +71,11 @@ The following containers are publicly available for DPC++ compiler development:
5871
other drivers are downloaded from release/tag and saved in dependencies.json.
5972
* `unstable`: Intel drivers are downloaded from release/latest.
6073
The drivers are installed as it is, not tested or validated.
61-
- `ghcr.io/intel/llvm/ubuntu2204_build`: has development kits installed for
62-
NVidia/AMD and can be used for building DPC++ compiler from source with all
63-
backends enabled or for end-to-end testing with HIP/CUDA on machines with
64-
corresponding GPUs available.
65-
- `ghcr.io/intel/llvm/sycl_ubuntu2204_nightly`: contains the latest successfully
66-
built nightly build of DPC++ compiler. The image comes in three flavors:
67-
with pre-installed Intel drivers (`latest`), without them (`no-drivers`) and
68-
with development kits installed (`build`).
74+
- `ghcr.io/intel/llvm/ubuntu2404_build`: has development kits installed for
75+
NVidia/AMD and can be used for building DPC++
76+
compiler from source with all backends enabled or for end-to-end testing
77+
with HIP/CUDA on machines with corresponding GPUs available.
78+
6979

7080
## Running Docker container interactively
7181

0 commit comments

Comments
 (0)