Technische FAQ

Waarom NVIDIA?
Heb je genoeg bandbreedte op de PCI-Express bus?
Levert de voeding voldoende vermogen?
Hoe zit het met de koeling?
Gebruik je geen SLI?
Zou het gebruik van 9800GTX kaarten niet sneller zijn?

Waarom NVIDIA?

GPU Computing is een vakgebied dat zich snel ontwikkelt. Zowel NVIDIA als ATI ontwikkelen hun eigen platform voor het programmeren van de GPU's, die beide niet compatibel zijn met de grafische kaarten van de concurrentie. Een relatief veilige manier om onafhankelijk te blijven is het gebruik van een open standaard, zoals OpenGL. In dat geval moeten alle berekeningen worden “vermomd“ als conventionele grafische operaties. Deze aanpak heeft twee nadelen. Ten eerste is het programmeermodel vrij kunstmatig en niet erg flexibel. Ten tweede kunnen we op deze manier geen gebruik maken van speciale features van de grafische kaart, zoals snel gedeeld geheugen in de shader cores. Recent heeft NVIDIA het CUDA platform gelanceerd: een C-achtige programmeertaal voor GPU Computing, met een compiler en diverse ondersteunende software-tools. CUDA is uitsluitend geschikt voor NVIDIA GPU's. Het schrijven van code die snel werkt op de GPU vereist nog altijd veel handwerk. Anderzijds leidt het gebruik van CUDA tot meer controle van de programmeur over de hardware.

Heb je genoeg bandbreedte op de PCI-Express bus?

De FASTRA bevat vier 9800GX2 grafische kaarten, die elk twee GPU's bevatten. Zelfs binnen de grafische kaarten kunnen de twee GPU's onafhankelijk worden gebruikt. Er is geen directe communicatie tussen de GPU's (SLI kan niet worden gebruikt met CUDA). Daarom verloopt alle communicatie tussen de GPU's, en ook tussen GPU en CPU, via de PCI-Express bus. Bovendien moeten telkens twee GPU's op een kaart de bandbreedte van hun PCI-Express slot delen. Voor berekeningen waarbij de communicatie-bandbreedte een belangrijke rol speelt, brengt dit aanzienlijke beperkingen met zich mee voor wat betreft de prestaties van de FASTRA. Gelukkig is voor onze tomografie-berekeningen de ratio tussen de hoeveelheid berekeningen en de hoeveelheid communicatie zeer groot. Ons programmeermodel is feitelijk heel simpel: de reconstructietaak voor een groot 3D volume wordt opgesplitst in een aantal deeltaken die volledig onafhankelijk kunnen worden uitgevoerd, zonder onderlinge communicatie. Elk van deze taken wordt toegewezen aan een GPU. De tijd die nodig is om de benodigde data naar het geheugen van de GPU te kopiëren en het resultaat uiteindelijk terug te lezen is veel korter dan de rekentijd die de GPU nodig heeft, waardoor we een zeer grote versnelling kunnen bereiken t.o.v. de CPU. Bovendien groeit voor onze toepassing de rekenkracht vrijwel lineair met het aantal GPU's!

Levert de voeding voldoende vermogen?

We hebben geen enkel probleem ondervonden met de Thermaltake Toughpower 1500W voeding. Zelfs als we het systeem enkele uren laten draaien met een 20% overclock en volledige belasting van de GPU's levert de voeding genoeg vermogen.

Hoe zit het met de koeling?

Koeling vormt een belangrijk probleem bij het gebruik van vier 9800GX2 kaarten in een PC. We hebben gekozen voor lucht koeling, aangezien water koeling het systeem behoorlijk gecompliceerd zou maken. Verrassend genoeg werkt het gebruik van lucht koeling zeer goed, zolang het zijpaneel open blijft. Het standaard Lian-Li PC-P80 zijpaneel heeft geen fans of ventilatie-gaten, en is dus niet goed geschikt voor onze configuratie. We wachten nog op een zijpaneel met een plexiglas raam, waar we eventueel een fan in kunnen installeren (of het plexiglas geheel weghalen). Desondanks: als we het zijpaneel verwijderen draaien alle GPU's stabiel rond 55°C idle en rond 86°C onder volledige belasting. Zelfs met een 20% overclock van de shader-clocks op alle kaarten (720MHz) blijven de temperaturen stabiel onder 100°C onder volledige belasting. Natuurlijk dragen dergelijk hoge temperaturen niet positief bij aan de levensduur van het systeem. Aan de andere kant kunnen we voor deze prijs gemakkelijk een nieuw systeem kopen binnen een jaar of twee.

Gebruik je geen SLI?

SLI kan niet worden gebruikt binnen het NVIDIA CUDA programmeermodel. Gelukkig hebben we SLI niet eens nodig voor onze toepassing, aangezien onze GPU berekeningen geen communicatie vereisen tussen de GPU's. De FASTRA heeft zelfs geen SLI moederbord! FASTRA bevat een crossfire moederbord met AMD 780 chipset. Om het geheel te laten werken moet aan twee voorwaarden voldaan zijn: zowel het BIOS als de NVIDIA drivers moeten in staat zijn acht GPU's te ondersteunen. Vooraf wisten we niet zeker of dit het geval zou zijn, maar het blijkt allemaal prima te werken.

Zou het gebruik van 9800GTX kaarten niet sneller zijn?

Een enkele 9800GTX kaart is sneller dan een enkele GPU op een 9800GX2 kaart. Voor 3D spellen resulteert het gebruik van twee GPU's meestal niet in dubbele framerates. Voor onze berekeningen op het gebied van tomografie, leidt een verdubbeling van het aantal GPU's wel degelijk tot een verdubbeling van de rekensnelheid. Daarom verschaffen vier 9800GX2 kaarten ons veel meer rekenkracht dan vier 9800GTX kaarten.

Commentaar van de kenners

Het ontwerpen, bouwen en testen van de FASTRA was nogal een riskante onderneming. Daarom was er permanent contact met de expert-gemeenschap op diverse publieke webfora, waar we van waardevol advies werden voorzien. Hier een greep uit de commentaren:

  • MSI helpdesk: "In theory you can install four dual-GPU cards to use. By the way, as MSI has not tested this configuration, MSI takes no responsibility for any damage caused by improper use or lack of technical expertise."
  • Een publiek hardware forum: "What exactly are you planning to do with 8 GPUs if you aren't doing 3D acceleration or rendering? I don't work for NASA but I seriously doubt if any application in the world would require such a high end GPU setting."
  • Een publiek hardware forum: "Just a guess, but I'd think you are going to need water cooling for the thing not to melt."
  • Een publiek hardware forum: "Being a computer scientist I'm sure you have done your research and realize by now that (4) 9800 GX2 graphics cards (giving you in your situation) a proposed 8 GPUs with which to do computations is a complete and utter waste of time because the software that runs these cards is not designed to have all four cards working as a team."