blob: 36d764991968a9f62989f57320320cbc90bf5573 (
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
%global pkg_version %{name}-v%{version}-alpha
%global build_dir %{_builddir}/%{pkg_version}
%global install_libdir %{buildroot}%{_libdir}
%global install_includedir %{buildroot}%{_includedir}/annc
%global max_jobs 8
%define debug_package %{nil}
Summary: %{name} is an AI compiler designed to optimize and compile ML model into high-performance executable code that can be executed on various targets.
Name: ANNC
Version: 0.0.1
Release: 1
# Package onnxruntime and SafeInt have MIT License.
# Package onnx has Apache License 2.0.
License: MIT and ASL 2.0 and Boost and BSD
URL: https://gitee.com/openeuler/AI4C
Source0: %{pkg_version}.tar.gz
Source1: annc_external.tar.gz.aa
Source2: annc_external.tar.gz.ab
Source3: annc_external.tar.gz.ac
%ifarch x86_64
Patch0: x86_64_external_files.patch
%endif
BuildRequires: cmake >= 3.9.9
BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: bzip2
BuildRequires: python3-devel
BuildRequires: python3-numpy
BuildRequires: python3-setuptools
BuildRequires: python3-pip
BuildRequires: python3-wheel
BuildRequires: libstdc++-static
BuildRequires: git
BuildRequires: java-11-openjdk
BuildRequires: java-11-openjdk-devel
BuildRequires: bazel
%description
%{name} is is an AI compiler designed to optimize and compile ML model into high-performance executable code that can be executed on various targets.
%prep
%setup -n %{pkg_version}
cat %{SOURCE1} %{SOURCE2} %{SOURCE3} > annc_external.tar.gz
tar -xzf annc_external.tar.gz -C %{_builddir}
%ifarch x86_64
%patch 0 -p1 -d %{_builddir}
%endif
%build
cd %{build_dir}
run_bazel_build() {
bazel --output_user_root=./output \
build -c opt --copt="-DANNC_ENABLED_GRAPH_OPT" \
--copt="-DANNC_ENABLED_OPENBLAS" \
--copt="-g" \
--copt="-DNDBUG" \
--jobs=%{max_jobs} \
annc/service/cpu:libannc.so
}
fix_action() {
echo "Perfoming fix action..."
external_path=$(find . -name "external" | head -n 1)
if [ -n "$external_path" ]; then
rm -rf $external_path/*
cp -r %{_builddir}/external/* $external_path
else
echo "Not find external directory."
fi
run_bazel_build
}
if run_bazel_build; then
echo "Build succeeded."
else
echo "Build failed."
fix_action
fi
pushd %{build_dir}/python
%{__python3} setup.py bdist_wheel
%install
install -d %{install_includedir}
install %{build_dir}/annc/service/cpu/kdnn_rewriter.h -t %{install_includedir}
install %{build_dir}/install/*.patch -t %{install_includedir}
install %{build_dir}/python/tensorflow/kernels/* -t %{install_includedir}
install -d %{install_libdir}
output_path=$(find %{build_dir} -type f -name "libannc.so")
install ${output_path} -t %{install_libdir}
pushd %{build_dir}/python
%py3_install
%files
%{_includedir}/annc/*
%{_libdir}/*
%{python3_sitelib}/*
/usr/bin/annc-opt
/usr/bin/annc-apply-tf
%changelog
* Mon May 12 2025 Chenhui Zheng <zhengchenhui1@huawei.com> - 0.0.1-1
- Type:Init
- ID:NA
- SUG:NA
- DEC:Init ANNC repository
|