Metal is a compute shader API that can be used to program GPUs found in Apple hardware. The Metal.jl package makes it possible to do so from Julia, with support for Mac devices that contain an M-series chip. The package is in early development, but already provides most features for application development.
Similarly to other GPU support packages in Julia, Metal.jl makes it possible to work with accelerators at three distinct abstraction levels:
high-level, using the
MtlArrayarray type and Julia's powerful array abstractions;
by writing your own kernels and launching them using the
using the low-level Metal API wrappers in the
For more information, refer to the introductory blog post.