Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
116 changes: 53 additions & 63 deletions .github/workflows/docker-bases.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ concurrency:
on:
push:
paths:
- '/docker/Dockerfile.nvidia'
- '/docker/Dockerfile.cpu'
- '/docker/Dockerfile.amd'
- '/docker/Dockerfile.intel'
- "/docker/Dockerfile.nvidia"
- "/docker/Dockerfile.cpu"
- "/docker/Dockerfile.amd"
- "/docker/Dockerfile.intel"
workflow_dispatch:
inputs:
cpu:
Expand All @@ -27,15 +27,15 @@ on:
default: false

tags:
description: 'Build compiler bases'
description: "Build compiler bases"
schedule:
# Run once a month
- cron: "0 0 1 * *"

jobs:
#######################################################
############## Basic gcc CPU ##########################
#######################################################
#######################################################
############## Basic gcc CPU ##########################
#######################################################
deploy-cpu-bases:
if: inputs.cpu
name: "cpu-base"
Expand Down Expand Up @@ -66,22 +66,18 @@ jobs:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: cleanup
run: docker system prune -a -f

- name: GCC image
uses: docker/build-push-action@v6
with:
context: .
file: './docker/Dockerfile.cpu'
file: "./docker/Dockerfile.cpu"
push: true
build-args: 'gcc=${{ matrix.gcc }}'
tags: 'devitocodes/bases:cpu-gcc${{ matrix.gcc }}'

build-args: "gcc=${{ matrix.gcc }}"
tags: "devitocodes/bases:cpu-gcc${{ matrix.gcc }}"

#######################################################
############## Intel OneApi CPU #######################
#######################################################
#######################################################
############## Intel OneApi CPU #######################
#######################################################
deploy-oneapi-bases:
if: inputs.intel
name: "oneapi-base"
Expand All @@ -107,43 +103,39 @@ jobs:
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: cleanup
run: docker system prune -a -f

- name: ICX image
uses: docker/build-push-action@v6
with:
context: .
file: './docker/Dockerfile.intel'
file: "./docker/Dockerfile.intel"
push: true
target: 'icx'
build-args: 'arch=icx'
tags: 'devitocodes/bases:cpu-icx'
target: "icx"
build-args: "arch=icx"
tags: "devitocodes/bases:cpu-icx"

- name: SYCL CPU image
uses: docker/build-push-action@v6
with:
context: .
file: './docker/Dockerfile.intel'
file: "./docker/Dockerfile.intel"
push: true
target: 'cpu-sycl'
build-args: 'arch=cpu-sycl'
tags: 'devitocodes/bases:cpu-sycl'
target: "cpu-sycl"
build-args: "arch=cpu-sycl"
tags: "devitocodes/bases:cpu-sycl"

- name: SYCL GPU image
uses: docker/build-push-action@v6
with:
context: .
file: './docker/Dockerfile.intel'
file: "./docker/Dockerfile.intel"
push: true
target: 'gpu-sycl'
build-args: 'arch=gpu-sycl'
tags: 'devitocodes/bases:gpu-sycl'
target: "gpu-sycl"
build-args: "arch=gpu-sycl"
tags: "devitocodes/bases:gpu-sycl"

#######################################################
################### Nvidia nvhpc ######################
#######################################################
#######################################################
################### Nvidia nvhpc ######################
#######################################################
deploy-nvidia-bases:
if: inputs.nvidia
name: "nvidia-bases"
Expand All @@ -170,42 +162,43 @@ jobs:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: cleanup
run: docker system prune -a -f

- name: NVC image
uses: docker/build-push-action@v6
with:
context: .
file: './docker/Dockerfile.nvidia'
file: "./docker/Dockerfile.nvidia"
push: true
target: 'nvc'
build-args: 'arch=nvc'
tags: 'devitocodes/bases:nvidia-nvc'
target: "nvc"
build-args: "arch=nvc"
# Label (not tag) with runner name for traceability without changing image tags
labels: builder-runner=${{ runner.name }}
tags: "devitocodes/bases:nvidia-nvc"

- name: NVCC image
uses: docker/build-push-action@v6
with:
context: .
file: './docker/Dockerfile.nvidia'
file: "./docker/Dockerfile.nvidia"
push: true
target: 'nvcc'
build-args: 'arch=nvcc'
tags: 'devitocodes/bases:nvidia-nvcc'
target: "nvcc"
build-args: "arch=nvcc"
labels: builder-runner=${{ runner.name }}
tags: "devitocodes/bases:nvidia-nvcc"

- name: NVC host image
uses: docker/build-push-action@v6
with:
context: .
file: './docker/Dockerfile.nvidia'
file: "./docker/Dockerfile.nvidia"
push: true
target: 'nvc-host'
build-args: 'arch=nvc-host'
tags: 'devitocodes/bases:cpu-nvc'

#######################################################
##################### AMD #############################
#######################################################
target: "nvc-host"
build-args: "arch=nvc-host"
labels: builder-runner=${{ runner.name }}
tags: "devitocodes/bases:cpu-nvc"

#######################################################
##################### AMD #############################
#######################################################
deploy-amd-bases:
if: inputs.amd
name: "amd-base"
Expand All @@ -232,16 +225,13 @@ jobs:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: cleanup
run: docker system prune -a -f

- name: AMD image
uses: docker/build-push-action@v6
with:
context: .
file: './docker/Dockerfile.amd'
file: "./docker/Dockerfile.amd"
push: true
target: 'amdclang'
target: "amdclang"
build-args: |
ROCM_VERSION=5.5.1
UCX_BRANCH=v1.13.1
Expand All @@ -252,9 +242,9 @@ jobs:
uses: docker/build-push-action@v6
with:
context: .
file: './docker/Dockerfile.amd'
file: "./docker/Dockerfile.amd"
push: true
target: 'hip'
target: "hip"
build-args: |
ROCM_VERSION=6.3.4
tags: devitocodes/bases:amd-hip
15 changes: 13 additions & 2 deletions .github/workflows/docker-devito.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,22 @@ jobs:
env:
# Use buildkit https://docs.docker.com/develop/develop-images/build_enhancements/ for better build
DOCKER_BUILDKIT: "1"
# Unique container name to avoid clashes across concurrent self-hosted runners
CONTAINER_NAME: testrun-${{ matrix.tag }}-${{ runner.name }}


strategy:
fail-fast: false
matrix:
include:
- base: 'bases:nvidia-nvc'
tag: 'nvidia-nvc'
flag: '--init --gpus all'
# Respect CUDA_VISIBLE_DEVICES set by the runner and hard-limit docker to that device.
# (--env without value forwards host var; --gpus maps only that device)
flag: |
--init
--env CUDA_VISIBLE_DEVICES
--gpus "device=${CUDA_VISIBLE_DEVICES:-all}"
test: 'tests/test_gpu_openacc.py tests/test_gpu_common.py'
runner: ["self-hosted", "nvidiagpu"]

Expand Down Expand Up @@ -102,8 +110,11 @@ jobs:
build-args: base=devitocodes/${{ matrix.base }}

- name: Remove dangling layers
if: ${{ !contains(matrix.runner, 'nvidiagpu') }}
run: docker system prune -f

- name: Run tests
run: |
docker run ${{ matrix.flag }} --rm -t --name testrun 'devitocodes/devito:${{ matrix.tag }}-dev' pytest ${{ matrix.test }}
docker run ${{ matrix.flag }} --rm -t --name "${CONTAINER_NAME}" \
devitocodes/devito:${{ matrix.tag }}-dev \
pytest ${{ matrix.test }}
Loading
Loading