Not sure if this has already been mentioned, but according to the following
article the GCC NEON intrinsics perform badly when compared to using NEON
instructions directly in assembly: http://hilbert-space.de/?p=22
With the test described in this article, the intrinsics only runs 1.5 times
faster than basic C, whereas assembly provides x7.5 speedup.
If that allows to consume 7.5 times less power, then NEON is a pretty awesome
thing. I thought that might interest some of you.
--
Olivier
However, at the moment I'm more concerned with saving power than performance. Is
it safe to assume that if I use NEON and achieve say 7x speedup, it will
actually consume 7 times less power?
Cheers,
Olivier
Thanks Shervin for these clarifications.
However, at the moment I'm more concerned with saving power than performance. Is
it safe to assume that if I use NEON and achieve say 7x speedup, it will
actually consume 7 times less power?
Cheers,
Olivier
--
You received this message because you are subscribed to the Google Groups "android-ndk" group.
To post to this group, send email to andro...@googlegroups.com.
To unsubscribe from this group, send email to android-ndk...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/android-ndk?hl=en.
On 09/06/2011 11:26 AM, David Turner wrote:
>
>
> On Tue, Sep 6, 2011 at 11:19 AM, Olivier Guilyardi <li...@samalyse.com
> <mailto:li...@samalyse.com>> wrote:
>
> Thanks Shervin for these clarifications.
>
> However, at the moment I'm more concerned with saving power than
> performance. Is
> it safe to assume that if I use NEON and achieve say 7x speedup, it will
> actually consume 7 times less power?
>
> Certainly not, power consumption doesn't scale linearly with speed and
> instruction count anyway.
> You can assume that it will take less power to do the same job 7x
> faster, but by how much depends a lot on what you're trying to do.
That's what I sensed.
So, basically, I guess that to save power, I need to do less, not faster, which
actually makes sense in general :)
Thanks
--
Olivier
So, basically, I guess that to save power, I need to do less, not faster, whichactually makes sense in general :)
Hmm, well, at the moment, a bottleneck in my app is the computations which occur
in the OpenGL thread. This is consuming quite a lot of CPU. And actually, if I
make this faster, it may not help saving power, since it might result in shorter
cycles. That would provide a higher frame rate, which I don't need.
Basically, I'm recomputing and redrawing everything at each OpenGL cycle. It's
pretty bad when compared to the redraw-when-changed UI paradigm. I'm thinking
about avoiding computations before drawing when they are unnecessary. But
there's a good deal of complexity in that, in my very case. So I thought that if
NEON is able to provide 7x speedup, then that could be a good move, at first.
That said, I've looked at my code again, and some optimizations are possible in
pure C. After this I suppose I could maybe do a little ARM assembly, which
wouldn't involve extra hardware/CPU parts, and maybe only after that think about
NEON.
I'm pretty sure that I can reduce power consumption a lot, but I'm not there
yet, and also I'm not very used to thinking in terms of power saving. But, when
you're on the go, it's clearly a central concern, as I experienced recently ;)
--
Olivier