numba / llvmlite

A lightweight LLVM python binding for writing JIT compilers
https://llvmlite.pydata.org/
BSD 2-Clause "Simplified" License
1.89k stars 315 forks source link

Cannot install on tegra processor jetson TX2 #360

Open saquibntt opened 6 years ago

saquibntt commented 6 years ago

Hi,

I wanted to use Librosa on TX2, I have llvm 3.8 on jetson

`Building wheels for collected packages: llvmlite Running setup.py bdist_wheel for llvmlite ... error Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;file='/tmp/pip-install-wnX_gp/llvmlite/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" bdist_wheel -d /tmp/pip-wheel-AwKwkG --python-tag cp27: running bdist_wheel /usr/bin/python /tmp/pip-install-wnX_gp/llvmlite/ffi/build.py LLVM version... 3.8.0

Traceback (most recent call last): File "/tmp/pip-install-wnX_gp/llvmlite/ffi/build.py", line 143, in main() File "/tmp/pip-install-wnX_gp/llvmlite/ffi/build.py", line 133, in main main_posix('linux', '.so') File "/tmp/pip-install-wnX_gp/llvmlite/ffi/build.py", line 105, in main_posix raise RuntimeError(msg) RuntimeError: Building llvmlite requires LLVM 6.0.x. Be sure to set LLVM_CONFIG to the right executable path. Read the documentation at http://llvmlite.pydata.org/ for more information about building llvmlite.

error: command '/usr/bin/python' failed with exit status 1


Failed building wheel for llvmlite Running setup.py clean for llvmlite Failed to build llvmlite Installing collected packages: llvmlite, numba, audioread, resampy, scikit-learn, joblib, librosa Running setup.py install for llvmlite ... error Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;file='/tmp/pip-install-wnX_gp/llvmlite/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record /tmp/pip-record-EbjXKZ/install-record.txt --single-version-externally-managed --compile: running install running build got version from file /tmp/pip-install-wnX_gp/llvmlite/llvmlite/_version.py {'version': '0.23.0', 'full': 'a924507857937369bdeb795a0f2d0a85ee27a0c1'} running build_ext /usr/bin/python /tmp/pip-install-wnX_gp/llvmlite/ffi/build.py LLVM version... 3.8.0

Traceback (most recent call last):
  File "/tmp/pip-install-wnX_gp/llvmlite/ffi/build.py", line 143, in <module>
    main()
  File "/tmp/pip-install-wnX_gp/llvmlite/ffi/build.py", line 133, in main
    main_posix('linux', '.so')
  File "/tmp/pip-install-wnX_gp/llvmlite/ffi/build.py", line 105, in main_posix
    raise RuntimeError(msg)
RuntimeError: Building llvmlite requires LLVM 6.0.x. Be sure to set LLVM_CONFIG to the right executable path.
Read the documentation at http://llvmlite.pydata.org/ for more information about building llvmlite.

error: command '/usr/bin/python' failed with exit status 1

`

stuartarchibald commented 6 years ago

Thanks for the report. llvmlite as of version v0.23 needs LLVM 6.0.x, which is the root cause of the runtime error reported:

RuntimeError: Building llvmlite requires LLVM 6.0.x. Be sure to set LLVM_CONFIG to the right executable path.

with that present llvmlite should build fine. IIRC llvmlite has worked fine on all ARM chips we've tried. If the end goal is to build Numba, this is the issue tracker for Numba on ARM https://github.com/numba/numba/pull/1968.

seibert commented 6 years ago

There is no wheel standard for ARM chips, but I have posted a very unofficial (and not frequently updated) fork of Berryconda for the Jetson TX2:

https://github.com/seibert/jetconda/releases/tag/v1.0.0-tx2

Numba 0.37 is the latest one in the jetson-tx2 channel.

Cat-31 commented 6 years ago

Use a usb disk, need 32G free space, compile the LLVM 6.0.x on TX2, after compile finished, set LLVM_CONFIG , then pip install ...

llvmlite numba and librosa will be successfully installed

stuartarchibald commented 6 years ago

As noted by @Cat-31 manual install should be fine.

FWIW I think we are only a minor bug in the Jetconda builds away from being able to ship a conda package, the build completes on the Numba build farm, there's just a minor issue with the upload sequence that needs fixing.

saquibntt commented 6 years ago

@Cat-31 has it worked this way or its just your suggestion? Why to use a USB when jetson has enough memory.

Cat-31 commented 6 years ago

@saquibntt it worked on my tx2.

Using USB is just a suggestion to ensure enough storage space. After LLVM building finished, 26.9G of space will be used.

seibert commented 6 years ago

yeah, we are considering adding a SATA SSD to our Jetson TX2 build/test system because of the space limitations with the built-in flash storage.