Metal v1.5.0
Metal.jl 1.5 is a relatively minor release, which the most important change being behind the scenes: GPUArrays.jl v11 has switched to KernelAbstractions.jl (#461).
There is also one (technically) breaking change: code_agx
and @device_code_agx
have been removed (#512) because of the heavy Python dependency, and conflicts with PythonCall.jl. This functionality did not support recent M GPUs anyway, so it is unlikely to affect many users.
Features
Bug fixes
- Fix
fill
: #496
Merged pull requests:
- Add more tests to api validation testing (#447) (@christiangnrd)
- Adapt to GPUArrays.jl transition to KernelAbstractions.jl. (#461) (@maleadt)
- Switch CI to 1.11. (#462) (@maleadt)
- Remove old code and test cleanup (#464) (@christiangnrd)
- Adapt to JuliaGPU/GPUArrays.jl#567. (#475) (@maleadt)
- Bump LLVM downgrader (#479) (@maleadt)
- Store more debug files when encountering compilation errors. (#482) (@maleadt)
- Use
OncePerProcess
in 1.12+ (#483) (@christiangnrd) - Don't run benchmarks from fork (#485) (@christiangnrd)
- Still run GH Action when merged (#486) (@christiangnrd)
- Bump IR downgrader (#489) (@maleadt)
- Move MTL tests and add a few (#491) (@christiangnrd)
- Generate MTL and MPS structs and enums with Clang.jl (#492) (@christiangnrd)
- Fix copy tests (#493) (@christiangnrd)
- Simplify benchmark runner and pipelines (#494) (@maleadt)
- Fix global linear indexing (
fill!
) (#496) (@christiangnrd) - Couple typos and
is_m4
function (#498) (@christiangnrd) - Initial support for MPSNDArray (#499) (@christiangnrd)
- Tweak benchmark CI job (#501) (@maleadt)
- Fix
MPSNDArrayDescriptor
wrapper (#502) (@christiangnrd) - Metal library parsing: using CodecBzip2 feature to ignore padding. (#504) (@maleadt)
- Followup to #492: Enable C function wrapping (#505) (@christiangnrd)
- Rerun random tests with chance of false negative once. (#506) (@christiangnrd)
- Bump LLVM downgrader (#507) (@maleadt)
- Test loading of package on unsupported platforms (#509) (@christiangnrd)
- Remove
device_code_agx
(#512) (@christiangnrd) - Fix typo in random tests (#514) (@christiangnrd)
- Fix Documenter failures (#515) (@christiangnrd)
Closed issues:
- KernelAbstractions: add Atomix back-end (#218)
@device_code_agx
errors when Metal Shader Validation is enabled (#463)fill
broken after KA integration (#466)- Compilation to native code failed: NSError: Undefined symbols (#480)
ObjectiveC.Foundation.NSErrorInstance(ObjectiveC.id{ObjectiveC.Foundation.NSError}(0x000000014cb8bd90))
(#487)- phi-related IR downgrade issue (#488)
- Circular dependency when precompiling (#495)
- Bad interaction between PyCall and Metal (#500)
- Add github actions CI for linux, windows and non-functional macOS to ensure that precompilation and loading works (#508)