# CUDA

CUDA konputazio paralelorako plataforma bat da. izena Compute Unified Device Architecture kontzeptuaren akronimoa da (Konputatzeko Gailuen Arkitektura Batua). Plataformak nVidia-k sortutako konpiladore bat eta garapenerako tresna multzo bat dauzka. Algoritmoak nVidia-ren GPUan kodetzeko aukera ematen die programatzaileei C programazio-lengoaiaren aldaera bat erabiliz.
Wrapper gehigarrien bidez Python, Fortran eta Java ere erabili ahal dira C/C++ lengoaiaren ordez.
nVidiaren GPU guztiekin dabil G8X serietik aurrera: GeForce, Quadro, ION eta Tesla lerroa barne.
GPUak helburu orokorreko PUZarekiko dituen abantailak ustiatzen saiatzen da CUDA, bere nukleo anitzek eskaintzen duten paralelismoarekin, konputazio-hari kopuru handia aldi berean abiatzeko aukera ematen duena. Beraz, aplikazio bat diseinatu bada independente diren hainbat hari erabiliz (GPUek grafikoak prozesatzerakoan egiten dutena), GPUa gai izango da errendimendu handia eskaintzeko; Biologia konputazionalean, edo kriptografian, adibidez.
Lehen SDK 2007ko otsailaren hasieran kaleratu zen, Windows eta Linux-erako, eta geroago, 2.0 bertsioan Mac OS-erako ere bai.
CUDA freewarea da, doanik deskargatu eta erabil daiteke, baina ez da software libre, kodea ez da irekia.

## Abantailak

CUDAk zenbait abantaila ditu, GPUak API grafikoekin erabiltzen dituzten beste aplikazio batzuekin konparatuta:
* Irakurketa sakabanatuak: memoriako edozein posizio kontsulta daiteke.
* Partekatutako memoria: CUDAk programatzaileari 16KB-ko memoria-eremu bat (edo 48KB Fermi seriean) jartzen dio eskuragarri, hari guztien artean partekatuko dena. Tamaina eta abiadura kontuan hartuta, cache moduan erabili daiteke.
* Irakurketak azkarragoak dira GPUtik eta GPUra.
* Laguntza osokoak eta bit-maila eragileak erabiltzeko.

## Mugak

* Ezin dituzu erabili hauek: errekurtsibitatea, funtzio-erakusleak, aldagai estatikoak funtzio barruan edo parametro kopuru aldagarria duten funtzioetan.
* Testura-errenderizazioa ez da onartzen.
* Doitasun sinplean ez du onartzen zenbaki de-normalizaturik, edo NaN-ak
* Botila-lepo bat sortu daiteke CPU eta GPU artean busen banda-zabalera eta latentziengatik.
* Hari edo exekuzio-hariak, eraginkortasun-arrazoiengatik, taldeka jarri behar dira abian, gutxienez 32ko taldetan.

## Onartutako txartelak

| Nvidia GeForce GeForce GTX 1080 GeForce GTX 1070 GeForce GTX 1060 GeForce GTX 1050Ti GeForce GTX 1050 GeForce GTX TITAN X GeForce GTX 980Ti GeForce GTX 980 GeForce GTX 970 GeForce GTX 960 GeForce GTX 950 GeForce GTX TITAN Z GeForce GTX TITAN GeForce GTX 780Ti GeForce GTX 780 GeForce GTX 770 GeForce GTX 760 GeForce GTX 750Ti GeForce GTX 750 GeForce GTX 690 GeForce GTX 680 GeForce GTX 670 GeForce GTX 650 GeForce GT 640 GeForce GTX 590 GeForce GTX 580 GeForce GTX 570 GeForce GTX 560 GeForce GTX 550 GeForce GTX 480 GeForce GTX 470 GeForce GTX 465 GeForce GTX 460 GeForce GTS 450 GeForce GT 440 GeForce GT 430 GeForce GTX 295 GeForce GTX 285 GeForce GTX 280 GeForce GTX 275 GeForce GTX 260 GeForce GTS 250 GeForce GTS 240 GeForce GT 240 GeForce GT 220 GeForce 210/G210 GeForce 9800 GX2 GeForce 9800 GTX+ GeForce 9800 GTX GeForce 9800 GT GeForce 9600 GSO GeForce 9600 GT GeForce 9500 GT GeForce 9400 GT GeForce 9400 m GeForce 9300 m GeForce 9100 m GeForce 8800 Ultra GeForce 8800 GTX GeForce 8800 GTS GeForce 8800 GT GeForce 8800 GS GeForce 8600 GTS GeForce 8600 GT GeForce 8600 m GeForce 8500 GT GeForce 8400 GS GeForce 8300 m GeForce 8200 m GeForce 8100 m | Nvidia GeForce Mobile GeForce GTX 880M GeForce GTX 780M GeForce GTX 770M GeForce GTX 765M GeForce GTX 760M GeForce GT 750M GeForce GT 745M GeForce GT 740M GeForce GT 735M GeForce GT 730M GeForce GTX 680MX GeForce GTX 680M GeForce GTX 675MX GeForce GTX 675M GeForce GTX 670MX GeForce GTX 670M GeForce GTX 660M GeForce GT 650M GeForce GT 645M GeForce GT 640M GeForce GTX 580M GeForce GTX 570M GeForce GTX 560M GeForce GT 555M GeForce GT 550M GeForce GT 540M GeForce GT 525M GeForce GT 520M GeForce GTX 480M GeForce GTX 285M GeForce GTX 280M GeForce GTX 260M GeForce GTS 360M GeForce GTS 350M GeForce GTS 260M GeForce GTS 250M GeForce GT 620M GeForce GT 335M GeForce GT 330M GeForce GT 325M GeForce GT 320M GeForce 310M GeForce GT 240M GeForce GT 230M GeForce GT 220M GeForce G210M GeForce GTS 160M GeForce GTS 150M GeForce GT 130M GeForce GT 120M GeForce G110M GeForce G105M GeForce G103M GeForce G102M GeForce G100 GeForce 9800M GTX GeForce 9800M GTS GeForce 9800M GT GeForce 9800M GS GeForce 9700M GTS GeForce 9700M GT GeForce 9650M GT GeForce 9650M GS GeForce 9600M GT GeForce 9600M GS GeForce 9500M GS GeForce 9500M G GeForce 9400M G GeForce 9300M GS GeForce 9300M G GeForce 9200M GS GeForce 9100M G GeForce 8800M GTX GeForce 8800M GTS GeForce 8700M GT GeForce 8600M GT GeForce 8600M GS GeForce 8400M GT GeForce 8400M GS GeForce 8400M G GeForce 8200M G | Nvidia Quadro Quadro 6000 Quadro 5000 Quadro 4000 Quadro FX 5800 Quadro FX 5600 Quadro FX 4800 Quadro FX 4700 X2 Quadro FX 4600 Quadro FX 3800 Quadro FX 3700 Quadro FX 1800 Quadro FX 1700 Quadro FX 580 Quadro FX 570 Quadro FX 380 Quadro FX 370 Quadro NVS 450 Quadro NVS 420 Quadro NVS 295 Quadro NVS 290 Quadro Plex 1000 Model IV Quadro Plex 1000 Model S4 Nvidia Quadro Mobile Quadro FX 3800M Quadro FX 3700M Quadro FX 3600M Quadro FX 2800M Quadro FX 2700M Quadro FX 1800M Quadro FX 1700M Quadro FX 1600M Quadro FX 880M Quadro FX 770M Quadro FX 570M Quadro FX 380M Quadro FX 370M Quadro FX 360M Quadro NVS 320M Quadro NVS 160M Quadro NVS 150M Quadro NVS 140M Quadro NVS 135M Quadro NVS 130M Nvidia Tesla Tesla C2050 Tesla S1070 Tesla M1060 Tesla C1060 Tesla C870 Tesla D870 Tesla S870 |

## Ikus gainera

* OpenCL
* GPU

## Kanpo estekak

* Nvidia, CUDA gunea
* Datuak: Q477690
* Multimedia: CUDA / Q477690