Predkość przeliczania zadań LLR zwiększy się o 20% do 50%.

Zaczęty przez _Aleksander_, 09 Styczeń 2012, 09:33

_Aleksander_

Na forum projektu pojawiła się informacja o udanej kompilacji aplikacji używającej zestawu instrukcji AVX (Advanced Vector Extensions).
Jest to rozszerzenie znanego zestawu instrukcji SSE, które pracuje na rejestrach 256 bitowych i wykonuje operacje 3-argumentowe, zaimplementowane w architekturze Sandy Bridge i Bulldozer.
Użycie zestawu AVX w zadaniach LLR zależenie od podprojektu skróci czas obliczeń o około 20-50%.

Na chwilę obecną aplikacja LLR v3.8.6dev dostępna jest jedynie dla platformy Linux x64 z pomocą pliku app_info.xml
Nie ma jeszcze informacji, czy i kiedy pojawią się wersje na inne systemy operacyjne i kiedy użycie nowych aplikacji będzie możliwe bez pliku app_info.xml

Więcej na forum Primegrid.
http://www.primegrid.com/forum_thread.php?id=3912&nowrap=true#46393

Troll81


Ufol

Co oni takiego zauważyli, żeby przyspieszyć obliczenia? Rozumiem, że nie dotyczy to wszystkich procesorów. Czy ten dopalacz działa tylko na x64?
Napisałeś Trollu, że może to w przyszłości pogonić mielenie w innych projektach. Pytanie brzmi, w jakich?
Tak rzucam te pytajniki, bo mam wrażenie, że stało się coś istotnego dla optymalizowania obliczeń i warto by było zgłębić temat.

stiven

Nie tyle zauważyli coś nowego co wykorzystali możliwości nowych procesorów.

Troll81

każdy projekt wykonuje jakies obliczenia :D a to znaczy ze szybsza możliwość wykonywania działań może doprowadzić do szybszego działania innych proejtów. Może nie 50% ale jakby taki WCG przyspieszył o 10%....

aborek


_Aleksander_

Dobra informacja - do dostępnej na początku aplikacji pod Linuxa 64bit dodano wersję pod Windowsa i Maca, oraz odpowiednie pliki app_info.xml

Zła informacja - do użycia przez aplikację instrukcji AVX poza oczywistym wsparciem przez procesor, potrzebne jest wsparcie ze strony systemu operacyjnego. I tutaj pojawiają się schody w przypadku Windowsa jest to obecnie tylko: Windows 7 (SP1) oraz Windows Server 2008 R2.

Link do wyjaśnień Microsoft dlaczego nie wspierają tego w innych wersjach: http://msdn.microsoft.com/en-us/library/ff545910.aspx

W przypadku Linuxa wsparcie dla AVX pojawia się z:
- Kernel xsave/xrestore (od wersji 2.6.28)
- Kernel patch enabling AVX (od wersji 2.6.30)
- gcc( od wersji 4.4.2), binutils (od wersji 2.20.51.0.2)
- glibc (od wersji 2.11).

Nie ma nadal informacji, czy i kiedy użycie nowych aplikacji będzie możliwe bez pliku app_info.xml

Preszus

Dodawał ktoś tę aplikację? Ja szału nie widzę SGS liczy mi 25s szybciej zamiast średnio 7,30s teraz 7,05s. Procek 2500k @ 4GHz Win 7 sp1. Na forum BOINC piszą, że mają wzrost prędkości przeliczania o 50% i wzrosła im przy tym temperatura procka o 2-4st. a u mnie temp. się nie zmieniła. Ma ktoś już jakieś doświadczenie lub obserwacje w tym temacie?

http://stats.free-dc.org/pgridtag.php?id=108303&theme=1


aborek

Spróbuję się pobawić, ale to dopiero w weekend.

Preszus

U mnie coś jest nie tak. Innym przy przeliczonych próbkach pojawia się info o aplikacji "Sophie Germain (LLR) Anonymous platform (CPU)" a przed użyciem tej aplikacji mieli tak jak ja wciąż mam "Sophie Germain (LLR) v6.10".  :wacko: Tak jak by u mnie aplikacja nie działała  :wth:

http://stats.free-dc.org/pgridtag.php?id=108303&theme=1


lolek

Dokładnie tak, liczysz na standardowej aplikacji. Po wrzuceniu aplikacji i app info do folderu z danymi projektu zrestartowałeś BM?

Preszus

Tak. Zamieniłem nazwy plików na app_info.xml i llravx.exe. Wrzuciłem je do katalogu BOINC. (Czy potrzebne są jeszcze jakieś dodatkowe pliki?) Uruchomiłem managera Boinc i tak jak zapowiadali, niedokończone zadania wyzerowały swój postęp przeliczenia, czyli że niby zaskoczyło i powinno być OK. Niestety wynik tak jak pisałem wyżej czyli pracuje wszystko po staremu.

http://stats.free-dc.org/pgridtag.php?id=108303&theme=1


lolek

Do katalogu BOINC w programfiles czy ProgrramData? Wiem że pytania są laickie ale mi to wygląda jakby BOINC wogóle nie widział tego app.

Preszus

#13
Cytat: lolek w 13 Styczeń 2012, 09:47
Do katalogu BOINC w programfiles czy ProgrramData? Wiem że pytania są laickie ale mi to wygląda jakby BOINC wogóle nie widział tego app.

No tak, chyba już wiem gdzie popełniłem błąd  ;D Pliki trzeba wrzucić do C:\ProgramData\BOINC\projects\www.primegrid.com a nie do programfiles\Boinc  :parrrty:

Hehe dzięki za dobre pytanie, które dało mi odpowiedź. Teraz liczy jako aplikacja lokalna 7.10.

PPSllr liczył ponad 20min teraz radzi sobie w 15min

Później wrzucę tu info o innych próbkach czy i o ile szybciej przelicza.

SGS wcześniej 7m30s teraz 5m35s  :whistle:

http://stats.free-dc.org/pgridtag.php?id=108303&theme=1


Aegis Maelstrom

Cytat: _Aleksander_ w 11 Styczeń 2012, 10:19
Dobra informacja - do dostępnej na początku aplikacji pod Linuxa 64bit dodano wersję pod Windowsa i Maca, oraz odpowiednie pliki app_info.xml

Zła informacja - do użycia przez aplikację instrukcji AVX poza oczywistym wsparciem przez procesor, potrzebne jest wsparcie ze strony systemu operacyjnego. I tutaj pojawiają się schody w przypadku Windowsa jest to obecnie tylko: Windows 7 (SP1) oraz Windows Server 2008 R2.

Link do wyjaśnień Microsoft dlaczego nie wspierają tego w innych wersjach: http://msdn.microsoft.com/en-us/library/ff545910.aspx
Hej,

informacja o braku wsparcia pod starszymi wersjami Windows mocno mnie zdziwiła i zacząłem grzebać na własną rękę. Twój link Aleksandrze (to też pierwszy link, który mi wyskakuje przy szukaniu MSDN) dotyczy 64-bitowych sterowników, więc pomyślałem, że może na linii jądro - userland coś się da...

Jednakże sądząc po linkach, które znalazłem, faktycznie nici:
Informacja na forum Intela

A w wstępie do AVX od Intela czytamy:
Cytat
Availability and Support
Detecting availability of the Intel® AVX features in hardware requires using the CPUID instruction to query support in the CPU and in the operating system, as detailed later. Second-generation Intel® Core™ processors (Intel® microarchitecture code name Sandy Bridge), released in Q1, 2011, are the first from Intel supporting Intel® AVX technology. These processors will not have the new FMA instructions. For development and testing without hardware support, the free Intel® Software Development Emulator (see "For More Information" for a link) includes support for all these features, including Intel AVX, FMA, PCLMULQDQ, and AES instructions.

To use the Intel AVX extensions reliably in most settings, the operating system must support saving and loading the new registers (with XSAVE/XRSTOR) on thread context switches to prevent data corruption. To help avoid such errors, operating systems supporting Intel AVX-aware context switches explicitly set a CPU bit enabling the new instructions; otherwise, an undefined opcode (#UD) exception is generated when Intel AVX instructions are used.

Microsoft Windows* 7 with Service Pack 1 (SP1) and Microsoft Windows* Server 2008 R2 with SP1-both 32- and 64-bit versions-and later versions of Windows* support Intel AVX save and restore in thread and process switches. Linux* kernels from 2.6.30 (June 2009) and later support Intel AVX, as well.
Zależnie od interpretacji albo "widocznie się nie da", albo Microsoft pokazuje użytkownikom Windows starszych niż 7 i 2008 duży środkowy palec.  %)

Cóż, o tym czy implementacja wsparcia AVX w np. Viście jest aż tak trudna, musiałby się wypowiedzieć odpowiedni gość z Microsoftu. Ja chyba zostanę ze swoimi podejrzeniami, że darowali to sobie z przyczyn biznesowych i tyle.

Na deser - ten rozczulający link sugeruje, że wdrażanie AVX to były/są całkiem zabawne chwile...  :ph34r:

Troll81

Intel już dawno pokazuje wszystkim userom XP środkowy palec. Pokupowali se boxy i nie chcą zapłacić za nowy lepszy system. a MS sie tak postarał. jak nie zapłacą to ms zbiednieje. No to trzeba wymusić. To się nazywa product push. podobnie robi wiele firm. Ostatnio tę technikę zaczyna stosować google i coraz mniej cierpliwości do niego mam. Np wymuszenie stosowania nowego lepszego wyglądu poczty (stary niedługo zostanie wyłączony), Wycięcie google buzz (bo ponoć dubluje funkcjonalność google+, a orkut to niby co? tylko ze orkuta używają całe indie i brazylia) itp itd.

Krzysiak

Mam dziwne wrażenie że dzięki temu znacznie zwiększyła się ilość próbek ze statusem Completed, marked as invalid


>>Moja szczegółowa sygnatur<< %)                                      >> Spis moich odkrytych liczb pierwszych << :whistle:

stiven

Koledzy, może jesteście w stanie pomóc.

Mam na pewien czas do testów i7-2600 działający pod win 7 64 z sp1.

Postanowiłem przetestować czy faktycznie wzrośnie wydajność pod zapodaniu nowego app_info używającego avx.
Zrobiłem co kazali tu:

http://www.primegrid.com/forum_thread.php?id=3912

Zassałem pliki, umieściłem gdzie trzeba, restart klienta a nawet kompa i po przeliczeniu ponad 100 próbek PPS LLR stwierdzam, że różnic w czasie przeliczania nie ma. Było 0.02122 pkt/s jest 0.02176 pkt/s.
Jakieś pomysły, sugestie? Co sprawdzić? Czy wyłącznie HT może mieć na to wpływ?




Troll81

ty mówisz o czasach czy o punktacji?? a jakie masz czasy przeliczania zadań w sekundach??

Cyfron

on mówi o punktach na sekunde, więc nie ważne jakie są czasy - jeśli mamy siedzieć i grzebać w kodzie po to, aby nie poprawiła się nam punktacja, to moim zdaniem się nie opłaca :D

stiven

Zadania mają różną długość więc i różnie się liczą dlatego myślałem, że słuszne jest jedynie podawanie ilości pkt/s.  :shame: :shame: :shame:
Dzięki Trollu - sprowadziłeś mnie na właściwy tor.  :parrrty:

Troll81

Optymalizacja ma za zadanie skrócic czas wykonywania zadania. Punktacja może sie przy okazji zwiększyć (wszak robota ta sama tylko czas krótszy) ale nie musi.

stiven

Po mojemu to cała zabawa nic nie warta skoro za tę samą robotę wykonaną szybciej dostanę mniej punktów.

Na wszelki wypadek wywaliłem wszystkie pliki i testuje na nowo.

mimeq

Liczac szybciej dane WU masz wieksza szans na znalezienie liczby pierwszej jako Initial finder a nie Doublechecker, a o to chyba w tym wlasnie chodzi (wiecej WU w tym samym czasie). Chyba ze faktycznie tylko  punkty, punkty, punkty ...
Ale wtedy sa rozsadniejsze projekty dla CPU  ;)


stiven

To jest zdecydowanie wartość dodana. Rzekłbym nawet, że zwiększa szansę nie tylko jako Initial Finder ale w ogóle bowiem np przez rok przemielę więcej próbek.
Na punkty bym się nie pogniewał jakby było ich więcej. Wg mnie powinno być (tzn ta sama robota = tyle samo punktów a że mielę szybciej to powinna być nagroda a nie tylko większy rachunek za prąd).

Krzysiak

Dziś wywaliłem tą optymalizację ilość źle przeliczonych  próbek jest ogromna  :fright: nie wiem co może by przyczyną - dzieje się to na dwóch różnych kompach


>>Moja szczegółowa sygnatur<< %)                                      >> Spis moich odkrytych liczb pierwszych << :whistle:

_Aleksander_

Ja cały ostatni turniej Primegrid na aplikacjach z AVX zrobiłem (i7-2600 i i5-2500k) bez najmniejszego problemu z walidacją WU. Może masz za duże OC na CPU?

stiven

Dziś przy okazji przeglądania forum PG dowiedziałem się czemu licząc z wykorzystaniem AVX nie dostawałem więcej punktów.

Wytłumaczone w prosty i przejrzysty sposób:
CytatBOINC's credit system works like this:

Either the Server predetermines the amount of credit per WU (sieves or GFN), or the computer processing the WU measures the CPU time used, and a formula is applied to the CPU time to derive the credit. Having the server determine the credit autonomously is preferable because the CPU method has many potential flaws, but it's often impossible to do so.
The CPU method works like this:

The computer runs benchmarks to determine how "fast" it is. Then, the amount of CPU time of a WU, combined with the benchmark speed, is used to calculate the credit. It's simple in theory, and badly flawed in practice.
CytatAVX is another thing that may screw up the credit calculations, because the benchmarks (presumably) don't take AVX into account.

So BOINC thinks the computer is X fast, but because of AVX, it's actually a lot faster. But the CPU time of a WU is shorter, so less credit is granted.

link do wątku: http://www.primegrid.com/forum_thread.php?id=4214#52230