CUDA

Wikipedia, Entziklopedia askea
Jump to navigation Jump to search

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.[1]

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.

Adibidea: prozesamenduaren fluxua CUDArekin
1. Datuak kopiatu memoria nagusitik GPUko memoriara
2. CPUak prozesua eskatzen dio GPUri
3. GPUak paraleloan exekutatzen ditu core bakoitzean
4. Emaitza kopiatu GPUko memoriatik memoria nagusira

Abantailak[aldatu | aldatu iturburu kodea]

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[aldatu | aldatu iturburu kodea]

  • 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[aldatu | aldatu iturburu kodea]

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

Erreferentziak[aldatu | aldatu iturburu kodea]

  1. .

Ikus gainera[aldatu | aldatu iturburu kodea]

Kanpoko loturak[aldatu | aldatu iturburu kodea]