Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.
The Intel sign-in experience has changed to support enhanced security controls. If you sign in, click here for more information.
7782 Discussions

who are using svml,i have some question about svml


hi everyone

i have somequestion about svml(short vector math library),are there any one using svml in a open project,or any open project used svml;i want to know the performance of svml vs other vector libm

0 Kudos
2 Replies

anyone ????

Black Belt

I don't think your question is entirely clear.  As far as I know, there is no useful short vector math library other than svml, and no one has tackled an open source equivalent.  People have demonstrated use of Intel svml under gfortran, but I don't think it is an entirely satisfactory method. 

As the documentation states, svml permits up to 4 Ulps (bits accuracy in the "last place") deviation from fully accurate math libraries such as Intel scalar or gnu libraries.  Those larger deviations generally show up only in corner cases such as sin(ridiculously big number) but are noticeable in normal usage under the ** operation.  It's not practical to vectorize functions such as extra precision range reduction.  For example, you might see full accuracy of sin() only within [+- Pi/4].  These are among the reasons why Intel compilers have several options to compile with or without svml.

The concept of svml was demonstrated in the late 1980's with the compiler for MultiFlow.   With that compiler it was feasible to write your own compatible replacements for "short vector" functions in C.  They didn't talk about vectorization as they wanted to distinguish their trace compilation from big iron vectorization.  In fact, a vector chunk math function could run in parallel with other expression evaluations on a single threaded CPU.

As you know, among the purposes of svml compared with long vector function libraries is to facilitate automatic compiler vectorization of complicated expressions involving math libraries, and to achieve better performance both with moderate vector lengths and with vector lengths big enough to impose questions of cache size and performance.  This is practical only with built-in compiler support for such auto-vectorization and multiplies the size of the math library code base by a factor of 2 or more.

In my experience, full support for svml is among the few aspects of clear superiority of Intel compilers over open source alternatives.  It is a big one in terms of compiler and library team support requirement.

I have to assume that your definition of open project excludes use of closed source compilers and libraries as I don't see the point of your question otherwise.