pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

New package OpenBLAS



Module Name:	pkgsrc-wip
Committed By:	Kai-Uwe Eckhardt <kuehro%posteo.de@localhost>
Pushed By:	kuehro
Date:		Wed Oct 12 18:24:14 2016 +0200
Changeset:	c67ca8589580669e7fda60ba02dd03809962b67b

Modified Files:
	Makefile
Added Files:
	OpenBLAS/DESCR
	OpenBLAS/Makefile
	OpenBLAS/PLIST
	OpenBLAS/TODO
	OpenBLAS/distinfo
	OpenBLAS/patches/patch-driver_others_memory.c

Log Message:
New package OpenBLAS

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=c67ca8589580669e7fda60ba02dd03809962b67b

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 Makefile                                      |   1 +
 OpenBLAS/DESCR                                |   6 ++
 OpenBLAS/Makefile                             |  47 ++++++++++++
 OpenBLAS/PLIST                                |  15 ++++
 OpenBLAS/TODO                                 | 101 ++++++++++++++++++++++++++
 OpenBLAS/distinfo                             |   7 ++
 OpenBLAS/patches/patch-driver_others_memory.c |  15 ++++
 7 files changed, 192 insertions(+)

diffs:
diff --git a/Makefile b/Makefile
index ef11441..ce86eb9 100644
--- a/Makefile
+++ b/Makefile
@@ -18,6 +18,7 @@ SUBDIR+=	GoogleEarth
 SUBDIR+=	I2util
 SUBDIR+=	LabPlot
 SUBDIR+=	MoleInvasion
+SUBDIR+=	OpenBLAS
 SUBDIR+=	OpenGLUT
 SUBDIR+=	PHPUnit
 SUBDIR+=	PPower4
diff --git a/OpenBLAS/DESCR b/OpenBLAS/DESCR
new file mode 100644
index 0000000..bd2a936
--- /dev/null
+++ b/OpenBLAS/DESCR
@@ -0,0 +1,6 @@
+OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD. It is a
+prerequisite to get decent performance for anything based on BLAS (like octave
+or R) and contains a complete implementation of LAPACK and LAPACKE as well.
+
+The aim of this package is to build a blas library for pkgsrc with optimized
+kernels for all processors, dynamically chosen at runtime.
diff --git a/OpenBLAS/Makefile b/OpenBLAS/Makefile
new file mode 100644
index 0000000..d0aef37
--- /dev/null
+++ b/OpenBLAS/Makefile
@@ -0,0 +1,47 @@
+# $NetBSD$
+
+CATEGORIES=	math
+
+MAINTAINER=	kuehro%posteo.de@localhost
+COMMENT=	OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD
+LICENSE=	modified-bsd
+
+OPENBLAS_VER=	0.2.19
+DISTNAME=	v${OPENBLAS_VER}
+PKGNAME=	OpenBLAS-${OPENBLAS_VER}
+MASTER_SITES=	${MASTER_SITE_GITHUB:=xinayi/}
+GITHUB_TAG=	${DISTNAME}
+
+HOMEPAGE=	http://www.openblas.net/
+
+EXTRACT_USING=	gtar
+WRKSRC=		${WRKDIR}/${PKGNAME_NOREV}
+
+ONLY_FOR_PLATFORM+=	*-*-i386 *-*-x86_64
+
+USE_TOOLS+=	gmake perl
+USE_LANGUAGES+=	c fortran
+GCC_REQD+=	6.2
+
+NO_CONFIGURE=	yes
+
+.include "../../mk/bsd.pkg.mk"
+
+
+MAKE_ENV=	PREFIX=${PREFIX}
+MAKE_ENV+=	CC=${CCPATH}
+MAKE_ENV+=	FC=${FCPATH}
+
+.if (${MACHINE_ARCH} == "i386")
+MAKE_ENV+=	BINARY=32
+.else
+MAKE_ENV+=	BINARY=64
+.endif
+
+# Choose the processor kernel dynamically at runtime
+MAKE_ENV+=	DYNAMIC_ARCH=1
+
+# NO_AFFINITY=1 recommended for use in OpenMP codes
+MAKE_ENV+=	USE_OPENMP=1 NO_AFFINITY=1
+
+INSTALL_MAKE_FLAGS+=	PREFIX=${PREFIX}
diff --git a/OpenBLAS/PLIST b/OpenBLAS/PLIST
new file mode 100644
index 0000000..72baceb
--- /dev/null
+++ b/OpenBLAS/PLIST
@@ -0,0 +1,15 @@
+@comment $NetBSD$
+include/cblas.h
+include/f77blas.h
+include/lapacke.h
+include/lapacke_config.h
+include/lapacke_mangling.h
+include/lapacke_utils.h
+include/openblas_config.h
+lib/cmake/openblas/OpenBLASConfig.cmake
+lib/cmake/openblas/OpenBLASConfigVersion.cmake
+lib/libopenblas.a
+lib/libopenblas.so
+lib/libopenblasp-r${PKGVERSION}.a
+lib/libopenblasp-r${PKGVERSION}.so
+@pkgdir bin
diff --git a/OpenBLAS/TODO b/OpenBLAS/TODO
new file mode 100644
index 0000000..807d005
--- /dev/null
+++ b/OpenBLAS/TODO
@@ -0,0 +1,101 @@
+The aim of this package is to build a blas library for pkgsrc with optimized
+kernels for all processors, dynamically chosen at runtime, to allow distribution
+as a binary package. This gets quite large (~ 100 MB) and pkgsrc has to deal with
+different types of processor architectures, operating systems and compilers. In my
+opinion the only way to deal with this is to build all of pkgsrc with the most recent
+GCC in lang/gcc.
+
+OpenBLAS has support for the processors listed in '* Supported List'
+at the end of this TODO. There should be an option to choose 64 or 32
+bit depending on build system. Right now only 64 bit kernels are built. 
+ONLY_FOR_PLATFORM should be adjusted for all possible platforms. 
+
+If you ask three people involved in Numerics, they want over a dozen ways to build
+OpenBLAS for the special purposes of different simulation codes. In fact I use
+four different ways at work, but this package should only have a small number of
+options to keep it managable. 
+
+If you want to use other C and Fortran compilers besides gcc 6.2, then change
+GCC_REQD or fiddle with PKGSRC variables. Good luck and may the force be with you.
+
+Kai-Uwe
+
+
+
+* Supported List:
+1.X86/X86_64
+a)Intel CPU:
+P2
+KATMAI
+COPPERMINE
+NORTHWOOD
+PRESCOTT
+BANIAS
+YONAH
+CORE2
+PENRYN
+DUNNINGTON
+NEHALEM
+SANDYBRIDGE
+HASWELL
+ATOM
+
+b)AMD CPU:
+ATHLON
+OPTERON
+OPTERON_SSE3
+BARCELONA
+SHANGHAI
+ISTANBUL
+BOBCAT
+BULLDOZER
+PILEDRIVER
+STEAMROLLER
+EXCAVATOR
+
+c)VIA CPU:
+SSE_GENERIC
+VIAC3
+NANO
+
+2.Power CPU:
+POWER4
+POWER5
+POWER6
+POWER7
+POWER8
+PPCG4
+PPC970
+PPC970MP
+PPC440
+PPC440FP2
+CELL
+
+3.MIPS CPU:
+P5600
+
+4.MIPS64 CPU:
+SICORTEX
+LOONGSON3A
+LOONGSON3B
+I6400
+P6600
+
+5.IA64 CPU:
+ITANIUM2
+
+6.SPARC CPU:
+SPARC
+SPARCV7
+
+7.ARM CPU:
+CORTEXA15
+CORTEXA9
+ARMV7
+ARMV6
+ARMV5
+
+8.ARM 64-bit CPU:
+ARMV8
+CORTEXA57
+
diff --git a/OpenBLAS/distinfo b/OpenBLAS/distinfo
new file mode 100644
index 0000000..af11621
--- /dev/null
+++ b/OpenBLAS/distinfo
@@ -0,0 +1,7 @@
+$NetBSD$
+
+SHA1 (v0.2.19.tar.gz) = df4ceb25d2529748ad0f2715e62fefb348477edd
+RMD160 (v0.2.19.tar.gz) = 8472d90075a8c1d357b896eba7ce293be508bca0
+SHA512 (v0.2.19.tar.gz) = 7081a8540b8037c0d4d6db0ec4b51277856c0e0f4e2575671984e5deb3482102da8936c43691087c8475d67070f89ac6925e4867ead60802aa2a29e8517e7495
+Size (v0.2.19.tar.gz) = 10834034 bytes
+SHA1 (patch-driver_others_memory.c) = 3f0d6014782810cc89c6fe0d0c1684e5ffdc2000
diff --git a/OpenBLAS/patches/patch-driver_others_memory.c b/OpenBLAS/patches/patch-driver_others_memory.c
new file mode 100644
index 0000000..ace100d
--- /dev/null
+++ b/OpenBLAS/patches/patch-driver_others_memory.c
@@ -0,0 +1,15 @@
+$NetBSD$
+
+Patch for NO_AFFINITY=1. Sent upstream as issue #979.
+
+--- driver/others/memory.c.orig	2016-10-11 14:00:54.030387184 +0000
++++ driver/others/memory.c
+@@ -169,7 +169,7 @@ void goto_set_num_threads(int num_thread
+ 
+ #else
+ 
+-#if defined(OS_LINUX) || defined(OS_SUNOS)
++#if defined(OS_LINUX) || defined(OS_SUNOS) || defined(OS_NETBSD)
+ #ifndef NO_AFFINITY
+ int get_num_procs(void);
+ #else


Home | Main Index | Thread Index | Old Index