The package rpms/clblast.git has added or updated architecture specific content in its spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s): https://src.fedoraproject.org/cgit/rpms/clblast.git/commit/?id=b1bc747268daf....
Change: +%ifarch %{ix86} x86_64
Thanks.
Full change: ============
commit b1bc747268daf4053b65d2b5995cddae8c0f43f7 Author: Jerry James loganjerry@gmail.com Date: Wed Sep 5 19:40:22 2018 -0600
Disable testing on platforms with POCL issues. Add -altivec patch to fix name clash on ppc64le.
diff --git a/clblast-altivec.patch b/clblast-altivec.patch new file mode 100644 index 0000000..0ce43bc --- /dev/null +++ b/clblast-altivec.patch @@ -0,0 +1,33 @@ +--- include/clblast_c.h.orig 2018-07-14 04:29:06.000000000 -0600 ++++ include/clblast_c.h 2018-09-05 19:25:32.645451973 -0600 +@@ -21,6 +21,8 @@ + #else + #include <CL/opencl.h> + #endif ++#undef vector ++#undef bool + + // Exports library functions under Windows when building a DLL. See also: + // https://msdn.microsoft.com/en-us/library/a90k134d.aspx +--- include/clblast.h.orig 2018-07-14 04:29:06.000000000 -0600 ++++ include/clblast.h 2018-09-05 19:25:20.700470968 -0600 +@@ -26,6 +26,8 @@ + #else + #include <CL/opencl.h> + #endif ++#undef vector ++#undef bool + + // Exports library functions under Windows when building a DLL. See also: + // https://msdn.microsoft.com/en-us/library/a90k134d.aspx +--- src/clpp11.hpp.orig 2018-07-14 04:29:06.000000000 -0600 ++++ src/clpp11.hpp 2018-09-05 19:18:44.972378306 -0600 +@@ -54,6 +54,8 @@ + #else + #include <CL/opencl.h> + #endif ++#undef vector ++#undef bool + + // Android support (missing C++11 functions to_string, stod, and stoi) + #ifdef __ANDROID__ diff --git a/clblast.spec b/clblast.spec index 2117f42..95af4d9 100644 --- a/clblast.spec +++ b/clblast.spec @@ -1,3 +1,14 @@ +# TESTING NOTE: An OpenCL device is needed to run the tests. Since the koji +# builders may or may not have a GPU, we use the CPU-only POCL implementation. +# However: +# - POCL is not available on ppc64, ppc64le, or s390x due to failing tests. +# - Builds with POCL on 32-bit ARM fail with an undefined symbol error: +# __gnu_f2h_ieee. This symbol is defined in libLLVM, but we are building +# with gcc/g++, not clang. Since POCL is built with clang, this appears to +# be a POCL bug. +# - Builds with POCL on aarch64 fail one DAXPY test, not yet diagnosed. +# That leaves only 32-bit and 64-bit x86 as platforms that can run the tests. + Name: clblast Version: 1.4.1 Release: 1%{?dist} @@ -6,13 +17,17 @@ Summary: Tuned OpenCL BLAS routines License: ASL 2.0 URL: https://cnugteren.github.io/clblast/clblast.html Source0: https://github.com/CNugteren/CLBlast/archive/%%7Bversion%7D/%%7Bname%7D-%%7B... +# Fix name clashes between macros in altivec.h and standard types on ppc64le +Patch0: %{name}-altivec.patch
BuildRequires: cmake BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: ocl-icd-devel BuildRequires: openblas-devel +%ifarch %{ix86} x86_64 BuildRequires: pocl-devel +%endif
%description CLBlast is a modern, lightweight, performant and tunable OpenCL BLAS @@ -44,7 +59,7 @@ Requires: %{name}%{?_isa} = %{version}-%{release} Programs to tune %{name} for your OpenCL device.
%prep -%autosetup -n CLBlast-%{version} +%autosetup -p0 -n CLBlast-%{version}
# Fix the path to the openblas headers sed -i 's,openblas/include,include/openblas,' cmake/Modules/FindCBLAS.cmake @@ -56,8 +71,10 @@ sed -i 's,openblas/include,include/openblas,' cmake/Modules/FindCBLAS.cmake %install %make_install
+%ifarch %{ix86} x86_64 %check make alltests +%endif
%files %license LICENSE
commit 0d4e4c1579a331a4f54efd8ae45add67317307b1 Author: Jerry James loganjerry@gmail.com Date: Tue Sep 4 18:10:27 2018 -0600
Initial import.
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9218b0e --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/clblast-1.4.1.tar.gz diff --git a/clblast.spec b/clblast.spec new file mode 100644 index 0000000..2117f42 --- /dev/null +++ b/clblast.spec @@ -0,0 +1,80 @@ +Name: clblast +Version: 1.4.1 +Release: 1%{?dist} +Summary: Tuned OpenCL BLAS routines + +License: ASL 2.0 +URL: https://cnugteren.github.io/clblast/clblast.html +Source0: https://github.com/CNugteren/CLBlast/archive/%%7Bversion%7D/%%7Bname%7D-%%7B... + +BuildRequires: cmake +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: ocl-icd-devel +BuildRequires: openblas-devel +BuildRequires: pocl-devel + +%description +CLBlast is a modern, lightweight, performant and tunable OpenCL BLAS +library written in C++11. It is designed to leverage the full +performance potential of a wide variety of OpenCL devices from different +vendors, including desktop and laptop GPUs, embedded GPUs, and other +accelerators. CLBlast implements BLAS routines: basic linear algebra +subprograms operating on vectors and matrices. See the CLBlast website +for performance reports on various devices as well as the latest CLBlast +news. + +The library is not tuned for all possible OpenCL devices: if +out-of-the-box performance is poor, please run the tuners first. + +%package devel +Summary: Headers and libraries for CLBlast +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: cmake-filesystem%{?_isa} +Requires: ocl-icd-devel%{?_isa} + +%description devel +Headers and libraries for developing applications that use CLBlast. + +%package tuners +Summary: Tuners for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description tuners +Programs to tune %{name} for your OpenCL device. + +%prep +%autosetup -n CLBlast-%{version} + +# Fix the path to the openblas headers +sed -i 's,openblas/include,include/openblas,' cmake/Modules/FindCBLAS.cmake + +%build +%cmake -DTESTS:BOOL=ON . +%make_build + +%install +%make_install + +%check +make alltests + +%files +%license LICENSE +%doc CHANGELOG CONTRIBUTING.md README.md ROADMAP.md +%{_libdir}/lib{%name}.so.1 +%{_libdir}/lib{%name}.so.%{version} + +%files devel +%doc doc +%{_includedir}/%{name}*.h +%{_libdir}/lib{%name}.so +%{_libdir}/cmake/CLBLast/ +%{_libdir}/pkgconfig/%{name}.pc + +%files tuners +%{_bindir}/* + +%changelog +* Sat Sep 1 2018 Jerry James loganjerry@gmail.com - 1.4.1-1 +- Initial RPM diff --git a/sources b/sources new file mode 100644 index 0000000..eb0e5a1 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (clblast-1.4.1.tar.gz) = b7ca653f0d68a6974f90c88974eceb77c6493fb5ce6cc5570801b13801236e7f75deec5a6f611aa272ec087785238902d269d06e7f89dc04407b675145d1fc31
arch-excludes@lists.fedoraproject.org