aesara-devs / aesara

Aesara is a Python library for defining, optimizing, and efficiently evaluating mathematical expressions involving multi-dimensional arrays.
https://aesara.readthedocs.io
Other
1.18k stars 153 forks source link

Determine remaining `COp`s for Numba conversion #423

Open brandonwillard opened 3 years ago

brandonwillard commented 3 years ago

Before we can replace the C backend, we need to make sure all the existing C implementations for Ops have Numba equivalents. Let's look through the codebase and list the remaining Ops here.

kc611 commented 3 years ago

Not sure which of these are redundant with respect to Numba but here's a list of all COp and COp derivatives that don't have a corresponding registration in Numba backend. Doesn't include things from aesara/gpuarray since that is an entirely different matter.

aesara/assert_op.py

aesara/sandbox/multinomial.py

aesara/sparse/basic.py

aesara/sparse/opt.py

aesara/tensor/basic.py

aesara/tensor/blas_c.py

aesara/tensor/blas.py

aesara/tensor/extra_ops.py

aesara/tensor/math.py

~aesara/typed_list/basic.py~

There are also these NoPythonOps:

aesara/ifelse.py

Edit: Removed the Ops in nnet since we're discontinuing support for this module

ferrine commented 2 years ago

is this list updated anyhow?

brandonwillard commented 2 years ago

is this list updated anyhow?

I've crossed out the Ops for which we don't really need conversions. The aesara.sparse sub-package requires an entirely different approach, and it has its own issue, so those probably shouldn't be considered here.