У чому різниця між ядрами CUDA та тензорними ядрами (пояснення) - всі відмінності

 У чому різниця між ядрами CUDA та тензорними ядрами (пояснення) - всі відмінності

Mary Davis

Ядра CUDA та Tensor - це продукти, розроблені компанією Nvidia. Що ж таке ядра CUDA та Tensor? CUDA розшифровується як Compute Unified Device Architecture. Ядра CUDA присутні у ваших графічних процесорах, смартфонах і навіть автомобілях, як стверджують розробники Nvidia.

Ядра CUDA - це платформа для паралельних обчислень та інтерфейс прикладного програмування (API), який дозволяє програмному забезпеченню використовувати певні типи графічних процесорів (GPU) для обробки даних загального призначення.

Тензорні ядра, які також були розроблені Nvidia, також використовуються в графічних процесорах. Тензорні ядра дозволяють виконувати обчислення змішаної точності, динамічно адаптуючи обчислення для збільшення пропускної здатності при збереженні точності.

Простими словами, ці ядра є важливою частиною графічного процесора вашого ПК для виконання певних обчислень. Ядра CUDA використовуються для множення двох чисел і додавання їх до іншого числа.

Тоді як ядро Tensor - це те ж саме, але з матрицями 4×4. Ці обчислення, по суті, пришвидшують рендеринг графіки для вас.

Що таке CUDA?

Обчислювальна уніфікована архітектура пристроїв, скорочено CUDA, розроблена компанією Nvidia, випущена 23 червня 2007 року, є платформою для паралельних обчислень та інтерфейсом прикладного програмування (API).

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

CUDA - це програмний рівень, який забезпечує прямий доступ до віртуального набору інструкцій GPU та паралельних обчислювальних елементів для виконання обчислювальних ядер. CUDA була розроблена для роботи з різними мовами програмування, включаючи C, C++ та Fortran.

Можливість працювати з різними мовами програмування полегшує фахівцям з паралельного програмування використання ресурсів GPU, якщо відрізняти його від попередніх API, таких як Direct3D або OpenGL, які вимагали б від вас більш просунутої бази навичок в графічному програмуванні.

GPU з CUDA також підтримує фреймворки програмування, такі як OpenMP, OpenACC, OpenCL, а також HIP, які можуть компілювати такий код на CUDA. Першою назвою CUDA була абревіатура Compute Unified Device Architecture, але пізніше Nvidia відмовилася від цієї загальноприйнятої абревіатури.

Потужна відеокарта Nvidia GTX 1080 Ti

Більше про CUDA

Як спеціалізований комп'ютерний процесор, графічний процесор (GPU) задовольняє потреби інтенсивних обчислювальних навантажень 3D-графіки в реальному часі.

Близько 2012 року графічні процесори еволюціонували і стали високопаралельними багатоядерними системами, що дозволяють ефективно обробляти великі блоки даних.

При паралельній обробці величезних блоків даних ця конструкція перевершує універсальні центральні процесори (ЦП) для таких алгоритмів, як:

  • криптографічні хеш-функції
  • машинне навчання
  • моделювання молекулярної динаміки
  • фізичні двигуни
  • алгоритми сортування

Використання архітектури CUDA зараз і в майбутньому

  • Прискорений рендеринг 3D-графіки
  • Прискорене перетворення форматів відеофайлів
  • Прискорене шифрування, дешифрування та стиснення
  • Біоінформатика, наприклад, секвенування ДНК NGS BarraCUDA
  • Розподілені обчислення, такі як передбачення нативної конформації білків
  • Симуляції медичного аналізу, наприклад, віртуальна реальність на основі зображень КТ та МРТ
  • Фізичне моделювання, зокрема в гідродинаміці
  • Навчання нейронних мереж у задачах машинного навчання
  • Розпізнавання обличчя
  • Проекти розподілених обчислень, такі як [email protected] та інші проекти, що використовують BOINC
  • Молекулярна динаміка
  • Майнінг криптовалют
  • Програмне забезпечення Structure from motion (SfM)

Що таке тензорне ядро?

Спеціалізовані ядра, які називаються тензорними ядрами, дозволяють проводити навчання зі змішаною точністю. Початкова генерація цих спеціалізованих ядер робить це за допомогою алгоритму злитого множення-додавання. Це дозволяє множити і додавати дві матриці 4 x 4 FP16 до матриці 4 x 4 FP16 або FP32.

Кінцевим результатом буде FP32 з незначною втратою точності, обчислення змішаної точності позначаються як такі, навіть якщо вхідні матриці можуть бути низькоточними FP16.

На практиці це значно прискорює обчислення, мало впливаючи на кінцеву ефективність моделі. Пізніші мікроархітектури розширили цю можливість до ще менш точного представлення комп'ютерних чисел.

Перше покоління було представлено мікроархітектурою Volta, починаючи з V100, з кожним наступним поколінням для обчислень ставало доступним більше форматів з високою точністю обчислень з новими мікроархітектурами графічних процесорів.

Про те, як змінювалася і вдосконалювалася потужність і функціональність тензорних ядер з кожним поколінням мікроархітектури, ми поговоримо в наступному розділі.

Дивіться також: У чому різниця між парафією, округом і районом у США - всі відмінності

Графічне зображення, зроблене Titan V

Як працюють тензорні ядра?

Перше покоління:

Мікроархітектура Volta GPU була включена в перше покоління тензорних ядер. Ці ядра дозволили тренуватися зі змішаною точністю і форматом чисел FP16.

Для певних графічних процесорів це може призвести до 12-кратного збільшення пропускної здатності в терафлоп. 640 ядер топового V100 дають 5-кратний приріст продуктивності порівняно з графічними процесорами попереднього покоління, що працювали з Паскалем.

Друге покоління:

З появою графічних процесорів Turing було представлено друге покоління тензорних ядер. Int8, Int4 та Int1 були додані до списку підтримуваних точностей тензорних ядер, які раніше були обмежені до FP16.

Дивіться також: У чому різниця між готелем і мотелем - всі відмінності

Завдяки процедурам навчання змішаної точності пропускну здатність графічного процесора було збільшено в 32 рази порівняно з графічними процесорами на Паскалі.

Третє покоління:

Архітектура графічного процесора Ampere розширює попередні досягнення мікроархітектур Volta і Turing, додаючи підтримку точності FP64, TF32 і bfloat16.

Ці надточні формати значно прискорюють навчання та виведення даних у глибокому навчанні. Наприклад, формат TF32 функціонує подібно до FP32, гарантуючи при цьому прискорення до 20 разів без зміни коду.

Тоді, за допомогою лише кількох рядків коду, автоматична реалізація змішаної точності прискорить навчання ще вдвічі.

NVLink третього покоління для забезпечення блискавичної взаємодії декількох графічних процесорів, ядра Ray Tracing третього покоління та спеціалізація на розрідженій матричній математиці - це додаткові аспекти мікроархітектури Ampere. .

Четверте покоління:

У майбутньому планується випуск четвертого покоління тензорних ядер на базі мікроархітектури Hopper. Четверте покоління тензорних ядер у наступному H100.

який, як очікується, вийде в березні 2022 року, зможе обробляти формати точності FP8 і, за словами NVIDIA, прискорить величезні мовні моделі "в 30 разів порівняно з попереднім поколінням".

Відеокарта RTX використовується для дуже швидкого рендерингу графіки, оскільки містить тензорні ядра.

Різниця між ядрами CUDA та тензорними ядрами

Тензорні ядра наразі обмежені Titan V і Tesla V100. 5120 ядер CUDA на обох графічних процесорах мають максимальну продуктивність однієї операції множення-акумуляції (наприклад, у fp32: x += y * z) за один такт графічного процесора (наприклад, частота PCIe Tesla V100 становить 1.38Gz).

Кожне тензорне ядро працює з малими матрицями 4×4 для малих матриць. За один такт графічного процесора кожне тензорне ядро може виконати одну операцію множення-акумуляції матриць.

Він перемножує дві матриці 4×4 FP16 і додає матрицю 4×4 FP32, в результаті чого утворюється акумулятор (який також є матрицею fp32 4×4).

Оскільки вхідні матриці мають розмірність fp16, а результати множення та накопичувач - fp32, алгоритм називають алгоритмом змішаної точності.

Правильним терміном, ймовірно, було б просто "ядра матриці 4×4", але маркетингова команда NVIDIA вирішила використати термін "тензорні ядра".

Повне пояснення тензорних ядер у двох словах

Графічна карта Ядра CUDA VRAM
GeForce GTX 1660 Ti 1536 6 ГБ
GeForce GTX 1660 Super 1408 6 ГБ
GeForce GTX 1660 1408 6 ГБ
GeForce GTX 1650 Super 1408 4 ГБ
GeForce GTX 1650 1024 та 896 4 ГБ
GeForce GTX 1060 3 ГБ 1280 4 ГБ
GeForce GTX 1650 1280 3 ГБ
GeForce GTX 1060 6 ГБ 768 6 ГБ
GeForce GTX 1050 Ti (3 ГБ) 768 4 ГБ
GeForce GTX 1050 (2 ГБ) 640 3 ГБ
GeForce GTX 960 1024 2 ГБ
GeForce GTX 950 786 2 ГБ
GeForce GTX 780 Ti 2880 2 ГБ
GeForce GTX 780 2304 3 ГБ
GeForce GTX 750 Ti 640 2 ГБ
GeForce GTX 750 512 1 ГБ або 2 ГБ

Графічні процесори, які містять ядра CUDA

Висновок

  • Ядра CUDA та Tensor - це продукти, розроблені компанією Nvidia. CUDA розшифровується як Compute Unified Device Architecture. Ці ядра CUDA присутні у ваших графічних процесорах, смартфонах і навіть автомобілях.
  • Тоді як тензорні ядра, які також були розроблені Nvidia, також використовуються в графічних процесорах. Спеціалізовані ядра під назвою "Тензорні ядра" дозволяють проводити навчання зі змішаною точністю. Перше покоління тензорних ядер дозволило проводити навчання зі змішаною точністю і форматом чисел FP16.
  • Це може призвести до 12-кратного збільшення продуктивності в терафлоп для певних графічних процесорів. До списку підтримуваної точності Tensor Core додано Int8, Int4 та Int1.
  • Завдяки процедурам навчання змішаної точності продуктивність графічного процесора була збільшена до 32 разів. У майбутньому планується випуск четвертого покоління тензорних ядер на базі мікроархітектури Hopper.

Інші статті

    Mary Davis

    Мері Девіс – письменниця, творець контенту та завзятий дослідник, що спеціалізується на порівняльному аналізі різних тем. Маючи диплом журналіста та понад п’ять років досвіду роботи в цій галузі, Мері прагне доносити неупереджену та відверту інформацію своїм читачам. Її любов до письменницької творчості з’явилася ще в дитинстві і стала рушійною силою її успішної письменницької кар’єри. Здатність Мері досліджувати та представляти результати у легкому для розуміння та захоплюючому форматі полюбила її читачам у всьому світі. Коли вона не пише, Мері любить подорожувати, читати та проводити час із родиною та друзями.