Skip to content
Merged

1.12 #391

Show file tree
Hide file tree
Changes from 6 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
2 changes: 1 addition & 1 deletion .buildkite/pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ steps:
- label: "CUDA"
plugins:
- JuliaCI/julia#v1:
version: "1.11"
version: "1.12"
- JuliaCI/julia-coverage#v1:
codecov: true
commands: |
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/Test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@ jobs:
strategy:
fail-fast: false
matrix:
version: ['1.10', '1.11']
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
Expand Down
10 changes: 10 additions & 0 deletions src/device/quirks.jl
Original file line number Diff line number Diff line change
Expand Up @@ -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
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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
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

I don't think we can use let here and @device_override global function is not recognized by the macro. With this change and JuliaPackaging/Yggdrasil#12341 all tests are passing for me locally on 1.12

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I’ll make the change and revert my temporary test-reducing measures shortly.

Should we also limit POCL to 7.0 for the main package instead of just tests until someone figures out what’s causing the new test failures?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we need to restrict compatibility for the entire package. The issue is incomplete Float16 support, which we didnt test previously because the jlls had Float16 support disabled

end
2 changes: 1 addition & 1 deletion test/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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"
12 changes: 10 additions & 2 deletions test/device.jl
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Loading