Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 12624|Odpoveď: 0

CUDA sa líši od OpenCL

[Kopírovať odkaz]
Zverejnené 22. 4. 2018 21:42:36 | | | |
Podľa informácií na webovej stránke ide o stručný prehľad rozdielov medzi CUDA a OpenCL. Prosím, upozornite na prípadné chyby.

Odbočka: Simulačný test v Sandia National Laboratory v Spojených štátoch dokázal, že vzhľadom na obmedzenia mechanizmu ukladania a šírky pásma pamäte nemôžu 16-jadrové, 32-jadrové alebo dokonca 64-jadrové procesory nielen priniesť zlepšenie výkonu superpočítačov, ale môžu dokonca viesť k výraznému zníženiu efektivity.

Čo je OpenCL?

Je to otvorený a bezplatný štandard pre paralelné programovanie pre všeobecné účely heterogénnych systémov, ktorý inicioval Apple a ktorý spoločne vyrába mnoho známych výrobcov v odvetví, a zároveň ide o jednotné programovacie prostredie. Je praktické pre softvérových vývojárov písať efektívny a ľahký kód pre vysokovýkonné počítačové servery, desktopové počítačové systémy a prenosné zariadenia a široko sa používa v viacjadrových procesoroch (CPU), grafických procesoroch (GPU), architektúrach typu buniek a ďalších paralelných procesoroch, ako sú digitálne signálové procesory (DSP), a má široké vývojové možnosti v rôznych oblastiach, ako sú hry, zábava, vedecký výskum a zdravotná starostlivosť.

Čo je CUDA?

CUDA je architektúra založená na paralelnom výpočte na grafických kartách Nvidia. CUDA zahŕňa najmä dva aspekty: jedným je architektúra inštrukčnej sady ISA; druhý hardvérový výpočtový engine; Je to vlastne hardvér a inštrukčná sada. Inými slovami, môžeme si CUDA predstaviť ako architektúru podobnú X86 alebo bunke, ale založenú na GPU, nie na tradičných CPU.




Čo vlastne OpenCL je?

OpenCL je v skutočnosti úplne nové API pre paralelné programovanie heterogénnych systémov a OpenCL môže využívať GPU na vykonávanie niektorých paralelných výpočtov.
OpenGL je určený pre grafy, zatiaľ čo OpenCL je určený pre paralelné výpočty.
V procese vývoja OpenCL sú technické platformy všetky NVIDIA GPU a v skutočnosti je OpenCL vyvíjaný na základe NVIDIA GPU platforiem. Okrem toho prvé demo OpenCL bežalo aj na grafických kartách NVIDIA.
V podstate je OpenCL technológiou ekvivalentnou DirectX na platforme Windows. Alebo presnejšie, je to API rozhranie, ktoré spája hardvér a softvér. V tomto ohľade je podobný OpenGL, ale OpenCL je oveľa rozsiahlejší než OpenGL a nepoužíva sa len pre 3D grafiku. Ak to opíšete jednou vetou, úlohou OpenCL je uvoľniť hardvérový potenciál volaním výpočtových zdrojov procesora a GPU, aby program bežal rýchlejšie a lepšie.
Čo je vlastne CUDA?

Architektúra CUDA je natívna, špeciálne navrhnutá pre výpočtové rozhrania, a táto hardvérová architektúra, vrátane inštrukčných sad, je kompletnou sadou architektúr navrhnutých pre tento druh paralelného a heterogénneho výpočtu. Architektúra CUDA dokáže podporovať API, vrátane OpenCL alebo DirectX, a CUDA tiež podporuje jazyky C, C++, Fortran, Java, Python a ďalšie jazyky.



Aký je vzťah medzi OpenCL a CUDA?

Vzťah medzi CUDA a OpenCL nie je konfliktný, ale inkluzívny vzťah. OpenCL je API, na prvej úrovni je architektúra CUDA na vyššej úrovni, či už ide o OpenCL, DX11 alebo jazyk C, Fortran, DX11 výpočty môžu byť podporované. Ako programový vývojár zvyčajne rozumejú len týmto jazykom alebo API a môžu používať viacero jazykov na vývoj vlastných programov, bez ohľadu na to, aký jazyk si vyberú, pokiaľ chcú využiť výpočtový výkon GPU, môžu použiť CUDA na programovanie na tejto architektúre.
Technické rozdiely medzi OpenCL a CUDA sa odrážajú najmä v metóde implementácie. CUDA založená na jazyku C je zabalená do ľahko písateľného kódu, takže aj výskumníci, ktorí nie sú oboznámení s konštrukciou čipov, môžu používať nástroje CUDA na písanie praktických programov. Hoci je OpenCL syntakticky blízky CUDA, kladie väčší dôraz na základné operácie, takže je náročnejší, ale práve preto môže OpenCL bežať naprieč platformami.
CUDA je paralelná výpočtová architektúra, ktorá obsahuje architektúru inštrukčnej sady a príslušný hardvérový engine. OpenCL je aplikačné programovacie rozhranie (API) pre paralelné výpočty a OpenCL je nová cesta vývoja programov CUDA okrem C for CUDA na architektúre NVIDIA CUDA.
Ak chcete získať väčšiu kontrolu nad hardvérom, môžete programovať cez OpenCL API, a ak o API veľa neviete, môžete programovať aj v CUDA C, čo sú dva rôzne spôsoby programovania a majú svoje podobnosti aj rozdiely. Ale pri vývoji jazykov OpenCL a CUDA C v paralelnom počítaní sú ich koncepty podobné, tieto dva programy majú veľké podobnosti, takže je relatívne jednoduché prenášať programy medzi sebou.


Jazyk CUDA C je umiestnený inak ako OpenCL, alebo inými slovami, používa rôznych ľudí. CUDA C je vysokoúrovňový jazyk, ktorý môžu ľahko používať aj neprofesionáli, ktorí o hardvéri veľa nevedia; OpenCL je hardvérovo orientované rozhranie na vývoj aplikácií, ktoré dáva programátorom väčšiu kontrolu nad hardvérom a bude ťažšie začať a vyvíjať.
Veľmi dôležité sú aj používateľské návyky programátorov, tí, ktorí používajú jazyk C na platforme X86 CPU, ľahko prijmú jazyk C založený na platforme CUDA GPU; Ľudia, ktorí sú zvyknutí používať vývoj grafiky v OpenGL, budú ochotnejší vidieť OpenCL a bude veľmi jednoduché vyvíjať výpočtové programy súvisiace s grafikou a videom na jeho základe.






Predchádzajúci:HttpRuntime Cache číta zapuzdrenie informácií o súbore cache
Budúci:Prečo nedať MB na nastavenie avatarov
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com