discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: [Discuss-gnuradio] Volk library invalid opcode exception


From: Tom Rondeau
Subject: Re: [Discuss-gnuradio] Volk library invalid opcode exception
Date: Sun, 15 Apr 2012 10:29:53 -0400

On Sun, Apr 15, 2012 at 10:11 AM, Joanna Rutkowska
<address@hidden> wrote:
> On 04/15/12 15:28, Tom Rondeau wrote:
>> On Sun, Apr 15, 2012 at 7:07 AM, Joanna Rutkowska
>> <address@hidden> wrote:
>>> Hello, I'm getting the invalid opcode exception whenever the volk
>>> library is used from gr/grc. It is also easy to reproduce by executing
>>> volk_profile:
>>>
>>> address@hidden gnuradio]$ volk_profile
>>> Using Volk machine: avx_64
>>> RUN_VOLK_TESTS: volk_16ic_s32f_deinterleave_real_32f_a
>>> Illegal instruction
>>> address@hidden gnuradio]$ dmesg
>>> [ 6920.211094] volk_profile[25627] trap invalid opcode ip:7f8145b74d40
>>> sp:7fff41dfac78 error:0 in libvolk.so.0.0.0[7f8145ad7000+cf000]
>>>
>>> I tried v3.5.2 and v3.5.2 build directly from git, using the building
>>> script from here:
>>>
>>> http://gnuradio.org/redmine/repositories/changes/gnuradio/README
>>>
>>> Here's my cpuinfo:
>>>
>>> address@hidden gnuradio]$ cat /proc/cpuinfo
>>> processor       : 0
>>> vendor_id       : GenuineIntel
>>> cpu family      : 6
>>> model           : 42
>>> model name      : Intel(R) Core(TM) i5-2540M CPU @ 2.60GHz
>>> stepping        : 7
>>> cpu MHz         : 2591.660
>>> cache size      : 3072 KB
>>> physical id     : 0
>>> siblings        : 4
>>> core id         : 1
>>> cpu cores       : 1
>>> apicid          : 3
>>> initial apicid  : 3
>>> fpu             : yes
>>> fpu_exception   : yes
>>> cpuid level     : 13
>>> wp              : yes
>>> flags           : fpu de tsc msr pae cx8 sep cmov pat clflush mmx fxsr sse 
>>> sse2
>>> ss ht syscall nx lm constant_tsc nopl aperfmperf pni pclmulqdq ssse3
>>> cx16 sse4_1 sse4_2 x2apic popcnt aes hypervisor lahf_lm ida arat epb pln
>>> pts dts
>>> bogomips        : 5183.32
>>> clflush size    : 64
>>> cache_alignment : 64
>>> address sizes   : 36 bits physical, 48 bits virtual
>>> power management:
>>>
>>> (and repeated 3x times for the other cores).
>>>
>>> And, FWIW, this is the autoconfig snippet:
>>>
>>> -- Configuring volk support...
>>> --   Enabling volk support.
>>> --   Override with -DENABLE_VOLK=ON/OFF
>>> -- Boost version: 1.46.0
>>> -- Found the following Boost libraries:
>>> --   unit_test_framework
>>> -- checking for module 'orc-0.4'
>>> --   found orc-0.4, version 0.4.16
>>> -- Found ORC: /usr/lib64/liborc-0.4.so
>>> -- Check size of void*
>>> -- Check size of void* - done
>>> -- Performing Test have_maltivec
>>> -- Performing Test have_maltivec - Failed
>>> -- Performing Test have_mfpu=neon
>>> -- Performing Test have_mfpu=neon - Failed
>>> -- 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
>>> -- 32 overruled
>>> -- Performing Test have_m64
>>> -- Performing Test have_m64 - Success
>>> -- Performing Test have_m3dnow
>>> -- Performing Test have_m3dnow - Success
>>> -- Performing Test have_msse4.2
>>> -- Performing Test have_msse4.2 - Success
>>> -- Performing Test have_mpopcnt
>>> -- Performing Test have_mpopcnt - Success
>>> -- Performing Test have_mmmx
>>> -- Performing Test have_mmmx - Success
>>> -- Performing Test have_msse
>>> -- Performing Test have_msse - Success
>>> -- Performing Test have_msse2
>>> -- Performing Test have_msse2 - Success
>>> -- Performing Test have_lorc-0.4
>>> -- Performing Test have_lorc-0.4 - Success
>>> -- Performing Test have_msse3
>>> -- Performing Test have_msse3 - Success
>>> -- Performing Test have_mssse3
>>> -- Performing Test have_mssse3 - Success
>>> -- Performing Test have_msse4a
>>> -- Performing Test have_msse4a - Success
>>> -- Performing Test have_msse4.1
>>> -- Performing Test have_msse4.1 - Success
>>> -- Performing Test have_mavx
>>> -- Performing Test have_mavx - Success
>>> -- Available arches:
>>> generic;64;3dnow;abm;popcount;mmx;sse;sse2;orc;sse3;ssse3;sse4_a;sse4_1;sse4_2;avx
>>> -- Available machines:
>>> generic;sse2_only;sse2_64;sse3_64;ssse3_64;sse4_a_64;sse4_1_64;sse4_2_64;avx_64;avx_only
>>> -- Using install prefix: /usr/local
>>> -- Found Doxygen: /usr/bin/doxygen
>>>
>>> One more thing to note that I'm running in a Xen PV VM, although this
>>> should not matter, as the usermode instructions execute directly on the
>>> CPU in this mode.
>>>
>>> Thanks,
>>> joanna.
>>
>> Can you try to build using cmake? We've had some issues with the
>> autotools scripts setting up the right Volk machines and being on a VM
>> might be confusing it.
>>
> Hm... actually I've been using cmake already... Anyway, I tried to run
> cmake only for the volk component manually:
>
> address@hidden gnuradio]$ cd volk/
> address@hidden volk]$ mkdir build
> address@hidden volk]$ cd build/
> address@hidden build]$ cmake -D GR_RUNTIME_DIR=bin ..
> /.../
> address@hidden build]$ make
> /.../
> address@hidden build]$ apps/volk_profile
> Using Volk machine: avx_64
> RUN_VOLK_TESTS: volk_16ic_s32f_deinterleave_real_32f_a
> Illegal instruction
>
> Perhaps you meant to not use cmake? Can you provide the specific build
> instructions I should try?
>
> Thanks,
> joanna.


No, I definitely meant that you should use cmake. Above you had
mentioned the "autoconfig snippet," so I though you were using the
autotools build.

Does 'make test' pass? If not, can you run:

   ctest -V -R volk

And provide the output.

Tom



reply via email to

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