From b28270e7f58647b458fc62a75511fd59362b1f02 Mon Sep 17 00:00:00 2001 From: Simeon David Schaub Date: Mon, 13 Oct 2025 16:00:28 +0200 Subject: [PATCH 01/16] switch CI to 1.12 --- .buildkite/pipeline.yml | 2 +- .github/workflows/Test.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml index ef2048f7..02476bb5 100644 --- a/.buildkite/pipeline.yml +++ b/.buildkite/pipeline.yml @@ -2,7 +2,7 @@ steps: - label: "CUDA" plugins: - JuliaCI/julia#v1: - version: "1.11" + version: "1.12" - JuliaCI/julia-coverage#v1: codecov: true commands: | diff --git a/.github/workflows/Test.yml b/.github/workflows/Test.yml index ff2c45ee..5c9d639b 100644 --- a/.github/workflows/Test.yml +++ b/.github/workflows/Test.yml @@ -22,7 +22,7 @@ jobs: strategy: fail-fast: false matrix: - version: ['1.10', '1.11'] + version: ['1.10', '1.12'] os: [ubuntu-24.04, ubuntu-24.04-arm, macOS-15, macOS-15-intel, windows-2025] arch: [x64, arm64] pocl: [jll, local] From f98c613a78b9c8a09a8122d1165e57ff25839f7b Mon Sep 17 00:00:00 2001 From: Simeon David Schaub Date: Wed, 15 Oct 2025 15:08:53 +0200 Subject: [PATCH 02/16] try with the khronos backend --- .github/workflows/Test.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/Test.yml b/.github/workflows/Test.yml index 5c9d639b..06147e81 100644 --- a/.github/workflows/Test.yml +++ b/.github/workflows/Test.yml @@ -135,7 +135,8 @@ jobs: echo 'default_memory_backend="${{ matrix.memory_backend }}"' >> test/LocalPreferences.toml julia --project -e ' using Pkg - Pkg.develop(path="lib/intrinsics")' + Pkg.develop(path="lib/intrinsics") + Pkg.add(name="GPUCompiler", rev="sds/khronos")' - name: Test OpenCL.jl uses: julia-actions/julia-runtest@v1 From 41a704ad619ccf7fa8f458a9ae3b629117108b4f Mon Sep 17 00:00:00 2001 From: Christian Guinard <28689358+christiangnrd@users.noreply.github.com> Date: Wed, 15 Oct 2025 16:37:27 -0300 Subject: [PATCH 03/16] Silence warning --- test/device.jl | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/test/device.jl b/test/device.jl index 94441053..ed5b2066 100644 --- a/test/device.jl +++ b/test/device.jl @@ -58,11 +58,19 @@ :max_image3d_shape, ] @test isa(cl.platform(), cl.Platform) - @test_throws ErrorException cl.platform().zjdlkf + if isdefined(Core, :FieldError) # VERSION > v"1.12.0-" + @test_throws FieldError cl.platform().zjdlkf + else + @test_throws ErrorException cl.platform().zjdlkf + end device = cl.device() @test isa(device, cl.Device) - @test_throws ErrorException device.zjdlkf + if isdefined(Core, :FieldError) # VERSION > v"1.12.0-" + @test_throws FieldError device.zjdlkf + else + @test_throws ErrorException device.zjdlkf + end for k in device_info_keys v = getproperty(device, k) if k == :extensions From 96b01c337ce8267a5d88fee502748f5d16cd0eda Mon Sep 17 00:00:00 2001 From: Christian Guinard <28689358+christiangnrd@users.noreply.github.com> Date: Wed, 15 Oct 2025 16:42:41 -0300 Subject: [PATCH 04/16] No 7.1 yet and include 1.11, jll only --- .github/workflows/Test.yml | 4 ++-- test/Project.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/Test.yml b/.github/workflows/Test.yml index 06147e81..8bbd83af 100644 --- a/.github/workflows/Test.yml +++ b/.github/workflows/Test.yml @@ -22,10 +22,10 @@ jobs: strategy: fail-fast: false matrix: - version: ['1.10', '1.12'] + version: ['1.10', '1.11', '1.12'] os: [ubuntu-24.04, ubuntu-24.04-arm, macOS-15, macOS-15-intel, windows-2025] arch: [x64, arm64] - pocl: [jll, local] + pocl: [jll] memory_backend: [usm, svm, buffer] exclude: # unsupported combinations diff --git a/test/Project.toml b/test/Project.toml index a44cae6b..6205c3a1 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -23,4 +23,4 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" pocl_jll = "627d6b7a-bbe6-5189-83e7-98cc0a5aeadd" [compat] -pocl_jll = "7.0" +pocl_jll = "~7.0" From 88a1be6e2a56e3b2e4727b05e18dcfe5b6792c99 Mon Sep 17 00:00:00 2001 From: Christian Guinard <28689358+christiangnrd@users.noreply.github.com> Date: Wed, 15 Oct 2025 16:54:21 -0300 Subject: [PATCH 05/16] Revert "try with the khronos backend" This reverts commit d472b78dbee2616703c2f7ec65211addd9efd2c0. --- .github/workflows/Test.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/Test.yml b/.github/workflows/Test.yml index 8bbd83af..b7ff37da 100644 --- a/.github/workflows/Test.yml +++ b/.github/workflows/Test.yml @@ -135,8 +135,7 @@ jobs: echo 'default_memory_backend="${{ matrix.memory_backend }}"' >> test/LocalPreferences.toml julia --project -e ' using Pkg - Pkg.develop(path="lib/intrinsics") - Pkg.add(name="GPUCompiler", rev="sds/khronos")' + Pkg.develop(path="lib/intrinsics")' - name: Test OpenCL.jl uses: julia-actions/julia-runtest@v1 From 49326738b3c3907256689754119436b089a96242 Mon Sep 17 00:00:00 2001 From: Christian Guinard <28689358+christiangnrd@users.noreply.github.com> Date: Wed, 15 Oct 2025 17:19:24 -0300 Subject: [PATCH 06/16] 1.12 checkbounds fix --- src/device/quirks.jl | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/device/quirks.jl b/src/device/quirks.jl index 9cdf15e9..ab532f40 100644 --- a/src/device/quirks.jl +++ b/src/device/quirks.jl @@ -57,3 +57,13 @@ end @print_and_throw "Out-of-bounds access of scalar value" x end + +# From Metal.jl to avoid widemul and Int128 +@static if VERSION >= v"1.12.0-DEV.1736" # Partially reverts JuliaLang/julia PR #56750 + let BitInteger64 = Union{Int64, UInt64} + @device_override function Base.checkbounds(::Type{Bool}, v::StepRange{<:BitInteger64, <:BitInteger64}, i::BitInteger64) + @inline + return checkindex(Bool, eachindex(IndexLinear(), v), i) + end + end +end From 73303d3bc53d61f9d8d60851343ca41e5d67c377 Mon Sep 17 00:00:00 2001 From: Christian Guinard <28689358+christiangnrd@users.noreply.github.com> Date: Mon, 20 Oct 2025 09:50:29 -0300 Subject: [PATCH 07/16] Update quirks.jl Co-Authored-By: Simeon David Schaub --- src/device/quirks.jl | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/device/quirks.jl b/src/device/quirks.jl index ab532f40..93dd4982 100644 --- a/src/device/quirks.jl +++ b/src/device/quirks.jl @@ -60,10 +60,9 @@ end # From Metal.jl to avoid widemul and Int128 @static if VERSION >= v"1.12.0-DEV.1736" # Partially reverts JuliaLang/julia PR #56750 - let BitInteger64 = Union{Int64, UInt64} - @device_override function Base.checkbounds(::Type{Bool}, v::StepRange{<:BitInteger64, <:BitInteger64}, i::BitInteger64) - @inline - return checkindex(Bool, eachindex(IndexLinear(), v), i) - end + BitInteger64 = Union{Int64, UInt64} + @device_override function Base.checkbounds(::Type{Bool}, v::StepRange{<:BitInteger64, <:BitInteger64}, i::_BitInteger64) + @inline + return checkindex(Bool, eachindex(IndexLinear(), v), i) end end From 475a6a436e78c71f18398f02744b1ca9482ac530 Mon Sep 17 00:00:00 2001 From: Christian Guinard <28689358+christiangnrd@users.noreply.github.com> Date: Mon, 20 Oct 2025 09:51:09 -0300 Subject: [PATCH 08/16] Revert "No 7.1 yet and include 1.11, jll only" This reverts commit 96b01c337ce8267a5d88fee502748f5d16cd0eda. --- .github/workflows/Test.yml | 4 ++-- test/Project.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/Test.yml b/.github/workflows/Test.yml index b7ff37da..5c9d639b 100644 --- a/.github/workflows/Test.yml +++ b/.github/workflows/Test.yml @@ -22,10 +22,10 @@ jobs: strategy: fail-fast: false matrix: - version: ['1.10', '1.11', '1.12'] + version: ['1.10', '1.12'] os: [ubuntu-24.04, ubuntu-24.04-arm, macOS-15, macOS-15-intel, windows-2025] arch: [x64, arm64] - pocl: [jll] + pocl: [jll, local] memory_backend: [usm, svm, buffer] exclude: # unsupported combinations diff --git a/test/Project.toml b/test/Project.toml index 6205c3a1..a44cae6b 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -23,4 +23,4 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" pocl_jll = "627d6b7a-bbe6-5189-83e7-98cc0a5aeadd" [compat] -pocl_jll = "~7.0" +pocl_jll = "7.0" From 77328d17e7a050d14c6cdcc9cc71544833f12470 Mon Sep 17 00:00:00 2001 From: Christian Guinard <28689358+christiangnrd@users.noreply.github.com> Date: Mon, 20 Oct 2025 10:10:59 -0300 Subject: [PATCH 09/16] Update src/device/quirks.jl --- src/device/quirks.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/device/quirks.jl b/src/device/quirks.jl index 93dd4982..25b3c06e 100644 --- a/src/device/quirks.jl +++ b/src/device/quirks.jl @@ -61,7 +61,7 @@ end # From Metal.jl to avoid widemul and Int128 @static if VERSION >= v"1.12.0-DEV.1736" # Partially reverts JuliaLang/julia PR #56750 BitInteger64 = Union{Int64, UInt64} - @device_override function Base.checkbounds(::Type{Bool}, v::StepRange{<:BitInteger64, <:BitInteger64}, i::_BitInteger64) + @device_override function Base.checkbounds(::Type{Bool}, v::StepRange{<:BitInteger64, <:BitInteger64}, i::BitInteger64) @inline return checkindex(Bool, eachindex(IndexLinear(), v), i) end From e3d681d74603123a3a4d1807d56ed62fa8ed357b Mon Sep 17 00:00:00 2001 From: Christian Guinard <28689358+christiangnrd@users.noreply.github.com> Date: Mon, 20 Oct 2025 11:28:19 -0300 Subject: [PATCH 10/16] Apply suggestion from @christiangnrd --- .github/workflows/Test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/Test.yml b/.github/workflows/Test.yml index 5c9d639b..b94a9ff0 100644 --- a/.github/workflows/Test.yml +++ b/.github/workflows/Test.yml @@ -22,7 +22,7 @@ jobs: strategy: fail-fast: false matrix: - version: ['1.10', '1.12'] + version: ['1.10', '1.11', '1.12'] os: [ubuntu-24.04, ubuntu-24.04-arm, macOS-15, macOS-15-intel, windows-2025] arch: [x64, arm64] pocl: [jll, local] From 210e54581291f1bf754cfdde5f6ee9d0d067f423 Mon Sep 17 00:00:00 2001 From: Christian Guinard <28689358+christiangnrd@users.noreply.github.com> Date: Mon, 20 Oct 2025 13:34:05 -0300 Subject: [PATCH 11/16] Disable Float16 tests --- test/setup.jl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/setup.jl b/test/setup.jl index 066424c6..6d1da8e1 100644 --- a/test/setup.jl +++ b/test/setup.jl @@ -39,10 +39,10 @@ function GPUArraysTestSuite.supported_eltypes(::Type{<:CLArray}) push!(types, Float64) push!(types, ComplexF64) end - if "cl_khr_fp16" in cl.device().extensions - push!(types, Float16) - push!(types, ComplexF16) - end + # if "cl_khr_fp16" in cl.device().extensions + # push!(types, Float16) + # push!(types, ComplexF16) + # end return types end end From 7a58c51b133dd3bf4c1926bf6f34bb2380b8d4f5 Mon Sep 17 00:00:00 2001 From: Christian Guinard <28689358+christiangnrd@users.noreply.github.com> Date: Mon, 20 Oct 2025 15:56:09 -0300 Subject: [PATCH 12/16] Disable Float16 only on pocl 7.1 --- test/setup.jl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/setup.jl b/test/setup.jl index 6d1da8e1..fe7e2bc4 100644 --- a/test/setup.jl +++ b/test/setup.jl @@ -39,10 +39,10 @@ function GPUArraysTestSuite.supported_eltypes(::Type{<:CLArray}) push!(types, Float64) push!(types, ComplexF64) end - # if "cl_khr_fp16" in cl.device().extensions - # push!(types, Float16) - # push!(types, ComplexF16) - # end + if "cl_khr_fp16" in cl.device().extensions && !contains(cl.platform().version, "7.1") + push!(types, Float16) + push!(types, ComplexF16) + end return types end end From 56d7000ba6c3f0b872f6711408f154eb3e17289f Mon Sep 17 00:00:00 2001 From: Simeon David Schaub Date: Tue, 21 Oct 2025 14:18:29 +0200 Subject: [PATCH 13/16] Update test/setup.jl Co-authored-by: Christian Guinard <28689358+christiangnrd@users.noreply.github.com> --- test/setup.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/setup.jl b/test/setup.jl index fe7e2bc4..066424c6 100644 --- a/test/setup.jl +++ b/test/setup.jl @@ -39,7 +39,7 @@ function GPUArraysTestSuite.supported_eltypes(::Type{<:CLArray}) push!(types, Float64) push!(types, ComplexF64) end - if "cl_khr_fp16" in cl.device().extensions && !contains(cl.platform().version, "7.1") + if "cl_khr_fp16" in cl.device().extensions push!(types, Float16) push!(types, ComplexF16) end From 7434a608405d11370ea66deb83b1cc8f7c1b9e70 Mon Sep 17 00:00:00 2001 From: Christian Guinard <28689358+christiangnrd@users.noreply.github.com> Date: Tue, 21 Oct 2025 09:57:59 -0300 Subject: [PATCH 14/16] =?UTF-8?q?Don=E2=80=99t=20test=201.11?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/Test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/Test.yml b/.github/workflows/Test.yml index b94a9ff0..5c9d639b 100644 --- a/.github/workflows/Test.yml +++ b/.github/workflows/Test.yml @@ -22,7 +22,7 @@ jobs: strategy: fail-fast: false matrix: - version: ['1.10', '1.11', '1.12'] + version: ['1.10', '1.12'] os: [ubuntu-24.04, ubuntu-24.04-arm, macOS-15, macOS-15-intel, windows-2025] arch: [x64, arm64] pocl: [jll, local] From 70e66c12c23b0af472719d6563812d0dcbe943ff Mon Sep 17 00:00:00 2001 From: Christian Guinard <28689358+christiangnrd@users.noreply.github.com> Date: Tue, 21 Oct 2025 15:25:03 -0300 Subject: [PATCH 15/16] Try with more time --- .github/workflows/Test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/Test.yml b/.github/workflows/Test.yml index 5c9d639b..cf696343 100644 --- a/.github/workflows/Test.yml +++ b/.github/workflows/Test.yml @@ -15,7 +15,7 @@ jobs: test: name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ matrix.memory_backend }} - PoCL ${{ matrix.pocl }} runs-on: ${{ matrix.os }} - timeout-minutes: 60 + timeout-minutes: 90 permissions: # needed to allow julia-actions/cache to proactively delete old caches that it has created actions: write contents: read From 59ec3146190c3c94f364a83a4bbb26842316f755 Mon Sep 17 00:00:00 2001 From: Christian Guinard <28689358+christiangnrd@users.noreply.github.com> Date: Tue, 21 Oct 2025 19:26:42 -0300 Subject: [PATCH 16/16] Even more time --- .github/workflows/Test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/Test.yml b/.github/workflows/Test.yml index cf696343..d41ac14d 100644 --- a/.github/workflows/Test.yml +++ b/.github/workflows/Test.yml @@ -15,7 +15,7 @@ jobs: test: name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ matrix.memory_backend }} - PoCL ${{ matrix.pocl }} runs-on: ${{ matrix.os }} - timeout-minutes: 90 + timeout-minutes: 100 permissions: # needed to allow julia-actions/cache to proactively delete old caches that it has created actions: write contents: read