01.08.2013 Views

Ray Tracing op GPU en CPU - EDM - UHasselt

Ray Tracing op GPU en CPU - EDM - UHasselt

Ray Tracing op GPU en CPU - EDM - UHasselt

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

uitgevoerd kan word<strong>en</strong>. Dit wordt respectievelijk het statisch <strong>en</strong> dynamisch aantal<br />

instructies g<strong>en</strong>oemd. Het dynamisch aantal instructies is typisch meerdere<br />

mal<strong>en</strong> hoger dan het statisch aantal. Indi<strong>en</strong> e<strong>en</strong> shaders toch dit aantal instructies<br />

probeert te overschrijd<strong>en</strong>, wordt deze afgebrok<strong>en</strong> <strong>en</strong> sprek<strong>en</strong> we van e<strong>en</strong><br />

time-out. Dit resulteert in pixels met e<strong>en</strong> ongedefiniëerde <strong>en</strong> dus onbruikbare<br />

resultat<strong>en</strong>. Tijd<strong>en</strong>s het programmer<strong>en</strong> di<strong>en</strong>t ook hiermee rek<strong>en</strong>ing gehoud<strong>en</strong> te<br />

word<strong>en</strong>. Meer over deze t<strong>op</strong>ic is te vind<strong>en</strong> in [PF05], de FAQ sectie van [nVi]<br />

<strong>en</strong> <strong>op</strong> het forum van [gpg].<br />

Aangezi<strong>en</strong> de fragm<strong>en</strong>t shader e<strong>en</strong> SIMD processor is, is het ook niet aangewez<strong>en</strong><br />

om deze te beschouw<strong>en</strong> als e<strong>en</strong> MIMD, tijd<strong>en</strong>s het schrijv<strong>en</strong> ervan.<br />

Dit zal in vele gevall<strong>en</strong> leid<strong>en</strong> tot zeer trage shaders, wat vaak ongew<strong>en</strong>st is.<br />

E<strong>en</strong> onschuldige if-th<strong>en</strong>-else constructie moet dus met voorzichtigheid gebruikt<br />

word<strong>en</strong>, om efficiëntie te garander<strong>en</strong>. T<strong>en</strong> eerste neemt if-th<strong>en</strong> constructie 4 klok<br />

cycli in beslag, <strong>en</strong> e<strong>en</strong> if-th<strong>en</strong>-else 6 klok cycli. Dit is relatief veel als we wet<strong>en</strong><br />

dat normaliter meerdere wiskundige <strong>op</strong>eraties tegelijkertijd (<strong>op</strong> 4 tupels) in één<br />

klok cyclus kunn<strong>en</strong> uitgevoerd word<strong>en</strong>. T<strong>en</strong> tweede kunn<strong>en</strong> we best het gebruik<br />

van if-th<strong>en</strong>(-else) structur<strong>en</strong> beperk<strong>en</strong> vanwege het feit dat én de if, én de else<br />

uitgevoerd word<strong>en</strong> indi<strong>en</strong> er slechts 1 parallelle shader de if keuze neemt, <strong>en</strong> e<strong>en</strong><br />

andere de else keuze. Beide keuzemogelijkhed<strong>en</strong> zull<strong>en</strong> uitgevoerd word<strong>en</strong> maar<br />

slechts de werkelijk uitgevoerde zal perman<strong>en</strong>t gemaakt word<strong>en</strong>. Het is dus van<br />

belang om het aantal <strong>en</strong> de omvang van deze if-th<strong>en</strong>(-else) constructies in te<br />

perk<strong>en</strong>. Nauwgezet programmer<strong>en</strong> is dus de boodschap. Meer details over de<br />

grafische hardware architectuur, zie [PF05].<br />

Duidelijk staat het GP<strong>GPU</strong> programmer<strong>en</strong> nog in kinderscho<strong>en</strong><strong>en</strong>, maar<br />

gelukkig is het wel e<strong>en</strong> “hot t<strong>op</strong>ic”. E<strong>en</strong> positief gevolg van de grote belangstelling<br />

hierin is dat er e<strong>en</strong> stuwkracht aanwezig is die de vorige problem<strong>en</strong><br />

zal <strong>op</strong>loss<strong>en</strong>, of minst<strong>en</strong>s verzacht<strong>en</strong>. Verzacht<strong>en</strong>de omstandighed<strong>en</strong> zoud<strong>en</strong> onder<br />

andere meerdere tools, betere programmeertal<strong>en</strong>, <strong>en</strong> de aanwezigheid van<br />

meerdere, grotere textures kunn<strong>en</strong> zijn.<br />

28

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!