Minutes_2023_07_11
esc edited this page Jul 12, 2023
·
1 revision
Attendees: Siu Kwan Lam, Andre Masella, Da Li, Matthew Murray, Mingjie Wang, stuart, Todd A. Anderson, kristian, Guilherme, Val FPOC (last week): Stuart FPOC (incoming): Siu
NOTE: All communication is subject to the Numba Code of Conduct.
Please refer to this calendar for the next meeting date.
- Towncrier is broken.
- Issue is that
importlib_resources
updated,towncrier
relied on the removed API. Decision is to pin against working versions for now. - ACTION: Siu will fix
- Issue is that
- NumPy 1.25 update/future.
- review will continue
- Needs a run through the main build.
- General note - reminder that contributors need to update change logs since towncrier merge (i.e. add news snippets as per docs).
- Discourse post will be made to broadcast the change further.
- Additional work to be done to "catch up" missing news snippets since 0.57.0 (RM: action item needed)
- **** PIXIE Demo next week?
- Aim for 25th July.
- **** NEXT (Numba 0.58.0 & llvmlite 0.41.0)
- 0.58 https://github.com/numba/numba/milestone/69
- 0.41 https://github.com/numba/llvmlite/milestone/19
- Tag week: 07 Aug 2023
- PRS to discuss:
- Cache invalidation PR: https://github.com/numba/numba/pull/8396
- Needs a second reviewer.
- Cache invalidation PR: https://github.com/numba/numba/pull/8396
- **** Updates from numba-umbrella projects.
- numba-rvsdg
- now mypy clean
- full region testing almost complete
- integration PR to Numba in review: #9012
- PIXIE:
- SciPy demo notebook
- numba-rvsdg
- **** Can
noalias
be added to the@jit
family of decorators? What would this look like in practice and what are the implications.- discovered use cases where code that could have vectorized but would not, turns out that adding the
noalias
attr to the array data pointers in the argument list to a function let the vectorization take place. - There's a flag in Numba for
noalias
already but it's not exposed. - Various options:
- User flag that applies to all pointer args (need to check all pointers vs. all pointers that are array data)
- User can "spell" that certain args do not alias, a more fine grained approach. 1 is a superset of 2. The user is responsible for correctness.
- Decorator checks to see if any of the args alias and if not then trigger a compilation with
noalias
set. This requires a n^2 check of all pointers and potentially triggers a lot of compilation. - Like 3 but checks and adds the flag specifically for each arg.
- Q. How would the dispatcher "know" about the aliasing?
- A. Would need encode aliasing into the function signature as part of the key.
- Automatic route may be difficult to do.
- Q. Could alias analysis be done in LLVM?
- A. No, needs actual args from the interpreter.
- Q. In 1. what happens if the args actually do alias?
- A. Potential for incorrect output.
- Q. Is #7168 going to impact this?
- A. Yes. But this doesn't prevent implementing this and it being useful, it'll just hit this problem.
- Q. How much will this add to dispatch/compilation cost?
- A. 1. and 2. is user defined so no dynamic cost.
- Conclusion:
- Attempt to do this and see how it goes, this might better inform any issues. Concern at present is "spelling" of this and the unknown-unknowns. Likely to help users wanting to get the last 5-10% of performance.
- discovered use cases where code that could have vectorized but would not, turns out that adding the
- **** NEP-50 and the increased prevalence of
OverflowError
handling needed. - **** Supporting ufunc attributes (
nin
,nout
,reduce
, etc)- Q. "how do you do this?" Is there any code in Numba that does something similar whereby you have a function and you can call an attribute of a function.
- A. Numba should not care what type the
self
is. Normal attribute and method registration code should work.extending.overload_method
- https://github.com/numba/numba/pull/6647 Need second reviewer
-
numba#9060 - Convert Numba to use
pyproject.toml
- https://docs.python.org/3.12/whatsnew/3.12.html#build-changes
-
Python no longer uses setup.py to build shared C extension modules.
- numba#9061 - Empty NumPy String Array Error
- **** numba#9062 - Extension Type with prange
- numba#9063 - CUDA: 6 atomics tests fail with CUDA 12.2 due to invalid test expectations
- numba#9064 - Implement pointer casting intrinsic
-
numba#9065 -
FunctionType
usage throwsTypingError
of arg type mismatch -
numba#9066 - Feature Request: arbitrary precision arithmetic.
- This is probably a duplicate, can link a duplicate
-
llvmlite#970 - Convert to use
pyproject.toml
- https://docs.python.org/3.12/whatsnew/3.12.html#build-changes
-
Python no longer uses setup.py to build shared C extension modules.
-
llvmlite#971 - Why does the library raise exceptions for incorrect arguments to builder.py methods
- Suggest the user creates a proxy-API to do try-except around the API?
-
numba#9057 - CUDA: Remove specialize in
ForAll
object - numba#9058 - Fix gufunc with multiple outputs
- numba#9059 - Make sure all parameter names match NumPy and CPython
- numba#9067 - Get LLVM lines per Python line
- numba#9068 - Adding np.geomspace
- merged - numba#9056 - adding weekly meeting notes script