You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Update the Build PaddlePaddle for Raspberry Pi document (#5177)
* Add cross_compiling_for_raspberry.md
* Update cross_compiling for raspberry pi document
* Some minor edits
* In response to comments from Kavya
* Add the _en suffix
CMake[支持交叉编译](https://cmake.org/cmake/help/v3.0/manual/cmake-toolchains.7.html#cross-compiling)。PaddlePaddle for Raspberry Pi的配置信息在[cmake/cross_compiling/raspberry_pi.cmake](https://github.com/PaddlePaddle/Paddle/blob/develop/cmake/cross_compiling/raspberry_pi.cmake)。
You may use any of the following two approaches to build the inference library of PaddlePaddle for Raspberry Pi:
4
+
5
+
1. Build using SSH: Log in to a Raspberry Pi using SSH and build the library. The required development tools and third-party dependencies are listed in here: [`/Dockerfile`](https://github.com/PaddlePaddle/Paddle/blob/develop/Dockerfile).
6
+
7
+
1. Cross-compile: We talk about how to cross-compile PaddlePaddle for Raspberry Pi on a Linux/x64 machine, in more detail in this article.
8
+
9
+
## The Cross-Compiling Toolchain
10
+
11
+
Step 1. Clone the Github repo by running the following command.
Step 2. Use the pre-built cross-compiler found in `./tools/tree/master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64`. To run it on a Linux computer, glibc version >= 2.14 is needed.
18
+
19
+
## CMake Arguments
20
+
21
+
CMake supports [cross-compiling](https://cmake.org/cmake/help/v3.0/manual/cmake-toolchains.7.html#cross-compiling). All CMake configuration arguments required for the cross-compilation for Raspberry Pi can be found in [`cmake/cross_compiling/raspberry_pi.cmake`](https://github.com/PaddlePaddle/Paddle/blob/develop/cmake/cross_compiling/raspberry_pi.cmake).
22
+
23
+
Some important arguments that need to be set:
24
+
25
+
-`CMAKE_SYSTEM_NAME`: The target platform. Must be `RPi`.
26
+
27
+
-`RPI_TOOLCHAIN`: The absolute path of the cross-compiling toolchain.
28
+
29
+
-`RPI_ARM_NEON`: Use ARM NEON Intrinsics. This is a required argument and set default to `ON`.
30
+
31
+
-`HOST_C/CXX_COMPILER`: The C/C++ compiler for the host. It is used to build building tools running on the host, for example, protoc.
32
+
33
+
A commonly-used CMake configuration is as follows:
To build the inference library, please set the argument WITH_API to ON: `WITH_C_API=ON`.
48
+
49
+
You can add more arguments. For example, to minimize the size of the generated inference library, you may use `CMAKE_BUILD_TYPE=MinSizeRel`. For performance optimization, you may use `CMAKE_BUILD_TYPE=Release`.
50
+
51
+
## Build and Install
52
+
53
+
The following commands build the inference library of PaddlePaddle for Raspberry Pi and third-party dependencies.
54
+
55
+
```bash
56
+
make
57
+
make install
58
+
```
59
+
60
+
The intermediate files will be stored in `build`. Third-party libraries will be located in `build/third_party`. If you have already built it for other platforms like Android or iOS, you may want to clear these directories by running the command: `rm -rf build`.
61
+
62
+
The infernece library will be in `your/path/to/install/lib`, with related header files in `your/path/to/install/include`.
0 commit comments