1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-17 03:25:46 +00:00

New port: devel/inastemp: C++ library to use SIMD vectorization

Submitted by:	myself
Approved by:	tcberner (mentor)
Differential Revision:	https://reviews.freebsd.org/D13703
This commit is contained in:
Yuri Victorovich 2018-01-02 10:41:23 +00:00
parent 3310c2fb17
commit d4cff33309
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=457842
7 changed files with 109 additions and 0 deletions

View File

@ -1196,6 +1196,7 @@
SUBDIR += icu-lx
SUBDIR += idutils
SUBDIR += imake
SUBDIR += inastemp
SUBDIR += include-what-you-use
SUBDIR += inifiled
SUBDIR += inilib

22
devel/inastemp/Makefile Normal file
View File

@ -0,0 +1,22 @@
# $FreeBSD$
PORTNAME= inastemp
DISTVERSION= 0.2.4
CATEGORIES= devel
MASTER_SITES= https://gitlab.mpcdf.mpg.de/bbramas/${PORTNAME}/repository/${DISTVERSION}/archive.tar.gz?ref=v${PORTVERSION}&dummy=/
MAINTAINER= yuri@FreeBSD.org
COMMENT= C++ library to use SIMD vectorization
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
USES= cmake:outsource
NO_ARCH= yes
CMAKE_ARGS= -DINASTEMP_DO_INSTALL:BOOL=ON \
-DINASTEMP_JUST_LIB:BOOL=ON
post-extract:
@${MV} ${WRKDIR}/${PORTNAME}-* ${WRKSRC}
.include <bsd.port.mk>

3
devel/inastemp/distinfo Normal file
View File

@ -0,0 +1,3 @@
TIMESTAMP = 1514683011
SHA256 (inastemp-0.2.4.tar.gz) = ee9b7dc7f23698cbe35fa0d5567a4f955f633a788e66b273d0961968a5eacf49
SIZE (inastemp-0.2.4.tar.gz) = 233546

View File

@ -0,0 +1,11 @@
--- CMakeLists.txt.orig 2017-12-31 01:19:25 UTC
+++ CMakeLists.txt
@@ -288,7 +288,7 @@ configure_file(${INASTEMP_SOURCE_DIR}/CM
@ONLY IMMEDIATE
)
if(INASTEMP_DO_INSTALL)
- install(FILES ${INASTEMP_BINARY_DIR}/InastempInfo.cmake DESTINATION lib/ )
+ install(FILES ${INASTEMP_BINARY_DIR}/InastempInfo.cmake DESTINATION lib/cmake )
endif()
if(INASTEMP_AS_SUBPROJECT)

View File

@ -0,0 +1,19 @@
--- Src/CMakeLists.txt.orig 2017-12-31 01:18:23 UTC
+++ Src/CMakeLists.txt
@@ -20,7 +20,7 @@ file(
FOREACH(hpp_file ${hpp_in_dir})
file(RELATIVE_PATH relative_hpp_file ${CMAKE_CURRENT_SOURCE_DIR} ${hpp_file})
if(INASTEMP_DO_INSTALL)
- INSTALL( FILES ${hpp_file} DESTINATION include/${relative_hpp_file} )
+ INSTALL( FILES ${hpp_file} DESTINATION include/inastemp/${relative_hpp_file} )
endif()
if($ENV{VERBOSE})
@@ -29,6 +29,6 @@ FOREACH(hpp_file ${hpp_in_dir})
ENDFOREACH()
if(INASTEMP_DO_INSTALL)
- INSTALL( FILES "${INASTEMP_BINARY_DIR}/Src/InastempConfig.h" DESTINATION include/Src )
+ INSTALL( FILES "${INASTEMP_BINARY_DIR}/Src/InastempConfig.h" DESTINATION include/inastemp/Src )
endif()

22
devel/inastemp/pkg-descr Normal file
View File

@ -0,0 +1,22 @@
Inastemp provides a set of C++ classes to make vectorization with intrinsics
easier. It aims at developing numerical kernels by separating the algorithm
from the hardware target. Inastemp comes with several examples and patterns
related to widespread use-cases.
Features:
* The following x86 SIMD types are currently supported:
* SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512-KNL, AVX512-SKL
* The following Powere PC SIMD types are currently supported:
* Power-8 Altivec/VMX
* arithmetic operators */+- are provided
* CPU capacities are detected automatically during the CMake stage
* The compiler capacities are detected automatically during the CMake stage
* The library purely contains of headers, no linkage is necessary.
* CPU detection may use Intel SDE
* Unit-tests may use Intel SDE
* Fast intrinsic exp() function (if not supported natively by the compiler)
* Explicit branches vectorization several patterns which represent many
applications are demonstrated
WWW: https://gitlab.mpcdf.mpg.de/bbramas/inastemp

31
devel/inastemp/pkg-plist Normal file
View File

@ -0,0 +1,31 @@
include/inastemp/ALTIVEC/InaVecALTIVECDouble.hpp/InaVecALTIVECDouble.hpp
include/inastemp/ALTIVEC/InaVecALTIVECFloat.hpp/InaVecALTIVECFloat.hpp
include/inastemp/AVX/InaVecAVXDouble.hpp/InaVecAVXDouble.hpp
include/inastemp/AVX/InaVecAVXFloat.hpp/InaVecAVXFloat.hpp
include/inastemp/AVX2/InaVecAVX2Double.hpp/InaVecAVX2Double.hpp
include/inastemp/AVX2/InaVecAVX2Float.hpp/InaVecAVX2Float.hpp
include/inastemp/AVX512COMMON/InaVecAVX512COMMONDouble.hpp/InaVecAVX512COMMONDouble.hpp
include/inastemp/AVX512COMMON/InaVecAVX512COMMONFloat.hpp/InaVecAVX512COMMONFloat.hpp
include/inastemp/AVX512KNL/InaVecAVX512KNLDouble.hpp/InaVecAVX512KNLDouble.hpp
include/inastemp/AVX512KNL/InaVecAVX512KNLFloat.hpp/InaVecAVX512KNLFloat.hpp
include/inastemp/AVX512SKL/InaVecAVX512SKLDouble.hpp/InaVecAVX512SKLDouble.hpp
include/inastemp/AVX512SKL/InaVecAVX512SKLFloat.hpp/InaVecAVX512SKLFloat.hpp
include/inastemp/Common/InaFastExp.hpp/InaFastExp.hpp
include/inastemp/Common/InaIfElse.hpp/InaIfElse.hpp
include/inastemp/Common/InaMemory.hpp/InaMemory.hpp
include/inastemp/Common/InaTimer.hpp/InaTimer.hpp
include/inastemp/Common/InaUtils.hpp/InaUtils.hpp
include/inastemp/Common/InaVecInterface.hpp/InaVecInterface.hpp
include/inastemp/FLOPS/InaVecFLOPS.hpp/InaVecFLOPS.hpp
include/inastemp/SCALAR/InaVecSCALARDouble.hpp/InaVecSCALARDouble.hpp
include/inastemp/SCALAR/InaVecSCALARFloat.hpp/InaVecSCALARFloat.hpp
include/inastemp/SSE3/InaVecSSE3Double.hpp/InaVecSSE3Double.hpp
include/inastemp/SSE3/InaVecSSE3Float.hpp/InaVecSSE3Float.hpp
include/inastemp/SSE41/InaVecSSE41Double.hpp/InaVecSSE41Double.hpp
include/inastemp/SSE41/InaVecSSE41Float.hpp/InaVecSSE41Float.hpp
include/inastemp/SSE42/InaVecSSE42Double.hpp/InaVecSSE42Double.hpp
include/inastemp/SSE42/InaVecSSE42Float.hpp/InaVecSSE42Float.hpp
include/inastemp/SSSE3/InaVecSSSE3Double.hpp/InaVecSSSE3Double.hpp
include/inastemp/SSSE3/InaVecSSSE3Float.hpp/InaVecSSSE3Float.hpp
include/inastemp/Src/InastempConfig.h
lib/cmake/InastempInfo.cmake