catalyst
catalyst copied to clipboard
[BUG] ImportError of GLIBCXX in Catalyst frontend
Issue description
I am experiencing issues when importing Catalyst that seem to depend on where and how the library is imported. It might be specific to my installation (I had to hack around a bit to get it to pick up clang
), but I thought I should report because the failure seems erratic. I think it is related to something in the frontend
.
- Expected behavior: (What you expect to happen)
Importing Catalyst from both shell, interpreter, and Jupyter notebook should work without errors.
- Actual behavior: (What actually happens)
When I fire up an interpreter, I can do
>>> from catalyst import qjit
or
>>> import catalyst
without issue.
If I have a Python script, and begin it with
from catalyst import qjit
it works when this is the only line in the script, but in other contexts (my Shor implementation), I receive the following Traceback:
Traceback (most recent call last):
File "/home/olivia/Code/shortalyst-dev/full_jit_working.py", line 10, in <module>
from catalyst import cond, measure, qjit, for_loop, while_loop
File "/home/olivia/Code/catalyst/frontend/catalyst/__init__.py", line 64, in <module>
from catalyst.compilation_pipelines import QJIT, CompileOptions, qjit
File "/home/olivia/Code/catalyst/frontend/catalyst/compilation_pipelines.py", line 40, in <module>
from catalyst.compiler import CompileOptions, Compiler
File "/home/olivia/Code/catalyst/frontend/catalyst/compiler.py", line 30, in <module>
from mlir_quantum.compiler_driver import run_compiler_driver
ImportError: /home/olivia/.conda/envs/catalyst/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /home/olivia/Code/catalyst/frontend/catalyst/../../mlir/build/python_packages/quantum/mlir_quantum/compiler_driver.so)
However, adding a line above this import that does import catalyst
solves the problem
In a Jupyter Notebook, neither version works, and I get a similar but more detailed error:
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
Cell In[2], line 1
----> 1 import catalyst
3 from catalyst import qjit
File ~/Code/catalyst/frontend/catalyst/__init__.py:64
58 sys.modules["mlir_quantum._mlir_libs._quantumDialects.quantum"] = types.ModuleType(
59 "mlir_quantum._mlir_libs._quantumDialects.quantum"
60 )
63 from catalyst.ag_utils import AutoGraphError, autograph_source
---> 64 from catalyst.compilation_pipelines import QJIT, CompileOptions, qjit
65 from catalyst.pennylane_extensions import (
66 adjoint,
67 cond,
(...)
74 while_loop,
75 )
76 from catalyst.utils.exceptions import CompileError
File ~/Code/catalyst/frontend/catalyst/compilation_pipelines.py:40
38 import catalyst
39 from catalyst.ag_utils import run_autograph
---> 40 from catalyst.compiler import CompileOptions, Compiler
41 from catalyst.jax_tracer import trace_to_mlir
42 from catalyst.pennylane_extensions import QFunc
File ~/Code/catalyst/frontend/catalyst/compiler.py:30
27 from io import TextIOWrapper
28 from typing import Any, List, Optional
---> 30 from mlir_quantum.compiler_driver import run_compiler_driver
32 from catalyst._configuration import INSTALLED
33 from catalyst.utils.exceptions import CompileError
ImportError: /home/olivia/.conda/envs/catalyst/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /home/olivia/Code/catalyst/frontend/catalyst/../../mlir/build/python_packages/quantum/mlir_quantum/compiler_driver.so)
- Reproduces how often: (What percentage of the time does it reproduce?)
Erratic (see description above)
-
System information: (post the output of
import pennylane as qml; qml.about()
)
Running on Ubuntu 22.04.
Catalyst is installed from source off of main branch commit 422dc14879071039a9a64eb781627b6b441174de.
Clang++ is version 14.0.0-1ubuntu1.1.
Output of qml.about()
(packages installed from Catalyst's requirements.txt
file):
Name: PennyLane
Version: 0.32.0
Summary: PennyLane is a Python quantum machine learning library by Xanadu Inc.
Home-page: https://github.com/PennyLaneAI/pennylane
Author:
Author-email:
License: Apache License 2.0
Location: /home/olivia/.conda/envs/catalyst/lib/python3.11/site-packages
Requires: appdirs, autograd, autoray, cachetools, networkx, numpy, pennylane-lightning, requests, rustworkx, scipy, semantic-version, toml, typing-extensions
Required-by: pennylane-catalyst, PennyLane-Lightning
Platform info: Linux-6.2.0-33-generic-x86_64-with-glibc2.35
Python version: 3.11.0
Numpy version: 1.23.5
Scipy version: 1.10.0
Installed devices:
- default.gaussian (PennyLane-0.32.0)
- default.mixed (PennyLane-0.32.0)
- default.qubit (PennyLane-0.32.0)
- default.qubit.autograd (PennyLane-0.32.0)
- default.qubit.jax (PennyLane-0.32.0)
- default.qubit.tf (PennyLane-0.32.0)
- default.qubit.torch (PennyLane-0.32.0)
- default.qutrit (PennyLane-0.32.0)
- null.qubit (PennyLane-0.32.0)
- lightning.qubit (PennyLane-Lightning-0.32.0)
Source code and tracebacks
N/A
Additional information
Let me know what else would be useful!