0.5.3: Metal backend (macOS with GPUs including Apple Silicon)
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.Formatas 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_filesto neatly keep logs from routine execution in their separate files. - Settings
clean_up_artifacts_on_startup,prefer_backend_uniformity. - Tools directory and the
minisedtool: regexp replacement file rewrite. - Directory arrayjit/bin and executable
read_configfor extracting OCANNL configuration into txt files.
Changed
- Removed
initializeandis_initializedfrom the backend API; instead, backends should be initialized on functor application. The functors now takeconfigas argument. - More descriptive identifier names in C-syntax code in case of name conflicts.
- Changed the backend config name
cctomulticore_ccfor consistency. - Migrated out of
Stdlib.FormattoPPrintfor 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.