[opus] Test failed!! (was: Re: Opus 1.1.1 is out!)

Jesus Cea jcea at jcea.es
Thu Nov 26 10:33:14 PST 2015


On 26/11/15 16:40, Jean-Marc Valin wrote:
> Please report any issue you find in this release.

Using the new SS4.1 code I see a 30% performance increase in my 7 years
old AMD laptop. I compile with this:

    ./configure --disable-static --enable-intrinsics \
                --enable-float-approx

"make test" runs fine. Great.

When I try to do the same on a server running Ubuntu 12.04 with
"/dev/cpuinfo":

"""
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 15
model name      : Intel(R) Pentium(R) Dual  CPU  E2180  @ 2.00GHz
stepping        : 13
cpu MHz         : 2000.000
cache size      : 1024 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 2
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 10
wp              : yes
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 lm constant_tsc arch_perfmon pebs bts rep_good nopl
aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm
lahf_lm dtherm
bogomips        : 3990.19
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor       : 1
vendor_id       : GenuineIntel
cpu family      : 6
model           : 15
model name      : Intel(R) Pentium(R) Dual  CPU  E2180  @ 2.00GHz
stepping        : 13
cpu MHz         : 2000.000
cache size      : 1024 KB
physical id     : 0
siblings        : 2
core id         : 1
cpu cores       : 2
apicid          : 1
initial apicid  : 1
fpu             : yes
fpu_exception   : yes
cpuid level     : 10
wp              : yes
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 lm constant_tsc arch_perfmon pebs bts rep_good nopl
aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm
lahf_lm dtherm
bogomips        : 4007.50
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:
"""

Code compiles fine, but running the test suite I see this:

"""
configure:
------------------------------------------------------------------------
  opus 1.1.1:  Automatic configuration OK.

    Compiler support:

      C99 var arrays: ................ yes
      C99 lrintf: .................... yes
      Use alloca: .................... no (using var arrays)
    General configuration:

      Floating point support: ........ yes
      Fast float approximations: ..... yes
      Fixed point debugging: ......... no
      Inline Assembly Optimizations: . No inline ASM for your platform,
please send patches
      External Assembly Optimizations:
      Intrinsics Optimizations.......: x86 SSE SSE2 SSE4.1
      Run-time CPU detection: ........ x86 SSE4.1
      Custom modes: .................. no
      Assertion checking: ............ no
      Fuzzing: ....................... no

      API documentation: ............. yes
      Extra programs: ................ yes
------------------------------------------------------------------------
[...]

$ make check
PASS: celt/tests/test_unit_types
./test-driver: line 107: 10065 Illegal instruction     "$@" > $log_file 2>&1
FAIL: celt/tests/test_unit_mathops
PASS: celt/tests/test_unit_entropy
PASS: celt/tests/test_unit_laplace
PASS: celt/tests/test_unit_dft
PASS: celt/tests/test_unit_mdct
PASS: celt/tests/test_unit_rotation
PASS: celt/tests/test_unit_cwrs32
PASS: tests/test_opus_api
PASS: tests/test_opus_decode
PASS: tests/test_opus_decode
PASS: tests/test_opus_encode
PASS: tests/test_opus_padding
==================================
   opus 1.1.1: ./test-suite.log
==================================

# TOTAL: 12
# PASS:  11
# SKIP:  0
# XFAIL: 0
# FAIL:  1
# XPASS: 0
# ERROR: 0

.. contents:: :depth: 2

FAIL: celt/tests/test_unit_mathops
==================================

FAIL celt/tests/test_unit_mathops (exit status: 132)

============================================================================
Testsuite summary for opus 1.1.1
============================================================================
# TOTAL: 12
# PASS:  11
# SKIP:  0
# XFAIL: 0
# FAIL:  1
# XPASS: 0
# ERROR: 0
============================================================================
See ./test-suite.log
Please report to opus at xiph.org
============================================================================

$ cat test-suite.log
==================================
   opus 1.1.1: ./test-suite.log
==================================

# TOTAL: 12
# PASS:  11
# SKIP:  0
# XFAIL: 0
# FAIL:  1
# XPASS: 0
# ERROR: 0

.. contents:: :depth: 2

FAIL: celt/tests/test_unit_mathops
==================================

FAIL celt/tests/test_unit_mathops (exit status: 132)

"""

I think that the server CPU is not SSE4.1 compatible, checking its
"/dev/cpuinfo" details.


If I compile the code with "--disable-static --enable-intrinsics", tests
run fine and performance improves 14% compared with OPUS 1.1 release.
That is what I have now in production in the server.

-- 
Jesús Cea Avión                         _/_/      _/_/_/        _/_/_/
jcea at jcea.es - http://www.jcea.es/     _/_/    _/_/  _/_/    _/_/  _/_/
Twitter: @jcea                        _/_/    _/_/          _/_/_/_/_/
jabber / xmpp:jcea at jabber.org  _/_/  _/_/    _/_/          _/_/  _/_/
"Things are not so easy"      _/_/  _/_/    _/_/  _/_/    _/_/  _/_/
"My name is Dump, Core Dump"   _/_/_/        _/_/_/      _/_/  _/_/
"El amor es poner tu felicidad en la felicidad de otro" - Leibniz

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: OpenPGP digital signature
Url : http://lists.xiph.org/pipermail/opus/attachments/20151126/bd766131/attachment.pgp 


More information about the opus mailing list