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
Reasonably Related 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