5 Summary: Arm Neural Networks library
6 Group: Machine Learning / ML Framework
7 Source0: %{name}-%{version}.tar.gz
8 Source1001: %{name}.manifest
9 ExclusiveArch: %arm aarch64
11 %define TF_LITE_SUPPORT 1
13 %define CAFFE_SUPPORT 0
14 %define OPEN_CL_SUPPORT 1
18 BuildRequires: libarmcl-devel
19 %if 0%{?TF_SUPPORT} == 1
20 BuildRequires: protobuf-devel
22 %if 0%{?TF_LITE_SUPPORT} == 1
23 BuildRequires: flatbuffers
26 BuildRequires: libicu-devel
27 BuildRequires: boost-atomic
28 BuildRequires: boost-chrono
29 BuildRequires: boost-date-time
30 BuildRequires: boost-filesystem
31 BuildRequires: boost-log
32 BuildRequires: boost-regex
33 BuildRequires: boost-devel
34 %if 0%{?TF_LITE_SUPPORT} == 1
35 BuildRequires: tensorflow-lite-devel
36 BuildRequires: tensorflow-lite-flatbuf-schema
40 Arm Neural Networks Library
43 Summary: Userspace interface to ARM Neural Network Library
44 Requires: %{name} = %{version}-%{release}
47 Summary: Userspace interface to ARM Neural Network Library
50 Summary: Sample application and benchmark binaries to test ARM Neural Network Library
51 Requires: %{name} = %{version}-%{release}
54 Summary: Sample application and benchmark binaries to test ARM Neural Network Library
63 #mkdir -p %{buildroot}/usr
64 #cp tensorflow/ %{buildroot}/usr -ar
66 #protoc tensorflow/core/framework/*.proto --cpp_out=.
67 #protoc tensorflow/core/protobuf/*.proto --cpp_out=.
68 #protoc tensorflow/core/lib/core/*.proto --cpp_out=.
72 cmake -DARMCOMPUTENEON=1 \
73 %if 0%{?OPEN_CL_SUPPORT} == 1
75 -DOPENCL_INCLUDE=/usr/include/arm_compute/core \
76 %endif # OPEN_CL_SUPPORT
78 -DCMAKE_SKIP_RPATH=1 \
79 %if 0%{?CAFFE_SUPPORT} == 1
80 -DBUILD_CAFFE_PARSER=1 \
81 -DCAFFE_GENERATED_SOURCES=/usr/include \
82 %endif # CAFFE_SUPPORT
83 %if 0%{?TF_LITE_SUPPORT} == 1
84 -DBUILD_TF_LITE_PARSER=1 \
85 -DTF_LITE_GENERATED_PATH=/usr/include/tensorflow/lite/schema \
86 -DTF_LITE_SCHEMA_PATH=/usr/share/tensorflow/lite/schema \
87 -DFLATBUFFERS_INCLUDE_PATH=/usr/include/ \
88 -DFLATC=/usr/bin/flatc \
89 %endif # TF_LITE_SUPPORT
91 -DARMCOMPUTE_CORE_LIBRARY_DEBUG=/usr/lib/libarm_compute_core.so \
92 -DARMCOMPUTE_CORE_LIBRARY_RELEASE=/usr/lib/libarm_compute_core.so \
93 -DARMCOMPUTE_LIBRARY_DEBUG=/usr/lib/libarm_compute.so \
94 -DARMCOMPUTE_LIBRARY_RELEASE=/usr/lib/libarm_compute.so
96 CPU_JOB_NUM=`grep processor /proc/cpuinfo | awk '{field=$NF};END{print field+1}'`
97 make -j ${CPU_JOB_NUM}
100 mkdir -p %{buildroot}%{_libdir}
101 mkdir -p %{buildroot}%{_libdir}/pkgconfig
102 mkdir -p %{buildroot}%{_bindir}/armnn
103 mkdir -p %{buildroot}%{_includedir}/armnn
104 mkdir -p %{buildroot}%{_includedir}/armnn/backends
105 mkdir -p %{buildroot}%{_includedir}/armnn/backends/profiling
106 mkdir -p %{buildroot}%{_includedir}/armnn/profiling
107 mkdir -p %{buildroot}%{_includedir}/armnn/utility
108 %if 0%{?CAFFE_SUPPORT} == 1
109 mkdir -p %{buildroot}%{_includedir}/armnnCaffeParser
110 %endif # CAFFE_SUPPORT
111 %if 0%{?TF_SUPPORT} == 1
112 mkdir -p %{buildroot}%{_includedir}/armnnTfParser
114 %if 0%{?TF_LITE_SUPPORT} == 1
115 mkdir -p %{buildroot}%{_includedir}/armnnTfLiteParser
116 %endif # TF_LITE_SUPPORT
118 install armnn.pc %{buildroot}%{_libdir}/pkgconfig/
120 install -m 0755 bin/*-Armnn %{buildroot}%{_bindir}/armnn/
121 install -m 0755 bin/ExecuteNetwork %{buildroot}%{_bindir}/armnn/
122 %if 0%{?CAFFE_SUPPORT} == 1
123 install -m 0755 bin/MultipleNetworksCifar10 %{buildroot}%{_bindir}/armnn/
124 %endif # CAFFE_SUPPORT
125 install -m 0755 UnitTests %{buildroot}%{_bindir}/armnn/
127 install -m 0644 lib*.so %{buildroot}%{_libdir}/
128 install -m 0644 include/armnn/*.hpp %{buildroot}%{_includedir}/armnn/
129 install -m 0644 include/armnn/backends/*.hpp %{buildroot}%{_includedir}/armnn/backends/
130 install -m 0644 include/armnn/backends/profiling/*.hpp %{buildroot}%{_includedir}/armnn/backends/profiling/
131 install -m 0644 include/armnn/profiling/*.hpp %{buildroot}%{_includedir}/armnn/profiling/
132 install -m 0644 include/armnn/utility/*.hpp %{buildroot}%{_includedir}/armnn/utility/
133 %if 0%{?CAFFE_SUPPORT} == 1
134 install -m 0644 include/armnnCaffeParser/* %{buildroot}%{_includedir}/armnnCaffeParser/
135 %endif # CAFFE_SUPPORT
136 %if 0%{?TF_SUPPORT} == 1
137 install -m 0644 include/armnnTfParser/* %{buildroot}%{_includedir}/armnnTfParser/
139 %if 0%{?TF_LITE_SUPPORT} == 1
140 install -m 0644 include/armnnTfLiteParser/* %{buildroot}%{_includedir}/armnnTfLiteParser/
141 %endif # TF_LITE_SUPPORT
143 %post -p /sbin/ldconfig
144 %postun -p /sbin/ldconfig
147 %manifest %{name}.manifest
151 %manifest %{name}.manifest
152 %{_libdir}/pkgconfig/armnn.pc
153 %{_includedir}/armnn/*
154 %if 0%{?TF_LITE_SUPPORT} == 1
155 %{_includedir}/armnnTfLiteParser/*
156 %endif # TF_LITE_SUPPORT
159 %manifest %{name}.manifest