Jaka jest różnica między rdzeniami CUDA a rdzeniami Tensor (wyjaśnione) - All The Differences

 Jaka jest różnica między rdzeniami CUDA a rdzeniami Tensor (wyjaśnione) - All The Differences

Mary Davis

Rdzenie CUDA i Tensor to produkty opracowane przez firmę o nazwie Nvidia. Czym więc są rdzenie CUDA i Tensor? CUDA to skrót od Compute Unified Device Architecture. Rdzenie CUDA są obecne w Twoich procesorach graficznych, smartfonach, a nawet samochodach, jak twierdzą programiści Nvidii.

Rdzenie CUDA to platforma obliczeń równoległych i interfejs programowania aplikacji (API), który umożliwia programom wykorzystanie określonych typów procesorów graficznych (GPU) do przetwarzania ogólnego przeznaczenia.

Natomiast rdzenie tensorowe, które również zostały opracowane przez firmę Nvidia, są również wykorzystywane w procesorach graficznych. Rdzenie tensorowe umożliwiają obliczenia o mieszanej precyzji, dynamicznie dostosowując obliczenia w celu zwiększenia przepustowości przy zachowaniu dokładności.

W prostych słowach, te rdzenie są ważną częścią GPU w twoim komputerze, aby wykonać pewne obliczenia. Rdzenie CUDA są używane do mnożenia dwóch liczb i dodawania ich do innej liczby.

Podczas gdy Tensor core jest taki sam, ale z matrycami 4×4. Te obliczenia są w zasadzie renderowaniem grafiki szybciej dla ciebie.

Co to jest CUDA?

Compute Unified Device Architecture w skrócie CUDA opracowana przez firmę Nvidia, wydana 23 czerwca 2007 roku, to platforma obliczeń równoległych i interfejs programowania aplikacji (API).

Dzięki temu oprogramowanie może wykorzystywać określone typy procesorów graficznych (GPU) do przetwarzania ogólnego przeznaczenia, co jest metodą znaną jako obliczenia ogólnego przeznaczenia na GPU (GPU).

Zobacz też: Brazylia vs. Meksyk: Poznaj różnicę (przez granice) - All The Differences

CUDA to warstwa oprogramowania, która zapewnia bezpośredni dostęp do wirtualnego zestawu instrukcji GPU i elementów obliczeń równoległych w celu wykonania jąder obliczeniowych. CUDA została opracowana do współpracy z różnymi językami programowania, w tym C, C++ i Fortran.

Możliwość pracy z różnymi językami programowania ułatwia specjalistom od programowania równoległego wykorzystanie zasobów GPU, jeśli odróżnimy je od wcześniejszych API, takich jak Direct3D czy OpenGL, które wymagałyby od użytkownika bardziej zaawansowanych umiejętności w zakresie programowania graficznego.

Procesor graficzny z CUDA obsługuje również frameworki programistyczne, takie jak OpenMP, OpenACC, OpenCL, a także HIP, które mogą skompilować taki kod do CUDA. Pierwszą nazwą używaną dla CUDA był akronim Compute Unified Device Architecture, jednak Nvidia później porzuciła ten powszechnie używany akronim.

Wydajna karta graficzna Nvidia GTX 1080 Ti

Więcej o CUDA

Jako wyspecjalizowany procesor komputerowy, procesor graficzny (GPU) spełnia potrzeby wymagających obliczeniowo zadań związanych z grafiką 3D, wykonywanych w czasie rzeczywistym.

Około 2012 roku procesory graficzne ewoluowały i stały się wysoce równoległymi wielordzeniowymi systemami umożliwiającymi efektywne przetwarzanie danych dla dużych bloków.

Przy równoległym przetwarzaniu ogromnych bloków danych, konstrukcja ta przewyższa jednostki centralne (CPU) ogólnego przeznaczenia dla algorytmów, takich jak:

  • kryptograficzne funkcje skrótu
  • uczenie maszynowe
  • symulacje dynamiki molekularnej
  • silniki fizyczne
  • algorytmy sortowania

Zastosowania architektury CUDA obecnie i w przyszłości

  • Akceleracja renderowania grafiki 3D
  • Przyspieszona interkonwersja formatów plików wideo
  • Przyspieszone szyfrowanie, deszyfrowanie i kompresja
  • Bioinformatyka, np. sekwencjonowanie DNA metodą NGS BarraCUDA
  • Obliczenia rozproszone, takie jak przewidywanie natywnej konformacji białek
  • Symulacje analiz medycznych, na przykład wirtualna rzeczywistość oparta na obrazach z tomografii komputerowej i rezonansu magnetycznego
  • Symulacje fizyczne, w szczególności w zakresie dynamiki płynów
  • Trening sieci neuronowych w problemach uczenia maszynowego
  • Rozpoznawanie twarzy
  • Projekty obliczeń rozproszonych, takie jak [email protected] i inne projekty wykorzystujące BOINC
  • Dynamika molekularna
  • Wydobywanie kryptowalut
  • Oprogramowanie Structure from motion (SfM)

Co to jest rdzeń tensorowy?

Specjalistyczne rdzenie zwane Tensor Cores pozwalają na trening mieszanej precyzji. Początkowa generacja tych wyspecjalizowanych rdzeni robi to za pomocą algorytmu fused multiply-add. Dzięki temu możliwe jest mnożenie i dodawanie dwóch macierzy 4 x 4 FP16 do macierzy 4 x 4 FP16 lub FP32.

Ostatecznym wynikiem będzie FP32 z niewielką tylko utratą precyzji, mieszane obliczenia precyzyjne są oznaczone jako takie, mimo że matryce wejściowe mogą być mało precyzyjne FP16.

W praktyce znacznie przyspiesza to obliczenia przy niewielkim wpływie na końcową efektywność modelu. Możliwości te zostały rozszerzone przez późniejsze mikroarchitektury do jeszcze mniej precyzyjnych reprezentacji liczb komputerowych.

Pierwsza generacja została wprowadzona wraz z mikroarchitekturą Volta począwszy od V100, z każdą kolejną generacją udostępniano więcej formatów precyzji liczb komputerowych do obliczeń z nowymi mikroarchitekturami GPU.

O tym, jak wydajność i funkcjonalność rdzeni Tensor zmieniała się i poprawiała z każdą generacją mikroarchitektury, opowiemy w dalszej części rozdziału.

Graficznie wyrenderowany obraz wykonany przez Titan V

Jak działają rdzenie tensorowe?

Pierwsze pokolenie:

Mikroarchitektura GPU Volta została dołączona do pierwszej generacji rdzeni Tensor. Rdzenie te umożliwiły trenowanie z mieszaną precyzją i formatem liczbowym FP16.

W przypadku niektórych procesorów graficznych może to oznaczać nawet 12-krotny wzrost wydajności w teraFLOP. 640 rdzeni w top-tier V100 daje nawet 5-krotny wzrost wydajności w stosunku do procesorów graficznych Pascal poprzedniej generacji.

Drugie pokolenie:

Wraz z wprowadzeniem procesorów graficznych Turing wprowadzono drugą generację rdzeni Tensor. Do listy obsługiwanych prekursorów rdzeni Tensor, które wcześniej były ograniczone do FP16, dodano Int8, Int4 i Int1.

Dzięki procedurom treningowym o mieszanej precyzji, przepustowość procesora graficznego wzrosła nawet 32-krotnie w porównaniu z procesorami graficznymi Pascal.

Trzecie pokolenie:

Architektura procesora graficznego Ampere rozszerza wcześniejsze osiągnięcia mikroarchitektur Volta i Turing, dodając obsługę prekursorów FP64, TF32 i bfloat16.

Szkolenia i wnioskowanie w zakresie głębokiego uczenia są znacznie bardziej przyspieszone przez te formaty o dodatkowej precyzji. Na przykład format TF32 działa podobnie do FP32, a jednocześnie gwarantuje nawet 20-krotne przyspieszenie bez zmiany kodu.

Następnie, za pomocą zaledwie kilku linii kodu, automatyczna implementacja mieszanej precyzji przyspieszy szkolenie o dodatkowe 2x.

NVLink trzeciej generacji umożliwiający błyskawiczną interakcję wielu procesorów graficznych, rdzenie Ray Tracing trzeciej generacji oraz specjalizacja w zakresie matematyki macierzy rzadkich to dodatkowe aspekty mikroarchitektury Ampere. .

Czwarte pokolenie:

W przyszłości planowane jest wydanie opartej na mikroarchitekturze Hopper czwartej generacji rdzeni Tensor w kolejnym H100.

który ma się ukazać w marcu 2022 roku, będzie w stanie obsłużyć formaty precyzyjne FP8 i według NVIDII przyspieszy ogromne modele językowe "o zdumiewające 30x w stosunku do poprzedniej generacji."

Karta graficzna RTX służy do bardzo szybkiego renderowania grafiki, ponieważ zawiera rdzenie tensorowe.

Różnica między rdzeniami CUDA a rdzeniami Tensor

Rdzenie Tensor są obecnie ograniczone do Titan V i Tesla V100. 5120 rdzeni CUDA w obu procesorach graficznych ma maksymalną wydajność jednej operacji mnożenia-akumulacji pojedynczej precyzji (na przykład w fp32: x += y * z) na zegar GPU (np. częstotliwość PCIe Tesla V100 wynosi 1,38Gz).

Każdy rdzeń tensorowy operuje na małych matrycach 4×4. Na jeden zegar procesora graficznego każdy rdzeń tensorowy może wykonać jedną operację mnożenia-akumulacji macierzy.

Mnoży dwie macierze 4×4 FP16 i dodaje macierz 4×4 FP32, która daje wynik w akumulatorze (który jest również macierzą fp32 4×4).

Ponieważ matryce wejściowe są fp16, podczas gdy wyniki mnożenia i akumulator są fp32, algorytm jest znany jako mieszana precyzja.

Prawidłowym określeniem byłoby prawdopodobnie po prostu "4×4 matrix cores", ale zespół marketingowy NVIDIA zdecydował się na użycie "tensor cores".

Rdzenie tensorowe pełne wyjaśnienie w pigułce

Karta graficzna Rdzenie 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 i 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 1GB lub 2 GB

Procesory graficzne zawierające rdzenie CUDA

Zobacz też: Big Boss vs. Venom Snake: Jaka jest różnica (Revealed) - All The Differences

Wniosek

  • CUDA i rdzenie Tensor to produkty, oba opracowane przez firmę o nazwie Nvidia. CUDA to skrót od Compute Unified Device Architecture. Te rdzenie CUDA są obecne w Twoich procesorach graficznych, smartfonach, a nawet samochodach.
  • Natomiast rdzenie tensorowe, które również zostały opracowane przez firmę Nvidia, są również wykorzystywane w procesorach graficznych. Specjalistyczne rdzenie zwane "Tensor cores" pozwalają na trenowanie z mieszaną precyzją. Pierwsza generacja rdzeni tensorowych umożliwiała trenowanie z mieszaną precyzją i formatem liczb FP16.
  • W przypadku niektórych układów GPU może to przynieść nawet 12-krotny wzrost wydajności w teraFLOP. Do listy obsługiwanych prekursorów Tensor Core dodano Int8, Int4 i Int1.
  • Dzięki procedurom treningowym o mieszanej precyzji, wydajność GPU wzrosła nawet 32-krotnie. W przyszłości planowane jest wydanie czwartej generacji rdzeni Tensor opartych na mikroarchitekturze Hopper.

Inne artykuły

    Mary Davis

    Mary Davis jest pisarką, twórczynią treści i zapaloną badaczką specjalizującą się w analizie porównawczej na różne tematy. Z dyplomem dziennikarstwa i ponad pięcioletnim doświadczeniem w tej dziedzinie, Mary ma pasję do dostarczania bezstronnych i prostych informacji swoim czytelnikom. Jej miłość do pisania zaczęła się, gdy była młoda i była siłą napędową jej udanej kariery pisarskiej. Zdolność Mary do badania i przedstawiania wyników badań w łatwej do zrozumienia i wciągającej formie zjednała jej czytelników na całym świecie. Kiedy nie pisze, Mary lubi podróżować, czytać i spędzać czas z rodziną i przyjaciółmi.