Skip to content
esc edited this page Nov 30, 2021 · 1 revision

Numba Meeting: 2021-11-30

Attendees: Siu Kwan Lam, Graham Markall, Reazul Hoque, stuart, Todd A. Anderson, Val, Luk, brandon willard

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

0. Feature Discussion

  • RC update
    • Numba RC release delay due to upstream problems, e.g. cannot get a working NumPy for Python3.10. Regardless, we will get the RC out the door this side of the holidays (even with missing binary artifacts).
    • Python3.10 PRs under review and a few regression fixes.
    • llvmlite 0.38.0 RC1 was released last week, please test it, esp. the Wheels! Support for 3.10!
  • PR #7359 - Extend support for nested arrays inside numpy records
  • Registration API for changing the pipeline class based on types.

currently:

from numba import njit

@njit(pipeline_class=MyPipeline)
def foo(df):
    ...
    
foo(df)

proposed:

@njit
def foo(df):
    ...  # allow custom pipeline base on type of `df` to activate
    
foo(df)  # uses MyPipeline when df is of a specific type

example using CUDA/CUPY:

@njit
def par_sum(arr):
    pass

v = par_sum(cupy.zeros(10))

Multi-dispatch conflict:

v = par_sum(cupy.zeros(10), usmarray(10), yourgpuarray(10))

Maybe use policy to allow only matching on your own types.

Should this even be allowed?

@njit
def example():
    df_y = foo(df_x)
    df_z = bar(df_y)


@njit
def example_optimized():
    df_z = foobar(df_x)   # fusing foo() and bar()
def example():
    df_y = df_x.sort()
    bar(df_y) 
    
def bar(df):
    y = df.sort()
    return the_rest(y)

How much optimization is too much?

1. New Issues

  • #7589 - Update simplify_CFG to handle dead blocks
  • #7590 - Fix GUFunc.at use by automatic compilation of the required signature.
    • all Gufunc methods should trigger auto compilation
    • .at has segfault problem in older numpy when ufunc signature expects arrays.
  • #7592 - Invalid static_getitem const inference for list comprehension
  • #7594 - Support for >1D bool array indexing
  • #7595 - failed to change arrays in list in a for loop
  • #7600 - TBB backend not working on Win due to wrong dll name
  • #7601 - Pickling error when creating jitclass with list of nested jitclass objects, v0.54
  • #7602 - Casting error when creating jitclass with list of nested jitclass objects

Closed Issues

  • #7598 - Wrong result while calculating big powers
  • #7599 - Initializing and returning a custom dtype array/record from njit causes garbled data

2. New PRs

  • #7591 - Remove deprecations
  • #7593 - Don't report start, stop, step parfor vars for insert_dels.
  • #7596 - Fix max symbol match length for r2
  • #7603 - Fix list.insert() for refcounted values
  • #7604 - Added multiple axes support for np.expand_dims
  • #7605 - Fix TBB 2021 DSO names on OSX/Win and make TBB reporting consistent
  • #7606 - Ensure a prescribed threading layer can load in CI.

Closed PRs

  • #7597 - Update gdb docs for new DWARF enhancements.

3. Next Release: Version 0.55.0/0.38.0, RC=Dec 1st

Clone this wiki locally