lmcinnes / umap

Uniform Manifold Approximation and Projection
BSD 3-Clause "New" or "Revised" License
7.37k stars 799 forks source link

LLVM ERROR: Symbol not found: __svml_sqrtf8 #702

Open patskowron opened 3 years ago

patskowron commented 3 years ago

I'm attempting to install umap on: python=3.9.5 numba=0.53.1 llvmlite=0.36.0

As soon as I attempt to import the package the kernel crashes and I get this error: "LLVM ERROR: Symbol not found: __svml_sqrtf8"

I have tried using both pip and conda installers and am running on Win10. Is there anything I can do to fix this issue? Thanks!

lmcinnes commented 3 years ago

I admit I've never seen anything like that before. This definitely seems to be deep in the innards of numba. Perhaps you need icc_rt installed to get SVML instructions working? I would definitely try asking upstream with numba and see if they have any ideas.

dr-michael-haley commented 2 years ago

I am having the exact same issue, also on Windows 10. Installing icc_rt didn't resolve the issue, and currently only umap-learn and it's dependencies are installed in the environment. When I tried importing from within Jupyter, it causes the kernel to die, I could only get to this error code by trying 'import umap' from the python command line.

llvmlite=0.37.0 numba=0.54.1 python=3.9.7

Thanks a lot!

likeben commented 2 years ago

I have encountered the same issue and found the solution fortunately.

Reason

As described in the numba source code llvmlite.binding.load_library_permanently("svml_dispmd"), numba will use the Intel SVML automatically if it detect the svml_dispmd lib in win32 system. So if there is the svml_dispmd.dll file in the system directory, numba will enable the Intel SVML feature automatically. In my situation, a software(SlideAC 3DHISTECH Ltd.) in my system copy such file to the C:\\Windows\System32 directory, but the CPU of my computer is AMD. So numba enable the Intel SVML but it cannot work, then raise this error.

Solution

  1. Find and delete the lib file svml_dispmd.dll in the system directory
  2. Set environment variable NUMBA_DISABLE_INTEL_SVML=1 to disable the Intel SVML
dr-michael-haley commented 2 years ago

Thanks so much!

My CPU is Intel, so in theory SVML should be fine to use. Therefore, all I had to do was remove the svml_dispmd.dll file (actually, I just renamed it) from the System32 directory, and UMAP loaded fine.

I suspect that the file was originally installed by CaseViewer (3DHISTECH Ltd.), though CaseViewer seems to run fine without the .dll anyway.

For those still encountering issues, you can get some useful information from Numba about your system capabilities regarding SVML being enabled by running numba -s (https://numba.pydata.org/numba-doc/dev/user/installing.html#numba-source-install-env-vars)

anicoli commented 1 year ago

Dear all,

After installing umap via conda, I encountered the same problem while importing umap in python. I tried to install icc_rt as suggested from @lmcinnes with the following command:

conda install -c intel icc_rt

Now it works.

python=3.9.16 numba=0.56.4 umap=0.5.3 llvmlite=0.39.1

nothingness6 commented 8 months ago

I have encountered the same issue and found the solution fortunately.

Reason

As described in the numba source code llvmlite.binding.load_library_permanently("svml_dispmd"), numba will use the Intel SVML automatically if it detect the svml_dispmd lib in win32 system. So if there is the svml_dispmd.dll file in the system directory, numba will enable the Intel SVML feature automatically. In my situation, a software(SlideAC 3DHISTECH Ltd.) in my system copy such file to the C:\\Windows\System32 directory, but the CPU of my computer is AMD. So numba enable the Intel SVML but it cannot work, then raise this error.

Solution

1. Find and delete the lib file `svml_dispmd.dll` in the system directory

2. Set [environment variable](https://numba.pydata.org/numba-doc/dev/reference/envvars.html#envvar-NUMBA_DISABLE_INTEL_SVML) `NUMBA_DISABLE_INTEL_SVML=1` to disable the Intel SVML

Hi, I came across here as I faced the same issue. I detected the file you mentioned, and there are many of them. Which one should I delete from the screenshot below? Thanks in advance.

xtts_issue