Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 12624|Відповідь: 0

CUDA відрізняється від OpenCL

[Копіювати посилання]
Опубліковано 22.04.2018 21:42:36 | | | |
Згідно з інформацією з сайту, короткий огляд відмінностей між CUDA та OpenCL. Будь ласка, вкажіть на будь-які помилки.

Відступ: Симуляційний тест у Національній лабораторії Сандія у США довів, що через обмеження механізму зберігання та пропускної здатності пам'яті 16-ядерні, 32-ядерні або навіть 64-ядерні процесори не лише не можуть покращити продуктивність суперкомп'ютерів, а й призвести до значного зниження ефективності.

Що таке OpenCL?

Це відкритий і безкоштовний стандарт для паралельного програмування для загального призначення гетерогенних систем, започаткований Apple і спільно розроблений багатьма відомими виробниками галузі, а також уніфіковане програмне середовище. Він зручний для розробників програмного забезпечення для написання ефективного та легкого коду для високопродуктивних обчислювальних серверів, настільних обчислювальних систем і портативних пристроїв, широко використовується в багатоядерних процесорах (CPU), графічних процесорах (GPU), архітектурах типу клітин та інших паралельних процесорах, таких як цифрові сигнальні процесори (DSP), а також має широкі перспективи розвитку в різних сферах, таких як ігри, розваги, наукові дослідження та медична допомога.

Що таке CUDA?

CUDA — це архітектура, заснована на паралельних обчисленнях на GPU Nvidia. CUDA в основному включає два аспекти: перший — архітектура набору інструкцій ISA; другий апаратний обчислювальний рушій; Насправді це апаратне забезпечення та набір інструкцій. Іншими словами, ми можемо уявити CUDA як архітектуру, схожу на X86 або cell, але засновану на GPU, а не на традиційних процесорах.




Що таке OpenCL насправді?

OpenCL — це насправді абсолютно новий API для паралельного програмування гетерогенних систем, і OpenCL може використовувати GPU для виконання паралельних обчислень.
OpenGL призначений для графів, а OpenCL — для паралельних обчислень.
У процесі розробки OpenCL технічними платформами є всі графічні процесори NVIDIA, і фактично OpenCL розроблений на основі платформ NVIDIA GPU. Крім того, перша демонстрація OpenCL також працювала на відеокартах NVIDIA.
По суті, 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, легко приймуть мову C на основі платформи CUDA; Люди, які звикли до графічної розробки на OpenGL, будуть більш привітними до OpenCL, і на його основі буде дуже легко розробляти обчислювальні програми, пов'язані з графікою та відео.






Попередній:HttpRuntime Cache читає інкапсуляцію інформації кешу набору
Наступний:Чому б не дати MB для встановлення аватарів
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com