diff --git a/AI4C.spec b/AI4C.spec new file mode 100644 index 0000000000000000000000000000000000000000..99fbc3da51a3b5a38f1757f60eb837fcdcdac2da --- /dev/null +++ b/AI4C.spec @@ -0,0 +1,102 @@ +Name: AI4C +Version: 1 +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}.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} is a framework which enables compilers to integrate ML-driven compiler optimizations. + +%prep +#mkdir -p %{_builddir}/%{name} +#cd %{_builddir}/%{name} +tar -xzf %{SOURCE0} -C . + +%build +## build cmake +cd %{_builddir}/%{name}/third_party/cmake-3.28.5 +mkdir build +cd build +cmake .. -DCMAKE_INSTALL_PREFIX=./install +make install -j + +# Broken test in aarch64 +cd %{_builddir}/%{name}/third_party/onnxruntime-1.16.3 +%ifarch aarch64 +rm -v onnxruntime/test/optimizer/nhwc_transformer_test.cc +%endif + +%{_builddir}/%{name}/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}/aiframe/lib64/ +cd %{_builddir}/%{name}/third_party/onnxruntime-1.16.3 +cp --preserve=timestamps libonnxruntime.so.1.16.3 %{_builddir}/%{name}/aiframe/lib64/ +cp --preserve=timestamps libonnxruntime.so %{_builddir}/%{name}/aiframe/lib64/ +cp --preserve=timestamps include/onnxruntime/core/session/onnxruntime_c_api.h %{_builddir}/%{name}/aiframe/include/ +cp --preserve=timestamps include/onnxruntime/core/session/onnxruntime_cxx_api.h %{_builddir}/%{name}/aiframe/include/ +cp --preserve=timestamps include/onnxruntime/core/session/onnxruntime_cxx_inline.h %{_builddir}/%{name}/aiframe/include/ +cp --preserve=timestamps include/onnxruntime/core/session/onnxruntime_float16.h %{_builddir}/%{name}/aiframe/include/ +cp --preserve=timestamps include/onnxruntime/core/session/onnxruntime_run_options_config_keys.h %{_builddir}/%{name}/aiframe/include/ +cp --preserve=timestamps include/onnxruntime/core/session/onnxruntime_session_options_config_keys.h %{_builddir}/%{name}/aiframe/include/ +cp --preserve=timestamps include/onnxruntime/core/providers/cpu/cpu_provider_factory.h %{_builddir}/%{name}/aiframe/include/ +cp --preserve=timestamps include/onnxruntime/core/session/onnxruntime_lite_custom_op.h %{_builddir}/%{name}/aiframe/include/ +cp --preserve=timestamps include/onnxruntime/core/framework/provider_options.h %{_builddir}/%{name}/aiframe/include/ +cp --preserve=timestamps orttraining/orttraining/training_api/include/onnxruntime_training_cxx_api.h %{_builddir}/%{name}/aiframe/include/ +cp --preserve=timestamps orttraining/orttraining/training_api/include/onnxruntime_training_cxx_inline.h %{_builddir}/%{name}/aiframe/include/ +cp --preserve=timestamps orttraining/orttraining/training_api/include/onnxruntime_training_c_api.h %{_builddir}/%{name}/aiframe/include/ + + +## build ONNXRunner.so +cd %{_builddir}/%{name}/aiframe +cmake . +make +mv ./libONNXRunner.so ./lib64 + +%install +mkdir -p %{buildroot}%{_libdir} +cp --preserve=timestamps %{_builddir}/%{name}/aiframe/lib64/* %{buildroot}%{_libdir}/ +mkdir -p %{buildroot}%{_includedir} +cp --preserve=timestamps %{_builddir}/%{name}/aiframe/include/* %{buildroot}%{_includedir} + +%files +#%license LICENSE +#%doc ThirdPartyNotices.txt +%{_libdir}/* +%{_includedir}/* + + +%changelog +* Wed Nov 03 2021 Zhenyu Zhao - 1.16.3-1 +- Release 1.16.3 diff --git a/AI4C.tar.gz b/AI4C.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..02a56cd6bb70125e71c4ece3ca4263a0f984614f Binary files /dev/null and b/AI4C.tar.gz differ