Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 12624|Отговор: 0

CUDA се различава от OpenCL

[Копирай линк]
Публикувано в 22.04.2018 г. 21:42:36 ч. | | | |
Според информацията на уебсайта, кратка компилация на разликите между CUDA и OpenCL. Моля, посочете евентуални грешки.

Отклонение: Симулационен тест в Националната лаборатория Сандия в Съединените щати доказа, че поради ограниченията на механизма за съхранение и пропускателната способност на паметта, 16-ядрен, 32-ядрен или дори 64-ядрен процесор не само не могат да повишат производителността на суперкомпютрите, но дори могат да доведат до значително намаляване на ефективността.

Какво е OpenCL?

Това е отворен и безплатен стандарт за паралелно програмиране с общата цел на хетерогенни системи, иницииран от Apple и съвместно произведен от много известни производители в индустрията, а също така е унифицирана програмна среда. Удобно е за софтуерните разработчици да пишат ефективен и лек код за високопроизводителни изчислителни сървъри, настолни изчислителни системи и преносими устройства, и се използва широко в многоядрени процесори (CPU), графични процесори (GPU), клетъчни архитектури и други паралелни процесори като цифрови сигнални процесори (DSP), като има широки перспективи за развитие в различни области като игри, забавления, научни изследвания и медицинска грижа.

Какво е CUDA?

CUDA е архитектура, базирана на паралелни изчисления върху Nvidia GPU. CUDA основно включва два аспекта: единият е архитектурата на ISA инструкциите; вторият хардуерен изчислителен двигател; Всъщност става дума за хардуер и набор от инструкции. С други думи, можем да мислим за CUDA като архитектура, подобна на X86 или cell, но базирана на графични процесори, а не на традиционни процесори.




Какво всъщност е OpenCL?

OpenCL всъщност е съвсем нов API за паралелно програмиране на хетерогенни системи, а OpenCL може да използва GPU за паралелна изчислителна работа.
OpenGL е за графи, докато OpenCL е за паралелни изчисления.
В процеса на разработка на OpenCL техническите платформи са изцяло NVIDIA GPU, а всъщност OpenCL е разработен на базата на NVIDIA GPU платформи. Освен това, първото демо на OpenCL работеше и на NVIDIA GPU.
По същество OpenCL е технологичен еквивалент на DirectX в платформата Windows. Или по-скоро, това е API интерфейс, който свързва хардуер и софтуер. В това отношение е подобен на OpenGL, но OpenCL е много по-обширен от OpenGL и не се използва само за 3D графика. Ако го опишем с едно изречение, ролята на OpenCL е да отключи хардуерния потенциал чрез извикване на изчислителните ресурси на процесора и GPU, така че програмата да работи по-бързо и по-добре.
Какво всъщност е CUDA?

Архитектурата CUDA е родна, специално създадена за изчислителни интерфейси, а тази хардуерна архитектура, включително набори от инструкции, представлява пълен набор от архитектури, проектирани за този вид паралелни и хетерогенни изчисления. Архитектурата CUDA може да поддържа API-та, включително OpenCL или DirectX, а CUDA също поддържа C, C++, Fortran, Java, Python и други езици.



Каква е връзката между OpenCL и CUDA?

Връзката между CUDA и OpenCL не е конфликтна, а приобщаваща връзка. OpenCL е API, на първо ниво архитектурата CUDA е на по-високо ниво, независимо дали е OpenCL, DX11 или C език, може да се поддържа Fortran, DX11 компютинг. Като програмен разработчик, обикновено те разбират само тези езици или API и могат да използват няколко езика за разработване на свои програми, независимо кой език изберат, стига да искат да използват изчислителната мощ на GPU, могат да използват CUDA за програмиране на тази архитектура.
Техническите разлики между OpenCL и CUDA се отразяват основно в метода на имплементация. CUDA, базиран на езика C, е опакован в лесен за писане код, така че дори изследователи, които не са запознати с конструирането на чипове, могат да използват CUDA инструменти за писане на практически програми. Въпреки че OpenCL е синтактично близък до CUDA, той акцентира върху основните операции, което е по-трудно, но поради това OpenCL може да работи на различни платформи.
CUDA е архитектура за паралелни изчисления, която съдържа архитектура на набор от инструкции и съответния хардуерен енджин. OpenCL е интерфейс за програмиране на приложения (API) за паралелни изчисления, а OpenCL е нов път за разработка на CUDA в допълнение към C за CUDA на NVIDIA CUDA архитектурата.
Ако искаш да имаш повече контрол върху хардуера, можеш да използваш OpenCL API за програмиране, а ако не знаеш много за API-то, можеш да програмираш и на CUDA C, които са два различни начина на програмиране и имат своите прилики и разлики. Но има малко, когато се разработват езици OpenCL и CUDA C, в паралелните изчисления техните концепции са сходни, тези две програми имат големи прилики в програмите, така че е сравнително лесно да се прехвърлят програми един на друг.


CUDA C езикът е позициониран по различен начин от OpenCL, или с други думи, използва различни хора. CUDA C е език на високо ниво, който лесно може да се използва от непрофесионалисти, които не разбират много от хардуера; OpenCL е хардуерно-ориентиран интерфейс за разработка на приложения, който дава на програмистите по-голям контрол върху хардуера и ще бъде по-трудно да започнеш и разработиш.
Навиците на програмистите също са много важни – тези, които използват езика C на платформата X86 CPU, лесно приемат езика C, базиран на платформата CUDA GPU; Хората, които са свикнали да използват графична разработка на OpenGL, ще бъдат по-дружелюбни да видят OpenCL и ще бъде много лесно да разработват компютърни програми, свързани с графика и видео, на неговата основа.






Предишен:HttpRuntime Cache чете, капсулация на информация за кеша
Следващ:Защо не дадете MB за задаване на аватарите
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com