Qual è la differenza tra CUDA Cores e Tensor Cores (spiegata) - Tutte le differenze

 Qual è la differenza tra CUDA Cores e Tensor Cores (spiegata) - Tutte le differenze

Mary Davis

I core CUDA e Tensor sono prodotti sviluppati da un'azienda chiamata Nvidia. Cosa sono i core CUDA e i core Tensor? CUDA è l'acronimo di Compute Unified Device Architecture. I core CUDA sono presenti nelle GPU, negli smartphone e persino nelle automobili, come affermano gli sviluppatori di Nvidia.

I core CUDA sono una piattaforma di elaborazione parallela e un'interfaccia di programmazione delle applicazioni (API) che consente al software di utilizzare tipi specifici di unità di elaborazione grafica (GPU) per l'elaborazione generale.

I tensor core, anch'essi sviluppati da Nvidia, sono utilizzati nelle GPU. I tensor core consentono di eseguire calcoli a precisione mista, adattando dinamicamente i calcoli per aumentare il throughput mantenendo la precisione.

In parole povere, questi core sono una parte importante delle GPU del PC per eseguire determinati calcoli. I core CUDA vengono utilizzati per moltiplicare due numeri e sommarli a un altro numero.

Mentre Tensor core è la stessa cosa, ma con matrici 4×4. Questi calcoli sono fondamentalmente un rendering più veloce della grafica.

Che cos'è CUDA?

La Compute Unified Device Architecture, in breve CUDA, sviluppata da Nvidia e rilasciata il 23 giugno 2007, è una piattaforma di calcolo parallelo e un'interfaccia di programmazione delle applicazioni (API).

Ciò consente al software di utilizzare tipi specifici di unità di elaborazione grafica (GPU) per l'elaborazione generale, un metodo noto come general-purpose computing on GPU (GPU).

Guarda anche: Bue VS Toro: somiglianze e differenze (fatti) - Tutte le differenze

CUDA è un livello software che fornisce accesso diretto al set di istruzioni virtuali della GPU e agli elementi di calcolo parallelo per l'esecuzione dei kernel di calcolo. CUDA è stato sviluppato per funzionare con diversi linguaggi di programmazione, tra cui C, C++ e Fortran.

La possibilità di lavorare con diversi linguaggi di programmazione facilita l'uso delle risorse delle GPU da parte degli specialisti della programmazione parallela, se la differenziamo da API precedenti come Direct3D o OpenGL, che richiedono una base di competenze più avanzata nella programmazione grafica.

Le GPU con CUDA supportano anche framework di programmazione come OpenMP, OpenACC, OpenCL e HIP, che possono compilare il codice in CUDA. Il primo nome utilizzato per CUDA era l'acronimo di Compute Unified Device Architecture, ma in seguito Nvidia ha abbandonato l'acronimo comunemente utilizzato.

Una potente scheda grafica Nvidia GTX 1080 Ti

Ulteriori informazioni su CUDA

Come processore specializzato, l'unità di elaborazione grafica (GPU) soddisfa le esigenze dei carichi di lavoro grafici 3D in tempo reale e ad alta intensità di calcolo.

Verso il 2012 le GPU si sono evolute e sono diventate sistemi multi-core altamente paralleli che consentono un'efficace elaborazione dei dati per grandi blocchi.

Quando si elaborano enormi blocchi di dati in parallelo, questo design è superiore alle unità di elaborazione centrale (CPU) di uso generale per algoritmi quali:

  • funzioni hash crittografiche
  • apprendimento automatico
  • simulazioni di dinamica molecolare
  • motori fisici
  • algoritmi di ordinamento

Utilizzi dell'architettura CUDA oggi e in futuro

  • Rendering accelerato della grafica 3D
  • Interconversione accelerata dei formati di file video
  • Crittografia, decrittografia e compressione accelerate
  • Bioinformatica, ad esempio sequenziamento del DNA NGS BarraCUDA
  • Calcoli distribuiti, come la previsione della conformazione nativa delle proteine
  • Simulazioni di analisi medica, ad esempio realtà virtuale basata su immagini di TAC e risonanza magnetica
  • Simulazioni fisiche, in particolare in fluidodinamica
  • Addestramento di reti neurali in problemi di apprendimento automatico
  • Riconoscimento dei volti
  • Progetti di calcolo distribuito, come [email protected] e altri progetti che usano BOINC
  • Dinamica molecolare
  • Estrazione di criptovalute
  • Software Structure from motion (SfM)

Che cos'è un nucleo tensoriale?

I core specializzati, chiamati Tensor Cores, consentono l'addestramento in precisione mista. La generazione iniziale di questi core specializzati è realizzata con un algoritmo fuso di moltiplicazione e addizione, che consente di moltiplicare e aggiungere due matrici 4 x 4 FP16 a una matrice 4 x 4 FP16 o FP32.

Il risultato finale sarà FP32 con solo una leggera perdita di precisione; il calcolo a precisione mista è designato come tale anche se le matrici di ingresso possono essere FP16 a bassa precisione.

Guarda anche: RAM VS Memoria unificata di Apple (M1): tutte le differenze

In pratica, questo accelera significativamente i calcoli con poca influenza sull'efficacia finale del modello. Questa capacità è stata ampliata dalle microarchitetture successive a rappresentazioni dei numeri del computer ancora meno precise.

La prima generazione è stata introdotta con la microarchitettura Volta, a partire dalla V100, e ad ogni generazione successiva sono stati resi disponibili più formati di precisione numerica per il calcolo con le nuove microarchitetture GPU.

Nella sezione che segue parleremo di come le capacità e le funzionalità dei Tensor Core siano cambiate e migliorate con ogni generazione di microarchitettura.

Un'immagine renderizzata graficamente da un Titan V

Come funzionano i nuclei tensoriali?

Prima generazione:

La microarchitettura GPU Volta è stata inclusa nella prima generazione di core Tensor, che hanno reso possibile l'addestramento con precisione mista e con il formato numerico FP16.

Questo potrebbe portare a un aumento fino a 12 volte del throughput in teraFLOP per alcune GPU. I 640 core della V100 di alto livello offrono un aumento fino a 5 volte della velocità delle prestazioni rispetto alle GPU Pascal della generazione precedente.

Seconda generazione:

Con l'introduzione delle GPU Turing, è stata introdotta la seconda generazione di Tensor Core: Int8, Int4 e Int1 sono stati aggiunti all'elenco delle precisioni Tensor Core supportate, che in precedenza erano limitate a FP16.

Grazie alle procedure di addestramento a precisione mista, il throughput delle prestazioni della GPU è aumentato fino a 32 volte rispetto alle GPU Pascal.

Terza generazione:

L'architettura delle GPU Ampere amplia i precedenti progressi delle microarchitetture Volta e Turing aggiungendo il supporto delle precisioni FP64, TF32 e bfloat16.

Le attività di formazione e inferenza dell'apprendimento profondo sono molto più accelerate da questi formati a precisione extra. Ad esempio, il formato TF32 funziona in modo simile all'FP32, ma garantisce anche accelerazioni fino a 20 volte senza modificare il codice.

Quindi, con poche righe di codice, l'implementazione automatica della precisione mista accelererà l'addestramento di un ulteriore 2x.

NVLink di terza generazione per consentire interazioni multi-GPU estremamente veloci, core Ray Tracing di terza generazione e specializzazione con la matematica delle matrici rade sono ulteriori aspetti della microarchitettura Ampere. .

Quarta generazione:

È prevista una futura release della quarta generazione di core Tensor basata sulla microarchitettura Hopper. La quarta generazione di core Tensor nel prossimo H100.

che dovrebbe essere rilasciata a marzo 2022, sarà in grado di gestire formati di precisione FP8 e, secondo NVIDIA, accelererà i modelli di linguaggio enormi "di un sorprendente 30 volte rispetto alla generazione precedente".

Una scheda grafica RTX viene utilizzata per il rendering della grafica in modo molto veloce in quanto contiene core tensoriali.

La differenza tra core CUDA e core Tensor

I core Tensor sono attualmente limitati a Titan V e Tesla V100. I 5120 core CUDA di entrambe le GPU hanno una capacità massima di un'operazione di moltiplicazione-accumulazione a precisione singola (ad esempio, in fp32: x += y * z) per clock della GPU (ad esempio, la frequenza PCIe di Tesla V100 è 1,38Gz).

Ogni tensor core opera su matrici piccole 4×4 per matrici piccole. Per ogni clock della GPU, ogni tensor core può completare un'operazione di moltiplicazione-accumulazione di matrici.

Moltiplica due matrici FP16 4×4 e aggiunge la matrice FP32 4×4 che risulta nell'accumulatore (anch'esso una matrice fp32 4×4).

Poiché le matrici di ingresso sono fp16 mentre i risultati della moltiplicazione e l'accumulatore sono fp32, l'algoritmo è noto come precisione mista.

Il termine corretto sarebbe probabilmente "core a matrice 4×4", ma il team di marketing di NVIDIA ha scelto di usare "core a tensore".

Spiegazione completa dei nuclei tensoriali in breve

Scheda GPU Core 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 e 896 4GB
GeForce GTX 1060 3GB 1280 4GB
GeForce GTX 1650 1280 3GB
GeForce GTX 1060 6GB 768 6GB
GeForce GTX 1050 Ti (3 GB) 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 o 2 GB

GPU che contengono core CUDA

Conclusione

  • I core CUDA e Tensor sono prodotti, entrambi sviluppati da un'azienda chiamata Nvidia. CUDA è l'acronimo di Compute Unified Device Architecture. Questi core CUDA sono presenti nelle GPU, negli smartphone e persino nelle automobili.
  • Mentre i tensor core, anch'essi sviluppati da Nvidia, sono utilizzati nelle GPU. I core specializzati, chiamati "Tensor core", consentono l'addestramento a precisione mista. La prima generazione di Tensor core ha reso possibile l'addestramento a precisione mista e con il formato numerico FP16.
  • Questo potrebbe comportare un aumento fino a 12 volte del throughput in teraFLOP per alcune GPU. Int8, Int4 e Int1 sono stati aggiunti all'elenco delle precisioni Tensor Core supportate.
  • Grazie alle procedure di addestramento a precisione mista, le prestazioni della GPU sono aumentate fino a 32 volte. È prevista una futura release della quarta generazione di Tensor Core basata sulla microarchitettura Hopper.

Altri articoli

    Mary Davis

    Mary Davis è una scrittrice, creatrice di contenuti e appassionata ricercatrice specializzata nell'analisi comparativa su vari argomenti. Con una laurea in giornalismo e oltre cinque anni di esperienza nel settore, Mary ha una passione per la fornitura di informazioni imparziali e dirette ai suoi lettori. Il suo amore per la scrittura è iniziato quando era giovane ed è stata una forza trainante dietro la sua carriera di successo nella scrittura. La capacità di Mary di ricercare e presentare i risultati in un formato coinvolgente e di facile comprensione l'ha resa amata dai lettori di tutto il mondo. Quando non scrive, a Mary piace viaggiare, leggere e passare il tempo con la famiglia e gli amici.