ARM support¶
Open3D provides experimental support for 64-bit ARM architecture (arm64
or aarch64
) on Linux. Open3D needs to be compiled from source to run on ARM.
System requirements¶
64-bit ARM processor and 64-bit Linux operating system. Check the output of
uname -p
and it should showaarch64
.Full OpenGL (not OpenGL ES) is needed for Open3D GUI. If OpenGL is not available, the Open3D GUI will compile but it won’t run. In this case, we recommend setting
-DBUILD_GUI=OFF
during thecmake
configuration step.
Building Open3D on ARM64¶
Note: If you encounter build issues, check the arm64
section of
.github/workflows/openblas.yml
for the full CI build scripts on ARM64.
Install dependencies¶
Install the following system dependencies:
sudo apt-get update -y
sudo apt-get install -y apt-utils build-essential git cmake
sudo apt-get install -y python3 python3-dev python3-pip
sudo apt-get install -y xorg-dev libglu1-mesa-dev
sudo apt-get install -y libblas-dev liblapack-dev liblapacke-dev
sudo apt-get install -y libsdl2-dev libc++-7-dev libc++abi-7-dev libxi-dev
sudo apt-get install -y clang-7
Optionally, virtualenv
and ccache
are recommended. Note that conda does
not support ARM.
sudo apt-get install -y python3-virtualenv ccache
If the Open3D build system complains about CMake xxx or higher is required
,
refer to one of the following options:
Install with
snap
:sudo snap install cmake --classic
Install with
pip
(run inside a Python virtual environment):pip install cmake
Build¶
# Optional: create and activate virtual environment
virtualenv --python=$(which python3) ${HOME}/venv
source ${HOME}/venv/bin/activate
# Clone
git clone --recursive https://github.com/intel-isl/Open3D
cd Open3D
git submodule update --init --recursive
mkdir build
cd build
# Configure
# > Set -DBUILD_CUDA_MODULE=ON if CUDA is available (e.g. on Nvidia Jetson)
# > Set -DBUILD_GUI=ON if OpenGL is available (e.g. on Nvidia Jetson)
# > We don't support TensorFlow and PyTorch on ARM officially
cmake \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=ON \
-DBUILD_CUDA_MODULE=OFF \
-DBUILD_GUI=OFF \
-DBUILD_TENSORFLOW_OPS=OFF \
-DBUILD_PYTORCH_OPS=OFF \
-DBUILD_UNIT_TESTS=ON \
-DCMAKE_INSTALL_PREFIX=~/open3d_install \
-DPYTHON_EXECUTABLE=$(which python) \
..
# Build C++ library
make -j$(nproc)
# Run tests (optional)
make tests -j$(nproc)
./bin/tests --gtest_filter="-*Reduce*Sum*"
# Install C++ package (optional)
make install
# Install Open3D python package (optional)
make install-pip-package -j$(nproc)
python -c "import open3d; print(open3d)"
# Run Open3D GUI (optional, available on when -DBUILD_GUI=ON)
./bin/Open3D/Open3D
Nvidia Jetson¶
Nvidia Jetson computers with 64-bit processor and OS are supported. You can
compile Open3D with -DBUILD_CUDA_MODULE=ON
and -DBUILD_GUI=ON
and
the Open3D GUI app should be functional. We support CUDA v10.x, but other
versions should work as well.
Raspberry Pi 4¶
Raspberry Pi 4 has 64-bit processor and supports OpenGL ES (not OpenGL).
To build Open3D on Raspberry Pi 4, compile with -DBUILD_GUI=OFF
.