Numba Activity Newsletter, June 2024

June 2024: Editor for this month is @stuartarchibald

What happened:

  • A lot of work has been done on PIXIE to make it ready for a preview release and presentation at the SciPy 2024 conference. Implemented work/features includes:
    • Support for x86_64 linux (@stuartarchibald) and arm64 macOS (@sklam).
    • ISA based dispatch. (@stuartarchibald)
    • Embedded LLVM bitcode. (@stuartarchibald)
    • Automatic addition of a __PIXIE__ dictionary to user supplied PyInit functions. (@stuartarchibald)
    • Optional automatic conversion of C-libraries to Python C-extensions (@stuartarchibald)
    • Command line tools pixie-cc and pixie-cythonize (@esc and @stuartarchibald)
    • Documentation (@sklam)
    • CI and CD infrastructure (@esc and @kc611)
  • The SciPy demonstration is available here along with instructions on how to run it.
  • @kc611 has been working on some new performance diagnostic tooling for Numba by exposing the LLVM remarks interface into user space, PR#9601.
  • Contributor @max-sixty opened a PR to allow Numba functions within zip files to be cached PR#9630
  • @gmarkall opened an RFC asking about moving the development and maintenance of the numba.cuda target to a package hosted and supported by NVIDIA.
  • A patch was made by @sklam that enables first class function types to be inlined under certain conditions and also raise exceptions (they are also a lot faster now as the GIL isn’t involved). PR#9077
  • The Numba 0.60 and llvmlite 0.43 releases shipped this is the first release that is binary compatible with NumPy 2.0 (execution compatibility will come later).
  • @gmarkall opened a patch to upgrade llvmlite to use LLVM 15 by default along with experimental support for LLVM 16. PR#1067
  • Contributor @rj-jesus added support for opaque pointers in llvmlite. PR#1064
  • Support for LLVM’s new pass manager has completed review and will be in the next version of llvmlite. PR#1046
  • To help support PIXIE @sklam added LLVM IR type reference “round tripping” capabilities to llvmlite in PR#1051 and @kc611 exposed the LLVM triple parser in PR#1063.

Ongoing:

  • PIXIE will be developed further to add features such as linking and a json configuration as a method of specifying what to compile.
  • Work on NumPy 2 support will resume/continue, including looking at compilation performance and the performance of resulting executables.
  • Update Numba to use LLVM 15+.
1 Like