From d6450ea8484b0e34eadab832576a70e5035e5f24 Mon Sep 17 00:00:00 2001 From: Christian Guinard <28689358+christiangnrd@users.noreply.github.com> Date: Sun, 14 Dec 2025 09:33:40 -0400 Subject: [PATCH 1/5] Fix intel macos ci (#72) (cherry picked from commit e641c281f9373825f9852fb84457c608b6074586) --- .github/workflows/CI-CPU.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/CI-CPU.yml b/.github/workflows/CI-CPU.yml index 298d02ce..2944bf2b 100644 --- a/.github/workflows/CI-CPU.yml +++ b/.github/workflows/CI-CPU.yml @@ -31,7 +31,7 @@ jobs: - ubuntu-latest - macOS-latest - windows-latest - - macOS-13 + - macOS-15-intel arch: - x64 - x86 @@ -40,9 +40,9 @@ jobs: - JULIA_NUM_THREADS: 1 - JULIA_NUM_THREADS: 2 exclude: - - os: macOS-13 + - os: macOS-15-intel arch: x86 - - os: macOS-13 + - os: macOS-15-intel arch: aarch64 - os: macOS-latest arch: x86 From a0f3bbda74cf57b329d6f8d0202bbdfb5063a9a6 Mon Sep 17 00:00:00 2001 From: Tim Besard Date: Fri, 12 Jun 2026 16:19:37 +0200 Subject: [PATCH 2/5] Update Buildkite pipeline for the new JuliaGPU cluster (#85) * Update Buildkite pipeline for the new JuliaGPU cluster. Switch to the per-backend queues of the new JuliaGPU cluster. Co-Authored-By: Claude Fable 5 * Move the Metal job(s) to the new metal queue. The JuliaGPU cluster now has a macOS agent with an Apple Silicon GPU, so Metal jobs no longer need a separate pipeline on the ecosystem cluster. Co-Authored-By: Claude Fable 5 --------- Co-authored-by: Claude Fable 5 (cherry picked from commit a76bf7b99aa54332280d38ab67544046e75800a3) --- .buildkite/pipeline.yml | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml index 43cfba3e..12135f33 100644 --- a/.buildkite/pipeline.yml +++ b/.buildkite/pipeline.yml @@ -15,8 +15,7 @@ steps: println("+++ :julia: Running tests") Pkg.test("AcceleratedKernels", test_args=["--CUDA"])' agents: - queue: "juliagpu" - cuda: "*" + queue: "cuda" if: build.message !~ /\[skip tests\]/ timeout_in_minutes: 60 @@ -34,8 +33,7 @@ steps: println("+++ :julia: Running tests") Pkg.test("AcceleratedKernels", test_args=["--CUDA"])' agents: - queue: "juliagpu" - cuda: "*" + queue: "cuda" if: build.message !~ /\[skip tests\]/ timeout_in_minutes: 60 @@ -55,8 +53,7 @@ steps: println("+++ :julia: Running tests") Pkg.test("AcceleratedKernels", test_args=["--AMDGPU"])' agents: - queue: "juliagpu" - rocm: "*" + queue: "rocm" rocmgpu: "*" if: build.message !~ /\[skip tests\]/ timeout_in_minutes: 60 @@ -75,8 +72,7 @@ steps: println("+++ :julia: Running tests") Pkg.test("AcceleratedKernels", test_args=["--AMDGPU"])' agents: - queue: "juliagpu" - rocm: "*" + queue: "rocm" rocmgpu: "*" if: build.message !~ /\[skip tests\]/ timeout_in_minutes: 60 @@ -97,8 +93,7 @@ steps: println("+++ :julia: Running tests") Pkg.test("AcceleratedKernels", test_args=["--oneAPI"])' agents: - queue: "juliagpu" - intel: "*" + queue: "oneapi" if: build.message !~ /\[skip tests\]/ timeout_in_minutes: 60 @@ -116,8 +111,7 @@ steps: println("+++ :julia: Running tests") Pkg.test("AcceleratedKernels", test_args=["--oneAPI"])' agents: - queue: "juliagpu" - intel: "*" + queue: "oneapi" if: build.message !~ /\[skip tests\]/ timeout_in_minutes: 60 @@ -137,9 +131,7 @@ steps: println("+++ :julia: Running tests") Pkg.test("AcceleratedKernels", test_args=["--Metal"])' agents: - queue: "juliaecosystem" - os: "macos" - arch: "aarch64" + queue: "metal" if: build.message !~ /\[skip tests\]/ timeout_in_minutes: 60 @@ -157,8 +149,6 @@ steps: println("+++ :julia: Running tests") Pkg.test("AcceleratedKernels", test_args=["--Metal"])' agents: - queue: "juliaecosystem" - os: "macos" - arch: "aarch64" + queue: "metal" if: build.message !~ /\[skip tests\]/ timeout_in_minutes: 60 From 3bbe0e1be901e1347293131b3fca9345f81b25bb Mon Sep 17 00:00:00 2001 From: Tim Besard Date: Tue, 6 Oct 2026 07:13:47 +0200 Subject: [PATCH 3/5] Install the test back-end before loading AcceleratedKernels. The back-end can need different versions of AcceleratedKernels' dependencies, e.g. OpenCL still requires UnsafeAtomics 0.3. Adding it after those were loaded left the session with mismatched packages. Also use the registered OpenCL.jl, as its master branch is gone. --- test/runtests.jl | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/test/runtests.jl b/test/runtests.jl index 716fd8e0..e4587649 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -1,8 +1,16 @@ +import Pkg + +# Install the back-end before loading anything, as it may need different versions of +# packages that AcceleratedKernels depends on (e.g. UnsafeAtomics). +for backend in ("CUDA", "oneAPI", "AMDGPU", "Metal") + "--$backend" in ARGS && Pkg.add(backend) +end +"--OpenCL" in ARGS && Pkg.add(["OpenCL", "pocl_jll"]) + import AcceleratedKernels as AK using KernelAbstractions using Test using Random -import Pkg # Set to true when testing backends that support this const TEST_DL = Ref{Bool}(false) @@ -11,13 +19,11 @@ const TEST_DL = Ref{Bool}(false) # julia> import Pkg # julia> Pkg.test(test_args=["--oneAPI"]) if "--CUDA" in ARGS - Pkg.add("CUDA") using CUDA CUDA.versioninfo() const BACKEND = CUDABackend() TEST_DL[] = true elseif "--oneAPI" in ARGS - Pkg.add("oneAPI") using oneAPI oneAPI.versioninfo() const BACKEND = oneAPIBackend() @@ -25,20 +31,15 @@ elseif "--oneAPI" in ARGS # FIXME: need atomic orderings for `DecoupledLookback` in oneAPI # TEST_DL[] = true elseif "--AMDGPU" in ARGS - Pkg.add("AMDGPU") using AMDGPU AMDGPU.versioninfo() const BACKEND = ROCBackend() TEST_DL[] = true elseif "--Metal" in ARGS - Pkg.add("Metal") using Metal Metal.versioninfo() const BACKEND = MetalBackend() elseif "--OpenCL" in ARGS - Pkg.add(name="OpenCL", rev="master") - Pkg.add(name="SPIRVIntrinsics", rev="master") - Pkg.add("pocl_jll") using pocl_jll using OpenCL OpenCL.versioninfo() From 7494fef86552bbbdf4b3cbf92344711ab87d5a89 Mon Sep 17 00:00:00 2001 From: Tim Besard Date: Mon, 5 Oct 2026 21:55:50 +0200 Subject: [PATCH 4/5] Allow UnsafeAtomics 0.4. AcceleratedKernels only uses its loads, stores and fences, which 0.4 keeps. --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 2fccea8b..88b4a12b 100644 --- a/Project.toml +++ b/Project.toml @@ -21,6 +21,6 @@ ArgCheck = "2" GPUArraysCore = "0.2.0" KernelAbstractions = "0.9.34" Markdown = "1" -UnsafeAtomics = "0.3.0" +UnsafeAtomics = "0.3, 0.4" julia = "1.10" oneAPI = "1, 2" From 03ce906729669ede824f84e21d104ce150d7d4cb Mon Sep 17 00:00:00 2001 From: Tim Besard Date: Mon, 5 Oct 2026 21:55:50 +0200 Subject: [PATCH 5/5] Bump version. --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 88b4a12b..3b60f510 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "AcceleratedKernels" uuid = "6a4ca0a5-0e36-4168-a932-d9be78d558f1" authors = ["Andrei-Leonard Nicusan and contributors"] -version = "0.4.3" +version = "0.4.4" [deps] ArgCheck = "dce04be8-c92d-5529-be00-80e4d2c0e197"