[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] Volk: Am I getting all that's available for ARM?

From: Marcus Müller
Subject: Re: [Discuss-gnuradio] Volk: Am I getting all that's available for ARM?
Date: Wed, 07 Aug 2013 02:44:47 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130625 Thunderbird/17.0.7

Hi Tim,
as far as I can tell, there's not much you can do to improve your arithmetic 
"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 
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 
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


-- 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 - 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,

Discuss-gnuradio mailing list

reply via email to

[Prev in Thread] Current Thread [Next in Thread]