lmcinnes / lmcinnes/pynndescent

Import fails

Open
#150 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
970
Forks
107
PR merge metrics
No merged PRs in 30d

Description

Importing pynndescent fails. In versions 0.5.2 onwards the error is:
LLVM ERROR: Symbol not found: __svml_sqrtf8

In version 0.5.1 the error is...
Traceback (most recent call last):
File "", line 1, in
File "C:\Anaconda3\envs\squidpy\lib\site-packages\pynndescent\__init__.py", line 3, in
from .pynndescent_ import NNDescent, PyNNDescentTransformer
File "C:\Anaconda3\envs\squidpy\lib\site-packages\pynndescent\pynndescent_.py", line 21, in
import pynndescent.sparse as sparse
File "C:\Anaconda3\envs\squidpy\lib\site-packages\pynndescent\sparse.py", line 10, in
from pynndescent.utils import norm, tau_rand
File "C:\Anaconda3\envs\squidpy\lib\site-packages\pynndescent\utils.py", line 630, in
def simple_heap_push(priorities, indices, p, n):
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\decorators.py", line 226, in wrapper
disp.compile(sig)
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\dispatcher.py", line 979, in compile
cres = self._compiler.compile(args, return_type)
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\dispatcher.py", line 141, in compile
status, retval = self._compile_cached(args, return_type)
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\dispatcher.py", line 155, in _compile_cached
retval = self._compile_core(args, return_type)
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\dispatcher.py", line 168, in _compile_core
cres = compiler.compile_extra(self.targetdescr.typing_context,
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\compiler.py", line 686, in compile_extra
return pipeline.compile_extra(func)
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\compiler.py", line 428, in compile_extra
return self._compile_bytecode()
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\compiler.py", line 492, in _compile_bytecode
return self._compile_core()
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\compiler.py", line 471, in _compile_core
raise e
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\compiler.py", line 462, in _compile_core
pm.run(self.state)
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\compiler_machinery.py", line 343, in run
raise patched_exception
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\compiler_machinery.py", line 334, in run
self._runPass(idx, pass_inst, state)
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\compiler_lock.py", line 35, in _acquire_compile_lock
return func(*args, **kwargs)
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\compiler_machinery.py", line 289, in _runPass
mutated |= check(pss.run_pass, internal_state)
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\compiler_machinery.py", line 262, in check
mangled = func(compiler_state)
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\typed_passes.py", line 396, in run_pass
lower.lower()
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\lowering.py", line 138, in lower
self.lower_normal_function(self.fndesc)
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\lowering.py", line 192, in lower_normal_function
entry_block_tail = self.lower_function_body()
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\lowering.py", line 221, in lower_function_body
self.lower_block(block)
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\lowering.py", line 235, in lower_block
self.lower_inst(inst)
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\lowering.py", line 381, in lower_inst
self.storevar(val, inst.target.name)
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\lowering.py", line 1355, in storevar
raise AssertionError(msg)
AssertionError: Failed in nopython mode pipeline (step: native lowering)
Storing i64 to ptr of i16 ('size'). FE type uint16

This was with numba 0.54.1, but also with 0.53.0, and I even tried downgrading to python 3.8.10, but no luck.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with pynndescent/__init__.py and follow its imports through pynndescent_.py, sparse.py, and utils.py, using the Python, pynndescent, and numba versions reported in the issue. Reproduce the import failures in a comparable environment and identify the affected compatibility boundary. Done means importing pynndescent succeeds without either reported error.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
machine-learning
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.