Question: Looking for someone that is more familiar with Numba AOT and any "output intermediate files" option I haven't found yet.

First off -> Pythran is a Python to C++ to PYD compiler. You can output the cpp files with a simple -e option to the compiler. It also takes #pragma omp flags like #omp parallel for. Now the more talked about Numba is used in JIT mode mostly. But it has an option to AOT (ahead of time) compile modules, but they lose parallel optimizations.

So I am using both of these libraries in a project. The Numba AOT compiled function is much faster than the Pythran one (and the Pythran one is using #omp parallel for loops while Numba AOT doesn't). Nonetheless, the Numba version is faster, so it's doing something my Pythran program is not.

So I want to see what it's doing - but when I look at the source code for Numba's AOT from numba.pycc import CC it appears Numba somehow is actually generating byte code and then compiles that into a PYD. But the documentation doesn't state this is being done anywhere, or if it's even possible to get the preliminary files Numba generates prior to compiling to examine. If they are in bytecode, well, I can't read that anyway. BUT if they are in either Cython or CPP format, then it's easy to examine the optimizations being done. SO...

Looking for someone that is more familiar with Numba AOT and any "output intermediate files" option I haven't found yet.

Even if the answer is "NO YOU CAN'T DO THAT" I need to hear it, then I can focus on parts of the code I can actually change.

Appreciated!

0

There are 0 best solutions below