Каква е разликата между ядрата на CUDA и тензорните ядра? (Обяснено) - Всички разлики
Съдържание
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.