Closed Bug 1221871 Opened 9 years ago Closed 8 years ago

investigate why avx libav fft routines are not used

Categories

(Core :: Web Audio, defect, P2)

45 Branch
Unspecified
Linux
defect

Tracking

()

RESOLVED INVALID
Tracking Status
firefox45 --- affected

People

(Reporter: karlt, Unassigned)

References

(Blocks 1 open bug)

Details

(Keywords: perf)

https://bugzilla.mozilla.org/show_bug.cgi?id=1205458#c5 shows Chromium using avx libav fft routines but Firefox is using only sse routines.  The avx symbols in the object files indicate that their routines are compiled.
It turns out that libav is not enabled for os x due to "text relocation issues" [1]. I checked this morning and libav is being used as expected for 64 bit linux. Did you do your performance analysis on os x?

[1] https://dxr.mozilla.org/mozilla-central/source/configure.in#6196
Flags: needinfo?(karlt)
libav should be enabled on OS X when running the 64-bit binary, but perhaps it is not.

I was doing analysis on Linux with the amd64 executable.  libav was being used but it was using its sse routines.  avx routines should be used when the cpu supports these instructions.
Flags: needinfo?(karlt)
OS: Unspecified → Linux
I investigated this a little bit further. I set breakpoints for ff_fft_calc_sse and ff_fft_calc_avx in gdb and ran the dom/media/webaudio/test/test_convolverNodeWithGain.html mochitest.

On my system, I see no hits for ff_fft_calc_sse and plenty for ff_fft_calc_avx. This was also the case when running the webaudio benchmarks.

I also checked fft16_sse and fft16_avx with the same results - only hits for fft16_avx.
Thanks for looking.  I think this bug is probably invalid, sorry.  The cpu I have here is Intel(R) Core(TM) i7 CPU Q 720, which is from the Nehalem series and does not support avx instructions.  I don't know why Chromium is apparently spending cpu cycles in ff_fft_calc_avx but perhaps that is a quirk of optimization or symbol lookup.
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.