Re: [LAU] optimizing jackd build

From: Sampo Savolainen <v2@email-addr-hidden>
Date: Mon Apr 09 2007 - 17:41:58 EEST

On Mon, 2007-04-09 at 16:26 +0200, Dragan Noveski wrote:
> Mike Taht wrote:
> > does jack say it's running SSE on startup?
> now, since i recompiled with --enable-dynsimd it says:
>
> ...
> JACK tmpdir identified as [/dev/shm/]
> SSE2 detected
> load = 0.2297 max usecs: 40.000, spare = 10626.000
> ...
>
> looks like a nice hint??
>
> what is about processor type and architecture?
> are there more hints about optimizing?

Enabling SSE throughout the project via compiler flags makes the
resulting code /depend/ on SSE. In other words, running that on a
platform with no SSE will result in "Illegal instruction (core dumped)".

In projects like jackd and Ardour there are places which can be improved
vastly via SSE code. Creating a framework which can enable SSE / etc.
per the platform the binary is ran makes it possible for distributions
to include optimized versions of the software which will work on any x86
platform.

I have heard good things about the current development branch of gcc,
but gcc 4.1 still has a _long_ way to go when it comes to vectorizing
(=writing code using parallel SIMD instructions, in other words SSE).

Hand written assembler is still many orders faster than what gcc is
capable of doing. In Ardour peak computation (for both metering and
waveform displaying) is written in SSE (the first part in pure assembly,
the second in a C-level abstraction which is almost 1:1 assembly). Both
functions are more than 20x faster in raw performance than what gcc 4.1
can do.

  Sampo

_______________________________________________
Linux-audio-user mailing list
Linux-audio-user@email-addr-hidden
http://lists.linuxaudio.org/mailman/listinfo.cgi/linux-audio-user
Received on Mon Apr 9 20:15:10 2007

This archive was generated by hypermail 2.1.8 : Mon Apr 09 2007 - 20:15:10 EEST