CUDA
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.
Inhoud |
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.
| 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.