I am trying to use the volk_32fc_x2_multiply_conjugate_32fc_a_sse3() in
my
signal processing code. However, when I compile my code, it was told
that Error “SSE3 instruction set not enabled” and the intrinsics within
this VOLK method are not recognized at all.
It was told that the -msse3 option is needed in gcc/g++ compilation to
enable the support on sse3. But I don’t know where I can specify this
option. I did not find related content in the CMakelist of other blocks
who
support sse, like some filters.
Also, my CPU is Core I7-2600, which is suppose to support SSE3.
Also, my CPU is Core I7-2600, which is suppose to support SSE3.
Thanks,
–
Alex,
Dreams can come true just believe.
Alex,
VOLK is not intended for you to explicitly call a kernel of a
particular type. You want to call the abstract verson
(volk_32fc_x2_multiply_conjugate_32fc_a) and let the VOLK runtime
decide what the best available proto-kernel is (this is determined
from your volk_config file after you run volk_profile). That will make
sure that you are using a proto-kernel that you properly compiled and
that can run on your processor.
To check more into why SSE3 is not available on your machine, take a
look at the output of cmake to see what it tells you. You can look to
see what the value of “have_msse3” is in the CMakeCache.txt file.
During make, you can run ‘make VERBOSE=1’ to get the full compile
line, too, where you can see what flags are actually being used by GCC
when compiling.