Liczenie Enigma@home na GPU

Zaczęty przez Adalbert, 01 Styczeń 2010, 16:53

Adalbert

Nie mogłem znaleźć informacji: czy są jakieś próby uruchomienia Enigma@home na GPU?

satanetv

Z tego co wiem to kiedyś jakieś próby były ale chyba na razie nie ma aplikacji na GPU. Może wypowie się TJM w tej sprawie.

TJM

Niestety, na chwilę obecną można liczyć tylko na uruchomienie aplikacji którą już ktoś napisał (emulator bomby).
Jest gotowa, działa dość przyjemnie na dowolnej karcie obsługującej CUDA (tak przypuszczam), przyrost prędkości w porównaniu z CPU jest konkretny, tak że warto byłoby liczyć nawet na kartach klasy GF9600 (na takiej już testowałem) lub nawet niższych.

Do uruchomienia aplikacji jeszcze daleko, bo nie da się jej odpalić tak na 'łapu-capu'.
- wypadałoby mieć zgodę autora, zapewne chciałby wiedzieć o takim wykorzystaniu
- trzeba doczepić BOINC API, aplikacje CUDA z wrapperem to raczej FAIL zwłaszcza na sprzetach z więcej niż jednym GPU. Dodatkowo w tej aplikacji prawdopodobnie nie ma co liczyć nawet na przybliżony pasek postępu, ze względu na totalnie nieliniowy postęp.
- przygotować serwer do pracy z nową aplikacją (robota co najmniej na parę dni)
- potrzebne będzie trochę dodatkowych skryptów, bo Bomba Turinga potrzebuje danych wejściowych od użytkownika. Jedyny chyba sensowny pomysł na uruchomienie w BOINC, to przyjęcie propozycji criba od użytkownika i nastepnie stworzenia workunitów z danym cribem na wszystkich możliwych pozycjach.

Planowałem również bruteforce na GPU, ale po małej zabawie z kalkulatorem, książką i notatkami doszedłem do wniosku, że to raczej nieopłacalne, ze względu na astronomiczną liczbę kombinacji. Nawet licząc na najlepszym dostępnym obecnie sprzęcie może nasi wnukowie doczekaliby wyników.
Z kolei istniejąca aplikacja na GPU niezbyt się nadaje. Kilka poszczególnych funkcji łatwo i przyjemnie wykonuje się na GPU, jednak główna pętla programu, z dość rozbudowanym blokiem logicznym po prostu zabija wydajność i nie jestem na chwilę obecną przekonany czy w ogóle jej przepisanie z rozsądną wydajnością jest możliwe.
Pewnym ratunkiem jest aplikacja CPU + GPU, ale tutaj znów pojawia się kula u nogi w postaci transferu danych do i z GPU. Przy jednym wątku na CPU aplikacja jest zawsze wolniejsza (i to dużo) niezależnie od użytej karty, dopiero przy czterech widać jakieśtam korzyści. Przy 8-miu wątkach pewnie nawet by się to opłacało, ale taka aplikacja to totalny horror, ze względu na synchronizację międzywątkową. Na dodatek prawdopodobnie zysk prędkości byłby tylko przy uruchomieniu na pustym procu, bo zawsze przed wysłaniem danych do GPU aplikacja musiałaby czekać na dane ze wszystkich wątków na CPU.

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

Peciak

#3
Mądrych ludzi miło się czyta  :) i wiedzę zdobywa  :book:

Cytatauthor=TJM link=topic=3198.msg88078#msg88078 date=1262547071]
Niestety, na chwilę obecną można liczyć tylko na uruchomienie aplikacji którą już ktoś napisał (emulator bomby)

Czy można prosić o krótkie wyjaśnienie cóż to jest ten emulator bomby ???

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

Szopler


Hani

http://www.boincatpoland.org/smf/na-kartach-nvidii/debian-sterowniki-cuda-toolkit-i-emulator/?wap2

Tylko to znalazlem :)


TJM

http://en.wikipedia.org/wiki/Bomba_(cryptography)

Nie wiem czy jest polska wersja artykułu, w zanadrzu mam jeszcze gdzieś jakis PDFik.

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

tito

http://www.enigmaathome.net/forum_thread.php?id=836
Gościu twierdzi, że ma apkę dla GPU.

3Rni

no to jeszcze tylko WU brakuje  :P

EDU Enthusiast

tylko powiem to "opencl please"  :ph34r:

toms83

Jeszcze ciekawe jak z wydajnością, bo jest kilka apek na gpu w różnych projektach, ale ich skuteczność w porównaniu do procesora jest żadna.

TJM

To się okaże, na razie zacząłem testy jego aplikacji na CPU.
Całe szczęście, że jest zachowana jakaś kompatybilność ze "zwykłą" dzięki czemu zamiast wszystko budować od nowa, po prostu rozszerzę to co jest o obsługę następnej aplikacji. Niestety nie wiem jeszcze do końca jak duże zmiany są potrzebne. Prawdopodobnie będzie tak, że pierw uruchomię to co jest potrzebne do generowania zadań a potem stopniowo będę robił część do obróbki wyników.


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