


The abstraction centers around the MtlArray type that can be used to manage memory and perform GPU computations: # allocate + initialize Just like our other GPU back-ends, Metal.jl offers an array abstraction that greatly simplifies GPU programming. macOS Monterey with an Intel GPU, but it's an untested combination that may suffer from bugs. These choices were made to simplify development, and aren't technical limitations. We also only support M-series GPUs, even though Metal does support other GPUs. call the versioninfo() method for some details on the toolchain: julia> using MetalĪnd there we go! You'll note here that I'm using the upcoming macOS 13 (Ventura) this is currently the only supported operating system. Then, leave the package manager by pressing backspace, import the Metal package, and e.g. Installation is as easy as that, and we'll automatically download the necessary binary artifacts (a C wrapper for the Metal APIs, and an LLVM back-end). Start by getting a hold of the upcoming Julia 1.8, launch it, and enter the package manager by pressing ]: julia> ] If you're interesting in using Metal.jl, please consider contributing to its development! Most of the package is written in Julia, and checking-out the source code is a single Pkg.develop away :-) Quick start We also haven't optimized for performance yet. In the following post I'll demonstrate some of that functionality and explain how it works.īut first, note that Metal.jl is under heavy development: The package is considered experimental for now, as we're still working on squashing bugs and adding essential functionality. The back-end is built on the same foundations that make up existing GPU packages like CUDA.jl and AMDGPU.jl, so it should be familiar to anybody who's already programmed GPUs in Julia. Julia has gained a new GPU back-end: Metal.jl, for working with Apple's M1 GPUs. There’s another support post on this topic which is more informing, as Andy from Affinity explained that they weren’t currently able to get Nvidia cards to work reliably, as the hardware and drivers are flakey.Technical preview: Programming Apple M1 GPUs in Julia with Metal.jl Jun 24, 2022 There are older AMD cards which support metal that aren’t on that list either, such as the SAPPHIRE Radeon HD 7950 Mac Edition. The AMD cards belonging to “family 2” are much more recent. That doesn’t surprise me that Nvidia cards aren’t part of “family 2” as Apple stopped dealing with Nvidia around 2012/2013. I don't know what specifically the Affinity apps need to provide metal compute acceleration, but clearly Apple has not been spending the time to make nVidia cards work with the full feature set of Metal.

It looks like Metal support is divided into two basic GPU "families" by Apple right now: "family 1" offers less functionality than "family 2".įrom what little documentation I have been able to scrounge up, there are NO nVidia cards in "family 2":
