7

I am trying to calculate the exponential function using SIMD. and I found this function : https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_exp_ps&expand=2136

I have already included "immintrin.h" in my code, and also my cpu has a SSE flag. But gcc is complaining that error: ‘_mm_exp_pd’ was not declared in this scope

How could I check whether SVML instructions is enabled ?

Paul R
  • 208,748
  • 37
  • 389
  • 560
bbvan
  • 618
  • 1
  • 7
  • 17

1 Answers1

5

SVML is a proprietary Intel library that works with the Intel compiler (ICC). If you're not using ICC then you'll need to find an equivalent library, e.g. sse_mathfun or avx_mathfun.

UPDATE: Visual C++ 2019 supports Intel SVML for x86/x64 architectures.

Chuck Walbourn
  • 38,259
  • 2
  • 58
  • 81
Paul R
  • 208,748
  • 37
  • 389
  • 560
  • 2
    A search for svml on my system with the Intel OpenCL SDK runtime installed turned up some svml dlls. My guess is that Intel OpenCL uses SVML i.e. you can get SVML for free indrectly through OpenCL. – Z boson Feb 09 '17 at 08:25
  • 3
    I would also mention [Agner Fog's Library - Vector Class Library (VCL)](http://www.agner.org/optimize/). – Royi Feb 18 '18 at 02:36
  • 1
    Note that VS 2019 includes support for SVML – Chuck Walbourn May 05 '20 at 00:02
  • 2
    There's also a [SLEEF](https://sleef.org/) library, planned to be used by LLVM. – Mingye Wang Jun 09 '20 at 10:26