1111 - ' /docker/Dockerfile.cpu'
1212 - ' /docker/Dockerfile.amd'
1313 - ' /docker/Dockerfile.intel'
14+ - ' /docker/Dockerfile.nogil'
1415 workflow_dispatch :
1516 inputs :
1617 cpu :
4647 strategy :
4748 matrix :
4849 gcc : ["", "14"]
50+ disable-gil : [false, true]
4951
5052 steps :
5153 - name : Checkout devito
@@ -69,14 +71,24 @@ jobs:
6971 - name : cleanup
7072 run : docker system prune -a -f
7173
74+ - name : Build free-threaded base image
75+ uses : docker/build-push-action@v6
76+ if : ${{ matrix.disable-gil }}
77+ with :
78+ context : .
79+ file : ' ./docker/Dockerfile.nogil'
80+ tags : ubuntu-nogil
81+
7282 - name : GCC image
7383 uses : docker/build-push-action@v6
7484 with :
7585 context : .
7686 file : ' ./docker/Dockerfile.cpu'
7787 push : true
78- build-args : ' gcc=${{ matrix.gcc }}'
79- tags : ' devitocodes/bases:cpu-gcc${{ matrix.gcc }}'
88+ build-args : |
89+ gcc=${{ matrix.gcc }}
90+ ${{ matrix.disable-gil && 'FROM_IMAGE=ubuntu-nogil' || '' }}
91+ tags : devitocodes/bases:cpu-gcc${{ matrix.gcc }}${{ matrix.disable-gil && '-nogil' || '' }}
8092
8193
8294# ######################################################
@@ -89,6 +101,10 @@ jobs:
89101 env :
90102 DOCKER_BUILDKIT : " 1"
91103
104+ strategy :
105+ matrix :
106+ disable-gil : [false, true]
107+
92108 steps :
93109 - name : Checkout devito
94110 uses : actions/checkout@v4
@@ -111,15 +127,25 @@ jobs:
111127 - name : cleanup
112128 run : docker system prune -a -f
113129
130+ - name : Build free-threaded base image
131+ uses : docker/build-push-action@v6
132+ if : ${{ matrix.disable-gil }}
133+ with :
134+ context : .
135+ file : ' ./docker/Dockerfile.nogil'
136+ tags : ubuntu-nogil
137+
114138 - name : ICX image
115139 uses : docker/build-push-action@v6
116140 with :
117141 context : .
118142 file : ' ./docker/Dockerfile.intel'
119143 push : true
120144 target : ' icx'
121- build-args : ' arch=icx'
122- tags : ' devitocodes/bases:cpu-icx'
145+ build-args : |
146+ arch=icx
147+ ${{ matrix.disable-gil && 'FROM_IMAGE=ubuntu-nogil' || '' }}
148+ tags : devitocodes/bases:cpu-icx${{ matrix.disable-gil && '-nogil' || '' }}
123149
124150 - name : SYCL CPU image
125151 uses : docker/build-push-action@v6
@@ -128,8 +154,10 @@ jobs:
128154 file : ' ./docker/Dockerfile.intel'
129155 push : true
130156 target : ' cpu-sycl'
131- build-args : ' arch=cpu-sycl'
132- tags : ' devitocodes/bases:cpu-sycl'
157+ build-args : |
158+ arch=cpu-sycl
159+ ${{ matrix.disable-gil && 'FROM_IMAGE=ubuntu-nogil' || '' }}
160+ tags : devitocodes/bases:cpu-sycl${{ matrix.disable-gil && '-nogil' || '' }}
133161
134162 - name : SYCL GPU image
135163 uses : docker/build-push-action@v6
@@ -138,8 +166,10 @@ jobs:
138166 file : ' ./docker/Dockerfile.intel'
139167 push : true
140168 target : ' gpu-sycl'
141- build-args : ' arch=gpu-sycl'
142- tags : ' devitocodes/bases:gpu-sycl'
169+ build-args : |
170+ arch=gpu-sycl
171+ ${{ matrix.disable-gil && 'FROM_IMAGE=ubuntu-nogil' || '' }}
172+ tags : devitocodes/bases:gpu-sycl${{ matrix.disable-gil && '-nogil' || '' }}
143173
144174# ######################################################
145175# ################## Nvidia nvhpc ######################
@@ -151,6 +181,10 @@ jobs:
151181 env :
152182 DOCKER_BUILDKIT : " 1"
153183
184+ strategy :
185+ matrix :
186+ disable-gil : [false, true]
187+
154188 steps :
155189 - name : Checkout devito
156190 uses : actions/checkout@v4
@@ -173,15 +207,25 @@ jobs:
173207 - name : cleanup
174208 run : docker system prune -a -f
175209
210+ - name : Build free-threaded base image
211+ uses : docker/build-push-action@v6
212+ if : ${{ matrix.disable-gil }}
213+ with :
214+ context : .
215+ file : ' ./docker/Dockerfile.nogil'
216+ tags : ubuntu-nogil
217+
176218 - name : NVC image
177219 uses : docker/build-push-action@v6
178220 with :
179221 context : .
180222 file : ' ./docker/Dockerfile.nvidia'
181223 push : true
182224 target : ' nvc'
183- build-args : ' arch=nvc'
184- tags : ' devitocodes/bases:nvidia-nvc'
225+ build-args : |
226+ arch=nvc
227+ ${{ matrix.disable-gil && 'FROM_IMAGE=ubuntu-nogil' || '' }}
228+ tags : devitocodes/bases:nvidia-nvc${{ matrix.disable-gil && '-nogil' || '' }}
185229
186230 - name : NVCC image
187231 uses : docker/build-push-action@v6
@@ -190,8 +234,10 @@ jobs:
190234 file : ' ./docker/Dockerfile.nvidia'
191235 push : true
192236 target : ' nvcc'
193- build-args : ' arch=nvcc'
194- tags : ' devitocodes/bases:nvidia-nvcc'
237+ build-args : |
238+ arch=nvcc
239+ ${{ matrix.disable-gil && 'FROM_IMAGE=ubuntu-nogil' || '' }}
240+ tags : devitocodes/bases:nvidia-nvcc${{ matrix.disable-gil && '-nogil' || '' }}
195241
196242 - name : NVC host image
197243 uses : docker/build-push-action@v6
@@ -200,8 +246,10 @@ jobs:
200246 file : ' ./docker/Dockerfile.nvidia'
201247 push : true
202248 target : ' nvc-host'
203- build-args : ' arch=nvc-host'
204- tags : ' devitocodes/bases:cpu-nvc'
249+ build-args : |
250+ arch=nvc-host
251+ ${{ matrix.disable-gil && 'FROM_IMAGE=ubuntu-nogil' || '' }}
252+ tags : devitocodes/bases:cpu-nvc${{ matrix.disable-gil && '-nogil' || '' }}
205253
206254# ######################################################
207255# #################### AMD #############################
@@ -213,6 +261,10 @@ jobs:
213261 env :
214262 DOCKER_BUILDKIT : " 1"
215263
264+ strategy :
265+ matrix :
266+ disable-gil : [false, true]
267+
216268 steps :
217269 - name : Checkout devito
218270 uses : actions/checkout@v4
@@ -235,6 +287,14 @@ jobs:
235287 - name : cleanup
236288 run : docker system prune -a -f
237289
290+ - name : Build free-threaded base image
291+ uses : docker/build-push-action@v6
292+ if : ${{ matrix.disable-gil }}
293+ with :
294+ context : .
295+ file : ' ./docker/Dockerfile.nogil'
296+ tags : ubuntu-nogil
297+
238298 - name : AMD image
239299 uses : docker/build-push-action@v6
240300 with :
@@ -246,7 +306,8 @@ jobs:
246306 ROCM_VERSION=5.5.1
247307 UCX_BRANCH=v1.13.1
248308 OMPI_BRANCH=v4.1.4
249- tags : devitocodes/bases:amd
309+ ${{ matrix.disable-gil && 'FROM_IMAGE=ubuntu-nogil' || '' }}
310+ tags : devitocodes/bases:amd${{ matrix.disable-gil && '-nogil' || '' }}
250311
251312 - name : AMD HIP image
252313 uses : docker/build-push-action@v6
@@ -257,4 +318,5 @@ jobs:
257318 target : ' hip'
258319 build-args : |
259320 ROCM_VERSION=6.3.4
260- tags : devitocodes/bases:amd-hip
321+ ${{ matrix.disable-gil && 'FROM_IMAGE=ubuntu-nogil' || '' }}
322+ tags : devitocodes/bases:amd-hip${{ matrix.disable-gil && '-nogil' || '' }}
0 commit comments