|
From: | Tom Rondeau |
Subject: | Re: [Discuss-gnuradio] [VOLK] volk_profile failures |
Date: | Sun, 7 Jun 2015 12:19:25 -0400 |
That makes sense. I installed ORC 0.4.23 and tried to recompile GR, but the build is failing on Volk. GCC segfaults a couple times before failing with an error on volk_16ic_magnitude_16i_a_orc_impl. Full output here:
https://gist.github.com/nowls/2f6ddf5734e152ca21a7
ORC 0.4.23 was built with:
CFLAGS="-mcpu=cortex-a15.cortex-a7 -mtune=cortex-a15.cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -funsafe-math-optimizations"
CPPFLAGS="-mcpu=cortex-a15.cortex-a7 -mtune=cortex-a15.cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -funsafe-math-optimizations"
UHD built fine w/ ORC 0.4.23.
Sean
NathanMost likely.What we've seen before is that ORC didn't preserve registers according to ARM specifications. This basically results in unpredictable data corruption. The commit I pointed to is the fix (vpush certain registers if used, then vpop after the routine).
The visible corruption is seen by corrupting the test tolerance. If you look at ctest -V you should see that the "error"s are actually the same result, but since tolerance gets corrupted the test erroneously is false. The only QA failures should be on kernels that have an ORC protokernel, but this bug can affect non-ORC protokernels for that kernel.
On Sat, Jun 6, 2015 at 12:47 PM, Nowlan, Sean <address@hidden> wrote:
Ok, I will install ORC 0.4.23 from source. Is ORC involved with all the other architectures that had failures?
Sean
From: West, Nathan <address@hidden>
Sent: Friday, June 5, 2015 6:48 PM
To: Nowlan, Sean
Cc: address@hidden
Subject: Re: [Discuss-gnuradio] [VOLK] volk_profile failuresHi Sean,
I didn't read all of the debug info, but your symptoms are a result of ORC doing bad things.
You can either uninstall ORC or upgrade to the latest release (0.4.23). The commit you really need is this one: http://cgit.freedesktop.org/gstreamer/orc/commit/?id=acdaac31c648fd10f1bd0a49c4c33b483bb9c35cIf you choose to upgrade ORC let me know how it goes.
Cheers,Nathan
On Friday, June 5, 2015, Nowlan, Sean <address@hidden> wrote:
I compiled GNU Radio 3.7.7.1 natively on an ODROID XU3-Lite with Ubuntu 14.04.2 LTS. I ran volk_profile and got a lot of failures for various embedded architectures. Any ideas what could be happening? Could it be something with the compile flags I chose?
volk_16ic_s32f_deinterleave_32f_x2: fail on arch neonvolk_16ic_s32f_deinterleave_32f_x2: fail on arch neonvolk_16ic_s32f_deinterleave_32f_x2: fail on arch u_orcvolk_16ic_s32f_deinterleave_32f_x2: fail on arch u_orcvolk_32fc_s32f_magnitude_16i: fail on arch u_orcvolk_32fc_x2_multiply_32fc: fail on arch a_genericvolk_32fc_x2_multiply_32fc: fail on arch a_genericvolk_32fc_x2_multiply_32fc: fail on arch a_genericvolk_32fc_x2_multiply_32fc: fail on arch neonvolk_32fc_x2_multiply_32fc: fail on arch neonvolk_32fc_x2_multiply_32fc: fail on arch neonvolk_32fc_x2_multiply_32fc: fail on arch neon_opttestsvolk_32fc_x2_multiply_32fc: fail on arch neon_opttestsvolk_32fc_x2_multiply_32fc: fail on arch neon_opttestsvolk_32fc_x2_multiply_32fc: fail on arch neonasmvolk_32fc_x2_multiply_32fc: fail on arch neonasm
volk_32fc_x2_multiply_32fc: fail on arch neonasmvolk_32fc_x2_multiply_32fc: fail on arch u_orcvolk_32fc_x2_multiply_32fc: fail on arch u_orcvolk_32fc_x2_multiply_32fc: fail on arch u_orcvolk_32f_sqrt_32f: fail on arch neonvolk_32f_x3_sum_of_poly_32f: fail on arch a_neonvolk_32f_x3_sum_of_poly_32f: fail on arch neonvertvolk_32fc_s32fc_multiply_32fc: fail on arch neon
Resulting volk_config: https://gist.github.com/nowls/5894fbce1b29325b8f58
Some relevant configuration info taken from CMakeCache.txt (gcc/g++ version and C/CXX/ASM flags):
CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/g++-4.9CMAKE_CXX_COMPILER_WITH_PATH:FILEPATH=/usr/bin/g++-4.9CMAKE_CXX_FLAGS:STRING=-mcpu=cortex-a15.cortex-a7 -mtune=cortex-a15.cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -funsafe-math-optimizationsCMAKE_CXX_FLAGS_DEBUG:STRING=-gCMAKE_CXX_FLAGS_DEBUGPARANOID:STRING=-Wall -Wextra -g -O0CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUGCMAKE_CXX_FLAGS_NOOPTWITHASM:STRING=-Wall -save-temps -g -O0CMAKE_CXX_FLAGS_O2WITHASM:STRING=-Wall -save-temps -g -O2CMAKE_CXX_FLAGS_O3WITHASM:STRING=-Wall -save-temps -g -O3CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUGCMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUGCMAKE_C_COMPILER:FILEPATH=/usr/bin/gcc-4.9CMAKE_C_COMPILER_WITH_PATH:FILEPATH=/usr/bin/gcc-4.9CMAKE_C_FLAGS:STRING=-mcpu=cortex-a15.cortex-a7 -mtune=cortex-a15.cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -funsafe-math-optimizationsCMAKE_C_FLAGS_DEBUG:STRING=-gCMAKE_C_FLAGS_DEBUGPARANOID:STRING=-Wall -Wextra -g -O0CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUGCMAKE_C_FLAGS_NOOPTWITHASM:STRING=-Wall -save-temps -g -O0CMAKE_C_FLAGS_O2WITHASM:STRING=-Wall -save-temps -g -O2CMAKE_C_FLAGS_O3WITHASM:STRING=-Wall -save-temps -g -O3CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUGCMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUGCMAKE_ASM_FLAGS:STRING=-mcpu=cortex-a15.cortex-a7 -mtune=cortex-a15.cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -funsafe-math-optimizationsCMAKE_ASM_FLAGS_DEBUG:STRING=-gCMAKE_ASM_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUGCMAKE_ASM_FLAGS_RELEASE:STRING=-O3 -DNDEBUGCMAKE_ASM_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
Sean Nowlan
_______________________________________________
Discuss-gnuradio mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
[Prev in Thread] | Current Thread | [Next in Thread] |