Minutes_2022_10_11
esc edited this page Oct 11, 2022
·
1 revision
Attendees: Siu Kwan Lam, Andre Masella, Benjamin Graham, brandon willard, Graham Markall, Guilherme, Jim Pivarski, LI Da, Luk, stuart, Todd A. Anderson, Val, Shannon Quinn FPOC (last week): @sklam SCRIBE (FPOC next week): @guillherme
NOTE: All communication is subject to the Numba Code of Conduct.
Please refer to this calendar for the next meeting date.
-
#8483 - CUDA: Tuples of CAI exporters that aren't Numba device arrays are not recognized by typing (Graham)
- Long discussion in triage meeting. Suggested fix is to update typeof etc to do a "class"->impl based dispatch (as present now), and also add a "protocol"->impl based dispatch (new) to handle the use case above and also incorporate existing "protocol"-like things such as
cffi
, buffers and_numba_type_
.
- Long discussion in triage meeting. Suggested fix is to update typeof etc to do a "class"->impl based dispatch (as present now), and also add a "protocol"->impl based dispatch (new) to handle the use case above and also incorporate existing "protocol"-like things such as
- Question about Python frontend work done by Val -- Guilherme
- Val: Update will be presented near the end of the month/early next month. Main aim is to restructure and regularise the CFG derived from the Python bytecode.
- Guilherme expressed interested in making some optimization passes run a bit faster.
- Siu: the RDSVG form has some properties which are very useful in terms of reducing analysis necessary for Numba's needs. Control flow is implicit, 3 kinds of regions, linear code, loop, if-else/switch. Loop opt is simplified (as it's a data dep graph), hoisting etc is easy, loops are pretty much rotated, SSA is implicit. Tail loop regions lead to loops that will always execute.
- Paper: https://dl.acm.org/doi/pdf/10.1145/2693261
- Work is expected to land in Q2/2023
- Motivation for this work in frontend is that it makes it more robust against changes in the CPython bytecode.
- CUDA array interface - Stuart (summary of discussion on #8483 above)
- Some objects can exports a
__cuda_array_interface__
- To work with Numba, these objects needs to be registered in the
typeof
map. One solution would be to add CUDA target specific code intypeof.py
- Some objects can exports a
- Stencil
- Maintanence problem with stencils:
- Current tests require Python 3.7 AST
- Two different implementations: one for
@jit
and another whenparallel=True
- If Numba drops 3.7, it will miss all the stencil specific tests
- Presented options for handlind stencils:
- Migrate all Python 3.7 specific tests to Python 3.8
- Collect all tests
- Move stencils to numba-extras repo
- Todd asked why Numba has to use AST to generate tests and not write regular python tests?
- Stuart said we would have to write ~128 tests by hand and every single one have very specific characteristics.
- Jim suggested using https://github.com/rocky/python-uncompyle6 or
ast.unparse
in Python 3.9+ - Siu suggested generating source code from AST (going to do this)
- Maintanence problem with stencils:
- < add your topic here > -- < your name >
- #8487 - Not compatible with onetbb-2021.6.0
- #8488 - Add advanced performance "tricks" page/notes to the docs or as a notebook
- #8489 - test failure in numba.tests.test_mathlib.TestMathLib test_ldexp on ppc64el architecture.
- #8492 - scalar ufuncs that have equivalents in the math module are not supported, but docs claim they are.
- #8497 - List is considered as array
- #8491 - Added support for multidimensional array indexing
-
#8493 - Removes
context.compile_internal
where easy -
#8494 - Remove
context.compile_internal
where easy onnumba/cpython/cmathimpl.py
-
#8495 - Removes context.compile_internal where easy on
numba/cpython/listobj.py
- #8496 - Rewrite most of the set API to use overloads
- #8499 - Deprecate numba.generated_jit