Skip to content

Add python mode#2219

Open
jessegrabowski wants to merge 10 commits into
pymc-devs:mainfrom
jessegrabowski:python-mode
Open

Add python mode#2219
jessegrabowski wants to merge 10 commits into
pymc-devs:mainfrom
jessegrabowski:python-mode

Conversation

@jessegrabowski

@jessegrabowski jessegrabowski commented Jun 13, 2026

Copy link
Copy Markdown
Member

Closes #1990

mode="py" becomes a full python mode. The existing py becomes perform. The python mode is a VMLinker so we can do IFElse. I started moving some of the big ugly linalg implemetations from perform to a python dispatch as a show of what I think the advantage of this setup is. The performs where most people will look become nice and clean, and all the lapack dancing gets hidden in the dispatch.

Comment thread pytensor/link/python/linker.py Outdated
Promotes the per-subclass routing PythonLinker did into the VMLinker
default, so every pure-Python VM path (pyvm, FAST_COMPILE, cxx-less vm)
prefers a registered python_funcify before falling back to perform.
PythonLinker is now a whole-graph JITLinker registered as pyjit; py is a
plain VMLinker -- the robust per-node Python reference (lazy ops, perform
fallback). The redundant perform linker is dropped.
The base Op.perform now delegates to the python_funcify dispatch, so an
Op's numeric behaviour can live entirely in the registry. Cholesky keeps
only its symbolic definition.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants