Wiele WU Einstein@home na raz na GPU

Zaczęty przez phobos, 23 Październik 2011, 17:30

phobos

Jak liczący einsteina na gpu wiedzą, wykorzystanie GPU przez ten projekt jest dość liche. Problem można rozwiązać licząc kilka WU na raz. W sieci jest sporo rożnych instrukcji i wersji pliku app_info.xml przez które trzeba się długo przekopywać, żeby dojść do wniosku, że żadna nie działa.
Jakiś czas temu liczyłem Einsteina przy pomocy app_info.xml jakie znalazłem na stronie PNT, ale obecnie tamta wersja też już nie działa, chyba dlatego, że einstein wypuścił nowe wersje aplikacji. Tak czy inaczej, przeedytowałem nieco oryginał, żeby zawierał nazwy nowych wersji aplikacji i poszło :) Jakby ktoś chciał liczyć wiele WU na GPU to trzeba w katalogu einsteina utworzyć plik app_info.xml i wkleić w nim to:

Windows:

<app_info>
<app>
<name>einsteinbinary_BRP4</name>
<user_friendly_name>Binary Radio Pulsar Search</user_friendly_name>
</app>

<file_info>
<name>einsteinbinary_BRP4_1.00_windows_intelx86__BRP3cuda32.exe</name>
<executable/>
</file_info>
<file_info>
<name>einsteinbinary_BRP3_1.00_graphics_windows_intelx86.exe</name>
<executable/>
</file_info>
<file_info>
<name>cudart_xp32_32_16.dll</name>
<executable/>
</file_info>
<file_info>
<name>cufft_xp32_32_16.dll</name>
<executable/>
</file_info>
<file_info>
<name>db.dev.win.3d35195e</name>
</file_info>
<file_info>
<name>dbhs.dev.win.3d35195e</name>
</file_info>

<app_version>
<app_name>einsteinbinary_BRP4</app_name>
<version_num>100</version_num>
<platform>windows_intelx86</platform>
<avg_ncpus>0.330000</avg_ncpus>
<max_ncpus>0.500000</max_ncpus>
<plan_class>BRP4cuda32</plan_class>
<api_version>6.13.0</api_version>
<file_ref>
<file_name>einsteinbinary_BRP4_1.00_windows_intelx86__BRP3cuda32.exe</file_name>
<main_program/>
</file_ref>
<file_ref>
<file_name>cudart_xp32_32_16.dll</file_name>
<open_name>cudart32_32_16.dll</open_name>
<copy_file/>
</file_ref>
<file_ref>
<file_name>cufft_xp32_32_16.dll</file_name>
<open_name>cufft32_32_16.dll</open_name>
<copy_file/>
</file_ref>
<file_ref>
<file_name>einsteinbinary_BRP3_1.00_graphics_windows_intelx86.exe</file_name>
<open_name>graphics_app</open_name>
</file_ref>
<file_ref>
<file_name>db.dev.win.3d35195e</file_name>
<open_name>db.dev</open_name>
<copy_file/>
</file_ref>
<file_ref>
<file_name>dbhs.dev.win.3d35195e</file_name>
<open_name>dbhs.dev</open_name>
<copy_file/>
</file_ref>
<coproc>
<type>CUDA</type>
<count>0.333</count>
</coproc>
<gpu_ram>314572800.000000</gpu_ram>
</app_version>
</app_info>

Katalog einsteina znajduje się w C:\ProgramData\BOINC\projects\einstein.phys.uwm.edu

Linux:

<app_info>
<app>
<name>einsteinbinary_BRP4</name>
<user_friendly_name>Binary Radio Pulsar Search</user_friendly_name>
</app>

<file_info>
<name>einsteinbinary_BRP4_1.00_i686-pc-linux-gnu__BRP3cuda32nv270</name>
<executable/>
</file_info>
<file_info>
<name>einsteinbinary_BRP3_1.00_graphics_i686-pc-linux-gnu</name>
<executable/>
</file_info>
<file_info>
<name>libcudart32_32_16.so</name>
<executable/>
</file_info>
<file_info>
<name>libcufft32_32_16.so</name>
<executable/>
</file_info>
<file_info>
<name>db.dev.lin.3d35195e</name>
</file_info>
<file_info>
<name>dbhs.dev.lin.3d35195e</name>
</file_info>

<app_version>
<app_name>einsteinbinary_BRP4</app_name>
<version_num>100</version_num>
<platform>i686-pc-linux-gnu</platform>
<avg_ncpus>0.330000</avg_ncpus>
<max_ncpus>0.500000</max_ncpus>
<plan_class>BRP4cuda32</plan_class>
<api_version>6.13.0</api_version>
<file_ref>
<file_name>einsteinbinary_BRP4_1.00_i686-pc-linux-gnu__BRP3cuda32nv270</file_name>
<main_program/>
</file_ref>
<file_ref>
<file_name>libcudart32_32_16.so</file_name>
<open_name>libcudart.so.3</open_name>
<copy_file/>
</file_ref>
<file_ref>
<file_name>libcufft32_32_16.so</file_name>
<open_name>libcufft.so.3</open_name>
<copy_file/>
</file_ref>
<file_ref>
<file_name>einsteinbinary_BRP3_1.00_graphics_i686-pc-linux-gnu</file_name>
<open_name>graphics_app</open_name>
</file_ref>
<file_ref>
<file_name>db.dev.lin.3d35195e</file_name>
<open_name>db.dev</open_name>
<copy_file/>
</file_ref>
<file_ref>
<file_name>dbhs.dev.lin.3d35195e</file_name>
<open_name>dbhs.dev</open_name>
<copy_file/>
</file_ref>
<coproc>
<type>CUDA</type>
<count>0.5</count>
</coproc>
</app_version>
</app_info>


Plik należy wklejać na nie działającym BOINC (prawym na boinc > zamknij > zamknij aplikacje projektów gdy zamykasz menadżera BOINC
Fragment  <count>0.333</count> odpowiada za ilość WU liczonych jednocześnie,
1 - 1 WU
0.5 - 2WU
0.333 - 3WU
itd.
na kartach z 1GB pamięci powinny się mieścić na raz 3, na posiadających jeszcze więcej ramu może nawet 4 czy 5
Obecnie liczę 3 WU na raz i użycie GPU osiąga 70%, a użycie pamięci nie przekracza 900 mb. Dane te jednak są orientacyjne i może się zdarzyć, że 3WU przestaną się mieścić, w lipcu/sierpniu mieściły mi się tylko 2 WU. Zwracam też uwagę, że to działa w tej chwili, nie musi działać za rok  ;)

aborek

 :respect:
Zaraz przetestuję.

pawg

Ciekawe co się stanie gdy ustawimy liczenie np. 4 WU, a zmieszczą sie tylko 3??



Cyfron

nie liczy próbki i pisze, że próbka ma za mało pamięci i czeka na zwolnienie

phobos

Użycie gpu spada i karta coś tam liczy ale nie wydajnie.

GRID

Na jakich GPU i systemach liczy ten projekt ?

Tomasz R. Gwiazda

jakbym mial strzelac to na bank NV :)

pawg

I niestety tylko NV  :bad:
A system to chyba każdy...



zoom_mctwist

W kodzie pojawia się wiele razy odwołanie do xp32. Czy to znaczy, że ten trick będzie działał tylko na xp32 bity?

phobos

To nazwa jednego z plików z jakich korzysta projekt. Mi śmiga ładnie na win7 x64

ZernatPL

A ja mam takie pytanko.

Jak mam dwa projekty na GPu i one liczą się na zmianę to było by tak:

-Milka
-3x WU Einstein
-Milka
-3x WU Einstein
itp.
Tak ? Czy może jakoś inaczej ?
Liczę od około 24 września 2011r.|~25 Września 2011r. - Pierwsze 37 pkt|~28 Września 2011r. - 10k pkt|1 Października 2011r. - 25k pkt|5 Października 2011r. - 50k pkt|11 Października 2011r. - 100k pkt|24 Października 2011r. - 256k pkt|6 Listopad 2011r. - 500k pkt|13 Grudzień 2011r. - 1kk pkt|

zoom_mctwist

Spróbowałem i jest dobrze :)
3x równolegle WU Binary Radio Pulsar Search (Arecibo) v1.00 (BRP3cuda32), każdy po 140000 GFLOPs zrobiło w 2h.
Wydajność w moim przypadku podskoczyła o ok. 40%
Jedynym mankamentem jest fakt, że przesłaną z powrotem próbkę wyczytuje jako 'Anonymous platform' zamiast 'Binary Radio Pulsar Search (Arecibo) v1.00 (BRP3cuda32)'


AL

Cytat: zoom_mctwist w 28 Październik 2011, 00:40
Spróbowałem i jest dobrze :)
3x równolegle WU Binary Radio Pulsar Search (Arecibo) v1.00 (BRP3cuda32), każdy po 140000 GFLOPs zrobiło w 2h.
Wydajność w moim przypadku podskoczyła o ok. 40%
Jedynym mankamentem jest fakt, że przesłaną z powrotem próbkę wyczytuje jako 'Anonymous platform' zamiast 'Binary Radio Pulsar Search (Arecibo) v1.00 (BRP3cuda32)'

A jak punktują te anonimowe? Po 500 za sztukę jak te z GPU nie anonimowe?

Cytat: ZernatPL w 27 Październik 2011, 23:41
A ja mam takie pytanko.

Jak mam dwa projekty na GPu i one liczą się na zmianę to było by tak:

-Milka
-3x WU Einstein
-Milka
-3x WU Einstein
itp.
Tak ? Czy może jakoś inaczej ?

Teoretycznie jeśli przydział zasobów byłby dla obu równy - to chyba tak.

phobos

Cytat: zoom_mctwist w 28 Październik 2011, 00:40
Spróbowałem i jest dobrze :)
3x równolegle WU Binary Radio Pulsar Search (Arecibo) v1.00 (BRP3cuda32), każdy po 140000 GFLOPs zrobiło w 2h.
Wydajność w moim przypadku podskoczyła o ok. 40%
Jedynym mankamentem jest fakt, że przesłaną z powrotem próbkę wyczytuje jako 'Anonymous platform' zamiast 'Binary Radio Pulsar Search (Arecibo) v1.00 (BRP3cuda32)'

A jaką masz grafikę?? U mnie na gtx 560 jedną próbkę liczy ok 1.5h przy 3 liczonych na raz i przyrost względem jednej liczonej na raz jest ok dwukrotny, bo jedną liczyło ok 1h.

Cytat: AL w 28 Październik 2011, 02:07
A jak punktują te anonimowe? Po 500 za sztukę jak te z GPU nie anonimowe?
Tak, 500pkt za sztukę. Teoretycznie daje to w moim wypadku 24k pkt na dzień, kiepsko jak na gpu ale bardzo ładnie jak na einsteina  :)

AL

Ja mam 460, ale wydaje mi się, że na niej jedno wu naraz mieliło mi w ok. 40min (Run time
2,475.38(sec)) - tak samo w albercie.

zoom_mctwist

Cytat: phobos w 28 Październik 2011, 08:20
A jaką masz grafikę?? U mnie na gtx 560 jedną próbkę liczy ok 1.5h przy 3 liczonych na raz i przyrost względem jednej liczonej na raz jest ok dwukrotny, bo jedną liczyło ok 1h.

Liczę na GTX 460 z C2Duo E6750.

7,573.82 s (ok. 126 min.) - zrobione 3 WU równolegle, każdy po 0,33GPU i 0,33CPU (po 500 pkt. każdy)
3,231.87 s (ok. 53 min.) - zrobione 1 WU na normalnych ustawieniach

W sumie dało 30% boosta, ale zauważyłem, że wartość ta waha się w zależności od próbek (30-40%)



AL

Cytat: Tomasz R. Gwiazda w 28 Październik 2011, 12:06
sprobuj Distrgen :D

Jeśli chodzi o GTX 460 - to właśnie w tym projekcie w tej chwili zdobywa najwięcej punktów.

zoom_mctwist

Kupiłem sobie nowego procka (i5 2500K) i zauważyłem, że jego obciążenie nie przekracza 40% (4 rdzenie). Czy można zwiększyć przydział zasobów CPU na obliczane zadanie? I czy da to wyższą wydajność? Normalnie jest 0,33 CPU + 0,33 GPU na 1 WU (liczę 3 na raz)?

phobos

To normalne, że licząc projekt na gpu obciążenie procka nie jest duże. Takie WU mają obciążać przede wszystkim GPU a nie CPU. Nie zmienisz tego. Mógłbyś ewentualnie odpalić też próbki einsteina na CPU ale niestety nie wiem jakie zmiany w app_info.xml trzebaby wprowadzić żeby pobierało też WU na CPU. Jak chcesz obciążyć CPU to odpal na nim inny projekt.

Tomasz R. Gwiazda

cos sie zmienilo w sprawie liczenia na GPU w tym projekcie ?

phobos

Nie, tak jak było. 500 pkt za próbkę która liczy się ok godziny przy 2 liczonych jednocześnie.

Tomasz R. Gwiazda

rozumiem ze przy uzyciu tego app_info z pierwszego posta?

phobos


s4per

"Komponował" może ktoś app_info dla wersji linuksowej? Bo z 1 WU grafa mi się marnuje...

Karlik

Jakiś czas temu testowałem, ale u mnie niestety tylko zysk był stosunkowo niewielki, więc sobie odpuściłem, znalazłem na forum którego zagranicznego teamu.
<app_info>
<app>
<name>einsteinbinary_BRP4</name>
<user_friendly_name>Binary Radio Pulsar Search</user_friendly_name>
</app>

<file_info>
<name>einsteinbinary_BRP4_1.00_i686-pc-linux-gnu__BRP3cuda32nv270</name>
<executable/>
</file_info>
<file_info>
<name>einsteinbinary_BRP3_1.00_graphics_i686-pc-linux-gnu</name>
<executable/>
</file_info>
<file_info>
<name>libcudart32_32_16.so</name>
<executable/>
</file_info>
<file_info>
<name>libcufft32_32_16.so</name>
<executable/>
</file_info>
<file_info>
<name>db.dev.lin.3d35195e</name>
</file_info>
<file_info>
<name>dbhs.dev.lin.3d35195e</name>
</file_info>

<app_version>
<app_name>einsteinbinary_BRP4</app_name>
<version_num>100</version_num>
<platform>i686-pc-linux-gnu</platform>
<avg_ncpus>0.330000</avg_ncpus>
<max_ncpus>0.500000</max_ncpus>
<plan_class>BRP4cuda32</plan_class>
<api_version>6.13.0</api_version>
<file_ref>
<file_name>einsteinbinary_BRP4_1.00_i686-pc-linux-gnu__BRP3cuda32nv270</file_name>
<main_program/>
</file_ref>
<file_ref>
<file_name>libcudart32_32_16.so</file_name>
<open_name>libcudart.so.3</open_name>
<copy_file/>
</file_ref>
<file_ref>
<file_name>libcufft32_32_16.so</file_name>
<open_name>libcufft.so.3</open_name>
<copy_file/>
</file_ref>
<file_ref>
<file_name>einsteinbinary_BRP3_1.00_graphics_i686-pc-linux-gnu</file_name>
<open_name>graphics_app</open_name>
</file_ref>
<file_ref>
<file_name>db.dev.lin.3d35195e</file_name>
<open_name>db.dev</open_name>
<copy_file/>
</file_ref>
<file_ref>
<file_name>dbhs.dev.lin.3d35195e</file_name>
<open_name>dbhs.dev</open_name>
<copy_file/>
</file_ref>
<coproc>
<type>CUDA</type>
<count>0.5</count>
</coproc>
</app_version>
</app_info>

s4per

Dzięki Karlik! Jesteś wielki!

norbercik93

działa einstein na sterach 301.42 ?

Krzysiak

No dobra jak pozmieniać żeby na HD7970 liczyło 2 próbki naraz ?


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

pawg

Obecnie obsługa Einstein@home wyszła naprzeciw wolontariuszom i możliwość odpalenia kilku próbek na raz jest również dostępna w ustawieniach na stronie projektu. Jest to dostępne pod nazwą "GPU utilization factor". Jeśli chcesz na raz liczyć 1 próbkę ustawiasz wartość na 1 , gdy 2 próbki 0,5 , gdy 3 próbki 0,33. ;)