-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Hi Jesus,
Thanks for the report. As far as I can tell, what's happening is that
when intrinsics are enabled, we compile all tests with -msse4.1, even
when it's only run-time detected. In most cases, that doesn't cause
any issue, but sometimes the compiler will take the C code and
generate an SSEx instruction on its own. I think this is what's
happening for you. The actual encoder and decoder should work fine
since they are compiled without -msse except for the files that are
behind auto-detect.
Jean-Marc
On 11/26/2015 01:33 PM, Jesus Cea wrote:> 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.
>
>
>
> _______________________________________________ opus mailing list
> opus at xiph.org http://lists.xiph.org/mailman/listinfo/opus
>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQEcBAEBCAAGBQJWV1a7AAoJEJ6/8sItn9q91i0H/1nsPSGdYfnpmThlA75QlaNt
qzbQvwGZs0zV1ZJ0cPqWO4RuGS23j81QO6ZfQbktFOEclp+YtZEdKPqIkwJ81mFs
xDDT4HcGVtJ9FK4ZHa1TosBVz6EiTx4UG7gJR1zO3hcsviVbwA9ijCG3FZ//vAyN
jkHDZN96YrME3hbVdLIv4MxpFk2j5ibYBSnUkb9omSFj5jvsWRRl7w9xfCfpTsw4
FHHTGfq98Z6r+jNN7ByK6r8drct/dABlQ9R0UbqhSwy/c5Yxbj3sq5W428XIIo6G
XwdTXDnS6Clx1p0jxzmX/vKQaOXH3ldDAgQnOhRmQn6EFwuPiHoFfuSR9WEIQyk=T9UX
-----END PGP SIGNATURE-----