$ python -c "import dpctl"
Traceback (most recent call last):
File "<frozen runpy>", line 189, in _run_module_as_main
File "<frozen runpy>", line 148, in _get_module_details
File "<frozen runpy>", line 112, in _get_module_details
File "/localdisk/work/antonvol/bits/dpnp/pypi_venv/lib/python3.12/site-packages/dpctl/__init__.py", line 29, in <module>
from ._device_selection import select_device_with_aspects
File "/localdisk/work/antonvol/bits/dpnp/pypi_venv/lib/python3.12/site-packages/dpctl/_device_selection.py", line 20, in <module>
from ._sycl_device import SyclDevice, SyclDeviceCreationError
ImportError: libsycl.so.8: cannot open shared object file: No such file or directory
because there is no libsycl.so.8 library installed (missing intel-sycl-rt package):
It seems unclear from installation guide that any extra package has to be installed when reading though Pip chapter.
While looking into the meta data it seems there is no requirements set towards the DPC++ runtime:
$ grep "Requires-Dist" pypi_venv/lib/python3.12/site-packages/dpctl-0.19.0.dev0+278.geefc82b6cd.dist-info/METADATA
Requires-Dist: numpy>=1.23.0
Requires-Dist: Cython; extra == "coverage"
Requires-Dist: pytest; extra == "coverage"
Requires-Dist: pytest-cov; extra == "coverage"
Requires-Dist: coverage; extra == "coverage"
Requires-Dist: tomli; extra == "coverage"
Requires-Dist: Cython; extra == "docs"
Requires-Dist: graphviz; extra == "docs"
Requires-Dist: pydot; extra == "docs"
Requires-Dist: furo; extra == "docs"
Requires-Dist: sphinx; extra == "docs"
Requires-Dist: sphinx-copybutton; extra == "docs"
Requires-Dist: sphinx-design; extra == "docs"
Requires-Dist: sphinxcontrib-googleanalytics; extra == "docs"
Requires-Dist: sphinxcontrib-jsmath; extra == "docs"
Requires-Dist: sphinxcontrib-programoutput; extra == "docs"
Requires-Dist: sphinxcontrib-spelling; extra == "docs"
So the question arises whether this is expected behavior. And whether the documentation needs to be updated to reflect the current behavior and required extra steps.
It seems
intel-sycl-rt
package isn't installing (but required by) during installation of dpctl wheel package:The import of dpctl package fails with:
because there is no
libsycl.so.8
library installed (missingintel-sycl-rt
package):While explicit installing of
intel-sycl-rt
package resolves the issue:and
python -m dpctl
command now works.It seems unclear from installation guide that any extra package has to be installed when reading though
Pip
chapter.While looking into the meta data it seems there is no requirements set towards the DPC++ runtime:
So the question arises whether this is expected behavior. And whether the documentation needs to be updated to reflect the current behavior and required extra steps.