BOINC CUDA

  • Gewijzigd: 11 maart 2012
  • Gebruikte Boinc versie: 6.12.34

Rekenen met de grafische kaart

Grafische kaarten zijn de laatste jaren steeds sneller geworden en in bepaalde rekenintensieve taken zijn ze zelfs sneller dan de processoren van AMD en Intel. De reden dat grafische kaarten sneller zijn is de veel grotere bandbreedte tussen de grafische processor en het videogeheugen, en dat de grafische processor heel veel taken (threads) parallel kan uitvoeren. nVidia heeft voor haar grafische chipsets een "programming interface" ontwikkeld onder de naam Cuda (Compute Unified Device Architecture) die het mogelijk maakt de grafische kaart als een hulpprocessor te gebruiken. AMD (van de ATI grafische kaarten) heeft iets soortgelijks onder de naam Stream Processing (CAL). De technieken van AMD en nVidia hebben beiden een eigen instructieset en programma's moeten dus ook specifiek voor CUDA of voor Stream Processing zijn geschreven. OpenCL is een instructietaal die door zowel nVidia als AMD wordt ondersteund, en dit wordt ondermeer door MilkyWay@home gebruikt.

Sinds december 2008 bestaat er een SETI@Home applicatie die de grafische kaart als hulpprocessor gebruikt. In de praktijk betekent dit dat workunits 2 tot 10 keer sneller worden uitgevoerd dan wanneer ze op de gewone processor worden uitgevoerd. De werkelijke snelheidswinst hangt van het soort videokaart. Op deze pagina wordt beschreven welke stappen je moet nemen om je nVidia of AMD (ATi) videokaart te gebruiken voor Seti rekenwerk. Er zijn diverse manieren om je grafische kaart nog efficiënter te gebruiken, bijvoorbeeld door meerdere taken tegelijk te draaien of door geoptimaliseerde applicaties te gebruiken. Informatie hierover kun je op de pagina Geoptimaliseerde Applicaties terugvinden.

Vereisten voor CUDA (nVidia)

  • BOINC versie 6.4.5 of nieuwer*
  • Een grafische kaart met een nVidia chipset uit de 8000, 9000, 200, 400, of 500 serie met minimaal 256 MB geheugen. Ondanks dat er veel verschillende leveranciers van videokaarten zijn (Asus, EVGA, Sapphire, XFX, A-Open, etc.) zijn de meesten voorzien van een grafische processor van AMD (ATI) of nVidia. Veel van de videokaarten van de verschillende leveranciers komen zelfs uit dezelfde fabriek en het enige verschil zit dan in de (extra) meegeleverde software. Een erg handig programma om te controleren wat je voor grafische chipset hebt is GPU-Z.
  • Windows 32- of 64-bit. In Linux wordt het Cuda apparaat wel herkend, maar er is nog geen standaard Seti Cuda applicatie voor Linux. Op de Lunatics website is wel een Seti Cuda applicatie voor Linux te downloaden. Deze applicatie ondersteunt alle bekende nVidia kaarten maar vereist wel een recente Linux distributie.

*Hoewel Boinc versie 6.4.5 al Cuda ondersteunt zitten daar diverse beperkingen aan, bijvoorbeeld dat bij gebruik van Cuda de gewone processor niet tegelijkertijd voor Seti kan worden gebruikt (wel voor andere projecten). Sinds Boinc versie 6.6.20 bestaat deze beperking niet meer, en de Boinc versies ná 6.6.20 kennen diverse verbeteringen op het gebied van het balanceren van de hoeveelheid werk voor de grafische en gewone processor.

Over de verschillende versies

Het gebruik van versienummers in relatie tot Cuda leidt nogal eens tot verwarring. Binnen Cuda bestaan er twee versienummers:

  • Compute Capability versie: dit geeft aan welke Cuda instructies door je grafische kaart worden ondersteund. Gangbare versies zijn 1.0, 1.1 en voor de nieuwste grafische kaarten 1.3 of 1.4 (Compute Capability 1.2 bestaat wel maar wordt (nog) niet toegepast. Je kunt de Compute Capability versie van je grafische kaart controleren met Cuda-Z. Vanaf versie 1.0 is je grafische kaart te gebruiken voor Seti, en voor projecten die "double precision" vereisen is 1.3 of hoger nodig.
  • Cuda versie: de standaard drivers die bij je videokaart worden geleverd bevatten Cuda versie 3.0 of hoger en in de meeste gevallen zal dit zonder problemen werken met Seti. De video drivers op de nVidia site bevatten Cuda versie 4.01.

De Compute Capability wordt bepaald door de hardware en daar kun je als gebruiker niets aan veranderen. De Cuda versie wordt bepaald door de video driver. De huidige Seti Cuda applicaties vereisen Cuda versie 3.2 en deze is onderdeel van nVidia driver versie 263.06 en hoger.

Installatie

Ter verduidelijking van dit artikel heb ik een bestaande computer voorzien van een Asus GTX260 videokaart die geschikt is voor Cuda, en het hele installatietraject doorlopen. De computer zelf is geen snelheidsmonster: een Pentium 4 met hyperthreading op 3GHz. Als je zelf een voor Cuda geschikte videokaart aan je systeem wilt toevoegen, hou er dan rekening mee dat je computer moet zijn voorzien van een PCIe (PCI-Express) aansluiting op het moederbord. Dit type "slot" voor de videokaart is vrij standaard bij recente computers, maar computers van meer dan een paar jaar oud hebben vaak alleen een AGP slot voor de videokaart en er zijn nauwelijks AGP videokaarten beschikbaar die geschikt zijn voor Cuda.

Stap 1: installatie van de videokaart

Dit zal in de meeste gevallen weinig problemen opleveren. Let er wel op dat de wat snellere videokaarten flink groot kunnen zijn en behoorlijk veel warmte kunnen produceren, zeker als ze voor 100% belast worden met Seti rekenwerk. Controleer vooraf of er voldoende ruimte in de kast is! Ook het energieverbruik van de snellere kaarten kan fors zijn dus controleer of de voeding van de computer voldoende is. In het overzicht onderaan de pagina vind je voor een aantal kaarten het door nVidia geadviseerde vermogen van de voeding terug.

Stap 2: de meest recente driver downloaden

Als je een nieuwe videokaart koopt zullen de drivers op de meegeleverde cd-rom meestal niet echt recent zijn. Je kunt recentere drivers downloaden vanaf de site van de leverancier, maar dan bestaat de kans dat daar de Cuda bibliotheken (*.dll bestanden) niet bij zitten. Op de nVidia site vind je de meest recente drivers die tegelijk ook de Cuda bibliotheken bevatten. Er komen regelmatig nieuwe drivers voor nVidia beschikbaar, en op dit moment is versie 295.73, maar de ervaring is dat versie 275.33 voldoende is voor optimaal Seti Cuda gebruik (driver versie 263.06 is de minimale eis). Het is mogelijk dat je naast Boinc bepaalde grafische programma's gebruikt die een hogere versie vereisen dus controleer dit in elk geval op de nVidia website. Als je OpenCL 1.1 toepassingen wilt gebruiken is een minimale driverversie 280.33 vereist. OpenCL 1.0 is al sinds 2006 beschikbaar in alle nVidia kaarten.

Stap 3: controleer of je grafische kaart Cuda ondersteunt

Met GPU-Z kan worden gecontroleerd of de videokaart goed is geïnstalleerd en of de juiste drivers gebruikt worden. Het vinkje bij Cuda moet aanstaan ten teken dat Cuda door deze kaart wordt ondersteunt.



Als dit er goed uitziet kun je met Cuda-Z de Cuda mogelijkheden bekijken.

.

Als de Compute Capability 1.0 of hoger is, is de videokaart geschikt voor Seti CUDA. Let op: er zijn projecten die "double precision" verwerking vereisen van de videokaart en dan is Compute Capability 1.3 of hoger vereist.

Stap 4: installeer de laatste versie van Boinc.

De meest recente versie kan van de Boinc website worden gedownload, en de meest recente versie op dit moment is 6.12.34. Let er bij het installeren op dat je Boinc niet als service installeert want dan wordt de videokaart niet als Cuda kaart herkend door Boinc. Zorg dus dat de optie Protected Application Excecution uit staat (standaard waarde).
Bij de eerste keer opstarten van Boinc wordt gevraagd om je aan te melden bij een project, en de stappen die daarop volgen spreken voor zich. Vergeet niet om daarna op de Seti website te controleren dat je ook daadwerkelijk Cuda workunits kan ontvangen. Ga daarvoor naar je accountpagina en selecteer Seti@home voorkeuren.



Controleer daar of de optie Gebruik NVIDIA GPU op "ja" staat en pas dit zo nodig aan.

Stap 5: controleer bij de Berichten of een Cuda apparaat is gevonden

Na aanmelding bij een project zal Boinc een CPU Benchmark test uitvoeren en de vereiste bestanden voor het project binnenhalen. Daarna kun je onder de tab Berichten controleren of alles goed is gegaan:


De standaard instelling van Boinc is dat de videokaart niet wordt gebruikt voor Cuda als de computer in gebruik is. Voor de beste reslutaten met Seti kun je de optie aanzetten dat de videokaart altijd wordt gebruikt. Ga daarvoor in Boinc naar het menu Geavanceerd -> Locale voorkeuren en vink daar Gebruik GPU als computer in gebruik is aan. Mocht je computer bij bepaalde grafische spellen traag aanvoelen kun je deze optie uitzetten.
Als alles goed is krijg je nu in de Werk tab van Boinc te zien dat er zowel op de processor als op de videokaart wordt gewerkt:

Vereisten voor CAL of OpenCL (ATi)

Het gebruik van CAL (Stream Processing) en OpenCL is nog niet beschikbaar als standaard applicatie bij Seti, dus als je een ATi videokaart gebruikt moet je de Lunatics Unified Installer gebruiken om de applicaties te installeren. Er is overigens wel een standaard applicatie beschikbaar voor Seti Beta.

  • Een grafische kaart met een ATi chipset uit de R600 serie of hoger. Een uitgebreid overzicht vindt je onderaan deze pagina.
  • Vor enkele Seti applicaties is OpenCL vereist. In het overzicht onderaan deze pagina staat aangegeven welke kaarten dit ondersteunen.
  • Catalyst drivers versie 10.7b met SDK of Catalyst drivers versie 10.10 of 10.12. Let op: Catalist versies 11.10 en 11.11 geven problemen met de Seti applicatie!
  • Windows 32- of 64-bit. In Linux wordt het CAL apparaat wel herkend, maar er is geen standaard Seti CAL applicatie voor Linux.

Installatie

Ter verduidelijking van dit artikel heb ik een bestaande computer voorzien van een Asus HD5870 videokaart die geschikt is voor CAL en OpenCL, en het hele installatietraject doorlopen. De computer zelf is geen snelheidsmonster: een Pentium 4 met hyperthreading op 3GHz onder Windows XP SP3 32 bit, . Als je zelf een voor CAL geschikte videokaart aan je systeem wilt toevoegen, hou er dan rekening mee dat je computer moet zijn voorzien van een PCIe (PCI-Express) aansluiting op het moederbord. Dit type "slot" voor de videokaart is vrij standaard bij recente computers, maar computers van meer dan een paar jaar oud hebben vaak alleen een AGP slot voor de videokaart en er zijn geen AGP videokaarten beschikbaar die geschikt zijn voor CAL.

Stap 1: installatie van de videokaart

Dit zal in de meeste gevallen weinig problemen opleveren. Let er wel op dat de wat snellere videokaarten flink groot kunnen zijn en behoorlijk veel warmte kunnen produceren, zeker als ze voor 100% belast worden met Seti rekenwerk. Controleer vooraf of er voldoende ruimte in de kast is! Ook het energieverbruik van de snellere kaarten kan fors zijn dus controleer of de voeding van de computer voldoende is. In het overzicht onderaan de pagina vind je voor een aantal kaarten het door ATi geadviseerde vermogen van de voeding terug.

Stap 2: een recente driver downloaden

Zowals eerder aangegeven, zijn de Catalyst drivers versie 10.10 of 10.12 de beste keus voor Seti. Let op dat je bij de installatie ook de ATi Stream SDK mee installeert. Een vereiste van de Catalyst drivers is dat het Microsoft .net framework is geinstalleerd. Dit is te downloaden vanaf de Microsoft website.

Stap 3: controleer of je grafische kaart OpenGL ondersteunt

Met GPU-Z kan worden gecontroleerd of de videokaart goed is geïnstalleerd en of de juiste drivers gebruikt worden.



Stap 4: installeer de laatste versie van Boinc.

De meest recente versie kan van de Boinc website worden gedownload, en de meest recente versie op dit moment is 6.12.34. Let er bij het installeren op dat je Boinc niet als service installeert want dan wordt de videokaart niet als Cuda kaart herkend door Boinc. Zorg dus dat de optie Protected Application Excecution uit staat (standaard waarde).

Stap 5: controleer bij de Berichten of een ATi videokaart is gevonden

Na aanmelding bij een project zal Boinc een CPU Benchmark test uitvoeren en de vereiste bestanden voor het project binnenhalen. Daarna kun je onder de tab Berichten controleren of alles goed is gegaan:

Bekende problemen en uitzonderingen

  • Grafische kaarten kunnen bij intensief gebruik behoorlijk warm worden, dus zorg voor voldoende koeling. Het programma GPU-Z heeft een mogelijkheid om de temperatuur van je videokaart in de gaten te houden, maar er zijn diverse andere programma's die daarbij kunnen helpen, zoals TThrottle of MSI Afterburner.
  • In bepaalde situaties kunnen 3D spellen merkbaar trager werken als Cuda actief is. Zie bij Tips en Trucs voor gevorderden onderaan de pagina wat je daaraan kunt doen.
  • In Windows Vista wordt Service Mode installatie niet ondersteund. Als Boinc als service (Protected application execution) is geïnstalleerd wordt de Cuda hardware niet gedetecteerd.
  • Als je Cuda draait op een Windows XP pc waar geen monitor aan hangt, dus bediening via bijvoorbeeld TeamViewer, bestaat de kans dat de verwerking stopt zodra je de verbinding verbreekt. Zorg in dat geval voor een "dummy" plug (Google op "VGA dummy plug" voor meer informatie).

Verdere informatie

Overzicht van de geschikte nVidia videokaarten


Overzicht van de geschikte ATi videokaarten


Tips en Trucs voor gevorderden

Boinc kent twee manieren om instellingen aan te passen. De meest bekende manier is de optie Voorkeuren in het menu, maar er is ook een optie om met een opstartbestand bepaalde zaken aan te passen. Zo'n opstartbestand maak je met een teksteditor (bijvoorbeeld Windows Kladblok). Het bestand heeft de volgende opbouw:

<cc_config>
   <log_flags>
       [ ... ]
   </log_flags>
   <options>
       [ ... ]
   </options>
</cc_config>
Er zijn diverse opties mogelijk voor dit bestand, en het onderstaande voorbeeld toont extra informatie in de Berichten tab van Boinc over het werk dat voor de GPU (videokaart) wordt gevraagd, en tevens wordt het aantal bestanden dat tegelijk wordt gedownload of ge-upload verhoogd van de standaard 2 naar 4, met een maximum van 8 voor alle projecten samen:
<cc_config>
   <log_flags>
       <coproc_debug>1</coproc_debug>
   </log_flags>
   <options>
       <max_file_xfers>8</max_file_xfers>
       <max_file_xfers_per_project>4</max_file_xfers_per_project> 
   </options>
</cc_config>
Dit bestand sla je vervolgens op in de Boinc data folder onder de naam "cc_config.xml".

De GPU applicatie uitschakelen bij zware grafische toepassingen

Het is mogelijk om de GPU applicatie uit te schakelen zodra een specifeke toepassing wordt gestart, zoals bijvoorbeeld een spel. Dit doe je met het volgende optiebestand:

<cc_config>
   <options>
       <exclusive_gpu_app>bestandsnaam.exe</exclusive_gpu_app>
   </options>
</cc_config>
Boinc kijkt alleen naar de naam van het bestand zoals dit wordt uitgevoerd, dus de bestandslocatie is niet belangrijk. Het is mogelijk om meerdere applicaties op te geven.

Meerdere GPU's gebruiken

Het is mogelijk om meerdere GPU's te gebruiken in Boinc. Voor de beste prestaties is het beter SLI of Crossfire uit te schakelen, maar voor zover bekend leveren beide technieken geen problemen op met Boinc of Seti. Het kan soms wel handig zijn om controle te hebben over welke GPU voor welk project wordt gebruikt, en daarvoor zijn de volgende opties beschikbaar:
<exclude_gpu>

<exclude_gpu>
   <url>project_URL</url>
   [<device_num>N</device_num>]
   [<type>nvidia|ati</type>]
   [<app>appname</app>]
</exclude_gpu>
De project URL voor Seti is "http://setiathome.berkeley.edu/", het "device num" vind je terug in de Boinc berichtentab: 0 is de eerste GPU, 1 is de volgende, etc. De appname is de naam van de toepassing waar het om gaat, en voor Seti is dat bijvoorbeeld "setiathome_enhanced".

<ignore_ati_dev>N</ignore_ati_dev>
Gebruik een specifieke ATi GPU niet
<ignore_cuda_dev>N</ignore_cuda_dev>
vanaf 6.12.41:
<ignore_nvidia_dev>N</ignore_nvidia_dev>
Gebruik een specifieke nVidia GPU niet.


Shoutbox

Roept u maar!
XP_Freak: Als het moederforum tijdelijk niet bereikbaar is, wordt dit backup-forum tijdelijk opengesteld. Feb 23, 2013 14:47:37 GMT 1
XP_Freak: Die nieuwe server is geplaatst. Apr 18, 2013 20:03:42 GMT 1
XP_Freak: Eesger is nog bezig met een dump van het oude naar het nieuwe forum. Apr 18, 2013 20:04:32 GMT 1
XP_Freak: Waarschijnlijk komt het moederforum vanavond nog on-line. Apr 18, 2013 20:05:00 GMT 1
Vipertje: Zijn er server problemen? Jan 19, 2014 8:53:09 GMT 1
Vipertje: is de server weer stuk? Feb 7, 2014 7:22:54 GMT 1
Shout as:
Refresh
  • Bold
  • Italic
  • Underline
  • Strikethrough
  • Link
  • Insert Smiley
0/256 Cancel