On Wed, Sep 15, 2010 at 5:19 AM, Guillaume Letellier
<guillaume.letell...@arm.com> wrote:
> Hi,
>
>> Also available is an early release of optimised string routines for
>> the Cortex-A series, including a mix of NEON and Thumb-2 versions of
>> memcpy(), memset(), strcpy(), strcmp(), and strlen().  For more
>> information see:
>>  https://launchpad.net/cortex-strings
>
> My understanding is that the NEON optimisation will give some performance 
> gain *ONLY* on Cortex-A8 but it will also burn more energy. On other CPU, 
> e.g. Cortex-A9, there is no performance gain but still it will cost more 
> energy.

I've heard that too but never had it confirmed.  I will ask.  The
output of this project will be a set of routines specialised for
Thumb-2, NEON, Cortex-A8, and Cortex-A9, where there is a benefit in
doing variants for each.  We need good non-NEON versions as NEON is
optional and it can't be used in the Linux kernel.

> Linaro toolchain doesn't target a specific platform but is generic for armv7 
> platforms. Are you expecting to see those optimisations turned on in Linaro 
> toolchain?

Sorry, I don't understand the question.  We want to spread these
routines out and get them integrated into all of the upstream C
libraries including NewLib, Bionic, and GLIBC.

> The NEON-optimised version is also beneficial for large copies, but it is not 
> on short copies when the NEON unit has to be powered up (Linux kernel will 
> get an exception to turn it on). I guess your benchmark didn't take that into 
> account. Can the NEON-optimised version be changed so that it is not used for 
> small copies?

My understanding is that the NEON unit is on per process, so once
you've turned it on once it should stay on.  I assume the turn on cost
is amortised across a run.  Note that if the data is not in the L1
cache then the NEON unit wins even for small-ish (~64 byte) copies.

-- Michael

_______________________________________________
linaro-toolchain mailing list
linaro-toolchain@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-toolchain

Reply via email to