Skip to content
esc edited this page Jun 27, 2023 · 1 revision

Numba Meeting: 2023-06-27

Attendees: Jim Pivarski, Guilherme, Graham Markall, Da Li, dipto, Siu Kwan Lam, Kaustubh, Mingjie Wang, Val, Andre Masella, Todd A. Anderson, Matthew Murray, brandon willard, Ianna Osborne, Luk FPOC (last week): Graham FPOC (incoming): Val

NOTE: All communication is subject to the Numba Code of Conduct.

Please refer to this calendar for the next meeting date.

0. Discussion

  • *** Release update:
    • Numba 0.57.1 is out!
    • llvmlite 0.40.1 is out!
    • numba-rvsdg 0.0.2 is out!
    • Backlog pruning for next releases is in progress.
    • Status updates for Numba 0.58, llvmlite 0.41, and numba-rvsdg 0.0.3 planned for next week's public dev meeting.
  • Should numba-rvsdg issues and PRs be discussed in triage?
    • No - only once rvsdg is being used inside Numba.
  • Can Numba/llvmlite just run the static ctors and dtors for a module appropriately and automatically?
    • there is no code that uses static ctors and dtors in Numba
    • OrcJIT is set up to do this - we can wait for this.
    • McJIT never cleans up so we can't run dtors. It doesn't run ctors automatically as it doesn't know "when".
  • *** #9029 potential fixes seem on the complicated side... discuss!
    • See below / discuss with Todd
    • One potential solution involves using malloc instead of alloca
    • Put schedule call and kernel launch into dummy function
  • Should 0.58 drop NumPy 1.21 (can we just say we'll only support max 4 NumPy's at a time, or follow NEP-0029?)
    • Continue to follow NEP 29
    • Drop 1.21 in 0.58 (1.22+ required)
    • Use conda-forge for packages where required (e.g. PowerPC)
    • Action Item: Release Manager to open an issue
  • umath_tests in NumPy 1.25?
    • Potential fix: replace umath_tests code we use with np.dot (possible now it supports broadcasting)
    • Graham / Andre to pair on a fix
  • *** Start discussing a plan for NumPy 1.x series LTS (do we support in code for an extended period or start communicating that it will just "drop off" the supported list by e.g. NumPy 2.4 and LTS==pinning your Numba version... or something else)?
    • One more NumPy 1.x release, 1.26 that builds with Meson for Python 3.12
    • Presently following NEP 29 to support about 4 releases at once
    • After 2.0, 1.x support will last for about 2 years following NEP 29
      • Except it will be reviewed in light of a 2.x release (see just above the support table)
    • Numba team soliciting thoughts / requirements from users / dependent library maintainers
    • Luk: presently it's too early - release is 6 months away, 6 months more to determine if it fractures the userbase into 1.x / 2.x.
    • Stuart: level of C code changes and binary compatibility difficult to foresee at present.
    • Stuart: changes in type system for example will break very strict test-suite setups for downstream projects
  • ***? Review the 0.57RC milestone, it still has a bunch of issues in it, RM needs advice on what to do with each.
    • Defer to public meeting or next week
  • drop windows-32bit support in llvmlite
    • Aim to remove with 0.42
    • Announce removal with 0.41
  • In 0.59 objmode fallback pipeline is removed. Should captured_errors="new_style" become default at the same time? If so, need to deprecate the "old_style" in 0.58? Is this too short notice?
    • It should become the default
    • Deprecation in 0.58 + removal in 0.59 unlikely to have negative impact
  • *** Do lowering in topological order? (Todd)
    • PyOpenMP lowers in topological order, Numba is in "random" order
    • Any potential problems with lowering always going in topological order?
    • Siu: shouldn't be a problem but you might need to do something about loops
    • Todd: will create a minimal PR with this change.
    • Do recursive functions prohibit topological ordering of lowering?
      • Probably was in type inference where the limitation was, not lowering

New "Ready for Review" PRs

1. New Issues

  • *** numba#9029 - Segfault when using assert with parallel=True
  • numba#9030 - miss cache if define and use structref in the same file
  • numba#9038 - performance difference between enumerate(arr) and for i in range(len(arr))
  • numba#9041 - Document and communicate dropped support for win32
  • numba#9042 - Preserve class module of a jitclass instance
    • Experimental jitclass -> structref so not to be implemented unless PR
  • numba#9043 - Feature Request: include numba-rvsdg as a soft dependency

Closed Issues

  • numba#9031 - memory leak using ProcessPoolExecutor if jitted function creates array
  • numba#9032 - Numba+Cuda doesn't work for me on WSL 2 (but PyTorch+Cuda works fine)

2. New PRs

  • numba#9033 - No compilation in tests
  • numba#9034 - CUDA libs test: Report the absolute path of the loaded libcuda.so on Linux, + other improvements
  • numba#9035 - CUDA: Allow for debuginfo in nvdisasm output
  • numba#9037 - Recognize additional functions as being pure or not having side effects.
  • numba#9039 - Correct git clone link in installation instructions.
  • numba#9040 - Remove NVVM 3.4 and CTK 11.0 / 11.1 support
  • llvmlite#966 - build: support building on GNU/Hurd

Closed PRs

3. Short-term Roadmap

gantt: https://github.com/numba/numba/issues/8971

Clone this wiki locally