Numba Activity Newsletter, April 2024

April 2024: Editor for this month is @esc

What happened:

  • The release candidates for Numba 0.60.0 and llvmlite 0.43.0 have been shipped: [ANN] Numba 0.60.0rc1 / llvmlite 0.43.0rc1. Most importantly this includes support for binary compatibility with NumPy 2.0 and source level support for LLVM 15.
  • A presentation about PIXIE – the new AOT focused tool from the Numba project – has been accepted at SciPy 2024: PIXIE: Blending Just-in-time (JIT) and Ahead-of-time (AOT) compilation in scientific Python applications.
  • The initial support for Python 3.12 didn’t include the ability to show Numba compiled functions as part of cProfile/sys.monitoring output. This has now been implemented by @stuartarchibald: numba#9482.
  • Support for compiling CUDA to LTO-IR. numba#9274 This provides an alternative route to using PTX to link code with non-Python source code and has greater potential for optimization from being able to optimize at link-time across the whole body of source for different languages, implemented by @gmarkall.
  • @gmarkall and @stuartarchibald fixed a series of legacy bugs in the target extension API: numba#9454.
  • Calling @guvectorize decorated functions is now supported inside @jit compiled regions, which helps to enhance Numba flexibility. Contributed by @guilhermeleobas: numba#8984
  • ufunc.at is now supported, contributed by @guilhermeleobas and reviewed by @sklam. This increases the coverage of NumPy functionality offered by Numba: numba#9239
  • LLVM 15 support was added to llvmlite by contributor @yanssh with an extensive review by @gmarkall. This enhancement is also part of the 0.43.0 release of llvmlite llvmlite#1035.
  • Contributor @dlee992 submitted a PR for llvmlite to make small improvements to reference operation pruning for the raise-statement use-case: llvmlite#1025.
  • The Numba compatible Regionalized Value State Dependence Graph (RVSDG) utilities package – numba-rvsdg – can now transform a Python Source/Abstract Syntax Tree (AST) representation of a program into a Structured Control Flow Graph (SCFG): numba-rvsdg#114, essentially a AST β†’ SCFG converter. This will help with source code analysis and compiler optimizations in future. Contributed by @esc and reviewed by @sklam.

Ongoing:

  • As the release candidates are out now, the team is preparing to tag the final releases Numba 0.60 and llvmlite 0.43.
  • PIXIE: @stuartarchibald has been working on the Instruction Set Architecture (ISA) specific dispatch part of PIXIE libraries.
  • @kc611 continued with NumPy 2.0 support work through an investigation into protocol based operator implementations numba#9548. This will allow users of the new type system to extend it in a more Pythonic way, through the use of β€œdunder” methods, like __add__.
  • Numba-rvsdg: @esc is working on a Structured Control Flow Graph (SCFG) to Python Source/Abstract Syntax Tree (AST) converter (SCFG β†’ AST) as part of the numba-rvsdg package. This will enable a re-synthesis of Python programs after they have been restructured into regions and is essentially the inverse of the recently developed AST β†’ SCFG converter.

Meeting/FPOC schedule for this month (May 2024):

  • Office hours: 2024-05-21, 2024-05-28
  • FPOC (first port of call) duty rota, this is the maintainer who will respond to tickets/issues/PRs during the noted week and run the office hours/public meeting at the end of the week:

Roadmap

The roadmap is now available at: numba#9540

3 Likes