mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-20 21:14:14 +08:00
Summary: Closes https://github.com/caffe2/caffe2/pull/1496 Reviewed By: pietern Differential Revision: D6379743 Pulled By: bddppq fbshipit-source-id: 1cb2238e5708547767729de3ac1d3e1a76ed5ba1
129 lines
4.0 KiB
Bash
Executable File
129 lines
4.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
##############################################################################
|
|
# Example command to build the Tizen target (RPi3).
|
|
##############################################################################
|
|
#
|
|
# This script shows how one can build a Caffe2 binary for a Tizen device (RPi3).
|
|
# The build is essentially much similar to a host build, with one additional change
|
|
# which is to specify -mfpu=neon for optimized speed.
|
|
|
|
setup_environment(){
|
|
# The rootfs image for a Tizen target (RPi3)is located at the below webpage:
|
|
# http://download.tizen.org/releases/milestone/tizen/4.0.m1/tizen-unified_20170529.1/images/
|
|
# If you do not have a Tizen device, Please, run qemu-arm-static and chroot command.
|
|
# $ sudo chroot ~/tizen-rootfs qemu-arm-static /usr/bin/bash
|
|
|
|
CAFFE2_ROOT="$( cd "$(dirname -- "$0")"/.. ; pwd -P)"
|
|
echo "Caffe2 codebase root is: $CAFFE2_ROOT"
|
|
BUILD_ROOT=${BUILD_ROOT:-"$CAFFE2_ROOT/build"}
|
|
mkdir -p $BUILD_ROOT
|
|
echo "Build Caffe2 Tizen into: $BUILD_ROOT"
|
|
}
|
|
|
|
caffe2_lite_dep_packages(){
|
|
# Obtain necessary dependencies
|
|
# You can set-up a rpm repository with zypper, yum, and dnf because Tizen
|
|
# software platform officially support rpm format such as Fedora, OpenSUSE.
|
|
# The official Tizen repository is as following:
|
|
# http://download.tizen.org/releases/milestone/tizen/4.0.m1/
|
|
echo "Installing dependencies."
|
|
sudo zypper install \
|
|
make \
|
|
strace \
|
|
cmake \
|
|
gcc* \
|
|
binutils \
|
|
glibc* \
|
|
cpp \
|
|
protobuf-devel \
|
|
libstdc++*
|
|
}
|
|
|
|
caffe2_lite_build(){
|
|
# Now, actually build the android target.
|
|
echo "Building caffe2"
|
|
cd $BUILD_ROOT
|
|
|
|
# Note: add more dependencies above if you need libraries such as leveldb, lmdb, etc.
|
|
# If you have to disable a specific package due to a package absence
|
|
# from https://git.tizen.org/cgit/, append -Dxxx_xxx=OFF option before executing cmake.
|
|
cmake .. \
|
|
-DCMAKE_VERBOSE_MAKEFILE=1 \
|
|
-DUSE_GFLAGS=OFF \
|
|
-DUSE_GLOG=OFF -DUSE_NNPACK=OFF \
|
|
-DRUN_HAVE_STD_REGEX=0 \
|
|
-DRUN_HAVE_POSIX_REGEX=0 \
|
|
-DHAVE_GNU_POSIX_REGEX=0 \
|
|
-DUSE_MPI=OFF -DUSE_OPENMP=OFF \
|
|
-DUSE_ROCKSDB=OFF \
|
|
-DUSE_LEVELDB=OFF \
|
|
-DUSE_LMDB=OFF \
|
|
-DBUILD_PYTHON=OFF \
|
|
-DUSE_GLOO=OFF \
|
|
-DUSE_OPENCV=OFF \
|
|
-DCAFFE2_CPU_FLAGS="-mfpu=neon -mfloat-abi=soft" \
|
|
|| exit 1
|
|
|
|
make -j`nproc` || exit 1
|
|
}
|
|
|
|
caffe2_full_dep_packages(){
|
|
# Obtain necessary dependencies
|
|
# You can set-up a rpm repository with zypper, yum, and dnf because Tizen
|
|
# software platform officially support rpm format such as Fedora, OpenSUSE.
|
|
# The official Tizen repository is as following:
|
|
# http://download.tizen.org/releases/milestone/tizen/4.0.m1/
|
|
echo "Installing dependencies."
|
|
sudo zypper install \
|
|
cmake \
|
|
libgflags-dev \
|
|
libgoogle-glog-dev \
|
|
libprotobuf-dev \
|
|
protobuf-compiler
|
|
|
|
# Obtain optional dependencies that are usually useful to have.
|
|
echo "Installing optional dependencies."
|
|
sudo zypper install \
|
|
libleveldb-dev \
|
|
liblmdb-dev \
|
|
libpython-dev \
|
|
libsnappy-dev \
|
|
python-numpy \
|
|
python-pip \
|
|
python-protobuf
|
|
|
|
# Obtain python hypothesis, which Caffe2 uses for unit testing. Note that
|
|
# the one provided by zypper is quite old so we install it via pip
|
|
sudo pip install hypothesis
|
|
|
|
# Install the six module, which includes Python 2 and 3 compatibility utilities,
|
|
# and is required for Caffe2
|
|
sudo pip install six
|
|
}
|
|
|
|
caffe2_full_build(){
|
|
# Now, actually build the android target.
|
|
echo "Building caffe2"
|
|
cd $BUILD_ROOT
|
|
|
|
# Note: add more dependencies above if you need libraries such as leveldb, lmdb, etc.
|
|
# If you have to disable a specific package due to a package absence
|
|
# from https://git.tizen.org/cgit/, append -Dxxx_xxx=OFF option before executing cmake.
|
|
cmake "$CAFFE2_ROOT" \
|
|
-DCMAKE_VERBOSE_MAKEFILE=1 \
|
|
-DUSE_CUDA=OFF \
|
|
-DUSE_OPENCV=OFF \
|
|
-DUSE_LMDB=OFF \
|
|
-DCAFFE2_CPU_FLAGS="-mfpu=neon -mfloat-abi=soft" \
|
|
|| exit 1
|
|
|
|
make -j`nproc` || exit 1
|
|
}
|
|
|
|
#### Main
|
|
# Setup a build environment to compile Caffe2 deeplearning framework in Tizen platform.
|
|
setup_environment
|
|
# There are two build options to support 'full' version and 'lite' version (by default).
|
|
caffe2_lite_dep_packages
|
|
caffe2_lite_build
|