Каква е разликата между ядрата на CUDA и тензорните ядра? (Обяснено) - Всички разлики

 Каква е разликата между ядрата на CUDA и тензорните ядра? (Обяснено) - Всички разлики

Mary Davis

CUDA и тензорните ядра са продукти, разработени от компания Nvidia. Какво представляват ядрата CUDA и тензорните ядра? CUDA означава Compute Unified Device Architecture (архитектура за обединени изчислителни устройства). Ядрата CUDA присъстват във вашите графични процесори, смартфони и дори в автомобилите ви, както казват разработчиците на Nvidia.

Ядрата CUDA са платформа за паралелни изчисления и интерфейс за програмиране на приложения (API), които позволяват на софтуера да използва специфични видове графични процесори (GPU) за обработка с общо предназначение.

Тензорните ядра, които също са разработени от Nvidia, също се използват в графичните процесори. Тензорните ядра позволяват изчисления със смесена точност, като динамично адаптират изчисленията, за да увеличат производителността, като същевременно запазват точността.

С прости думи, тези ядра са важна част от графичните процесори в компютъра ви за извършване на определени изчисления. Ядрата CUDA се използват за умножаване на две числа и добавянето им към друго число.

Докато тензорното ядро е същото, но с матрици 4×4. Тези изчисления по същество рендират графики по-бързо за вас.

Какво представлява CUDA?

Compute Unified Device Architecture, накратко CUDA, разработена от Nvidia и пусната на 23 юни 2007 г., е платформа за паралелни изчисления и интерфейс за програмиране на приложения (API).

Това дава възможност на софтуера да използва специфични типове графични процесори (GPU) за обработка с общо предназначение - метод, известен като изчисления с общо предназначение на графични процесори (GPU).

CUDA е софтуерен слой, който осигурява директен достъп до виртуалния набор от инструкции на графичния процесор и паралелните изчислителни елементи за изпълнение на изчислителни ядра. CUDA е разработена за работа с различни езици за програмиране, включително C, C++ и Fortran.

Възможността за работа с различни езици за програмиране улеснява специалистите по паралелно програмиране при използването на ресурсите на графичния процесор, ако го разграничим от предишни API, като Direct3D или OpenGL, които изискват по-напреднали умения в областта на графичното програмиране.

Графичният процесор с CUDA поддържа и програмни рамки, като OpenMP, OpenACC, OpenCL, а също и HIP, които могат да компилират такъв код в CUDA. Първото име, използвано за CUDA, е акроним на Compute Unified Device Architecture (Архитектура за обединени изчислителни устройства). По-късно обаче Nvidia се отказва от често използваното съкращение.

Мощна графична карта Nvidia GTX 1080 Ti

Повече за CUDA

Като специализиран компютърен процесор графичният процесор (GPU) отговаря на нуждите на интензивните изчислителни натоварвания в реално време, свързани с 3D графиката.

Около 2012 г. графичните процесори се развиха и се превърнаха във високопаралелни многоядрени системи, позволяващи ефективна обработка на данни за големи блокове.

При паралелна обработка на огромни блокове от данни този дизайн превъзхожда централните процесори (CPU) с общо предназначение за алгоритми, като например:

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

Използване на архитектурата CUDA сега и в бъдеще

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

Какво представлява тензорното ядро?

Специализираните ядра, наречени Tensor Cores, позволяват обучение със смесена точност. Първоначалното поколение на тези специализирани ядра прави това с алгоритъм за слято умножение и добавяне. Това дава възможност за умножение и добавяне на две матрици 4 x 4 FP16 към матрица 4 x 4 FP16 или FP32.

Крайният резултат ще бъде FP32 с незначителна загуба на точност, като изчисленията със смесена точност се обозначават като такива, въпреки че входните матрици могат да бъдат с ниска точност FP16.

На практика това значително ускорява изчисленията, без да оказва голямо влияние върху крайната ефективност на модела. Този капацитет е разширен от по-късните микроархитектури до още по-малко прецизни компютърни представяния на числата.

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

Вижте също: Има ли разлика между динго и койот? (Обяснени факти) - Всички разлики

В следващия раздел ще разкажем как капацитетът и функционалността на Tensor Cores се променят и подобряват с всяко поколение микроархитектури.

Графично изображение, направено от Titan V

Как работят тензорните ядра?

Първо поколение:

Микроархитектурата на графичния процесор Volta беше включена в първото поколение тензорни ядра. Тези ядра дадоха възможност за обучение със смесена точност и формат на числата FP16.

Вижте също: "До" срещу "Cc" в Gmail (сравнение и контраст) - всички разлики

Това може да доведе до 12-кратно увеличение на производителността в тераFLOP за определени графични процесори. 640-те ядра на най-високия клас V100 осигуряват до 5-кратно увеличение на скоростта на работа спрямо графичните процесори Pascal от предишното поколение.

Второ поколение:

С въвеждането на графичните процесори Turing беше въведено второто поколение Tensor Cores. Int8, Int4 и Int1 бяха добавени към списъка на поддържаните прецизности на Tensor Core, които преди това бяха ограничени до FP16.

Благодарение на процедурите за обучение със смесена точност производителността на графичния процесор е увеличена до 32 пъти в сравнение с графичните процесори Pascal.

Трето поколение:

Архитектурата в графичния процесор Ampere разширява по-ранните постижения на микроархитектурите Volta и Turing, като добавя поддръжка на прецизности FP64, TF32 и bfloat16.

Дейностите по обучение и изводи за дълбоко обучение се ускоряват много повече от тези формати с допълнителна точност. Например форматът TF32 функционира подобно на FP32, като същевременно гарантира до 20-кратно ускорение, без да се променя кодът.

След това, само с няколко реда код, автоматичното прилагане на смесена точност ще ускори обучението с още 2 пъти.

NVLink от трето поколение за изключително бързи взаимодействия между няколко графични процесора, ядра за проследяване на лъчи от трето поколение и специализация в областта на математиката с редки матрици са допълнителни аспекти на микроархитектурата Ampere. .

Четвърто поколение:

Планирано е бъдещо издание на четвъртото поколение Tensor Cores, базирано на микроархитектурата Hopper. Четвъртото поколение Tensor Cores в следващия H100.

който се очаква да бъде пуснат през март 2022 г., ще може да работи с формати с прецизност FP8 и според NVIDIA ще ускори огромните езикови модели "с изумителните 30 пъти в сравнение с предишното поколение".

Графичната карта RTX се използва за много бързо рендиране на графики, тъй като съдържа тензорни ядра.

Разлика между ядрата CUDA и тензорните ядра

Понастоящем тензорните ядра са ограничени до Titan V и Tesla V100. 5120-те CUDA ядра на двата графични процесора имат максимален капацитет от една операция за умножение и натрупване с единична точност (например в fp32: x += y * z) на тактов генератор (например честотата на PCIe на Tesla V100 е 1,38Gz).

Всяко тензорно ядро оперира с малки матрици 4×4 за малки матрици. За един тактов час на GPU всяко тензорно ядро може да извърши една операция за умножение на матрици с натрупване.

Той умножава две матрици 4×4 FP16 и добавя матрицата 4×4 FP32, която се получава в акумулатора (който също е матрица fp32 4×4).

Тъй като входните матрици са fp16, а резултатите от умножението и акумулаторът са fp32, алгоритъмът е известен като смесена точност.

Правилният термин вероятно би бил просто "4×4 матрични ядра", но маркетинговият екип на NVIDIA избра да използва "тензорни ядра".

Пълно обяснение на тензорните ядра накратко

GPU карта Ядра CUDA VRAM
GeForce GTX 1660 Ti 1536 6GB
GeForce GTX 1660 Super 1408 6GB
GeForce GTX 1660 1408 6GB
GeForce GTX 1650 Super 1408 4GB
GeForce GTX 1650 1024 и 896 4GB
GeForce GTX 1060 3GB 1280 4GB
GeForce GTX 1650 1280 3GB
GeForce GTX 1060 6GB 768 6GB
GeForce GTX 1050 Ti (3GB) 768 4GB
GeForce GTX 1050 (2GB) 640 3GB
GeForce GTX 960 1024 2GB
GeForce GTX 950 786 2GB
GeForce GTX 780 Ti 2880 2GB
GeForce GTX 780 2304 3GB
GeForce GTX 750 Ti 640 2 GB
GeForce GTX 750 512 1 GB или 2 GB

Графични процесори, които съдържат ядра CUDA

Заключение

  • CUDA и тензорните ядра са продукти, разработени от компания, наречена Nvidia. CUDA е съкращение от Compute Unified Device Architecture (Архитектура на обединените изчислителни устройства). Тези CUDA ядра присъстват в графичните ви процесори, смартфоните и дори в автомобилите ви.
  • Докато тензорните ядра, които също са разработени от Nvidia, също се използват в графичните процесори. Специализираните ядра, наречени "тензорни ядра", позволяват обучение със смесена точност. Първото поколение тензорни ядра даваше възможност за обучение със смесена точност и формат на числата FP16.
  • Това може да доведе до 12-кратно увеличение на производителността в тераFLOP за някои графични процесори. В списъка на поддържаните прецизности на Tensor Core бяха добавени Int8, Int4 и Int1.
  • Благодарение на процедурите за обучение със смесена прецизност производителността на графичния процесор е увеличена до 32 пъти. Планирано е бъдещо пускане на четвъртото поколение Tensor Cores, базирано на микроархитектурата Hopper.

Други статии

    Mary Davis

    Мери Дейвис е писател, създател на съдържание и запален изследовател, специализирана в сравнителен анализ по различни теми. С диплома по журналистика и над пет години опит в областта, Мери има страст да предоставя безпристрастна и ясна информация на своите читатели. Любовта й към писането започва, когато е млада и е движеща сила зад успешната й писателска кариера. Способността на Мери да проучва и представя откритията в лесен за разбиране и увлекателен формат я хареса на читателите по целия свят. Когато не пише, Мери обича да пътува, да чете и да прекарва време със семейството и приятелите си.