update performance report
[platform/upstream/caffeonacl.git] / acl_openailab / installation.md
1 # 1. User Quick Guide
2 [![License](https://img.shields.io/badge/license-BSD-blue.svg)](LICENSE)
3
4 This Installation will help you get started to setup CaffeOnACL on RK3399 quickly.
5
6 # 2. Preparation
7 ## 2.1 General dependencies installation
8         sudo apt-get -y update
9         sodo apt-get -y upgrade
10         sudo apt-get install -y build-essential pkg-config automake autoconf protobuf-compiler cmake cmake-gui
11         sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev
12         sudo apt-get install -y libatlas-base-dev libgflags-dev libgoogle-glog-dev liblmdb-dev libopenblas-dev
13         sudo apt-get install -y libopencv-dev python-dev
14         sudo apt-get install -y python-numpy python-scipy python-yaml python-six python-pip
15         sudo apt-get install -y scons git
16         sudo apt-get install -y --no-install-recommends libboost-all-dev
17         pip install --upgrade pip
18
19 ## 2.2 Download source code
20
21         cd ~
22
23 #### Download "ACL" (arm_compute :[v17.10](https://github.com/ARM-software/ComputeLibrary/tree/bf8b01dfbfdca124673ade33c5eac8f3748d7abd)):
24         git clone https://github.com/ARM-software/ComputeLibrary.git
25         git checkout bf8b01d
26 #### Download "CaffeOnACL" :
27         git clone https://github.com/OAID/CaffeOnACL.git
28 #### Download "Googletest" :
29         git clone https://github.com/google/googletest.git
30
31 # 3. Build CaffeOnACL
32 ## 3.1 Build ACL :
33         cd ~/ComputeLibrary
34     aarch64-linux-gnu-gcc opencl-1.2-stubs/opencl_stubs.c -Iinclude -shared -o build/libOpenCL.so
35         scons Werror=1 -j8 debug=0 asserts=1 neon=1 opencl=1 embed_kernels=1 os=linux arch=arm64-v8a
36
37 ## 3.2 Build Caffe :
38         export ACL_ROOT=~/ComputeLibrary
39         cd ~/CaffeOnACL
40         cp Makefile.config.acl Makefile.config
41         make all distribute
42
43 ## 3.3 Build Unit tests
44 ##### Build the gtest libraries
45         cd ~/googletest
46         cmake CMakeLists.txt
47         make
48         sudo make install
49
50 ##### Build Caffe Unit tests
51         export CAFFE_ROOT=~/CaffeOnACL
52         cd ~/CaffeOnACL/unit_tests
53         make clean
54         make
55
56 ## 3.4 To Configure The Libraries
57
58         sudo cp ~/ComputeLibrary/build/libarm_compute.so /usr/lib 
59         sudo cp ~/ComputeLibrary/build/libarm_compute_core.so /usr/lib 
60         sudo cp ~/CaffeOnACL/distribute/lib/libcaffe.so  /usr/lib
61
62 # 4. Run tests
63
64 #### 4.1 Run Caffenet
65         cd  ~/CaffeOnACL/data/ilsvrc12
66         sudo chmod +x get_ilsvrc_aux.sh
67         ./get_ilsvrc_aux.sh
68         cd ../..
69         ./scripts/download_model_binary.py ./models/bvlc_reference_caffenet
70         ./distribute/bin/classification.bin models/bvlc_reference_caffenet/deploy.prototxt models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel data/ilsvrc12/imagenet_mean.binaryproto data/ilsvrc12/synset_words.txt examples/images/cat.jpg
71         output message --
72           ---------- Prediction for examples/images/cat.jpg ----------
73           0.3094 - "n02124075 Egyptian cat"
74           0.1761 - "n02123159 tiger cat"
75           0.1221 - "n02123045 tabby, tabby cat"
76           0.1132 - "n02119022 red fox, Vulpes vulpes"
77           0.0421 - "n02085620 Chihuahua"
78
79 #### 4.2 Run Unit test
80           cd ~/CaffeOnACL/unit_tests
81           ./test_caffe_main
82           output message:
83             [==========] 29 tests from 6 test cases ran. (1236 ms total) [ PASSED ] 29 tests.