[Interest] Enabling NEON on a Qt Android app

Nuno Santos nunosantos at imaginando.pt
Fri May 6 08:58:30 CEST 2016


Hi,

What are the necessary steps in order to enable NEON on a Arm processor that supports it? 

I’m wondering if I need to enable things like -mfpu=neon on GCC flags or if I just simply need to do things like this:

http://developer.android.com/ndk/guides/cpu-arm-neon.html <http://developer.android.com/ndk/guides/cpu-arm-neon.html>

#include <cpu-features.h>
...
...
if (android_getCpuFamily() == ANDROID_CPU_FAMILY_ARM && (android_getCpuFeatures() & ANDROID_CPU_ARM_FEATURE_NEON) != 0)
{
    // use NEON-optimized routines
    ...
}
else
{
    // use non-NEON fallback routines instead
    ...
}

One curious things is that I was unable to have android_getCpuFamily and android_getCpuFeatures detected by the compiler.

Also, in the following article: https://www.kdab.com/qt-android-episode-4/ <https://www.kdab.com/qt-android-episode-4/>

Advantages:

Using Ministro, the user needs to download the Qt libs ONLY once. If the user downloads another Qt application, it will use the existing libraries. Of course if that application needs more libs, Ministro will download only those that are missing.
Ministro can detect if the device armv5 CPU has VFP or if the device armv7 CPU has NEON and it can download libs specific to that device CPU. Even if your application is not built with these CPU features, just using Qt libs built with them will make it run faster (on armv5, VFP really makes the difference, it will be way much faster). Currently these libs are not available, but I intend to publish them starting with 5.4.
The article has a couple of years. Is it still valid?

I’m completely aware that I would need to refactor my code in order to take advantage of NEON, but i’m getting to a point where I can’t do much more to improve performance.

Has anyone used NEON within a Qt Android app? Please advise.

Regards,

Nuno
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20160506/b6eef6e5/attachment.html>


More information about the Interest mailing list