Skip to content

Commit 725957c

Browse files
committed
add README.md
I took the information from the old website, merged it with INSTALL and converted it to a markdown-compatible readme that can be rendered by github. This replaces INSTALL.
1 parent 18e6ba4 commit 725957c

File tree

2 files changed

+87
-27
lines changed

2 files changed

+87
-27
lines changed

INSTALL

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1 @@
1-
Build Requirements
2-
==================
3-
4-
cmake >= 2.8.3
5-
6-
C++11 Compiler:
7-
* GCC >= 4.6
8-
* clang >= 3.2
9-
* ICC >= 13
10-
* Visual Studio >= 2012
11-
12-
Building and Installing Vc
13-
==========================
14-
15-
* Create a build directory:
16-
17-
$ mkdir build
18-
$ cd build
19-
20-
* Call cmake with the relevant options:
21-
22-
$ cmake -DCMAKE_INSTALL_PREFIX=/opt/Vc -DBUILD_TESTING=OFF <srcdir>
23-
24-
* Build and install:
25-
26-
$ make -j16
27-
$ make install
1+
See README.md.

README.md

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
# Vc: portable, zero-overhead SIMD library for C++
2+
3+
The use of SIMD is becoming increasingly important with modern CPUs. The SIMD
4+
instruction sets are being improved: new instructions are added as well as
5+
performance improvements relative to the scalar instructions. The next
6+
generations of CPUs will double the vector width. Neglecting SIMD in
7+
high-performance code thus becomes more expensive, compared to the theoretical
8+
performance of CPUs.
9+
10+
The use of SIMD instructions is not easy. C/C++ compilers support some
11+
extensions to ease development for SSE and AVX. Commonly intrinsics are the
12+
available extension of choice. Intrinsics basically map every SIMD instruction
13+
to a C function. The use of these intrinsics leads to code which is hard to read
14+
and maintain in addition to making portability to other vector units
15+
complicated.
16+
17+
Vc is a free software library to ease explicit vectorization of C++ code. It has
18+
an intuitive API and provides portability between different compilers and
19+
compiler versions as well as portability between different vector instruction
20+
sets. Thus an application written with Vc can be compiled for
21+
22+
* AVX
23+
* SSE2 up to SSE4.2 or SSE4a
24+
* Scalar (fallback which works everywhere)
25+
* MIC (for Vc 1.0)
26+
* NEON (in development)
27+
28+
29+
## Build Requirements
30+
31+
cmake >= 2.8.3
32+
33+
C++11 Compiler:
34+
35+
* GCC >= 4.6
36+
* clang >= 3.2
37+
* ICC >= 13
38+
* Visual Studio >= 2012
39+
40+
41+
## Building and Installing Vc
42+
43+
* Create a build directory:
44+
45+
```sh
46+
$ mkdir build
47+
$ cd build
48+
```
49+
50+
* Call cmake with the relevant options:
51+
52+
```sh
53+
$ cmake -DCMAKE_INSTALL_PREFIX=/opt/Vc -DBUILD_TESTING=OFF <srcdir>
54+
```
55+
56+
* Build and install:
57+
58+
```sh
59+
$ make -j16
60+
$ make install
61+
```
62+
63+
64+
## Publications
65+
66+
* [M. Kretz and V. Lindenstruth, "Vc: A C++ library for explicit
67+
vectorization", Software: Practice and Experience,
68+
2011.](http://dx.doi.org/10.1002/spe.1149)
69+
* [M. Kretz, "Efficient Use of Multi- and Many-Core Systems with Vectorization
70+
and Multithreading", University of Heidelberg,
71+
2009.](http://code.compeng.uni-frankfurt.de/attachments/13/Diplomarbeit.pdf)
72+
73+
74+
## Communication
75+
76+
A channel on the freenode IRC network is reserved for discussions on Vc:
77+
[##vc on freenode](irc://chat.freenode.net:6665/##vc)
78+
([via SSL](ircs://chat.freenode.net:7000/##vc))
79+
80+
81+
## License
82+
83+
Vc is released under the LGPL 3. Since Vc is a template library this gives you
84+
a lot of freedom. For the details you can take a look at the [Licensing FAQ of
85+
Eigen](http://eigen.tuxfamily.org/index.php?title=Licensing_FAQ) which is a C++
86+
template library released under the LGPL 3 or GPL 2.

0 commit comments

Comments
 (0)