Care este diferența dintre CUDA Cores și Tensor Cores (explicată) - Toate diferențele

 Care este diferența dintre CUDA Cores și Tensor Cores (explicată) - Toate diferențele

Mary Davis

CUDA și Tensor cores sunt produse dezvoltate de o companie numită Nvidia. Deci, ce sunt nucleele CUDA și Tensor cores? CUDA înseamnă Compute Unified Device Architecture. Nucleele CUDA sunt prezente în GPU-urile, smartphone-urile și chiar în mașinile dumneavoastră, după cum spun dezvoltatorii Nvidia.

Nucleele CUDA reprezintă o platformă de calcul paralel și o interfață de programare a aplicațiilor (API) care permite software-ului să utilizeze anumite tipuri de unități de procesare grafică (GPU) pentru procesarea de uz general.

În timp ce nucleele tensoriale, care au fost dezvoltate tot de Nvidia, sunt de asemenea utilizate în GPU. Nucleele tensoriale permit calculul cu precizie mixtă, adaptând calculele în mod dinamic pentru a crește debitul, menținând în același timp acuratețea.

Cu alte cuvinte, aceste nuclee reprezintă o parte importantă a GPU-urilor din computerul dvs. pentru a efectua anumite calcule. Nucleele CUDA sunt utilizate pentru a înmulți două numere și a le adăuga la un alt număr.

Vezi si: Există o mare diferență între 3200MHz și 3600MHz pentru RAM? (Pe calea memoriei) - Toate diferențele

În timp ce Tensor core este același lucru, dar cu matrici de 4×4. Aceste calcule sunt practic redarea mai rapidă a graficii.

Ce este CUDA?

Compute Unified Device Architecture, pe scurt CUDA, dezvoltată de Nvidia și lansată la 23 iunie 2007, este o platformă de calcul paralel și o interfață de programare a aplicațiilor (API).

Acest lucru permite software-ului să utilizeze tipuri specifice de unități de procesare grafică (GPU) pentru procesare de uz general, o metodă cunoscută sub numele de calcul de uz general pe GPU (GPU).

CUDA este un strat software care oferă acces direct la setul de instrucțiuni virtuale ale GPU și la elementele de calcul paralel pentru executarea nucleelor de calcul. CUDA a fost dezvoltat pentru a funcționa cu diferite limbaje de programare, inclusiv C, C++ și Fortran.

Capacitatea de a lucra cu diferite limbaje de programare facilitează utilizarea resurselor GPU de către specialiștii în programare paralelă, dacă o diferențiem de API-urile anterioare, cum ar fi Direct3D sau OpenGL, care ar necesita o bază mai avansată de competențe în programarea grafică.

Vezi si: Gold VS Bronze PSU: Ce este mai silențios? - Toate diferențele

GPU cu CUDA suportă, de asemenea, cadre de programare, cum ar fi OpenMP, OpenACC, OpenCL și, de asemenea, HIP, care poate compila un astfel de cod în CUDA. Primul nume utilizat pentru CUDA a fost un acronim pentru Compute Unified Device Architecture. Cu toate acestea, Nvidia a renunțat ulterior la acronimul utilizat în mod obișnuit.

O placă grafică puternică Nvidia GTX 1080 Ti

Mai multe despre CUDA

Ca procesor specializat, unitatea de procesare grafică (GPU) satisface nevoile de timp real, sarcini de lucru grafice 3D cu calcul intensiv.

În jurul anului 2012, GPU-urile au evoluat și au devenit sisteme multi-core extrem de paralele, permițând procesarea eficientă a datelor pentru blocuri mari.

Atunci când se procesează în paralel blocuri uriașe de date, acest design este superior unităților centrale de procesare (CPU) de uz general pentru algoritmi, cum ar fi:

  • funcții hash criptografice
  • învățare automată
  • simulări de dinamică moleculară
  • motoare fizice
  • algoritmi de sortare

Utilizări ale arhitecturii CUDA în prezent și în viitor

  • Redare accelerată a graficii 3D
  • Interconversie accelerată a formatelor de fișiere video
  • Criptare, decriptare și compresie accelerată
  • Bioinformatică, de exemplu, secvențierea ADN NGS BarraCUDA
  • Calcule distribuite, cum ar fi predicția conformației native a proteinelor
  • Simulări de analiză medicală, de exemplu, realitatea virtuală bazată pe imagini de scanare CT și RMN
  • Simulări fizice, în special în domeniul dinamicii fluidelor
  • Formarea rețelelor neuronale în probleme de învățare automată
  • Recunoașterea feței
  • Proiecte de calcul distribuit, cum ar fi [email protected] și alte proiecte care utilizează BOINC
  • Dinamica moleculară
  • Mineritul criptomonedelor
  • Software pentru structura din mișcare (SfM)

Ce este un Tensor Core?

Nucleele specializate numite Tensor Cores permit instruirea cu precizie mixtă. Generația inițială a acestor nuclee specializate face acest lucru cu un algoritm de multiplicare-adăugare fuzionat. Acest lucru face posibilă multiplicarea și adăugarea a două matrici FP16 4 x 4 la o matrice FP16 sau FP32 4 x 4.

Rezultatul final va fi FP32 cu doar o ușoară pierdere de precizie, calculul cu precizie mixtă este desemnat ca atare chiar dacă matricele de intrare pot fi FP16 cu precizie redusă.

În practică, acest lucru accelerează semnificativ calculele, cu o influență redusă asupra eficienței finale a modelului. Această capacitate a fost extinsă de microarhitecturile ulterioare la reprezentări numerice computerizate și mai puțin precise.

Prima generație a fost introdusă cu microarhitectura Volta începând cu V100, mai multe formate de precizie numerică au fost puse la dispoziție pentru calcul cu noile microarhitecturi GPU cu fiecare generație care trecea.

În secțiunea următoare vom vorbi despre modul în care capacitatea și funcționalitatea nucleelor Tensor Cores s-au schimbat și s-au îmbunătățit cu fiecare generație de microarhitectură.

O imagine redată grafic realizată de un Titan V

Cum funcționează Tensor Cores?

Prima generație:

Microarhitectura Volta GPU a fost inclusă în prima generație de Tensor Cores. Aceste nuclee au făcut posibilă antrenarea cu precizie mixtă și cu formatul de numere FP16.

Acest lucru ar putea duce la o creștere de până la 12 ori a randamentului teraFLOP pentru anumite GPU. Cele 640 de nuclee ale V100 de top oferă o creștere de până la 5 ori a vitezei de performanță față de GPU Pascal din generația anterioară.

A doua generație:

Odată cu introducerea GPU-urilor Turing, a fost introdusă a doua generație de Tensor Cores. Int8, Int4 și Int1 au fost adăugate la lista de precizii Tensor Core acceptate, care anterior erau limitate la FP16.

Datorită procedurilor de instruire cu precizie mixtă, performanța GPU a crescut de până la 32 de ori în comparație cu GPU-urile Pascal.

A treia generație:

Arhitectura unui GPU Ampere extinde progresele anterioare ale microarhitecturilor Volta și Turing prin adăugarea suportului pentru preciziile FP64, TF32 și bfloat16.

Activitățile de instruire și de inferență în învățare profundă sunt accelerate mult mai mult de aceste formate de precizie suplimentară. De exemplu, formatul TF32 funcționează în mod similar cu FP32, garantând în același timp o accelerare de până la 20 de ori mai mare fără a modifica niciun cod.

Apoi, cu doar câteva linii de cod, implementarea automată a preciziei mixte va accelera antrenamentul de încă 2 ori.

NVLink de a treia generație pentru a permite interacțiuni multi-GPU extrem de rapide, nuclee Ray Tracing de a treia generație și specializarea în matematică cu matrice rarefiate sunt aspecte suplimentare ale microarhitecturii Ampere. .

A patra generație:

Este planificată o versiune viitoare a celei de-a patra generații de Tensor Cores bazate pe microarhitectura Hopper. A patra generație de Tensor Cores în următorul H100.

care este așteptat să fie lansat în martie 2022, va putea gestiona formate de precizie FP8 și, potrivit NVIDIA, va accelera modelele de limbaj uriașe "de un uimitor 30X față de generația anterioară".

O placă grafică RTX este utilizată pentru redarea foarte rapidă a graficii, deoarece conține nuclee tensoriale.

Diferența dintre CUDA Cores și Tensor Cores

În prezent, nucleele Tensor sunt limitate la Titan V și Tesla V100. Cele 5120 de nuclee CUDA de pe ambele GPU-uri au o capacitate maximă de o operațiune de multiplicare-acumulare cu o singură precizie (de exemplu, în fp32: x += y * z) pe ceas de GPU (de exemplu, frecvența PCIe a Tesla V100 este de 1,38Gz).

Fiecare nucleu tensor operează pe matrici mici de 4×4 pentru matrici mici. Pentru un ceas GPU, fiecare nucleu tensor poate finaliza o operație de multiplicare-acumulare a matricei.

Aceasta înmulțește două matrici FP16 4×4 și adaugă matricea FP32 4×4 care rezultă în acumulator (care este, de asemenea, o matrice fp32 4×4).

Deoarece matricile de intrare sunt fp16, în timp ce rezultatele înmulțirii și acumulatorul sunt fp32, algoritmul este cunoscut ca fiind de precizie mixtă.

Termenul corect ar fi probabil doar "nuclee de matrice 4×4", dar echipa de marketing NVIDIA a ales să folosească "nuclee tensoriale".

Explicația completă a nucleelor tensoriale pe scurt

Cartela GPU Core-uri 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 1 GB sau 2 GB

GPU-uri care conțin nuclee CUDA

Concluzie

  • CUDA și nucleele Tensor sunt produse, ambele dezvoltate de o companie numită Nvidia. CUDA înseamnă Compute Unified Device Architecture. Aceste nuclee CUDA sunt prezente în GPU, în smartphone-uri și chiar în mașini.
  • În timp ce nucleele tensoriale, care au fost dezvoltate tot de Nvidia, sunt de asemenea utilizate în GPU-uri. Nucleele specializate numite "Tensor cores" permit instruirea cu precizie mixtă. Prima generație de Tensor cores a făcut posibilă instruirea cu precizie mixtă și cu formatul de numere FP16.
  • Acest lucru ar putea duce la o creștere de până la 12 ori a randamentului teraFLOP pentru anumite GPU. Int8, Int4 și Int1 au fost adăugate la lista de precizii Tensor Core acceptate.
  • Datorită procedurilor de instruire cu precizie mixtă, performanța GPU-ului a crescut de până la 32 de ori. Este planificată o versiune viitoare a celei de-a patra generații de Tensor Cores bazate pe microarhitectura Hopper.

Alte articole

    Mary Davis

    Mary Davis este scriitoare, creatoare de conținut și cercetătoare pasionată specializată în analiza comparativă pe diverse subiecte. Cu o diplomă în jurnalism și peste cinci ani de experiență în domeniu, Mary are o pasiune pentru a oferi cititorilor săi informații imparțiale și directe. Dragostea ei pentru scris a început când era tânără și a fost o forță motrice în spatele carierei sale de succes în scris. Capacitatea lui Mary de a cerceta și de a prezenta descoperirile într-un format ușor de înțeles și captivant a făcut-o îndrăgită de cititorii din întreaga lume. Când nu scrie, Mary îi place să călătorească, să citească și să petreacă timp cu familia și prietenii.