Poem@Home: GPU Optimized Applications

Mach ich beizeiten mal. Da bei mir aber immer CPU-Projekte parallel laufen, sollen die auch noch genug Leistung übrig haben. Ich hab extra von 4 WUs und 0,5 Threads auf 5 WUs und 0,6 Threads umgestellt, da bei rechenintensiven Projekten die Berechnungszeiten stark anstiegen. Es ist auch etwas besser geworden.
 
Hallo in die Cruncher-Runde!

Nachdem ich im Mai dem allgemeinen P3D-Race-Aufruf gefolgt war und mit meinem Llano (A6-3650 2,6 GHz) wacker mitgepunktet habe, kann ich nun auch wieder vorübergehend etwas Zeit zum Crunchen erübrigen.

Nach etwas Recherche und Rumprobiererei bin ich nun mit der folgenden app_info.xml bei Poem dabei:
HTML:
<app_info>

  <app>
    <name>poemcl</name>
    <user_friendly_name>POEM++ OpenCL</user_friendly_name>
  </app>

  <file_info>
    <name>poemcl_1.3_windows_intelx86__opencl_ati_100</name>
    <executable/>
  </file_info>

  <app_version>
    <app_name>poemcl</app_name>
    <version_num>103</version_num>
    <platform>windows_intelx86</platform>
    <plan_class>opencl_ati_100</plan_class>
    <avg_ncpus>0.5</avg_ncpus>
    <max_ncpus>0.5</max_ncpus>
    <coproc>
      <type>ATI</type>
      <count>0.5</count>
    </coproc>
    <cmdline></cmdline>
    <file_ref>
      <file_name>poemcl_1.3_windows_intelx86__opencl_ati_100</file_name>
      <main_program/>
    </file_ref>
  </app_version>

</app_info>
Sprich: Auf der GPU laufen zwei Berechnungen, die durch einen CPU-Kern befeuert werden.

Dauer pro WU (Std.): ca. 2:30 bis 2:40. Im Schnitt wird so bei mir also alle 75 bis 80 Minuten eine WU rausgehauen.

Noch zwei Anmerkungen:
  • Theoretisch könnte man avg_ncpus noch runterschrauben. Wenn jedoch noch andere (CPU-) Projekte laufen, drängen diese dann den Poem-Thread auf der CPU soweit zurück, dass die GPU nicht mehr genug Futter bekommt. Deswegen muss ein ganzer CPU-Kern für die Poem-GPU-Anwendung herhalten. Immerhin bleiben trotzdem noch drei CPU-Kerne für anderes.
  • Die Flops-Angabe ist nicht nötig und eher kontraproduktiv. Wenn man sie weglässt (wie in meiner app_info) berechnet BOINC sie wieder selber - es dauert halt ein paar WUs bis sich die berechnete Dauer pro WU eingependelt hat.
Und noch 'ne Frage:
  • Wie schafft man es, trotz app_info für die GPU, parallel CPU-WUs vom Poem-Projekt laufen zu lassen?
So, und nun will ich mal sehen, wie wir uns bei dem Challenge in drei Tagen schlagen werden. Ich bin nun dabei. *attacke*

Gerby
 
...
Und noch 'ne Frage:
  • Wie schafft man es, trotz app_info für die GPU, parallel CPU-WUs vom Poem-Projekt laufen zu lassen?
...

In dem Fall muss du in der app_info auch die CPU Poem App 'Poem++' hinzufügen, die ist aber im Vergleich zu GPUs einfach ineffizient!
 
In dem Fall muss du in der app_info auch die CPU Poem App 'Poem++' hinzufügen, die ist aber im Vergleich zu GPUs einfach ineffizient!
Ok, ich hatte zwar schon den gleichen Gedanken, aber nicht herausfinden können, wie man das in der app_info zusammenschustert. Und ewig rumprobieren wollte ich dann jetzt auch nicht mehr. Wie auch immer, ich lasse weiterhin SIMAP auf den übrigen drei CPU-Kernen laufen.
 
Ich schätze, SUSA hat mindestens einen Tag gebunkert. Deren output war schon so verdächtig niedrig. Gestern ist der sechste i7 mit einer PowerColor HD5870 (Wasserkühlung ab Werk) fertig geworden. Rennt wie Sau ;D
Nun kommt der nächste i7 dran. Mit der gleichen GrKa. Das sollten nochmal ca. 300...500 Kcredit / Tag mehr sein.
 
Sorry Leute
Ich musste meine Rechner größtenteils abschalten und werde erst am WE wieder mitmachen.
 
Man oh man. Jetzt dreht SUSA aber auf. Unser output ist zwar auch nicht schlecht, aber das 2...2 1/2 fache. :o

Wenn es gut läuft, wird der nächste i7 mit HD5870 heute Nacht fertig. Das wären dann nochmal 500 Kcredit / Tag mehr.
 
i7 3770 / 3,4 / 16 Ghz Ram

HD 7970 default


mit den einstellungen 1 CPUs und 0.25 ATI-GPU einen GPU-Load von ~ 35% - 40%

welche einstellungen sind optimal?
 
ich hab mit meiner 7850 0,75 CPU und 0,20 GPU ~ 50-60%, als Cpu läuft ein FX 8150
 
Hier noch mal meine aktuelle app_info

<app_info>

<app>
<name>poemcl</name>
<user_friendly_name>POEM++ OpenCL</user_friendly_name>
</app>

<file_info>
<name>poemcl_1.3_windows_intelx86__opencl_ati_100</name>
<executable/>
</file_info>

<app_version>
<app_name>poemcl</app_name>
<version_num>1</version_num>
<plan_class>opencl_ati_100</plan_class>
<avg_ncpus>0.75</avg_ncpus>
<max_ncpus>0.75</max_ncpus>
<flops>2.1e10</flops>
<coproc>
<type>ATI</type>
<count>0.20</count>
</coproc>
<cmdline></cmdline>
<file_ref>
<file_name>poemcl_1.3_windows_intelx86__opencl_ati_100</file_name>
<main_program/>
</file_ref>
</app_version>

</app_info>
 
meine aktuelle app mit ~ 39% GPU-Load

<app_info>
<app>
<name>poemcl</name>
<user_friendly_name>POEM++ OpenCL</user_friendly_name>
</app>
<file_info>
<name>poemcl_1.3_windows_intelx86__opencl_ati_100</name>
<executable/>
</file_info>
<app_version>
<app_name>poemcl</app_name>
<version_num>1</version_num>
<plan_class>opencl_ati_100</plan_class>
<avg_ncpus>1</avg_ncpus>
<max_ncpus>1</max_ncpus>
<flops>2.1e10</flops>
<coproc>
<type>ATI</type>
<count>0.20</count>
</coproc>
<cmdline></cmdline>
<file_ref>
<file_name>poemcl_1.3_windows_intelx86__opencl_ati_100</file_name>
<main_program/>
</file_ref>
</app_version>
 
irgendwo habe ich gelesen mann sollte keine ganze CPU zuteilen, dass würde das ganze verlangsamen ( habs selber noch nicht ausprobiert ) also:
<avg_ncpus>0.75</avg_ncpus><max_ncpus>0.75</max_ncpus> statt <avg_ncpus>1</avg_ncpus>
<max_ncpus>1</max_ncpus>
. Kannst ja ein bischen mit den Werten spielen!
 
Bei mir sind avg_ncpus und max_ncpus immer identisch.
Da ein CPU Core/ Thread durch eine GPU WU nicht völlig ausgelastet wird, empfehle ich nen Wert von 0.5 und parallel 8 oder 12 WUs laufen zu lassen
 
Ich müsste auch nochmal schaun ob ich die WU´s noch schneller durchbekomme...
hab jetzt mit dieser app_info 78-80% GPU Auslastung auf meiner 6950@default mit 5 WU´s...
eine WU dauert ca. 1h 3-10min

<app_info>

<app>
<name>poemcl</name>
<user_friendly_name>POEM++ OpenCL</user_friendly_name>
</app>

<file_info>
<name>poemcl_1.3_windows_intelx86__opencl_ati_100</name>
<executable/>
</file_info>

<app_version>
<app_name>poemcl</app_name>
<version_num>13</version_num>
<platform>windows_intelx86</platform>
<plan_class>opencl_ati_100</plan_class>
<avg_ncpus>1</avg_ncpus>
<max_ncpus>6</max_ncpus>
<flops>2.1e10</flops>
<coproc>
<type>ATI</type>
<count>0.2</count>
</coproc>
<cmdline>-instances_per_device 5</cmdline>
<file_ref>
<file_name>poemcl_1.3_windows_intelx86__opencl_ati_100</file_name>
<main_program/>
</file_ref>
</app_version>
</app_info>
 
Du meinst 5 Wu's brauchen 1h 3-10min
In deiner app_info sind folgende Werte völlig falsch:

<avg_ncpus>1</avg_ncpus>
<max_ncpus>6</max_ncpus>

probiere folgendes:

<app_info>

<app>
<name>poemcl</name>
<user_friendly_name>POEM++ OpenCL</user_friendly_name>
</app>

<file_info>
<name>poemcl_1.3_windows_intelx86__opencl_ati_100</name>
<executable/>
</file_info>

<app_version>
<app_name>poemcl</app_name>
<version_num>13</version_num>
<platform>windows_intelx86</platform>
<plan_class>opencl_ati_100</plan_class>
<avg_ncpus>0.5</avg_ncpus>
<max_ncpus>0.5</max_ncpus>
<flops>2.1e10</flops>
<coproc>
<type>ATI</type>
<count>0.083</count>
</coproc>
<cmdline>-instances_per_device 5</cmdline> LÖSCHEN
<file_ref>
<file_name>poemcl_1.3_windows_intelx86__opencl_ati_100</file_name>
<main_program/>
</file_ref>
</app_version>
</app_info>

jetzt laufen 12 WU's parallel die je einen halben CPU Kern nutzen. sollte optimal sein und max. Credits bringen.
 
Ich müsste auch nochmal schaun ob ich die WU´s noch schneller durchbekomme...
hab jetzt mit dieser app_info 78-80% GPU Auslastung auf meiner 6950@default mit 5 WU´s...
eine WU dauert ca. 1h 3-10min

<app_info>

<app>
<name>poemcl</name>
<user_friendly_name>POEM++ OpenCL</user_friendly_name>
</app>

<file_info>
<name>poemcl_1.3_windows_intelx86__opencl_ati_100</name>
<executable/>
</file_info>

<app_version>
<app_name>poemcl</app_name>
<version_num>13</version_num>
<platform>windows_intelx86</platform>
<plan_class>opencl_ati_100</plan_class>
<avg_ncpus>1</avg_ncpus>
<max_ncpus>6</max_ncpus>
<flops>2.1e10</flops>
<coproc>
<type>ATI</type>
<count>0.2</count>
</coproc>
<cmdline>-instances_per_device 5</cmdline>
<file_ref>
<file_name>poemcl_1.3_windows_intelx86__opencl_ati_100</file_name>
<main_program/>
</file_ref>
</app_version>
</app_info>

a) Wie viele Shader hat deine GPU und wie ist sie getaktet?
b) Welche CPU steckt im PC mit welchem Takt?
 
<avg_ncpus>1</avg_ncpus>
<max_ncpus>1</max_ncpus>

Boahh, das ist wirklich ein sehr großzügiger Rahmen für diese schnellen Grafiken. ;D
Eine 5750 braucht etwa 0,5 - 0,7 Cores zur Unterstützung laut Windowstaskmanager. 4 Wus brauchen demnach 3 Cores bei etwa 95 % GPU-Load.

@HGW
bitte testen (da tatsächliche Coreunterstützung ?)

<avg_ncpus>0.5</avg_ncpus>
<max_ncpus>0.5</max_ncpus>
<count>0.10</count>

<avg_ncpus>0.4</avg_ncpus>
<max_ncpus>0.4</max_ncpus>
<count>0.08</count>
 
<avg_ncpus>1</avg_ncpus>
<max_ncpus>1</max_ncpus>

Boahh, das ist wirklich ein sehr großzügiger Rahmen für diese schnellen Grafiken. ;D
Eine 5750 braucht etwa 0,5 - 0,7 Cores zur Unterstützung laut Windowstaskmanager. 4 Wus brauchen demnach 3 Cores bei etwa 95 % GPU-Load.
Echt jetzt nur 0,7 (was? %) cores pro WU? Das kann ich garnicht nachvollziehen.
Also meine HD7970er nehmen sich zwischen 8-12% (12,5% sind bei mir bereits ein voller Kern)
Auch wenn in der app_info 0.5 avg/max ncpus eingestellt ist. *noahnung*



@HWG
Nimm mal den neuen Beta Treiber 12.9 hat bei mir ~20% mehr load auf den GPUs gebracht.
 
probier doch mal 5 WU's pro Grafikkarte. Laut Taskmanager hat deine CPU erst 84% Last.
Theoretisch könntest du mit deinem 8 Kerner je 8 WU's pro Grafikkarte rechnen.
Man muss halt probieren welcher Wert für einen am besten ist.
0,5 CPu würde ich stehen lassen und dann solange die anzahl der gleichzeitigen WU's erhöhen bis der Tagesoutput wieder sinkt.
 
@Landjunge
Die Last schwankt ein wenig, es sind zwischen 75%-88% mit 4 WUs pro Karte.
Wenn ich 16 WUs laufen lasse sind es zwischen 77%-100% CPU Load, aber die GPU Load wird nicht höher. (bleibt bei 50%)
Zudem dauern die WUs dann doppelt so lang 30min vs 60min, also nichts gewonnen.
Zudem lagt das System wenn 16WUs laufen, ich probier mal noch 5 WUs pro Karte (0.20)



MfG
 
@Pollux
Danke, das wollte ich wissen.

P.S. am Wochenende hab ich die 10 Mio. geknackt bei Boinc combined:

chart.png
 
Zurück
Oben Unten