AI4C/AI4C.spec
zhenyu--zhao_admin 08a78af04f init the repo
(cherry picked from commit d0e9851a7d7218e42f03e81465969720578b82e4)
2024-06-05 11:20:57 +08:00

104 lines
4.2 KiB
RPMSpec

Summary: %{name}-v%{version}-alpha is a framework which enables compilers compilers to integrate ML-driven compiler optimization.
Name: AI4C
Version: 0.1.0
Release: 1
# onnxruntime and SafeInt are MIT
# onnx is Apache License 2.0
License: MIT and ASL 2.0 and Boost and BSD
URL: https://gitee.com/openeuler/AI4C
Source0: %{name}-v%{version}-alpha.tar.gz
BuildRequires: cmake >= 3.13
BuildRequires: make
BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: abseil-cpp-devel
BuildRequires: boost-devel >= 1.66
BuildRequires: bzip2
BuildRequires: python3-devel
BuildRequires: python3-numpy
BuildRequires: python3-setuptools
BuildRequires: python3-pip
BuildRequires: openssl
BuildRequires: openssl-devel
%description
%{name}-v%{version}-alpha is a framework which enables compilers compilers to integrate ML-driven compiler optimization.
%prep
tar -xzf %{SOURCE0} -C .
%build
## construct cmake
cd %{_builddir}/%{name}-v%{version}-alpha/third_party/cmake-3.28.5
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=./install
make install
# Broken test in aarch64
cd %{_builddir}/%{name}-v%{version}-alpha/third_party/onnxruntime-1.16.3
%ifarch aarch64
rm -v onnxruntime/test/optimizer/nhwc_transformer_test.cc
%endif
%{_builddir}/%{name}-v%{version}-alpha/third_party/cmake-3.28.5/build/install/bin/cmake \
-DCMAKE_INSTALL_LIBDIR=%{_lib} \
-DCMAKE_INSTALL_INCLUDEDIR=include \
-Donnxruntime_BUILD_SHARED_LIB=ON \
-Donnxruntime_BUILD_UNIT_TESTS=ON \
-Donnxruntime_INSTALL_UNIT_TESTS=OFF \
-Donnxruntime_BUILD_BENCHMARKS=OFF \
-Donnxruntime_USE_FULL_PROTOBUF=ON \
-DPYTHON_VERSION=%{python3_version} \
-Donnxruntime_ENABLE_CPUINFO=ON \
-Donnxruntime_DISABLE_ABSEIL=ON \
-Donnxruntime_USE_NEURAL_SPEED=OFF \
-Donnxruntime_ENABLE_PYTHON=ON \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-S cmake
make
mkdir -p %{_builddir}/%{name}-v%{version}-alpha/aiframe/lib64/
cd %{_builddir}/%{name}-v%{version}-alpha/third_party/onnxruntime-1.16.3
cp libonnxruntime.so.1.16.3 %{_builddir}/%{name}-v%{version}-alpha/aiframe/lib64/
cp libonnxruntime.so %{_builddir}/%{name}-v%{version}-alpha/aiframe/lib64/
cp include/onnxruntime/core/session/onnxruntime_c_api.h %{_builddir}/%{name}-v%{version}-alpha/aiframe/include/
cp include/onnxruntime/core/session/onnxruntime_cxx_api.h %{_builddir}/%{name}-v%{version}-alpha/aiframe/include/
cp include/onnxruntime/core/session/onnxruntime_cxx_inline.h %{_builddir}/%{name}-v%{version}-alpha/aiframe/include/
cp include/onnxruntime/core/session/onnxruntime_float16.h %{_builddir}/%{name}-v%{version}-alpha/aiframe/include/
cp include/onnxruntime/core/session/onnxruntime_run_options_config_keys.h %{_builddir}/%{name}-v%{version}-alpha/aiframe/include/
cp include/onnxruntime/core/session/onnxruntime_session_options_config_keys.h %{_builddir}/%{name}-v%{version}-alpha/aiframe/include/
cp include/onnxruntime/core/providers/cpu/cpu_provider_factory.h %{_builddir}/%{name}-v%{version}-alpha/aiframe/include/
cp include/onnxruntime/core/session/onnxruntime_lite_custom_op.h %{_builddir}/%{name}-v%{version}-alpha/aiframe/include/
cp include/onnxruntime/core/framework/provider_options.h %{_builddir}/%{name}-v%{version}-alpha/aiframe/include/
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_inline.h %{_builddir}/%{name}-v%{version}-alpha/aiframe/include/
cp orttraining/orttraining/training_api/include/onnxruntime_training_c_api.h %{_builddir}/%{name}-v%{version}-alpha/aiframe/include/
## construct ONNXRunner.so
cd %{_builddir}/%{name}-v%{version}-alpha/aiframe
cmake .
make
mv ./libONNXRunner.so ./lib64
%install
mkdir -p %{buildroot}%{_libdir}
cp %{_builddir}/%{name}-v%{version}-alpha/models/* %{buildroot}%{_libdir}/
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
#%license LICENSE
#%doc ThirdPartyNotices.txt
%{_libdir}/*
%{_includedir}/*
%changelog
* Wed Jun 5 2024 Zhenyu Zhao <zhaozhenyu17@huaewei.com> - 0.1.0-1
- Release 0.1.0