Using GCC 4.9.2, decoding the opus test vector set 10 times. All tests pass. I will do longer tests later with a larger test set, but it looks good so far. I am having a lot of trouble with the Ne10 detection. Using the precompiled Ne10 binaries at http://people.linaro.org/~viswanath.puttagunta/opus/NE10_root/ Both NE10 and Ne10 capitalizations seem to be in use. Also, where should the NE10 headers be installed? In $PREFIX/include or $PREFIX/include/Ne10/? The configure.ac tests seems to assume the former, but your precompiled root disagrees. Opus master (36e0445) Float: 20.312s Fast float: 20.542s Fixed: 17.402s Opus rfcv1_final_xcorr_fixed_armv8 (eb95379) Fixed w/ intrinsics, no ne10: 16.384s
Viswanath Puttagunta
2015-Apr-02 22:21 UTC
[opus] Testing ARMv8 Ne10 and intrinsics branch
Hello Thomas,
I use the following configure command to link against Ne10
Eg:
configure --host=arm-linux-gnueabihf --enable-intrinsics
--with-NE10-libraries=${BUILD_NE10_LIB}
--with-NE10-includes=${BUILD_NE10_INC}"
So, in my normal testing, I explicitly specify where the NE10 header
files are installed and where the NE10 libraries are installed.
Looking back at configure.ac (AC_DEFUN([OPUS_PATH_NE10],) , if you
want to go the prefix route, following should work
Eg: /usr/local/ (--with-NE10=/usr/local)
lib/
libNE10.so
include/
Ne10.h...
so, something like this should work
configure --host=arm-linux-gnueabihf --enable-intrinsics --with-NE10=/usr/local
But, I see the problem with the pre-compiled binaries at
http://people.linaro.org/~viswanath.puttagunta/opus/NE10_root/
simple --with-NE10=/usr/local will not work since I put the include
files in /usr/local/include/Ne10/ instead of just /usr/local/include/
You either must copy the /usr/local/include/Ne10/* into /usr/local/include/
and use --with-NE10=/usr/local
So explicitly specify location of library and includes using
--with-NE10-libraries=/usr/local/lib
--with-NE10-includes=/usr/local/include/Ne10
Regards,
Vish (Viswanath Puttagunta)
Cell: 972-342-0205
Technical Program Manager
Member Services, Linaro
On 2 April 2015 at 17:05, Thomas Daede <tdaede at mozilla.com>
wrote:> Using GCC 4.9.2, decoding the opus test vector set 10 times. All tests
> pass. I will do longer tests later with a larger test set, but it looks
> good so far.
>
> I am having a lot of trouble with the Ne10 detection. Using the
> precompiled Ne10 binaries at
> http://people.linaro.org/~viswanath.puttagunta/opus/NE10_root/
>
> Both NE10 and Ne10 capitalizations seem to be in use. Also, where should
> the NE10 headers be installed? In $PREFIX/include or
> $PREFIX/include/Ne10/? The configure.ac tests seems to assume the
> former, but your precompiled root disagrees.
>
> Opus master (36e0445)
> Float: 20.312s
> Fast float: 20.542s
> Fixed: 17.402s
>
> Opus rfcv1_final_xcorr_fixed_armv8 (eb95379)
> Fixed w/ intrinsics, no ne10: 16.384s
Okay, I got it working now. Also had to set LD_LIBRARY_PATH due to the shared libraries not being in standard locations. Speed: Float w/ ne10 and intrinsics: 18.814s Fast float w/ ne10 and intrinsics: 18.243s Fixed w/ ne10 and intrinsics: 15.843s Seems about right, and more importantly all tests pass in all of the configurations I tried. I really would like to see upstream Ne10 include a pkg-config file though, then you could easily test for the release version with your additions. Tim will do a review and then we can land these. On 04/02/2015 03:21 PM, Viswanath Puttagunta wrote:> Hello Thomas, > > I use the following configure command to link against Ne10 > Eg: > > configure --host=arm-linux-gnueabihf --enable-intrinsics > --with-NE10-libraries=${BUILD_NE10_LIB} > --with-NE10-includes=${BUILD_NE10_INC}" > > So, in my normal testing, I explicitly specify where the NE10 header > files are installed and where the NE10 libraries are installed. > > Looking back at configure.ac (AC_DEFUN([OPUS_PATH_NE10],) , if you > want to go the prefix route, following should work > Eg: /usr/local/ (--with-NE10=/usr/local) > lib/ > libNE10.so > include/ > Ne10.h... > so, something like this should work > configure --host=arm-linux-gnueabihf --enable-intrinsics --with-NE10=/usr/local > > But, I see the problem with the pre-compiled binaries at > http://people.linaro.org/~viswanath.puttagunta/opus/NE10_root/ > > simple --with-NE10=/usr/local will not work since I put the include > files in /usr/local/include/Ne10/ instead of just /usr/local/include/ > > You either must copy the /usr/local/include/Ne10/* into /usr/local/include/ > and use --with-NE10=/usr/local > > So explicitly specify location of library and includes using > --with-NE10-libraries=/usr/local/lib > --with-NE10-includes=/usr/local/include/Ne10 > > Regards, > Vish (Viswanath Puttagunta) > Cell: 972-342-0205 > Technical Program Manager > Member Services, Linaro > > > On 2 April 2015 at 17:05, Thomas Daede <tdaede at mozilla.com> wrote: >> Using GCC 4.9.2, decoding the opus test vector set 10 times. All tests >> pass. I will do longer tests later with a larger test set, but it looks >> good so far. >> >> I am having a lot of trouble with the Ne10 detection. Using the >> precompiled Ne10 binaries at >> http://people.linaro.org/~viswanath.puttagunta/opus/NE10_root/ >> >> Both NE10 and Ne10 capitalizations seem to be in use. Also, where should >> the NE10 headers be installed? In $PREFIX/include or >> $PREFIX/include/Ne10/? The configure.ac tests seems to assume the >> former, but your precompiled root disagrees. >> >> Opus master (36e0445) >> Float: 20.312s >> Fast float: 20.542s >> Fixed: 17.402s >> >> Opus rfcv1_final_xcorr_fixed_armv8 (eb95379) >> Fixed w/ intrinsics, no ne10: 16.384s
Apparently Analagous Threads
- Testing ARMv8 Ne10 and intrinsics branch
- [RFC V3 7/8] armv7, armv8: Optimize fixed point fft using NE10 library
- [RFC PATCH v2] Encode optimize using libNe10
- [RFC PATCH v1 0/8] Ne10 fft fixed and previous
- [RFC V3 7/8] armv7, armv8: Optimize fixed point fft using NE10 library