-
-
Notifications
You must be signed in to change notification settings - Fork 21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unnecessary libllvm dependency for numba through llvmlite #84
Comments
We dynamically link to LLVM. Hence the library is a required dependency for us However the runtime library is named Another package could depend on a different LLVM runtime library (for example A little unclear what the other package is that you are using, but maybe it would be worth following up with them in a new issue to switch to the versioned LLVM library |
The conflicted 'package' is not a conda package, it's the system's graphics driver, the llvmpipe OpenGL renderer from Mesa. It will just try to use whatever LLVM it can find (it will be conda-installed libllvm14 in this case) to JIT-compile shaders. This is not what an unprivileged user can hope to control, and very difficult to downgrade on a HPC system. Is there a reason to ship a dynamically linked LLVM? Since Numba's official builds seem to be running fine on all the platforms (including arm, powerpc etc) by bundling LLVM into llvmlite. |
Here is the backtrace:
The Mesa driver gets confused between llvm 14 and 15, and segfaults. |
Numba requires a specific LLVM to work correctly. Currently for 0.59 this is LLVM 14. Numba and llvmlite are then built differently by distributors: The Numba and llvmlite form PyPi and from the Numba channel ( The Numba and llvmlite from conda-forge and from the These setups are very unlikely to change, so I would recommend using a Numba and llvmlite combo from a distributor such that you can work around the issues you are having. Alternatively, perhaps there is an environment variable that can be set for |
I cannot find a way to point llvmpipe to a specific LLVM at runtime other than setting a global For now the best workaround may be using the |
Yes. I hope that works for you, do let us know how it goes! It may be worth adding an |
Solution to issue cannot be found in the documentation.
Issue
The conda-forge recipe for numba hard-pins libllvm to 14.0, which breaks OpenGL-based software when the llvmpipe renderer is used for mesa on Linux.
llvmlite-feedstock/recipe/meta.yaml
Line 32 in ca6e605
However, the upstream documentation specifically explains that only llvmlite is used and any LLVM installation will be ignored:
Also, installing from upstream channel will not install libllvm, and it works with llvmpipe:
Installed packages
# Name Version Build Channel _libgcc_mutex 0.1 conda_forge conda-forge _openmp_mutex 4.5 2_gnu conda-forge bzip2 1.0.8 hd590300_5 conda-forge ca-certificates 2024.2.2 hbcca054_0 conda-forge ld_impl_linux-64 2.40 h41732ed_0 conda-forge libblas 3.9.0 21_linux64_openblas conda-forge libcblas 3.9.0 21_linux64_openblas conda-forge libexpat 2.5.0 hcb278e6_1 conda-forge libffi 3.4.4 h6a678d5_0 libgcc-ng 13.2.0 h807b86a_5 conda-forge libgfortran-ng 13.2.0 h69a702a_5 conda-forge libgfortran5 13.2.0 ha4646dd_5 conda-forge libgomp 13.2.0 h807b86a_5 conda-forge liblapack 3.9.0 21_linux64_openblas conda-forge libllvm14 14.0.6 hcd5def8_4 conda-forge libnsl 2.0.1 hd590300_0 conda-forge libopenblas 0.3.26 pthreads_h413a1c8_0 conda-forge libsqlite 3.44.2 h2797004_0 conda-forge libstdcxx-ng 13.2.0 h7e041cc_5 conda-forge libuuid 2.38.1 h0b41bf4_0 conda-forge libxcrypt 4.4.36 hd590300_1 conda-forge libzlib 1.2.13 hd590300_5 conda-forge llvmlite 0.42.0 py311ha6695c7_1 conda-forge ncurses 6.4 h59595ed_2 conda-forge numba 0.59.0 py311h96b013e_1 conda-forge numpy 1.26.4 py311h64a7726_0 conda-forge openssl 3.2.1 hd590300_0 conda-forge pip 24.0 pyhd8ed1ab_0 conda-forge python 3.11.7 hab00c5b_1_cpython conda-forge python_abi 3.11 4_cp311 conda-forge readline 8.2 h8228510_1 conda-forge setuptools 69.0.3 pyhd8ed1ab_0 conda-forge tk 8.6.13 noxft_h4845f30_101 conda-forge tzdata 2024a h0c530f3_0 conda-forge wheel 0.42.0 pyhd8ed1ab_0 conda-forge xz 5.4.5 h5eee18b_0
Environment info
The text was updated successfully, but these errors were encountered: