Optymalizacja w jack-audio-connection-kit.

Przemyslaw Iskra sparky w pld-linux.org
Sob, 19 Gru 2009, 16:12:40 CET


On Sat, Dec 19, 2009 at 03:06:52PM +0100, Łukasz Krotowski wrote:
> Witam,
> mam zamiar podbić wersję JACK-a. Jednak jest tam wątpliwa łatka
> ustawiająca CFLAGS (z resztą wątpliwe, np. -fprefetch-loop-arrays
> lub -funroll-all-loops) wewnątrz configure. Podobnie samo configure
> z JACK-a próbuje zgadywać odpowiednie CFLAGS (znowu wątpliwe,
> np. -march=k8 zamiast -march=x86-64).
> 
> W obecnej wersji łatka nakłada się ale flagi z configure nie są używane
> do kompilacji. Nie używane też są żadne wstawki assemblerowe
> zależne od SIMD (przynajmniej na pierwszy rzut oka).
> 
> Najchętniej wyrzuciłbym łatkę i wyłączył (czyt. nie włączał) mechanizm
> zgadywania w configure odpowiednich flag -- po to jest makro optflags
> aby go używać.
> 
> Jakieś przeciwwskazania? Coś mi umknęło?

Nie patrzyłem na JACK ale ogólnie konwencja jest taka:

1. Sprawdź czy jest wykrywanie możliwości SIMD w czasie runtime, jeśli
tak, i działa to można śmiało wszystkie załączyć. Jeśli niema wykrywania
runtime to dla każdej opcji potrzebny jest bcond i odpowiednie
ustawienie z zależności od arch.

* i486 - nic
* i586 - nic
* i686 - +mmx
* x86_64 - zależy czy asm tylko dla 32 bitów, czy może rozszeżenia gcc
           są użyte do napisania tego kodu

2. -march (też mtune, mcpu) oraz -O2 ustawiamy my (-O3 oraz -Os są
niemie widziane), configure nie ma tego przestawiać.
Inne flagi są dopuszczone. Wszystkie nasze flagi mają być użyte.

3. Linkowanie ma być z naszymi rpmcflags oraz rpmldflags.

-- 
 ____  Sparky{PI] -- Przemyslaw _  ___  _  _  ........... LANG...Pl..Ca..Es..En
/____) ___  ___  _ _ || Iskra  |  | _ \| |  | : WWW........ppcrcd.pld-linux.org
\____\| -_)'___| ||^'||//\\// <   |  _/| |  | : JID......sparky<at>jabberes.org
(____/||   (_-_|_||  ||\\ ||   |_ |_|  |_| _| : Mail....sparky<at>pld-linux.org


Więcej informacji o liście dyskusyjnej pld-devel-pl