Skip to content
Valentin Haenel edited this page May 19, 2020 · 2 revisions

Numba Meeting: 2020-05-19

Attendees: Siu, Stu, Todd, Pearu, Aaron, Hameer, Guilherme, Val

0. Feature Discussion

  • #5609 Jitclass infer spec from type annotations
    • Need to form opinions in next few weeks.
    • PR changes:
      • extended typeof to support typing generics
      • jitclass can do:
        @jitclass
        class Counter:
            x: int
        
            def __init__(self):
                self.x = 0
        
            @property
            def count(self) -> int:
                return self.x
        
            def inc(self) -> int:
                self.x += 1
                return self.x
      • Note:
        • extension to regular function
        • cartesian product problem for describing types in signatures
        • can it be inferred at the call site? (separate problem)
        • would make writing jitclass spec easier
    • TODO slightly unrelated. Jitclass ctor infer from callsite
      • start discussion thread with Hameer
    • TODO cont' discuss
  • CoC Draft discussion:
  • Potential way through TBB nested threading problem
    • complicated, worth a try

1. New Issues

  • #5715 - Implement in/operator.contains consistently.
  • ** #5713 - List() and Dict() always recompile _getitem,_setitem, _length, etc. every time; maybe should cache?
    • important performance issue
  • #5712 - Greater support of thread specific arrays
    • could be quick fix to remove guard that prevent returning arrays in device function
  • #5708 - libnvvm segfault compiling this kernel
    • 2 args round() not supported in NVVM
    • we should stop emitting on 2 args round()
  • #5706 - Please add support for Metal as GPU accelerator
  • **** #5703 - Nested tuples with numba.prange cause LoweringError
    • discussion:
      • should not continue to patch for nested tuples
      • plans to remove gufunc
  • #5698 - BUG: AssertionError: Failed in nopython mode pipeline (step: convert to parfors). Invalid reduction format. (Error with parallel=True)
  • **** #5696 - Too slow jit compilation of a function
    • parfor takes >50% of time in ~3 min compilation
    • how to speed it up?
    • complex CFG graph; time spent a lot in computing CFG; parfor passes also does a lot of CFG computing.
    • discussed caching analysis passes
    • discussed "enforcing"/"strict" mode to do expensive checks in Numba IR integrity.
  • #5693 - Issue boxing tuple of dispatcher

Closed Issues

  • #5710 - CUDA Matrix Multiplication Code failing with ConstantInferenceError
  • #5691 - Doesn’t work outright on latest Centos from Google cloud compute

2. New PRs

  • #5718 - CUDA lib path tests: unset CUDA_PATH when CUDA_HOME unset
  • ** #5717 - Initialise Numba extensions ahead of any compilation starting.
  • #5716 - Docs: Add example usage of List.empty_list
    • prefer to make List(dtype=intp)
    • List.empty_list will be deprecated soon
  • #5714 - Fix bug in test
  • #5711 - Division with timedelta input
    • bigger picture problem: unit logic in numpy have changed in time
  • #5709 - [WIP] Refactoring of cuda.jit and kernel / dispatcher
  • #5707 - [WIP] refactoring np.argmax with overload
  • #5705 - A fix for cases where SSA looks like a reduction variable.
  • #5702 - Fixes for LLVM 9
  • #5701 - Wip/declarative typing 2
  • **** #5700 - Make it easier to understand type inference: add SSA dump, use for DEBUG_TYPEINFER
    • discussion: getting too many flags?
  • #5699 - Implement np.split and np.array_split
    • TODO: comment on use of typedlist; prefer reflected list for now

Closed PRs

  • #5719 - [WIP] Fix #5713: cache typed dict and list functions
  • #5704 - CUDA Eager compilation: Fix max_registers kwarg
  • #5697 - Fix usedef issue with parfor loopnest variables.
  • #5695 - Fix usedef issue with parfor loopnest variables.
  • #5694 - Skip part of slice array analysis if any part is not analyzable.

3. Next Release: Version 0.50.0, RC=May 28th

  • Requests for 0.50

  • high risk stuff for 0.50.

    • Declarative typing (Siu and Stu)
      • declaring accepted types in things like @overload
      • so we can have better errmsg
      • allow overloading "contextual information"; i.e. targets (CPU, GPU), fastmath flag, exception handling
      • make sure we don't break existing @overload/@lower_builtin use cases
    • Remove macro expansion (Graham)
      • replace "macros" with standard typing/lowering; i.e. @register / @lower (@overload not yet working with CUDA)
  • llvm 9

  • plan to have first open meeting on June 4th.

  • 0.51 potential tasks

    • TypedSet
      • base on TypedDict
      • Related:

      https://github.com/numba/numba/pull/5639
    • Nested modes
    • Move SSA pass up the pipeline
      • make sure more passes can work in SSA form
    • CUDA Dispatcher / kernel interface:
      • Share machinery with CPU target (e.g. for multiple signatures, typeconv, etc.)

4. Upcoming tasks

  • Opening up the numba meeting
    • needs to approve a CoC
    • plan to have first open meeting on June 2nd.
Clone this wiki locally