Skip to content
esc edited this page Oct 26, 2022 · 1 revision

Numba Meeting: 2022-10-25

Attendees: Val, Siu, Andre, Stuart, Graham, Kaustubh, Li Da, Luk, Dr. Todd FPOC (last week): @stuartarchibald FPOC (this week) and scribe for the meeting: @esc

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

Please refer to this calendar for the next meeting date.

0. Discussion

  • How to proceed with https://github.com/numba/numba/pull/8319 to make sure nothing is missed or overreaching. (Stuart/Val)
    • It may have been faster for core developers to do this work due to the required context.
    • We will continue to review this anyway!
    • Would suggest to users that any large scale refactoring PRs may need a core-dev as mentor
    • Come speak to us during the developer meeting and/or gitter! We do have a mentorship initiative for such cases.
    • cloudpickle changes to go into a seperate PR
  • 0.56.4 (Stuart)
    • PR #8537 - fixes CUDA array.view for NumPy 1.23.
    • Cut new patch release next week, starting Monday, @stuartarchibald and @esc will drive it
  • Making target="generic" the default for @overload (Stuart)
    • Risk: some stuff may start working in CUDA, we may need to add tests
  • py311 (Siu)
    • Siu
      • Python 3.11 is out this week
      • Majority of issues with adding try-except support are now resolved.
      • Peephole optimiser/deoptimisers probably need attention/fixing
      • Expected long tail of issues
      • Development is currently being undertaken concurrently, can this be integrated as such?
    • Stuart:
      • 3.11-main branch for Azure to start testing stuff in public
      • Merge in main to reduce drift
      • Could be parallelized
      • Don't want to fight llvm14 at the same time
    • Siu
      • Hope to get a pre-pre-alpha release ahead of the winter holiday/shutdown. This is an indicative test package, not everything will necessarily work.
      • Make them available for early adopters via development wheels
      • Working on stuff related to peepholes for list comprehension and prange
  • #8491 is looking for a reviewer
    • done! reviewers are assigned.
  • Idea: setting an interaction limit on GitHub for the x-mas break
  • Da: boost the unicode getitem/getslice/split etc. performance
    • each time, a new meminfo will be created with a new unicode
    • code place (_malloc_string): https://github.com/numba/numba/blob/9d034e91f881f8ff1f2a9051a757421328f02625/numba/cpython/unicode.py#L244
    • but I feel it's not necessary, they can reuse an old meminfo in another unicode struct
    • char = s[i]
      • the meminfo in char can just reuse the meminfo in s
      • Py_NewRef: incref the refct in s
    • Suggest looking at _get_str_slice_view() optimises somestring[start:stop].
    • @overload(operator.getitem) in unicode.py is a good place to start.
    • Question: profiling JIT generated code with Python, e.g. cProfile?
    • Answer: in short, no. But maybe using a "statistical profiler", e.g. perf which is a builtin profiler for Linux. It is integrated into the linux kernel scheduling loop. But, you need support in the JIT execution engine so as to map back to the original symbols/source. The LLVM based MCJIT which Numba uses doesn't have this. There is a newer version called OrcJIT from LLVM. We are currently upgrading LLVM to 14 so that we can start migrating from MCJIT to OrcJIT. Additionally, pycc (Which is Numba's AOT (Ahead of Time) compilation tool) CAN be used with perf! See Issue #8509 for more details. Alternatively, you can rip the ELF objects from the execution engine and link them with clang and run them with perf but probably using pycc will be less hassle.
  • Any interest in a "numba weekly" summary but actually do it monthly?
    • yes

1. New Issues

  • #8521 - Stub handling for type check purposes
  • #8523 - Compatibility Issue with AD102
  • #8528 - CUDA target overloads not handling kwargs
    • Either fix or temp. ban (catch and raise proper exception)
  • #8529 - CUDA test: test_reinterpret_array_type is failing on NumPy 1.23
  • #8530 - Cross target use of target-less @overload leads to lowering errors.
  • #8533 - Implementation of __repr__ method within jitclass
    • Needs a slightly different mindset than regular Python
  • #8534 - Numba's np.broadcast_to doesn't change the size of the array
    • Simple bug
  • #8538 - Update ufunc loop signature resolution to use NumPy #22422
    • Synchronising with NumPy developers

Closed Issues

  • #8531 - Cannot overwrite the str method in jitclass

2. New PRs

  • #8525 - Making CUDA specific datamodel manager
    • Assigned to G. Markall
  • #8526 - Fix broken url
    • Approved by @esc and @sklam -- now: Ready to Merge (RTM)
  • #8527 - Fix grammar in troubleshoot.rst
    • RTM already
  • #8535 - LLVM14
    • In progress....
  • #8536 - Fix fusion bug.
    • Already reviewed
  • #8537 - Make ol_compatible_view accessible on all targets
    • See above
  • #8539 - Fix #8534, np.broadcast_to should update array size attr.
    • @sklam will review

Closed PRs

  • merged - #8522 - Import jitclass from numba.experimental in jitclass documentation
  • merged - #8524 - Fix grammar in stencil.rst
  • merged - #8532 - Vary NumPy version on gpuCI

Closed PRs

3. Next Release: Version 0.57.0/0.40.0, RC Jan 2023

Clone this wiki locally