PyTorch-Raspberry-Pi-64-OS icon indicating copy to clipboard operation
PyTorch-Raspberry-Pi-64-OS copied to clipboard

Wheel does not work on Raspbian Bullseye

Open mightyroy opened this issue 3 years ago • 12 comments

image

How can I fix this?

mightyroy avatar Mar 25 '22 03:03 mightyroy

@mightyroy,

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

Qengineering avatar Mar 25 '22 09:03 Qengineering

20220714181210 20220714181317 How can I fix?

maolele02 avatar Jul 14 '22 10:07 maolele02

Try: $ sudo apt-get install libopenmpi3

Qengineering avatar Jul 14 '22 18:07 Qengineering

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.

windowshopr avatar Aug 03 '22 21:08 windowshopr

@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

Qengineering avatar Aug 04 '22 07:08 Qengineering

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 avatar Aug 04 '22 23:08 windowshopr

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.

windowshopr avatar Aug 04 '22 23:08 windowshopr

@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.

Qengineering avatar Aug 05 '22 08:08 Qengineering

@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 avatar Aug 05 '22 20:08 windowshopr

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!

windowshopr avatar Aug 05 '22 22:08 windowshopr

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.

Qengineering avatar Aug 06 '22 07:08 Qengineering

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

windowshopr avatar Aug 06 '22 08:08 windowshopr