Skip to content
esc edited this page Feb 27, 2024 · 1 revision

Numba Meeting: 2024-02-27

Attendees: FPOC (last week): FPOC (incoming):

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

Please refer to this calendar for the next meeting date.

0. Discussion

  • Revisit these release procedure

    Adding TODO: pre-tag test on conda-forge? Adding TODO: publish RCs on conda-forge?

    from https://github.com/numba/numba/issues/9410

    This task is lighter-weight now. We can commit to doing this for the next release. Will do this for 0.59.1 by tagging an RC and rehearsing the process on conda-forge, but not actually going through the whole RC process.

  • Final confirmation of EU office hours

    • GMT 12pm 3rd wednesday of the month
    • Starting 20th March
  • Issue #9348 - Random cache corruption. First class functions + GC + weakrefs?

  • PR #8984 - Support @gufunc inside @jit

    • @gufunc
    • @jit
  • Numba user survey 2024 is underway, we now have 33 responses.

  • Question about globals and use as constants.

def factory():
    configuration_things = configurator(<args>)
    @jit
    def entry_point():
        my_first_const = configuration_things.some_const1
        my_second_const = configuration_things.some_const2
        call_physics(my_first_const, my_second_const)
    return entry_point

https://github.com/numba/numba/blob/main/numba/np/arraymath.py#L1525-L1544

def generate_configuration(args_to_do_thing):
    # this bit here will generate a namedtuple that is uniquely identifiable
    tup = namedtuple(f'{hex(uuid)}', 'a b c d')
    @jit
    def thing():
        tup_inst = tup(args_to_do_thing[0])
        return tup_inst
    return thing
    
custom_config = generate_configuration(thing)

physics_entry_point(custom_config) #this is a jit function. Does this need closing over? Probably. Or literal types.
types.Tuple.from_types([types.BooleanLiteral(True), types.BooleanLiteral(False)])

Configuration (note that we are bad and part of the configuration is initialized outside the initialization function, but that could be fixed): https://github.com/tardis-sn/tardis/blob/master/tardis/montecarlo/montecarlo_configuration.py

Configuration usage (it's also used in more complex/messy functions): https://github.com/tardis-sn/tardis/blob/64df98bf7614988c6d5d8c962d00e9319428aba2/tardis/montecarlo/montecarlo_numba/interaction.py#L316

New "Ready for Review" PRs

1. New Issues

  • numba#9451 - [numba.cuda] StructModel + FP16 fails with CUDA because make_attribute_wrapper assumes default_manager
  • numba#9452 - No matching implimentation for np.empty in guvectorized function with NUMBA_DISABLE_JIT=1 and related caching issue
  • numba#9461 - Casting error
  • numba#9462 - overload_methoded function shouldn't set no_cpython_wrapper as False
  • numba#9463 - How about unifying int32 and Literal[int](0) as int32, rather than int64
  • numba#9464 - The np.size() Function Fails
  • numba#9465 - I get super bad performance when using zip() and parallel=True
  • numba#9469 - CUDA target respect NUMBA_OPT environment variable

Closed Issues

2. New PRs

  • numba#9454 - WIP: Don't attempt to register overloads that aren't for this target in BaseContext
  • numba#9455 - Support datetime types in isinstance()
  • numba#9457 - Use flatten_args for _impl_caches in templates
  • numba#9458 - Make pinned ary arglist consistent in cudasim mode
  • numba#9459 - Support pep695 type param syntax
  • numba#9460 - Add performance suite
  • numba#9466 - Numpy 2.0 binary support testing
  • numba#9468 - adding git-copy.py script
  • llvmlite#1033 - NFC, fix few links in install guide

Closed PRs

(last numba: 9469; llvmlite 1033)

3. Short-term Roadmap

2024-gantt: TBD 2023-gantt: https://github.com/numba/numba/issues/8971

Clone this wiki locally