Skip to content

0.5.3: Metal backend (macOS with GPUs including Apple Silicon)

Choose a tag to compare

@lukstafi lukstafi released this 26 May 18:31
· 5799 commits to master since this release

WARNING: this release's test suite depends on an unreleased fix to PrintBox at the time of the release. I'm not planning on submitting it to the opam repository.

Highlights:

  • What it says on the tin: GPUs like the M1, ..., M4.
  • Got rid of Stdlib.Format as I found it error prone and hard to debug.
  • A simple test for logging from within kernels in the test suite.

From the changelog:

Added

  • The Metal framework backend (Apple Silicon).
  • Setting debug_log_to_stream_files to neatly keep logs from routine execution in their separate files.
  • Settings clean_up_artifacts_on_startup, prefer_backend_uniformity.
  • Tools directory and the minised tool: regexp replacement file rewrite.
  • Directory arrayjit/bin and executable read_config for extracting OCANNL configuration into txt files.

Changed

  • Removed initialize and is_initialized from the backend API; instead, backends should be initialized on functor application. The functors now take config as argument.
  • More descriptive identifier names in C-syntax code in case of name conflicts.
  • Changed the backend config name cc to multicore_cc for consistency.
  • Migrated out of Stdlib.Format to PPrint for all structured formatting.
  • Migrated stdout capture to thread-based (domain-based actually); for Windows compatibility but also much more robust for large logs.

Fixed

  • Avoid conflicts with C math function names like fma.
  • Satur01_gate had wrong semantics.