JuliaGPU/Metal.jl

Metal programming in Julia

What it solves

It provides a way to program GPUs on macOS using the Metal framework, allowing Julia users to leverage Apple Silicon (M-series chips) for high-performance computing and data-parallel tasks.

How it works

The package interfaces with the Metal libraries via ObjectiveC.jl. It offers three levels of abstraction:

  1. Array Abstraction: Uses MtlArray to manage device memory and perform data-parallel operations without requiring custom kernels.
  2. Kernel Programming: Allows users to write GPU kernels directly in Julia, which are then executed on the Metal framework.
  3. Metal API Wrapper: Provides low-level and high-level Julia wrappers for the Objective-C Metal API for advanced control.

Who it’s for

Developers and researchers using Julia on macOS with M-series chips who need to accelerate their computations using the GPU.

Highlights

  • Support for M-series Apple Silicon chips.
  • Ability to write GPU kernels directly in Julia.
  • Integrated MtlArray for convenient device memory management.
  • Low-level access to the Metal API via the MTL submodule.

Related

  • Project
  • Project
  • Project
  • Project
  • Project