software framework for high-performance BLAS-like libraries
BLIS is a portable software framework for instantiating high-performance
BLAS-like dense linear algebra libraries. The framework was designed
to isolate essential kernels of computation that, when optimized,
immediately enable optimized implementations of most of its commonly
used and computationally intensive operations.
===> The following configuration options are available for blis-2.1:
CBLAS=off: build the CBLAS compatibility layer
PARA=on: use pthread parallelization
===> Use 'make config' to modify these settings
math/blis: fix build with clang 19
Clang 19 has removed support for the -mavx512pf and -mavx512er flags,
for the Intel Xeon Phi (aka "Knights Landing"/knl or "Knights
Mill"/knm) [1] [2].
This causes fatal errors during configuration of math/blis:
Compiling obj/x86_64/kernels/knl/1m/bli_dpackm_knl_asm_24x8.o ('knl' CFLAGS
for kernels)
cc: fatal error: unknown argument '-mavx512pf'; did you mean '-mavx512f'?
gmake: *** [Makefile:653:
obj/x86_64/kernels/knl/1m/bli_dpackm_knl_asm_24x8.o] Error 1
Add an EXTRA_PATCHES entry to deal with this situation.
Note that in the future, this may also have to be done for gcc 15 and
later. In that case, the patch might be done unconditionally.
[1] https://github.com/llvm/llvm-project/pull/75580
[2] https://github.com/llvm/llvm-project/pull/92883
PR: 280783
Approved by: maintainer timeout (2 weeks)
MFH: 2024Q3
Remove WWW entries moved into port Makefiles
Commit b7f05445c00f has added WWW entries to port Makefiles based on
WWW: lines in pkg-descr files.
This commit removes the WWW: lines of moved-over URLs from these
pkg-descr files.
Approved by: portmgr (tcberner)
Add WWW entries to port Makefiles
It has been common practice to have one or more URLs at the end of the
ports' pkg-descr files, one per line and prefixed with "WWW:". These
URLs should point at a project website or other relevant resources.
Access to these URLs required processing of the pkg-descr files, and
they have often become stale over time. If more than one such URL was
present in a pkg-descr file, only the first one was tarnsfered into
the port INDEX, but for many ports only the last line did contain the
port specific URL to further information.
There have been several proposals to make a project URL available as
a macro in the ports' Makefiles, over time.
(Only the first 15 lines of the commit message are shown above )
math/blis: pacify portlint, add test target, optimize for power9 on powerpc64
1. Move USES block to pacify portlint.
2. Add test target.
3. Add perl as a build dependency, I'm not sure how it worked before.
4. Optimize for power9 on powerpc64. This will break blis on all earlier POWER
generations, but nothing depends on this port so I guess it's ok. make test
passes fine on both elfv1 and elfv2.
5. Remove LIBNAME, it's not necessary.
PR: 246194
Approved by: jmd (maintainer timeout)
math/blis: fix build on GCC architectures
Use GCC on GCC architectures, LLVM causes errors:
ld: error: crtstuff.c:(.text+0x16): relocation R_PPC64_TOC16_DS out of range:
-32824 is not in [-32768, 32767]
ld: error: crtstuff.c:(.text+0x2E): relocation R_PPC64_TOC16_DS out of range:
-32816 is not in [-32768, 32767]
ld: error: crtstuff.c:(.text+0x3A): relocation R_PPC64_TOC16_DS out of range:
-32808 is not in [-32768, 32767]
ld: error: crtstuff.c:(.text+0x40): call lacks nop, can't restore toc
ld: error: crtstuff.c:(.text+0x4A): relocation R_PPC64_TOC16_DS out of range:
-32800 is not in [-32768, 32767]
ld: error: crtstuff.c:(.text+0xC2): relocation R_PPC64_TOC16_DS out of range:
-32792 is not in [-32768, 32767]
ld: error: crtstuff.c:(.text+0xDA): relocation R_PPC64_TOC16_DS out of range:
-32784 is not in [-32768, 32767]
ld: error: crtstuff.c:(.text+0x12): relocation R_PPC64_TOC16_DS out of range:
-32776 is not in [-32768, 32767]
clang-9: error: linker command failed with exit code 1 (use -v to see
invocation)
PR: 246125
Approved by: jmd (maintainer)
math/blis: update to release 0.5.0.
Most important addition to this release are mixed precision interfaces. This
allows one to, e.g., put in single precision data but carry the computation
out in double precision accuracy.
Note that flame/blis is the upstream for the BLIS library. AMD has forked
BLIS and releases independently from the FLAME project but is strightly
downstream.
math/blis: update to 0.4.0
This release incorporates the changes needed for us which were previously only
available through a snapshot. It also allows us to drop some install hacks and
brings general improvements to blis itself.
Switch to llvm6 as the compiler.
Reviewed by: zeising (mentor)
Approved by: zeising (mentor)
Differential Revision: https://reviews.freebsd.org/D16522
math/blis: update to post 0.3.2 snapshot.
Among other changes, this improves performance on recent AMD architectures and
contains the official runtime kernel selection we asked them for.
Reviewed by: zeising (mentor)
Approved by: zeising (mentor)
Differential Revision: https://reviews.freebsd.org/D15334
math/blis: update to the first snapshot working on FreeBSD to support runtime
kernel selection. For amd64, this will now select, if available, an assembly
optimized kernel for the CPU architecture blis is running on. The other
architectures continue to only use what is now called the generic kernel but in
theory arm and power7 assembly optimizations are available.
Due to this, remove the old explicit kernel selection. Also switch to use
devel/llvm50 as a compiler to actually support all the architectures (and
upstream compile flags) properly. This hopefully will also help with getting
blis to work on other architectures out of the box.
Reviewed by: swills (mentor)
Approved by: swills (mentor)
Differential Revision: https://reviews.freebsd.org/D13264
Mark some ports failing on powerpc64. These ports are either new
ports, or had been recently unblocked.
While here, pet portlint.
Approved by: portmgr (tier-2 blanket)
math/blis: Change to also always compile a shared library version of the
library. This is in line with other BLAS libraries in the tree.
While there, correct LOCALBASE to be PREFIX.
Reviewed by: swills (mentor)
Approved by: swills (mentor)
Differential Revision: https://reviews.freebsd.org/D10865
new port: math/blis
BLIS is a portable software framework for instantiating high-performance
BLAS-like dense linear algebra libraries. The framework was designed to isolate
essential kernels of computation that, when optimized, immediately enable
optimized implementations of most of its commonly used and computationally
intensive operations. BLIS is written in ISO C99 and available under a
BSD3CLAUSE. While BLIS exports a new BLAS-like API, it also includes a BLAS
compatibility layer which gives application developers access to BLIS
implementations via traditional BLAS routine calls. (from their github)
Reviewed by: swills (mentor)
Approved by: swills (mentor)
Differential Revision: https://reviews.freebsd.org/D10811