CUDA

in Wikipedia, die vrye ensiklopedie
Spring na: navigasie, soek

CUDA (Afkorting in Engels vir: "Compute Unified Device Architecture") is `n tegnologie om algoritmes te skryf, wat op die beeldverwerkingseenheid (BVE) hardloop, in die C programmeringstaal. Dit verskil van die normale GPGPU-metodes wat die grafikakaart se drywers gebruik om algoritmes in saamsteltaal te skryf. CUDA is ontwikkel deur Nvidia vir hulle Geforce 8 reeks, Tesla 870 en Quadro reeks. Nvidia noem dat hulle dit gaan implementeer in al hulle toekomstige beeldverwerkingseenhede.

Die CUDA sdk en drywers is op 15 Februarie 2008 vrygestel. Die huidige weergawe van die SDK en drywers is 2.0 Beta2.

Voordele[wysig]

  • `n Programmeringstaal wat baie dieselfde is as ANSI C, met `n paar nuwe funksies om spesifieke take op die BVE te verrig
  • `n Klein en vinnige verdeelde geheue-gebied (16KB) kan geprogrammeer word vir gebruik in CUDA
  • Geoptimiseerde aflaaings en skrywings van die SVE (Sentrale verwerkingseenheid) na en vanaf die grafikakaart
  • Willekeurige skrywings en lesings van die geheue is moontlik

Hardeware benodig[wysig]

CUDA kan slegs loop op sekere BVE's wat CUDA bevat nl. die Geforce 8 reeks. Alle nuwe BVE's wat Nvidia maak sal CUDA ingebou hê sonder enige veranderings aan die funksies wat hy bedien. Dus gaan slegs optimalisering plaasvind en programmeerders sal versekerd wees dat hul programme op alle vorige en toekomende BVE's sal werk.

BVE's wat CUDA bevat
Geforce Tesla Quadro
9800 GX2 C870 FX 5600
9800 GTX D870 FX 4600
9600 GT S870 FX 3700
8800 Ultra FX 1700
8800 GTX FX 570
8800 GTS FX 370
8800 GT NVS 290
8800 GS FX 3600M
8600 GTS FX 1600M
8600 GT FX 570M
8500 GT FX 360M
8400 GS Quadro Plex 1000 Model IV
8800M GTX Quadro Plex 1000 Model S4
8800M GTS NVS 320M
8700M GT NVS 140M
8600M GT NVS 135M
8600M GS NVS 130M
8400M GT
8400M GS
8400M G
GTX 280
GTX 260

Physx[wysig]

Nvidia het vir Ageia vroeg in 2008 oorgekoop om hul Physx-enjin oor te skryf om met CUDA op die BVE te loop. Dit beteken dat alle rekenaarspeletjies wat die Physx-aandrywer bevat, dan deur die BVE versnel sal word sonder enige verandering aan die speletjie se kode. Volgens Nvidia is die proses om die Physx-enjin oor te skryf, byna klaar. Die spoed waarteen die projek voltooi gaan word, is `n aanduiding van hoe maklik dit is om met CUDA te programmeer. Nvidia het `n demonstrasie gehou met die Physx-enjin wat 60 000 partikels simuleer.

Volgens chw.net sal die drywers in Augustus 2008 aan die publiek vrygestel wees, wanneer die drywers sy WHQL-sertifikaat kry. OpenGL 3.0 sal ook saam met hierdie drywers vrygestel word.

ngohq.com het die physx-enjin geskryf om ook op ATI BVE's te loop, Nvidia het aan hulle alle nodige sagteware en hulp verskaf.

Spoedvoordeel bo SVE's[wysig]

Daar is geen spoedvoordeel of -nadeel van CUDA en ander GPGPU-tegnologie nie, maar wanneer mens dit vergelyk met die spoed van die SVE is die CUDA-implementering 15 tot 20 keer die spoed van `n gedemonstreerde Intel Nehalem SVE wat teen 3.2 GHZ loop met 4 kerns. Die Intel-demonstrasie het gewys hoe hy 50 000 tot 60 000 partikels simuleer teen 15-20 RPS (rame per sekonde), by `n latere demonstrasie deur Nvidia het hulle `n soortgelyke partikelsimulasie met dieselde getal partikels vertoon wat teen 300 RPS loop. Die spoedvoordeel is weens die aanwending van 'n groot aantal stroomverwerkers en baie drade om in parallel die simulasieberekeninge te doen. `n SVE is geoptimaliseer om so min as moontlik vertraging met geheueskrywings en -lesings te hê, om so vinnig as moontlik `n enkele draad te voltooi, waar `n BVE geoptimaliseer is om `n groot aantal ander drade te voltooi terwyl hy wag vir sy stadiger geheue om te skryf of te lees.