We are pleased to announce the release of Halide 13.0.0!
This is a major release. Most notably, Halide now requires C++17 (or higher).
You can download one of our binary releases here, or check one of the following package repositories (they might take some time to be updated):
- Vcpkg: https://github.com/microsoft/vcpkg/tree/master/ports/halide
- Homebrew: https://formulae.brew.sh/formula/halide
Language and Compiler
- The compiler now requires C++17 or higher. (#5282)
- Overloads of
realize()
that were deprecated in Halide 12 are now removed. (#6122, #6162) - Added new predicated tail strategies for
split
loops. (#6126) - Added a more fine-grained
prefetch
directive. (#6155) - Compiler now always runs in a separate 32MB stack on all platforms. (#6239)
- Fixed a semantics bug where data-dependent loads might be uninitialized on over-compute. (#6294)
- Using MemoryType::Stack may now trigger a real stack allocation for dynamically-sized allocations discovered to be small at runtime (#6289)
Backends
- Simplifier improvements saw a >10% reduction in peak memory usage in many apps, including
camera_pipe
,harris
,nl_means
, andstencil_chain
. (#6174) - The ARM backend now supports native 16-bit float instructions (#6102)
- Division by non-power-of-two unsigned constants is now faster on X86 (#6322)
- The WebAssembly backend is mature enough for significant production use (See https://web.dev/ps-on-the-web/)
Build
- Fixed an issue with
add_halide_library
on Xcode, which requires at least one source file for every target. (#6175) - Added a watchdog timer to the Halide generator executables (i.e.
GenGen.cpp
). (#6184, #6240) - Fixed a missing dependency on
Threads::Threads
in CMake (#6257) - The tutorials and readmes are now packaged to the doc dir. The documentation has been moved one level deeper to
share/doc/Halide/html
(#6267)