diff --git a/libxsmm-1.15.tar.gz b/libxsmm-1.15.tar.gz new file mode 100644 index 0000000..f665900 Binary files /dev/null and b/libxsmm-1.15.tar.gz differ diff --git a/libxsmm.spec b/libxsmm.spec new file mode 100644 index 0000000..5f2481e --- /dev/null +++ b/libxsmm.spec @@ -0,0 +1,114 @@ +%if 0%{?el6}%{?el7} +%bcond_without devtoolset +%endif + +%global somajor 1 +%global sominor 10 +%global soupd 1 + +Name: libxsmm +Version: 1.15 +Release: 1 +Summary: Small dense or sparse matrix multiplications and convolutions for x86_64 +License: BSD +URL: https://github.com/hfp/libxsmm +Source0: https://github.com/hfp/libxsmm/archive/%version/%name-%version.tar.gz + +BuildRequires: python3 openblas-devel +%if %{with devtoolset} +BuildRequires: devtoolset-6-gcc-gfortran devtoolset-6-gcc-c++ +%else +BuildRequires: gcc-gfortran gcc-c++ +%endif +ExclusiveArch: x86_64 + +%global __requires_exclude /bin/.*sh$ +%{?filter_setup: +%filter_from_requires /\/bin\/.*sh$/d +%filter_setup +} + +%description +LIBXSMM is a library for small dense and small sparse matrix-matrix +multiplications, as well as for deep learning primitives such as small +convolutions targeting Intel Architecture (x86). The library +generates code for the following instruction set extensions: Intel +SSE, Intel AVX, Intel AVX2, IMCI (KNCni) for Intel Xeon Phi +coprocessors ("KNC"), and Intel AVX‑512 as found in the Intel Xeon Phi +processor family ("KNL") and future Intel Xeon processors. Small +convolutions are currently only optimized for Intel AVX‑512. +Historically the library was solely targeting the Intel Many +Integrated Core Architecture "MIC") using intrinsic functions. +Currently, optimized assembly code targets all aforementioned +instruction set extensions (static code generation), and Just‑In‑Time +(JIT) code generation targets Intel AVX and beyond. + +%package devel +Summary: Development files for %name +Requires: %name%{?_isa} = %version-%release +Requires: pkgconfig + +%description devel +The %name-devel package contains libraries and header files for +developing applications that use %name. + +%package_help + +%prep +%setup -q +find samples -name \*.vcxproj | xargs rm +rm documentation/{README,LICENSE,CONTRIBUTING}.md +rm documentation/gxm.md +cp -p samples/deeplearning/gxm/README.md documentation/gxm.md + +%build +%if %{with devtoolset} +. /opt/rh/devtoolset-6/enable +%endif +%global makeflags STATIC=0 SYM=1 AVX=0 PYTHON=%_bindir/python3 PREFIX=%buildroot%_prefix POUTDIR=%_lib VERSION_API=1 OMPLIB=-lgomp +%make_build %makeflags + +%install +%if %{with devtoolset} +. /opt/rh/devtoolset-6/enable +%endif +make install %makeflags +mkdir -p %buildroot%_fmoddir %buildroot%_libdir/pkgconfig +mv %buildroot%_includedir/libxsmm.mod %buildroot%_fmoddir +mv %buildroot%_prefix/lib/*.pc %buildroot%_libdir/pkgconfig +sed -i -e 's|^prefix=.*$|prefix=%_prefix|' %buildroot%_libdir/pkgconfig/*.pc +rm -r %buildroot%_datadir/libxsmm +find samples -name .make | xargs rm +cp Makefile.inc samples # included by the sub-directories +echo "These are set up to be built in the original source tree. +You will have to adjust the make files to use an installed version." >samples/README +rm %buildroot%_prefix/lib/libxsmm + +%check +OMP_NUM_THREADS=1 make test-cp2k %makeflags +rm -r samples/cp2k/{build,.make,.state,cp2k-dbcsr,cp2k-collocate,cp2k-test.txt} +%ldconfig_scriptlets + +%files +%license LICENSE.md +%_libdir/libxsmm*.so.%{somajor}* + +%files devel +%_libdir/libxsmm*.so +%_includedir/* +%_bindir/libxsmm_gemm_generator +%if 0%{?el6}%{?el7} +%dir %_fmoddir +%endif +%_fmoddir/libxsmm.mod +%_libdir/pkgconfig/*.pc + +%files help +%defattr(-,root,root) +%doc README.md documentation/*.md documentation/*.pdf samples CONTRIBUTING.md +%license LICENSE.md + +%changelog +* Thu May 28 2020 openEuler Buildteam - 1.15-1 +- Package init +