Hi Serdar,
that is peculiar; if you update GNU Radio and VOLK, does it still happen?
Best regards,
Marcus
PS: your English is excellent, don't worry.
On 26.03.2016 16:03, Serdar KOYLU wrote:
> I recently get two USRP-N210 device, two desktop computer etc., build
> GNURadio and others...
>
> Finally many samples runs finely, such as UHD_FTT etc. But both
> benchmark_rx.py for OFDM and narrowband, get an SIGSEGV and halted.
>
> My CPU conf: I7 4790K, 4GHz, 16 GB RAM, H97 Chipset, on two machines.
>
> from cpuinfo:
> flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
> mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe
> syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts
> rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq
> dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1
> sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c
> rdrand lahf_lm abm ida arat pln pts dtherm tpr_shadow vnmi
> flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms
> invpcid xsaveopt
>
> My software versions:
>
> [root@localhost centos]# gnuradio-config-info -v
> 3.7.9.1
>
> [root@localhost centos]# uhd_config_info
> linux; GNU C++ version 4.8.5 20150623 (Red Hat 4.8.5-4); Boost_105300;
> UHD_003.010.git-119-g42a3eeb6
>
> [root@localhost centos]# uname -a
> Linux localhost.localdomain 3.10.0-327.4.5.el7.x86_64 #1 SMP Mon Jan
> 25 22:07:14 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
>
> For a basic debug test, ofdm/benchmark_py in gdb (only "bt" cmd
> responses):
>
> run ./benchmark_rx.py -f 1299250000 -a addr=192.168.10.2
>
> Using Volk machine: avx2_64_mmx
> [New Thread 0x7fffdd0d6700 (LWP 30663)]
> [New Thread 0x7fffcffff700 (LWP 30664)]
> [New Thread 0x7fffcf7fe700 (LWP 30665)]
> [New Thread 0x7fffceffd700 (LWP 30666)]
> [New Thread 0x7fffce7fc700 (LWP 30667)]
> [New Thread 0x7fffcdffb700 (LWP 30668)]
> [New Thread 0x7fffcd7fa700 (LWP 30669)]
>
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 0x7fffcf7fe700 (LWP 30665)]
> volk_32fc_x2_multiply_32fc_a_avx2_fma (cVector=0x31a5f70,
> aVector=0x318bf40, bVector=0x31aa4e0, num_points=512) at
> /home/serdar/gnuradio/volk/kernels/volk/volk_32fc_x2_multiply_32fc.h:254
> 254 _mm256_store_ps((float*)c,z); // Store the results back
> into the C container
> (gdb)
> (gdb) bt
> #0 volk_32fc_x2_multiply_32fc_a_avx2_fma (cVector=0x31a5f70,
> aVector=0x318bf40, bVector=0x31aa4e0, num_points=512) at
> /home/serdar/gnuradio/volk/kernels/volk/volk_32fc_x2_multiply_32fc.h:254
> #1 0x00007fffe6065200 in gr::filter::kernel::fft_filter_ccc::filter
> (this=0x318a600, nitems=nitems@entry=358, input=0x7ffff7fd0000,
> output=0x7ffff7f22000)
> at /home/serdar/gnuradio/gr-filter/lib/fft_filter.cc:323
> #2 0x00007fffe6092f46 in gr::filter::fft_filter_ccc_impl::work
> (this=0x3189270, noutput_items=358, input_items=..., output_items=...)
> at /home/serdar/gnuradio/gr-filter/lib/fft_filter_ccc_impl.cc:112
> #3 0x00007fffeff6cd67 in gr::sync_decimator::general_work
> (this=0x31892a0, noutput_items=<optimized out>, ninput_items=...,
> input_items=..., output_items=...)
> at /home/serdar/gnuradio/gnuradio-runtime/lib/sync_decimator.cc:66
> #4 0x00007fffeff3a467 in gr::block_executor::run_one_iteration
> (this=this@entry=0x7fffcf7fddb0) at
> /home/serdar/gnuradio/gnuradio-runtime/lib/block_executor.cc:451
> #5 0x00007fffeff75116 in gr::tpb_thread_body::tpb_thread_body
> (this=0x7fffcf7fddb0, block=..., max_noutput_items=<optimized out>) at
> /home/serdar/gnuradio/gnuradio-runtime/lib/tpb_thread_body.cc:122
> #6 0x00007fffeff6a7e1 in operator() (this=0x31f5030) at
> /home/serdar/gnuradio/gnuradio-runtime/lib/scheduler_tpb.cc:44
> #7 operator() (this=0x31f5030) at
> /home/serdar/gnuradio/gnuradio-runtime/include/gnuradio/thread/thread_body_wrapper.h:51
> #8
> boost::detail::function::void_function_obj_invoker0<gr::thread::thread_body_wrapper<gr::tpb_container>,
> void>::invoke (function_obj_ptr=...) at
> /usr/include/boost/function/function_template.hpp:153
> #9 0x00007fffeff22240 in operator() (this=<optimized out>) at
> /usr/include/boost/function/function_template.hpp:767
> #10 boost::detail::thread_data<boost::function0<void> >::run
> (this=<optimized out>) at /usr/include/boost/thread/detail/thread.hpp:117
> #11 0x00007fffef43b24a in thread_proxy () from
> /lib64/libboost_thread-mt.so.1.53.0
> #12 0x00007ffff7800dc5 in start_thread () from /lib64/libpthread.so.0
> #13 0x00007ffff6e2521d in clone () from /lib64/libc.so.6
> (gdb)
>
> At this point, gdb cannot show "z" value, (<optimized out>).
> Belongated code this, i think:
>
> static inline void volk_32fc_x2_multiply_32fc_a_avx2_fma(lv_32fc_t*
> cVector, const lv_32fc_t* aVector, const lv_32fc_t* bVector, unsigned
> int num_points){
> unsigned int number = 0;
> const unsigned int quarterPoints = num_points / 4;
>
> lv_32fc_t* c = cVector;
> const lv_32fc_t* a = aVector;
> const lv_32fc_t* b = bVector;
>
> for(;number < quarterPoints; number++){
> const __m256 x = _mm256_load_ps((float*)a); // Load the ar + ai,
> br + bi as ar,ai,br,bi
> const __m256 y = _mm256_load_ps((float*)b); // Load the cr + ci,
> dr + di as cr,ci,dr,di
> const __m256 yl = _mm256_moveldup_ps(y); // Load yl with cr,cr,dr,dr
> const __m256 yh = _mm256_movehdup_ps(y); // Load yh with ci,ci,di,di
> const __m256 tmp2x = _mm256_permute_ps(x,0xB1); // Re-arrange x to
> be ai,ar,bi,br
> const __m256 tmp2 = _mm256_mul_ps(tmp2x, yh); // tmp2 =
> ai*ci,ar*ci,bi*di,br*di
> const __m256 z = _mm256_fmaddsub_ps(x, yl, tmp2); // ar*cr-ai*ci,
> ai*cr+ar*ci, br*dr-bi*di, bi*dr+br*di
>
> // ------------------------------------------------------------------
> // At this point, SIGSEGV Occurred and gdb reports:
> // c = cVector = 0x31a5f70
> // number = 0
> // z = Unknown, optimized out :(
>
> _mm256_store_ps((float*)c,z); // Store the results back into the C
> container
>
> a += 4;
> b += 4;
> c += 4;
> }
>
> ----------------------------------------------------------------------------------------------------------------
>
> I'm very novice for DSP or SIMD coding, i can't help more :(
>
> Excuse me for bad english..
>
> Best regards..
>
>
>
>
>
>
>
>
>
>
>
>
> _______________________________________________
> Discuss-gnuradio mailing list
> [email protected]
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
_______________________________________________
Discuss-gnuradio mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio