Vc
Vc copied to clipboard
Build Library
Hi, I've been trying to use your utterly un-googlable library (congrats, other suggestions: and, or, AI, etc. etc.). Trying to get some help on the internet, but yeah, sigh, googling (duking actually) spits out pages and pages relating to the Microsoft Compiler (VC - search engine ignoring capitalization). What's not clear from the docs is whether this is a header only library (what seems to be the case, judging from what cmake is spitting out). But then installing those headers, when I try to build the examples, things like IO (from the attic folder) is needed, but not installed (correctly). There are also some allusions to Qt (not mentioned in the requirements). Could you please clarify what to do (including pre-processor defs) to compile the examples. I'm on Win10/64bit on a broadwell (AVX2/BMI1) CPU using VS2017 15.5.3, cmake 3.10.
Thanks in advance,
degski
The library moved its home a few times and Google has not caught up to the github move for some strange reason. However, if you search for "C++ simd library" you will find Vc. Searching for "Vc" is for obvious reasons not going to work, though.
Vc 1.x has a static library. Vc master is currently still header-only but this may change (not decided yet).
Installing Vc master is completely unsupported and untested. I'll happily accept patches to make it work, though. The master branch is still very much in development mode. If you want something stable, better take a release. If you want master please get involved in getting it ready for real world use.
The examples do not compile on Vc master. They're unchanged from the 1.3 code base.
And finally, MSVC is a PITA to support for me. If you're serious about wanting to work with Vc master and MSVC you definitely are in for a wild ride. ;-) Again, please help out if you can.
Hi,
Thanks for your comments! Header only is good. Would it be possible to re-organise the layout of the GitHib folders to have an include folder (including all that is required, for this lib to function). Then afterwards this folder could/can be just copied into an appropriate place (no need for cmake)? I'm not so worried about stability (I'll get to that, after I at least got all the headers together in the appropriate layout (I guess this means to get rid of "the attic" to fuse that with the other headers))... The bit I did get to work (the motivating example in the docs), when I was trying showed AVX2 instructions were used, while without the lib, SSE2 instructions were produced for the same/similar function. What I'm trying to say is that Vc seems to work, but in a more complicated setup some stuff was missing (which had something to do with the stuff in "the attic"), but I couldn't put it together properly for it to work.
Have a good day,
degski
Please ignore everything called (and below) "attic". This is code from the Vc 1.3 branch that I kept around for easier reuse in the 2.0 development.
The "install" folder you're looking for is the "Vc" directory. I.e. as long as it's header-only add -I <path to your Vc master clone>
to your compiler flags and you can #include <Vc/simd>
.
Thanks for the clarification. Based on your comments, I guess, that f.e. the example "matrix", which has #include <Vc/Vc>
and #include <Vc/IO>
on lines 24 and 25, respectively, is a Vc 1.3 example. This is what (to me) created the "attic"-confusion, no problem, I'll run with #include <Vc/simd>
.
Since Vc (or VC) and simd (or SIMD) are such common words (in computing), I still think you could do with a better name, anything that sticks out will do: 'RoadRunner', 'Speedy' (Gonzales), 'Bolt' (Eugene), whatever...