blob: bf687d687bc902eb9478a133e8788338debc5a70 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
#!/bin/bash
set -ex
sudo apt -q=2 update
sudo apt -q=2 install -y --no-install-recommends build-essential scons cmake git autoconf curl libtool libpthread-stubs0-dev
sudo apt -q=2 install -y --no-install-recommends vim-common
# Set local configuration
git config --global user.email "ci_notify@linaro.org"
git config --global user.name "Linaro CI"
git clone --depth 1 https://github.com/Arm-software/ComputeLibrary.git
git clone https://github.com/Arm-software/armnn
git clone --depth 1 -b v3.5.0 https://github.com/google/protobuf.git
git clone --depth 1 https://github.com/tensorflow/tensorflow.git --branch v1.14.0 --single-branch
git clone --depth 1 https://github.com/google/flatbuffers.git --branch v1.11.0 --single-branch
wget -q https://dl.bintray.com/boostorg/release/1.64.0/source/boost_1_64_0.tar.bz2 && tar xf boost_*.tar.bz2
if [ -n "$GERRIT_PROJECT" ] && [ $GERRIT_EVENT_TYPE == "patchset-created" ]; then
cd armnn
GERRIT_URL="http://${GERRIT_HOST}/${GERRIT_PROJECT}"
if git pull ${GERRIT_URL} ${GERRIT_REFSPEC} | grep -q "Automatic merge failed"; then
git reset --hard
echo "Retrying to apply the patch with: git fetch && git checkout."
if ! { git fetch ${GERRIT_URL} ${GERRIT_REFSPEC} | git checkout FETCH_HEAD; }; then
git reset --hard
echo "Error: *** Error patch merge failed"
exit 1
fi
fi
fi
cd ${WORKSPACE}/ComputeLibrary
#need to add if loops for opencl=1 embed_kernels=1 and neon=1
scons -u -j$(nproc) arch=arm64-v8a extra_cxx_flags="-fPIC" benchmark_tests=1 validation_tests=1 embed_kernels=1
#build Boost
cd ${WORKSPACE}/boost_1_64_0
./bootstrap.sh
./b2 \
--build-dir=${WORKSPACE}/boost_1_64_0/build toolset=gcc link=static cxxflags=-fPIC \
--with-filesystem \
--with-test \
--with-log \
--with-program_options install --prefix=${WORKSPACE}/boost
#build Protobuf
cd ${WORKSPACE}/protobuf
git submodule update --init --recursive
./autogen.sh
./configure --prefix=${WORKSPACE}/protobuf-host
make -j$(nproc)
make install
#generate tensorflow protobuf library
cd ${WORKSPACE}/tensorflow
${WORKSPACE}/armnn/scripts/generate_tensorflow_protobuf.sh \
${WORKSPACE}/tensorflow-protobuf \
${WORKSPACE}/protobuf-host
#build google flatbuffer libraries
cd ${WORKSPACE}/flatbuffers
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release
make -j$(nproc)
#Build Arm NN
cd ${WORKSPACE}/armnn
mkdir build
cd build
cmake .. \
-DARMCOMPUTE_ROOT=${WORKSPACE}/ComputeLibrary \
-DARMCOMPUTE_BUILD_DIR=${WORKSPACE}/ComputeLibrary/build \
-DBOOST_ROOT=${WORKSPACE}/boost \
-DTF_GENERATED_SOURCES=${WORKSPACE}/tensorflow-protobuf \
-DBUILD_TF_PARSER=1 \
-DPROTOBUF_ROOT=${WORKSPACE}/protobuf-host \
-DBUILD_TF_LITE_PARSER=1 \
-DARMNNREF=1 \
-DBUILD_TESTS=1 -DBUILD_UNIT_TESTS=1 \
-DTF_LITE_GENERATED_PATH=${WORKSPACE}/tensorflow/tensorflow/lite/schema \
-DFLATBUFFERS_ROOT=${WORKSPACE}/flatbuffers \
-DFLATBUFFERS_LIBRARY=${WORKSPACE}/flatbuffers/libflatbuffers.a
make -j$(nproc)
cd ${WORKSPACE}
rm -rf boost_*.tar.bz2 boost_* protobuf tensorflow
find ${WORKSPACE} -type f -name *.o -delete
tar -cJf /tmp/armnn.tar.xz ${WORKSPACE}
mkdir ${WORKSPACE}/out
mv /tmp/armnn.tar.xz ${WORKSPACE}/out
cd ${WORKSPACE}/out && sha256sum > SHA256SUMS.txt
|