Open
Description
Compile times with numba are often relatively long right now. The mean reason is that numba compiles every function we use in the graph separately. (see here for a detailed description).
There are things we can do to improve this in the meantime however:
- Reuse output functions of
funcify_*
as much as possible. This is good anyway, because it also saves llvm some work. - Make sure we pass appropriate flags to numba functions, like
no_cpython_wrapper=True
. - Provide signatures to as many njit functions as we can. We usually have the type information available anyway, so why not use it, make things more robust and save numba some trouble to infer it? A problem is though that we don't have alignment info as part of our types, not sure how to handle this...