Skip to content
esc edited this page Jul 12, 2023 · 1 revision

Numba Meeting: 2023-07-11

Attendees: Siu Kwan Lam, Andre Masella, Da Li, Matthew Murray, Mingjie Wang, stuart, Todd A. Anderson, kristian, Guilherme, Val FPOC (last week): Stuart FPOC (incoming): Siu

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

Please refer to this calendar for the next meeting date.

0. Discussion

  • Towncrier is broken.
    • Issue is that importlib_resources updated,towncrier relied on the removed API. Decision is to pin against working versions for now.
    • ACTION: Siu will fix
  • NumPy 1.25 update/future.
    • review will continue
    • Needs a run through the main build.
  • General note - reminder that contributors need to update change logs since towncrier merge (i.e. add news snippets as per docs).
    • Discourse post will be made to broadcast the change further.
    • Additional work to be done to "catch up" missing news snippets since 0.57.0 (RM: action item needed)
  • **** PIXIE Demo next week?
    • Aim for 25th July.
  • **** NEXT (Numba 0.58.0 & llvmlite 0.41.0)
  • **** Updates from numba-umbrella projects.
    • numba-rvsdg
      • now mypy clean
      • full region testing almost complete
      • integration PR to Numba in review: #9012
    • PIXIE:
      • SciPy demo notebook
  • **** Can noalias be added to the @jit family of decorators? What would this look like in practice and what are the implications.
    • discovered use cases where code that could have vectorized but would not, turns out that adding the noalias attr to the array data pointers in the argument list to a function let the vectorization take place.
    • There's a flag in Numba for noalias already but it's not exposed.
    • Various options:
      1. User flag that applies to all pointer args (need to check all pointers vs. all pointers that are array data)
      2. User can "spell" that certain args do not alias, a more fine grained approach. 1 is a superset of 2. The user is responsible for correctness.
      3. Decorator checks to see if any of the args alias and if not then trigger a compilation with noalias set. This requires a n^2 check of all pointers and potentially triggers a lot of compilation.
      4. Like 3 but checks and adds the flag specifically for each arg.
    • Q. How would the dispatcher "know" about the aliasing?
    • A. Would need encode aliasing into the function signature as part of the key.
    • Automatic route may be difficult to do.
    • Q. Could alias analysis be done in LLVM?
    • A. No, needs actual args from the interpreter.
    • Q. In 1. what happens if the args actually do alias?
    • A. Potential for incorrect output.
    • Q. Is #7168 going to impact this?
    • A. Yes. But this doesn't prevent implementing this and it being useful, it'll just hit this problem.
    • Q. How much will this add to dispatch/compilation cost?
    • A. 1. and 2. is user defined so no dynamic cost.
    • Conclusion:
      • Attempt to do this and see how it goes, this might better inform any issues. Concern at present is "spelling" of this and the unknown-unknowns. Likely to help users wanting to get the last 5-10% of performance.
  • **** NEP-50 and the increased prevalence of OverflowError handling needed.
  • **** Supporting ufunc attributes (nin, nout, reduce, etc)
    • Q. "how do you do this?" Is there any code in Numba that does something similar whereby you have a function and you can call an attribute of a function.
    • A. Numba should not care what type the self is. Normal attribute and method registration code should work.
      • extending.overload_method

New "Ready for Review" PRs

1. New Issues

Closed Issues

2. New PRs

Closed PRs

  • merged - numba#9056 - adding weekly meeting notes script

3. Short-term Roadmap

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

Clone this wiki locally