Skip to content
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

Wheel does not work on Raspbian Bullseye #4

Open
mightyroy opened this issue Mar 25, 2022 · 12 comments
Open

Wheel does not work on Raspbian Bullseye #4

mightyroy opened this issue Mar 25, 2022 · 12 comments

Comments

@mightyroy
Copy link

mightyroy commented Mar 25, 2022

image

How can I fix this?

@Qengineering
Copy link
Owner

@mightyroy,

Do you have a 32 or 64 bit Bullseye? $ uname -a
I've made the wheel for the 64 bit version.

@maolele02
Copy link

20220714181210
20220714181317
How can I fix?

@Qengineering
Copy link
Owner

Try: $ sudo apt-get install libopenmpi3

@windowshopr
Copy link

Yeah I'm having the same issue. I did the sudo apt-get install libopenmpi3 as well.

image

Would be cool to figure this out. This is on a RPi4b.

@Qengineering
Copy link
Owner

@windowshopr,

Did you follow the instructions at https://qengineering.eu/install-pytorch-on-raspberry-pi-4.html before using the wheel?
In other words

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install python3-pip libjpeg-dev libopenblas-dev libopenmpi-dev libomp-dev
$ sudo -H pip3 install setuptools==58.3.0
$ sudo -H pip3 install Cython

@windowshopr
Copy link

Can confirm. I followed those steps, but still get that error :( I also used pip install Cython setuptools==58.3.0 in addition to sudo -H pip3 install setuptools==58.3.0 and sudo -H pip3 install Cython as one of the output'd messages gave a warning about running pip as root and can result in broken permissions, so I just wanted to be sure. They were ran successfully twice, which makes me think things get installed in 2 different places on the machine depending on which command you use. I just default to using pip. But anyway, still no go.

@windowshopr
Copy link

One thing to point out, and maybe this is my issue now that I'm seeing it, is that I'm running Python 3.10.5, but trying to use the wheel for 3.9 as it was the most recent one. Could that be it? Would be cool to see a wheel for 3.10 if so.

@Qengineering
Copy link
Owner

@windowshopr,

I think the best (and shortest) solution is to build PyTorch on your machine from scratch. This way you ensure that the installation matches your operating system. It takes a few hours. See https://qengineering.eu/install-pytorch-on-raspberry-pi-4.html for instructions.

@windowshopr
Copy link

windowshopr commented Aug 5, 2022

@Qengineering Good suggestion, I'll do that and report my findings back.

EDIT

Though I see those instructions are only for arch64, not arm71 like my pi is. I found an article here, and repo here for installing torch on arm devices that I'll follow.

@windowshopr
Copy link

Here's my latest update. The previous articles/repos were only for Fedora, which doesn't help in my Raspbian case.

I instead found this repo and ran these commands in order. Not sure if the first command is needed, I had already run it from the previous article, but it was done anyway.

These were done after researching different steps at different times, from different sources, which I won't source here to keep things simple, but if things seem out of place or "why did he do that?", don't mind, just documenting the steps as I go.

sudo apt install qemu-system-arm qemu-user-static virt-manager

sudo apt update && sudo apt upgrade

git clone https://github.com/ljk53/pytorch-rpi.git

cd pytorch-rpi

MAX_JOBS=2 LIBTORCH_VARIANT=aarch64-cxx11-abi-shared-without-deps ./build_libtorch.sh

Ran into the error:

/tmp/cc0imd8P.s:186: Error: selected processor does not support `vsdot.s8 q10,q12,d7[1]' in ARM mode
ninja: build stopped: subcommand failed.

Which is likely because I was trying to use the aarch64 file on an arm device (D'OH!). So I re-ran a new command:

MAX_JOBS=2 LIBTORCH_VARIANT=armv7l-cxx11-abi-shared-without-deps ./build_libtorch.sh

Same error as above.

Found a potential solution here, so downloaded that tar file from there, transferred it to the Pi, and continued with:

tar -xvzf cross-gcc-10.3.0-pi_64.tar.gz

sudo apt update && sudo apt dist-upgrade

sudo apt-get install build-essential gawk gcc g++ gfortran git texinfo bison libncurses-dev -y

PATH=/cross-pi-gcc-10.3.0-64/bin:$PATH

LD_LIBRARY_PATH=/cross-pi-gcc-10.3.0-64/lib:$LD_LIBRARY_PATH

wget https://raw.githubusercontent.com/abhiTronix/raspberry-pi-cross-compilers/master/utils/SSymlinker

sudo chmod +x SSymlinker
./SSymlinker -s /usr/include/arm-linux-gnueabihf/asm -d /usr/include
./SSymlinker -s /usr/include/arm-linux-gnueabihf/gnu -d /usr/include
./SSymlinker -s /usr/include/arm-linux-gnueabihf/bits -d /usr/include
./SSymlinker -s /usr/include/arm-linux-gnueabihf/sys -d /usr/include
./SSymlinker -s /usr/include/arm-linux-gnueabihf/openssl -d /usr/include
./SSymlinker -s /usr/lib/arm-linux-gnueabihf/crtn.o -d /usr/lib/crtn.o
./SSymlinker -s /usr/lib/arm-linux-gnueabihf/crt1.o -d /usr/lib/crt1.o
./SSymlinker -s /usr/lib/arm-linux-gnueabihf/crti.o -d /usr/lib/crti.o

Then tried to re-run the aarch64 command just to see...

MAX_JOBS=2 LIBTORCH_VARIANT=aarch64-cxx11-abi-shared-without-deps ./build_libtorch.sh

I also tried re-running the arm command:

MAX_JOBS=2 LIBTORCH_VARIANT=armv7l-cxx11-abi-shared-without-deps ./build_libtorch.sh

Same error. So something is up with the compiler. And I have run out of patience lol so if anyone figures out how to get Torch installed on an RPi4 Bullseye 11 Arm64, post the instructions!

@Qengineering
Copy link
Owner

I'm not sure if it helps, but the `vsdot.s8 q10,q12,d7[1]' error seems to be a GCC compiler issue.
I always use the Clang compiler for PyTorch. Never GCC as it gives many unpredictable errors.

@windowshopr
Copy link

Hmm. I’ll give that a shot next time I’m at it and see what I can do. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants