Skip to content

Halide 12.0.0

Compare
Choose a tag to compare
@alexreinking alexreinking released this 20 May 09:11
· 3 commits to release/12.x since this release
b5a34c3

We are pleased to announce the release of Halide 12.0.0!

This is mostly a quality of life and bugfix release to set the stage for larger changes in Halide 13 (which will require C++17).

You can download one of our binary releases here, or check one of the following package repositories:

Language and Compiler

  • Added align_extent scheduling directive #5829
  • Added TailStrategy::Predicate as an alternative to TailStrategy::GuardWithIf to use predicated loops unconditionally #5856
  • Added scatter() and gather() expressions to support reading from and writing to multiple locations in update definitions #5553
  • Added internal memoization to Adams2019 autoscheduler (performance improvement) #5697 #5654
  • Removed old-style realize() methods which had been deprecated #5676
  • Removed deprecated scheduling directive overloads #5656
  • Many simplifier and bounds inference improvements and bugfixes #5615 #5618 #5895 #6002

Backends

  • Added support for AVX512 VNNI instructions #5725 #5807
  • Removed OpenGL/GLSL backend #5626
  • Fixed various errors with large_buffers #5716 #5940
  • Improved support for sdot and udot instructions on ARM (where supported) #5954
  • Improved support for WebAssembly SIMD ops, when compiling with LLVM 13 #5849 #5850 #5853 #5854 #5861 #5863
  • PyStub generators must now choose to use either only positional arguments or only keyword arguments. This is an ABI break #5761

Build

  • Added scripts to create Ubuntu packages #5754 #5967
  • Added experimental support for ClangCL on Windows #5876
  • Added support and pre-built binaries for macOS ARM64
  • Halide headers no longer inject stack space linker flags on Windows; now, the compiler runs on a fiber with enough stack space #5873
  • Halide shared library no longer exposes LLVM symbols on macOS and Linux. Help wanted for Windows! #5659