Rekenen met de grafische kaartGrafische 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)
*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 versiesHet gebruik van versienummers in relatie tot Cuda leidt nogal eens tot verwarring. Binnen Cuda bestaan er twee versienummers:
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. InstallatieTer 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 videokaartDit 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 downloadenAls 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 ondersteuntMet 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. 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 Cuda apparaat is gevondenNa 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. 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.
InstallatieTer 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 videokaartDit 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 downloadenZowals 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 ondersteuntMet 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 gevondenNa 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
Verdere informatieOverzicht van de geschikte nVidia videokaartenOverzicht van de geschikte ATi videokaartenTips en Trucs voor gevorderdenBoinc 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 toepassingenHet 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 gebruikenHet 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> <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. |