Enigma Optima

Zaczęty przez Agbar, 16 Marzec 2016, 22:57

Jesteś zainteresowany/zainteresowana instalacją Enigma Optima. Jaki masz główny system operacyjny?

Windows 64 bit
10 (71.4%)
Windows 32 bit
1 (7.1%)
Linux 64 bit
3 (21.4%)
Linux 32 bit
0 (0%)
Inny
0 (0%)

Głosów w sumie: 14

Głosowanie skończone: 03 Kwiecień 2016, 20:43

krzyszp

Xeon E3-1230v2, stock, Win7-64, trochę procesów w tle:

191198645 181242939 14 Apr 2016, 12:09:19 UTC 14 Apr 2016, 12:44:07 UTC Completed and validated 1,007.46 980.22 30.00 Enigma 0.76b
Anonymous platform (CPU)
191198625 181242908 14 Apr 2016, 12:09:19 UTC 14 Apr 2016, 12:30:45 UTC Completed and validated 1,066.48 1,002.84 30.00 Enigma 0.76b
Anonymous platform (CPU)
191198611 181242910 14 Apr 2016, 12:09:19 UTC 14 Apr 2016, 12:30:45 UTC Completed and validated 1,036.31 980.23 30.00 Enigma 0.76b
Anonymous platform (CPU)
191198602 181242919 14 Apr 2016, 12:09:19 UTC 14 Apr 2016, 12:30:45 UTC Completed and validated 1,073.90 995.26 30.00 Enigma 0.76b
Anonymous platform (CPU)
191198598 181242903 14 Apr 2016, 12:09:19 UTC 14 Apr 2016, 12:30:45 UTC Completed and validated 1,047.96 1,001.85 30.00 Enigma 0.76b
Anonymous platform (CPU)
191198564 181242902 14 Apr 2016, 12:09:19 UTC 14 Apr 2016, 12:30:45 UTC Completed and validated 1,034.06 994.71 30.00 Enigma 0.76b
Anonymous platform (CPU)
191198541 181242914 14 Apr 2016, 12:09:19 UTC 14 Apr 2016, 12:26:39 UTC Completed and validated 1,025.54 986.97 30.00 Enigma 0.76b
Anonymous platform (CPU)
191198531 181242905 14 Apr 2016, 12:09:19 UTC 14 Apr 2016, 12:30:45 UTC Completed and validated 1,069.68 1,004.93 30.00 Enigma 0.76b
Anonymous platform (CPU)
191198518 181242907 14 Apr 2016, 12:09:19 UTC 14 Apr 2016, 12:30:45 UTC Completed and validated 1,130.69 994.38 30.00 Enigma 0.76b
Anonymous platform (CPU)

Fajne zegarki :)
Należę do drużyny BOINC@Poland
 Moja wizytówka

Agbar

#41
Wygląda, że działa tak szybko jak poprzednia, więc program wykrył dobrze typ procesora.

Szybkość nie powinna się zmienić - nie zmieniałem kodu, tylko opcje kompilacji - za to dużo łatwiej teraz zainstalować.

Troll81

Kiedy optymalka wejdzie do produkcji??

Agbar

Czekam na odpowiedź od TJM, chciałbym dołączyć wrappery, żeby uprościć instalację.

Poza tym do kolejnej wersji mam już wszystkie poprawki, które są potrzebne: program loguje swoją nazwę i wykrytą wersję procesora (AVX2, SSSE3 itd.) Dobrze, żeby dało się w logu sprawdzić, co za program działał.
Jak tylko TJM zgodzi się na redystrybucję wrapperów, publikuję betę. Myślę, że dwa tygodnie potem będzie można wypchnąć release.

Mam też kilka pomysłów na dalsze przyspieszenie. Najprostsze poprawki powinny być dla AVX2, bo jest kilka funkcji, których jeszcze nie użyłem (np. gather). Napisanie kodu dla AVX512 powinno być proste, ale jeszcze nie ma procesorów, które to wspierają.

BTW. Zrobiłem małą analizę hostów podpiętych pod projekt i wychodzi z niej, że trzeba celować w SSSE3 (połączone z AVX), bo tam jest najwięcej mocy obliczeniowej. Drugie w kolejności jest AVX2. Dorzucę obrazki, tylko mam na drugim komputerze.

Agbar

Gdzieś w międzyczasie przeanalizowałem sobie statystyki hostów projektu. Chciałem określić cele do dalszej pracy.

Najpierw odfiltrowałem nieaktywne hosty, zostawiając te, które mają RAC>200 i kontaktowały się z serwerem w ciągu ostatnich 3 miesięcy.1
Dla każdego CPUID określiłem, typ procesora dzięki CPU-World i zaimplementowany tam zestaw instrukcji.
Ograniczyłem się do "głównej" linii SSE < SSE2 < SSE3 < SSSE3 < SSE4_1 < SSE4_2 < AVX < AVX2. Zupełnie pominąłem SSE4a, bo jest mała liczba takich procesorów itd.
Zresztą zobaczcie sami:2
[smg id=10562 type=preview align=center caption="Enigma Host RAC by SIMD"]

I po pogrupowaniu wg tego co jest zaimplementowane w Optimie:  {SSSE3, AVX, SSE4_1, SSE4_2} są połączone w SSSE3:
[smg id=10563 type=preview align=center caption="Enigma Host RAC by SIMD folded"]

Według mnie wynika z tego, że nie ma się co przejmować starszymi procesorami, bo nawet wielki zysk w jednostkowej szybkości nie przełoży się na wyniki w skali projektu.
To samo z częścią hostów zgrupowaną w NotSupported. Tam są wszystkie ARM i Apple. Te architektury też mają swoje SIMD, ale implementacją mogę się zająć chyba tylko dla sportu, żeby dokładniej zobaczyć jak działają te procesory.




  • Granica ustalona na 1 miesiąc praktycznie nic nie zmienia, a nie chce mi się drugi raz robić screenshotów. Było by 22 hostów mniej.
  • Wyniki są posortowane wg RAC, a nie iops (Integer Operations Per Second) bo RAC lepiej reprezentuje dostępną moc obliczeniową.

Agbar

#45
TJM chętnie zgodził się na redystrybucję wrapperów - dzięki! :p_arr: więc opublikowałem wersję beta.1.


  • Nie jest wymagane hasło. Wersja jest publiczna.
  • Zawiera wrapper. Wystarczy skopiować do folderu projektu.
  • Wersja optimy jest logowana i jest widoczna w logu zadania na serwerze.


Troll81

zostaną dołączone do oficjalnych projektu??

Agbar

Decyzja o dołączeniu do oficjalnych binarek projektu należy do TJMa. Jednak mało prawdopodobne, że tak się stanie.

Mogłem wyrazić się niedokładnie. Enigma Optima może być rozpowszechniana z kopią wrappera z projektu Enigma at Home.

Agbar

Opublikowałem beta 2. Wersja Windows64 nie wykrywała typu procesora i zawsze działał kod bez SSE/AVX2. Nie zrobiłem czystej kompilacji i zostały śmieci po moich zabawach z kodem  :shame:

Ciekawi mnie czemu nikt z testerów tego nie zauważył? :) Bo apka działa jakieś 30% wolniej bez SIMD. No ale sam zauważyłem to po tygodniu dopiero...

Peciak

Na moim procku z AVX różnice czasów pomiędzy APPvBETA_1 a APPvBETA_2 praktycznie nie występują (roznica około 1 - 1,5 %) te same warunki liczenia.
Różnica jest tylko taka, że:
wersja BETA 1 Best ISA - nie rozpoznawała
wersja BETA 2 Best ISA - AVX
więc albo różnica pomiędzy liczeniem na SSE a AVX jest znikoma albo wersja BETA 1 wykrywała prawidłowo proc tylko źle raportowała albo apka ma dalej jakiś błąd w rozpoznawaniu instrukcji proca...

,,Z szanowania wzajemnego wypływa moc wielka w chwilach trudnych."

Agbar

#50
Cytat: Peciak w 29 Kwiecień 2016, 17:00
Na moim procku z AVX różnice czasów pomiędzy APPvBETA_1 a APPvBETA_2 praktycznie nie występują (roznica około 1 - 1,5 %) te same warunki liczenia.

A jak w porównaniu z poprzednimi wersjami? Masz ukryte hosty, więc nie mogę sobie obejrzeć loga na serwerze...
Swoją drogą nie spodziewałem się ukrytych hostów, więc w poprzednim poście o rozkładzie ISA brakuje ciemnej materii ;)EDIT: Ukryte hosty nie mają tylko userid.

Właśnie się zorientowałem, że nie poprawiłem nazwy wersji w beta 2. Muszę sobie jakąś check-listę przygotować.

Peciak

CytatA jak w porównaniu z poprzednimi wersjami
Mogę się odnieść tylko do opta SESEFA dla SSSE3
twoje opto jest szybsze od opta SESEFA, najlepiej powie o tym teoretyczna uśredniona wydajność (liczone próbki z kilku godzin) z proca liczonego 6 WU na 8 rdzeniach
SESEF -> 21050 pkt /doba
AGBAR BETA I -> 22760 pkt /doba
AGBAR BETA II -> 23560 pkt /doba

do poprzednich twoich opt nie miałem haseł wiec ich nie testowałem.
host http://www.enigmaathome.net/results.php?hostid=152479 ale wiele tu nie zobaczysz bo ja obecnie enigmę liczę tylko dla testów.

,,Z szanowania wzajemnego wypływa moc wielka w chwilach trudnych."

Agbar

Dzięki za odpowiedź.

O hasło do poprzednich wersji wystarczyło poprosić :)

Dzięki za link, niestety serwer już pozbył się próbek z 1. bety. Ale 89 aktualnych zadań też daje jakiś wgląd.

Możliwe, że Twój procesor (Ivy Bridge) tak szybko wykonuje "zwykły" kod, że różnica do SSSE3 wychodzi rzędu 3%. A może po prostu miałeś 32 bitową wersję beta.1?
Teoretycznie wersja podstawowa kodu powinna być wolniejsza od opta sesefa, przynajmniej tego się spodziewam, ale z drugiej strony... kto wie. W gołej wersji uprościłem trochę arytmetykę i kosztem kilku procent większego użycia pamięci zamieniłem mnożenie razy 26 na 32, co można zrealizować przesunięciem. Nawet na Ivy Bridge potencjalna różnica w szybkości jest całkiem spora:

  • Mnożenie *26 można wykonać jedno na cykl i na wynik czeka się 3 cykle
  • Mnożenie *32 można wykonać dwa na cykl i wynik jest dostępny od razu.
Niektóre fragmenty mogą działać nawet kilka razy szybciej! (niestety to bardzo małe fragmenty).

Przejrzałem jeszcze kod, który ustawia odpowiednie funkcje i wygląda OK. Uruchomiłem nawet na emulatorze z różnymi wersjami procków i wygląda, że wykonuje się ten kod, co powinien.

Agbar

Opublikowałem nową wersję beta 3.

Wersja przede wszystkim poprawia problem ze starszymi procesorami 32-bitowymi. Teraz wymagany jest przynajmniej Pentium 3 (wg. opcji kompilatora - może ale nie musi działać na starszych maszynach). Poprzednie kompilacje przez niedopatrzenie były skompilowane dla architektury Nocona, przez co wymagały np. SSE2.

Wersję polecam np. dla Argento.

PoznanskaPyra

 :respect: Trzeba gdzieś te appki dodać żeby każdy mógł pobrać
WIZYTÓWKA
Kompy:
AMD Ryzen 9-3900X + GTX980Ti
Intel i5 4570 + HD7970

Agbar

Myślę, że github jest dostatecznie dobrym miejscem.

Peciak

Witam taki problem sie robi podczas zamykania komputera i nie wyłączenia wcześniej programu boinc. Problem pojawił się przy nowy opto i dotyczy tylko tego projektu. Mianowicie kiedy wyłączam komputer (zdarza się to rzadko ale jednak czasami się zdarza) boinc odpala podczas zamykania próbki enigma które liczą się z błędem.
Nie chodzi o to że to w czymś przeszkadza ale o to że marnują się WU. Ciekaw jestem czy to tylko u mnie (jakiś lokalny konflikt z programem lub projektem) czy też jednak jest to problem globalny.
[smg id=10577 type=preview align=center caption="Zrzut ekranu 2016 06 18 12 11 29a"]


,,Z szanowania wzajemnego wypływa moc wielka w chwilach trudnych."

Agbar

To wygląda na bug w kliencie BOINC, bo to ten program jest odpowiedzialny za uruchamianie zadań. Bez klienta BOINC nie uruchomi się żadne nowe zadanie, bo trzeba np. przydzielić slot. Myślę, że trzeba to zgłosić ekipie BOINC.

Agbar

#58
Parę dni temu opublikowałem wersję finalną v1.0.0. Jeżeli używacie wersji beta3 nie ma powodu do aktualizacji (zmiany są kosmetyczne i nie dotyczą np. szybkości działania.)



EDIT
Opublikowałem wersję v1.0.1, która poprawia crash w kodzie AVX2 w v1.0.0. Zbiegiem okoliczności błąd nie pojawił się w żadnej wcześniejszej kompilacji (to znaczy, czekał żeby zaatakować, ale nie miał okazji.)

Agbar

Opublikowałem wersję 1.1.0 obsługującą zadania Enigma AV.

AXm77

#60
Cytat: Agbar w 22 Październik 2017, 10:50
Opublikowałem wersję 1.1.0 obsługującą zadania Enigma AV.

Na Xeonach E5-2673 v2 - około 50s szybciej : ~5:45 (AV 1.05 ~6:35).
Tylko jest problem z liczeniem na GPU.
Jak prawidłowo dopisać apkę dla GPU do twojego app_info?

kva.pl

Agbar jeszcze bys opublikowal nowa wersje wizytowki  :whistle:

Agbar

Cytat: AXm77 w 22 Październik 2017, 21:32
Jak prawidłowo dopisać apkę dla GPU do twojego app_info?

To właściwie wiedza tajemna :) Teoretycznie jest jakaś dokumentacja, ale pamiętam, że i tak używałem kodu źródłowego BOINC, żeby przygotować pierwszą wersję app_config.

Przygotuję wersję z apkami GPU. (Spodziewałem się, że mnie to czeka  :attack:) Myślę, że może minąć to kilka dni, zanim to zrobię, bo Optimą zajmuję się w wolnym czasie. Do tego czasu pewnie będziesz wolał wrócić do normalnych apek, bo GPU liczy szybciej.

Cytat: kva.pl w 23 Październik 2017, 02:16
Agbar jeszcze bys opublikowal nowa wersje wizytowki  :whistle:
A co jest nie tak z aktualną? :)

sirzooro

Cytat: Agbar w 23 Październik 2017, 08:16
Cytat: AXm77 w 22 Październik 2017, 21:32
Jak prawidłowo dopisać apkę dla GPU do twojego app_info?

To właściwie wiedza tajemna :) Teoretycznie jest jakaś dokumentacja, ale pamiętam, że i tak używałem kodu źródłowego BOINC, żeby przygotować pierwszą wersję app_config.
Najprościej jest skopiować odpowiednie znaczniki <file>, <app> i <app_version> z client_state.xml - składnia jest identyczna. Jeżeli chcesz odpalić oryginalną apkę przez app_info.xml, to w <app> i <app_version> nie trzeba nic zmieniać, w <file> trzeba wyrzucić wszystko poza <name> i <executable/>.

TJM

Na forum projektu w watku o aplikacji GPU jest chyba app_info z wszystkimi 4 aplikacjami.

W razie jakiejś pilniejszej sprawy - jestem często dostępny na kanale IRC B@P, na forum czasami zapominam zajrzeć lub nie mam czasu.

AXm77

Dzięki panowie za poradę. Działa!
Skorzystałem z pliku o którym pisał TJM.




Agbar

Po długiej przerwie opublikowałem nową wersję (v1.1.1).

Wg moich testów jest szybsza na nowych Intelach. Jak chodzi o AMD przetestowałem tylko na modelu opartym o energooszczędny Jaguar. Reszta AMD też powinna liczyć szybciej, ale nie mam teraz dostępu do żadnej takiej maszyny.

tito

Nie to, że chcę zniechęcać, ale czy jest sens liczenia na CPU i rozwijania optymalek, gdy aplikacja na GPU jest tak wydajna?

Agbar


  • Na CPU jest łamana inna wiadomość.
  • Używając zoptymalizowanej wersji masz więcej czasu na pozostałe projekty.  :parrrty:
  • Nie wszyscy mają kompatybilne GPU.
  • Nie wszyscy chcą liczyć na GPU. Prąd kosztuje.
  • Lubię programować.
  • Może kiedyś wezmę się za optymalizację GPU. Podejrzewam, że wiele pomysłów z EO da się przenieść na kod GPU.

tito

W sumie każdy punt jest logiczny :)
A za pracę na rzecz BOINCa dla Ciebie  :parrrty: :parrrty:

krzyszp

    Cytat: Agbar w 10 Luty 2019, 19:49
    • Lubię programować.
    Ten punkt wystarczy :)[/list]

    Fajne zegarki :)
    Należę do drużyny BOINC@Poland
     Moja wizytówka