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
22 changes: 14 additions & 8 deletions .buildkite/pipeline.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
# Tests of the KernelAbstractions-related parts of the GPU back-ends. Draft pull requests skip
# them, unless selected by name in the last commit message: `[only cuda]`, `[only metal, oneapi]`
# or `[only tests]` for all of them. `[skip amdgpu]` or `[skip tests]` does the opposite.
# (`opencl` selects the OpenCL.jl tests on CUDA hardware.)
# (`opencl` selects the OpenCL.jl tests, on PoCL and on CUDA hardware.)
#
# A back end whose branch can't be installed together with this KernelAbstractions (e.g.
# because it doesn't support this KernelInterface yet) soft-fails with exit status 3,
# instead of failing the build; test failures still fail it.
steps:
- label: "CUDA Julia {{matrix.version}}"
matrix:
Expand All @@ -26,7 +30,7 @@ steps:
url="https://github.com/JuliaGPU/CUDA.jl"
rev="intrinsics"
subdirs = ["CUDACore", "CUDATools", "lib/cusolver", "lib/curand", "lib/cublas", "lib/cufft", "lib/cusparse", "lib/cupti", "lib/nvml", "lib/custatevec", "lib/cudnn", "lib/cutensor", "lib/cutensornet"]
Pkg.add([(;url, rev); [(; url, rev, subdir) for subdir in subdirs]])'
Pkg.add([(;url, rev); [(; url, rev, subdir) for subdir in subdirs]])' || exit 3

julia -e 'println("+++ :julia: Running tests")
using Pkg
Expand Down Expand Up @@ -94,7 +98,7 @@ steps:
PackageSpec(; name="KernelInterface", path=joinpath(pwd(), "lib", "KernelInterface"))])' || exit 3
julia -e 'println("--- :julia: Developing Metal")
using Pkg
Pkg.add([(; url="https://github.com/JuliaGPU/Metal.jl", rev="kaintr")])'
Pkg.add([(; url="https://github.com/JuliaGPU/Metal.jl", rev="kaintr")])' || exit 3
julia -e 'println("+++ :julia: Running tests")
using Pkg
Pkg.test("Metal"; coverage=true, test_args=["kernelabstractions", "kernelinterface"])'
Expand Down Expand Up @@ -131,7 +135,7 @@ steps:
julia -e 'println("--- :julia: Developing oneAPI")
using Pkg
Pkg.add(url="https://github.com/JuliaGPU/AcceleratedKernels.jl", rev="main")
Pkg.add(url="https://github.com/christiangnrd/oneAPI.jl", rev="intrinsics")'
Pkg.add(url="https://github.com/christiangnrd/oneAPI.jl", rev="intrinsics")' || exit 3

julia -e 'println("+++ :julia: Running tests")
using Pkg
Expand Down Expand Up @@ -170,7 +174,7 @@ steps:
julia -e 'println("--- :julia: Developing AMDGPU")
using Pkg
Pkg.add(url="https://github.com/JuliaGPU/AcceleratedKernels.jl", rev="main")
Pkg.add(url="https://github.com/christiangnrd/AMDGPU.jl", rev="intrinsics")'
Pkg.add(url="https://github.com/christiangnrd/AMDGPU.jl", rev="intrinsics")' || exit 3

julia -e 'println("+++ :julia: Running tests")
using Pkg
Expand All @@ -188,7 +192,7 @@ steps:
JULIA_PROJECT: "@amdgpu"
JULIA_NUM_THREADS: 4

- label: "OpenCL (CUDA) Julia {{matrix.version}}"
- label: "OpenCL Julia {{matrix.version}}"
matrix:
setup:
version:
Expand All @@ -209,11 +213,13 @@ steps:
julia -e 'println("--- :julia: Developing OpenCL")
using Pkg
Pkg.add(url="https://github.com/JuliaGPU/OpenCL.jl", rev="intrinsics")
Pkg.develop(; name="SPIRVIntrinsics")'
Pkg.develop(; name="SPIRVIntrinsics")' || exit 3

julia -e 'println("+++ :julia: Running tests")
using Pkg
Pkg.test("OpenCL"; coverage=true, test_args=`--platform=nvidia nvidia/kernelabstractions nvidia/kernelinterface`)'
tests = ["$(target)/$(test)" for target in ("pocl", "poclc", "nvidia")
for test in ("kernelabstractions", "kernelinterface")]
Pkg.test("OpenCL"; coverage=true, test_args=tests)'
agents:
queue: "cuda"
if: |
Expand Down
44 changes: 0 additions & 44 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -217,50 +217,6 @@ jobs:
project: lib/KernelInterface
annotate: true

OpenCL:
name: OpenCL (POCL)
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
version: ['1.10', '1.11', '1.12', '1.13', 'nightly']
steps:
- uses: actions/checkout@v7
- uses: julia-actions/install-juliaup@v3
with:
channel: ${{ matrix.version }}
- uses: julia-actions/cache@v3
# KernelInterface is dev'ed explicitly here for the same reason as in the CI job
# above: Julia 1.10 does not support `[sources]`.
- name: Dev KernelInterface
shell: bash
run: julia -e 'using Pkg; Pkg.activate("."); Pkg.develop(; path="lib/KernelInterface")'
- uses: julia-actions/julia-buildpkg@v1
continue-on-error: ${{ matrix.version == 'nightly' }}
- name: "Instantiating project"
run: |
julia -e 'println("--- :julia: Instantiating project")
using Pkg
Pkg.develop([PackageSpec(; name="KernelAbstractions", path=pwd()),
PackageSpec(; name="KernelInterface", path=joinpath(pwd(), "lib", "KernelInterface"))])' || exit 3
- name: "Developing OpenCL"
continue-on-error: ${{ matrix.version == 'nightly' }}
run: |
julia -e 'println("--- :julia: Developing OpenCL")
using Pkg
Pkg.add(url="https://github.com/JuliaGPU/OpenCL.jl", rev="intrinsics")
Pkg.develop(; name="SPIRVIntrinsics")'
- name: "Running tests"
continue-on-error: ${{ matrix.version == 'nightly' }}
run: |
julia -e 'println("+++ :julia: Running tests")
using Pkg
Pkg.test("OpenCL"; coverage=true, test_args=`--platform=pocl pocl/kernelabstractions poclc/kernelabstractions pocl/kernelinterface poclc/kernelinterface`)'
- uses: julia-actions/julia-processcoverage@v1
- uses: codecov/codecov-action@v7
with:
files: lcov.info

docs:
name: Documentation
runs-on: ubuntu-latest
Expand Down
Loading