Hi Tim, as far as I can tell, there's not much you can do to improve your arithmetic performance "out of the box". However, you already seem to apply some compiler flags; however, as it seems, detection of Neon fails. That points to volk/tmpl/volk_cpu.tmpl.c: has_neon() not being able to detect neon on your machine; this may have a lot of reasons, from wrong file permissions on /proc/self/auxv to the kernel actually displaying neon support without exposing that via aforementioned file. Ideas on that: - has your kernel's build config maybe not enabled neon? - does executing hexdump /proc/self/auxv|sed '0000 0010' show anything? [1] If not, could you please report the complete output of hexdump /proc/self/auxv - if you don't specify _any_ compiler flags when calling cmake in an (unused) build folder, which compiler flags does cmake set? ($>grep C_FLAGS CMakeCache.txt)
Happy hacking Marcus Müller [1] note: in kernel terms of auxvec.h this stands for AT_HWCAP, see http://lxr.free-electrons.com/source/include/uapi/linux/auxvec.h?a=arm#L24 How Volk handles it looks like AT_HWCAP can only start on a 4-byte-aligned address within auxv; I'm absolutely not sure whether this is correct; on my x86_64 machine, there is no AT_HWCAP in that case. On 08/07/2013 01:40 AM, Monahan-Mitchell, Tim wrote:
Volk only gives me 'generic'. Is there some component available that I can to add to my system to get more out of it? Neon is detected, so I think that is why I see the 'generic_orc' machine listed. The gory details: gnuradio v3.7.0 Ubuntu 13.04 LTS (ARM distribution, ubuntu-core-13.04-core-armhf.tar.gz) Part of my cmake config : cmake -DCMAKE_C_FLAGS:STRING="-I/usr/include/arm-linux-gnueabihf -mcpu=cortex-a15 \ -mfpu=neon -mvectorize-with-neon-quad -ffast-math -funsafe-loop-optimizations" \ Parts of the cmake output: -- The CXX compiler identification is GNU 4.7.3 -- The C compiler identification is GNU 4.7.3 <snip> -- Configuring volk support... -- Enabling volk support. -- Override with -DENABLE_VOLK=ON/OFF -- Found PythonInterp: /usr/bin/python2 (found suitable version "2.7.4") -- -- Python checking for python >= 2.5 -- Python checking for python >= 2.5 - found -- -- Python checking for Cheetah >= 2.0.0 -- Python checking for Cheetah >= 2.0.0 - found -- Boost version: 1.53.0 -- Found the following Boost libraries: -- filesystem -- system -- unit_test_framework -- checking for module 'orc-0.4 > 0.4.11' -- found orc-0.4 > 0.4.11, version 0.4.17 -- Found ORC: /usr/lib/arm-linux-gnueabihf/liborc-0.4.so -- Looking for cpuid.h -- Looking for cpuid.h - not found -- Looking for intrin.h -- Looking for intrin.h - not found -- Looking for fenv.h -- Looking for fenv.h - found -- Looking for dlfcn.h -- Looking for dlfcn.h - found -- Compiler name: GNU -- Performing Test HAVE_WERROR_UNUSED_CMD_LINE_ARG -- Performing Test HAVE_WERROR_UNUSED_CMD_LINE_ARG - Failed -- Performing Test have_maltivec -- Performing Test have_maltivec - Failed -- Performing Test have_mfpu_neon -- Performing Test have_mfpu_neon - Success -- Performing Test have_mfloat_abi_softfp -- Performing Test have_mfloat_abi_softfp - Failed -- Performing Test have_funsafe_math_optimizations -- Performing Test have_funsafe_math_optimizations - Success -- Performing Test have_m32 -- Performing Test have_m32 - Failed -- Performing Test have_m64 -- Performing Test have_m64 - Failed -- Performing Test have_m3dnow -- Performing Test have_m3dnow - Failed -- Performing Test have_msse4_2 -- Performing Test have_msse4_2 - Failed -- Performing Test have_mpopcnt -- Performing Test have_mpopcnt - Failed -- Performing Test have_mmmx -- Performing Test have_mmmx - Failed -- Performing Test have_msse -- Performing Test have_msse - Failed -- Performing Test have_msse2 -- Performing Test have_msse2 - Failed -- Performing Test have_msse3 -- Performing Test have_msse3 - Failed -- Performing Test have_mssse3 -- Performing Test have_mssse3 - Failed -- Performing Test have_msse4a -- Performing Test have_msse4a - Failed -- Performing Test have_msse4_1 -- Performing Test have_msse4_1 - Failed -- Performing Test have_mavx -- Performing Test have_mavx - Failed -- Available arch: generic;orc;norc -- Available machines: generic_orc My /proc/cpuinfo : Processor : ARMv7 Processor rev 2 (v7l) processor : 0 BogoMIPS : 13.53 Features : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 CPU implementer : 0x51 CPU architecture: 7 CPU variant : 0x1 CPU part : 0x04d CPU revision : 2 Thanks in advance, Tim _______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
_______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio