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
This commit is contained in:
Johannes M Dieterich 2017-12-12 02:49:56 +00:00
parent f7813ae789
commit 9514042786
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=456082
3 changed files with 49 additions and 77 deletions

View File

@ -2,8 +2,8 @@
# $FreeBSD$
PORTNAME= blis
PORTVERSION= 0.2.2
PORTREVISION= 1
LIBVERSION= 0.2.2
PORTVERSION= ${LIBVERSION}g20171127
CATEGORIES= math
MAINTAINER= jmd@FreeBSD.org
@ -12,31 +12,23 @@ COMMENT= Software framework for high-performance BLAS-like libraries
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= bash:shells/bash
BUILD_DEPENDS= bash:shells/bash \
llvm50>=0:devel/llvm50
BROKEN_powerpc64= fails to configure: common.mk:118: Unable to determine compiler vendor
OPTIONS_DEFINE= PARA CBLAS
PARA_DESC= use pthread parallelization
CBLAS_DESC= build the CBLAS compatibility layer
OPTIONS_RADIO= ARCHITECTURE
OPTIONS_RADIO_ARCHITECTURE= REFERENCE BULLDOZER PILEDRIVER CARRIZO DUNNINGTON SANDYBRIDGE HASWELL
REFERENCE_DESC= reference kernels (slow)
BULLDOZER_DESC= optimized kernels for AMD Bulldozer architecture
PILEDRIVER_DESC= optimized kernels for AMD Piledriver architecture
CARRIZO_DESC= optimized kernels for AMD Carrizo architecture
DUNNINGTON_DESC= optimized kernels for Intel Dunnington architecture
SANDYBRIDGE_DESC= optimized kernels for Intel Sandybridge architecture
HASWELL_DESC= optimized kernels for Intel Haswell architecture
OPTIONS_DEFAULT= PARA CBLAS REFERENCE
OPTIONS_SUB= yes
OPTIONS_DEFAULT= PARA CBLAS
OPTIONS_SUB= yes
USE_GITHUB= yes
GH_ACCOUNT= flame
GH_TAGNAME= 6e04f9d
GH_TAGNAME= 1f30b13
USE_LDCONFIG= yes
USES= gmake
USE_LDCONFIG= yes
HAS_CONFIGURE= yes
@ -57,27 +49,22 @@ CONFIGURE_ARGS+= -t pthreads
CONFIGURE_ARGS+= --enable-cblas
.endif
ARCH= reference
.if ${PORT_OPTIONS:MREFERENCE}
ARCH= reference
.elif ${PORT_OPTIONS:MBULLDOZER}
ARCH= bulldozer
.elif ${PORT_OPTIONS:MPILEDRIVER}
ARCH= piledriver
.elif ${PORT_OPTIONS:MCARRIZO}
ARCH= carrizo
.elif ${PORT_OPTIONS:MDUNNINGTON}
ARCH= dunnington
.elif ${PORT_OPTIONS:MSANDYBRIDGE}
ARCH= sandybridge
.elif ${PORT_OPTIONS:MHASWELL}
ARCH= haswell
.if ${ARCH} == amd64
LIBNAME= x86_64
CONFIGURE_ARGS+= x86_64
PLIST_SUB+= X8664=""
.else
LIBNAME= generic
CONFIGURE_ARGS+= generic
PLIST_SUB+= X8664="@comment "
.endif
CONFIGURE_ARGS+= ${ARCH}
CC= ${LOCALBASE}/bin/clang50
CXX= ${LOCALBASE}/bin/clang++50
post-install:
${MV} ${STAGEDIR}/${PREFIX}/lib/libblis-${PORTVERSION}-${ARCH}.a ${STAGEDIR}/${PREFIX}/lib/libblis.a
${MV} ${STAGEDIR}/${PREFIX}/lib/libblis-${PORTVERSION}-${ARCH}.so ${STAGEDIR}/${PREFIX}/lib/libblis.so
${MV} ${STAGEDIR}/${PREFIX}/lib/libblis-${LIBVERSION}-${LIBNAME}.a ${STAGEDIR}/${PREFIX}/lib/libblis.a
${MV} ${STAGEDIR}/${PREFIX}/lib/libblis-${LIBVERSION}-${LIBNAME}.so ${STAGEDIR}/${PREFIX}/lib/libblis.so
${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libblis.so
.include <bsd.port.mk>

View File

@ -1,3 +1,3 @@
TIMESTAMP = 1495076060
SHA256 (flame-blis-0.2.2-6e04f9d_GH0.tar.gz) = bb3fe42d1985d0c18908d6d7e2812e2b2841d35274f653881f37190e16b95a75
SIZE (flame-blis-0.2.2-6e04f9d_GH0.tar.gz) = 1298944
TIMESTAMP = 1511836356
SHA256 (flame-blis-0.2.2g20171127-1f30b13_GH0.tar.gz) = 20b861ad130a20a80dedd1418e8f3420026586218389b7195ccd8516835265a3
SIZE (flame-blis-0.2.2g20171127-1f30b13_GH0.tar.gz) = 1314083

View File

@ -89,6 +89,9 @@ include/blis/bli_addris.h
include/blis/bli_adds.h
include/blis/bli_adds_mxn.h
include/blis/bli_adds_mxn_uplo.h
include/blis/bli_arch.h
include/blis/bli_arch_config.h
include/blis/bli_arch_config_pre.h
include/blis/bli_auxinfo.h
include/blis/bli_axmyris.h
include/blis/bli_axmys.h
@ -109,6 +112,7 @@ include/blis/bli_check.h
include/blis/bli_clock.h
include/blis/bli_cntl.h
include/blis/bli_cntx.h
include/blis/bli_cntx_ind_stage.h
include/blis/bli_complex_macro_defs.h
include/blis/bli_config.h
include/blis/bli_config_macro_defs.h
@ -130,6 +134,7 @@ include/blis/bli_copyris.h
include/blis/bli_copys.h
include/blis/bli_copys_mxn.h
include/blis/bli_copysc.h
include/blis/bli_cpuid.h
include/blis/bli_dlamch.h
include/blis/bli_dotjs.h
include/blis/bli_dots.h
@ -139,6 +144,16 @@ include/blis/bli_error.h
include/blis/bli_error_macro_defs.h
include/blis/bli_extern_defs.h
include/blis/bli_f2c.h
%%X8664%%include/blis/bli_family_bulldozer.h
%%X8664%%include/blis/bli_family_excavator.h
include/blis/bli_family_generic.h
%%X8664%%include/blis/bli_family_haswell.h
%%X8664%%include/blis/bli_family_penryn.h
%%X8664%%include/blis/bli_family_piledriver.h
%%X8664%%include/blis/bli_family_sandybridge.h
%%X8664%%include/blis/bli_family_steamroller.h
%%X8664%%include/blis/bli_family_x86_64.h
%%X8664%%include/blis/bli_family_zen.h
include/blis/bli_fprints.h
include/blis/bli_func.h
include/blis/bli_gemm.h
@ -146,9 +161,6 @@ include/blis/bli_gemm_cntl.h
include/blis/bli_gemm_front.h
include/blis/bli_gemm_int.h
include/blis/bli_gemm_var.h
include/blis/bli_gemmind_cntx.h
include/blis/bli_gemmind_ukr_ref.h
include/blis/bli_gemmtrsmind_x_ukr_ref.h
include/blis/bli_gemv.h
include/blis/bli_gemv_var.h
include/blis/bli_genarray_macro_defs.h
@ -185,57 +197,45 @@ include/blis/bli_invscaljris.h
include/blis/bli_invscaljs.h
include/blis/bli_invscalris.h
include/blis/bli_invscals.h
include/blis/bli_kernel.h
include/blis/bli_kernel_1m_macro_defs.h
include/blis/bli_kernel_3m1_macro_defs.h
include/blis/bli_kernel_3m2_macro_defs.h
include/blis/bli_kernel_3m3_macro_defs.h
include/blis/bli_kernel_3mh_macro_defs.h
include/blis/bli_kernel_4m1_macro_defs.h
include/blis/bli_kernel_4mb_macro_defs.h
include/blis/bli_kernel_4mh_macro_defs.h
include/blis/bli_kernel_ind_macro_defs.h
include/blis/bli_kernel_ind_pre_macro_defs.h
include/blis/bli_kernel_macro_defs.h
include/blis/bli_kernel_pre_macro_defs.h
include/blis/bli_kernel_prototypes.h
%%X8664%%include/blis/bli_kernels_bulldozer.h
%%X8664%%include/blis/bli_kernels_haswell.h
%%X8664%%include/blis/bli_kernels_penryn.h
%%X8664%%include/blis/bli_kernels_piledriver.h
%%X8664%%include/blis/bli_kernels_sandybridge.h
include/blis/bli_l0.h
include/blis/bli_l0_check.h
include/blis/bli_l0_oapi.h
include/blis/bli_l0_tapi.h
include/blis/bli_l1d.h
include/blis/bli_l1d_check.h
include/blis/bli_l1d_cntx.h
include/blis/bli_l1d_oapi.h
include/blis/bli_l1d_tapi.h
include/blis/bli_l1f.h
include/blis/bli_l1f_check.h
include/blis/bli_l1f_cntx.h
include/blis/bli_l1f_ft.h
include/blis/bli_l1f_ker.h
include/blis/bli_l1f_ker_prot.h
include/blis/bli_l1f_oapi.h
include/blis/bli_l1f_ref.h
include/blis/bli_l1f_tapi.h
include/blis/bli_l1m.h
include/blis/bli_l1m_check.h
include/blis/bli_l1m_cntx.h
include/blis/bli_l1m_ft.h
include/blis/bli_l1m_ker.h
include/blis/bli_l1m_ker_prot.h
include/blis/bli_l1m_oapi.h
include/blis/bli_l1m_tapi.h
include/blis/bli_l1m_unb_var1.h
include/blis/bli_l1m_voft.h
include/blis/bli_l1v.h
include/blis/bli_l1v_check.h
include/blis/bli_l1v_cntx.h
include/blis/bli_l1v_ft.h
include/blis/bli_l1v_ker.h
include/blis/bli_l1v_ker_prot.h
include/blis/bli_l1v_oapi.h
include/blis/bli_l1v_ref.h
include/blis/bli_l1v_tapi.h
include/blis/bli_l2.h
include/blis/bli_l2_check.h
include/blis/bli_l2_cntx.h
include/blis/bli_l2_ft.h
include/blis/bli_l2_oapi.h
include/blis/bli_l2_tapi.h
@ -243,13 +243,13 @@ include/blis/bli_l3.h
include/blis/bli_l3_blocksize.h
include/blis/bli_l3_check.h
include/blis/bli_l3_cntl.h
include/blis/bli_l3_cntx.h
include/blis/bli_l3_direct.h
include/blis/bli_l3_ft.h
include/blis/bli_l3_ind.h
include/blis/bli_l3_ind_oapi.h
include/blis/bli_l3_ind_opt.h
include/blis/bli_l3_ind_tapi.h
include/blis/bli_l3_ind_ukr.h
include/blis/bli_l3_oapi.h
include/blis/bli_l3_oft.h
include/blis/bli_l3_packm.h
@ -258,7 +258,7 @@ include/blis/bli_l3_tapi.h
include/blis/bli_l3_thrinfo.h
include/blis/bli_l3_ukr.h
include/blis/bli_l3_ukr_oapi.h
include/blis/bli_l3_ukr_ref.h
include/blis/bli_l3_ukr_prot.h
include/blis/bli_l3_ukr_tapi.h
include/blis/bli_l3_var_oft.h
include/blis/bli_l3_voft.h
@ -284,29 +284,17 @@ include/blis/bli_obj_macro_defs.h
include/blis/bli_obj_scalar.h
include/blis/bli_opid.h
include/blis/bli_packm.h
include/blis/bli_packm_1er_macro_defs.h
include/blis/bli_packm_3mis_macro_defs.h
include/blis/bli_packm_4mi_macro_defs.h
include/blis/bli_packm_blk_var1.h
include/blis/bli_packm_check.h
include/blis/bli_packm_cntl.h
include/blis/bli_packm_cntx.h
include/blis/bli_packm_cxk.h
include/blis/bli_packm_cxk_1e_ref.h
include/blis/bli_packm_cxk_1er.h
include/blis/bli_packm_cxk_1r_ref.h
include/blis/bli_packm_cxk_3mis.h
include/blis/bli_packm_cxk_3mis_ref.h
include/blis/bli_packm_cxk_4mi.h
include/blis/bli_packm_cxk_4mi_ref.h
include/blis/bli_packm_cxk_ref.h
include/blis/bli_packm_cxk_rih.h
include/blis/bli_packm_cxk_rih_ref.h
include/blis/bli_packm_ind_pre_macro_defs.h
include/blis/bli_packm_init.h
include/blis/bli_packm_int.h
include/blis/bli_packm_part.h
include/blis/bli_packm_rih_macro_defs.h
include/blis/bli_packm_struc_cxk.h
include/blis/bli_packm_struc_cxk_1er.h
include/blis/bli_packm_struc_cxk_3mis.h
@ -406,8 +394,6 @@ include/blis/bli_trsm_cntl.h
include/blis/bli_trsm_front.h
include/blis/bli_trsm_int.h
include/blis/bli_trsm_var.h
include/blis/bli_trsmind_cntx.h
include/blis/bli_trsmind_x_ukr_ref.h
include/blis/bli_trsv.h
include/blis/bli_trsv_var.h
include/blis/bli_type_defs.h
@ -416,7 +402,6 @@ include/blis/bli_unpackm_blk_var1.h
include/blis/bli_unpackm_check.h
include/blis/bli_unpackm_cntl.h
include/blis/bli_unpackm_cxk.h
include/blis/bli_unpackm_cxk_ref.h
include/blis/bli_unpackm_int.h
include/blis/bli_unpackm_unb_var1.h
include/blis/bli_util.h