diff --git a/.github/workflows/docker-bases.yml b/.github/workflows/docker-bases.yml index 65a12fb289a..24deac52539 100644 --- a/.github/workflows/docker-bases.yml +++ b/.github/workflows/docker-bases.yml @@ -25,12 +25,6 @@ jobs: fail-fast: false matrix: include: - - tag: 'devitocodes/bases:nvidia-nvc' - arch: 'arch=nvc' - version: 'ver=nvhpc-22-7' - dockerfile: './docker/Dockerfile.nvidia' - runner: ["self-hosted", "nvidiagpu"] - - tag: 'devitocodes/bases:nvidia-nvcc' arch: 'arch=nvcc' version: 'ver=nvhpc-22-7' @@ -52,12 +46,6 @@ jobs: version: '' dockerfile: './docker/Dockerfile.amd' runner: ["self-hosted", "amdgpu"] - - - tag: 'devitocodes/bases:amd-hip' - arch: 'arch=hip' - version: '' - dockerfile: './docker/Dockerfile.amd' - runner: ["self-hosted", "amdgpu"] # These ones are tiny runs on default - tag: 'devitocodes/bases:cpu-gcc' @@ -66,18 +54,12 @@ jobs: dockerfile: './docker/Dockerfile.cpu' runner: ubuntu-latest - - tag: 'devitocodes/bases:cpu-icc, devitocodes/bases:cpu-icx' - arch: 'arch=icc' + - tag: 'devitocodes/bases:cpu-icx' + arch: 'arch=icx' version: '' dockerfile: './docker/Dockerfile.cpu' runner: ubuntu-latest - - tag: 'devitocodes/bases:cpu-nvc' - arch: 'arch=nvc-host' - version: '' - dockerfile: './docker/Dockerfile.nvidia' - runner: ["self-hosted", "nvidiagpu"] - steps: - name: Checkout devito uses: actions/checkout@v3 @@ -110,3 +92,54 @@ jobs: ${{ matrix.arch }} ${{ matrix.version }} tags: ${{ matrix.tag }} + + deploy-docker-extra-configs: + name: ${{ matrix.tag }} + runs-on: ${{ matrix.runner }} + env: + DOCKER_BUILDKIT: "1" + needs: deploy-docker-bases + + strategy: + fail-fast: false + matrix: + include: + - tag: 'devitocodes/bases:nvidia-nvc' + arch: 'arch=nvc' + base: 'devitocodes/bases:nvidia-nvcc' + version: 'ver=nvhpc-22-7' + dockerfile: './docker/Dockerfile.nvidia' + runner: ["self-hosted", "nvidiagpu"] + + - tag: 'devitocodes/bases:cpu-nvc' + arch: 'arch=nvc-host' + base: 'devitocodes/bases:nvidia-nvcc' + version: '' + dockerfile: './docker/Dockerfile.nvidia' + runner: ["self-hosted", "nvidiagpu"] + + - tag: 'devitocodes/bases:amd-hip' + base: 'devitocodes/bases:amd' + arch: 'arch=hip' + version: '' + dockerfile: './docker/Dockerfile.amd' + runner: ["self-hosted", "amdgpu"] + + - tag: 'devitocodes/bases:cpu-icc' + base: 'devitocodes/bases:cpu-icx' + arch: 'arch=icc' + version: '' + dockerfile: './docker/Dockerfile.cpu' + runner: ubuntu-latest + + steps: + - name: Docker image + uses: docker/build-push-action@v3 + with: + context: . + file: ${{ matrix.dockerfile }} + push: true + build-args: | + ${{ matrix.arch }} + ${{ matrix.version }} + tags: ${{ matrix.tag }} \ No newline at end of file diff --git a/devito/ir/support/guards.py b/devito/ir/support/guards.py index c6e4e343ea7..dd1bcc01a57 100644 --- a/devito/ir/support/guards.py +++ b/devito/ir/support/guards.py @@ -234,6 +234,19 @@ def andg(self, d, guard): return Guards(m) + def xandg(self, d, guard): + m = dict(self) + + if guard == true: + return Guards(m) + + try: + m[d] = And(m[d], guard) + except KeyError: + pass + + return Guards(m) + def impose(self, d, guard): m = dict(self) diff --git a/devito/passes/clusters/buffering.py b/devito/passes/clusters/buffering.py index e8deb39f59c..09eda1be895 100644 --- a/devito/passes/clusters/buffering.py +++ b/devito/passes/clusters/buffering.py @@ -228,7 +228,10 @@ def callback(self, clusters, prefix, cache=None): expr = lower_exprs(Eq(lhs, rhs)) ispace = b.readfrom - guards = c.guards.andg(b.xd, GuardBound(0, b.firstidx.f)) + try: + guards = c.guards.xandg(b.xd, GuardBound(0, b.firstidx.f)) + except KeyError: + guards = c.guards properties = c.properties.sequentialize(d) processed.append( @@ -262,7 +265,10 @@ def callback(self, clusters, prefix, cache=None): expr = lower_exprs(uxreplace(Eq(lhs, rhs), b.subdims_mapper)) ispace = b.written - guards = c.guards.andg(b.xd, GuardBound(0, b.firstidx.f)) + try: + guards = c.guards.xandg(b.xd, GuardBound(0, b.firstidx.f)) + except KeyError: + guards = c.guards properties = c.properties.sequentialize(d) processed.append(