[Lunar-commits] <moonbase> Vc: Adding to moonbase.
Dennis `stumbles` Veatch
stumbles at lunar-linux.org
Tue May 17 10:01:00 CEST 2011
commit 4a64c2ef311be9293883da48830e20b79a473f5c
Author: Dennis `stumbles` Veatch <stumbles at lunar-linux.org>
Date: Tue May 17 04:01:00 2011 -0400
Vc: Adding to moonbase.
---
zbeta/Vc/BUILD | 10 ++++++++++
zbeta/Vc/CONFIGURE | 15 +++++++++++++++
zbeta/Vc/DEPENDS | 1 +
zbeta/Vc/DETAILS | 40 ++++++++++++++++++++++++++++++++++++++++
4 files changed, 66 insertions(+), 0 deletions(-)
diff --git a/zbeta/Vc/BUILD b/zbeta/Vc/BUILD
new file mode 100644
index 0000000..6ead512
--- /dev/null
+++ b/zbeta/Vc/BUILD
@@ -0,0 +1,10 @@
+(
+
+ cmake -DCMAKE_INSTALL_PREFIX=$MODULE_PREFIX \
+ -DCMAKE_BUILD_TYPE=RELEASE \
+ -DTARGET_ARCHITECTURE=auto \
+ $OPTS &&
+
+ default_make
+
+) > $C_FIFO 2>&1
diff --git a/zbeta/Vc/CONFIGURE b/zbeta/Vc/CONFIGURE
new file mode 100644
index 0000000..dcebdf8
--- /dev/null
+++ b/zbeta/Vc/CONFIGURE
@@ -0,0 +1,15 @@
+mquery USE_AVX "Use AVX? This will double some of the vector sizes relative to SSE." y "-DUSE_AVX=ON" "-DUSE_AVX=OFF"
+mquery USE_FMA4 "Use FMA4?" y "-DUSE_FMA4=ON" "-DUSE_FMA4=OFF"
+mquery USE_MLOCK "Use memlock to get more reliable results in the benchmarks?" y "-DUSE_MLOCK_IN_BENCHMARKS=ON" "-DUSE_MLOCK_IN_BENCHMARKS=OFF"
+mquery USE_SSE2 "Use SSE2? If SSE2 instructions are not enabled the SSE implementation will be disabled." y "-DUSE_SSE2=ON" "-DUSE_SSE2=OFF"
+mquery USE_SSE3 "Use SSE3? If SSE3 instructions are not enabled they will be emulated." y "-DUSE_SSE3=ON" "-DUSE_SSE3=OFF"
+mquery USE_SSE4_1 "Use SSE4.1? If SSE4.1 instructions are not enabled they will be emulated." y "-DUSE_SSE4_1=ON" "-DUSE_SSE4_1=OFF"
+mquery USE_SSE4_2 "Use SSE4.2? If SSE4.2 instructions are not enabled they will be emulated." y "-DUSE_SSE4_2=ON" "-DUSE_SSE4_2=OFF"
+mquery USE_SSE4a "Use SSE4a? If SSE4a instructions are not enabled they will be emulated." y "-DUSE_SSE4a=ON" "-DUSE_SSE4a=OFF"
+mquery USE_SSSE3 "Use SSSE3? If SSSE3 instructions are not enabled they will be emulated." y "-DUSE_SSSE3=ON" "-DUSE_SSSE3=OFF"
+mquery USE_XOP "Use XOP?" y "-DUSE_XOP=ON" "-DUSE_XOP=OFF"
+mquery BUILD_BENCHMARKS "Build benchmarks?" y "-DBUILD_BENCHMARKS=ON" "BUILD_BENCHMARKS=OFF"
+mquery BUILD_EXAMPLES "Build examples?" n "-DBUILD_EXAMPLES=ON" "-DBUILD_EXAMPLES=OFF"
+mquery BUILD_TESTING "Build the testing tree." y "-DBUILD_TESTING=ON" "-DBUILD_TESTING=OFF"
+mquery STRICT_ALIASING "Enable strict aliasing rules for more aggressive optimizations" y "-DENABLE_STRICT_ALIASING=ON" "-DENABLE_STRICT_ALIASING=OFF"
+
diff --git a/zbeta/Vc/DEPENDS b/zbeta/Vc/DEPENDS
new file mode 100644
index 0000000..60dd614
--- /dev/null
+++ b/zbeta/Vc/DEPENDS
@@ -0,0 +1 @@
+depends cmake
diff --git a/zbeta/Vc/DETAILS b/zbeta/Vc/DETAILS
new file mode 100644
index 0000000..6a9e45c
--- /dev/null
+++ b/zbeta/Vc/DETAILS
@@ -0,0 +1,40 @@
+ MODULE=Vc
+ VERSION=git
+ SOURCE=$MODULE-$VERSION.tar.bz2
+ SOURCE_URL=git://code.compeng.uni-frankfurt.de/vc
+SOURCE_DIRECTORY=$BUILD_DIRECTORY/Vc-git
+# SOURCE_VFY=sha1:2507cc378766f428e5bcc203b10b037ab05bf200
+ WEB_SITE=http://code.compeng.uni-frankfurt.de/projects/vc
+ ENTERED=20110517
+ UPDATED=20110517
+ SHORT="library to ease explicit vectorization of C++ code"
+
+#PSAFE=no
+cat << EOF
+The use of SIMD is becoming increasingly important with modern CPUs. The SIMD
+instruction sets are being improved: new instructions are added as well as
+performance improvements relative to the scalar instructions. The next
+generations of CPUs will double the vector width. Neglecting SIMD in
+high-performance code thus becomes more expensive, compared to the theoretical
+performance of CPUs.
+
+The use of SIMD instructions is not easy. C/C++ compilers support some
+extensions to ease development for SSE and the upcoming AVX instructions.
+Commonly intrinsics are the available extension of choice. Intrinsics basically
+map every SSE instruction to a C function. The use of these intrinsics leads to
+code which is hard to read and maintain in addition to making portability to
+other vector units complicated.
+
+Vc: Vector Classes
+
+Vc is a free software library to ease explicit vectorization of C++ code. It
+has an intuitive API and provides portability between different compilers and
+compiler versions as well as portability between different vector instruction
+sets. Thus an application written with Vc can be compiled for
+
+ SSE2 up to SSE4.2 or SSE4a
+ LRBni (currently possible by use of the LRBni prototype header)
+ Scalar (fallback which works everywhere)
+ in development: AVX
+
+EOF
More information about the Lunar-commits
mailing list