discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: [Discuss-gnuradio] benchmark_* not working correctly


From: Tim Meehan
Subject: Re: [Discuss-gnuradio] benchmark_* not working correctly
Date: Mon, 1 Oct 2007 18:07:51 -0700


Eric,


The QA code (qa_gr_fir_ccf.cc) forces a 16 byte alignment.  When the malloc16Allign is replaced with a regular malloc in the QA code, make check fails.

I believe that there is an additional requirement that the data passed to the low-level SSE code have the real sample start on the 0th or 2nd 4 byte float.  For example the R / C represents 4 byte floats (Real, Complex) , 0 represents "forced alignment" from gr_fir_ccf_simd.cc
RCRC...  OK
00RC...  OK
0RCR...  Not OK

Q: Is my assumption of the additional requirement correct?

Q: I don't think it will be easy to force the additional requirement with the same trick used in gr_fir_ccf_simd.cc; do you agree?


Tim


Yes, it does get called at "make check" time.

FWIW, it's run by way of gnuradio-core/src/tests/test_all

It's possible that there's an alignment requirement that's not being
honored at runtime.  The low-level SSE code (fcomplex_dotprod_sse64.S)
requires that its input and taps be 16-byte aligned.  gr_fir_ccf_simd
allocates 16-byte aligned buffers for the relevant buffers, so it
should be working OK.   Perhaps one of you seeing the problem could
add an assert or two to confirm that the alignment is correct.

Eric


_______________________________________________
Discuss-gnuradio mailing list
address@hidden
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


reply via email to

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