[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