BOINC@Poland

Projekty => Matematyka => PrimeGrid => Wątek zaczęty przez: _Aleksander_ w 09 Styczeń 2012, 09:33

Tytuł: Predkość przeliczania zadań LLR zwiększy się o 20% do 50%.
Wiadomość wysłana przez: _Aleksander_ w 09 Styczeń 2012, 09:33
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 (http://www.primegrid.com/forum_thread.php?id=3912&nowrap=true#46393)
Tytuł: Predkość przeliczania zadań LLR zwiększy się o 20% do 50%.
Wiadomość wysłana przez: Troll81 w 09 Styczeń 2012, 10:13
WOW. moze i inne projekty toto zauważa....
Tytuł: Predkość przeliczania zadań LLR zwiększy się o 20% do 50%.
Wiadomość wysłana przez: Ufol w 10 Styczeń 2012, 11:02
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.
Tytuł: Predkość przeliczania zadań LLR zwiększy się o 20% do 50%.
Wiadomość wysłana przez: stiven w 10 Styczeń 2012, 11:30
Nie tyle zauważyli coś nowego co wykorzystali możliwości nowych procesorów.
Tytuł: Predkość przeliczania zadań LLR zwiększy się o 20% do 50%.
Wiadomość wysłana przez: Troll81 w 10 Styczeń 2012, 12:23
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%....
Tytuł: Predkość przeliczania zadań LLR zwiększy się o 20% do 50%.
Wiadomość wysłana przez: aborek w 10 Styczeń 2012, 19:04
Wreszcie mój buldożer do czegoś się przyda ;D
Tytuł: Predkość przeliczania zadań LLR zwiększy się o 20% do 50%.
Wiadomość wysłana przez: _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 (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
Tytuł: Predkość przeliczania zadań LLR zwiększy się o 20% do 50%.
Wiadomość wysłana przez: Preszus w 12 Styczeń 2012, 15:56
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?
Tytuł: Predkość przeliczania zadań LLR zwiększy się o 20% do 50%.
Wiadomość wysłana przez: aborek w 12 Styczeń 2012, 16:05
Spróbuję się pobawić, ale to dopiero w weekend.
Tytuł: Predkość przeliczania zadań LLR zwiększy się o 20% do 50%.
Wiadomość wysłana przez: Preszus w 12 Styczeń 2012, 16:27
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:
Tytuł: Predkość przeliczania zadań LLR zwiększy się o 20% do 50%.
Wiadomość wysłana przez: lolek w 12 Styczeń 2012, 16:32
Dokładnie tak, liczysz na standardowej aplikacji. Po wrzuceniu aplikacji i app info do folderu z danymi projektu zrestartowałeś BM?
Tytuł: Predkość przeliczania zadań LLR zwiększy się o 20% do 50%.
Wiadomość wysłana przez: Preszus w 12 Styczeń 2012, 17:19
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.
Tytuł: Predkość przeliczania zadań LLR zwiększy się o 20% do 50%.
Wiadomość wysłana przez: 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.
Tytuł: Predkość przeliczania zadań LLR zwiększy się o 20% do 50%.
Wiadomość wysłana przez: Preszus w 13 Styczeń 2012, 12:41
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:
Tytuł: Predkość przeliczania zadań LLR zwiększy się o 20% do 50%.
Wiadomość wysłana przez: Aegis Maelstrom w 13 Styczeń 2012, 20:11
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 (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 (http://software.intel.com/en-us/forums/showthread.php?t=84059)

A w wstępie do AVX od Intela (http://software.intel.com/en-us/articles/introduction-to-intel-advanced-vector-extensions/) 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 (https://connect.microsoft.com/VisualStudio/feedback/details/596345/avx-256-bit-intrinsics-bug-when-compile-in-64-bit) sugeruje, że wdrażanie AVX to były/są całkiem zabawne chwile...  :ph34r:
Tytuł: Predkość przeliczania zadań LLR zwiększy się o 20% do 50%.
Wiadomość wysłana przez: Troll81 w 13 Styczeń 2012, 22:59
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.
Tytuł: Predkość przeliczania zadań LLR zwiększy się o 20% do 50%.
Wiadomość wysłana przez: Krzysiak w 29 Styczeń 2012, 10:03
Mam dziwne wrażenie że dzięki temu znacznie zwiększyła się ilość próbek ze statusem Completed, marked as invalid
Tytuł: Predkość przeliczania zadań LLR zwiększy się o 20% do 50%.
Wiadomość wysłana przez: stiven w 07 Luty 2012, 13:24
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?



Tytuł: Predkość przeliczania zadań LLR zwiększy się o 20% do 50%.
Wiadomość wysłana przez: Troll81 w 07 Luty 2012, 13:56
ty mówisz o czasach czy o punktacji?? a jakie masz czasy przeliczania zadań w sekundach??
Tytuł: Predkość przeliczania zadań LLR zwiększy się o 20% do 50%.
Wiadomość wysłana przez: Cyfron w 07 Luty 2012, 14:07
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
Tytuł: Predkość przeliczania zadań LLR zwiększy się o 20% do 50%.
Wiadomość wysłana przez: stiven w 07 Luty 2012, 14:09
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:
Tytuł: Predkość przeliczania zadań LLR zwiększy się o 20% do 50%.
Wiadomość wysłana przez: Troll81 w 07 Luty 2012, 14:16
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.
Tytuł: Predkość przeliczania zadań LLR zwiększy się o 20% do 50%.
Wiadomość wysłana przez: stiven w 07 Luty 2012, 14:24
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.
Tytuł: Predkość przeliczania zadań LLR zwiększy się o 20% do 50%.
Wiadomość wysłana przez: mimeq w 07 Luty 2012, 14:32
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  ;)
Tytuł: Predkość przeliczania zadań LLR zwiększy się o 20% do 50%.
Wiadomość wysłana przez: stiven w 07 Luty 2012, 15:16
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).
Tytuł: Predkość przeliczania zadań LLR zwiększy się o 20% do 50%.
Wiadomość wysłana przez: Krzysiak w 11 Luty 2012, 11:24
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
Tytuł: Predkość przeliczania zadań LLR zwiększy się o 20% do 50%.
Wiadomość wysłana przez: _Aleksander_ w 11 Luty 2012, 12:17
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?
Tytuł: Predkość przeliczania zadań LLR zwiększy się o 20% do 50%.
Wiadomość wysłana przez: stiven w 29 Marzec 2012, 17:58
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