Skip to content

v0.5.0

Compare
Choose a tag to compare
@github-actions github-actions released this 01 Jul 15:06
· 246 commits to main since this release
9a72b9c

Metal v0.5.0

Diff since v0.4.1

Metal.jl 0.5 is a feature release, bringing initial support for atomic operations (#168).
Low-level atomics that mimic Metal C are supported (atomic_store_explicit,
atomic_load_explicit, etc), as well as a higher-level Metal.@atomic that can be used to
update array values similar to how CUDA.jl's @atomic works. This uses native atomics when
supported, and falls back to a compare-exchange loop otherwise.

Minor changes include an update for the @device_code_agx disassembler, the addition of a
type variable to MtlArray encoding the storage mode (#194), and support for MPSVector
(#199) which should accelerate matrix/vector multiplications.

Also note that Metal.jl now disallows the construction of Float64 arrays, as these are not
support by the Metal libraries.

Closed issues:

  • Support for atomics (#79)
  • Make MtlArray storage mode a type parameter (#190)
  • Long stacktrace when trying to create Float64 rand arrays (#205)
  • allowscalar equivalent for Metal.jl (#206)
  • Define map! ? (#219)

Merged pull requests:

  • Implement atomics using compiler intrinsics (#168) (@maleadt)
  • Parameterize MtlArray storage mode (#194) (@christiangnrd)
  • Implement MPSVector (#199) (@tgymnich)
  • Update manifest (#200) (@github-actions[bot])
  • Add Metal 3.1 to MTLLanguageVersion (#202) (@christiangnrd)
  • Update manifest (#203) (@github-actions[bot])
  • CompatHelper: bump compat for GPUCompiler to 0.21, (keep existing compat) (#204) (@github-actions[bot])
  • Update manifest (#207) (@github-actions[bot])
  • Disallow Float64 arrays entirely. (#209) (@maleadt)
  • Adapt to LLVM.jl 6. (#213) (@maleadt)
  • Update manifest (#215) (@github-actions[bot])
  • Bump disassembler. (#216) (@maleadt)