Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 12 Dec 2017 02:49:56 +0000 (UTC)
From:      Johannes M Dieterich <jmd@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r456082 - head/math/blis
Message-ID:  <201712120249.vBC2nus8094961@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jmd
Date: Tue Dec 12 02:49:56 2017
New Revision: 456082
URL: https://svnweb.freebsd.org/changeset/ports/456082

Log:
  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

Modified:
  head/math/blis/Makefile
  head/math/blis/distinfo
  head/math/blis/pkg-plist

Modified: head/math/blis/Makefile
==============================================================================
--- head/math/blis/Makefile	Tue Dec 12 02:48:14 2017	(r456081)
+++ head/math/blis/Makefile	Tue Dec 12 02:49:56 2017	(r456082)
@@ -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-
 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>

Modified: head/math/blis/distinfo
==============================================================================
--- head/math/blis/distinfo	Tue Dec 12 02:48:14 2017	(r456081)
+++ head/math/blis/distinfo	Tue Dec 12 02:49:56 2017	(r456082)
@@ -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

Modified: head/math/blis/pkg-plist
==============================================================================
--- head/math/blis/pkg-plist	Tue Dec 12 02:48:14 2017	(r456081)
+++ head/math/blis/pkg-plist	Tue Dec 12 02:49:56 2017	(r456082)
@@ -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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201712120249.vBC2nus8094961>