!5 [Feat] Add batch inference feature and optimizer model

From: @liuf9 
Reviewed-by: @wumingchuan 
Signed-off-by: @wumingchuan
This commit is contained in:
openeuler-ci-bot 2024-06-22 07:08:03 +00:00 committed by Gitee
commit 161ca20621
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
2 changed files with 1101 additions and 40 deletions

File diff suppressed because it is too large Load Diff

101
AI4C.spec
View File

@ -1,12 +1,29 @@
Summary: %{name}-v%{version}-alpha is a framework which enables compilers compilers to integrate ML-driven compiler optimization. %global pkg_version %{name}-v%{version}-alpha
%global build_dir %{_builddir}/%{pkg_version}
%global build_dir_dep %{build_dir}/third_party
%global build_dir_frm %{build_dir}/aiframe
%global build_dir_model %{build_dir}/models
%global build_libdir %{build_dir_frm}/lib64
%global build_includedir %{build_dir_frm}/include
%global install_libdir %{buildroot}%{_libdir}
%global install_includedir %{buildroot}%{_includedir}
%global install_dir_model %{install_libdir}/%{name}
%global max_jobs 8
Summary: %{name} is a framework which enables compilers compilers to integrate ML-driven compiler optimization.
Name: AI4C Name: AI4C
Version: 0.1.0 Version: 0.1.0
Release: 1 Release: 2
# onnxruntime and SafeInt are MIT # Package onnxruntime and SafeInt have MIT License.
# onnx is Apache License 2.0 # Package onnx has Apache License 2.0.
License: MIT and ASL 2.0 and Boost and BSD License: MIT and ASL 2.0 and Boost and BSD
URL: https://gitee.com/openeuler/AI4C URL: https://gitee.com/openeuler/AI4C
Source0: %{name}-v%{version}-alpha.tar.gz Source0: %{pkg_version}.tar.gz
Patch1: 0001-Add-batch-inference-feature-and-optimizer-model.patch
BuildRequires: cmake >= 3.13 BuildRequires: cmake >= 3.13
BuildRequires: make BuildRequires: make
@ -24,26 +41,28 @@ BuildRequires: openssl-devel
%description %description
%{name}-v%{version}-alpha is a framework which enables compilers compilers to integrate ML-driven compiler optimization. %{name} is a framework which enables compilers compilers to integrate ML-driven compiler optimization.
%prep %prep
tar -xzf %{SOURCE0} -C . tar -xzf %{SOURCE0} -C .
%autosetup -S git -n %{pkg_version}
%build %build
## construct cmake # Construct dependency package `cmake`
cd %{_builddir}/%{name}-v%{version}-alpha/third_party/cmake-3.28.5 cd %{build_dir_dep}/cmake-3.28.5
mkdir build mkdir build
cd build cd build
cmake .. -DCMAKE_INSTALL_PREFIX=./install cmake .. -DCMAKE_INSTALL_PREFIX=./install
make install make install -j %{max_jobs}
# Broken test in aarch64 # Broken test in aarch64 architecture.
cd %{_builddir}/%{name}-v%{version}-alpha/third_party/onnxruntime-1.16.3 cd %{build_dir_dep}/onnxruntime-1.16.3
%ifarch aarch64 %ifarch aarch64
rm -v onnxruntime/test/optimizer/nhwc_transformer_test.cc rm -v onnxruntime/test/optimizer/nhwc_transformer_test.cc
%endif %endif
%{_builddir}/%{name}-v%{version}-alpha/third_party/cmake-3.28.5/build/install/bin/cmake \ %{build_dir_dep}/cmake-3.28.5/build/install/bin/cmake \
-DCMAKE_INSTALL_LIBDIR=%{_lib} \ -DCMAKE_INSTALL_LIBDIR=%{_lib} \
-DCMAKE_INSTALL_INCLUDEDIR=include \ -DCMAKE_INSTALL_INCLUDEDIR=include \
-Donnxruntime_BUILD_SHARED_LIB=ON \ -Donnxruntime_BUILD_SHARED_LIB=ON \
@ -58,46 +77,48 @@ rm -v onnxruntime/test/optimizer/nhwc_transformer_test.cc
-Donnxruntime_ENABLE_PYTHON=ON \ -Donnxruntime_ENABLE_PYTHON=ON \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
-S cmake -S cmake
make make -j %{max_jobs}
mkdir -p %{_builddir}/%{name}-v%{version}-alpha/aiframe/lib64/ mkdir -p %{build_libdir}
cd %{_builddir}/%{name}-v%{version}-alpha/third_party/onnxruntime-1.16.3 cd %{build_dir_dep}/onnxruntime-1.16.3
cp libonnxruntime.so.1.16.3 %{_builddir}/%{name}-v%{version}-alpha/aiframe/lib64/ cp libonnxruntime.so.1.16.3 %{build_libdir}
cp libonnxruntime.so %{_builddir}/%{name}-v%{version}-alpha/aiframe/lib64/ cp libonnxruntime.so %{build_libdir}
cp include/onnxruntime/core/session/onnxruntime_c_api.h %{_builddir}/%{name}-v%{version}-alpha/aiframe/include/ cp include/onnxruntime/core/session/onnxruntime_c_api.h %{build_includedir}
cp include/onnxruntime/core/session/onnxruntime_cxx_api.h %{_builddir}/%{name}-v%{version}-alpha/aiframe/include/ cp include/onnxruntime/core/session/onnxruntime_cxx_api.h %{build_includedir}
cp include/onnxruntime/core/session/onnxruntime_cxx_inline.h %{_builddir}/%{name}-v%{version}-alpha/aiframe/include/ cp include/onnxruntime/core/session/onnxruntime_cxx_inline.h %{build_includedir}
cp include/onnxruntime/core/session/onnxruntime_float16.h %{_builddir}/%{name}-v%{version}-alpha/aiframe/include/ cp include/onnxruntime/core/session/onnxruntime_float16.h %{build_includedir}
cp include/onnxruntime/core/session/onnxruntime_run_options_config_keys.h %{_builddir}/%{name}-v%{version}-alpha/aiframe/include/ cp include/onnxruntime/core/session/onnxruntime_run_options_config_keys.h %{build_includedir}
cp include/onnxruntime/core/session/onnxruntime_session_options_config_keys.h %{_builddir}/%{name}-v%{version}-alpha/aiframe/include/ cp include/onnxruntime/core/session/onnxruntime_session_options_config_keys.h %{build_includedir}
cp include/onnxruntime/core/providers/cpu/cpu_provider_factory.h %{_builddir}/%{name}-v%{version}-alpha/aiframe/include/ cp include/onnxruntime/core/providers/cpu/cpu_provider_factory.h %{build_includedir}
cp include/onnxruntime/core/session/onnxruntime_lite_custom_op.h %{_builddir}/%{name}-v%{version}-alpha/aiframe/include/ cp include/onnxruntime/core/session/onnxruntime_lite_custom_op.h %{build_includedir}
cp include/onnxruntime/core/framework/provider_options.h %{_builddir}/%{name}-v%{version}-alpha/aiframe/include/ cp include/onnxruntime/core/framework/provider_options.h %{build_includedir}
cp orttraining/orttraining/training_api/include/onnxruntime_training_cxx_api.h %{_builddir}/%{name}-v%{version}-alpha/aiframe/include/ cp orttraining/orttraining/training_api/include/onnxruntime_training_cxx_api.h %{build_includedir}
cp orttraining/orttraining/training_api/include/onnxruntime_training_cxx_inline.h %{_builddir}/%{name}-v%{version}-alpha/aiframe/include/ cp orttraining/orttraining/training_api/include/onnxruntime_training_cxx_inline.h %{build_includedir}
cp orttraining/orttraining/training_api/include/onnxruntime_training_c_api.h %{_builddir}/%{name}-v%{version}-alpha/aiframe/include/ cp orttraining/orttraining/training_api/include/onnxruntime_training_c_api.h %{build_includedir}
## construct ONNXRunner.so # Construct AI4C library `libONNXRunner.so`.
cd %{_builddir}/%{name}-v%{version}-alpha/aiframe cd %{build_dir_frm}
cmake . cmake .
make make -j %{max_jobs}
mv ./libONNXRunner.so ./lib64 mv libONNXRunner.so %{build_libdir}
%install %install
mkdir -p %{buildroot}%{_libdir} install -d %{install_dir_model}
cp %{_builddir}/%{name}-v%{version}-alpha/models/* %{buildroot}%{_libdir}/ install %{build_dir_model}/* %{install_dir_model}
install %{build_libdir}/* %{install_libdir}
install -d %{install_includedir}
install %{build_includedir}/* %{install_includedir}
cp %{_builddir}/%{name}-v%{version}-alpha/aiframe/lib64/* %{buildroot}%{_libdir}/
mkdir -p %{buildroot}%{_includedir}
cp %{_builddir}/%{name}-v%{version}-alpha/aiframe/include/* %{buildroot}%{_includedir}
%files %files
#%license LICENSE
#%doc ThirdPartyNotices.txt
%{_libdir}/* %{_libdir}/*
%{_includedir}/* %{_includedir}/*
%changelog %changelog
* Fri Jun 21 2024 Feiyang Liu <liufeiyang6@huaewei.com> - 0.1.0-2
- Add batch inference feature and optimizer model
* Wed Jun 5 2024 Zhenyu Zhao <zhaozhenyu17@huaewei.com> - 0.1.0-1 * Wed Jun 5 2024 Zhenyu Zhao <zhaozhenyu17@huaewei.com> - 0.1.0-1
- Release 0.1.0 - Release 0.1.0